On 26.02.2019 09:43, Russell King - ARM Linux admin wrote: > On Tue, Feb 26, 2019 at 08:25:41AM +0100, Heiner Kallweit wrote: >> When debugging an issue I found implausible values in state->pause. >> Reason in that state->pause isn't initialized and later only single >> bits are changed. Also the struct itself isn't initialized in >> phylink_resolve(). So better initialize state->pause. > > mac_link_state() is expected to always set this, but this is safer. > I've seen cases where mac_link_state() just initializes the relevant bits. Therefore there's no functional problem, but it's not nice (and disturbs in debug output) if all other bits have a random value.
> Maybe also set state->speed to SPEED_UNKNOWN, state->duplex to > DUPLEX_UNKNOWN and state->an_complete to zero? > OK. Will include this in a v3. >> >> v2: >> - use right function name in subject >> >> Fixes: 9525ae83959b ("phylink: add phylink infrastructure") >> Signed-off-by: Heiner Kallweit <hkallwe...@gmail.com> >> --- >> drivers/net/phy/phylink.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c >> index 59d175a5b..a9954c205 100644 >> --- a/drivers/net/phy/phylink.c >> +++ b/drivers/net/phy/phylink.c >> @@ -324,6 +324,7 @@ static int phylink_get_mac_state(struct phylink *pl, >> struct phylink_link_state * >> linkmode_zero(state->lp_advertising); >> state->interface = pl->link_config.interface; >> state->an_enabled = pl->link_config.an_enabled; >> + state->pause = MLO_PAUSE_NONE; >> state->link = 1; >> >> return pl->ops->mac_link_state(ndev, state); >> -- >> 2.20.1 >> >> >