media: radio: wl1273: fix interrupt masking on release
authorJohan Hovold <johan@kernel.org>
Thu, 10 Oct 2019 13:13:32 +0000 (10:13 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 21 Dec 2019 09:42:04 +0000 (10:42 +0100)
commit 1091eb830627625dcf79958d99353c2391f41708 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/radio/radio-wl1273.c

index a93f681aa9d67c2f5dcb9bc6871f7239940960bd..6426b07510a77b3b9a3c73d11a8a8da979dc67ad 100644 (file)
@@ -1149,8 +1149,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;