提交 d0b9f2c9 编写于 作者: J Johan Hovold 提交者: Yang Yingliang

media: radio: wl1273: fix interrupt masking on release

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: 87d1a50c ("[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: NJohan Hovold <johan@kernel.org>
Signed-off-by: NHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: NMauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 f73929cf
...@@ -1156,8 +1156,7 @@ static int wl1273_fm_fops_release(struct file *file) ...@@ -1156,8 +1156,7 @@ static int wl1273_fm_fops_release(struct file *file)
if (radio->rds_users > 0) { if (radio->rds_users > 0) {
radio->rds_users--; radio->rds_users--;
if (radio->rds_users == 0) { if (radio->rds_users == 0) {
if (mutex_lock_interruptible(&core->lock)) mutex_lock(&core->lock);
return -EINTR;
radio->irq_flags &= ~WL1273_RDS_EVENT; radio->irq_flags &= ~WL1273_RDS_EVENT;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册