mirror of
https://github.com/torvalds/linux.git
synced 2024-11-07 04:32:03 +00:00
spi: spi-rspi: fix inconsistent spin_lock_irqsave
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🎏 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>
This commit is contained in:
parent
e2b0509908
commit
8d4d08ce83
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user