From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: Cyril Bur <cyrilbur@gmail.com>
Cc: linux-mtd@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
stewart@linux.vnet.ibm.com, computersforpeace@gmail.com,
dwmw2@infradead.org, sjitindarsingh@gmail.com
Subject: Re: [PATCH v4 02/10] mtd: powernv_flash: Don't treat OPAL_SUCCESS as an error
Date: Mon, 30 Oct 2017 09:50:14 +0100 [thread overview]
Message-ID: <20171030095014.7a77d827@bbrezillon> (raw)
In-Reply-To: <20171010033302.20854-3-cyrilbur@gmail.com>
On Tue, 10 Oct 2017 14:32:54 +1100
Cyril Bur <cyrilbur@gmail.com> wrote:
> While this driver expects to interact asynchronously, OPAL is well
> within its rights to return OPAL_SUCCESS to indicate that the operation
> completed without the need for a callback. We shouldn't treat
> OPAL_SUCCESS as an error rather we should wrap up and return promptly to
> the caller.
>
> Signed-off-by: Cyril Bur <cyrilbur@gmail.com>
Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> ---
> I'll note here that currently no OPAL exists that will return
> OPAL_SUCCESS so there isn't the possibility of a bug today.
> ---
> drivers/mtd/devices/powernv_flash.c | 15 ++++++++++-----
> 1 file changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/mtd/devices/powernv_flash.c b/drivers/mtd/devices/powernv_flash.c
> index f9ec38281ff2..ca3ca6adf71e 100644
> --- a/drivers/mtd/devices/powernv_flash.c
> +++ b/drivers/mtd/devices/powernv_flash.c
> @@ -63,7 +63,6 @@ static int powernv_flash_async_op(struct mtd_info *mtd, enum flash_op op,
> if (token < 0) {
> if (token != -ERESTARTSYS)
> dev_err(dev, "Failed to get an async token\n");
> -
> return token;
> }
>
> @@ -83,21 +82,25 @@ static int powernv_flash_async_op(struct mtd_info *mtd, enum flash_op op,
> return -EIO;
> }
>
> + if (rc == OPAL_SUCCESS)
> + goto out_success;
> +
> if (rc != OPAL_ASYNC_COMPLETION) {
> dev_err(dev, "opal_flash_async_op(op=%d) failed (rc %d)\n",
> op, rc);
> - opal_async_release_token(token);
> - return -EIO;
> + rc = -EIO;
> + goto out;
> }
>
> rc = opal_async_wait_response(token, &msg);
> - opal_async_release_token(token);
> if (rc) {
> dev_err(dev, "opal async wait failed (rc %d)\n", rc);
> - return -EIO;
> + rc = -EIO;
> + goto out;
> }
>
> rc = opal_get_async_rc(msg);
> +out_success:
> if (rc == OPAL_SUCCESS) {
> rc = 0;
> if (retlen)
> @@ -106,6 +109,8 @@ static int powernv_flash_async_op(struct mtd_info *mtd, enum flash_op op,
> rc = -EIO;
> }
>
> +out:
> + opal_async_release_token(token);
> return rc;
> }
>
next prev parent reply other threads:[~2017-10-30 8:50 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-10 3:32 [PATCH v4 00/10] Allow opal-async waiters to get interrupted Cyril Bur
2017-10-10 3:32 ` [PATCH v4 01/10] mtd: powernv_flash: Use WARN_ON_ONCE() rather than BUG_ON() Cyril Bur
2017-10-30 8:49 ` Boris Brezillon
2017-10-10 3:32 ` [PATCH v4 02/10] mtd: powernv_flash: Don't treat OPAL_SUCCESS as an error Cyril Bur
2017-10-30 8:50 ` Boris Brezillon [this message]
2017-10-10 3:32 ` [PATCH v4 03/10] mtd: powernv_flash: Remove pointless goto in driver init Cyril Bur
2017-10-30 8:51 ` Boris Brezillon
2017-10-10 3:32 ` [PATCH v4 04/10] mtd: powernv_flash: Don't return -ERESTARTSYS on interrupted token acquisition Cyril Bur
2017-10-30 8:51 ` Boris Brezillon
2017-10-10 3:32 ` [PATCH v4 05/10] powerpc/opal: Make __opal_async_{get, release}_token() static Cyril Bur
2017-10-10 3:32 ` [PATCH v4 06/10] powerpc/opal: Rework the opal-async interface Cyril Bur
2017-10-10 3:32 ` [PATCH v4 07/10] powernv/opal-sensor: remove not needed lock Cyril Bur
2017-10-10 3:33 ` [PATCH v4 08/10] powerpc/opal: Add opal_async_wait_response_interruptible() to opal-async Cyril Bur
2017-10-10 3:33 ` [PATCH v4 09/10] powerpc/powernv: Add OPAL_BUSY to opal_error_code() Cyril Bur
2017-10-10 3:33 ` [PATCH v4 10/10] mtd: powernv_flash: Use opal_async_wait_response_interruptible() Cyril Bur
2017-10-30 9:14 ` Boris Brezillon
2017-10-30 9:15 ` [PATCH v4 00/10] Allow opal-async waiters to get interrupted Boris Brezillon
2017-10-30 22:52 ` Cyril Bur
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171030095014.7a77d827@bbrezillon \
--to=boris.brezillon@free-electrons.com \
--cc=computersforpeace@gmail.com \
--cc=cyrilbur@gmail.com \
--cc=dwmw2@infradead.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=sjitindarsingh@gmail.com \
--cc=stewart@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.