提交 4e0952c7 编写于 作者: M Mitch Williams 提交者: John W. Linville

[PATCH] bonding: add bond name to all error messages

Add the bond name to all error messages so we can tell which one is
complaining.  Also reformats some error messages to be more consistent.
Signed-off-by: NMitch Williams <mitch.a.williams@intel.com>
Acked-by: NJay Vosburgh <fubar@us.ibm.com>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 c2373ee9
...@@ -1198,10 +1198,10 @@ static void ad_rx_machine(struct lacpdu *lacpdu, struct port *port) ...@@ -1198,10 +1198,10 @@ static void ad_rx_machine(struct lacpdu *lacpdu, struct port *port)
// detect loopback situation // detect loopback situation
if (!MAC_ADDRESS_COMPARE(&(lacpdu->actor_system), &(port->actor_system))) { if (!MAC_ADDRESS_COMPARE(&(lacpdu->actor_system), &(port->actor_system))) {
// INFO_RECEIVED_LOOPBACK_FRAMES // INFO_RECEIVED_LOOPBACK_FRAMES
printk(KERN_ERR DRV_NAME ": An illegal loopback occurred on adapter (%s)\n", printk(KERN_ERR DRV_NAME ": %s: An illegal loopback occurred on "
port->slave->dev->name); "adapter (%s). Check the configuration to verify that all "
printk(KERN_ERR "Check the configuration to verify that all Adapters " "Adapters are connected to 802.3ad compliant switch ports\n",
"are connected to 802.3ad compliant switch ports\n"); port->slave->dev->master->name, port->slave->dev->name);
__release_rx_machine_lock(port); __release_rx_machine_lock(port);
return; return;
} }
...@@ -1378,8 +1378,9 @@ static void ad_port_selection_logic(struct port *port) ...@@ -1378,8 +1378,9 @@ static void ad_port_selection_logic(struct port *port)
} }
} }
if (!curr_port) { // meaning: the port was related to an aggregator but was not on the aggregator port list if (!curr_port) { // meaning: the port was related to an aggregator but was not on the aggregator port list
printk(KERN_WARNING DRV_NAME ": Warning: Port %d (on %s) was " printk(KERN_WARNING DRV_NAME ": %s: Warning: Port %d (on %s) was "
"related to aggregator %d but was not on its port list\n", "related to aggregator %d but was not on its port list\n",
port->slave->dev->master->name,
port->actor_port_number, port->slave->dev->name, port->actor_port_number, port->slave->dev->name,
port->aggregator->aggregator_identifier); port->aggregator->aggregator_identifier);
} }
...@@ -1450,7 +1451,8 @@ static void ad_port_selection_logic(struct port *port) ...@@ -1450,7 +1451,8 @@ static void ad_port_selection_logic(struct port *port)
dprintk("Port %d joined LAG %d(new LAG)\n", port->actor_port_number, port->aggregator->aggregator_identifier); dprintk("Port %d joined LAG %d(new LAG)\n", port->actor_port_number, port->aggregator->aggregator_identifier);
} else { } else {
printk(KERN_ERR DRV_NAME ": Port %d (on %s) did not find a suitable aggregator\n", printk(KERN_ERR DRV_NAME ": %s: Port %d (on %s) did not find a suitable aggregator\n",
port->slave->dev->master->name,
port->actor_port_number, port->slave->dev->name); port->actor_port_number, port->slave->dev->name);
} }
} }
...@@ -1582,8 +1584,9 @@ static void ad_agg_selection_logic(struct aggregator *aggregator) ...@@ -1582,8 +1584,9 @@ static void ad_agg_selection_logic(struct aggregator *aggregator)
// check if any partner replys // check if any partner replys
if (best_aggregator->is_individual) { if (best_aggregator->is_individual) {
printk(KERN_WARNING DRV_NAME ": Warning: No 802.3ad response from the link partner " printk(KERN_WARNING DRV_NAME ": %s: Warning: No 802.3ad response from "
"for any adapters in the bond\n"); "the link partner for any adapters in the bond\n",
best_aggregator->slave->dev->master->name);
} }
// check if there are more than one aggregator // check if there are more than one aggregator
...@@ -1915,7 +1918,8 @@ int bond_3ad_bind_slave(struct slave *slave) ...@@ -1915,7 +1918,8 @@ int bond_3ad_bind_slave(struct slave *slave)
struct aggregator *aggregator; struct aggregator *aggregator;
if (bond == NULL) { if (bond == NULL) {
printk(KERN_ERR "The slave %s is not attached to its bond\n", slave->dev->name); printk(KERN_ERR DRV_NAME ": %s: The slave %s is not attached to its bond\n",
slave->dev->master->name, slave->dev->name);
return -1; return -1;
} }
...@@ -1990,7 +1994,9 @@ void bond_3ad_unbind_slave(struct slave *slave) ...@@ -1990,7 +1994,9 @@ void bond_3ad_unbind_slave(struct slave *slave)
// if slave is null, the whole port is not initialized // if slave is null, the whole port is not initialized
if (!port->slave) { if (!port->slave) {
printk(KERN_WARNING DRV_NAME ": Trying to unbind an uninitialized port on %s\n", slave->dev->name); printk(KERN_WARNING DRV_NAME ": Warning: %s: Trying to "
"unbind an uninitialized port on %s\n",
slave->dev->master->name, slave->dev->name);
return; return;
} }
...@@ -2021,7 +2027,8 @@ void bond_3ad_unbind_slave(struct slave *slave) ...@@ -2021,7 +2027,8 @@ void bond_3ad_unbind_slave(struct slave *slave)
dprintk("Some port(s) related to LAG %d - replaceing with LAG %d\n", aggregator->aggregator_identifier, new_aggregator->aggregator_identifier); dprintk("Some port(s) related to LAG %d - replaceing with LAG %d\n", aggregator->aggregator_identifier, new_aggregator->aggregator_identifier);
if ((new_aggregator->lag_ports == port) && new_aggregator->is_active) { if ((new_aggregator->lag_ports == port) && new_aggregator->is_active) {
printk(KERN_INFO DRV_NAME ": Removing an active aggregator\n"); printk(KERN_INFO DRV_NAME ": %s: Removing an active aggregator\n",
aggregator->slave->dev->master->name);
// select new active aggregator // select new active aggregator
select_new_active_agg = 1; select_new_active_agg = 1;
} }
...@@ -2051,15 +2058,17 @@ void bond_3ad_unbind_slave(struct slave *slave) ...@@ -2051,15 +2058,17 @@ void bond_3ad_unbind_slave(struct slave *slave)
ad_agg_selection_logic(__get_first_agg(port)); ad_agg_selection_logic(__get_first_agg(port));
} }
} else { } else {
printk(KERN_WARNING DRV_NAME ": Warning: unbinding aggregator, " printk(KERN_WARNING DRV_NAME ": %s: Warning: unbinding aggregator, "
"and could not find a new aggregator for its ports\n"); "and could not find a new aggregator for its ports\n",
slave->dev->master->name);
} }
} else { // in case that the only port related to this aggregator is the one we want to remove } else { // in case that the only port related to this aggregator is the one we want to remove
select_new_active_agg = aggregator->is_active; select_new_active_agg = aggregator->is_active;
// clear the aggregator // clear the aggregator
ad_clear_agg(aggregator); ad_clear_agg(aggregator);
if (select_new_active_agg) { if (select_new_active_agg) {
printk(KERN_INFO "Removing an active aggregator\n"); printk(KERN_INFO DRV_NAME ": %s: Removing an active aggregator\n",
slave->dev->master->name);
// select new active aggregator // select new active aggregator
ad_agg_selection_logic(__get_first_agg(port)); ad_agg_selection_logic(__get_first_agg(port));
} }
...@@ -2085,7 +2094,8 @@ void bond_3ad_unbind_slave(struct slave *slave) ...@@ -2085,7 +2094,8 @@ void bond_3ad_unbind_slave(struct slave *slave)
// clear the aggregator // clear the aggregator
ad_clear_agg(temp_aggregator); ad_clear_agg(temp_aggregator);
if (select_new_active_agg) { if (select_new_active_agg) {
printk(KERN_INFO "Removing an active aggregator\n"); printk(KERN_INFO DRV_NAME ": %s: Removing an active aggregator\n",
slave->dev->master->name);
// select new active aggregator // select new active aggregator
ad_agg_selection_logic(__get_first_agg(port)); ad_agg_selection_logic(__get_first_agg(port));
} }
...@@ -2131,7 +2141,8 @@ void bond_3ad_state_machine_handler(struct bonding *bond) ...@@ -2131,7 +2141,8 @@ void bond_3ad_state_machine_handler(struct bonding *bond)
// select the active aggregator for the bond // select the active aggregator for the bond
if ((port = __get_first_port(bond))) { if ((port = __get_first_port(bond))) {
if (!port->slave) { if (!port->slave) {
printk(KERN_WARNING DRV_NAME ": Warning: bond's first port is uninitialized\n"); printk(KERN_WARNING DRV_NAME ": %s: Warning: bond's first port is "
"uninitialized\n", bond->dev->name);
goto re_arm; goto re_arm;
} }
...@@ -2143,7 +2154,8 @@ void bond_3ad_state_machine_handler(struct bonding *bond) ...@@ -2143,7 +2154,8 @@ void bond_3ad_state_machine_handler(struct bonding *bond)
// for each port run the state machines // for each port run the state machines
for (port = __get_first_port(bond); port; port = __get_next_port(port)) { for (port = __get_first_port(bond); port; port = __get_next_port(port)) {
if (!port->slave) { if (!port->slave) {
printk(KERN_WARNING DRV_NAME ": Warning: Found an uninitialized port\n"); printk(KERN_WARNING DRV_NAME ": %s: Warning: Found an uninitialized "
"port\n", bond->dev->name);
goto re_arm; goto re_arm;
} }
...@@ -2184,7 +2196,8 @@ static void bond_3ad_rx_indication(struct lacpdu *lacpdu, struct slave *slave, u ...@@ -2184,7 +2196,8 @@ static void bond_3ad_rx_indication(struct lacpdu *lacpdu, struct slave *slave, u
port = &(SLAVE_AD_INFO(slave).port); port = &(SLAVE_AD_INFO(slave).port);
if (!port->slave) { if (!port->slave) {
printk(KERN_WARNING DRV_NAME ": Warning: port of slave %s is uninitialized\n", slave->dev->name); printk(KERN_WARNING DRV_NAME ": %s: Warning: port of slave %s is "
"uninitialized\n", slave->dev->name, slave->dev->master->name);
return; return;
} }
...@@ -2230,8 +2243,9 @@ void bond_3ad_adapter_speed_changed(struct slave *slave) ...@@ -2230,8 +2243,9 @@ void bond_3ad_adapter_speed_changed(struct slave *slave)
// if slave is null, the whole port is not initialized // if slave is null, the whole port is not initialized
if (!port->slave) { if (!port->slave) {
printk(KERN_WARNING DRV_NAME ": Warning: speed changed for uninitialized port on %s\n", printk(KERN_WARNING DRV_NAME ": Warning: %s: speed "
slave->dev->name); "changed for uninitialized port on %s\n",
slave->dev->master->name, slave->dev->name);
return; return;
} }
...@@ -2257,8 +2271,9 @@ void bond_3ad_adapter_duplex_changed(struct slave *slave) ...@@ -2257,8 +2271,9 @@ void bond_3ad_adapter_duplex_changed(struct slave *slave)
// if slave is null, the whole port is not initialized // if slave is null, the whole port is not initialized
if (!port->slave) { if (!port->slave) {
printk(KERN_WARNING DRV_NAME ": Warning: duplex changed for uninitialized port on %s\n", printk(KERN_WARNING DRV_NAME ": %s: Warning: duplex changed "
slave->dev->name); "for uninitialized port on %s\n",
slave->dev->master->name, slave->dev->name);
return; return;
} }
...@@ -2285,8 +2300,9 @@ void bond_3ad_handle_link_change(struct slave *slave, char link) ...@@ -2285,8 +2300,9 @@ void bond_3ad_handle_link_change(struct slave *slave, char link)
// if slave is null, the whole port is not initialized // if slave is null, the whole port is not initialized
if (!port->slave) { if (!port->slave) {
printk(KERN_WARNING DRV_NAME ": Warning: link status changed for uninitialized port on %s\n", printk(KERN_WARNING DRV_NAME ": Warning: %s: link status changed for "
slave->dev->name); "uninitialized port on %s\n",
slave->dev->master->name, slave->dev->name);
return; return;
} }
...@@ -2363,7 +2379,8 @@ int bond_3ad_xmit_xor(struct sk_buff *skb, struct net_device *dev) ...@@ -2363,7 +2379,8 @@ int bond_3ad_xmit_xor(struct sk_buff *skb, struct net_device *dev)
} }
if (bond_3ad_get_active_agg_info(bond, &ad_info)) { if (bond_3ad_get_active_agg_info(bond, &ad_info)) {
printk(KERN_DEBUG "ERROR: bond_3ad_get_active_agg_info failed\n"); printk(KERN_DEBUG DRV_NAME ": %s: Error: "
"bond_3ad_get_active_agg_info failed\n", dev->name);
goto out; goto out;
} }
...@@ -2372,7 +2389,9 @@ int bond_3ad_xmit_xor(struct sk_buff *skb, struct net_device *dev) ...@@ -2372,7 +2389,9 @@ int bond_3ad_xmit_xor(struct sk_buff *skb, struct net_device *dev)
if (slaves_in_agg == 0) { if (slaves_in_agg == 0) {
/*the aggregator is empty*/ /*the aggregator is empty*/
printk(KERN_DEBUG "ERROR: active aggregator is empty\n"); printk(KERN_DEBUG DRV_NAME ": %s: Error: active "
"aggregator is empty\n",
dev->name);
goto out; goto out;
} }
...@@ -2390,7 +2409,8 @@ int bond_3ad_xmit_xor(struct sk_buff *skb, struct net_device *dev) ...@@ -2390,7 +2409,8 @@ int bond_3ad_xmit_xor(struct sk_buff *skb, struct net_device *dev)
} }
if (slave_agg_no >= 0) { if (slave_agg_no >= 0) {
printk(KERN_ERR DRV_NAME ": Error: Couldn't find a slave to tx on for aggregator ID %d\n", agg_id); printk(KERN_ERR DRV_NAME ": %s: Error: Couldn't find a slave to tx on "
"for aggregator ID %d\n", dev->name, agg_id);
goto out; goto out;
} }
......
...@@ -207,7 +207,7 @@ static int tlb_initialize(struct bonding *bond) ...@@ -207,7 +207,7 @@ static int tlb_initialize(struct bonding *bond)
bond_info->tx_hashtbl = kmalloc(size, GFP_KERNEL); bond_info->tx_hashtbl = kmalloc(size, GFP_KERNEL);
if (!bond_info->tx_hashtbl) { if (!bond_info->tx_hashtbl) {
printk(KERN_ERR DRV_NAME printk(KERN_ERR DRV_NAME
": Error: %s: Failed to allocate TLB hash table\n", ": %s: Error: Failed to allocate TLB hash table\n",
bond->dev->name); bond->dev->name);
_unlock_tx_hashtbl(bond); _unlock_tx_hashtbl(bond);
return -1; return -1;
...@@ -513,7 +513,8 @@ static void rlb_update_client(struct rlb_client_info *client_info) ...@@ -513,7 +513,8 @@ static void rlb_update_client(struct rlb_client_info *client_info)
client_info->mac_dst); client_info->mac_dst);
if (!skb) { if (!skb) {
printk(KERN_ERR DRV_NAME printk(KERN_ERR DRV_NAME
": Error: failed to create an ARP packet\n"); ": %s: Error: failed to create an ARP packet\n",
client_info->slave->dev->master->name);
continue; continue;
} }
...@@ -523,7 +524,8 @@ static void rlb_update_client(struct rlb_client_info *client_info) ...@@ -523,7 +524,8 @@ static void rlb_update_client(struct rlb_client_info *client_info)
skb = vlan_put_tag(skb, client_info->vlan_id); skb = vlan_put_tag(skb, client_info->vlan_id);
if (!skb) { if (!skb) {
printk(KERN_ERR DRV_NAME printk(KERN_ERR DRV_NAME
": Error: failed to insert VLAN tag\n"); ": %s: Error: failed to insert VLAN tag\n",
client_info->slave->dev->master->name);
continue; continue;
} }
} }
...@@ -606,8 +608,9 @@ static void rlb_req_update_subnet_clients(struct bonding *bond, u32 src_ip) ...@@ -606,8 +608,9 @@ static void rlb_req_update_subnet_clients(struct bonding *bond, u32 src_ip)
if (!client_info->slave) { if (!client_info->slave) {
printk(KERN_ERR DRV_NAME printk(KERN_ERR DRV_NAME
": Error: found a client with no channel in " ": %s: Error: found a client with no channel in "
"the client's hash table\n"); "the client's hash table\n",
bond->dev->name);
continue; continue;
} }
/*update all clients using this src_ip, that are not assigned /*update all clients using this src_ip, that are not assigned
...@@ -807,7 +810,7 @@ static int rlb_initialize(struct bonding *bond) ...@@ -807,7 +810,7 @@ static int rlb_initialize(struct bonding *bond)
bond_info->rx_hashtbl = kmalloc(size, GFP_KERNEL); bond_info->rx_hashtbl = kmalloc(size, GFP_KERNEL);
if (!bond_info->rx_hashtbl) { if (!bond_info->rx_hashtbl) {
printk(KERN_ERR DRV_NAME printk(KERN_ERR DRV_NAME
": Error: %s: Failed to allocate RLB hash table\n", ": %s: Error: Failed to allocate RLB hash table\n",
bond->dev->name); bond->dev->name);
_unlock_rx_hashtbl(bond); _unlock_rx_hashtbl(bond);
return -1; return -1;
...@@ -927,7 +930,8 @@ static void alb_send_learning_packets(struct slave *slave, u8 mac_addr[]) ...@@ -927,7 +930,8 @@ static void alb_send_learning_packets(struct slave *slave, u8 mac_addr[])
skb = vlan_put_tag(skb, vlan->vlan_id); skb = vlan_put_tag(skb, vlan->vlan_id);
if (!skb) { if (!skb) {
printk(KERN_ERR DRV_NAME printk(KERN_ERR DRV_NAME
": Error: failed to insert VLAN tag\n"); ": %s: Error: failed to insert VLAN tag\n",
bond->dev->name);
continue; continue;
} }
} }
...@@ -956,11 +960,11 @@ static int alb_set_slave_mac_addr(struct slave *slave, u8 addr[], int hw) ...@@ -956,11 +960,11 @@ static int alb_set_slave_mac_addr(struct slave *slave, u8 addr[], int hw)
s_addr.sa_family = dev->type; s_addr.sa_family = dev->type;
if (dev_set_mac_address(dev, &s_addr)) { if (dev_set_mac_address(dev, &s_addr)) {
printk(KERN_ERR DRV_NAME printk(KERN_ERR DRV_NAME
": Error: dev_set_mac_address of dev %s failed! ALB " ": %s: Error: dev_set_mac_address of dev %s failed! ALB "
"mode requires that the base driver support setting " "mode requires that the base driver support setting "
"the hw address also when the network device's " "the hw address also when the network device's "
"interface is open\n", "interface is open\n",
dev->name); dev->master->name, dev->name);
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
return 0; return 0;
...@@ -1153,16 +1157,16 @@ static int alb_handle_addr_collision_on_attach(struct bonding *bond, struct slav ...@@ -1153,16 +1157,16 @@ static int alb_handle_addr_collision_on_attach(struct bonding *bond, struct slav
bond->alb_info.rlb_enabled); bond->alb_info.rlb_enabled);
printk(KERN_WARNING DRV_NAME printk(KERN_WARNING DRV_NAME
": Warning: the hw address of slave %s is in use by " ": %s: Warning: the hw address of slave %s is in use by "
"the bond; giving it the hw address of %s\n", "the bond; giving it the hw address of %s\n",
slave->dev->name, free_mac_slave->dev->name); bond->dev->name, slave->dev->name, free_mac_slave->dev->name);
} else if (has_bond_addr) { } else if (has_bond_addr) {
printk(KERN_ERR DRV_NAME printk(KERN_ERR DRV_NAME
": Error: the hw address of slave %s is in use by the " ": %s: Error: the hw address of slave %s is in use by the "
"bond; couldn't find a slave with a free hw address to " "bond; couldn't find a slave with a free hw address to "
"give it (this should not have happened)\n", "give it (this should not have happened)\n",
slave->dev->name); bond->dev->name, slave->dev->name);
return -EFAULT; return -EFAULT;
} }
......
...@@ -910,7 +910,7 @@ static void bond_vlan_rx_add_vid(struct net_device *bond_dev, uint16_t vid) ...@@ -910,7 +910,7 @@ static void bond_vlan_rx_add_vid(struct net_device *bond_dev, uint16_t vid)
res = bond_add_vlan(bond, vid); res = bond_add_vlan(bond, vid);
if (res) { if (res) {
printk(KERN_ERR DRV_NAME printk(KERN_ERR DRV_NAME
": %s: Failed to add vlan id %d\n", ": %s: Error: Failed to add vlan id %d\n",
bond_dev->name, vid); bond_dev->name, vid);
} }
} }
...@@ -944,7 +944,7 @@ static void bond_vlan_rx_kill_vid(struct net_device *bond_dev, uint16_t vid) ...@@ -944,7 +944,7 @@ static void bond_vlan_rx_kill_vid(struct net_device *bond_dev, uint16_t vid)
res = bond_del_vlan(bond, vid); res = bond_del_vlan(bond, vid);
if (res) { if (res) {
printk(KERN_ERR DRV_NAME printk(KERN_ERR DRV_NAME
": %s: Failed to remove vlan id %d\n", ": %s: Error: Failed to remove vlan id %d\n",
bond_dev->name, vid); bond_dev->name, vid);
} }
} }
...@@ -1644,8 +1644,8 @@ static int bond_enslave(struct net_device *bond_dev, struct net_device *slave_de ...@@ -1644,8 +1644,8 @@ static int bond_enslave(struct net_device *bond_dev, struct net_device *slave_de
if (!bond->params.use_carrier && slave_dev->ethtool_ops == NULL && if (!bond->params.use_carrier && slave_dev->ethtool_ops == NULL &&
slave_dev->do_ioctl == NULL) { slave_dev->do_ioctl == NULL) {
printk(KERN_WARNING DRV_NAME printk(KERN_WARNING DRV_NAME
": Warning : no link monitoring support for %s\n", ": %s: Warning: no link monitoring support for %s\n",
slave_dev->name); bond_dev->name, slave_dev->name);
} }
/* bond must be initialized by bond_open() before enslaving */ /* bond must be initialized by bond_open() before enslaving */
...@@ -1666,17 +1666,17 @@ static int bond_enslave(struct net_device *bond_dev, struct net_device *slave_de ...@@ -1666,17 +1666,17 @@ static int bond_enslave(struct net_device *bond_dev, struct net_device *slave_de
dprintk("%s: NETIF_F_VLAN_CHALLENGED\n", slave_dev->name); dprintk("%s: NETIF_F_VLAN_CHALLENGED\n", slave_dev->name);
if (!list_empty(&bond->vlan_list)) { if (!list_empty(&bond->vlan_list)) {
printk(KERN_ERR DRV_NAME printk(KERN_ERR DRV_NAME
": Error: cannot enslave VLAN " ": %s: Error: cannot enslave VLAN "
"challenged slave %s on VLAN enabled " "challenged slave %s on VLAN enabled "
"bond %s\n", slave_dev->name, "bond %s\n", bond_dev->name, slave_dev->name,
bond_dev->name); bond_dev->name);
return -EPERM; return -EPERM;
} else { } else {
printk(KERN_WARNING DRV_NAME printk(KERN_WARNING DRV_NAME
": Warning: enslaved VLAN challenged " ": %s: Warning: enslaved VLAN challenged "
"slave %s. Adding VLANs will be blocked as " "slave %s. Adding VLANs will be blocked as "
"long as %s is part of bond %s\n", "long as %s is part of bond %s\n",
slave_dev->name, slave_dev->name, bond_dev->name, slave_dev->name, slave_dev->name,
bond_dev->name); bond_dev->name);
bond_dev->features |= NETIF_F_VLAN_CHALLENGED; bond_dev->features |= NETIF_F_VLAN_CHALLENGED;
} }
...@@ -1706,12 +1706,11 @@ static int bond_enslave(struct net_device *bond_dev, struct net_device *slave_de ...@@ -1706,12 +1706,11 @@ static int bond_enslave(struct net_device *bond_dev, struct net_device *slave_de
if (slave_dev->set_mac_address == NULL) { if (slave_dev->set_mac_address == NULL) {
printk(KERN_ERR DRV_NAME printk(KERN_ERR DRV_NAME
": Error: The slave device you specified does " ": %s: Error: The slave device you specified does "
"not support setting the MAC address.\n"); "not support setting the MAC address. "
printk(KERN_ERR "Your kernel likely does not support slave "
"Your kernel likely does not support slave devices.\n"); "devices.\n", bond_dev->name);
res = -EOPNOTSUPP;
res = -EOPNOTSUPP;
goto err_undo_flags; goto err_undo_flags;
} }
...@@ -1827,21 +1826,21 @@ static int bond_enslave(struct net_device *bond_dev, struct net_device *slave_de ...@@ -1827,21 +1826,21 @@ static int bond_enslave(struct net_device *bond_dev, struct net_device *slave_de
* the messages for netif_carrier. * the messages for netif_carrier.
*/ */
printk(KERN_WARNING DRV_NAME printk(KERN_WARNING DRV_NAME
": Warning: MII and ETHTOOL support not " ": %s: Warning: MII and ETHTOOL support not "
"available for interface %s, and " "available for interface %s, and "
"arp_interval/arp_ip_target module parameters " "arp_interval/arp_ip_target module parameters "
"not specified, thus bonding will not detect " "not specified, thus bonding will not detect "
"link failures! see bonding.txt for details.\n", "link failures! see bonding.txt for details.\n",
slave_dev->name); bond_dev->name, slave_dev->name);
} else if (link_reporting == -1) { } else if (link_reporting == -1) {
/* unable get link status using mii/ethtool */ /* unable get link status using mii/ethtool */
printk(KERN_WARNING DRV_NAME printk(KERN_WARNING DRV_NAME
": Warning: can't get link status from " ": %s: Warning: can't get link status from "
"interface %s; the network driver associated " "interface %s; the network driver associated "
"with this interface does not support MII or " "with this interface does not support MII or "
"ETHTOOL link status reporting, thus miimon " "ETHTOOL link status reporting, thus miimon "
"has no effect on this interface.\n", "has no effect on this interface.\n",
slave_dev->name); bond_dev->name, slave_dev->name);
} }
} }
...@@ -1868,15 +1867,15 @@ static int bond_enslave(struct net_device *bond_dev, struct net_device *slave_de ...@@ -1868,15 +1867,15 @@ static int bond_enslave(struct net_device *bond_dev, struct net_device *slave_de
if (bond_update_speed_duplex(new_slave) && if (bond_update_speed_duplex(new_slave) &&
(new_slave->link != BOND_LINK_DOWN)) { (new_slave->link != BOND_LINK_DOWN)) {
printk(KERN_WARNING DRV_NAME printk(KERN_WARNING DRV_NAME
": Warning: failed to get speed and duplex from %s, " ": %s: Warning: failed to get speed and duplex from %s, "
"assumed to be 100Mb/sec and Full.\n", "assumed to be 100Mb/sec and Full.\n",
new_slave->dev->name); bond_dev->name, new_slave->dev->name);
if (bond->params.mode == BOND_MODE_8023AD) { if (bond->params.mode == BOND_MODE_8023AD) {
printk(KERN_WARNING printk(KERN_WARNING DRV_NAME
"Operation of 802.3ad mode requires ETHTOOL " ": %s: Warning: Operation of 802.3ad mode requires ETHTOOL "
"support in base driver for proper aggregator " "support in base driver for proper aggregator "
"selection.\n"); "selection.\n", bond_dev->name);
} }
} }
...@@ -2010,7 +2009,7 @@ static int bond_release(struct net_device *bond_dev, struct net_device *slave_de ...@@ -2010,7 +2009,7 @@ static int bond_release(struct net_device *bond_dev, struct net_device *slave_de
if (!(slave_dev->flags & IFF_SLAVE) || if (!(slave_dev->flags & IFF_SLAVE) ||
(slave_dev->master != bond_dev)) { (slave_dev->master != bond_dev)) {
printk(KERN_ERR DRV_NAME printk(KERN_ERR DRV_NAME
": Error: %s: cannot release %s.\n", ": %s: Error: cannot release %s.\n",
bond_dev->name, slave_dev->name); bond_dev->name, slave_dev->name);
return -EINVAL; return -EINVAL;
} }
...@@ -2031,11 +2030,12 @@ static int bond_release(struct net_device *bond_dev, struct net_device *slave_de ...@@ -2031,11 +2030,12 @@ static int bond_release(struct net_device *bond_dev, struct net_device *slave_de
ETH_ALEN); ETH_ALEN);
if (!mac_addr_differ && (bond->slave_cnt > 1)) { if (!mac_addr_differ && (bond->slave_cnt > 1)) {
printk(KERN_WARNING DRV_NAME printk(KERN_WARNING DRV_NAME
": Warning: the permanent HWaddr of %s " ": %s: Warning: the permanent HWaddr of %s "
"- %02X:%02X:%02X:%02X:%02X:%02X - is " "- %02X:%02X:%02X:%02X:%02X:%02X - is "
"still in use by %s. Set the HWaddr of " "still in use by %s. Set the HWaddr of "
"%s to a different address to avoid " "%s to a different address to avoid "
"conflicts.\n", "conflicts.\n",
bond_dev->name,
slave_dev->name, slave_dev->name,
slave->perm_hwaddr[0], slave->perm_hwaddr[0],
slave->perm_hwaddr[1], slave->perm_hwaddr[1],
...@@ -2111,19 +2111,20 @@ static int bond_release(struct net_device *bond_dev, struct net_device *slave_de ...@@ -2111,19 +2111,20 @@ static int bond_release(struct net_device *bond_dev, struct net_device *slave_de
bond_dev->features |= NETIF_F_VLAN_CHALLENGED; bond_dev->features |= NETIF_F_VLAN_CHALLENGED;
} else { } else {
printk(KERN_WARNING DRV_NAME printk(KERN_WARNING DRV_NAME
": Warning: clearing HW address of %s while it " ": %s: Warning: clearing HW address of %s while it "
"still has VLANs.\n", "still has VLANs.\n",
bond_dev->name); bond_dev->name, bond_dev->name);
printk(KERN_WARNING DRV_NAME printk(KERN_WARNING DRV_NAME
": When re-adding slaves, make sure the bond's " ": %s: When re-adding slaves, make sure the bond's "
"HW address matches its VLANs'.\n"); "HW address matches its VLANs'.\n",
bond_dev->name);
} }
} else if ((bond_dev->features & NETIF_F_VLAN_CHALLENGED) && } else if ((bond_dev->features & NETIF_F_VLAN_CHALLENGED) &&
!bond_has_challenged_slaves(bond)) { !bond_has_challenged_slaves(bond)) {
printk(KERN_INFO DRV_NAME printk(KERN_INFO DRV_NAME
": last VLAN challenged slave %s " ": %s: last VLAN challenged slave %s "
"left bond %s. VLAN blocking is removed\n", "left bond %s. VLAN blocking is removed\n",
slave_dev->name, bond_dev->name); bond_dev->name, slave_dev->name, bond_dev->name);
bond_dev->features &= ~NETIF_F_VLAN_CHALLENGED; bond_dev->features &= ~NETIF_F_VLAN_CHALLENGED;
} }
...@@ -2274,12 +2275,13 @@ static int bond_release_all(struct net_device *bond_dev) ...@@ -2274,12 +2275,13 @@ static int bond_release_all(struct net_device *bond_dev)
bond_dev->features |= NETIF_F_VLAN_CHALLENGED; bond_dev->features |= NETIF_F_VLAN_CHALLENGED;
} else { } else {
printk(KERN_WARNING DRV_NAME printk(KERN_WARNING DRV_NAME
": Warning: clearing HW address of %s while it " ": %s: Warning: clearing HW address of %s while it "
"still has VLANs.\n", "still has VLANs.\n",
bond_dev->name); bond_dev->name, bond_dev->name);
printk(KERN_WARNING DRV_NAME printk(KERN_WARNING DRV_NAME
": When re-adding slaves, make sure the bond's " ": %s: When re-adding slaves, make sure the bond's "
"HW address matches its VLANs'.\n"); "HW address matches its VLANs'.\n",
bond_dev->name);
} }
printk(KERN_INFO DRV_NAME printk(KERN_INFO DRV_NAME
...@@ -2596,8 +2598,11 @@ static void bond_mii_monitor(struct net_device *bond_dev) ...@@ -2596,8 +2598,11 @@ static void bond_mii_monitor(struct net_device *bond_dev)
break; break;
default: default:
/* Should not happen */ /* Should not happen */
printk(KERN_ERR "bonding: Error: %s Illegal value (link=%d)\n", printk(KERN_ERR DRV_NAME
slave->dev->name, slave->link); ": %s: Error: %s Illegal value (link=%d)\n",
bond_dev->name,
slave->dev->name,
slave->link);
goto out; goto out;
} /* end of switch (slave->link) */ } /* end of switch (slave->link) */
...@@ -4397,8 +4402,9 @@ static int bond_xmit_broadcast(struct sk_buff *skb, struct net_device *bond_dev) ...@@ -4397,8 +4402,9 @@ static int bond_xmit_broadcast(struct sk_buff *skb, struct net_device *bond_dev)
struct sk_buff *skb2 = skb_clone(skb, GFP_ATOMIC); struct sk_buff *skb2 = skb_clone(skb, GFP_ATOMIC);
if (!skb2) { if (!skb2) {
printk(KERN_ERR DRV_NAME printk(KERN_ERR DRV_NAME
": Error: bond_xmit_broadcast(): " ": %s: Error: bond_xmit_broadcast(): "
"skb_clone() failed\n"); "skb_clone() failed\n",
bond_dev->name);
continue; continue;
} }
...@@ -4467,7 +4473,8 @@ static inline void bond_set_mode_ops(struct bonding *bond, int mode) ...@@ -4467,7 +4473,8 @@ static inline void bond_set_mode_ops(struct bonding *bond, int mode)
default: default:
/* Should never happen, mode already checked */ /* Should never happen, mode already checked */
printk(KERN_ERR DRV_NAME printk(KERN_ERR DRV_NAME
": Error: Unknown bonding mode %d\n", ": %s: Error: Unknown bonding mode %d\n",
bond_dev->name,
mode); mode);
break; break;
} }
...@@ -4670,7 +4677,7 @@ static int bond_check_params(struct bond_params *params) ...@@ -4670,7 +4677,7 @@ static int bond_check_params(struct bond_params *params)
if (max_bonds < 1 || max_bonds > INT_MAX) { if (max_bonds < 1 || max_bonds > INT_MAX) {
printk(KERN_WARNING DRV_NAME printk(KERN_WARNING DRV_NAME
": Warning: max_bonds (%d) not in range %d-%d, so it " ": Warning: max_bonds (%d) not in range %d-%d, so it "
"was reset to BOND_DEFAULT_MAX_BONDS (%d)", "was reset to BOND_DEFAULT_MAX_BONDS (%d)\n",
max_bonds, 1, INT_MAX, BOND_DEFAULT_MAX_BONDS); max_bonds, 1, INT_MAX, BOND_DEFAULT_MAX_BONDS);
max_bonds = BOND_DEFAULT_MAX_BONDS; max_bonds = BOND_DEFAULT_MAX_BONDS;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册