From: Alexey Klimov <klimov.linux@gmail.com> Date: Sun, 25 Jan 2009 23:07:28 +0000 (-0300) Subject: V4L/DVB (10317): radio-mr800: fix radio->muted and radio->stereo X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=7f03a5856c1c32ddc7b6b7a31bd43a4ab8e29f90;p=linux.git V4L/DVB (10317): radio-mr800: fix radio->muted and radio->stereo Move radio->muted and radio->stereo in section where radio mutex is locked to avoid possible race condition problems or access to memory. Thanks to David Ellingsworth <david@identd.dyndns.org> for pointing to this weak place in driver. Signed-off-by: Alexey Klimov <klimov.linux@gmail.com> Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com> --- diff --git a/drivers/media/radio/radio-mr800.c b/drivers/media/radio/radio-mr800.c index 0747dc8862b09..fdfc7bf86b9e1 100644 --- a/drivers/media/radio/radio-mr800.c +++ b/drivers/media/radio/radio-mr800.c @@ -194,10 +194,10 @@ static int amradio_start(struct amradio_device *radio) return retval; } - mutex_unlock(&radio->lock); - radio->muted = 0; + mutex_unlock(&radio->lock); + return retval; } @@ -230,10 +230,10 @@ static int amradio_stop(struct amradio_device *radio) return retval; } - mutex_unlock(&radio->lock); - radio->muted = 1; + mutex_unlock(&radio->lock); + return retval; } @@ -284,10 +284,10 @@ static int amradio_setfreq(struct amradio_device *radio, int freq) return retval; } - mutex_unlock(&radio->lock); - radio->stereo = 0; + mutex_unlock(&radio->lock); + return retval; }