ALSA: memalloc: Fix mmap of SG-buffer with WC pages
authorTakashi Iwai <tiwai@suse.de>
Sun, 8 Aug 2021 08:00:34 +0000 (10:00 +0200)
committerTakashi Iwai <tiwai@suse.de>
Sun, 8 Aug 2021 08:01:33 +0000 (10:01 +0200)
commit9732c148d0ced6dd0c5feb0da91f979c6beb5c93
treede6b319f437a7cb2106d7e92ed72b3df2474b2ad
parentdf8bcf36be2755a39c2f1bcc1ea3c18329c29931
ALSA: memalloc: Fix mmap of SG-buffer with WC pages

The code refactoring to move the WC page handling into the common
memalloc layer caused a breakage for HD-audio HDMI.  I overlooked that
the driver is using the SG-buffer, which isn't covered by the patch.

This patch adds the mmap workaround for WC pages to SG-buffer
handler.  A caveat is that it falls back to the default handler by
returning an error after setting the pgprot, so it won't work in all
cases but merely for PCM (which is currently the only use case).

Fixes: 623c10108338 ("ALSA: memalloc: Fix pgprot for WC mmap on x86")
Reported-and-tested-by: Andy Lavr <andy.lavr@gmail.com>
Link: https://lore.kernel.org/r/20210808080034.20337-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/sgbuf.c