On 29 January 2016 at 15:28, Will Deacon <will.deacon@xxxxxxx> wrote: > Hi Ard, > > On Fri, Jan 29, 2016 at 03:17:15PM +0100, Ard Biesheuvel wrote: >> Instead of iterating over the PCI config window and performing individual >> ioremap() calls on all the adjacent slices, perform a single ioremap() to >> map the entire region, and divvy it up later. This not only prevents >> leaving some of it mapped if we fail half way through, it also ensures that >> archs that support huge-vmap can use section mappings to perform the >> mapping. >> >> On my Seattle A0 box, this transforms 128 separate 1 MB mappings that are >> mapped down to 4 KB pages into a single 128 MB mapping using 2 MB sections, >> saving 512 KB worth of page tables. >> >> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> >> --- > > The code was written this way in response to feedback during driver review > that we couldn't necessarily grab that much contiguous vmalloc space on > 32-bit ARM. Unless that's changed, we probably want to to predicate this > change on having a 64-bit arch. > Ah right. How about testing for the ARCH_HAVE_HUGE_VMAP Kconfig symbol explicitly? -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html