mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 22:51:42 +00:00
bonding: use pr_debug instead of own macros
Use pr_debug() instead of own macros. Signed-off-by: Holger Eitzenberger <holger@eitzenberger.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ef65583d01
commit
5a03cdb7f2
@ -20,8 +20,6 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//#define BONDING_DEBUG 1
|
|
||||||
|
|
||||||
#include <linux/skbuff.h>
|
#include <linux/skbuff.h>
|
||||||
#include <linux/if_ether.h>
|
#include <linux/if_ether.h>
|
||||||
#include <linux/netdevice.h>
|
#include <linux/netdevice.h>
|
||||||
@ -381,7 +379,7 @@ static u16 __get_link_speed(struct port *port)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dprintk("Port %d Received link speed %d update from adapter\n", port->actor_port_number, speed);
|
pr_debug("Port %d Received link speed %d update from adapter\n", port->actor_port_number, speed);
|
||||||
return speed;
|
return speed;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -407,12 +405,12 @@ static u8 __get_duplex(struct port *port)
|
|||||||
switch (slave->duplex) {
|
switch (slave->duplex) {
|
||||||
case DUPLEX_FULL:
|
case DUPLEX_FULL:
|
||||||
retval=0x1;
|
retval=0x1;
|
||||||
dprintk("Port %d Received status full duplex update from adapter\n", port->actor_port_number);
|
pr_debug("Port %d Received status full duplex update from adapter\n", port->actor_port_number);
|
||||||
break;
|
break;
|
||||||
case DUPLEX_HALF:
|
case DUPLEX_HALF:
|
||||||
default:
|
default:
|
||||||
retval=0x0;
|
retval=0x0;
|
||||||
dprintk("Port %d Received status NOT full duplex update from adapter\n", port->actor_port_number);
|
pr_debug("Port %d Received status NOT full duplex update from adapter\n", port->actor_port_number);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1019,7 +1017,7 @@ static void ad_mux_machine(struct port *port)
|
|||||||
|
|
||||||
// check if the state machine was changed
|
// check if the state machine was changed
|
||||||
if (port->sm_mux_state != last_state) {
|
if (port->sm_mux_state != last_state) {
|
||||||
dprintk("Mux Machine: Port=%d, Last State=%d, Curr State=%d\n", port->actor_port_number, last_state, port->sm_mux_state);
|
pr_debug("Mux Machine: Port=%d, Last State=%d, Curr State=%d\n", port->actor_port_number, last_state, port->sm_mux_state);
|
||||||
switch (port->sm_mux_state) {
|
switch (port->sm_mux_state) {
|
||||||
case AD_MUX_DETACHED:
|
case AD_MUX_DETACHED:
|
||||||
__detach_bond_from_agg(port);
|
__detach_bond_from_agg(port);
|
||||||
@ -1118,7 +1116,7 @@ static void ad_rx_machine(struct lacpdu *lacpdu, struct port *port)
|
|||||||
|
|
||||||
// check if the State machine was changed or new lacpdu arrived
|
// check if the State machine was changed or new lacpdu arrived
|
||||||
if ((port->sm_rx_state != last_state) || (lacpdu)) {
|
if ((port->sm_rx_state != last_state) || (lacpdu)) {
|
||||||
dprintk("Rx Machine: Port=%d, Last State=%d, Curr State=%d\n", port->actor_port_number, last_state, port->sm_rx_state);
|
pr_debug("Rx Machine: Port=%d, Last State=%d, Curr State=%d\n", port->actor_port_number, last_state, port->sm_rx_state);
|
||||||
switch (port->sm_rx_state) {
|
switch (port->sm_rx_state) {
|
||||||
case AD_RX_INITIALIZE:
|
case AD_RX_INITIALIZE:
|
||||||
if (!(port->actor_oper_port_key & AD_DUPLEX_KEY_BITS)) {
|
if (!(port->actor_oper_port_key & AD_DUPLEX_KEY_BITS)) {
|
||||||
@ -1205,7 +1203,7 @@ static void ad_tx_machine(struct port *port)
|
|||||||
__update_lacpdu_from_port(port);
|
__update_lacpdu_from_port(port);
|
||||||
// send the lacpdu
|
// send the lacpdu
|
||||||
if (ad_lacpdu_send(port) >= 0) {
|
if (ad_lacpdu_send(port) >= 0) {
|
||||||
dprintk("Sent LACPDU on port %d\n", port->actor_port_number);
|
pr_debug("Sent LACPDU on port %d\n", port->actor_port_number);
|
||||||
// mark ntt as false, so it will not be sent again until demanded
|
// mark ntt as false, so it will not be sent again until demanded
|
||||||
port->ntt = 0;
|
port->ntt = 0;
|
||||||
}
|
}
|
||||||
@ -1278,7 +1276,7 @@ static void ad_periodic_machine(struct port *port)
|
|||||||
|
|
||||||
// check if the state machine was changed
|
// check if the state machine was changed
|
||||||
if (port->sm_periodic_state != last_state) {
|
if (port->sm_periodic_state != last_state) {
|
||||||
dprintk("Periodic Machine: Port=%d, Last State=%d, Curr State=%d\n", port->actor_port_number, last_state, port->sm_periodic_state);
|
pr_debug("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) {
|
switch (port->sm_periodic_state) {
|
||||||
case AD_NO_PERIODIC:
|
case AD_NO_PERIODIC:
|
||||||
port->sm_periodic_timer_counter = 0; // zero timer
|
port->sm_periodic_timer_counter = 0; // zero timer
|
||||||
@ -1335,7 +1333,7 @@ static void ad_port_selection_logic(struct port *port)
|
|||||||
port->next_port_in_aggregator=NULL;
|
port->next_port_in_aggregator=NULL;
|
||||||
port->actor_port_aggregator_identifier=0;
|
port->actor_port_aggregator_identifier=0;
|
||||||
|
|
||||||
dprintk("Port %d left LAG %d\n", port->actor_port_number, temp_aggregator->aggregator_identifier);
|
pr_debug("Port %d left LAG %d\n", port->actor_port_number, temp_aggregator->aggregator_identifier);
|
||||||
// if the aggregator is empty, clear its parameters, and set it ready to be attached
|
// if the aggregator is empty, clear its parameters, and set it ready to be attached
|
||||||
if (!temp_aggregator->lag_ports) {
|
if (!temp_aggregator->lag_ports) {
|
||||||
ad_clear_agg(temp_aggregator);
|
ad_clear_agg(temp_aggregator);
|
||||||
@ -1378,7 +1376,7 @@ static void ad_port_selection_logic(struct port *port)
|
|||||||
port->next_port_in_aggregator=aggregator->lag_ports;
|
port->next_port_in_aggregator=aggregator->lag_ports;
|
||||||
port->aggregator->num_of_ports++;
|
port->aggregator->num_of_ports++;
|
||||||
aggregator->lag_ports=port;
|
aggregator->lag_ports=port;
|
||||||
dprintk("Port %d joined LAG %d(existing LAG)\n", port->actor_port_number, port->aggregator->aggregator_identifier);
|
pr_debug("Port %d joined LAG %d(existing LAG)\n", port->actor_port_number, port->aggregator->aggregator_identifier);
|
||||||
|
|
||||||
// mark this port as selected
|
// mark this port as selected
|
||||||
port->sm_vars |= AD_PORT_SELECTED;
|
port->sm_vars |= AD_PORT_SELECTED;
|
||||||
@ -1415,7 +1413,7 @@ static void ad_port_selection_logic(struct port *port)
|
|||||||
// mark this port as selected
|
// mark this port as selected
|
||||||
port->sm_vars |= AD_PORT_SELECTED;
|
port->sm_vars |= AD_PORT_SELECTED;
|
||||||
|
|
||||||
dprintk("Port %d joined LAG %d(new LAG)\n", port->actor_port_number, port->aggregator->aggregator_identifier);
|
pr_debug("Port %d joined LAG %d(new LAG)\n", port->actor_port_number, port->aggregator->aggregator_identifier);
|
||||||
} else {
|
} else {
|
||||||
printk(KERN_ERR DRV_NAME ": %s: 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->slave->dev->master->name,
|
||||||
@ -1574,19 +1572,19 @@ static void ad_agg_selection_logic(struct aggregator *agg)
|
|||||||
|
|
||||||
// if there is new best aggregator, activate it
|
// if there is new best aggregator, activate it
|
||||||
if (best) {
|
if (best) {
|
||||||
dprintk("best Agg=%d; P=%d; a k=%d; p k=%d; Ind=%d; Act=%d\n",
|
pr_debug("best Agg=%d; P=%d; a k=%d; p k=%d; Ind=%d; Act=%d\n",
|
||||||
best->aggregator_identifier, best->num_of_ports,
|
best->aggregator_identifier, best->num_of_ports,
|
||||||
best->actor_oper_aggregator_key,
|
best->actor_oper_aggregator_key,
|
||||||
best->partner_oper_aggregator_key,
|
best->partner_oper_aggregator_key,
|
||||||
best->is_individual, best->is_active);
|
best->is_individual, best->is_active);
|
||||||
dprintk("best ports %p slave %p %s\n",
|
pr_debug("best ports %p slave %p %s\n",
|
||||||
best->lag_ports, best->slave,
|
best->lag_ports, best->slave,
|
||||||
best->slave ? best->slave->dev->name : "NULL");
|
best->slave ? best->slave->dev->name : "NULL");
|
||||||
|
|
||||||
for (agg = __get_first_agg(best->lag_ports); agg;
|
for (agg = __get_first_agg(best->lag_ports); agg;
|
||||||
agg = __get_next_agg(agg)) {
|
agg = __get_next_agg(agg)) {
|
||||||
|
|
||||||
dprintk("Agg=%d; P=%d; a k=%d; p k=%d; Ind=%d; Act=%d\n",
|
pr_debug("Agg=%d; P=%d; a k=%d; p k=%d; Ind=%d; Act=%d\n",
|
||||||
agg->aggregator_identifier, agg->num_of_ports,
|
agg->aggregator_identifier, agg->num_of_ports,
|
||||||
agg->actor_oper_aggregator_key,
|
agg->actor_oper_aggregator_key,
|
||||||
agg->partner_oper_aggregator_key,
|
agg->partner_oper_aggregator_key,
|
||||||
@ -1602,9 +1600,9 @@ static void ad_agg_selection_logic(struct aggregator *agg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
best->is_active = 1;
|
best->is_active = 1;
|
||||||
dprintk("LAG %d chosen as the active LAG\n",
|
pr_debug("LAG %d chosen as the active LAG\n",
|
||||||
best->aggregator_identifier);
|
best->aggregator_identifier);
|
||||||
dprintk("Agg=%d; P=%d; a k=%d; p k=%d; Ind=%d; Act=%d\n",
|
pr_debug("Agg=%d; P=%d; a k=%d; p k=%d; Ind=%d; Act=%d\n",
|
||||||
best->aggregator_identifier, best->num_of_ports,
|
best->aggregator_identifier, best->num_of_ports,
|
||||||
best->actor_oper_aggregator_key,
|
best->actor_oper_aggregator_key,
|
||||||
best->partner_oper_aggregator_key,
|
best->partner_oper_aggregator_key,
|
||||||
@ -1662,7 +1660,7 @@ static void ad_clear_agg(struct aggregator *aggregator)
|
|||||||
aggregator->lag_ports = NULL;
|
aggregator->lag_ports = NULL;
|
||||||
aggregator->is_active = 0;
|
aggregator->is_active = 0;
|
||||||
aggregator->num_of_ports = 0;
|
aggregator->num_of_ports = 0;
|
||||||
dprintk("LAG %d was cleared\n", aggregator->aggregator_identifier);
|
pr_debug("LAG %d was cleared\n", aggregator->aggregator_identifier);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1747,7 +1745,7 @@ static void ad_initialize_port(struct port *port, int lacp_fast)
|
|||||||
static void ad_enable_collecting_distributing(struct port *port)
|
static void ad_enable_collecting_distributing(struct port *port)
|
||||||
{
|
{
|
||||||
if (port->aggregator->is_active) {
|
if (port->aggregator->is_active) {
|
||||||
dprintk("Enabling port %d(LAG %d)\n", port->actor_port_number, port->aggregator->aggregator_identifier);
|
pr_debug("Enabling port %d(LAG %d)\n", port->actor_port_number, port->aggregator->aggregator_identifier);
|
||||||
__enable_port(port);
|
__enable_port(port);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1760,7 +1758,7 @@ static void ad_enable_collecting_distributing(struct port *port)
|
|||||||
static void ad_disable_collecting_distributing(struct port *port)
|
static void ad_disable_collecting_distributing(struct port *port)
|
||||||
{
|
{
|
||||||
if (port->aggregator && MAC_ADDRESS_COMPARE(&(port->aggregator->partner_system), &(null_mac_addr))) {
|
if (port->aggregator && MAC_ADDRESS_COMPARE(&(port->aggregator->partner_system), &(null_mac_addr))) {
|
||||||
dprintk("Disabling port %d(LAG %d)\n", port->actor_port_number, port->aggregator->aggregator_identifier);
|
pr_debug("Disabling port %d(LAG %d)\n", port->actor_port_number, port->aggregator->aggregator_identifier);
|
||||||
__disable_port(port);
|
__disable_port(port);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1798,7 +1796,7 @@ static void ad_marker_info_send(struct port *port)
|
|||||||
|
|
||||||
// send the marker information
|
// send the marker information
|
||||||
if (ad_marker_send(port, &marker) >= 0) {
|
if (ad_marker_send(port, &marker) >= 0) {
|
||||||
dprintk("Sent Marker Information on port %d\n", port->actor_port_number);
|
pr_debug("Sent Marker Information on port %d\n", port->actor_port_number);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -1822,7 +1820,7 @@ static void ad_marker_info_received(struct bond_marker *marker_info,
|
|||||||
// send the marker response
|
// send the marker response
|
||||||
|
|
||||||
if (ad_marker_send(port, &marker) >= 0) {
|
if (ad_marker_send(port, &marker) >= 0) {
|
||||||
dprintk("Sent Marker Response on port %d\n", port->actor_port_number);
|
pr_debug("Sent Marker Response on port %d\n", port->actor_port_number);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2036,7 +2034,7 @@ void bond_3ad_unbind_slave(struct slave *slave)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
dprintk("Unbinding Link Aggregation Group %d\n", aggregator->aggregator_identifier);
|
pr_debug("Unbinding Link Aggregation Group %d\n", aggregator->aggregator_identifier);
|
||||||
|
|
||||||
/* Tell the partner that this port is not suitable for aggregation */
|
/* Tell the partner that this port is not suitable for aggregation */
|
||||||
port->actor_oper_port_state &= ~AD_STATE_AGGREGATION;
|
port->actor_oper_port_state &= ~AD_STATE_AGGREGATION;
|
||||||
@ -2060,7 +2058,7 @@ void bond_3ad_unbind_slave(struct slave *slave)
|
|||||||
// if new aggregator found, copy the aggregator's parameters
|
// if new aggregator found, copy the aggregator's parameters
|
||||||
// and connect the related lag_ports to the new aggregator
|
// and connect the related lag_ports to the new aggregator
|
||||||
if ((new_aggregator) && ((!new_aggregator->lag_ports) || ((new_aggregator->lag_ports == port) && !new_aggregator->lag_ports->next_port_in_aggregator))) {
|
if ((new_aggregator) && ((!new_aggregator->lag_ports) || ((new_aggregator->lag_ports == port) && !new_aggregator->lag_ports->next_port_in_aggregator))) {
|
||||||
dprintk("Some port(s) related to LAG %d - replaceing with LAG %d\n", aggregator->aggregator_identifier, new_aggregator->aggregator_identifier);
|
pr_debug("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 ": %s: Removing an active aggregator\n",
|
printk(KERN_INFO DRV_NAME ": %s: Removing an active aggregator\n",
|
||||||
@ -2111,7 +2109,7 @@ void bond_3ad_unbind_slave(struct slave *slave)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dprintk("Unbinding port %d\n", port->actor_port_number);
|
pr_debug("Unbinding port %d\n", port->actor_port_number);
|
||||||
// find the aggregator that this port is connected to
|
// find the aggregator that this port is connected to
|
||||||
temp_aggregator = __get_first_agg(port);
|
temp_aggregator = __get_first_agg(port);
|
||||||
for (; temp_aggregator; temp_aggregator = __get_next_agg(temp_aggregator)) {
|
for (; temp_aggregator; temp_aggregator = __get_next_agg(temp_aggregator)) {
|
||||||
@ -2242,7 +2240,7 @@ static void bond_3ad_rx_indication(struct lacpdu *lacpdu, struct slave *slave, u
|
|||||||
|
|
||||||
switch (lacpdu->subtype) {
|
switch (lacpdu->subtype) {
|
||||||
case AD_TYPE_LACPDU:
|
case AD_TYPE_LACPDU:
|
||||||
dprintk("Received LACPDU on port %d\n", port->actor_port_number);
|
pr_debug("Received LACPDU on port %d\n", port->actor_port_number);
|
||||||
ad_rx_machine(lacpdu, port);
|
ad_rx_machine(lacpdu, port);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -2251,17 +2249,17 @@ static void bond_3ad_rx_indication(struct lacpdu *lacpdu, struct slave *slave, u
|
|||||||
|
|
||||||
switch (((struct bond_marker *)lacpdu)->tlv_type) {
|
switch (((struct bond_marker *)lacpdu)->tlv_type) {
|
||||||
case AD_MARKER_INFORMATION_SUBTYPE:
|
case AD_MARKER_INFORMATION_SUBTYPE:
|
||||||
dprintk("Received Marker Information on port %d\n", port->actor_port_number);
|
pr_debug("Received Marker Information on port %d\n", port->actor_port_number);
|
||||||
ad_marker_info_received((struct bond_marker *)lacpdu, port);
|
ad_marker_info_received((struct bond_marker *)lacpdu, port);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AD_MARKER_RESPONSE_SUBTYPE:
|
case AD_MARKER_RESPONSE_SUBTYPE:
|
||||||
dprintk("Received Marker Response on port %d\n", port->actor_port_number);
|
pr_debug("Received Marker Response on port %d\n", port->actor_port_number);
|
||||||
ad_marker_response_received((struct bond_marker *)lacpdu, port);
|
ad_marker_response_received((struct bond_marker *)lacpdu, port);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
dprintk("Received an unknown Marker subtype on slot %d\n", port->actor_port_number);
|
pr_debug("Received an unknown Marker subtype on slot %d\n", port->actor_port_number);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2289,7 +2287,7 @@ void bond_3ad_adapter_speed_changed(struct slave *slave)
|
|||||||
|
|
||||||
port->actor_admin_port_key &= ~AD_SPEED_KEY_BITS;
|
port->actor_admin_port_key &= ~AD_SPEED_KEY_BITS;
|
||||||
port->actor_oper_port_key=port->actor_admin_port_key |= (__get_link_speed(port) << 1);
|
port->actor_oper_port_key=port->actor_admin_port_key |= (__get_link_speed(port) << 1);
|
||||||
dprintk("Port %d changed speed\n", port->actor_port_number);
|
pr_debug("Port %d changed speed\n", port->actor_port_number);
|
||||||
// there is no need to reselect a new aggregator, just signal the
|
// there is no need to reselect a new aggregator, just signal the
|
||||||
// state machines to reinitialize
|
// state machines to reinitialize
|
||||||
port->sm_vars |= AD_PORT_BEGIN;
|
port->sm_vars |= AD_PORT_BEGIN;
|
||||||
@ -2317,7 +2315,7 @@ void bond_3ad_adapter_duplex_changed(struct slave *slave)
|
|||||||
|
|
||||||
port->actor_admin_port_key &= ~AD_DUPLEX_KEY_BITS;
|
port->actor_admin_port_key &= ~AD_DUPLEX_KEY_BITS;
|
||||||
port->actor_oper_port_key=port->actor_admin_port_key |= __get_duplex(port);
|
port->actor_oper_port_key=port->actor_admin_port_key |= __get_duplex(port);
|
||||||
dprintk("Port %d changed duplex\n", port->actor_port_number);
|
pr_debug("Port %d changed duplex\n", port->actor_port_number);
|
||||||
// there is no need to reselect a new aggregator, just signal the
|
// there is no need to reselect a new aggregator, just signal the
|
||||||
// state machines to reinitialize
|
// state machines to reinitialize
|
||||||
port->sm_vars |= AD_PORT_BEGIN;
|
port->sm_vars |= AD_PORT_BEGIN;
|
||||||
|
@ -20,8 +20,6 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//#define BONDING_DEBUG 1
|
|
||||||
|
|
||||||
#include <linux/skbuff.h>
|
#include <linux/skbuff.h>
|
||||||
#include <linux/netdevice.h>
|
#include <linux/netdevice.h>
|
||||||
#include <linux/etherdevice.h>
|
#include <linux/etherdevice.h>
|
||||||
@ -361,12 +359,12 @@ static int rlb_arp_recv(struct sk_buff *skb, struct net_device *bond_dev, struct
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (!arp) {
|
if (!arp) {
|
||||||
dprintk("Packet has no ARP data\n");
|
pr_debug("Packet has no ARP data\n");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (skb->len < sizeof(struct arp_pkt)) {
|
if (skb->len < sizeof(struct arp_pkt)) {
|
||||||
dprintk("Packet is too small to be an ARP\n");
|
pr_debug("Packet is too small to be an ARP\n");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -376,7 +374,7 @@ static int rlb_arp_recv(struct sk_buff *skb, struct net_device *bond_dev, struct
|
|||||||
bond_dev->name);
|
bond_dev->name);
|
||||||
bond = netdev_priv(bond_dev);
|
bond = netdev_priv(bond_dev);
|
||||||
rlb_update_entry_from_arp(bond, arp);
|
rlb_update_entry_from_arp(bond, arp);
|
||||||
dprintk("Server received an ARP Reply from client\n");
|
pr_debug("Server received an ARP Reply from client\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
res = NET_RX_SUCCESS;
|
res = NET_RX_SUCCESS;
|
||||||
@ -730,7 +728,7 @@ static struct slave *rlb_arp_xmit(struct sk_buff *skb, struct bonding *bond)
|
|||||||
if (tx_slave) {
|
if (tx_slave) {
|
||||||
memcpy(arp->mac_src,tx_slave->dev->dev_addr, ETH_ALEN);
|
memcpy(arp->mac_src,tx_slave->dev->dev_addr, ETH_ALEN);
|
||||||
}
|
}
|
||||||
dprintk("Server sent ARP Reply packet\n");
|
pr_debug("Server sent ARP Reply packet\n");
|
||||||
} else if (arp->op_code == htons(ARPOP_REQUEST)) {
|
} else if (arp->op_code == htons(ARPOP_REQUEST)) {
|
||||||
/* Create an entry in the rx_hashtbl for this client as a
|
/* Create an entry in the rx_hashtbl for this client as a
|
||||||
* place holder.
|
* place holder.
|
||||||
@ -750,7 +748,7 @@ static struct slave *rlb_arp_xmit(struct sk_buff *skb, struct bonding *bond)
|
|||||||
* updated with their assigned mac.
|
* updated with their assigned mac.
|
||||||
*/
|
*/
|
||||||
rlb_req_update_subnet_clients(bond, arp->ip_src);
|
rlb_req_update_subnet_clients(bond, arp->ip_src);
|
||||||
dprintk("Server sent ARP Request packet\n");
|
pr_debug("Server sent ARP Request packet\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
return tx_slave;
|
return tx_slave;
|
||||||
|
@ -20,8 +20,6 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//#define BONDING_DEBUG 1
|
|
||||||
|
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <linux/if_vlan.h>
|
#include <linux/if_vlan.h>
|
||||||
#include <net/ipv6.h>
|
#include <net/ipv6.h>
|
||||||
@ -74,7 +72,7 @@ static void bond_na_send(struct net_device *slave_dev,
|
|||||||
|
|
||||||
addrconf_addr_solict_mult(daddr, &mcaddr);
|
addrconf_addr_solict_mult(daddr, &mcaddr);
|
||||||
|
|
||||||
dprintk("ipv6 na on slave %s: dest %pI6, src %pI6\n",
|
pr_debug("ipv6 na on slave %s: dest %pI6, src %pI6\n",
|
||||||
slave_dev->name, &mcaddr, daddr);
|
slave_dev->name, &mcaddr, daddr);
|
||||||
|
|
||||||
skb = ndisc_build_skb(slave_dev, &mcaddr, daddr, &icmp6h, daddr,
|
skb = ndisc_build_skb(slave_dev, &mcaddr, daddr, &icmp6h, daddr,
|
||||||
@ -110,7 +108,7 @@ void bond_send_unsolicited_na(struct bonding *bond)
|
|||||||
struct inet6_dev *idev;
|
struct inet6_dev *idev;
|
||||||
int is_router;
|
int is_router;
|
||||||
|
|
||||||
dprintk("bond_send_unsol_na: bond %s slave %s\n", bond->dev->name,
|
pr_debug("bond_send_unsol_na: bond %s slave %s\n", bond->dev->name,
|
||||||
slave ? slave->dev->name : "NULL");
|
slave ? slave->dev->name : "NULL");
|
||||||
|
|
||||||
if (!slave || !bond->send_unsol_na ||
|
if (!slave || !bond->send_unsol_na ||
|
||||||
|
@ -31,8 +31,6 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//#define BONDING_DEBUG 1
|
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
@ -248,7 +246,7 @@ static int bond_add_vlan(struct bonding *bond, unsigned short vlan_id)
|
|||||||
{
|
{
|
||||||
struct vlan_entry *vlan;
|
struct vlan_entry *vlan;
|
||||||
|
|
||||||
dprintk("bond: %s, vlan id %d\n",
|
pr_debug("bond: %s, vlan id %d\n",
|
||||||
(bond ? bond->dev->name: "None"), vlan_id);
|
(bond ? bond->dev->name: "None"), vlan_id);
|
||||||
|
|
||||||
vlan = kzalloc(sizeof(struct vlan_entry), GFP_KERNEL);
|
vlan = kzalloc(sizeof(struct vlan_entry), GFP_KERNEL);
|
||||||
@ -265,7 +263,7 @@ static int bond_add_vlan(struct bonding *bond, unsigned short vlan_id)
|
|||||||
|
|
||||||
write_unlock_bh(&bond->lock);
|
write_unlock_bh(&bond->lock);
|
||||||
|
|
||||||
dprintk("added VLAN ID %d on bond %s\n", vlan_id, bond->dev->name);
|
pr_debug("added VLAN ID %d on bond %s\n", vlan_id, bond->dev->name);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -282,7 +280,7 @@ static int bond_del_vlan(struct bonding *bond, unsigned short vlan_id)
|
|||||||
struct vlan_entry *vlan;
|
struct vlan_entry *vlan;
|
||||||
int res = -ENODEV;
|
int res = -ENODEV;
|
||||||
|
|
||||||
dprintk("bond: %s, vlan id %d\n", bond->dev->name, vlan_id);
|
pr_debug("bond: %s, vlan id %d\n", bond->dev->name, vlan_id);
|
||||||
|
|
||||||
write_lock_bh(&bond->lock);
|
write_lock_bh(&bond->lock);
|
||||||
|
|
||||||
@ -293,7 +291,7 @@ static int bond_del_vlan(struct bonding *bond, unsigned short vlan_id)
|
|||||||
if (bond_is_lb(bond))
|
if (bond_is_lb(bond))
|
||||||
bond_alb_clear_vlan(bond, vlan_id);
|
bond_alb_clear_vlan(bond, vlan_id);
|
||||||
|
|
||||||
dprintk("removed VLAN ID %d from bond %s\n", vlan_id,
|
pr_debug("removed VLAN ID %d from bond %s\n", vlan_id,
|
||||||
bond->dev->name);
|
bond->dev->name);
|
||||||
|
|
||||||
kfree(vlan);
|
kfree(vlan);
|
||||||
@ -313,7 +311,7 @@ static int bond_del_vlan(struct bonding *bond, unsigned short vlan_id)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dprintk("couldn't find VLAN ID %d in bond %s\n", vlan_id,
|
pr_debug("couldn't find VLAN ID %d in bond %s\n", vlan_id,
|
||||||
bond->dev->name);
|
bond->dev->name);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
@ -337,13 +335,13 @@ static int bond_has_challenged_slaves(struct bonding *bond)
|
|||||||
|
|
||||||
bond_for_each_slave(bond, slave, i) {
|
bond_for_each_slave(bond, slave, i) {
|
||||||
if (slave->dev->features & NETIF_F_VLAN_CHALLENGED) {
|
if (slave->dev->features & NETIF_F_VLAN_CHALLENGED) {
|
||||||
dprintk("found VLAN challenged slave - %s\n",
|
pr_debug("found VLAN challenged slave - %s\n",
|
||||||
slave->dev->name);
|
slave->dev->name);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dprintk("no VLAN challenged slaves found\n");
|
pr_debug("no VLAN challenged slaves found\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1319,9 +1317,9 @@ static void bond_detach_slave(struct bonding *bond, struct slave *slave)
|
|||||||
static int bond_sethwaddr(struct net_device *bond_dev,
|
static int bond_sethwaddr(struct net_device *bond_dev,
|
||||||
struct net_device *slave_dev)
|
struct net_device *slave_dev)
|
||||||
{
|
{
|
||||||
dprintk("bond_dev=%p\n", bond_dev);
|
pr_debug("bond_dev=%p\n", bond_dev);
|
||||||
dprintk("slave_dev=%p\n", slave_dev);
|
pr_debug("slave_dev=%p\n", slave_dev);
|
||||||
dprintk("slave_dev->addr_len=%d\n", slave_dev->addr_len);
|
pr_debug("slave_dev->addr_len=%d\n", slave_dev->addr_len);
|
||||||
memcpy(bond_dev->dev_addr, slave_dev->dev_addr, slave_dev->addr_len);
|
memcpy(bond_dev->dev_addr, slave_dev->dev_addr, slave_dev->addr_len);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -1412,14 +1410,14 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
|
|||||||
|
|
||||||
/* already enslaved */
|
/* already enslaved */
|
||||||
if (slave_dev->flags & IFF_SLAVE) {
|
if (slave_dev->flags & IFF_SLAVE) {
|
||||||
dprintk("Error, Device was already enslaved\n");
|
pr_debug("Error, Device was already enslaved\n");
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* vlan challenged mutual exclusion */
|
/* vlan challenged mutual exclusion */
|
||||||
/* no need to lock since we're protected by rtnl_lock */
|
/* no need to lock since we're protected by rtnl_lock */
|
||||||
if (slave_dev->features & NETIF_F_VLAN_CHALLENGED) {
|
if (slave_dev->features & NETIF_F_VLAN_CHALLENGED) {
|
||||||
dprintk("%s: NETIF_F_VLAN_CHALLENGED\n", slave_dev->name);
|
pr_debug("%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
|
||||||
": %s: Error: cannot enslave VLAN "
|
": %s: Error: cannot enslave VLAN "
|
||||||
@ -1437,7 +1435,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
|
|||||||
bond_dev->features |= NETIF_F_VLAN_CHALLENGED;
|
bond_dev->features |= NETIF_F_VLAN_CHALLENGED;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dprintk("%s: ! NETIF_F_VLAN_CHALLENGED\n", slave_dev->name);
|
pr_debug("%s: ! NETIF_F_VLAN_CHALLENGED\n", slave_dev->name);
|
||||||
if (bond->slave_cnt == 0) {
|
if (bond->slave_cnt == 0) {
|
||||||
/* First slave, and it is not VLAN challenged,
|
/* First slave, and it is not VLAN challenged,
|
||||||
* so remove the block of adding VLANs over the bond.
|
* so remove the block of adding VLANs over the bond.
|
||||||
@ -1525,20 +1523,20 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
|
|||||||
addr.sa_family = slave_dev->type;
|
addr.sa_family = slave_dev->type;
|
||||||
res = dev_set_mac_address(slave_dev, &addr);
|
res = dev_set_mac_address(slave_dev, &addr);
|
||||||
if (res) {
|
if (res) {
|
||||||
dprintk("Error %d calling set_mac_address\n", res);
|
pr_debug("Error %d calling set_mac_address\n", res);
|
||||||
goto err_free;
|
goto err_free;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
res = netdev_set_master(slave_dev, bond_dev);
|
res = netdev_set_master(slave_dev, bond_dev);
|
||||||
if (res) {
|
if (res) {
|
||||||
dprintk("Error %d calling netdev_set_master\n", res);
|
pr_debug("Error %d calling netdev_set_master\n", res);
|
||||||
goto err_restore_mac;
|
goto err_restore_mac;
|
||||||
}
|
}
|
||||||
/* open the slave since the application closed it */
|
/* open the slave since the application closed it */
|
||||||
res = dev_open(slave_dev);
|
res = dev_open(slave_dev);
|
||||||
if (res) {
|
if (res) {
|
||||||
dprintk("Openning slave %s failed\n", slave_dev->name);
|
pr_debug("Openning slave %s failed\n", slave_dev->name);
|
||||||
goto err_unset_master;
|
goto err_unset_master;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1643,18 +1641,18 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
|
|||||||
if (!bond->params.miimon ||
|
if (!bond->params.miimon ||
|
||||||
(bond_check_dev_link(bond, slave_dev, 0) == BMSR_LSTATUS)) {
|
(bond_check_dev_link(bond, slave_dev, 0) == BMSR_LSTATUS)) {
|
||||||
if (bond->params.updelay) {
|
if (bond->params.updelay) {
|
||||||
dprintk("Initial state of slave_dev is "
|
pr_debug("Initial state of slave_dev is "
|
||||||
"BOND_LINK_BACK\n");
|
"BOND_LINK_BACK\n");
|
||||||
new_slave->link = BOND_LINK_BACK;
|
new_slave->link = BOND_LINK_BACK;
|
||||||
new_slave->delay = bond->params.updelay;
|
new_slave->delay = bond->params.updelay;
|
||||||
} else {
|
} else {
|
||||||
dprintk("Initial state of slave_dev is "
|
pr_debug("Initial state of slave_dev is "
|
||||||
"BOND_LINK_UP\n");
|
"BOND_LINK_UP\n");
|
||||||
new_slave->link = BOND_LINK_UP;
|
new_slave->link = BOND_LINK_UP;
|
||||||
}
|
}
|
||||||
new_slave->jiffies = jiffies;
|
new_slave->jiffies = jiffies;
|
||||||
} else {
|
} else {
|
||||||
dprintk("Initial state of slave_dev is "
|
pr_debug("Initial state of slave_dev is "
|
||||||
"BOND_LINK_DOWN\n");
|
"BOND_LINK_DOWN\n");
|
||||||
new_slave->link = BOND_LINK_DOWN;
|
new_slave->link = BOND_LINK_DOWN;
|
||||||
}
|
}
|
||||||
@ -1715,7 +1713,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
|
|||||||
bond_set_slave_inactive_flags(new_slave);
|
bond_set_slave_inactive_flags(new_slave);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
dprintk("This slave is always active in trunk mode\n");
|
pr_debug("This slave is always active in trunk mode\n");
|
||||||
|
|
||||||
/* always active in trunk mode */
|
/* always active in trunk mode */
|
||||||
new_slave->state = BOND_STATE_ACTIVE;
|
new_slave->state = BOND_STATE_ACTIVE;
|
||||||
@ -2536,7 +2534,7 @@ static void bond_arp_send(struct net_device *slave_dev, int arp_op, __be32 dest_
|
|||||||
{
|
{
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
|
|
||||||
dprintk("arp %d on slave %s: dst %x src %x vid %d\n", arp_op,
|
pr_debug("arp %d on slave %s: dst %x src %x vid %d\n", arp_op,
|
||||||
slave_dev->name, dest_ip, src_ip, vlan_id);
|
slave_dev->name, dest_ip, src_ip, vlan_id);
|
||||||
|
|
||||||
skb = arp_create(arp_op, ETH_P_ARP, dest_ip, slave_dev, src_ip,
|
skb = arp_create(arp_op, ETH_P_ARP, dest_ip, slave_dev, src_ip,
|
||||||
@ -2569,9 +2567,9 @@ static void bond_arp_send_all(struct bonding *bond, struct slave *slave)
|
|||||||
for (i = 0; (i < BOND_MAX_ARP_TARGETS); i++) {
|
for (i = 0; (i < BOND_MAX_ARP_TARGETS); i++) {
|
||||||
if (!targets[i])
|
if (!targets[i])
|
||||||
continue;
|
continue;
|
||||||
dprintk("basa: target %x\n", targets[i]);
|
pr_debug("basa: target %x\n", targets[i]);
|
||||||
if (list_empty(&bond->vlan_list)) {
|
if (list_empty(&bond->vlan_list)) {
|
||||||
dprintk("basa: empty vlan: arp_send\n");
|
pr_debug("basa: empty vlan: arp_send\n");
|
||||||
bond_arp_send(slave->dev, ARPOP_REQUEST, targets[i],
|
bond_arp_send(slave->dev, ARPOP_REQUEST, targets[i],
|
||||||
bond->master_ip, 0);
|
bond->master_ip, 0);
|
||||||
continue;
|
continue;
|
||||||
@ -2601,7 +2599,7 @@ static void bond_arp_send_all(struct bonding *bond, struct slave *slave)
|
|||||||
*/
|
*/
|
||||||
if (rt->u.dst.dev == bond->dev) {
|
if (rt->u.dst.dev == bond->dev) {
|
||||||
ip_rt_put(rt);
|
ip_rt_put(rt);
|
||||||
dprintk("basa: rtdev == bond->dev: arp_send\n");
|
pr_debug("basa: rtdev == bond->dev: arp_send\n");
|
||||||
bond_arp_send(slave->dev, ARPOP_REQUEST, targets[i],
|
bond_arp_send(slave->dev, ARPOP_REQUEST, targets[i],
|
||||||
bond->master_ip, 0);
|
bond->master_ip, 0);
|
||||||
continue;
|
continue;
|
||||||
@ -2612,7 +2610,7 @@ static void bond_arp_send_all(struct bonding *bond, struct slave *slave)
|
|||||||
vlan_dev = vlan_group_get_device(bond->vlgrp, vlan->vlan_id);
|
vlan_dev = vlan_group_get_device(bond->vlgrp, vlan->vlan_id);
|
||||||
if (vlan_dev == rt->u.dst.dev) {
|
if (vlan_dev == rt->u.dst.dev) {
|
||||||
vlan_id = vlan->vlan_id;
|
vlan_id = vlan->vlan_id;
|
||||||
dprintk("basa: vlan match on %s %d\n",
|
pr_debug("basa: vlan match on %s %d\n",
|
||||||
vlan_dev->name, vlan_id);
|
vlan_dev->name, vlan_id);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2647,7 +2645,7 @@ static void bond_send_gratuitous_arp(struct bonding *bond)
|
|||||||
struct vlan_entry *vlan;
|
struct vlan_entry *vlan;
|
||||||
struct net_device *vlan_dev;
|
struct net_device *vlan_dev;
|
||||||
|
|
||||||
dprintk("bond_send_grat_arp: bond %s slave %s\n", bond->dev->name,
|
pr_debug("bond_send_grat_arp: bond %s slave %s\n", bond->dev->name,
|
||||||
slave ? slave->dev->name : "NULL");
|
slave ? slave->dev->name : "NULL");
|
||||||
|
|
||||||
if (!slave || !bond->send_grat_arp ||
|
if (!slave || !bond->send_grat_arp ||
|
||||||
@ -2677,7 +2675,7 @@ static void bond_validate_arp(struct bonding *bond, struct slave *slave, __be32
|
|||||||
|
|
||||||
targets = bond->params.arp_targets;
|
targets = bond->params.arp_targets;
|
||||||
for (i = 0; (i < BOND_MAX_ARP_TARGETS) && targets[i]; i++) {
|
for (i = 0; (i < BOND_MAX_ARP_TARGETS) && targets[i]; i++) {
|
||||||
dprintk("bva: sip %pI4 tip %pI4 t[%d] %pI4 bhti(tip) %d\n",
|
pr_debug("bva: sip %pI4 tip %pI4 t[%d] %pI4 bhti(tip) %d\n",
|
||||||
&sip, &tip, i, &targets[i], bond_has_this_ip(bond, tip));
|
&sip, &tip, i, &targets[i], bond_has_this_ip(bond, tip));
|
||||||
if (sip == targets[i]) {
|
if (sip == targets[i]) {
|
||||||
if (bond_has_this_ip(bond, tip))
|
if (bond_has_this_ip(bond, tip))
|
||||||
@ -2704,7 +2702,7 @@ static int bond_arp_rcv(struct sk_buff *skb, struct net_device *dev, struct pack
|
|||||||
bond = netdev_priv(dev);
|
bond = netdev_priv(dev);
|
||||||
read_lock(&bond->lock);
|
read_lock(&bond->lock);
|
||||||
|
|
||||||
dprintk("bond_arp_rcv: bond %s skb->dev %s orig_dev %s\n",
|
pr_debug("bond_arp_rcv: bond %s skb->dev %s orig_dev %s\n",
|
||||||
bond->dev->name, skb->dev ? skb->dev->name : "NULL",
|
bond->dev->name, skb->dev ? skb->dev->name : "NULL",
|
||||||
orig_dev ? orig_dev->name : "NULL");
|
orig_dev ? orig_dev->name : "NULL");
|
||||||
|
|
||||||
@ -2730,7 +2728,7 @@ static int bond_arp_rcv(struct sk_buff *skb, struct net_device *dev, struct pack
|
|||||||
arp_ptr += 4 + dev->addr_len;
|
arp_ptr += 4 + dev->addr_len;
|
||||||
memcpy(&tip, arp_ptr, 4);
|
memcpy(&tip, arp_ptr, 4);
|
||||||
|
|
||||||
dprintk("bond_arp_rcv: %s %s/%d av %d sv %d sip %pI4 tip %pI4\n",
|
pr_debug("bond_arp_rcv: %s %s/%d av %d sv %d sip %pI4 tip %pI4\n",
|
||||||
bond->dev->name, slave->dev->name, slave->state,
|
bond->dev->name, slave->dev->name, slave->state,
|
||||||
bond->params.arp_validate, slave_do_arp_validate(bond, slave),
|
bond->params.arp_validate, slave_do_arp_validate(bond, slave),
|
||||||
&sip, &tip);
|
&sip, &tip);
|
||||||
@ -3595,7 +3593,7 @@ static int bond_netdev_event(struct notifier_block *this, unsigned long event, v
|
|||||||
if (dev_net(event_dev) != &init_net)
|
if (dev_net(event_dev) != &init_net)
|
||||||
return NOTIFY_DONE;
|
return NOTIFY_DONE;
|
||||||
|
|
||||||
dprintk("event_dev: %s, event: %lx\n",
|
pr_debug("event_dev: %s, event: %lx\n",
|
||||||
(event_dev ? event_dev->name : "None"),
|
(event_dev ? event_dev->name : "None"),
|
||||||
event);
|
event);
|
||||||
|
|
||||||
@ -3603,12 +3601,12 @@ static int bond_netdev_event(struct notifier_block *this, unsigned long event, v
|
|||||||
return NOTIFY_DONE;
|
return NOTIFY_DONE;
|
||||||
|
|
||||||
if (event_dev->flags & IFF_MASTER) {
|
if (event_dev->flags & IFF_MASTER) {
|
||||||
dprintk("IFF_MASTER\n");
|
pr_debug("IFF_MASTER\n");
|
||||||
return bond_master_netdev_event(event, event_dev);
|
return bond_master_netdev_event(event, event_dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event_dev->flags & IFF_SLAVE) {
|
if (event_dev->flags & IFF_SLAVE) {
|
||||||
dprintk("IFF_SLAVE\n");
|
pr_debug("IFF_SLAVE\n");
|
||||||
return bond_slave_netdev_event(event, event_dev);
|
return bond_slave_netdev_event(event, event_dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3937,7 +3935,7 @@ static int bond_do_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd
|
|||||||
struct mii_ioctl_data *mii = NULL;
|
struct mii_ioctl_data *mii = NULL;
|
||||||
int res = 0;
|
int res = 0;
|
||||||
|
|
||||||
dprintk("bond_ioctl: master=%s, cmd=%d\n",
|
pr_debug("bond_ioctl: master=%s, cmd=%d\n",
|
||||||
bond_dev->name, cmd);
|
bond_dev->name, cmd);
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
@ -4015,12 +4013,12 @@ static int bond_do_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd
|
|||||||
down_write(&(bonding_rwsem));
|
down_write(&(bonding_rwsem));
|
||||||
slave_dev = dev_get_by_name(&init_net, ifr->ifr_slave);
|
slave_dev = dev_get_by_name(&init_net, ifr->ifr_slave);
|
||||||
|
|
||||||
dprintk("slave_dev=%p: \n", slave_dev);
|
pr_debug("slave_dev=%p: \n", slave_dev);
|
||||||
|
|
||||||
if (!slave_dev) {
|
if (!slave_dev) {
|
||||||
res = -ENODEV;
|
res = -ENODEV;
|
||||||
} else {
|
} else {
|
||||||
dprintk("slave_dev->name=%s: \n", slave_dev->name);
|
pr_debug("slave_dev->name=%s: \n", slave_dev->name);
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case BOND_ENSLAVE_OLD:
|
case BOND_ENSLAVE_OLD:
|
||||||
case SIOCBONDENSLAVE:
|
case SIOCBONDENSLAVE:
|
||||||
@ -4131,7 +4129,7 @@ static int bond_change_mtu(struct net_device *bond_dev, int new_mtu)
|
|||||||
int res = 0;
|
int res = 0;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
dprintk("bond=%p, name=%s, new_mtu=%d\n", bond,
|
pr_debug("bond=%p, name=%s, new_mtu=%d\n", bond,
|
||||||
(bond_dev ? bond_dev->name : "None"), new_mtu);
|
(bond_dev ? bond_dev->name : "None"), new_mtu);
|
||||||
|
|
||||||
/* Can't hold bond->lock with bh disabled here since
|
/* Can't hold bond->lock with bh disabled here since
|
||||||
@ -4150,7 +4148,7 @@ static int bond_change_mtu(struct net_device *bond_dev, int new_mtu)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
bond_for_each_slave(bond, slave, i) {
|
bond_for_each_slave(bond, slave, i) {
|
||||||
dprintk("s %p s->p %p c_m %p\n", slave,
|
pr_debug("s %p s->p %p c_m %p\n", slave,
|
||||||
slave->prev, slave->dev->change_mtu);
|
slave->prev, slave->dev->change_mtu);
|
||||||
|
|
||||||
res = dev_set_mtu(slave->dev, new_mtu);
|
res = dev_set_mtu(slave->dev, new_mtu);
|
||||||
@ -4164,7 +4162,7 @@ static int bond_change_mtu(struct net_device *bond_dev, int new_mtu)
|
|||||||
* means changing their mtu from timer context, which
|
* means changing their mtu from timer context, which
|
||||||
* is probably not a good idea.
|
* is probably not a good idea.
|
||||||
*/
|
*/
|
||||||
dprintk("err %d %s\n", res, slave->dev->name);
|
pr_debug("err %d %s\n", res, slave->dev->name);
|
||||||
goto unwind;
|
goto unwind;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4181,7 +4179,7 @@ unwind:
|
|||||||
|
|
||||||
tmp_res = dev_set_mtu(slave->dev, bond_dev->mtu);
|
tmp_res = dev_set_mtu(slave->dev, bond_dev->mtu);
|
||||||
if (tmp_res) {
|
if (tmp_res) {
|
||||||
dprintk("unwind err %d dev %s\n", tmp_res,
|
pr_debug("unwind err %d dev %s\n", tmp_res,
|
||||||
slave->dev->name);
|
slave->dev->name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4208,7 +4206,7 @@ static int bond_set_mac_address(struct net_device *bond_dev, void *addr)
|
|||||||
return bond_alb_set_mac_address(bond_dev, addr);
|
return bond_alb_set_mac_address(bond_dev, addr);
|
||||||
|
|
||||||
|
|
||||||
dprintk("bond=%p, name=%s\n", bond, (bond_dev ? bond_dev->name : "None"));
|
pr_debug("bond=%p, name=%s\n", bond, (bond_dev ? bond_dev->name : "None"));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If fail_over_mac is set to active, do nothing and return
|
* If fail_over_mac is set to active, do nothing and return
|
||||||
@ -4238,11 +4236,11 @@ static int bond_set_mac_address(struct net_device *bond_dev, void *addr)
|
|||||||
|
|
||||||
bond_for_each_slave(bond, slave, i) {
|
bond_for_each_slave(bond, slave, i) {
|
||||||
const struct net_device_ops *slave_ops = slave->dev->netdev_ops;
|
const struct net_device_ops *slave_ops = slave->dev->netdev_ops;
|
||||||
dprintk("slave %p %s\n", slave, slave->dev->name);
|
pr_debug("slave %p %s\n", slave, slave->dev->name);
|
||||||
|
|
||||||
if (slave_ops->ndo_set_mac_address == NULL) {
|
if (slave_ops->ndo_set_mac_address == NULL) {
|
||||||
res = -EOPNOTSUPP;
|
res = -EOPNOTSUPP;
|
||||||
dprintk("EOPNOTSUPP %s\n", slave->dev->name);
|
pr_debug("EOPNOTSUPP %s\n", slave->dev->name);
|
||||||
goto unwind;
|
goto unwind;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4254,7 +4252,7 @@ static int bond_set_mac_address(struct net_device *bond_dev, void *addr)
|
|||||||
* breakage anyway until ARP finish
|
* breakage anyway until ARP finish
|
||||||
* updating, so...
|
* updating, so...
|
||||||
*/
|
*/
|
||||||
dprintk("err %d %s\n", res, slave->dev->name);
|
pr_debug("err %d %s\n", res, slave->dev->name);
|
||||||
goto unwind;
|
goto unwind;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4274,7 +4272,7 @@ unwind:
|
|||||||
|
|
||||||
tmp_res = dev_set_mac_address(slave->dev, &tmp_sa);
|
tmp_res = dev_set_mac_address(slave->dev, &tmp_sa);
|
||||||
if (tmp_res) {
|
if (tmp_res) {
|
||||||
dprintk("unwind err %d dev %s\n", tmp_res,
|
pr_debug("unwind err %d dev %s\n", tmp_res,
|
||||||
slave->dev->name);
|
slave->dev->name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4593,7 +4591,7 @@ static int bond_init(struct net_device *bond_dev, struct bond_params *params)
|
|||||||
{
|
{
|
||||||
struct bonding *bond = netdev_priv(bond_dev);
|
struct bonding *bond = netdev_priv(bond_dev);
|
||||||
|
|
||||||
dprintk("Begin bond_init for %s\n", bond_dev->name);
|
pr_debug("Begin bond_init for %s\n", bond_dev->name);
|
||||||
|
|
||||||
/* initialize rwlocks */
|
/* initialize rwlocks */
|
||||||
rwlock_init(&bond->lock);
|
rwlock_init(&bond->lock);
|
||||||
|
@ -36,8 +36,8 @@
|
|||||||
#include <linux/rtnetlink.h>
|
#include <linux/rtnetlink.h>
|
||||||
#include <net/net_namespace.h>
|
#include <net/net_namespace.h>
|
||||||
|
|
||||||
/* #define BONDING_DEBUG 1 */
|
|
||||||
#include "bonding.h"
|
#include "bonding.h"
|
||||||
|
|
||||||
#define to_dev(obj) container_of(obj,struct device,kobj)
|
#define to_dev(obj) container_of(obj,struct device,kobj)
|
||||||
#define to_bond(cd) ((struct bonding *)(netdev_priv(to_net_dev(cd))))
|
#define to_bond(cd) ((struct bonding *)(netdev_priv(to_net_dev(cd))))
|
||||||
|
|
||||||
|
@ -32,14 +32,6 @@
|
|||||||
|
|
||||||
extern struct list_head bond_dev_list;
|
extern struct list_head bond_dev_list;
|
||||||
|
|
||||||
#ifdef BONDING_DEBUG
|
|
||||||
#define dprintk(fmt, args...) \
|
|
||||||
printk(KERN_DEBUG \
|
|
||||||
DRV_NAME ": %s() %d: " fmt, __func__, __LINE__ , ## args )
|
|
||||||
#else
|
|
||||||
#define dprintk(fmt, args...)
|
|
||||||
#endif /* BONDING_DEBUG */
|
|
||||||
|
|
||||||
#define IS_UP(dev) \
|
#define IS_UP(dev) \
|
||||||
((((dev)->flags & IFF_UP) == IFF_UP) && \
|
((((dev)->flags & IFF_UP) == IFF_UP) && \
|
||||||
netif_running(dev) && \
|
netif_running(dev) && \
|
||||||
|
Loading…
Reference in New Issue
Block a user