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

Commit 8d4d08ce authored by Shimoda, Yoshihiro's avatar Shimoda, Yoshihiro Committed by Mark Brown
Browse files

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:flags: locked (602) unlocked (606)

Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent e2b05099
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -564,8 +564,12 @@ static void rspi_work(struct work_struct *work)
	unsigned long flags;
	int ret;

	while (1) {
		spin_lock_irqsave(&rspi->lock, flags);
	while (!list_empty(&rspi->queue)) {
		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;