[PATCH 2/2] mmc: sdhci-pxav3: Print ret value on error from sdhci_add_host() fn

Vaibhav Hiremath vaibhav.hiremath at linaro.org
Wed Sep 2 08:16:52 PDT 2015



On Wednesday 02 September 2015 08:37 PM, Joe Perches wrote:
> On Wed, 2015-09-02 at 18:37 +0530, Vaibhav Hiremath wrote:
>> On Wednesday 02 September 2015 02:07 AM, Joe Perches wrote:
>>> On Wed, 2015-09-02 at 00:54 +0530, Vaibhav Hiremath wrote:
>>>> Return value would give clear information about the actual root-cause
>>>> of the failure.
>>>> diff --git a/drivers/mmc/host/sdhci-pxav3.c b/drivers/mmc/host/sdhci-pxav3.c
>>>> @@ -455,7 +455,7 @@ static int sdhci_pxav3_probe(struct platform_device *pdev)
>>>>
>>>>    	ret = sdhci_add_host(host);
>>>>    	if (ret) {
>>>> -		dev_err(&pdev->dev, "failed to add host\n");
>>>> +		dev_err(&pdev->dev, "failed to add host ret - %d\n", ret);
>>>>    		goto err_add_host;
>>>>    	}
>>>
>>> If this is really desirable, there are many other callers of
>>> sdhci_add_host with error messages just like this one.
>>>
>> How about this? If you are ok, I can change it and submit the patch
>> again.
>> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
> []
>> @@ -3176,8 +3176,11 @@ int sdhci_add_host(struct sdhci_host *host)
>>                   mmc->caps |= MMC_CAP_NEEDS_POLL;
>>
>>           /* If there are external regulators, get them */
>> -       if (mmc_regulator_get_supply(mmc) == -EPROBE_DEFER)
>> +       if (mmc_regulator_get_supply(mmc) == -EPROBE_DEFER) {
>> +               pr_err("%s: regulator supply unavailable, deferring
>> probe. \n",
>> +                               mmc_hostname(mmc));
>>                   return -EPROBE_DEFER;
>> +       }
>
> (your email client has inappropriate line wrapping)
>
> The KERN_<LEVEL> here probably isn't right.
>
> Deferring isn't an error, at best it's a notification

I would consider it as an ERROR if it gets deferred
continuously/multiple times due to same reason.

> and perhaps should be at pr_notice/KERN_NOTICE
>

Yeah, KERN_NOTICE looks right here.

> I don't know how often or how many times this deferral
> can occur.  Do you?
>

-EDEFER_PROBE usually means that driver has some dependency,
for which it has to wait.
In my case, during every boot, I pxav3_sdhci_probe gets deferred once
due to regulator unavailability.

Thanks,
Vaibhav



More information about the linux-arm-kernel mailing list