media: radio: wl1273: fix interrupt masking on release
authorJohan Hovold <johan@kernel.org>
Thu, 10 Oct 2019 13:13:32 +0000 (10:13 -0300)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Tue, 5 Nov 2019 11:50:34 +0000 (08:50 -0300)
If a process is interrupted while accessing the radio device and the
core lock is contended, release() could return early and fail to update
the interrupt mask.

Note that the return value of the v4l2 release file operation is
ignored.

Fixes: 87d1a50ce451 ("[media] V4L2: WL1273 FM Radio: TI WL1273 FM radio driver")
Cc: stable <stable@vger.kernel.org> # 2.6.38
Cc: Matti Aaltonen <matti.j.aaltonen@nokia.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/radio/radio-wl1273.c

index 104ac41c6f9640dd3e81f97c054caec4020fa890..1123768731676a0aaf0c8d2183f3607d5301ef5e 100644 (file)
@@ -1148,8 +1148,7 @@ static int wl1273_fm_fops_release(struct file *file)
        if (radio->rds_users > 0) {
                radio->rds_users--;
                if (radio->rds_users == 0) {
-                       if (mutex_lock_interruptible(&core->lock))
-                               return -EINTR;
+                       mutex_lock(&core->lock);
 
                        radio->irq_flags &= ~WL1273_RDS_EVENT;