diff options
author | Heiner Kallweit <hkallweit1@gmail.com> | 2019-02-26 13:29:22 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-03-01 14:30:48 -0500 |
commit | d25ed413d5e51644e18f66e34eec049f17a7abcb (patch) | |
tree | cfce242a7c40449b8fb5eff7bf9cbbbc4ede389c | |
parent | 15f3ddf53d4d26c4e338c355abffb3eaf4b3112f (diff) |
net: phy: phylink: fix uninitialized variable in phylink_get_mac_state
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 and other
not yet initialized fields.
v2:
- use right function name in subject
v3:
- initialize additional fields
Fixes: 9525ae83959b ("phylink: add phylink infrastructure")
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/phy/phylink.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c index 938803237d7f..85987aac31c4 100644 --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c | |||
@@ -320,6 +320,10 @@ static int phylink_get_mac_state(struct phylink *pl, struct phylink_link_state * | |||
320 | linkmode_zero(state->lp_advertising); | 320 | linkmode_zero(state->lp_advertising); |
321 | state->interface = pl->link_config.interface; | 321 | state->interface = pl->link_config.interface; |
322 | state->an_enabled = pl->link_config.an_enabled; | 322 | state->an_enabled = pl->link_config.an_enabled; |
323 | state->speed = SPEED_UNKNOWN; | ||
324 | state->duplex = DUPLEX_UNKNOWN; | ||
325 | state->pause = MLO_PAUSE_NONE; | ||
326 | state->an_complete = 0; | ||
323 | state->link = 1; | 327 | state->link = 1; |
324 | 328 | ||
325 | return pl->ops->mac_link_state(ndev, state); | 329 | return pl->ops->mac_link_state(ndev, state); |