Commit e859a60a authored by Russell King's avatar Russell King Committed by David S. Miller
Browse files

net: phylink: avoid oops during initialisation



If we intend to use PCS operations, mac_pcs_get_state() will not be
implemented, so will be NULL. If we also intend to register the PCS
operations in mac_prepare() or mac_config(), then this leads to an
attempt to call NULL function pointer during phylink_start(). Avoid
this, but we must report the link is down.

Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3b44c793
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -535,8 +535,10 @@ static void phylink_mac_pcs_get_state(struct phylink *pl,

	if (pl->pcs_ops)
		pl->pcs_ops->pcs_get_state(pl->pcs, state);
	else
	else if (pl->mac_ops->mac_pcs_get_state)
		pl->mac_ops->mac_pcs_get_state(pl->config, state);
	else
		state->link = 0;
}

/* The fixed state is... fixed except for the link state,