# HG changeset patch # User yamahata@xxxxxxxxxxxxx # Node ID 023c8624a8a6fb2a5021d20dbe296c9b4969aadc # Parent 161473836da3ccf922f44e910f8b5c01c709d1e6 socket buffer need not to be machine-contiguous for non-priveleged domain. populate physmap hypercall fails with extent order > 0 for non-privileged domain. On non-privileged domain of Xen/IA64, this caused some trobles. PATCHNAME: xen_skbuff_for_non_privileged_domain Signed-off-by: Isaku Yamahata diff -r 161473836da3 -r 023c8624a8a6 linux-2.6-xen-sparse/drivers/xen/core/skbuff.c --- a/linux-2.6-xen-sparse/drivers/xen/core/skbuff.c Wed Jun 14 22:15:13 2006 +0100 +++ b/linux-2.6-xen-sparse/drivers/xen/core/skbuff.c Thu Jun 15 19:59:18 2006 +0900 @@ -121,8 +121,15 @@ static int __init skbuff_init(void) for (order = 0; order <= MAX_SKBUFF_ORDER; order++) { size = PAGE_SIZE << order; sprintf(name[order], "xen-skb-%lu", size); - skbuff_order_cachep[order] = kmem_cache_create( - name[order], size, size, 0, skbuff_ctor, skbuff_dtor); + if (is_running_on_xen() && + (xen_start_info->flags & SIF_PRIVILEGED)) + skbuff_order_cachep[order] = kmem_cache_create( + name[order], size, size, 0, + skbuff_ctor, skbuff_dtor); + else + skbuff_order_cachep[order] = kmem_cache_create( + name[order], size, size, 0, NULL, NULL); + } skbuff_cachep = skbuff_order_cachep[0];