[PATCH linux dev-4.10 v4 08/31] drivers: fsi: sbefifo: Do an earlier get_client call
Eddie James
eajames at linux.vnet.ibm.com
Fri Oct 6 13:05:30 AEDT 2017
From: "Edward A. James" <eajames at us.ibm.com>
Get client before we start using it.
Signed-off-by: Edward A. James <eajames at us.ibm.com>
Acked-by: Andrew Jeffery <andrew at aj.id.au>
---
drivers/fsi/fsi-sbefifo.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/fsi/fsi-sbefifo.c b/drivers/fsi/fsi-sbefifo.c
index a5bdc75..5efba30 100644
--- a/drivers/fsi/fsi-sbefifo.c
+++ b/drivers/fsi/fsi-sbefifo.c
@@ -656,6 +656,7 @@ static ssize_t sbefifo_write_common(struct sbefifo_client *client,
if (!len)
return 0;
+ sbefifo_get_client(client);
n = sbefifo_buf_nbwriteable(&client->wbuf);
spin_lock_irq(&sbefifo->lock);
@@ -663,19 +664,19 @@ static ssize_t sbefifo_write_common(struct sbefifo_client *client,
if ((client->f_flags & O_NONBLOCK) && xfr && n < len) {
spin_unlock_irq(&sbefifo->lock);
- return -EAGAIN;
+ ret = -EAGAIN;
+ goto out;
}
xfr = sbefifo_enq_xfr(client);
if (!xfr) {
spin_unlock_irq(&sbefifo->lock);
- return -ENOMEM;
+ ret = -ENOMEM;
+ goto out;
}
spin_unlock_irq(&sbefifo->lock);
- sbefifo_get_client(client);
-
/*
* Partial writes are not really allowed in that EOT is sent exactly
* once per write.
--
1.8.3.1
More information about the openbmc
mailing list