[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20161118113057.GB3150@mwanda>
Date: Fri, 18 Nov 2016 14:30:57 +0300
From: Dan Carpenter <dan.carpenter@...cle.com>
To: Arnd Bergmann <arnd@...db.de>
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
linux-kernel@...r.kernel.org, kernel-janitors@...r.kernel.org
Subject: [patch] 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: Dan Carpenter <dan.carpenter@...cle.com>
diff --git a/drivers/char/snsc.c b/drivers/char/snsc.c
index 10e5632..ec07f0e 100644
--- a/drivers/char/snsc.c
+++ b/drivers/char/snsc.c
@@ -285,7 +285,7 @@ scdrv_write(struct file *file, const char __user *buf,
DECLARE_WAITQUEUE(wait, current);
if (file->f_flags & O_NONBLOCK) {
- spin_unlock(&sd->sd_wlock);
+ spin_unlock_irqrestore(&sd->sd_wlock, flags);
up(&sd->sd_wbs);
return -EAGAIN;
}
Powered by blists - more mailing lists