On Sat, Feb 10, 2024, at 00:41, Linus Walleij wrote: > On Fri, Feb 9, 2024 at 11:35 PM Michał Mirosław <mirq-linux@xxxxxxxxxxxx> wrote: > >> > I think it's worth mentioning the cb710 example here, which >> > uses a platform device as a child of a PCI device and >> > does not assign a DMA mask nor use DMA. >> > >> > This one will see a change in behavior, meaning that the >> > blockdev buffers are no longer bounced. As far as I can >> > tell, this is fine because the driver appears to correctly >> > use the sg_iter infrastructure for mapping data pages, >> > but it would be good to have this confirmed by >> > Michał Mirosław because this code path has probably never >> > been tested without BLK_BOUNCE_HIGH. >> >> Hi, this driver doesn't do DMA at all, so having DMA mask set or not >> it should be good as long as the CPU can read/write the buffers. > > The only difference is where the CPU have to read/write the > buffers really, before the change those were all guaranteed to > be in lowmem (bounced there by the block core), now they can > also be in highmem, but sg_miter will deal with it for sure. Yes, that was my point: The sg_miter() code is meant to handle exactly this case with highmem data, but as far as I can tell, that code path has never been tested on 32-bit systems with highmem but without BLK_BOUNCE_HIGH. Arnd