Commit 874ed898 authored by Jakub Kicinski's avatar Jakub Kicinski
Browse files

Merge branch 'net-phylink-phylink_resolve-cleanups'

Russell King says:

====================
net: phylink: phylink_resolve() cleanups

This series does a bit of clean-up in phylink_resolve() to make the code
a little easier to follow.

Patch 1 moves the manual flow control setting in two of the switch
cases to after the switch().

Patch 2 changes the MLO_AN_FIXED case to be a simple if() statement,
reducing its indentation.

Patch 3 changes the MLO_AN_PHY case to also be a simple if() statment,
also reducing its indentation.

Patch 4 does the same for the last case.

Patch 5 reformats the code and comments for the reduced indentation,
making it easier to read.
====================

Link: https://patch.msgid.link/Zy411lVWe2SikuOs@shell.armlinux.org.uk


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents 80b6f094 bc08ce37
Loading
Loading
Loading
Loading
+48 −58
Original line number Diff line number Diff line
@@ -1463,76 +1463,66 @@ static void phylink_resolve(struct work_struct *w)
	} else if (pl->mac_link_dropped) {
		link_state.link = false;
		retrigger = true;
	} else {
		switch (pl->cur_link_an_mode) {
		case MLO_AN_PHY:
			link_state = pl->phy_state;
			phylink_apply_manual_flow(pl, &link_state);
			mac_config = link_state.link;
			break;

		case MLO_AN_FIXED:
	} else if (pl->cur_link_an_mode == MLO_AN_FIXED) {
		phylink_get_fixed_state(pl, &link_state);
		mac_config = link_state.link;
			break;

		case MLO_AN_INBAND:
	} else if (pl->cur_link_an_mode == MLO_AN_PHY) {
		link_state = pl->phy_state;
		mac_config = link_state.link;
	} else {
		phylink_mac_pcs_get_state(pl, &link_state);

			/* The PCS may have a latching link-fail indicator.
			 * If the link was up, bring the link down and
			 * re-trigger the resolve. Otherwise, re-read the
			 * PCS state to get the current status of the link.
		/* The PCS may have a latching link-fail indicator. If the link
		 * was up, bring the link down and re-trigger the resolve.
		 * Otherwise, re-read the PCS state to get the current status
		 * of the link.
		 */
		if (!link_state.link) {
			if (cur_link_state)
				retrigger = true;
			else
					phylink_mac_pcs_get_state(pl,
								  &link_state);
				phylink_mac_pcs_get_state(pl, &link_state);
		}

			/* If we have a phy, the "up" state is the union of
			 * both the PHY and the MAC
		/* If we have a phy, the "up" state is the union of both the
		 * PHY and the MAC
		 */
		if (pl->phydev)
			link_state.link &= pl->phy_state.link;

		/* Only update if the PHY link is up */
		if (pl->phydev && pl->phy_state.link) {
				/* If the interface has changed, force a
				 * link down event if the link isn't already
				 * down, and re-resolve.
			/* If the interface has changed, force a link down
			 * event if the link isn't already down, and re-resolve.
			 */
				if (link_state.interface !=
				    pl->phy_state.interface) {
			if (link_state.interface != pl->phy_state.interface) {
				retrigger = true;
				link_state.link = false;
			}

			link_state.interface = pl->phy_state.interface;

				/* If we are doing rate matching, then the
				 * link speed/duplex comes from the PHY
			/* If we are doing rate matching, then the link
			 * speed/duplex comes from the PHY
			 */
			if (pl->phy_state.rate_matching) {
				link_state.rate_matching =
					pl->phy_state.rate_matching;
				link_state.speed = pl->phy_state.speed;
					link_state.duplex =
						pl->phy_state.duplex;
				link_state.duplex = pl->phy_state.duplex;
			}

				/* If we have a PHY, we need to update with
				 * the PHY flow control bits.
			/* If we have a PHY, we need to update with the PHY
			 * flow control bits.
			 */
			link_state.pause = pl->phy_state.pause;
			mac_config = true;
		}
			phylink_apply_manual_flow(pl, &link_state);
			break;
		}
	}

	if (pl->cur_link_an_mode != MLO_AN_FIXED)
		phylink_apply_manual_flow(pl, &link_state);

	if (mac_config) {
		if (link_state.interface != pl->link_config.interface) {
			/* The interface has changed, force the link down and