All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adrian Hunter <adrian.hunter@intel.com>
To: Ulf Hansson <ulf.hansson@linaro.org>, linux-mmc@vger.kernel.org
Cc: Linus Walleij <linus.walleij@linaro.org>,
	Wolfram Sang <wsa+renesas@sang-engineering.com>,
	Pierre Ossman <pierre@ossman.eu>,
	Russell King <linux@armlinux.org.uk>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] mmc: core: Drop superfluous validations in mmc_hw|sw_reset()
Date: Tue, 16 Feb 2021 10:32:57 +0200	[thread overview]
Message-ID: <673dd1f3-d5b7-8590-093a-f01ef54ca40a@intel.com> (raw)
In-Reply-To: <20210212131532.236775-1-ulf.hansson@linaro.org>

On 12/02/21 3:15 pm, Ulf Hansson wrote:
> The mmc_hw|sw_reset() APIs are designed to be called solely from upper
> layers, which means drivers that operates on top of the struct mmc_card,
> like the mmc block device driver and an SDIO functional driver.
> 
> Additionally, as long as the struct mmc_host has a valid pointer to a
> struct mmc_card, the corresponding host->bus_ops pointer stays valid and
> assigned.
> 
> For these reasons, let's drop the superfluous reference counting and the
> redundant validations in mmc_hw|sw_reset().
> 
> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

Reviewed-by: Adrian Hunter <adrian.hunter@intel.com>

> ---
> 
> Note, ideally mmc_hw|sw_reset() shall be converted to take a struct mmc_card*
> as an in-parameter, rather than the current struct mmc_host*, but that is left
> to a future/separate change.
> 
> ---
>  drivers/mmc/core/block.c |  2 +-
>  drivers/mmc/core/core.c  | 21 +--------------------
>  2 files changed, 2 insertions(+), 21 deletions(-)
> 
> diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c
> index b877f62df366..b7d3f5a73388 100644
> --- a/drivers/mmc/core/block.c
> +++ b/drivers/mmc/core/block.c
> @@ -947,7 +947,7 @@ static int mmc_blk_reset(struct mmc_blk_data *md, struct mmc_host *host,
>  	md->reset_done |= type;
>  	err = mmc_hw_reset(host);
>  	/* Ensure we switch back to the correct partition */
> -	if (err != -EOPNOTSUPP) {
> +	if (err) {
>  		struct mmc_blk_data *main_md =
>  			dev_get_drvdata(&host->card->dev);
>  		int part_err;
> diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
> index 1136b859ddd8..2e41fa598bd6 100644
> --- a/drivers/mmc/core/core.c
> +++ b/drivers/mmc/core/core.c
> @@ -2080,18 +2080,7 @@ int mmc_hw_reset(struct mmc_host *host)
>  {
>  	int ret;
>  
> -	if (!host->card)
> -		return -EINVAL;
> -
> -	mmc_bus_get(host);
> -	if (!host->bus_ops || host->bus_dead || !host->bus_ops->hw_reset) {
> -		mmc_bus_put(host);
> -		return -EOPNOTSUPP;
> -	}
> -
>  	ret = host->bus_ops->hw_reset(host);
> -	mmc_bus_put(host);
> -
>  	if (ret < 0)
>  		pr_warn("%s: tried to HW reset card, got error %d\n",
>  			mmc_hostname(host), ret);
> @@ -2104,18 +2093,10 @@ int mmc_sw_reset(struct mmc_host *host)
>  {
>  	int ret;
>  
> -	if (!host->card)
> -		return -EINVAL;
> -
> -	mmc_bus_get(host);
> -	if (!host->bus_ops || host->bus_dead || !host->bus_ops->sw_reset) {
> -		mmc_bus_put(host);
> +	if (!host->bus_ops->sw_reset)
>  		return -EOPNOTSUPP;
> -	}
>  
>  	ret = host->bus_ops->sw_reset(host);
> -	mmc_bus_put(host);
> -
>  	if (ret)
>  		pr_warn("%s: tried to SW reset card, got error %d\n",
>  			mmc_hostname(host), ret);
> 


      reply	other threads:[~2021-02-16  8:33 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <p2/0002-mmc-core-Drop-reference-counting-of-the-bus_ops.patch>
2021-02-12 13:15 ` [PATCH 1/2] mmc: core: Drop superfluous validations in mmc_hw|sw_reset() Ulf Hansson
2021-02-16  8:32   ` Adrian Hunter [this message]

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=673dd1f3-d5b7-8590-093a-f01ef54ca40a@intel.com \
    --to=adrian.hunter@intel.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=pierre@ossman.eu \
    --cc=ulf.hansson@linaro.org \
    --cc=wsa+renesas@sang-engineering.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.