Re: [PATCH] brcmfmac: pcie: fix oops on failure to resume and reprobe

From: Ahmad Fatoum
Date: Tue Aug 17 2021 - 09:20:01 EST


On 17.08.21 15:06, Andy Shevchenko wrote:
> On Tue, Aug 17, 2021 at 3:07 PM Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> wrote:
>> On 17.08.21 14:03, Ahmad Fatoum wrote:
>>> On 17.08.21 13:54, Andy Shevchenko wrote:
>>>> On Tue, Aug 17, 2021 at 2:11 PM Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> wrote:
>>>>> On 17.08.21 13:02, Andy Shevchenko wrote:
>>>>>> On Tuesday, August 17, 2021, Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> wrote:
>
> ...
>
>>>>>>> err = brcmf_pcie_probe(pdev, NULL);
>>>>>>> if (err)
>>>>>>> - brcmf_err(bus, "probe after resume failed, err=%d\n", err);
>>>>>>> + __brcmf_err(NULL, __func__, "probe after resume failed,
>>>>>>> err=%d\n",
>>>>>>
>>>>>>
>>>>>> This is weird looking line now. Why can’t you simply use dev_err() /
>>>>>> netdev_err()?
>>>>>
>>>>> That's what brcmf_err normally expands to, but in this file the macro
>>>>> is overridden to add the extra first argument.
>>>>
>>>> So, then the problem is in macro here. You need another portion of
>>>> macro(s) that will use the dev pointer directly. When you have a valid
>>>> device, use it. And here it seems the case.
>>>
>>> Ah, you mean using pdev instead of the stale bus. Ye, I could do that.
>>> Thanks for pointing out.
>>
>> Ah, not so easy: __brcmf_err accepts a struct brcmf_bus * as first argument,
>> but there is none I can pass along. As the whole file uses the brcm_
>> logging functions, I'd just leave this one without a device.
>
> And what exactly prevents you to split that to something like
>
> __brcm_dev_err() // as current __brcm_err with dev argument
> {
> ...
> }
>
> __brsm_err(bus, ...) __brcm_dev_err(bus->dev, ...)
>
> ?

I like my regression fixes to be short and to the point.

Cheers,
Ahmad


--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |