]> git.ipfire.org Git - people/arne_f/kernel.git/commitdiff
net: phy: phylink: fix uninitialized variable in phylink_get_mac_state
authorHeiner Kallweit <hkallweit1@gmail.com>
Tue, 26 Feb 2019 18:29:22 +0000 (19:29 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 10 Mar 2019 06:17:18 +0000 (07:17 +0100)
[ Upstream commit d25ed413d5e51644e18f66e34eec049f17a7abcb ]

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/phy/phylink.c

index 2787e8b1d668a24204db4da4007cc7e443eb95f2..f6e70f2dfd12b9f0e37129c41bff1093ce9ca7f6 100644 (file)
@@ -348,6 +348,10 @@ 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->speed = SPEED_UNKNOWN;
+       state->duplex = DUPLEX_UNKNOWN;
+       state->pause = MLO_PAUSE_NONE;
+       state->an_complete = 0;
        state->link = 1;
 
        return pl->ops->mac_link_state(ndev, state);