Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit da191c28 authored by Dan Carpenter's avatar Dan Carpenter Committed by Greg Kroah-Hartman
Browse files

snsc: restore IRQs on error path in scdrv_write()



This bug is as old as git.  We need to be calling spin_unlock_irqrestore()
instead of regular spin_unlock() here.

Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent dd5c472a
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -285,7 +285,7 @@ scdrv_write(struct file *file, const char __user *buf,
		DECLARE_WAITQUEUE(wait, current);
		DECLARE_WAITQUEUE(wait, current);


		if (file->f_flags & O_NONBLOCK) {
		if (file->f_flags & O_NONBLOCK) {
			spin_unlock(&sd->sd_wlock);
			spin_unlock_irqrestore(&sd->sd_wlock, flags);
			up(&sd->sd_wbs);
			up(&sd->sd_wbs);
			return -EAGAIN;
			return -EAGAIN;
		}
		}