]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ALSA: hda - Fix non-snoop page handling
authorTakashi Iwai <tiwai@suse.de>
Tue, 29 Jan 2013 17:07:22 +0000 (18:07 +0100)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 6 Feb 2013 04:33:50 +0000 (04:33 +0000)
commitd027778a1cf87dda708c66364d5bebd1e3be9ae9
treed2a5b25a110fb443bf3f946f07ad4c4dbaa8e992
parente807626e32eb159914cee54473d17082a1920039
ALSA: hda - Fix non-snoop page handling

commit 9ddf1aeb2134e72275c97a2c6ff2e3eb04f2f27a upstream.

For non-snoop mode, we fiddle with the page attributes of CORB/RIRB
and the position buffer, but also the ring buffers.  The problem is
that the current code blindly assumes that the buffer is contiguous.
However, the ring buffers may be SG-buffers, thus a wrong vmapped
address is passed there, leading to Oops.

This patch fixes the handling for SG-buffers.

Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=800701

Signed-off-by: Takashi Iwai <tiwai@suse.de>
[bwh: Backported to 3.2: open-code snd_pcm_get_dma_buf()]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
sound/pci/hda/hda_intel.c