Commit 17720981 authored by Jarod Wilson's avatar Jarod Wilson Committed by David S. Miller
Browse files

bonding/802.3ad: convert to using slave printk macros



All of these printk instances benefit from having both master and slave
device information included, so convert to using a standardized macro
format and remove redundant information.

Suggested-by: default avatarJoe Perches <joe@perches.com>
CC: Jay Vosburgh <j.vosburgh@gmail.com>
CC: Veaceslav Falico <vfalico@gmail.com>
CC: Andy Gospodarek <andy@greyhouse.net>
CC: netdev@vger.kernel.org
Signed-off-by: default avatarJarod Wilson <jarod@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e2a7420d
Loading
Loading
Loading
Loading
+116 −106
Original line number Diff line number Diff line
@@ -325,16 +325,16 @@ static u16 __get_link_speed(struct port *port)
		default:
			/* unknown speed value from ethtool. shouldn't happen */
			if (slave->speed != SPEED_UNKNOWN)
				pr_warn_once("%s: unknown ethtool speed (%d) for port %d (set it to 0)\n",
				pr_warn_once("%s: (slave %s): unknown ethtool speed (%d) for port %d (set it to 0)\n",
					     slave->bond->dev->name,
					     slave->speed,
					     slave->dev->name, slave->speed,
					     port->actor_port_number);
			speed = 0;
			break;
		}
	}

	netdev_dbg(slave->bond->dev, "Port %d Received link speed %d update from adapter\n",
	slave_dbg(slave->bond->dev, slave->dev, "Port %d Received link speed %d update from adapter\n",
		  port->actor_port_number, speed);
	return speed;
}
@@ -359,13 +359,13 @@ static u8 __get_duplex(struct port *port)
		switch (slave->duplex) {
		case DUPLEX_FULL:
			retval = 0x1;
			netdev_dbg(slave->bond->dev, "Port %d Received status full duplex update from adapter\n",
			slave_dbg(slave->bond->dev, slave->dev, "Port %d Received status full duplex update from adapter\n",
				  port->actor_port_number);
			break;
		case DUPLEX_HALF:
		default:
			retval = 0x0;
			netdev_dbg(slave->bond->dev, "Port %d Received status NOT full duplex update from adapter\n",
			slave_dbg(slave->bond->dev, slave->dev, "Port %d Received status NOT full duplex update from adapter\n",
				  port->actor_port_number);
			break;
		}
@@ -500,10 +500,12 @@ static void __record_pdu(struct lacpdu *lacpdu, struct port *port)
		if ((port->sm_vars & AD_PORT_MATCHED) &&
		    (lacpdu->actor_state & AD_STATE_SYNCHRONIZATION)) {
			partner->port_state |= AD_STATE_SYNCHRONIZATION;
			pr_debug("%s partner sync=1\n", port->slave->dev->name);
			slave_dbg(port->slave->bond->dev, port->slave->dev,
				  "partner sync=1\n");
		} else {
			partner->port_state &= ~AD_STATE_SYNCHRONIZATION;
			pr_debug("%s partner sync=0\n", port->slave->dev->name);
			slave_dbg(port->slave->bond->dev, port->slave->dev,
				  "partner sync=0\n");
		}
	}
}
@@ -789,8 +791,9 @@ static inline void __update_lacpdu_from_port(struct port *port)
	lacpdu->actor_port_priority = htons(port->actor_port_priority);
	lacpdu->actor_port = htons(port->actor_port_number);
	lacpdu->actor_state = port->actor_oper_port_state;
	pr_debug("update lacpdu: %s, actor port state %x\n",
		 port->slave->dev->name, port->actor_oper_port_state);
	slave_dbg(port->slave->bond->dev, port->slave->dev,
		  "update lacpdu: actor port state %x\n",
		  port->actor_oper_port_state);

	/* lacpdu->reserved_3_1              initialized
	 * lacpdu->tlv_type_partner_info     initialized
@@ -1022,9 +1025,9 @@ static void ad_mux_machine(struct port *port, bool *update_slave_arr)

	/* check if the state machine was changed */
	if (port->sm_mux_state != last_state) {
		pr_debug("Mux Machine: Port=%d (%s), Last State=%d, Curr State=%d\n",
		slave_dbg(port->slave->bond->dev, port->slave->dev,
			  "Mux Machine: Port=%d, Last State=%d, Curr State=%d\n",
			  port->actor_port_number,
			 port->slave->dev->name,
			  last_state,
			  port->sm_mux_state);
		switch (port->sm_mux_state) {
@@ -1140,9 +1143,9 @@ static void ad_rx_machine(struct lacpdu *lacpdu, struct port *port)

	/* check if the State machine was changed or new lacpdu arrived */
	if ((port->sm_rx_state != last_state) || (lacpdu)) {
		pr_debug("Rx Machine: Port=%d (%s), Last State=%d, Curr State=%d\n",
		slave_dbg(port->slave->bond->dev, port->slave->dev,
			  "Rx Machine: Port=%d, Last State=%d, Curr State=%d\n",
			  port->actor_port_number,
			 port->slave->dev->name,
			  last_state,
			  port->sm_rx_state);
		switch (port->sm_rx_state) {
@@ -1192,9 +1195,8 @@ static void ad_rx_machine(struct lacpdu *lacpdu, struct port *port)
			/* detect loopback situation */
			if (MAC_ADDRESS_EQUAL(&(lacpdu->actor_system),
					      &(port->actor_system))) {
				netdev_err(port->slave->bond->dev, "An illegal loopback occurred on adapter (%s)\n"
				       "Check the configuration to verify that all adapters are connected to 802.3ad compliant switch ports\n",
				       port->slave->dev->name);
				slave_err(port->slave->bond->dev, port->slave->dev, "An illegal loopback occurred on slave\n"
					  "Check the configuration to verify that all adapters are connected to 802.3ad compliant switch ports\n");
				return;
			}
			__update_selected(lacpdu, port);
@@ -1263,7 +1265,9 @@ static void ad_tx_machine(struct port *port)
			__update_lacpdu_from_port(port);

			if (ad_lacpdu_send(port) >= 0) {
				pr_debug("Sent LACPDU on port %d\n",
				slave_dbg(port->slave->bond->dev,
					  port->slave->dev,
					  "Sent LACPDU on port %d\n",
					  port->actor_port_number);

				/* mark ntt as false, so it will not be sent
@@ -1343,7 +1347,8 @@ static void ad_periodic_machine(struct port *port)

	/* check if the state machine was changed */
	if (port->sm_periodic_state != last_state) {
		pr_debug("Periodic Machine: Port=%d, Last State=%d, Curr State=%d\n",
		slave_dbg(port->slave->bond->dev, port->slave->dev,
			  "Periodic Machine: Port=%d, Last State=%d, Curr State=%d\n",
			  port->actor_port_number, last_state,
			  port->sm_periodic_state);
		switch (port->sm_periodic_state) {
@@ -1421,7 +1426,7 @@ static void ad_port_selection_logic(struct port *port, bool *update_slave_arr)
				port->next_port_in_aggregator = NULL;
				port->actor_port_aggregator_identifier = 0;

				netdev_dbg(bond->dev, "Port %d left LAG %d\n",
				slave_dbg(bond->dev, port->slave->dev, "Port %d left LAG %d\n",
					  port->actor_port_number,
					  temp_aggregator->aggregator_identifier);
				/* if the aggregator is empty, clear its
@@ -1436,10 +1441,10 @@ static void ad_port_selection_logic(struct port *port, bool *update_slave_arr)
			/* meaning: the port was related to an aggregator
			 * but was not on the aggregator port list
			 */
			net_warn_ratelimited("%s: Warning: Port %d (on %s) was related to aggregator %d but was not on its port list\n",
			net_warn_ratelimited("%s: (slave %s): Warning: Port %d was related to aggregator %d but was not on its port list\n",
					     port->slave->bond->dev->name,
					     port->actor_port_number,
					     port->slave->dev->name,
					     port->actor_port_number,
					     port->aggregator->aggregator_identifier);
		}
	}
@@ -1470,7 +1475,7 @@ static void ad_port_selection_logic(struct port *port, bool *update_slave_arr)
			port->next_port_in_aggregator = aggregator->lag_ports;
			port->aggregator->num_of_ports++;
			aggregator->lag_ports = port;
			netdev_dbg(bond->dev, "Port %d joined LAG %d(existing LAG)\n",
			slave_dbg(bond->dev, slave->dev, "Port %d joined LAG %d (existing LAG)\n",
				  port->actor_port_number,
				  port->aggregator->aggregator_identifier);

@@ -1517,12 +1522,13 @@ static void ad_port_selection_logic(struct port *port, bool *update_slave_arr)
			/* mark this port as selected */
			port->sm_vars |= AD_PORT_SELECTED;

			netdev_dbg(bond->dev, "Port %d joined LAG %d(new LAG)\n",
			slave_dbg(bond->dev, port->slave->dev, "Port %d joined LAG %d (new LAG)\n",
				  port->actor_port_number,
				  port->aggregator->aggregator_identifier);
		} else {
			netdev_err(bond->dev, "Port %d (on %s) did not find a suitable aggregator\n",
			       port->actor_port_number, port->slave->dev->name);
			slave_err(bond->dev, port->slave->dev,
				  "Port %d did not find a suitable aggregator\n",
				  port->actor_port_number);
		}
	}
	/* if all aggregator's ports are READY_N == TRUE, set ready=TRUE
@@ -1601,8 +1607,9 @@ static struct aggregator *ad_agg_selection_test(struct aggregator *best,
		break;

	default:
		net_warn_ratelimited("%s: Impossible agg select mode %d\n",
		net_warn_ratelimited("%s: (slave %s): Impossible agg select mode %d\n",
				     curr->slave->bond->dev->name,
				     curr->slave->dev->name,
				     __get_agg_selection_mode(curr->lag_ports));
		break;
	}
@@ -1703,36 +1710,37 @@ static void ad_agg_selection_logic(struct aggregator *agg,

	/* if there is new best aggregator, activate it */
	if (best) {
		netdev_dbg(bond->dev, "best Agg=%d; P=%d; a k=%d; p k=%d; Ind=%d; Act=%d\n",
		netdev_dbg(bond->dev, "(slave %s): best Agg=%d; P=%d; a k=%d; p k=%d; Ind=%d; Act=%d\n",
			   best->slave ? best->slave->dev->name : "NULL",
			   best->aggregator_identifier, best->num_of_ports,
			   best->actor_oper_aggregator_key,
			   best->partner_oper_aggregator_key,
			   best->is_individual, best->is_active);
		netdev_dbg(bond->dev, "best ports %p slave %p %s\n",
			   best->lag_ports, best->slave,
			   best->slave ? best->slave->dev->name : "NULL");
		netdev_dbg(bond->dev, "(slave %s): best ports %p slave %p\n",
			   best->slave ? best->slave->dev->name : "NULL",
			   best->lag_ports, best->slave);

		bond_for_each_slave_rcu(bond, slave, iter) {
			agg = &(SLAVE_AD_INFO(slave)->aggregator);

			netdev_dbg(bond->dev, "Agg=%d; P=%d; a k=%d; p k=%d; Ind=%d; Act=%d\n",
			slave_dbg(bond->dev, slave->dev, "Agg=%d; P=%d; a k=%d; p k=%d; Ind=%d; Act=%d\n",
				  agg->aggregator_identifier, agg->num_of_ports,
				  agg->actor_oper_aggregator_key,
				  agg->partner_oper_aggregator_key,
				  agg->is_individual, agg->is_active);
		}

		/* check if any partner replys */
		if (best->is_individual) {
		/* check if any partner replies */
		if (best->is_individual)
			net_warn_ratelimited("%s: Warning: No 802.3ad response from the link partner for any adapters in the bond\n",
					     best->slave ?
					     best->slave->bond->dev->name : "NULL");
		}
					     bond->dev->name);

		best->is_active = 1;
		netdev_dbg(bond->dev, "LAG %d chosen as the active LAG\n",
		netdev_dbg(bond->dev, "(slave %s): LAG %d chosen as the active LAG\n",
			   best->slave ? best->slave->dev->name : "NULL",
			   best->aggregator_identifier);
		netdev_dbg(bond->dev, "Agg=%d; P=%d; a k=%d; p k=%d; Ind=%d; Act=%d\n",
		netdev_dbg(bond->dev, "(slave %s): Agg=%d; P=%d; a k=%d; p k=%d; Ind=%d; Act=%d\n",
			   best->slave ? best->slave->dev->name : "NULL",
			   best->aggregator_identifier, best->num_of_ports,
			   best->actor_oper_aggregator_key,
			   best->partner_oper_aggregator_key,
@@ -1788,7 +1796,9 @@ static void ad_clear_agg(struct aggregator *aggregator)
		aggregator->lag_ports = NULL;
		aggregator->is_active = 0;
		aggregator->num_of_ports = 0;
		pr_debug("LAG %d was cleared\n",
		pr_debug("%s: LAG %d was cleared\n",
			 aggregator->slave ?
			 aggregator->slave->dev->name : "NULL",
			 aggregator->aggregator_identifier);
	}
}
@@ -1885,7 +1895,8 @@ static void ad_enable_collecting_distributing(struct port *port,
					      bool *update_slave_arr)
{
	if (port->aggregator->is_active) {
		pr_debug("Enabling port %d(LAG %d)\n",
		slave_dbg(port->slave->bond->dev, port->slave->dev,
			  "Enabling port %d (LAG %d)\n",
			  port->actor_port_number,
			  port->aggregator->aggregator_identifier);
		__enable_port(port);
@@ -1905,7 +1916,8 @@ static void ad_disable_collecting_distributing(struct port *port,
	if (port->aggregator &&
	    !MAC_ADDRESS_EQUAL(&(port->aggregator->partner_system),
			       &(null_mac_addr))) {
		pr_debug("Disabling port %d(LAG %d)\n",
		slave_dbg(port->slave->bond->dev, port->slave->dev,
			  "Disabling port %d (LAG %d)\n",
			  port->actor_port_number,
			  port->aggregator->aggregator_identifier);
		__disable_port(port);
@@ -1933,11 +1945,11 @@ static void ad_marker_info_received(struct bond_marker *marker_info,
	marker.tlv_type = AD_MARKER_RESPONSE_SUBTYPE;

	/* send the marker response */
	if (ad_marker_send(port, &marker) >= 0) {
		pr_debug("Sent Marker Response on port %d\n",
	if (ad_marker_send(port, &marker) >= 0)
		slave_dbg(port->slave->bond->dev, port->slave->dev,
			  "Sent Marker Response on port %d\n",
			  port->actor_port_number);
}
}

/**
 * ad_marker_response_received - handle receive of a marker response frame
@@ -2085,12 +2097,11 @@ void bond_3ad_unbind_slave(struct slave *slave)

	/* if slave is null, the whole port is not initialized */
	if (!port->slave) {
		netdev_warn(bond->dev, "Trying to unbind an uninitialized port on %s\n",
			    slave->dev->name);
		slave_warn(bond->dev, slave->dev, "Trying to unbind an uninitialized port\n");
		goto out;
	}

	netdev_dbg(bond->dev, "Unbinding Link Aggregation Group %d\n",
	slave_dbg(bond->dev, slave->dev, "Unbinding Link Aggregation Group %d\n",
		  aggregator->aggregator_identifier);

	/* Tell the partner that this port is not suitable for aggregation */
@@ -2129,13 +2140,13 @@ void bond_3ad_unbind_slave(struct slave *slave)
			 * new aggregator
			 */
			if ((new_aggregator) && ((!new_aggregator->lag_ports) || ((new_aggregator->lag_ports == port) && !new_aggregator->lag_ports->next_port_in_aggregator))) {
				netdev_dbg(bond->dev, "Some port(s) related to LAG %d - replacing with LAG %d\n",
				slave_dbg(bond->dev, slave->dev, "Some port(s) related to LAG %d - replacing with LAG %d\n",
					  aggregator->aggregator_identifier,
					  new_aggregator->aggregator_identifier);

				if ((new_aggregator->lag_ports == port) &&
				    new_aggregator->is_active) {
					netdev_info(bond->dev, "Removing an active aggregator\n");
					slave_info(bond->dev, slave->dev, "Removing an active aggregator\n");
					select_new_active_agg = 1;
				}

@@ -2166,7 +2177,7 @@ void bond_3ad_unbind_slave(struct slave *slave)
					ad_agg_selection_logic(__get_first_agg(port),
							       &dummy_slave_update);
			} else {
				netdev_warn(bond->dev, "unbinding aggregator, and could not find a new aggregator for its ports\n");
				slave_warn(bond->dev, slave->dev, "unbinding aggregator, and could not find a new aggregator for its ports\n");
			}
		} else {
			/* in case that the only port related to this
@@ -2175,7 +2186,7 @@ void bond_3ad_unbind_slave(struct slave *slave)
			select_new_active_agg = aggregator->is_active;
			ad_clear_agg(aggregator);
			if (select_new_active_agg) {
				netdev_info(bond->dev, "Removing an active aggregator\n");
				slave_info(bond->dev, slave->dev, "Removing an active aggregator\n");
				/* select new active aggregator */
				temp_aggregator = __get_first_agg(port);
				if (temp_aggregator)
@@ -2185,7 +2196,7 @@ void bond_3ad_unbind_slave(struct slave *slave)
		}
	}

	netdev_dbg(bond->dev, "Unbinding port %d\n", port->actor_port_number);
	slave_dbg(bond->dev, slave->dev, "Unbinding port %d\n", port->actor_port_number);

	/* find the aggregator that this port is connected to */
	bond_for_each_slave(bond, slave_iter, iter) {
@@ -2208,7 +2219,7 @@ void bond_3ad_unbind_slave(struct slave *slave)
					select_new_active_agg = temp_aggregator->is_active;
					ad_clear_agg(temp_aggregator);
					if (select_new_active_agg) {
						netdev_info(bond->dev, "Removing an active aggregator\n");
						slave_info(bond->dev, slave->dev, "Removing an active aggregator\n");
						/* select new active aggregator */
						ad_agg_selection_logic(__get_first_agg(port),
							               &dummy_slave_update);
@@ -2379,9 +2390,9 @@ static int bond_3ad_rx_indication(struct lacpdu *lacpdu, struct slave *slave)
	switch (lacpdu->subtype) {
	case AD_TYPE_LACPDU:
		ret = RX_HANDLER_CONSUMED;
		netdev_dbg(slave->bond->dev,
			   "Received LACPDU on port %d slave %s\n",
			   port->actor_port_number, slave->dev->name);
		slave_dbg(slave->bond->dev, slave->dev,
			  "Received LACPDU on port %d\n",
			  port->actor_port_number);
		/* Protect against concurrent state machines */
		spin_lock(&slave->bond->mode_lock);
		ad_rx_machine(lacpdu, port);
@@ -2395,17 +2406,17 @@ static int bond_3ad_rx_indication(struct lacpdu *lacpdu, struct slave *slave)
		marker = (struct bond_marker *)lacpdu;
		switch (marker->tlv_type) {
		case AD_MARKER_INFORMATION_SUBTYPE:
			netdev_dbg(slave->bond->dev, "Received Marker Information on port %d\n",
			slave_dbg(slave->bond->dev, slave->dev, "Received Marker Information on port %d\n",
				  port->actor_port_number);
			ad_marker_info_received(marker, port);
			break;
		case AD_MARKER_RESPONSE_SUBTYPE:
			netdev_dbg(slave->bond->dev, "Received Marker Response on port %d\n",
			slave_dbg(slave->bond->dev, slave->dev, "Received Marker Response on port %d\n",
				  port->actor_port_number);
			ad_marker_response_received(marker, port);
			break;
		default:
			netdev_dbg(slave->bond->dev, "Received an unknown Marker subtype on slot %d\n",
			slave_dbg(slave->bond->dev, slave->dev, "Received an unknown Marker subtype on port %d\n",
				  port->actor_port_number);
			stat = &SLAVE_AD_INFO(slave)->stats.marker_unknown_rx;
			atomic64_inc(stat);
@@ -2456,9 +2467,10 @@ static void ad_update_actor_keys(struct port *port, bool reset)

		if (!reset) {
			if (!speed) {
				netdev_err(port->slave->dev,
					   "speed changed to 0 for port %s",
					   port->slave->dev->name);
				slave_err(port->slave->bond->dev,
					  port->slave->dev,
					  "speed changed to 0 on port %d\n",
					  port->actor_port_number);
			} else if (duplex && ospeed != speed) {
				/* Speed change restarts LACP state-machine */
				port->sm_vars |= AD_PORT_BEGIN;
@@ -2483,17 +2495,16 @@ void bond_3ad_adapter_speed_duplex_changed(struct slave *slave)

	/* if slave is null, the whole port is not initialized */
	if (!port->slave) {
		netdev_warn(slave->bond->dev,
			    "speed/duplex changed for uninitialized port %s\n",
			    slave->dev->name);
		slave_warn(slave->bond->dev, slave->dev,
			   "speed/duplex changed for uninitialized port\n");
		return;
	}

	spin_lock_bh(&slave->bond->mode_lock);
	ad_update_actor_keys(port, false);
	spin_unlock_bh(&slave->bond->mode_lock);
	netdev_dbg(slave->bond->dev, "Port %d slave %s changed speed/duplex\n",
		   port->actor_port_number, slave->dev->name);
	slave_dbg(slave->bond->dev, slave->dev, "Port %d changed speed/duplex\n",
		  port->actor_port_number);
}

/**
@@ -2513,8 +2524,7 @@ void bond_3ad_handle_link_change(struct slave *slave, char link)

	/* if slave is null, the whole port is not initialized */
	if (!port->slave) {
		netdev_warn(slave->bond->dev, "link status changed for uninitialized port on %s\n",
			    slave->dev->name);
		slave_warn(slave->bond->dev, slave->dev, "link status changed for uninitialized port\n");
		return;
	}

@@ -2539,7 +2549,7 @@ void bond_3ad_handle_link_change(struct slave *slave, char link)

	spin_unlock_bh(&slave->bond->mode_lock);

	netdev_dbg(slave->bond->dev, "Port %d changed link status to %s\n",
	slave_dbg(slave->bond->dev, slave->dev, "Port %d changed link status to %s\n",
		  port->actor_port_number,
		  link == BOND_LINK_UP ? "UP" : "DOWN");