mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
ALSA: us122l: mark hwdep mappings VM_MIXEDMAP
mm has recently moved to a strict model which requires any driver which clears VMA_MAYWRITE_BIT to be mapping non-mm-managed memory (VMA_PFNMAP_BIT or VMA_MIXEDMAP_BIT), failing any such mmap() with an error and a kernel warning - see "mm/vma: only allow mmap to clear VMA_MAYWRITE_BIT if not mm-managed". However, simultaneous to this, commit71c610aeb1("ALSA: us122l: Prevent write upgrades for read mappings") updated us122l to clear VMA_MAYWRITE_BIT without marking the region with either VMA_PFNMAP_BIT or VMA_MIXEDMAP_BIT. vm_insert_pages() and friends set this automatically, however this driver maps its pre-allocated pages from a fault handler, so never calls these. Simply set the flag in usb_stream_hwdep_mmap() to resolve the issue. This correctly marks the mapping as one whose pages core mm does not manage, which has no meaningful impact for this driver beyond preventing the mmap() from failing. Link: https://lore.kernel.org/20261023-fix-us122l-mixedmap-v1-1-e7bdd053850f@kernel.org Fixes:71c610aeb1("ALSA: us122l: Prevent write upgrades for read mappings") Signed-off-by: Lorenzo Stoakes (ARM) <ljs@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reported-by: David Carlier <devnexen@gmail.com> Closes: https://lore.kernel.org/20261018025905.201296-1-devnexen@gmail.com Acked-by: Takashi Iwai <tiwai@suse.de> Cc: Kazuki Hanai <hnkz.64@gmail.com> Cc: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
parent
4590752e20
commit
bbde9d5bdd
|
|
@ -193,7 +193,7 @@ static int usb_stream_hwdep_mmap(struct snd_hwdep *hw,
|
|||
}
|
||||
|
||||
area->vm_ops = &usb_stream_hwdep_vm_ops;
|
||||
vm_flags_set(area, VM_DONTDUMP);
|
||||
vm_flags_set(area, VM_MIXEDMAP | VM_DONTDUMP);
|
||||
if (!read)
|
||||
vm_flags_set(area, VM_DONTEXPAND);
|
||||
area->vm_private_data = us122l;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user