Search Linux Wireless

Re: [PATCHv2] wifi: ath9k: return by of_get_mac_address

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 5, 2024 at 5:21 AM Toke Høiland-Jørgensen <toke@xxxxxxx> wrote:
>
> Rosen Penev <rosenp@xxxxxxxxx> writes:
>
> > When using nvmem, ath9k could potentially be loaded before nvmem, which
> > loads after mtd. This is an issue if DT contains an nvmem mac address.
> >
> > If nvmem is not ready in time for ath9k, -EPROBE_DEFER is returned. Pass
> > it to _probe so that ath9k can properly grab a potentially present MAC
> > address.
> >
> > Signed-off-by: Rosen Penev <rosenp@xxxxxxxxx>
> > ---
> >  v2: modified commit message
> >  drivers/net/wireless/ath/ath9k/init.c | 4 +---
> >  1 file changed, 1 insertion(+), 3 deletions(-)
> >
> > diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
> > index f712bb6d1f47..5f4efc760183 100644
> > --- a/drivers/net/wireless/ath/ath9k/init.c
> > +++ b/drivers/net/wireless/ath/ath9k/init.c
> > @@ -647,9 +647,7 @@ static int ath9k_of_init(struct ath_softc *sc)
> >               ah->ah_flags |= AH_NO_EEP_SWAP;
> >       }
> >
> > -     of_get_mac_address(np, common->macaddr);
> > -
> > -     return 0;
> > +     return of_get_mac_address(np, common->macaddr);
>
> Hmm, so AFAICT, of_get_mac_address() can fail with lots of other error
> codes than EPROBE_DEFER, no? And with this change, if it does, we now
> abort the ath9k device init, where before we just ignored any errors.
>
> So, to be conservative, maybe it's better to do something like:
>
> ret = of_get_mac_address(np, common->macaddr);
> if (ret == -EPROBE_DEFER)
>    return ret;
>
> return 0;
>
>
> WDYT?
I agree. Sent v3.
>
> -Toke





[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux