Jan Beulich
2008-Aug-29 13:29 UTC
[Xen-devel] [PATCH] linux: don''t round up swiotlb slab count
This has been unnecessary for a long time, as xen_create_contiguous_region() is no longer called on the whole area at once, and the rounding can (under certain circumstances) prevent the kernel from successfully booting when a larger than the default size is needed. As usual, written and tested on 2.6.27-rc4 and made apply to the 2.6.18 tree without further testing. Signed-off-by: Jan Beulich <jbeulich@novell.com> Index: head-2008-08-22/lib/swiotlb-xen.c ==================================================================--- head-2008-08-22.orig/lib/swiotlb-xen.c 2008-08-29 09:48:32.000000000 +0200 +++ head-2008-08-22/lib/swiotlb-xen.c 2008-08-29 09:51:17.000000000 +0200 @@ -114,9 +114,6 @@ setup_io_tlb_npages(char *str) iotlb_nslabs = simple_strtoul(str, &str, 0) << (20 - IO_TLB_SHIFT); iotlb_nslabs = ALIGN(iotlb_nslabs, IO_TLB_SEGSIZE); - /* Round up to power of two (xen_create_contiguous_region). */ - while (iotlb_nslabs & (iotlb_nslabs-1)) - iotlb_nslabs += iotlb_nslabs & ~(iotlb_nslabs-1); } if (*str == '','') ++str; @@ -147,9 +144,6 @@ swiotlb_init_with_default_size(size_t de if (!iotlb_nslabs) { iotlb_nslabs = (default_size >> IO_TLB_SHIFT); iotlb_nslabs = ALIGN(iotlb_nslabs, IO_TLB_SEGSIZE); - /* Round up to power of two (xen_create_contiguous_region). */ - while (iotlb_nslabs & (iotlb_nslabs-1)) - iotlb_nslabs += iotlb_nslabs & ~(iotlb_nslabs-1); } bytes = iotlb_nslabs * (1UL << IO_TLB_SHIFT); _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel