On Tue, 2019-06-11 at 16:58 +1000, Benjamin Herrenschmidt wrote: > On Tue, 2019-06-11 at 08:08 +0200, Christoph Hellwig wrote: > > On Tue, Jun 11, 2019 at 03:56:33PM +1000, Benjamin Herrenschmidt > > wrote: > > > The reason I think it sort-of-mostly-worked is that to get more > > > than > > > 1GB of RAM, those machines use CONFIG_HIGHMEM. And *most* network > > > buffers aren't allocated in Highmem.... so you got lucky. > > > > > > That said, there is such as thing as no-copy send on network, so I > > > wouldn't be surprised if some things would still have failed, just > > > not > > > frequent enough for you to notice. > > > > Unless NETIF_F_HIGHDMA is set on a netdev, the core networkign code > > will bounce buffer highmem pages for the driver under all > > circumstances. > > ... which b43legacy doesn't set to the best of my knowledge ... > > Which makes me wonder how come it didn't work even with your patches ? > AFAIK, we have less than 1GB of lowmem unless the config has been > tweaked.... Ah stupid me ... it's dma_set_mask that failed, since it has no idea that the calling driver is limited to lowmem. That's also why the "wrong" patch worked. So yes, a ZONE_DMA at 30-bits will work, though it's somewhat overkill. Cheers, Ben.