Re: [6.2][regression] after commit ffcb754584603adf7039d7972564fbf6febdc542 all sound devices disappeared (due BUG at mm/page_alloc.c:3592!)

From: Robin Murphy
Date: Fri Dec 16 2022 - 07:53:10 EST


On 2022-12-16 12:15, Christoph Hellwig wrote:
On Fri, Dec 16, 2022 at 11:40:57AM +0000, Robin Murphy wrote:
On 2022-12-16 06:46, Christoph Hellwig wrote:
Ok, it seems like the sound noncontig alloc code that I already
commented on as potentially bogus GFP_GOMP mapping trips this. I think
for now the right thing would be to revert the hunk in dma-iommu.c
(see patch below). The other thing to try would be to remove both
uses GFP_COMP in sound/core/memalloc.c, which should have the same
effect.

Or we explicitly strip the flag in dma_alloc_noncontiguous() (and maybe
dma_alloc_pages() as well) for consistency with dma_alloc_attrs(). That
seems like it might be the most robust option.

In the long run warning there and returning an error seems like the
right thing to do, yes. I'm just a little worried doing this right now
after the merge window.

Fair point, I guess nobody else actually implements dma_alloc_noncontiguous(), and dma_alloc_pages() seems a bit of a grey area since it is more of an explicit page allocator. So yeah, just restoring iommu-dma (perhaps with a mild VM_WARN_ON?) seems like a sufficiently safe and sensible fix for the short term. You can have my pre-emptive ack for that.

Cheers,
Robin.