diff mbox series

[v2] mmc: host: Use dev_err_probe instead of dev_err

Message ID 20230726115022.5403-1-machel@vivo.com (mailing list archive)
State New, archived
Headers show
Series [v2] mmc: host: Use dev_err_probe instead of dev_err | expand

Commit Message

Wang Ming July 26, 2023, 11:50 a.m. UTC
It is possible that dma_request_chan will return EPROBE_DEFER,
which means that host->dev is not ready yet. In this case,
dev_err(host->dev), there will be no output. This patch fixes the bug.

Signed-off-by: Wang Ming <machel@vivo.com>
---
 drivers/mmc/host/dw_mmc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Ulf Hansson Aug. 7, 2023, 3:38 p.m. UTC | #1
On Wed, 26 Jul 2023 at 13:50, Wang Ming <machel@vivo.com> wrote:
>
> It is possible that dma_request_chan will return EPROBE_DEFER,
> which means that host->dev is not ready yet. In this case,
> dev_err(host->dev), there will be no output. This patch fixes the bug.

More exactly, what do you mean by "host->dev is not ready yet"?

Did you really test this?

Kind regards
Uffe

>
> Signed-off-by: Wang Ming <machel@vivo.com>
> ---
>  drivers/mmc/host/dw_mmc.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
> index 829af2c98a44..5a3eefd86931 100644
> --- a/drivers/mmc/host/dw_mmc.c
> +++ b/drivers/mmc/host/dw_mmc.c
> @@ -841,9 +841,9 @@ static int dw_mci_edmac_init(struct dw_mci *host)
>
>         host->dms->ch = dma_request_chan(host->dev, "rx-tx");
>         if (IS_ERR(host->dms->ch)) {
> -               int ret = PTR_ERR(host->dms->ch);
> +               int ret = dev_err_probe(host->dev, PTR_ERR(host->dms->ch),
> +                       "Failed to get external DMA channel.\n");
>
> -               dev_err(host->dev, "Failed to get external DMA channel.\n");
>                 kfree(host->dms);
>                 host->dms = NULL;
>                 return ret;
> --
> 2.25.1
>
diff mbox series

Patch

diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index 829af2c98a44..5a3eefd86931 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -841,9 +841,9 @@  static int dw_mci_edmac_init(struct dw_mci *host)
 
 	host->dms->ch = dma_request_chan(host->dev, "rx-tx");
 	if (IS_ERR(host->dms->ch)) {
-		int ret = PTR_ERR(host->dms->ch);
+		int ret = dev_err_probe(host->dev, PTR_ERR(host->dms->ch),
+			"Failed to get external DMA channel.\n");
 
-		dev_err(host->dev, "Failed to get external DMA channel.\n");
 		kfree(host->dms);
 		host->dms = NULL;
 		return ret;