From: kaf24@firebug.cl.cam.ac.uk Date: Thu, 15 Jun 2006 12:19:04 +0000 (+0100) Subject: [LINUX] Network buffers do not need to be multi-page contiguous X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15955^2~3 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=d406847ecc9f8c68261c618850eb52edcc2747be;p=xen.git [LINUX] Network buffers do not need to be multi-page contiguous for unprivileged domains (in any case, can fall back to swiotlb). On non-privileged domain of Xen/IA64, this caused some trouble. Signed-off-by: Isaku Yamahata --- diff --git a/linux-2.6-xen-sparse/drivers/xen/core/skbuff.c b/linux-2.6-xen-sparse/drivers/xen/core/skbuff.c index 22ff9ef8a6..f38f3cffed 100644 --- a/linux-2.6-xen-sparse/drivers/xen/core/skbuff.c +++ b/linux-2.6-xen-sparse/drivers/xen/core/skbuff.c @@ -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];