projects
/
GitHub
/
LineageOS
/
android_kernel_motorola_exynos9610.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
e2b0509
)
spi: spi-rspi: fix inconsistent spin_lock_irqsave
author
Shimoda, Yoshihiro
<yoshihiro.shimoda.uh@renesas.com>
Tue, 27 Aug 2013 02:15:09 +0000
(11:15 +0900)
committer
Mark Brown
<broonie@linaro.org>
Tue, 27 Aug 2013 14:55:41 +0000
(15:55 +0100)
This patch fixes the following Smatch warning:
CHECK drivers/spi/spi-rspi.c
drivers/spi/spi-rspi.c:606 rspi_work() warn: inconsistent returns spin_lock:&rspi->lock: locked (602) unlocked (606)
drivers/spi/spi-rspi.c:606 rspi_work() warn: inconsistent returns irqsave:flags: locked (602) unlocked (606)
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
drivers/spi/spi-rspi.c
patch
|
blob
|
blame
|
history
diff --git
a/drivers/spi/spi-rspi.c
b/drivers/spi/spi-rspi.c
index 5f122d9d2063d39bdc4da2a0415e0caa8f5f48f2..00c32320dce87c0adb66eca0eef65e9d2c417e2c 100644
(file)
--- a/
drivers/spi/spi-rspi.c
+++ b/
drivers/spi/spi-rspi.c
@@
-564,8
+564,12
@@
static void rspi_work(struct work_struct *work)
unsigned long flags;
int ret;
- spin_lock_irqsave(&rspi->lock, flags);
- while (!list_empty(&rspi->queue)) {
+ while (1) {
+ spin_lock_irqsave(&rspi->lock, flags);
+ if (list_empty(&rspi->queue)) {
+ spin_unlock_irqrestore(&rspi->lock, flags);
+ break;
+ }
mesg = list_entry(rspi->queue.next, struct spi_message, queue);
list_del_init(&mesg->queue);
spin_unlock_irqrestore(&rspi->lock, flags);
@@
-595,8
+599,6
@@
static void rspi_work(struct work_struct *work)
mesg->status = 0;
mesg->complete(mesg->context);
-
- spin_lock_irqsave(&rspi->lock, flags);
}
return;