ALSA: Fix compat_ioctl handling for OSS emulations
authorTakashi Iwai <tiwai@suse.de>
Thu, 3 Dec 2015 16:19:31 +0000 (17:19 +0100)
committerTakashi Iwai <tiwai@suse.de>
Thu, 3 Dec 2015 16:40:21 +0000 (17:40 +0100)
commit83266b6b60b6727af986e84a133dae24d394c3e8
tree154f1a4d5da6347c89fb79ed055dcab1d9e6741f
parenteb399d3c99d8b411bfc46e67ea329ddc1ca64e87
ALSA: Fix compat_ioctl handling for OSS emulations

The ALSA PCM, mixer and sequencer OSS emulations provide the 32bit
compatible ioctl, but they just call the 64bit native ioctl as is.
Although this works in most cases, passing the argument value as-is
isn't guaranteed to work on all architectures.  We need to convert it
via compat_ptr() instead.

This patch addresses the missing conversions.  Since all relevant
ioctls in these functions take the argument as a pointer, we do the
pointer conversion in each compat_ioctl and pass it as a 64bit value
to the native ioctl.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/oss/mixer_oss.c
sound/core/oss/pcm_oss.c
sound/core/seq/oss/seq_oss.c