aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@vyatta.com>2009-06-12 15:02:48 -0400
committerDavid S. Miller <davem@davemloft.net>2009-06-14 02:28:57 -0400
commit3d632c3f28e69f0d6d44aa09c4df708d63a91a7c (patch)
tree8782d6b6e56a4c7f425331744584b778ca5a5255 /drivers
parent9e71626c1c23ec69372c43c6fe66c1171032bf42 (diff)
bonding: fix style issues
Resolve some of the complaints from checkpatch, and remove "magic emacs format" comments, and useless MODULE_SUPPORTED_DEVICE(). But should not change actual code. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/bonding/bond_main.c633
-rw-r--r--drivers/net/bonding/bond_sysfs.c324
2 files changed, 460 insertions, 497 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 2fc3561e099d..ea6b9043a5e7 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -51,10 +51,10 @@
51#include <linux/ctype.h> 51#include <linux/ctype.h>
52#include <linux/inet.h> 52#include <linux/inet.h>
53#include <linux/bitops.h> 53#include <linux/bitops.h>
54#include <linux/io.h>
54#include <asm/system.h> 55#include <asm/system.h>
55#include <asm/io.h>
56#include <asm/dma.h> 56#include <asm/dma.h>
57#include <asm/uaccess.h> 57#include <linux/uaccess.h>
58#include <linux/errno.h> 58#include <linux/errno.h>
59#include <linux/netdevice.h> 59#include <linux/netdevice.h>
60#include <linux/inetdevice.h> 60#include <linux/inetdevice.h>
@@ -89,18 +89,18 @@ static int max_bonds = BOND_DEFAULT_MAX_BONDS;
89static int num_grat_arp = 1; 89static int num_grat_arp = 1;
90static int num_unsol_na = 1; 90static int num_unsol_na = 1;
91static int miimon = BOND_LINK_MON_INTERV; 91static int miimon = BOND_LINK_MON_INTERV;
92static int updelay = 0; 92static int updelay;
93static int downdelay = 0; 93static int downdelay;
94static int use_carrier = 1; 94static int use_carrier = 1;
95static char *mode = NULL; 95static char *mode;
96static char *primary = NULL; 96static char *primary;
97static char *lacp_rate = NULL; 97static char *lacp_rate;
98static char *ad_select = NULL; 98static char *ad_select;
99static char *xmit_hash_policy = NULL; 99static char *xmit_hash_policy;
100static int arp_interval = BOND_LINK_ARP_INTERV; 100static int arp_interval = BOND_LINK_ARP_INTERV;
101static char *arp_ip_target[BOND_MAX_ARP_TARGETS] = { NULL, }; 101static char *arp_ip_target[BOND_MAX_ARP_TARGETS];
102static char *arp_validate = NULL; 102static char *arp_validate;
103static char *fail_over_mac = NULL; 103static char *fail_over_mac;
104static struct bond_params bonding_defaults; 104static struct bond_params bonding_defaults;
105 105
106module_param(max_bonds, int, 0); 106module_param(max_bonds, int, 0);
@@ -151,14 +151,14 @@ static const char * const version =
151LIST_HEAD(bond_dev_list); 151LIST_HEAD(bond_dev_list);
152 152
153#ifdef CONFIG_PROC_FS 153#ifdef CONFIG_PROC_FS
154static struct proc_dir_entry *bond_proc_dir = NULL; 154static struct proc_dir_entry *bond_proc_dir;
155#endif 155#endif
156 156
157static __be32 arp_target[BOND_MAX_ARP_TARGETS] = { 0, } ; 157static __be32 arp_target[BOND_MAX_ARP_TARGETS];
158static int arp_ip_count = 0; 158static int arp_ip_count;
159static int bond_mode = BOND_MODE_ROUNDROBIN; 159static int bond_mode = BOND_MODE_ROUNDROBIN;
160static int xmit_hashtype= BOND_XMIT_POLICY_LAYER2; 160static int xmit_hashtype = BOND_XMIT_POLICY_LAYER2;
161static int lacp_fast = 0; 161static int lacp_fast;
162 162
163 163
164const struct bond_parm_tbl bond_lacp_tbl[] = { 164const struct bond_parm_tbl bond_lacp_tbl[] = {
@@ -221,7 +221,7 @@ static const char *bond_mode_name(int mode)
221 [BOND_MODE_ACTIVEBACKUP] = "fault-tolerance (active-backup)", 221 [BOND_MODE_ACTIVEBACKUP] = "fault-tolerance (active-backup)",
222 [BOND_MODE_XOR] = "load balancing (xor)", 222 [BOND_MODE_XOR] = "load balancing (xor)",
223 [BOND_MODE_BROADCAST] = "fault-tolerance (broadcast)", 223 [BOND_MODE_BROADCAST] = "fault-tolerance (broadcast)",
224 [BOND_MODE_8023AD]= "IEEE 802.3ad Dynamic link aggregation", 224 [BOND_MODE_8023AD] = "IEEE 802.3ad Dynamic link aggregation",
225 [BOND_MODE_TLB] = "transmit load balancing", 225 [BOND_MODE_TLB] = "transmit load balancing",
226 [BOND_MODE_ALB] = "adaptive load balancing", 226 [BOND_MODE_ALB] = "adaptive load balancing",
227 }; 227 };
@@ -246,12 +246,11 @@ static int bond_add_vlan(struct bonding *bond, unsigned short vlan_id)
246 struct vlan_entry *vlan; 246 struct vlan_entry *vlan;
247 247
248 pr_debug("bond: %s, vlan id %d\n", 248 pr_debug("bond: %s, vlan id %d\n",
249 (bond ? bond->dev->name: "None"), vlan_id); 249 (bond ? bond->dev->name : "None"), vlan_id);
250 250
251 vlan = kzalloc(sizeof(struct vlan_entry), GFP_KERNEL); 251 vlan = kzalloc(sizeof(struct vlan_entry), GFP_KERNEL);
252 if (!vlan) { 252 if (!vlan)
253 return -ENOMEM; 253 return -ENOMEM;
254 }
255 254
256 INIT_LIST_HEAD(&vlan->vlan_list); 255 INIT_LIST_HEAD(&vlan->vlan_list);
257 vlan->vlan_id = vlan_id; 256 vlan->vlan_id = vlan_id;
@@ -351,16 +350,15 @@ static int bond_has_challenged_slaves(struct bonding *bond)
351 * 350 *
352 * Returns %NULL if list is empty, bond->next_vlan if @curr is %NULL, 351 * Returns %NULL if list is empty, bond->next_vlan if @curr is %NULL,
353 * or @curr->next otherwise (even if it is @curr itself again). 352 * or @curr->next otherwise (even if it is @curr itself again).
354 * 353 *
355 * Caller must hold bond->lock 354 * Caller must hold bond->lock
356 */ 355 */
357struct vlan_entry *bond_next_vlan(struct bonding *bond, struct vlan_entry *curr) 356struct vlan_entry *bond_next_vlan(struct bonding *bond, struct vlan_entry *curr)
358{ 357{
359 struct vlan_entry *next, *last; 358 struct vlan_entry *next, *last;
360 359
361 if (list_empty(&bond->vlan_list)) { 360 if (list_empty(&bond->vlan_list))
362 return NULL; 361 return NULL;
363 }
364 362
365 if (!curr) { 363 if (!curr) {
366 next = list_entry(bond->vlan_list.next, 364 next = list_entry(bond->vlan_list.next,
@@ -382,11 +380,11 @@ struct vlan_entry *bond_next_vlan(struct bonding *bond, struct vlan_entry *curr)
382 380
383/** 381/**
384 * bond_dev_queue_xmit - Prepare skb for xmit. 382 * bond_dev_queue_xmit - Prepare skb for xmit.
385 * 383 *
386 * @bond: bond device that got this skb for tx. 384 * @bond: bond device that got this skb for tx.
387 * @skb: hw accel VLAN tagged skb to transmit 385 * @skb: hw accel VLAN tagged skb to transmit
388 * @slave_dev: slave that is supposed to xmit this skbuff 386 * @slave_dev: slave that is supposed to xmit this skbuff
389 * 387 *
390 * When the bond gets an skb to transmit that is 388 * When the bond gets an skb to transmit that is
391 * already hardware accelerated VLAN tagged, and it 389 * already hardware accelerated VLAN tagged, and it
392 * needs to relay this skb to a slave that is not 390 * needs to relay this skb to a slave that is not
@@ -394,7 +392,8 @@ struct vlan_entry *bond_next_vlan(struct bonding *bond, struct vlan_entry *curr)
394 * i.e. strip the hwaccel tag and re-insert it as part 392 * i.e. strip the hwaccel tag and re-insert it as part
395 * of the payload. 393 * of the payload.
396 */ 394 */
397int bond_dev_queue_xmit(struct bonding *bond, struct sk_buff *skb, struct net_device *slave_dev) 395int bond_dev_queue_xmit(struct bonding *bond, struct sk_buff *skb,
396 struct net_device *slave_dev)
398{ 397{
399 unsigned short uninitialized_var(vlan_id); 398 unsigned short uninitialized_var(vlan_id);
400 399
@@ -428,7 +427,7 @@ int bond_dev_queue_xmit(struct bonding *bond, struct sk_buff *skb, struct net_de
428 * b. The operation is protected by the RTNL semaphore in the 8021q code, 427 * b. The operation is protected by the RTNL semaphore in the 8021q code,
429 * c. Holding a lock with BH disabled while directly calling a base driver 428 * c. Holding a lock with BH disabled while directly calling a base driver
430 * entry point is generally a BAD idea. 429 * entry point is generally a BAD idea.
431 * 430 *
432 * The design of synchronization/protection for this operation in the 8021q 431 * The design of synchronization/protection for this operation in the 8021q
433 * module is good for one or more VLAN devices over a single physical device 432 * module is good for one or more VLAN devices over a single physical device
434 * and cannot be extended for a teaming solution like bonding, so there is a 433 * and cannot be extended for a teaming solution like bonding, so there is a
@@ -443,7 +442,8 @@ int bond_dev_queue_xmit(struct bonding *bond, struct sk_buff *skb, struct net_de
443 * @bond_dev: bonding net device that got called 442 * @bond_dev: bonding net device that got called
444 * @grp: vlan group being registered 443 * @grp: vlan group being registered
445 */ 444 */
446static void bond_vlan_rx_register(struct net_device *bond_dev, struct vlan_group *grp) 445static void bond_vlan_rx_register(struct net_device *bond_dev,
446 struct vlan_group *grp)
447{ 447{
448 struct bonding *bond = netdev_priv(bond_dev); 448 struct bonding *bond = netdev_priv(bond_dev);
449 struct slave *slave; 449 struct slave *slave;
@@ -485,7 +485,7 @@ static void bond_vlan_rx_add_vid(struct net_device *bond_dev, uint16_t vid)
485 485
486 res = bond_add_vlan(bond, vid); 486 res = bond_add_vlan(bond, vid);
487 if (res) { 487 if (res) {
488 printk(KERN_ERR DRV_NAME 488 pr_err(DRV_NAME
489 ": %s: Error: Failed to add vlan id %d\n", 489 ": %s: Error: Failed to add vlan id %d\n",
490 bond_dev->name, vid); 490 bond_dev->name, vid);
491 } 491 }
@@ -520,7 +520,7 @@ static void bond_vlan_rx_kill_vid(struct net_device *bond_dev, uint16_t vid)
520 520
521 res = bond_del_vlan(bond, vid); 521 res = bond_del_vlan(bond, vid);
522 if (res) { 522 if (res) {
523 printk(KERN_ERR DRV_NAME 523 pr_err(DRV_NAME
524 ": %s: Error: Failed to remove vlan id %d\n", 524 ": %s: Error: Failed to remove vlan id %d\n",
525 bond_dev->name, vid); 525 bond_dev->name, vid);
526 } 526 }
@@ -551,7 +551,8 @@ out:
551 write_unlock_bh(&bond->lock); 551 write_unlock_bh(&bond->lock);
552} 552}
553 553
554static void bond_del_vlans_from_slave(struct bonding *bond, struct net_device *slave_dev) 554static void bond_del_vlans_from_slave(struct bonding *bond,
555 struct net_device *slave_dev)
555{ 556{
556 const struct net_device_ops *slave_ops = slave_dev->netdev_ops; 557 const struct net_device_ops *slave_ops = slave_dev->netdev_ops;
557 struct vlan_entry *vlan; 558 struct vlan_entry *vlan;
@@ -673,7 +674,7 @@ static int bond_update_speed_duplex(struct slave *slave)
673 * if <dev> supports MII link status reporting, check its link status. 674 * if <dev> supports MII link status reporting, check its link status.
674 * 675 *
675 * We either do MII/ETHTOOL ioctls, or check netif_carrier_ok(), 676 * We either do MII/ETHTOOL ioctls, or check netif_carrier_ok(),
676 * depening upon the setting of the use_carrier parameter. 677 * depending upon the setting of the use_carrier parameter.
677 * 678 *
678 * Return either BMSR_LSTATUS, meaning that the link is up (or we 679 * Return either BMSR_LSTATUS, meaning that the link is up (or we
679 * can't tell and just pretend it is), or 0, meaning that the link is 680 * can't tell and just pretend it is), or 0, meaning that the link is
@@ -685,10 +686,11 @@ static int bond_update_speed_duplex(struct slave *slave)
685 * It'd be nice if there was a good way to tell if a driver supports 686 * It'd be nice if there was a good way to tell if a driver supports
686 * netif_carrier, but there really isn't. 687 * netif_carrier, but there really isn't.
687 */ 688 */
688static int bond_check_dev_link(struct bonding *bond, struct net_device *slave_dev, int reporting) 689static int bond_check_dev_link(struct bonding *bond,
690 struct net_device *slave_dev, int reporting)
689{ 691{
690 const struct net_device_ops *slave_ops = slave_dev->netdev_ops; 692 const struct net_device_ops *slave_ops = slave_dev->netdev_ops;
691 static int (* ioctl)(struct net_device *, struct ifreq *, int); 693 static int (*ioctl)(struct net_device *, struct ifreq *, int);
692 struct ifreq ifr; 694 struct ifreq ifr;
693 struct mii_ioctl_data *mii; 695 struct mii_ioctl_data *mii;
694 696
@@ -706,7 +708,7 @@ static int bond_check_dev_link(struct bonding *bond, struct net_device *slave_de
706 } 708 }
707 } 709 }
708 710
709 /* Ethtool can't be used, fallback to MII ioclts. */ 711 /* Ethtool can't be used, fallback to MII ioctls. */
710 ioctl = slave_ops->ndo_do_ioctl; 712 ioctl = slave_ops->ndo_do_ioctl;
711 if (ioctl) { 713 if (ioctl) {
712 /* TODO: set pointer to correct ioctl on a per team member */ 714 /* TODO: set pointer to correct ioctl on a per team member */
@@ -726,9 +728,8 @@ static int bond_check_dev_link(struct bonding *bond, struct net_device *slave_de
726 mii = if_mii(&ifr); 728 mii = if_mii(&ifr);
727 if (IOCTL(slave_dev, &ifr, SIOCGMIIPHY) == 0) { 729 if (IOCTL(slave_dev, &ifr, SIOCGMIIPHY) == 0) {
728 mii->reg_num = MII_BMSR; 730 mii->reg_num = MII_BMSR;
729 if (IOCTL(slave_dev, &ifr, SIOCGMIIREG) == 0) { 731 if (IOCTL(slave_dev, &ifr, SIOCGMIIREG) == 0)
730 return (mii->val_out & BMSR_LSTATUS); 732 return mii->val_out & BMSR_LSTATUS;
731 }
732 } 733 }
733 } 734 }
734 735
@@ -738,7 +739,7 @@ static int bond_check_dev_link(struct bonding *bond, struct net_device *slave_de
738 * cannot report link status). If not reporting, pretend 739 * cannot report link status). If not reporting, pretend
739 * we're ok. 740 * we're ok.
740 */ 741 */
741 return (reporting ? -1 : BMSR_LSTATUS); 742 return reporting ? -1 : BMSR_LSTATUS;
742} 743}
743 744
744/*----------------------------- Multicast list ------------------------------*/ 745/*----------------------------- Multicast list ------------------------------*/
@@ -746,7 +747,8 @@ static int bond_check_dev_link(struct bonding *bond, struct net_device *slave_de
746/* 747/*
747 * Returns 0 if dmi1 and dmi2 are the same, non-0 otherwise 748 * Returns 0 if dmi1 and dmi2 are the same, non-0 otherwise
748 */ 749 */
749static inline int bond_is_dmi_same(struct dev_mc_list *dmi1, struct dev_mc_list *dmi2) 750static inline int bond_is_dmi_same(const struct dev_mc_list *dmi1,
751 const struct dev_mc_list *dmi2)
750{ 752{
751 return memcmp(dmi1->dmi_addr, dmi2->dmi_addr, dmi1->dmi_addrlen) == 0 && 753 return memcmp(dmi1->dmi_addr, dmi2->dmi_addr, dmi1->dmi_addrlen) == 0 &&
752 dmi1->dmi_addrlen == dmi2->dmi_addrlen; 754 dmi1->dmi_addrlen == dmi2->dmi_addrlen;
@@ -755,14 +757,14 @@ static inline int bond_is_dmi_same(struct dev_mc_list *dmi1, struct dev_mc_list
755/* 757/*
756 * returns dmi entry if found, NULL otherwise 758 * returns dmi entry if found, NULL otherwise
757 */ 759 */
758static struct dev_mc_list *bond_mc_list_find_dmi(struct dev_mc_list *dmi, struct dev_mc_list *mc_list) 760static struct dev_mc_list *bond_mc_list_find_dmi(struct dev_mc_list *dmi,
761 struct dev_mc_list *mc_list)
759{ 762{
760 struct dev_mc_list *idmi; 763 struct dev_mc_list *idmi;
761 764
762 for (idmi = mc_list; idmi; idmi = idmi->next) { 765 for (idmi = mc_list; idmi; idmi = idmi->next) {
763 if (bond_is_dmi_same(dmi, idmi)) { 766 if (bond_is_dmi_same(dmi, idmi))
764 return idmi; 767 return idmi;
765 }
766 } 768 }
767 769
768 return NULL; 770 return NULL;
@@ -824,15 +826,14 @@ static void bond_mc_add(struct bonding *bond, void *addr, int alen)
824{ 826{
825 if (USES_PRIMARY(bond->params.mode)) { 827 if (USES_PRIMARY(bond->params.mode)) {
826 /* write lock already acquired */ 828 /* write lock already acquired */
827 if (bond->curr_active_slave) { 829 if (bond->curr_active_slave)
828 dev_mc_add(bond->curr_active_slave->dev, addr, alen, 0); 830 dev_mc_add(bond->curr_active_slave->dev, addr, alen, 0);
829 }
830 } else { 831 } else {
831 struct slave *slave; 832 struct slave *slave;
832 int i; 833 int i;
833 bond_for_each_slave(bond, slave, i) { 834
835 bond_for_each_slave(bond, slave, i)
834 dev_mc_add(slave->dev, addr, alen, 0); 836 dev_mc_add(slave->dev, addr, alen, 0);
835 }
836 } 837 }
837} 838}
838 839
@@ -844,9 +845,9 @@ static void bond_mc_delete(struct bonding *bond, void *addr, int alen)
844{ 845{
845 if (USES_PRIMARY(bond->params.mode)) { 846 if (USES_PRIMARY(bond->params.mode)) {
846 /* write lock already acquired */ 847 /* write lock already acquired */
847 if (bond->curr_active_slave) { 848 if (bond->curr_active_slave)
848 dev_mc_delete(bond->curr_active_slave->dev, addr, alen, 0); 849 dev_mc_delete(bond->curr_active_slave->dev, addr,
849 } 850 alen, 0);
850 } else { 851 } else {
851 struct slave *slave; 852 struct slave *slave;
852 int i; 853 int i;
@@ -870,9 +871,8 @@ static void bond_resend_igmp_join_requests(struct bonding *bond)
870 rcu_read_lock(); 871 rcu_read_lock();
871 in_dev = __in_dev_get_rcu(bond->dev); 872 in_dev = __in_dev_get_rcu(bond->dev);
872 if (in_dev) { 873 if (in_dev) {
873 for (im = in_dev->mc_list; im; im = im->next) { 874 for (im = in_dev->mc_list; im; im = im->next)
874 ip_mc_rejoin_group(im); 875 ip_mc_rejoin_group(im);
875 }
876 } 876 }
877 877
878 rcu_read_unlock(); 878 rcu_read_unlock();
@@ -891,7 +891,8 @@ static void bond_mc_list_destroy(struct bonding *bond)
891 kfree(dmi); 891 kfree(dmi);
892 dmi = bond->mc_list; 892 dmi = bond->mc_list;
893 } 893 }
894 bond->mc_list = NULL; 894
895 bond->mc_list = NULL;
895} 896}
896 897
897/* 898/*
@@ -924,14 +925,14 @@ static int bond_mc_list_copy(struct dev_mc_list *mc_list, struct bonding *bond,
924/* 925/*
925 * flush all members of flush->mc_list from device dev->mc_list 926 * flush all members of flush->mc_list from device dev->mc_list
926 */ 927 */
927static void bond_mc_list_flush(struct net_device *bond_dev, struct net_device *slave_dev) 928static void bond_mc_list_flush(struct net_device *bond_dev,
929 struct net_device *slave_dev)
928{ 930{
929 struct bonding *bond = netdev_priv(bond_dev); 931 struct bonding *bond = netdev_priv(bond_dev);
930 struct dev_mc_list *dmi; 932 struct dev_mc_list *dmi;
931 933
932 for (dmi = bond_dev->mc_list; dmi; dmi = dmi->next) { 934 for (dmi = bond_dev->mc_list; dmi; dmi = dmi->next)
933 dev_mc_delete(slave_dev, dmi->dmi_addr, dmi->dmi_addrlen, 0); 935 dev_mc_delete(slave_dev, dmi->dmi_addr, dmi->dmi_addrlen, 0);
934 }
935 936
936 if (bond->params.mode == BOND_MODE_8023AD) { 937 if (bond->params.mode == BOND_MODE_8023AD) {
937 /* del lacpdu mc addr from mc list */ 938 /* del lacpdu mc addr from mc list */
@@ -948,44 +949,40 @@ static void bond_mc_list_flush(struct net_device *bond_dev, struct net_device *s
948 * old active slaves (if any) according to the multicast mode, and 949 * old active slaves (if any) according to the multicast mode, and
949 * promiscuous flags unconditionally. 950 * promiscuous flags unconditionally.
950 */ 951 */
951static void bond_mc_swap(struct bonding *bond, struct slave *new_active, struct slave *old_active) 952static void bond_mc_swap(struct bonding *bond, struct slave *new_active,
953 struct slave *old_active)
952{ 954{
953 struct dev_mc_list *dmi; 955 struct dev_mc_list *dmi;
954 956
955 if (!USES_PRIMARY(bond->params.mode)) { 957 if (!USES_PRIMARY(bond->params.mode))
956 /* nothing to do - mc list is already up-to-date on 958 /* nothing to do - mc list is already up-to-date on
957 * all slaves 959 * all slaves
958 */ 960 */
959 return; 961 return;
960 }
961 962
962 if (old_active) { 963 if (old_active) {
963 if (bond->dev->flags & IFF_PROMISC) { 964 if (bond->dev->flags & IFF_PROMISC)
964 dev_set_promiscuity(old_active->dev, -1); 965 dev_set_promiscuity(old_active->dev, -1);
965 }
966 966
967 if (bond->dev->flags & IFF_ALLMULTI) { 967 if (bond->dev->flags & IFF_ALLMULTI)
968 dev_set_allmulti(old_active->dev, -1); 968 dev_set_allmulti(old_active->dev, -1);
969 }
970 969
971 for (dmi = bond->dev->mc_list; dmi; dmi = dmi->next) { 970 for (dmi = bond->dev->mc_list; dmi; dmi = dmi->next)
972 dev_mc_delete(old_active->dev, dmi->dmi_addr, dmi->dmi_addrlen, 0); 971 dev_mc_delete(old_active->dev, dmi->dmi_addr,
973 } 972 dmi->dmi_addrlen, 0);
974 } 973 }
975 974
976 if (new_active) { 975 if (new_active) {
977 /* FIXME: Signal errors upstream. */ 976 /* FIXME: Signal errors upstream. */
978 if (bond->dev->flags & IFF_PROMISC) { 977 if (bond->dev->flags & IFF_PROMISC)
979 dev_set_promiscuity(new_active->dev, 1); 978 dev_set_promiscuity(new_active->dev, 1);
980 }
981 979
982 if (bond->dev->flags & IFF_ALLMULTI) { 980 if (bond->dev->flags & IFF_ALLMULTI)
983 dev_set_allmulti(new_active->dev, 1); 981 dev_set_allmulti(new_active->dev, 1);
984 }
985 982
986 for (dmi = bond->dev->mc_list; dmi; dmi = dmi->next) { 983 for (dmi = bond->dev->mc_list; dmi; dmi = dmi->next)
987 dev_mc_add(new_active->dev, dmi->dmi_addr, dmi->dmi_addrlen, 0); 984 dev_mc_add(new_active->dev, dmi->dmi_addr,
988 } 985 dmi->dmi_addrlen, 0);
989 bond_resend_igmp_join_requests(bond); 986 bond_resend_igmp_join_requests(bond);
990 } 987 }
991} 988}
@@ -1039,7 +1036,7 @@ static void bond_do_fail_over_mac(struct bonding *bond,
1039 1036
1040 rv = dev_set_mac_address(new_active->dev, &saddr); 1037 rv = dev_set_mac_address(new_active->dev, &saddr);
1041 if (rv) { 1038 if (rv) {
1042 printk(KERN_ERR DRV_NAME 1039 pr_err(DRV_NAME
1043 ": %s: Error %d setting MAC of slave %s\n", 1040 ": %s: Error %d setting MAC of slave %s\n",
1044 bond->dev->name, -rv, new_active->dev->name); 1041 bond->dev->name, -rv, new_active->dev->name);
1045 goto out; 1042 goto out;
@@ -1053,7 +1050,7 @@ static void bond_do_fail_over_mac(struct bonding *bond,
1053 1050
1054 rv = dev_set_mac_address(old_active->dev, &saddr); 1051 rv = dev_set_mac_address(old_active->dev, &saddr);
1055 if (rv) 1052 if (rv)
1056 printk(KERN_ERR DRV_NAME 1053 pr_err(DRV_NAME
1057 ": %s: Error %d setting MAC of slave %s\n", 1054 ": %s: Error %d setting MAC of slave %s\n",
1058 bond->dev->name, -rv, new_active->dev->name); 1055 bond->dev->name, -rv, new_active->dev->name);
1059out: 1056out:
@@ -1061,7 +1058,7 @@ out:
1061 write_lock_bh(&bond->curr_slave_lock); 1058 write_lock_bh(&bond->curr_slave_lock);
1062 break; 1059 break;
1063 default: 1060 default:
1064 printk(KERN_ERR DRV_NAME 1061 pr_err(DRV_NAME
1065 ": %s: bond_do_fail_over_mac impossible: bad policy %d\n", 1062 ": %s: bond_do_fail_over_mac impossible: bad policy %d\n",
1066 bond->dev->name, bond->params.fail_over_mac); 1063 bond->dev->name, bond->params.fail_over_mac);
1067 break; 1064 break;
@@ -1086,17 +1083,17 @@ static struct slave *bond_find_best_slave(struct bonding *bond)
1086 new_active = old_active = bond->curr_active_slave; 1083 new_active = old_active = bond->curr_active_slave;
1087 1084
1088 if (!new_active) { /* there were no active slaves left */ 1085 if (!new_active) { /* there were no active slaves left */
1089 if (bond->slave_cnt > 0) { /* found one slave */ 1086 if (bond->slave_cnt > 0) /* found one slave */
1090 new_active = bond->first_slave; 1087 new_active = bond->first_slave;
1091 } else { 1088 else
1092 return NULL; /* still no slave, return NULL */ 1089 return NULL; /* still no slave, return NULL */
1093 }
1094 } 1090 }
1095 1091
1096 /* first try the primary link; if arping, a link must tx/rx traffic 1092 /*
1097 * before it can be considered the curr_active_slave - also, we would skip 1093 * first try the primary link; if arping, a link must tx/rx
1098 * slaves between the curr_active_slave and primary_slave that may be up 1094 * traffic before it can be considered the curr_active_slave.
1099 * and able to arp 1095 * also, we would skip slaves between the curr_active_slave
1096 * and primary_slave that may be up and able to arp
1100 */ 1097 */
1101 if ((bond->primary_slave) && 1098 if ((bond->primary_slave) &&
1102 (!bond->params.arp_interval) && 1099 (!bond->params.arp_interval) &&
@@ -1144,16 +1141,15 @@ void bond_change_active_slave(struct bonding *bond, struct slave *new_active)
1144{ 1141{
1145 struct slave *old_active = bond->curr_active_slave; 1142 struct slave *old_active = bond->curr_active_slave;
1146 1143
1147 if (old_active == new_active) { 1144 if (old_active == new_active)
1148 return; 1145 return;
1149 }
1150 1146
1151 if (new_active) { 1147 if (new_active) {
1152 new_active->jiffies = jiffies; 1148 new_active->jiffies = jiffies;
1153 1149
1154 if (new_active->link == BOND_LINK_BACK) { 1150 if (new_active->link == BOND_LINK_BACK) {
1155 if (USES_PRIMARY(bond->params.mode)) { 1151 if (USES_PRIMARY(bond->params.mode)) {
1156 printk(KERN_INFO DRV_NAME 1152 pr_info(DRV_NAME
1157 ": %s: making interface %s the new " 1153 ": %s: making interface %s the new "
1158 "active one %d ms earlier.\n", 1154 "active one %d ms earlier.\n",
1159 bond->dev->name, new_active->dev->name, 1155 bond->dev->name, new_active->dev->name,
@@ -1163,15 +1159,14 @@ void bond_change_active_slave(struct bonding *bond, struct slave *new_active)
1163 new_active->delay = 0; 1159 new_active->delay = 0;
1164 new_active->link = BOND_LINK_UP; 1160 new_active->link = BOND_LINK_UP;
1165 1161
1166 if (bond->params.mode == BOND_MODE_8023AD) { 1162 if (bond->params.mode == BOND_MODE_8023AD)
1167 bond_3ad_handle_link_change(new_active, BOND_LINK_UP); 1163 bond_3ad_handle_link_change(new_active, BOND_LINK_UP);
1168 }
1169 1164
1170 if (bond_is_lb(bond)) 1165 if (bond_is_lb(bond))
1171 bond_alb_handle_link_change(bond, new_active, BOND_LINK_UP); 1166 bond_alb_handle_link_change(bond, new_active, BOND_LINK_UP);
1172 } else { 1167 } else {
1173 if (USES_PRIMARY(bond->params.mode)) { 1168 if (USES_PRIMARY(bond->params.mode)) {
1174 printk(KERN_INFO DRV_NAME 1169 pr_info(DRV_NAME
1175 ": %s: making interface %s the new " 1170 ": %s: making interface %s the new "
1176 "active one.\n", 1171 "active one.\n",
1177 bond->dev->name, new_active->dev->name); 1172 bond->dev->name, new_active->dev->name);
@@ -1179,9 +1174,8 @@ void bond_change_active_slave(struct bonding *bond, struct slave *new_active)
1179 } 1174 }
1180 } 1175 }
1181 1176
1182 if (USES_PRIMARY(bond->params.mode)) { 1177 if (USES_PRIMARY(bond->params.mode))
1183 bond_mc_swap(bond, new_active, old_active); 1178 bond_mc_swap(bond, new_active, old_active);
1184 }
1185 1179
1186 if (bond_is_lb(bond)) { 1180 if (bond_is_lb(bond)) {
1187 bond_alb_handle_active_change(bond, new_active); 1181 bond_alb_handle_active_change(bond, new_active);
@@ -1194,9 +1188,8 @@ void bond_change_active_slave(struct bonding *bond, struct slave *new_active)
1194 } 1188 }
1195 1189
1196 if (bond->params.mode == BOND_MODE_ACTIVEBACKUP) { 1190 if (bond->params.mode == BOND_MODE_ACTIVEBACKUP) {
1197 if (old_active) { 1191 if (old_active)
1198 bond_set_slave_inactive_flags(old_active); 1192 bond_set_slave_inactive_flags(old_active);
1199 }
1200 1193
1201 if (new_active) { 1194 if (new_active) {
1202 bond_set_slave_active_flags(new_active); 1195 bond_set_slave_active_flags(new_active);
@@ -1226,7 +1219,7 @@ void bond_change_active_slave(struct bonding *bond, struct slave *new_active)
1226 * bond_select_active_slave - select a new active slave, if needed 1219 * bond_select_active_slave - select a new active slave, if needed
1227 * @bond: our bonding struct 1220 * @bond: our bonding struct
1228 * 1221 *
1229 * This functions shoud be called when one of the following occurs: 1222 * This functions should be called when one of the following occurs:
1230 * - The old curr_active_slave has been released or lost its link. 1223 * - The old curr_active_slave has been released or lost its link.
1231 * - The primary_slave has got its link back. 1224 * - The primary_slave has got its link back.
1232 * - A slave has got its link back and there's no old curr_active_slave. 1225 * - A slave has got its link back and there's no old curr_active_slave.
@@ -1246,11 +1239,11 @@ void bond_select_active_slave(struct bonding *bond)
1246 return; 1239 return;
1247 1240
1248 if (netif_carrier_ok(bond->dev)) { 1241 if (netif_carrier_ok(bond->dev)) {
1249 printk(KERN_INFO DRV_NAME 1242 pr_info(DRV_NAME
1250 ": %s: first active interface up!\n", 1243 ": %s: first active interface up!\n",
1251 bond->dev->name); 1244 bond->dev->name);
1252 } else { 1245 } else {
1253 printk(KERN_INFO DRV_NAME ": %s: " 1246 pr_info(DRV_NAME ": %s: "
1254 "now running without any active interface !\n", 1247 "now running without any active interface !\n",
1255 bond->dev->name); 1248 bond->dev->name);
1256 } 1249 }
@@ -1292,13 +1285,11 @@ static void bond_attach_slave(struct bonding *bond, struct slave *new_slave)
1292 */ 1285 */
1293static void bond_detach_slave(struct bonding *bond, struct slave *slave) 1286static void bond_detach_slave(struct bonding *bond, struct slave *slave)
1294{ 1287{
1295 if (slave->next) { 1288 if (slave->next)
1296 slave->next->prev = slave->prev; 1289 slave->next->prev = slave->prev;
1297 }
1298 1290
1299 if (slave->prev) { 1291 if (slave->prev)
1300 slave->prev->next = slave->next; 1292 slave->prev->next = slave->next;
1301 }
1302 1293
1303 if (bond->first_slave == slave) { /* slave is the first slave */ 1294 if (bond->first_slave == slave) { /* slave is the first slave */
1304 if (bond->slave_cnt > 1) { /* there are more slave */ 1295 if (bond->slave_cnt > 1) { /* there are more slave */
@@ -1329,7 +1320,7 @@ static int bond_sethwaddr(struct net_device *bond_dev,
1329 (NETIF_F_VLAN_CHALLENGED | NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_TX | \ 1320 (NETIF_F_VLAN_CHALLENGED | NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_TX | \
1330 NETIF_F_HW_VLAN_FILTER) 1321 NETIF_F_HW_VLAN_FILTER)
1331 1322
1332/* 1323/*
1333 * Compute the common dev->feature set available to all slaves. Some 1324 * Compute the common dev->feature set available to all slaves. Some
1334 * feature bits are managed elsewhere, so preserve those feature bits 1325 * feature bits are managed elsewhere, so preserve those feature bits
1335 * on the master device. 1326 * on the master device.
@@ -1397,14 +1388,14 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
1397 1388
1398 if (!bond->params.use_carrier && slave_dev->ethtool_ops == NULL && 1389 if (!bond->params.use_carrier && slave_dev->ethtool_ops == NULL &&
1399 slave_ops->ndo_do_ioctl == NULL) { 1390 slave_ops->ndo_do_ioctl == NULL) {
1400 printk(KERN_WARNING DRV_NAME 1391 pr_warning(DRV_NAME
1401 ": %s: Warning: no link monitoring support for %s\n", 1392 ": %s: Warning: no link monitoring support for %s\n",
1402 bond_dev->name, slave_dev->name); 1393 bond_dev->name, slave_dev->name);
1403 } 1394 }
1404 1395
1405 /* bond must be initialized by bond_open() before enslaving */ 1396 /* bond must be initialized by bond_open() before enslaving */
1406 if (!(bond_dev->flags & IFF_UP)) { 1397 if (!(bond_dev->flags & IFF_UP)) {
1407 printk(KERN_WARNING DRV_NAME 1398 pr_warning(DRV_NAME
1408 " %s: master_dev is not up in bond_enslave\n", 1399 " %s: master_dev is not up in bond_enslave\n",
1409 bond_dev->name); 1400 bond_dev->name);
1410 } 1401 }
@@ -1420,14 +1411,14 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
1420 if (slave_dev->features & NETIF_F_VLAN_CHALLENGED) { 1411 if (slave_dev->features & NETIF_F_VLAN_CHALLENGED) {
1421 pr_debug("%s: NETIF_F_VLAN_CHALLENGED\n", slave_dev->name); 1412 pr_debug("%s: NETIF_F_VLAN_CHALLENGED\n", slave_dev->name);
1422 if (!list_empty(&bond->vlan_list)) { 1413 if (!list_empty(&bond->vlan_list)) {
1423 printk(KERN_ERR DRV_NAME 1414 pr_err(DRV_NAME
1424 ": %s: Error: cannot enslave VLAN " 1415 ": %s: Error: cannot enslave VLAN "
1425 "challenged slave %s on VLAN enabled " 1416 "challenged slave %s on VLAN enabled "
1426 "bond %s\n", bond_dev->name, slave_dev->name, 1417 "bond %s\n", bond_dev->name, slave_dev->name,
1427 bond_dev->name); 1418 bond_dev->name);
1428 return -EPERM; 1419 return -EPERM;
1429 } else { 1420 } else {
1430 printk(KERN_WARNING DRV_NAME 1421 pr_warning(DRV_NAME
1431 ": %s: Warning: enslaved VLAN challenged " 1422 ": %s: Warning: enslaved VLAN challenged "
1432 "slave %s. Adding VLANs will be blocked as " 1423 "slave %s. Adding VLANs will be blocked as "
1433 "long as %s is part of bond %s\n", 1424 "long as %s is part of bond %s\n",
@@ -1447,12 +1438,12 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
1447 1438
1448 /* 1439 /*
1449 * Old ifenslave binaries are no longer supported. These can 1440 * Old ifenslave binaries are no longer supported. These can
1450 * be identified with moderate accurary by the state of the slave: 1441 * be identified with moderate accuracy by the state of the slave:
1451 * the current ifenslave will set the interface down prior to 1442 * the current ifenslave will set the interface down prior to
1452 * enslaving it; the old ifenslave will not. 1443 * enslaving it; the old ifenslave will not.
1453 */ 1444 */
1454 if ((slave_dev->flags & IFF_UP)) { 1445 if ((slave_dev->flags & IFF_UP)) {
1455 printk(KERN_ERR DRV_NAME ": %s is up. " 1446 pr_err(DRV_NAME ": %s is up. "
1456 "This may be due to an out of date ifenslave.\n", 1447 "This may be due to an out of date ifenslave.\n",
1457 slave_dev->name); 1448 slave_dev->name);
1458 res = -EPERM; 1449 res = -EPERM;
@@ -1470,7 +1461,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
1470 if (slave_dev->type != ARPHRD_ETHER) 1461 if (slave_dev->type != ARPHRD_ETHER)
1471 bond_setup_by_slave(bond_dev, slave_dev); 1462 bond_setup_by_slave(bond_dev, slave_dev);
1472 } else if (bond_dev->type != slave_dev->type) { 1463 } else if (bond_dev->type != slave_dev->type) {
1473 printk(KERN_ERR DRV_NAME ": %s ether type (%d) is different " 1464 pr_err(DRV_NAME ": %s ether type (%d) is different "
1474 "from other slaves (%d), can not enslave it.\n", 1465 "from other slaves (%d), can not enslave it.\n",
1475 slave_dev->name, 1466 slave_dev->name,
1476 slave_dev->type, bond_dev->type); 1467 slave_dev->type, bond_dev->type);
@@ -1480,14 +1471,14 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
1480 1471
1481 if (slave_ops->ndo_set_mac_address == NULL) { 1472 if (slave_ops->ndo_set_mac_address == NULL) {
1482 if (bond->slave_cnt == 0) { 1473 if (bond->slave_cnt == 0) {
1483 printk(KERN_WARNING DRV_NAME 1474 pr_warning(DRV_NAME
1484 ": %s: Warning: The first slave device " 1475 ": %s: Warning: The first slave device "
1485 "specified does not support setting the MAC " 1476 "specified does not support setting the MAC "
1486 "address. Setting fail_over_mac to active.", 1477 "address. Setting fail_over_mac to active.",
1487 bond_dev->name); 1478 bond_dev->name);
1488 bond->params.fail_over_mac = BOND_FOM_ACTIVE; 1479 bond->params.fail_over_mac = BOND_FOM_ACTIVE;
1489 } else if (bond->params.fail_over_mac != BOND_FOM_ACTIVE) { 1480 } else if (bond->params.fail_over_mac != BOND_FOM_ACTIVE) {
1490 printk(KERN_ERR DRV_NAME 1481 pr_err(DRV_NAME
1491 ": %s: Error: The slave device specified " 1482 ": %s: Error: The slave device specified "
1492 "does not support setting the MAC address, " 1483 "does not support setting the MAC address, "
1493 "but fail_over_mac is not set to active.\n" 1484 "but fail_over_mac is not set to active.\n"
@@ -1537,7 +1528,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
1537 /* open the slave since the application closed it */ 1528 /* open the slave since the application closed it */
1538 res = dev_open(slave_dev); 1529 res = dev_open(slave_dev);
1539 if (res) { 1530 if (res) {
1540 pr_debug("Openning slave %s failed\n", slave_dev->name); 1531 pr_debug("Opening slave %s failed\n", slave_dev->name);
1541 goto err_unset_master; 1532 goto err_unset_master;
1542 } 1533 }
1543 1534
@@ -1549,9 +1540,8 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
1549 * it might fail and we do not want to have to undo everything 1540 * it might fail and we do not want to have to undo everything
1550 */ 1541 */
1551 res = bond_alb_init_slave(bond, new_slave); 1542 res = bond_alb_init_slave(bond, new_slave);
1552 if (res) { 1543 if (res)
1553 goto err_close; 1544 goto err_close;
1554 }
1555 } 1545 }
1556 1546
1557 /* If the mode USES_PRIMARY, then the new slave gets the 1547 /* If the mode USES_PRIMARY, then the new slave gets the
@@ -1576,9 +1566,9 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
1576 1566
1577 netif_addr_lock_bh(bond_dev); 1567 netif_addr_lock_bh(bond_dev);
1578 /* upload master's mc_list to new slave */ 1568 /* upload master's mc_list to new slave */
1579 for (dmi = bond_dev->mc_list; dmi; dmi = dmi->next) { 1569 for (dmi = bond_dev->mc_list; dmi; dmi = dmi->next)
1580 dev_mc_add (slave_dev, dmi->dmi_addr, dmi->dmi_addrlen, 0); 1570 dev_mc_add(slave_dev, dmi->dmi_addr,
1581 } 1571 dmi->dmi_addrlen, 0);
1582 netif_addr_unlock_bh(bond_dev); 1572 netif_addr_unlock_bh(bond_dev);
1583 } 1573 }
1584 1574
@@ -1619,7 +1609,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
1619 * supported); thus, we don't need to change 1609 * supported); thus, we don't need to change
1620 * the messages for netif_carrier. 1610 * the messages for netif_carrier.
1621 */ 1611 */
1622 printk(KERN_WARNING DRV_NAME 1612 pr_warning(DRV_NAME
1623 ": %s: Warning: MII and ETHTOOL support not " 1613 ": %s: Warning: MII and ETHTOOL support not "
1624 "available for interface %s, and " 1614 "available for interface %s, and "
1625 "arp_interval/arp_ip_target module parameters " 1615 "arp_interval/arp_ip_target module parameters "
@@ -1628,7 +1618,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
1628 bond_dev->name, slave_dev->name); 1618 bond_dev->name, slave_dev->name);
1629 } else if (link_reporting == -1) { 1619 } else if (link_reporting == -1) {
1630 /* unable get link status using mii/ethtool */ 1620 /* unable get link status using mii/ethtool */
1631 printk(KERN_WARNING DRV_NAME 1621 pr_warning(DRV_NAME
1632 ": %s: Warning: can't get link status from " 1622 ": %s: Warning: can't get link status from "
1633 "interface %s; the network driver associated " 1623 "interface %s; the network driver associated "
1634 "with this interface does not support MII or " 1624 "with this interface does not support MII or "
@@ -1660,13 +1650,13 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
1660 1650
1661 if (bond_update_speed_duplex(new_slave) && 1651 if (bond_update_speed_duplex(new_slave) &&
1662 (new_slave->link != BOND_LINK_DOWN)) { 1652 (new_slave->link != BOND_LINK_DOWN)) {
1663 printk(KERN_WARNING DRV_NAME 1653 pr_warning(DRV_NAME
1664 ": %s: Warning: failed to get speed and duplex from %s, " 1654 ": %s: Warning: failed to get speed and duplex from %s, "
1665 "assumed to be 100Mb/sec and Full.\n", 1655 "assumed to be 100Mb/sec and Full.\n",
1666 bond_dev->name, new_slave->dev->name); 1656 bond_dev->name, new_slave->dev->name);
1667 1657
1668 if (bond->params.mode == BOND_MODE_8023AD) { 1658 if (bond->params.mode == BOND_MODE_8023AD) {
1669 printk(KERN_WARNING DRV_NAME 1659 pr_warning(DRV_NAME
1670 ": %s: Warning: Operation of 802.3ad mode requires ETHTOOL " 1660 ": %s: Warning: Operation of 802.3ad mode requires ETHTOOL "
1671 "support in base driver for proper aggregator " 1661 "support in base driver for proper aggregator "
1672 "selection.\n", bond_dev->name); 1662 "selection.\n", bond_dev->name);
@@ -1675,9 +1665,8 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
1675 1665
1676 if (USES_PRIMARY(bond->params.mode) && bond->params.primary[0]) { 1666 if (USES_PRIMARY(bond->params.mode) && bond->params.primary[0]) {
1677 /* if there is a primary slave, remember it */ 1667 /* if there is a primary slave, remember it */
1678 if (strcmp(bond->params.primary, new_slave->dev->name) == 0) { 1668 if (strcmp(bond->params.primary, new_slave->dev->name) == 0)
1679 bond->primary_slave = new_slave; 1669 bond->primary_slave = new_slave;
1680 }
1681 } 1670 }
1682 1671
1683 write_lock_bh(&bond->curr_slave_lock); 1672 write_lock_bh(&bond->curr_slave_lock);
@@ -1724,9 +1713,9 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
1724 * anyway (it holds no special properties of the bond device), 1713 * anyway (it holds no special properties of the bond device),
1725 * so we can change it without calling change_active_interface() 1714 * so we can change it without calling change_active_interface()
1726 */ 1715 */
1727 if (!bond->curr_active_slave) { 1716 if (!bond->curr_active_slave)
1728 bond->curr_active_slave = new_slave; 1717 bond->curr_active_slave = new_slave;
1729 } 1718
1730 break; 1719 break;
1731 } /* switch(bond_mode) */ 1720 } /* switch(bond_mode) */
1732 1721
@@ -1740,7 +1729,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
1740 if (res) 1729 if (res)
1741 goto err_close; 1730 goto err_close;
1742 1731
1743 printk(KERN_INFO DRV_NAME 1732 pr_info(DRV_NAME
1744 ": %s: enslaving %s as a%s interface with a%s link.\n", 1733 ": %s: enslaving %s as a%s interface with a%s link.\n",
1745 bond_dev->name, slave_dev->name, 1734 bond_dev->name, slave_dev->name,
1746 new_slave->state == BOND_STATE_ACTIVE ? "n active" : " backup", 1735 new_slave->state == BOND_STATE_ACTIVE ? "n active" : " backup",
@@ -1772,7 +1761,7 @@ err_free:
1772 1761
1773err_undo_flags: 1762err_undo_flags:
1774 bond_dev->features = old_features; 1763 bond_dev->features = old_features;
1775 1764
1776 return res; 1765 return res;
1777} 1766}
1778 1767
@@ -1797,7 +1786,7 @@ int bond_release(struct net_device *bond_dev, struct net_device *slave_dev)
1797 /* slave is not a slave or master is not master of this slave */ 1786 /* slave is not a slave or master is not master of this slave */
1798 if (!(slave_dev->flags & IFF_SLAVE) || 1787 if (!(slave_dev->flags & IFF_SLAVE) ||
1799 (slave_dev->master != bond_dev)) { 1788 (slave_dev->master != bond_dev)) {
1800 printk(KERN_ERR DRV_NAME 1789 pr_err(DRV_NAME
1801 ": %s: Error: cannot release %s.\n", 1790 ": %s: Error: cannot release %s.\n",
1802 bond_dev->name, slave_dev->name); 1791 bond_dev->name, slave_dev->name);
1803 return -EINVAL; 1792 return -EINVAL;
@@ -1808,7 +1797,7 @@ int bond_release(struct net_device *bond_dev, struct net_device *slave_dev)
1808 slave = bond_get_slave_by_dev(bond, slave_dev); 1797 slave = bond_get_slave_by_dev(bond, slave_dev);
1809 if (!slave) { 1798 if (!slave) {
1810 /* not a slave of this bond */ 1799 /* not a slave of this bond */
1811 printk(KERN_INFO DRV_NAME 1800 pr_info(DRV_NAME
1812 ": %s: %s not enslaved\n", 1801 ": %s: %s not enslaved\n",
1813 bond_dev->name, slave_dev->name); 1802 bond_dev->name, slave_dev->name);
1814 write_unlock_bh(&bond->lock); 1803 write_unlock_bh(&bond->lock);
@@ -1819,7 +1808,7 @@ int bond_release(struct net_device *bond_dev, struct net_device *slave_dev)
1819 mac_addr_differ = memcmp(bond_dev->dev_addr, slave->perm_hwaddr, 1808 mac_addr_differ = memcmp(bond_dev->dev_addr, slave->perm_hwaddr,
1820 ETH_ALEN); 1809 ETH_ALEN);
1821 if (!mac_addr_differ && (bond->slave_cnt > 1)) 1810 if (!mac_addr_differ && (bond->slave_cnt > 1))
1822 printk(KERN_WARNING DRV_NAME 1811 pr_warning(DRV_NAME
1823 ": %s: Warning: the permanent HWaddr of %s - " 1812 ": %s: Warning: the permanent HWaddr of %s - "
1824 "%pM - is still in use by %s. " 1813 "%pM - is still in use by %s. "
1825 "Set the HWaddr of %s to a different address " 1814 "Set the HWaddr of %s to a different address "
@@ -1837,7 +1826,7 @@ int bond_release(struct net_device *bond_dev, struct net_device *slave_dev)
1837 bond_3ad_unbind_slave(slave); 1826 bond_3ad_unbind_slave(slave);
1838 } 1827 }
1839 1828
1840 printk(KERN_INFO DRV_NAME 1829 pr_info(DRV_NAME
1841 ": %s: releasing %s interface %s\n", 1830 ": %s: releasing %s interface %s\n",
1842 bond_dev->name, 1831 bond_dev->name,
1843 (slave->state == BOND_STATE_ACTIVE) 1832 (slave->state == BOND_STATE_ACTIVE)
@@ -1853,13 +1842,11 @@ int bond_release(struct net_device *bond_dev, struct net_device *slave_dev)
1853 1842
1854 bond_compute_features(bond); 1843 bond_compute_features(bond);
1855 1844
1856 if (bond->primary_slave == slave) { 1845 if (bond->primary_slave == slave)
1857 bond->primary_slave = NULL; 1846 bond->primary_slave = NULL;
1858 }
1859 1847
1860 if (oldcurrent == slave) { 1848 if (oldcurrent == slave)
1861 bond_change_active_slave(bond, NULL); 1849 bond_change_active_slave(bond, NULL);
1862 }
1863 1850
1864 if (bond_is_lb(bond)) { 1851 if (bond_is_lb(bond)) {
1865 /* Must be called only after the slave has been 1852 /* Must be called only after the slave has been
@@ -1901,18 +1888,18 @@ int bond_release(struct net_device *bond_dev, struct net_device *slave_dev)
1901 if (list_empty(&bond->vlan_list)) { 1888 if (list_empty(&bond->vlan_list)) {
1902 bond_dev->features |= NETIF_F_VLAN_CHALLENGED; 1889 bond_dev->features |= NETIF_F_VLAN_CHALLENGED;
1903 } else { 1890 } else {
1904 printk(KERN_WARNING DRV_NAME 1891 pr_warning(DRV_NAME
1905 ": %s: Warning: clearing HW address of %s while it " 1892 ": %s: Warning: clearing HW address of %s while it "
1906 "still has VLANs.\n", 1893 "still has VLANs.\n",
1907 bond_dev->name, bond_dev->name); 1894 bond_dev->name, bond_dev->name);
1908 printk(KERN_WARNING DRV_NAME 1895 pr_warning(DRV_NAME
1909 ": %s: When re-adding slaves, make sure the bond's " 1896 ": %s: When re-adding slaves, make sure the bond's "
1910 "HW address matches its VLANs'.\n", 1897 "HW address matches its VLANs'.\n",
1911 bond_dev->name); 1898 bond_dev->name);
1912 } 1899 }
1913 } else if ((bond_dev->features & NETIF_F_VLAN_CHALLENGED) && 1900 } else if ((bond_dev->features & NETIF_F_VLAN_CHALLENGED) &&
1914 !bond_has_challenged_slaves(bond)) { 1901 !bond_has_challenged_slaves(bond)) {
1915 printk(KERN_INFO DRV_NAME 1902 pr_info(DRV_NAME
1916 ": %s: last VLAN challenged slave %s " 1903 ": %s: last VLAN challenged slave %s "
1917 "left bond %s. VLAN blocking is removed\n", 1904 "left bond %s. VLAN blocking is removed\n",
1918 bond_dev->name, slave_dev->name, bond_dev->name); 1905 bond_dev->name, slave_dev->name, bond_dev->name);
@@ -1932,14 +1919,12 @@ int bond_release(struct net_device *bond_dev, struct net_device *slave_dev)
1932 */ 1919 */
1933 if (!USES_PRIMARY(bond->params.mode)) { 1920 if (!USES_PRIMARY(bond->params.mode)) {
1934 /* unset promiscuity level from slave */ 1921 /* unset promiscuity level from slave */
1935 if (bond_dev->flags & IFF_PROMISC) { 1922 if (bond_dev->flags & IFF_PROMISC)
1936 dev_set_promiscuity(slave_dev, -1); 1923 dev_set_promiscuity(slave_dev, -1);
1937 }
1938 1924
1939 /* unset allmulti level from slave */ 1925 /* unset allmulti level from slave */
1940 if (bond_dev->flags & IFF_ALLMULTI) { 1926 if (bond_dev->flags & IFF_ALLMULTI)
1941 dev_set_allmulti(slave_dev, -1); 1927 dev_set_allmulti(slave_dev, -1);
1942 }
1943 1928
1944 /* flush master's mc_list from slave */ 1929 /* flush master's mc_list from slave */
1945 netif_addr_lock_bh(bond_dev); 1930 netif_addr_lock_bh(bond_dev);
@@ -1988,17 +1973,18 @@ static void bond_uninit(struct net_device *bond_dev)
1988} 1973}
1989 1974
1990/* 1975/*
1991* First release a slave and than destroy the bond if no more slaves iare left. 1976* First release a slave and than destroy the bond if no more slaves are left.
1992* Must be under rtnl_lock when this function is called. 1977* Must be under rtnl_lock when this function is called.
1993*/ 1978*/
1994int bond_release_and_destroy(struct net_device *bond_dev, struct net_device *slave_dev) 1979int bond_release_and_destroy(struct net_device *bond_dev,
1980 struct net_device *slave_dev)
1995{ 1981{
1996 struct bonding *bond = netdev_priv(bond_dev); 1982 struct bonding *bond = netdev_priv(bond_dev);
1997 int ret; 1983 int ret;
1998 1984
1999 ret = bond_release(bond_dev, slave_dev); 1985 ret = bond_release(bond_dev, slave_dev);
2000 if ((ret == 0) && (bond->slave_cnt == 0)) { 1986 if ((ret == 0) && (bond->slave_cnt == 0)) {
2001 printk(KERN_INFO DRV_NAME ": %s: destroying bond %s.\n", 1987 pr_info(DRV_NAME ": %s: destroying bond %s.\n",
2002 bond_dev->name, bond_dev->name); 1988 bond_dev->name, bond_dev->name);
2003 unregister_netdevice(bond_dev); 1989 unregister_netdevice(bond_dev);
2004 } 1990 }
@@ -2019,9 +2005,8 @@ static int bond_release_all(struct net_device *bond_dev)
2019 2005
2020 netif_carrier_off(bond_dev); 2006 netif_carrier_off(bond_dev);
2021 2007
2022 if (bond->slave_cnt == 0) { 2008 if (bond->slave_cnt == 0)
2023 goto out; 2009 goto out;
2024 }
2025 2010
2026 bond->current_arp_slave = NULL; 2011 bond->current_arp_slave = NULL;
2027 bond->primary_slave = NULL; 2012 bond->primary_slave = NULL;
@@ -2031,9 +2016,8 @@ static int bond_release_all(struct net_device *bond_dev)
2031 /* Inform AD package of unbinding of slave 2016 /* Inform AD package of unbinding of slave
2032 * before slave is detached from the list. 2017 * before slave is detached from the list.
2033 */ 2018 */
2034 if (bond->params.mode == BOND_MODE_8023AD) { 2019 if (bond->params.mode == BOND_MODE_8023AD)
2035 bond_3ad_unbind_slave(slave); 2020 bond_3ad_unbind_slave(slave);
2036 }
2037 2021
2038 slave_dev = slave->dev; 2022 slave_dev = slave->dev;
2039 bond_detach_slave(bond, slave); 2023 bond_detach_slave(bond, slave);
@@ -2062,14 +2046,12 @@ static int bond_release_all(struct net_device *bond_dev)
2062 */ 2046 */
2063 if (!USES_PRIMARY(bond->params.mode)) { 2047 if (!USES_PRIMARY(bond->params.mode)) {
2064 /* unset promiscuity level from slave */ 2048 /* unset promiscuity level from slave */
2065 if (bond_dev->flags & IFF_PROMISC) { 2049 if (bond_dev->flags & IFF_PROMISC)
2066 dev_set_promiscuity(slave_dev, -1); 2050 dev_set_promiscuity(slave_dev, -1);
2067 }
2068 2051
2069 /* unset allmulti level from slave */ 2052 /* unset allmulti level from slave */
2070 if (bond_dev->flags & IFF_ALLMULTI) { 2053 if (bond_dev->flags & IFF_ALLMULTI)
2071 dev_set_allmulti(slave_dev, -1); 2054 dev_set_allmulti(slave_dev, -1);
2072 }
2073 2055
2074 /* flush master's mc_list from slave */ 2056 /* flush master's mc_list from slave */
2075 netif_addr_lock_bh(bond_dev); 2057 netif_addr_lock_bh(bond_dev);
@@ -2104,20 +2086,20 @@ static int bond_release_all(struct net_device *bond_dev)
2104 */ 2086 */
2105 memset(bond_dev->dev_addr, 0, bond_dev->addr_len); 2087 memset(bond_dev->dev_addr, 0, bond_dev->addr_len);
2106 2088
2107 if (list_empty(&bond->vlan_list)) { 2089 if (list_empty(&bond->vlan_list))
2108 bond_dev->features |= NETIF_F_VLAN_CHALLENGED; 2090 bond_dev->features |= NETIF_F_VLAN_CHALLENGED;
2109 } else { 2091 else {
2110 printk(KERN_WARNING DRV_NAME 2092 pr_warning(DRV_NAME
2111 ": %s: Warning: clearing HW address of %s while it " 2093 ": %s: Warning: clearing HW address of %s while it "
2112 "still has VLANs.\n", 2094 "still has VLANs.\n",
2113 bond_dev->name, bond_dev->name); 2095 bond_dev->name, bond_dev->name);
2114 printk(KERN_WARNING DRV_NAME 2096 pr_warning(DRV_NAME
2115 ": %s: When re-adding slaves, make sure the bond's " 2097 ": %s: When re-adding slaves, make sure the bond's "
2116 "HW address matches its VLANs'.\n", 2098 "HW address matches its VLANs'.\n",
2117 bond_dev->name); 2099 bond_dev->name);
2118 } 2100 }
2119 2101
2120 printk(KERN_INFO DRV_NAME 2102 pr_info(DRV_NAME
2121 ": %s: released all slaves\n", 2103 ": %s: released all slaves\n",
2122 bond_dev->name); 2104 bond_dev->name);
2123 2105
@@ -2135,8 +2117,8 @@ out:
2135 * - <slave_dev> is already active. 2117 * - <slave_dev> is already active.
2136 * - The link state of <slave_dev> is not BOND_LINK_UP. 2118 * - The link state of <slave_dev> is not BOND_LINK_UP.
2137 * - <slave_dev> is not running. 2119 * - <slave_dev> is not running.
2138 * In these cases, this fuction does nothing. 2120 * In these cases, this function does nothing.
2139 * In the other cases, currnt_slave pointer is changed and 0 is returned. 2121 * In the other cases, current_slave pointer is changed and 0 is returned.
2140 */ 2122 */
2141static int bond_ioctl_change_active(struct net_device *bond_dev, struct net_device *slave_dev) 2123static int bond_ioctl_change_active(struct net_device *bond_dev, struct net_device *slave_dev)
2142{ 2124{
@@ -2145,15 +2127,12 @@ static int bond_ioctl_change_active(struct net_device *bond_dev, struct net_devi
2145 struct slave *new_active = NULL; 2127 struct slave *new_active = NULL;
2146 int res = 0; 2128 int res = 0;
2147 2129
2148 if (!USES_PRIMARY(bond->params.mode)) { 2130 if (!USES_PRIMARY(bond->params.mode))
2149 return -EINVAL; 2131 return -EINVAL;
2150 }
2151 2132
2152 /* Verify that master_dev is indeed the master of slave_dev */ 2133 /* Verify that master_dev is indeed the master of slave_dev */
2153 if (!(slave_dev->flags & IFF_SLAVE) || 2134 if (!(slave_dev->flags & IFF_SLAVE) || (slave_dev->master != bond_dev))
2154 (slave_dev->master != bond_dev)) {
2155 return -EINVAL; 2135 return -EINVAL;
2156 }
2157 2136
2158 read_lock(&bond->lock); 2137 read_lock(&bond->lock);
2159 2138
@@ -2178,9 +2157,8 @@ static int bond_ioctl_change_active(struct net_device *bond_dev, struct net_devi
2178 write_lock_bh(&bond->curr_slave_lock); 2157 write_lock_bh(&bond->curr_slave_lock);
2179 bond_change_active_slave(bond, new_active); 2158 bond_change_active_slave(bond, new_active);
2180 write_unlock_bh(&bond->curr_slave_lock); 2159 write_unlock_bh(&bond->curr_slave_lock);
2181 } else { 2160 } else
2182 res = -EINVAL; 2161 res = -EINVAL;
2183 }
2184 2162
2185 read_unlock(&bond->lock); 2163 read_unlock(&bond->lock);
2186 2164
@@ -2249,7 +2227,7 @@ static int bond_miimon_inspect(struct bonding *bond)
2249 slave->link = BOND_LINK_FAIL; 2227 slave->link = BOND_LINK_FAIL;
2250 slave->delay = bond->params.downdelay; 2228 slave->delay = bond->params.downdelay;
2251 if (slave->delay) { 2229 if (slave->delay) {
2252 printk(KERN_INFO DRV_NAME 2230 pr_info(DRV_NAME
2253 ": %s: link status down for %s" 2231 ": %s: link status down for %s"
2254 "interface %s, disabling it in %d ms.\n", 2232 "interface %s, disabling it in %d ms.\n",
2255 bond->dev->name, 2233 bond->dev->name,
@@ -2268,7 +2246,7 @@ static int bond_miimon_inspect(struct bonding *bond)
2268 */ 2246 */
2269 slave->link = BOND_LINK_UP; 2247 slave->link = BOND_LINK_UP;
2270 slave->jiffies = jiffies; 2248 slave->jiffies = jiffies;
2271 printk(KERN_INFO DRV_NAME 2249 pr_info(DRV_NAME
2272 ": %s: link status up again after %d " 2250 ": %s: link status up again after %d "
2273 "ms for interface %s.\n", 2251 "ms for interface %s.\n",
2274 bond->dev->name, 2252 bond->dev->name,
@@ -2295,7 +2273,7 @@ static int bond_miimon_inspect(struct bonding *bond)
2295 slave->delay = bond->params.updelay; 2273 slave->delay = bond->params.updelay;
2296 2274
2297 if (slave->delay) { 2275 if (slave->delay) {
2298 printk(KERN_INFO DRV_NAME 2276 pr_info(DRV_NAME
2299 ": %s: link status up for " 2277 ": %s: link status up for "
2300 "interface %s, enabling it in %d ms.\n", 2278 "interface %s, enabling it in %d ms.\n",
2301 bond->dev->name, slave->dev->name, 2279 bond->dev->name, slave->dev->name,
@@ -2307,7 +2285,7 @@ static int bond_miimon_inspect(struct bonding *bond)
2307 case BOND_LINK_BACK: 2285 case BOND_LINK_BACK:
2308 if (!link_state) { 2286 if (!link_state) {
2309 slave->link = BOND_LINK_DOWN; 2287 slave->link = BOND_LINK_DOWN;
2310 printk(KERN_INFO DRV_NAME 2288 pr_info(DRV_NAME
2311 ": %s: link status down again after %d " 2289 ": %s: link status down again after %d "
2312 "ms for interface %s.\n", 2290 "ms for interface %s.\n",
2313 bond->dev->name, 2291 bond->dev->name,
@@ -2361,7 +2339,7 @@ static void bond_miimon_commit(struct bonding *bond)
2361 slave->state = BOND_STATE_BACKUP; 2339 slave->state = BOND_STATE_BACKUP;
2362 } 2340 }
2363 2341
2364 printk(KERN_INFO DRV_NAME 2342 pr_info(DRV_NAME
2365 ": %s: link status definitely " 2343 ": %s: link status definitely "
2366 "up for interface %s.\n", 2344 "up for interface %s.\n",
2367 bond->dev->name, slave->dev->name); 2345 bond->dev->name, slave->dev->name);
@@ -2390,7 +2368,7 @@ static void bond_miimon_commit(struct bonding *bond)
2390 bond->params.mode == BOND_MODE_8023AD) 2368 bond->params.mode == BOND_MODE_8023AD)
2391 bond_set_slave_inactive_flags(slave); 2369 bond_set_slave_inactive_flags(slave);
2392 2370
2393 printk(KERN_INFO DRV_NAME 2371 pr_info(DRV_NAME
2394 ": %s: link status definitely down for " 2372 ": %s: link status definitely down for "
2395 "interface %s, disabling it\n", 2373 "interface %s, disabling it\n",
2396 bond->dev->name, slave->dev->name); 2374 bond->dev->name, slave->dev->name);
@@ -2409,7 +2387,7 @@ static void bond_miimon_commit(struct bonding *bond)
2409 continue; 2387 continue;
2410 2388
2411 default: 2389 default:
2412 printk(KERN_ERR DRV_NAME 2390 pr_err(DRV_NAME
2413 ": %s: invalid new link %d on slave %s\n", 2391 ": %s: invalid new link %d on slave %s\n",
2414 bond->dev->name, slave->new_link, 2392 bond->dev->name, slave->new_link,
2415 slave->dev->name); 2393 slave->dev->name);
@@ -2530,18 +2508,18 @@ static void bond_arp_send(struct net_device *slave_dev, int arp_op, __be32 dest_
2530 2508
2531 pr_debug("arp %d on slave %s: dst %x src %x vid %d\n", arp_op, 2509 pr_debug("arp %d on slave %s: dst %x src %x vid %d\n", arp_op,
2532 slave_dev->name, dest_ip, src_ip, vlan_id); 2510 slave_dev->name, dest_ip, src_ip, vlan_id);
2533 2511
2534 skb = arp_create(arp_op, ETH_P_ARP, dest_ip, slave_dev, src_ip, 2512 skb = arp_create(arp_op, ETH_P_ARP, dest_ip, slave_dev, src_ip,
2535 NULL, slave_dev->dev_addr, NULL); 2513 NULL, slave_dev->dev_addr, NULL);
2536 2514
2537 if (!skb) { 2515 if (!skb) {
2538 printk(KERN_ERR DRV_NAME ": ARP packet allocation failed\n"); 2516 pr_err(DRV_NAME ": ARP packet allocation failed\n");
2539 return; 2517 return;
2540 } 2518 }
2541 if (vlan_id) { 2519 if (vlan_id) {
2542 skb = vlan_put_tag(skb, vlan_id); 2520 skb = vlan_put_tag(skb, vlan_id);
2543 if (!skb) { 2521 if (!skb) {
2544 printk(KERN_ERR DRV_NAME ": failed to insert VLAN tag\n"); 2522 pr_err(DRV_NAME ": failed to insert VLAN tag\n");
2545 return; 2523 return;
2546 } 2524 }
2547 } 2525 }
@@ -2581,7 +2559,7 @@ static void bond_arp_send_all(struct bonding *bond, struct slave *slave)
2581 rv = ip_route_output_key(&init_net, &rt, &fl); 2559 rv = ip_route_output_key(&init_net, &rt, &fl);
2582 if (rv) { 2560 if (rv) {
2583 if (net_ratelimit()) { 2561 if (net_ratelimit()) {
2584 printk(KERN_WARNING DRV_NAME 2562 pr_warning(DRV_NAME
2585 ": %s: no route to arp_ip_target %pI4\n", 2563 ": %s: no route to arp_ip_target %pI4\n",
2586 bond->dev->name, &fl.fl4_dst); 2564 bond->dev->name, &fl.fl4_dst);
2587 } 2565 }
@@ -2618,7 +2596,7 @@ static void bond_arp_send_all(struct bonding *bond, struct slave *slave)
2618 } 2596 }
2619 2597
2620 if (net_ratelimit()) { 2598 if (net_ratelimit()) {
2621 printk(KERN_WARNING DRV_NAME 2599 pr_warning(DRV_NAME
2622 ": %s: no path to arp_ip_target %pI4 via rt.dev %s\n", 2600 ": %s: no path to arp_ip_target %pI4 via rt.dev %s\n",
2623 bond->dev->name, &fl.fl4_dst, 2601 bond->dev->name, &fl.fl4_dst,
2624 rt->u.dst.dev ? rt->u.dst.dev->name : "NULL"); 2602 rt->u.dst.dev ? rt->u.dst.dev->name : "NULL");
@@ -2766,13 +2744,11 @@ void bond_loadbalance_arp_mon(struct work_struct *work)
2766 2744
2767 delta_in_ticks = msecs_to_jiffies(bond->params.arp_interval); 2745 delta_in_ticks = msecs_to_jiffies(bond->params.arp_interval);
2768 2746
2769 if (bond->kill_timers) { 2747 if (bond->kill_timers)
2770 goto out; 2748 goto out;
2771 }
2772 2749
2773 if (bond->slave_cnt == 0) { 2750 if (bond->slave_cnt == 0)
2774 goto re_arm; 2751 goto re_arm;
2775 }
2776 2752
2777 read_lock(&bond->curr_slave_lock); 2753 read_lock(&bond->curr_slave_lock);
2778 oldcurrent = bond->curr_active_slave; 2754 oldcurrent = bond->curr_active_slave;
@@ -2800,14 +2776,14 @@ void bond_loadbalance_arp_mon(struct work_struct *work)
2800 * is closed. 2776 * is closed.
2801 */ 2777 */
2802 if (!oldcurrent) { 2778 if (!oldcurrent) {
2803 printk(KERN_INFO DRV_NAME 2779 pr_info(DRV_NAME
2804 ": %s: link status definitely " 2780 ": %s: link status definitely "
2805 "up for interface %s, ", 2781 "up for interface %s, ",
2806 bond->dev->name, 2782 bond->dev->name,
2807 slave->dev->name); 2783 slave->dev->name);
2808 do_failover = 1; 2784 do_failover = 1;
2809 } else { 2785 } else {
2810 printk(KERN_INFO DRV_NAME 2786 pr_info(DRV_NAME
2811 ": %s: interface %s is now up\n", 2787 ": %s: interface %s is now up\n",
2812 bond->dev->name, 2788 bond->dev->name,
2813 slave->dev->name); 2789 slave->dev->name);
@@ -2826,18 +2802,16 @@ void bond_loadbalance_arp_mon(struct work_struct *work)
2826 slave->link = BOND_LINK_DOWN; 2802 slave->link = BOND_LINK_DOWN;
2827 slave->state = BOND_STATE_BACKUP; 2803 slave->state = BOND_STATE_BACKUP;
2828 2804
2829 if (slave->link_failure_count < UINT_MAX) { 2805 if (slave->link_failure_count < UINT_MAX)
2830 slave->link_failure_count++; 2806 slave->link_failure_count++;
2831 }
2832 2807
2833 printk(KERN_INFO DRV_NAME 2808 pr_info(DRV_NAME
2834 ": %s: interface %s is now down.\n", 2809 ": %s: interface %s is now down.\n",
2835 bond->dev->name, 2810 bond->dev->name,
2836 slave->dev->name); 2811 slave->dev->name);
2837 2812
2838 if (slave == oldcurrent) { 2813 if (slave == oldcurrent)
2839 do_failover = 1; 2814 do_failover = 1;
2840 }
2841 } 2815 }
2842 } 2816 }
2843 2817
@@ -2848,9 +2822,8 @@ void bond_loadbalance_arp_mon(struct work_struct *work)
2848 * do - all replies will be rx'ed on same link causing slaves 2822 * do - all replies will be rx'ed on same link causing slaves
2849 * to be unstable during low/no traffic periods 2823 * to be unstable during low/no traffic periods
2850 */ 2824 */
2851 if (IS_UP(slave->dev)) { 2825 if (IS_UP(slave->dev))
2852 bond_arp_send_all(bond, slave); 2826 bond_arp_send_all(bond, slave);
2853 }
2854 } 2827 }
2855 2828
2856 if (do_failover) { 2829 if (do_failover) {
@@ -2981,7 +2954,7 @@ static void bond_ab_arp_commit(struct bonding *bond, int delta_in_ticks)
2981 bond_change_active_slave(bond, slave); 2954 bond_change_active_slave(bond, slave);
2982 bond->current_arp_slave = NULL; 2955 bond->current_arp_slave = NULL;
2983 2956
2984 printk(KERN_INFO DRV_NAME 2957 pr_info(DRV_NAME
2985 ": %s: %s is up and now the " 2958 ": %s: %s is up and now the "
2986 "active interface\n", 2959 "active interface\n",
2987 bond->dev->name, slave->dev->name); 2960 bond->dev->name, slave->dev->name);
@@ -2997,7 +2970,7 @@ static void bond_ab_arp_commit(struct bonding *bond, int delta_in_ticks)
2997 bond_set_slave_inactive_flags(slave); 2970 bond_set_slave_inactive_flags(slave);
2998 bond->current_arp_slave = NULL; 2971 bond->current_arp_slave = NULL;
2999 2972
3000 printk(KERN_INFO DRV_NAME 2973 pr_info(DRV_NAME
3001 ": %s: backup interface %s is now up\n", 2974 ": %s: backup interface %s is now up\n",
3002 bond->dev->name, slave->dev->name); 2975 bond->dev->name, slave->dev->name);
3003 } 2976 }
@@ -3013,7 +2986,7 @@ static void bond_ab_arp_commit(struct bonding *bond, int delta_in_ticks)
3013 slave->link = BOND_LINK_DOWN; 2986 slave->link = BOND_LINK_DOWN;
3014 2987
3015 if (slave == bond->curr_active_slave) { 2988 if (slave == bond->curr_active_slave) {
3016 printk(KERN_INFO DRV_NAME 2989 pr_info(DRV_NAME
3017 ": %s: link status down for active " 2990 ": %s: link status down for active "
3018 "interface %s, disabling it\n", 2991 "interface %s, disabling it\n",
3019 bond->dev->name, slave->dev->name); 2992 bond->dev->name, slave->dev->name);
@@ -3032,7 +3005,7 @@ static void bond_ab_arp_commit(struct bonding *bond, int delta_in_ticks)
3032 bond->current_arp_slave = NULL; 3005 bond->current_arp_slave = NULL;
3033 3006
3034 } else if (slave->state == BOND_STATE_BACKUP) { 3007 } else if (slave->state == BOND_STATE_BACKUP) {
3035 printk(KERN_INFO DRV_NAME 3008 pr_info(DRV_NAME
3036 ": %s: backup interface %s is now down\n", 3009 ": %s: backup interface %s is now down\n",
3037 bond->dev->name, slave->dev->name); 3010 bond->dev->name, slave->dev->name);
3038 3011
@@ -3041,7 +3014,7 @@ static void bond_ab_arp_commit(struct bonding *bond, int delta_in_ticks)
3041 break; 3014 break;
3042 3015
3043 default: 3016 default:
3044 printk(KERN_ERR DRV_NAME 3017 pr_err(DRV_NAME
3045 ": %s: impossible: new_link %d on slave %s\n", 3018 ": %s: impossible: new_link %d on slave %s\n",
3046 bond->dev->name, slave->new_link, 3019 bond->dev->name, slave->new_link,
3047 slave->dev->name); 3020 slave->dev->name);
@@ -3075,7 +3048,7 @@ static void bond_ab_arp_probe(struct bonding *bond)
3075 read_lock(&bond->curr_slave_lock); 3048 read_lock(&bond->curr_slave_lock);
3076 3049
3077 if (bond->current_arp_slave && bond->curr_active_slave) 3050 if (bond->current_arp_slave && bond->curr_active_slave)
3078 printk("PROBE: c_arp %s && cas %s BAD\n", 3051 pr_info(DRV_NAME "PROBE: c_arp %s && cas %s BAD\n",
3079 bond->current_arp_slave->dev->name, 3052 bond->current_arp_slave->dev->name,
3080 bond->curr_active_slave->dev->name); 3053 bond->curr_active_slave->dev->name);
3081 3054
@@ -3125,7 +3098,7 @@ static void bond_ab_arp_probe(struct bonding *bond)
3125 3098
3126 bond_set_slave_inactive_flags(slave); 3099 bond_set_slave_inactive_flags(slave);
3127 3100
3128 printk(KERN_INFO DRV_NAME 3101 pr_info(DRV_NAME
3129 ": %s: backup interface %s is now down.\n", 3102 ": %s: backup interface %s is now down.\n",
3130 bond->dev->name, slave->dev->name); 3103 bond->dev->name, slave->dev->name);
3131 } 3104 }
@@ -3175,9 +3148,8 @@ void bond_activebackup_arp_mon(struct work_struct *work)
3175 bond_ab_arp_probe(bond); 3148 bond_ab_arp_probe(bond);
3176 3149
3177re_arm: 3150re_arm:
3178 if (bond->params.arp_interval) { 3151 if (bond->params.arp_interval)
3179 queue_delayed_work(bond->wq, &bond->arp_work, delta_in_ticks); 3152 queue_delayed_work(bond->wq, &bond->arp_work, delta_in_ticks);
3180 }
3181out: 3153out:
3182 read_unlock(&bond->lock); 3154 read_unlock(&bond->lock);
3183} 3155}
@@ -3199,14 +3171,12 @@ static void *bond_info_seq_start(struct seq_file *seq, loff_t *pos)
3199 read_lock(&dev_base_lock); 3171 read_lock(&dev_base_lock);
3200 read_lock(&bond->lock); 3172 read_lock(&bond->lock);
3201 3173
3202 if (*pos == 0) { 3174 if (*pos == 0)
3203 return SEQ_START_TOKEN; 3175 return SEQ_START_TOKEN;
3204 }
3205 3176
3206 bond_for_each_slave(bond, slave, i) { 3177 bond_for_each_slave(bond, slave, i) {
3207 if (++off == *pos) { 3178 if (++off == *pos)
3208 return slave; 3179 return slave;
3209 }
3210 } 3180 }
3211 3181
3212 return NULL; 3182 return NULL;
@@ -3218,9 +3188,8 @@ static void *bond_info_seq_next(struct seq_file *seq, void *v, loff_t *pos)
3218 struct slave *slave = v; 3188 struct slave *slave = v;
3219 3189
3220 ++*pos; 3190 ++*pos;
3221 if (v == SEQ_START_TOKEN) { 3191 if (v == SEQ_START_TOKEN)
3222 return bond->first_slave; 3192 return bond->first_slave;
3223 }
3224 3193
3225 slave = slave->next; 3194 slave = slave->next;
3226 3195
@@ -3283,14 +3252,14 @@ static void bond_info_show_master(struct seq_file *seq)
3283 3252
3284 3253
3285 /* ARP information */ 3254 /* ARP information */
3286 if(bond->params.arp_interval > 0) { 3255 if (bond->params.arp_interval > 0) {
3287 int printed=0; 3256 int printed = 0;
3288 seq_printf(seq, "ARP Polling Interval (ms): %d\n", 3257 seq_printf(seq, "ARP Polling Interval (ms): %d\n",
3289 bond->params.arp_interval); 3258 bond->params.arp_interval);
3290 3259
3291 seq_printf(seq, "ARP IP target/s (n.n.n.n form):"); 3260 seq_printf(seq, "ARP IP target/s (n.n.n.n form):");
3292 3261
3293 for(i = 0; (i < BOND_MAX_ARP_TARGETS) ;i++) { 3262 for (i = 0; (i < BOND_MAX_ARP_TARGETS); i++) {
3294 if (!bond->params.arp_targets[i]) 3263 if (!bond->params.arp_targets[i])
3295 break; 3264 break;
3296 if (printed) 3265 if (printed)
@@ -3330,7 +3299,8 @@ static void bond_info_show_master(struct seq_file *seq)
3330 } 3299 }
3331} 3300}
3332 3301
3333static void bond_info_show_slave(struct seq_file *seq, const struct slave *slave) 3302static void bond_info_show_slave(struct seq_file *seq,
3303 const struct slave *slave)
3334{ 3304{
3335 struct bonding *bond = seq->private; 3305 struct bonding *bond = seq->private;
3336 3306
@@ -3346,12 +3316,11 @@ static void bond_info_show_slave(struct seq_file *seq, const struct slave *slave
3346 const struct aggregator *agg 3316 const struct aggregator *agg
3347 = SLAVE_AD_INFO(slave).port.aggregator; 3317 = SLAVE_AD_INFO(slave).port.aggregator;
3348 3318
3349 if (agg) { 3319 if (agg)
3350 seq_printf(seq, "Aggregator ID: %d\n", 3320 seq_printf(seq, "Aggregator ID: %d\n",
3351 agg->aggregator_identifier); 3321 agg->aggregator_identifier);
3352 } else { 3322 else
3353 seq_puts(seq, "Aggregator ID: N/A\n"); 3323 seq_puts(seq, "Aggregator ID: N/A\n");
3354 }
3355 } 3324 }
3356} 3325}
3357 3326
@@ -3360,9 +3329,8 @@ static int bond_info_seq_show(struct seq_file *seq, void *v)
3360 if (v == SEQ_START_TOKEN) { 3329 if (v == SEQ_START_TOKEN) {
3361 seq_printf(seq, "%s\n", version); 3330 seq_printf(seq, "%s\n", version);
3362 bond_info_show_master(seq); 3331 bond_info_show_master(seq);
3363 } else { 3332 } else
3364 bond_info_show_slave(seq, v); 3333 bond_info_show_slave(seq, v);
3365 }
3366 3334
3367 return 0; 3335 return 0;
3368} 3336}
@@ -3407,13 +3375,12 @@ static int bond_create_proc_entry(struct bonding *bond)
3407 bond->proc_entry = proc_create_data(bond_dev->name, 3375 bond->proc_entry = proc_create_data(bond_dev->name,
3408 S_IRUGO, bond_proc_dir, 3376 S_IRUGO, bond_proc_dir,
3409 &bond_info_fops, bond); 3377 &bond_info_fops, bond);
3410 if (bond->proc_entry == NULL) { 3378 if (bond->proc_entry == NULL)
3411 printk(KERN_WARNING DRV_NAME 3379 pr_warning(DRV_NAME
3412 ": Warning: Cannot create /proc/net/%s/%s\n", 3380 ": Warning: Cannot create /proc/net/%s/%s\n",
3413 DRV_NAME, bond_dev->name); 3381 DRV_NAME, bond_dev->name);
3414 } else { 3382 else
3415 memcpy(bond->proc_file_name, bond_dev->name, IFNAMSIZ); 3383 memcpy(bond->proc_file_name, bond_dev->name, IFNAMSIZ);
3416 }
3417 } 3384 }
3418 3385
3419 return 0; 3386 return 0;
@@ -3436,7 +3403,7 @@ static void bond_create_proc_dir(void)
3436 if (!bond_proc_dir) { 3403 if (!bond_proc_dir) {
3437 bond_proc_dir = proc_mkdir(DRV_NAME, init_net.proc_net); 3404 bond_proc_dir = proc_mkdir(DRV_NAME, init_net.proc_net);
3438 if (!bond_proc_dir) 3405 if (!bond_proc_dir)
3439 printk(KERN_WARNING DRV_NAME 3406 pr_warning(DRV_NAME
3440 ": Warning: cannot create /proc/net/%s\n", 3407 ": Warning: cannot create /proc/net/%s\n",
3441 DRV_NAME); 3408 DRV_NAME);
3442 } 3409 }
@@ -3484,13 +3451,14 @@ static int bond_event_changename(struct bonding *bond)
3484 bond_remove_proc_entry(bond); 3451 bond_remove_proc_entry(bond);
3485 bond_create_proc_entry(bond); 3452 bond_create_proc_entry(bond);
3486 3453
3487 bond_destroy_sysfs_entry(bond); 3454 bond_destroy_sysfs_entry(bond);
3488 bond_create_sysfs_entry(bond); 3455 bond_create_sysfs_entry(bond);
3489 3456
3490 return NOTIFY_DONE; 3457 return NOTIFY_DONE;
3491} 3458}
3492 3459
3493static int bond_master_netdev_event(unsigned long event, struct net_device *bond_dev) 3460static int bond_master_netdev_event(unsigned long event,
3461 struct net_device *bond_dev)
3494{ 3462{
3495 struct bonding *event_bond = netdev_priv(bond_dev); 3463 struct bonding *event_bond = netdev_priv(bond_dev);
3496 3464
@@ -3507,7 +3475,8 @@ static int bond_master_netdev_event(unsigned long event, struct net_device *bond
3507 return NOTIFY_DONE; 3475 return NOTIFY_DONE;
3508} 3476}
3509 3477
3510static int bond_slave_netdev_event(unsigned long event, struct net_device *slave_dev) 3478static int bond_slave_netdev_event(unsigned long event,
3479 struct net_device *slave_dev)
3511{ 3480{
3512 struct net_device *bond_dev = slave_dev->master; 3481 struct net_device *bond_dev = slave_dev->master;
3513 struct bonding *bond = netdev_priv(bond_dev); 3482 struct bonding *bond = netdev_priv(bond_dev);
@@ -3585,7 +3554,8 @@ static int bond_slave_netdev_event(unsigned long event, struct net_device *slave
3585 * locks for us to safely manipulate the slave devices (RTNL lock, 3554 * locks for us to safely manipulate the slave devices (RTNL lock,
3586 * dev_probe_lock). 3555 * dev_probe_lock).
3587 */ 3556 */
3588static int bond_netdev_event(struct notifier_block *this, unsigned long event, void *ptr) 3557static int bond_netdev_event(struct notifier_block *this,
3558 unsigned long event, void *ptr)
3589{ 3559{
3590 struct net_device *event_dev = (struct net_device *)ptr; 3560 struct net_device *event_dev = (struct net_device *)ptr;
3591 3561
@@ -3940,9 +3910,9 @@ static int bond_do_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd
3940 switch (cmd) { 3910 switch (cmd) {
3941 case SIOCGMIIPHY: 3911 case SIOCGMIIPHY:
3942 mii = if_mii(ifr); 3912 mii = if_mii(ifr);
3943 if (!mii) { 3913 if (!mii)
3944 return -EINVAL; 3914 return -EINVAL;
3945 } 3915
3946 mii->phy_id = 0; 3916 mii->phy_id = 0;
3947 /* Fall Through */ 3917 /* Fall Through */
3948 case SIOCGMIIREG: 3918 case SIOCGMIIREG:
@@ -3951,18 +3921,18 @@ static int bond_do_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd
3951 * instead of SIOCGMIIPHY. 3921 * instead of SIOCGMIIPHY.
3952 */ 3922 */
3953 mii = if_mii(ifr); 3923 mii = if_mii(ifr);
3954 if (!mii) { 3924 if (!mii)
3955 return -EINVAL; 3925 return -EINVAL;
3956 } 3926
3957 3927
3958 if (mii->reg_num == 1) { 3928 if (mii->reg_num == 1) {
3959 struct bonding *bond = netdev_priv(bond_dev); 3929 struct bonding *bond = netdev_priv(bond_dev);
3960 mii->val_out = 0; 3930 mii->val_out = 0;
3961 read_lock(&bond->lock); 3931 read_lock(&bond->lock);
3962 read_lock(&bond->curr_slave_lock); 3932 read_lock(&bond->curr_slave_lock);
3963 if (netif_carrier_ok(bond->dev)) { 3933 if (netif_carrier_ok(bond->dev))
3964 mii->val_out = BMSR_LSTATUS; 3934 mii->val_out = BMSR_LSTATUS;
3965 } 3935
3966 read_unlock(&bond->curr_slave_lock); 3936 read_unlock(&bond->curr_slave_lock);
3967 read_unlock(&bond->lock); 3937 read_unlock(&bond->lock);
3968 } 3938 }
@@ -3972,32 +3942,26 @@ static int bond_do_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd
3972 case SIOCBONDINFOQUERY: 3942 case SIOCBONDINFOQUERY:
3973 u_binfo = (struct ifbond __user *)ifr->ifr_data; 3943 u_binfo = (struct ifbond __user *)ifr->ifr_data;
3974 3944
3975 if (copy_from_user(&k_binfo, u_binfo, sizeof(ifbond))) { 3945 if (copy_from_user(&k_binfo, u_binfo, sizeof(ifbond)))
3976 return -EFAULT; 3946 return -EFAULT;
3977 }
3978 3947
3979 res = bond_info_query(bond_dev, &k_binfo); 3948 res = bond_info_query(bond_dev, &k_binfo);
3980 if (res == 0) { 3949 if (res == 0 &&
3981 if (copy_to_user(u_binfo, &k_binfo, sizeof(ifbond))) { 3950 copy_to_user(u_binfo, &k_binfo, sizeof(ifbond)))
3982 return -EFAULT; 3951 return -EFAULT;
3983 }
3984 }
3985 3952
3986 return res; 3953 return res;
3987 case BOND_SLAVE_INFO_QUERY_OLD: 3954 case BOND_SLAVE_INFO_QUERY_OLD:
3988 case SIOCBONDSLAVEINFOQUERY: 3955 case SIOCBONDSLAVEINFOQUERY:
3989 u_sinfo = (struct ifslave __user *)ifr->ifr_data; 3956 u_sinfo = (struct ifslave __user *)ifr->ifr_data;
3990 3957
3991 if (copy_from_user(&k_sinfo, u_sinfo, sizeof(ifslave))) { 3958 if (copy_from_user(&k_sinfo, u_sinfo, sizeof(ifslave)))
3992 return -EFAULT; 3959 return -EFAULT;
3993 }
3994 3960
3995 res = bond_slave_info_query(bond_dev, &k_sinfo); 3961 res = bond_slave_info_query(bond_dev, &k_sinfo);
3996 if (res == 0) { 3962 if (res == 0 &&
3997 if (copy_to_user(u_sinfo, &k_sinfo, sizeof(ifslave))) { 3963 copy_to_user(u_sinfo, &k_sinfo, sizeof(ifslave)))
3998 return -EFAULT; 3964 return -EFAULT;
3999 }
4000 }
4001 3965
4002 return res; 3966 return res;
4003 default: 3967 default:
@@ -4005,17 +3969,16 @@ static int bond_do_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd
4005 break; 3969 break;
4006 } 3970 }
4007 3971
4008 if (!capable(CAP_NET_ADMIN)) { 3972 if (!capable(CAP_NET_ADMIN))
4009 return -EPERM; 3973 return -EPERM;
4010 }
4011 3974
4012 slave_dev = dev_get_by_name(&init_net, ifr->ifr_slave); 3975 slave_dev = dev_get_by_name(&init_net, ifr->ifr_slave);
4013 3976
4014 pr_debug("slave_dev=%p: \n", slave_dev); 3977 pr_debug("slave_dev=%p: \n", slave_dev);
4015 3978
4016 if (!slave_dev) { 3979 if (!slave_dev)
4017 res = -ENODEV; 3980 res = -ENODEV;
4018 } else { 3981 else {
4019 pr_debug("slave_dev->name=%s: \n", slave_dev->name); 3982 pr_debug("slave_dev->name=%s: \n", slave_dev->name);
4020 switch (cmd) { 3983 switch (cmd) {
4021 case BOND_ENSLAVE_OLD: 3984 case BOND_ENSLAVE_OLD:
@@ -4052,30 +4015,30 @@ static void bond_set_multicast_list(struct net_device *bond_dev)
4052 /* 4015 /*
4053 * Do promisc before checking multicast_mode 4016 * Do promisc before checking multicast_mode
4054 */ 4017 */
4055 if ((bond_dev->flags & IFF_PROMISC) && !(bond->flags & IFF_PROMISC)) { 4018 if ((bond_dev->flags & IFF_PROMISC) && !(bond->flags & IFF_PROMISC))
4056 /* 4019 /*
4057 * FIXME: Need to handle the error when one of the multi-slaves 4020 * FIXME: Need to handle the error when one of the multi-slaves
4058 * encounters error. 4021 * encounters error.
4059 */ 4022 */
4060 bond_set_promiscuity(bond, 1); 4023 bond_set_promiscuity(bond, 1);
4061 }
4062 4024
4063 if (!(bond_dev->flags & IFF_PROMISC) && (bond->flags & IFF_PROMISC)) { 4025
4026 if (!(bond_dev->flags & IFF_PROMISC) && (bond->flags & IFF_PROMISC))
4064 bond_set_promiscuity(bond, -1); 4027 bond_set_promiscuity(bond, -1);
4065 } 4028
4066 4029
4067 /* set allmulti flag to slaves */ 4030 /* set allmulti flag to slaves */
4068 if ((bond_dev->flags & IFF_ALLMULTI) && !(bond->flags & IFF_ALLMULTI)) { 4031 if ((bond_dev->flags & IFF_ALLMULTI) && !(bond->flags & IFF_ALLMULTI))
4069 /* 4032 /*
4070 * FIXME: Need to handle the error when one of the multi-slaves 4033 * FIXME: Need to handle the error when one of the multi-slaves
4071 * encounters error. 4034 * encounters error.
4072 */ 4035 */
4073 bond_set_allmulti(bond, 1); 4036 bond_set_allmulti(bond, 1);
4074 }
4075 4037
4076 if (!(bond_dev->flags & IFF_ALLMULTI) && (bond->flags & IFF_ALLMULTI)) { 4038
4039 if (!(bond_dev->flags & IFF_ALLMULTI) && (bond->flags & IFF_ALLMULTI))
4077 bond_set_allmulti(bond, -1); 4040 bond_set_allmulti(bond, -1);
4078 } 4041
4079 4042
4080 read_lock(&bond->lock); 4043 read_lock(&bond->lock);
4081 4044
@@ -4083,16 +4046,14 @@ static void bond_set_multicast_list(struct net_device *bond_dev)
4083 4046
4084 /* looking for addresses to add to slaves' mc list */ 4047 /* looking for addresses to add to slaves' mc list */
4085 for (dmi = bond_dev->mc_list; dmi; dmi = dmi->next) { 4048 for (dmi = bond_dev->mc_list; dmi; dmi = dmi->next) {
4086 if (!bond_mc_list_find_dmi(dmi, bond->mc_list)) { 4049 if (!bond_mc_list_find_dmi(dmi, bond->mc_list))
4087 bond_mc_add(bond, dmi->dmi_addr, dmi->dmi_addrlen); 4050 bond_mc_add(bond, dmi->dmi_addr, dmi->dmi_addrlen);
4088 }
4089 } 4051 }
4090 4052
4091 /* looking for addresses to delete from slaves' list */ 4053 /* looking for addresses to delete from slaves' list */
4092 for (dmi = bond->mc_list; dmi; dmi = dmi->next) { 4054 for (dmi = bond->mc_list; dmi; dmi = dmi->next) {
4093 if (!bond_mc_list_find_dmi(dmi, bond_dev->mc_list)) { 4055 if (!bond_mc_list_find_dmi(dmi, bond_dev->mc_list))
4094 bond_mc_delete(bond, dmi->dmi_addr, dmi->dmi_addrlen); 4056 bond_mc_delete(bond, dmi->dmi_addr, dmi->dmi_addrlen);
4095 }
4096 } 4057 }
4097 4058
4098 /* save master's multicast list */ 4059 /* save master's multicast list */
@@ -4212,9 +4173,8 @@ static int bond_set_mac_address(struct net_device *bond_dev, void *addr)
4212 if (bond->params.fail_over_mac == BOND_FOM_ACTIVE) 4173 if (bond->params.fail_over_mac == BOND_FOM_ACTIVE)
4213 return 0; 4174 return 0;
4214 4175
4215 if (!is_valid_ether_addr(sa->sa_data)) { 4176 if (!is_valid_ether_addr(sa->sa_data))
4216 return -EADDRNOTAVAIL; 4177 return -EADDRNOTAVAIL;
4217 }
4218 4178
4219 /* Can't hold bond->lock with bh disabled here since 4179 /* Can't hold bond->lock with bh disabled here since
4220 * some base drivers panic. On the other hand we can't 4180 * some base drivers panic. On the other hand we can't
@@ -4285,9 +4245,8 @@ static int bond_xmit_roundrobin(struct sk_buff *skb, struct net_device *bond_dev
4285 4245
4286 read_lock(&bond->lock); 4246 read_lock(&bond->lock);
4287 4247
4288 if (!BOND_IS_OK(bond)) { 4248 if (!BOND_IS_OK(bond))
4289 goto out; 4249 goto out;
4290 }
4291 4250
4292 /* 4251 /*
4293 * Concurrent TX may collide on rr_tx_counter; we accept that 4252 * Concurrent TX may collide on rr_tx_counter; we accept that
@@ -4297,9 +4256,8 @@ static int bond_xmit_roundrobin(struct sk_buff *skb, struct net_device *bond_dev
4297 4256
4298 bond_for_each_slave(bond, slave, i) { 4257 bond_for_each_slave(bond, slave, i) {
4299 slave_no--; 4258 slave_no--;
4300 if (slave_no < 0) { 4259 if (slave_no < 0)
4301 break; 4260 break;
4302 }
4303 } 4261 }
4304 4262
4305 start_at = slave; 4263 start_at = slave;
@@ -4334,9 +4292,8 @@ static int bond_xmit_activebackup(struct sk_buff *skb, struct net_device *bond_d
4334 read_lock(&bond->lock); 4292 read_lock(&bond->lock);
4335 read_lock(&bond->curr_slave_lock); 4293 read_lock(&bond->curr_slave_lock);
4336 4294
4337 if (!BOND_IS_OK(bond)) { 4295 if (!BOND_IS_OK(bond))
4338 goto out; 4296 goto out;
4339 }
4340 4297
4341 if (!bond->curr_active_slave) 4298 if (!bond->curr_active_slave)
4342 goto out; 4299 goto out;
@@ -4344,10 +4301,10 @@ static int bond_xmit_activebackup(struct sk_buff *skb, struct net_device *bond_d
4344 res = bond_dev_queue_xmit(bond, skb, bond->curr_active_slave->dev); 4301 res = bond_dev_queue_xmit(bond, skb, bond->curr_active_slave->dev);
4345 4302
4346out: 4303out:
4347 if (res) { 4304 if (res)
4348 /* no suitable interface, frame not sent */ 4305 /* no suitable interface, frame not sent */
4349 dev_kfree_skb(skb); 4306 dev_kfree_skb(skb);
4350 } 4307
4351 read_unlock(&bond->curr_slave_lock); 4308 read_unlock(&bond->curr_slave_lock);
4352 read_unlock(&bond->lock); 4309 read_unlock(&bond->lock);
4353 return 0; 4310 return 0;
@@ -4368,17 +4325,15 @@ static int bond_xmit_xor(struct sk_buff *skb, struct net_device *bond_dev)
4368 4325
4369 read_lock(&bond->lock); 4326 read_lock(&bond->lock);
4370 4327
4371 if (!BOND_IS_OK(bond)) { 4328 if (!BOND_IS_OK(bond))
4372 goto out; 4329 goto out;
4373 }
4374 4330
4375 slave_no = bond->xmit_hash_policy(skb, bond_dev, bond->slave_cnt); 4331 slave_no = bond->xmit_hash_policy(skb, bond_dev, bond->slave_cnt);
4376 4332
4377 bond_for_each_slave(bond, slave, i) { 4333 bond_for_each_slave(bond, slave, i) {
4378 slave_no--; 4334 slave_no--;
4379 if (slave_no < 0) { 4335 if (slave_no < 0)
4380 break; 4336 break;
4381 }
4382 } 4337 }
4383 4338
4384 start_at = slave; 4339 start_at = slave;
@@ -4414,17 +4369,15 @@ static int bond_xmit_broadcast(struct sk_buff *skb, struct net_device *bond_dev)
4414 4369
4415 read_lock(&bond->lock); 4370 read_lock(&bond->lock);
4416 4371
4417 if (!BOND_IS_OK(bond)) { 4372 if (!BOND_IS_OK(bond))
4418 goto out; 4373 goto out;
4419 }
4420 4374
4421 read_lock(&bond->curr_slave_lock); 4375 read_lock(&bond->curr_slave_lock);
4422 start_at = bond->curr_active_slave; 4376 start_at = bond->curr_active_slave;
4423 read_unlock(&bond->curr_slave_lock); 4377 read_unlock(&bond->curr_slave_lock);
4424 4378
4425 if (!start_at) { 4379 if (!start_at)
4426 goto out; 4380 goto out;
4427 }
4428 4381
4429 bond_for_each_slave_from(bond, slave, i, start_at) { 4382 bond_for_each_slave_from(bond, slave, i, start_at) {
4430 if (IS_UP(slave->dev) && 4383 if (IS_UP(slave->dev) &&
@@ -4433,7 +4386,7 @@ static int bond_xmit_broadcast(struct sk_buff *skb, struct net_device *bond_dev)
4433 if (tx_dev) { 4386 if (tx_dev) {
4434 struct sk_buff *skb2 = skb_clone(skb, GFP_ATOMIC); 4387 struct sk_buff *skb2 = skb_clone(skb, GFP_ATOMIC);
4435 if (!skb2) { 4388 if (!skb2) {
4436 printk(KERN_ERR DRV_NAME 4389 pr_err(DRV_NAME
4437 ": %s: Error: bond_xmit_broadcast(): " 4390 ": %s: Error: bond_xmit_broadcast(): "
4438 "skb_clone() failed\n", 4391 "skb_clone() failed\n",
4439 bond_dev->name); 4392 bond_dev->name);
@@ -4450,15 +4403,14 @@ static int bond_xmit_broadcast(struct sk_buff *skb, struct net_device *bond_dev)
4450 } 4403 }
4451 } 4404 }
4452 4405
4453 if (tx_dev) { 4406 if (tx_dev)
4454 res = bond_dev_queue_xmit(bond, skb, tx_dev); 4407 res = bond_dev_queue_xmit(bond, skb, tx_dev);
4455 }
4456 4408
4457out: 4409out:
4458 if (res) { 4410 if (res)
4459 /* no suitable interface, frame not sent */ 4411 /* no suitable interface, frame not sent */
4460 dev_kfree_skb(skb); 4412 dev_kfree_skb(skb);
4461 } 4413
4462 /* frame sent to all suitable interfaces */ 4414 /* frame sent to all suitable interfaces */
4463 read_unlock(&bond->lock); 4415 read_unlock(&bond->lock);
4464 return 0; 4416 return 0;
@@ -4502,7 +4454,7 @@ static int bond_start_xmit(struct sk_buff *skb, struct net_device *dev)
4502 return bond_alb_xmit(skb, dev); 4454 return bond_alb_xmit(skb, dev);
4503 default: 4455 default:
4504 /* Should never happen, mode already checked */ 4456 /* Should never happen, mode already checked */
4505 printk(KERN_ERR DRV_NAME ": %s: Error: Unknown bonding mode %d\n", 4457 pr_err(DRV_NAME ": %s: Error: Unknown bonding mode %d\n",
4506 dev->name, bond->params.mode); 4458 dev->name, bond->params.mode);
4507 WARN_ON_ONCE(1); 4459 WARN_ON_ONCE(1);
4508 dev_kfree_skb(skb); 4460 dev_kfree_skb(skb);
@@ -4539,7 +4491,7 @@ void bond_set_mode_ops(struct bonding *bond, int mode)
4539 break; 4491 break;
4540 default: 4492 default:
4541 /* Should never happen, mode already checked */ 4493 /* Should never happen, mode already checked */
4542 printk(KERN_ERR DRV_NAME 4494 pr_err(DRV_NAME
4543 ": %s: Error: Unknown bonding mode %d\n", 4495 ": %s: Error: Unknown bonding mode %d\n",
4544 bond_dev->name, 4496 bond_dev->name,
4545 mode); 4497 mode);
@@ -4752,7 +4704,7 @@ static int bond_check_params(struct bond_params *params)
4752 if (mode) { 4704 if (mode) {
4753 bond_mode = bond_parse_parm(mode, bond_mode_tbl); 4705 bond_mode = bond_parse_parm(mode, bond_mode_tbl);
4754 if (bond_mode == -1) { 4706 if (bond_mode == -1) {
4755 printk(KERN_ERR DRV_NAME 4707 pr_err(DRV_NAME
4756 ": Error: Invalid bonding mode \"%s\"\n", 4708 ": Error: Invalid bonding mode \"%s\"\n",
4757 mode == NULL ? "NULL" : mode); 4709 mode == NULL ? "NULL" : mode);
4758 return -EINVAL; 4710 return -EINVAL;
@@ -4762,16 +4714,16 @@ static int bond_check_params(struct bond_params *params)
4762 if (xmit_hash_policy) { 4714 if (xmit_hash_policy) {
4763 if ((bond_mode != BOND_MODE_XOR) && 4715 if ((bond_mode != BOND_MODE_XOR) &&
4764 (bond_mode != BOND_MODE_8023AD)) { 4716 (bond_mode != BOND_MODE_8023AD)) {
4765 printk(KERN_INFO DRV_NAME 4717 pr_info(DRV_NAME
4766 ": xor_mode param is irrelevant in mode %s\n", 4718 ": xor_mode param is irrelevant in mode %s\n",
4767 bond_mode_name(bond_mode)); 4719 bond_mode_name(bond_mode));
4768 } else { 4720 } else {
4769 xmit_hashtype = bond_parse_parm(xmit_hash_policy, 4721 xmit_hashtype = bond_parse_parm(xmit_hash_policy,
4770 xmit_hashtype_tbl); 4722 xmit_hashtype_tbl);
4771 if (xmit_hashtype == -1) { 4723 if (xmit_hashtype == -1) {
4772 printk(KERN_ERR DRV_NAME 4724 pr_err(DRV_NAME
4773 ": Error: Invalid xmit_hash_policy \"%s\"\n", 4725 ": Error: Invalid xmit_hash_policy \"%s\"\n",
4774 xmit_hash_policy == NULL ? "NULL" : 4726 xmit_hash_policy == NULL ? "NULL" :
4775 xmit_hash_policy); 4727 xmit_hash_policy);
4776 return -EINVAL; 4728 return -EINVAL;
4777 } 4729 }
@@ -4780,13 +4732,13 @@ static int bond_check_params(struct bond_params *params)
4780 4732
4781 if (lacp_rate) { 4733 if (lacp_rate) {
4782 if (bond_mode != BOND_MODE_8023AD) { 4734 if (bond_mode != BOND_MODE_8023AD) {
4783 printk(KERN_INFO DRV_NAME 4735 pr_info(DRV_NAME
4784 ": lacp_rate param is irrelevant in mode %s\n", 4736 ": lacp_rate param is irrelevant in mode %s\n",
4785 bond_mode_name(bond_mode)); 4737 bond_mode_name(bond_mode));
4786 } else { 4738 } else {
4787 lacp_fast = bond_parse_parm(lacp_rate, bond_lacp_tbl); 4739 lacp_fast = bond_parse_parm(lacp_rate, bond_lacp_tbl);
4788 if (lacp_fast == -1) { 4740 if (lacp_fast == -1) {
4789 printk(KERN_ERR DRV_NAME 4741 pr_err(DRV_NAME
4790 ": Error: Invalid lacp rate \"%s\"\n", 4742 ": Error: Invalid lacp rate \"%s\"\n",
4791 lacp_rate == NULL ? "NULL" : lacp_rate); 4743 lacp_rate == NULL ? "NULL" : lacp_rate);
4792 return -EINVAL; 4744 return -EINVAL;
@@ -4797,14 +4749,14 @@ static int bond_check_params(struct bond_params *params)
4797 if (ad_select) { 4749 if (ad_select) {
4798 params->ad_select = bond_parse_parm(ad_select, ad_select_tbl); 4750 params->ad_select = bond_parse_parm(ad_select, ad_select_tbl);
4799 if (params->ad_select == -1) { 4751 if (params->ad_select == -1) {
4800 printk(KERN_ERR DRV_NAME 4752 pr_err(DRV_NAME
4801 ": Error: Invalid ad_select \"%s\"\n", 4753 ": Error: Invalid ad_select \"%s\"\n",
4802 ad_select == NULL ? "NULL" : ad_select); 4754 ad_select == NULL ? "NULL" : ad_select);
4803 return -EINVAL; 4755 return -EINVAL;
4804 } 4756 }
4805 4757
4806 if (bond_mode != BOND_MODE_8023AD) { 4758 if (bond_mode != BOND_MODE_8023AD) {
4807 printk(KERN_WARNING DRV_NAME 4759 pr_warning(DRV_NAME
4808 ": ad_select param only affects 802.3ad mode\n"); 4760 ": ad_select param only affects 802.3ad mode\n");
4809 } 4761 }
4810 } else { 4762 } else {
@@ -4812,7 +4764,7 @@ static int bond_check_params(struct bond_params *params)
4812 } 4764 }
4813 4765
4814 if (max_bonds < 0 || max_bonds > INT_MAX) { 4766 if (max_bonds < 0 || max_bonds > INT_MAX) {
4815 printk(KERN_WARNING DRV_NAME 4767 pr_warning(DRV_NAME
4816 ": Warning: max_bonds (%d) not in range %d-%d, so it " 4768 ": Warning: max_bonds (%d) not in range %d-%d, so it "
4817 "was reset to BOND_DEFAULT_MAX_BONDS (%d)\n", 4769 "was reset to BOND_DEFAULT_MAX_BONDS (%d)\n",
4818 max_bonds, 0, INT_MAX, BOND_DEFAULT_MAX_BONDS); 4770 max_bonds, 0, INT_MAX, BOND_DEFAULT_MAX_BONDS);
@@ -4820,7 +4772,7 @@ static int bond_check_params(struct bond_params *params)
4820 } 4772 }
4821 4773
4822 if (miimon < 0) { 4774 if (miimon < 0) {
4823 printk(KERN_WARNING DRV_NAME 4775 pr_warning(DRV_NAME
4824 ": Warning: miimon module parameter (%d), " 4776 ": Warning: miimon module parameter (%d), "
4825 "not in range 0-%d, so it was reset to %d\n", 4777 "not in range 0-%d, so it was reset to %d\n",
4826 miimon, INT_MAX, BOND_LINK_MON_INTERV); 4778 miimon, INT_MAX, BOND_LINK_MON_INTERV);
@@ -4828,7 +4780,7 @@ static int bond_check_params(struct bond_params *params)
4828 } 4780 }
4829 4781
4830 if (updelay < 0) { 4782 if (updelay < 0) {
4831 printk(KERN_WARNING DRV_NAME 4783 pr_warning(DRV_NAME
4832 ": Warning: updelay module parameter (%d), " 4784 ": Warning: updelay module parameter (%d), "
4833 "not in range 0-%d, so it was reset to 0\n", 4785 "not in range 0-%d, so it was reset to 0\n",
4834 updelay, INT_MAX); 4786 updelay, INT_MAX);
@@ -4836,7 +4788,7 @@ static int bond_check_params(struct bond_params *params)
4836 } 4788 }
4837 4789
4838 if (downdelay < 0) { 4790 if (downdelay < 0) {
4839 printk(KERN_WARNING DRV_NAME 4791 pr_warning(DRV_NAME
4840 ": Warning: downdelay module parameter (%d), " 4792 ": Warning: downdelay module parameter (%d), "
4841 "not in range 0-%d, so it was reset to 0\n", 4793 "not in range 0-%d, so it was reset to 0\n",
4842 downdelay, INT_MAX); 4794 downdelay, INT_MAX);
@@ -4844,7 +4796,7 @@ static int bond_check_params(struct bond_params *params)
4844 } 4796 }
4845 4797
4846 if ((use_carrier != 0) && (use_carrier != 1)) { 4798 if ((use_carrier != 0) && (use_carrier != 1)) {
4847 printk(KERN_WARNING DRV_NAME 4799 pr_warning(DRV_NAME
4848 ": Warning: use_carrier module parameter (%d), " 4800 ": Warning: use_carrier module parameter (%d), "
4849 "not of valid value (0/1), so it was set to 1\n", 4801 "not of valid value (0/1), so it was set to 1\n",
4850 use_carrier); 4802 use_carrier);
@@ -4852,14 +4804,14 @@ static int bond_check_params(struct bond_params *params)
4852 } 4804 }
4853 4805
4854 if (num_grat_arp < 0 || num_grat_arp > 255) { 4806 if (num_grat_arp < 0 || num_grat_arp > 255) {
4855 printk(KERN_WARNING DRV_NAME 4807 pr_warning(DRV_NAME
4856 ": Warning: num_grat_arp (%d) not in range 0-255 so it " 4808 ": Warning: num_grat_arp (%d) not in range 0-255 so it "
4857 "was reset to 1 \n", num_grat_arp); 4809 "was reset to 1 \n", num_grat_arp);
4858 num_grat_arp = 1; 4810 num_grat_arp = 1;
4859 } 4811 }
4860 4812
4861 if (num_unsol_na < 0 || num_unsol_na > 255) { 4813 if (num_unsol_na < 0 || num_unsol_na > 255) {
4862 printk(KERN_WARNING DRV_NAME 4814 pr_warning(DRV_NAME
4863 ": Warning: num_unsol_na (%d) not in range 0-255 so it " 4815 ": Warning: num_unsol_na (%d) not in range 0-255 so it "
4864 "was reset to 1 \n", num_unsol_na); 4816 "was reset to 1 \n", num_unsol_na);
4865 num_unsol_na = 1; 4817 num_unsol_na = 1;
@@ -4868,12 +4820,12 @@ static int bond_check_params(struct bond_params *params)
4868 /* reset values for 802.3ad */ 4820 /* reset values for 802.3ad */
4869 if (bond_mode == BOND_MODE_8023AD) { 4821 if (bond_mode == BOND_MODE_8023AD) {
4870 if (!miimon) { 4822 if (!miimon) {
4871 printk(KERN_WARNING DRV_NAME 4823 pr_warning(DRV_NAME
4872 ": Warning: miimon must be specified, " 4824 ": Warning: miimon must be specified, "
4873 "otherwise bonding will not detect link " 4825 "otherwise bonding will not detect link "
4874 "failure, speed and duplex which are " 4826 "failure, speed and duplex which are "
4875 "essential for 802.3ad operation\n"); 4827 "essential for 802.3ad operation\n");
4876 printk(KERN_WARNING "Forcing miimon to 100msec\n"); 4828 pr_warning("Forcing miimon to 100msec\n");
4877 miimon = 100; 4829 miimon = 100;
4878 } 4830 }
4879 } 4831 }
@@ -4882,12 +4834,12 @@ static int bond_check_params(struct bond_params *params)
4882 if ((bond_mode == BOND_MODE_TLB) || 4834 if ((bond_mode == BOND_MODE_TLB) ||
4883 (bond_mode == BOND_MODE_ALB)) { 4835 (bond_mode == BOND_MODE_ALB)) {
4884 if (!miimon) { 4836 if (!miimon) {
4885 printk(KERN_WARNING DRV_NAME 4837 pr_warning(DRV_NAME
4886 ": Warning: miimon must be specified, " 4838 ": Warning: miimon must be specified, "
4887 "otherwise bonding will not detect link " 4839 "otherwise bonding will not detect link "
4888 "failure and link speed which are essential " 4840 "failure and link speed which are essential "
4889 "for TLB/ALB load balancing\n"); 4841 "for TLB/ALB load balancing\n");
4890 printk(KERN_WARNING "Forcing miimon to 100msec\n"); 4842 pr_warning("Forcing miimon to 100msec\n");
4891 miimon = 100; 4843 miimon = 100;
4892 } 4844 }
4893 } 4845 }
@@ -4907,7 +4859,7 @@ static int bond_check_params(struct bond_params *params)
4907 /* just warn the user the up/down delay will have 4859 /* just warn the user the up/down delay will have
4908 * no effect since miimon is zero... 4860 * no effect since miimon is zero...
4909 */ 4861 */
4910 printk(KERN_WARNING DRV_NAME 4862 pr_warning(DRV_NAME
4911 ": Warning: miimon module parameter not set " 4863 ": Warning: miimon module parameter not set "
4912 "and updelay (%d) or downdelay (%d) module " 4864 "and updelay (%d) or downdelay (%d) module "
4913 "parameter is set; updelay and downdelay have " 4865 "parameter is set; updelay and downdelay have "
@@ -4917,7 +4869,7 @@ static int bond_check_params(struct bond_params *params)
4917 } else { 4869 } else {
4918 /* don't allow arp monitoring */ 4870 /* don't allow arp monitoring */
4919 if (arp_interval) { 4871 if (arp_interval) {
4920 printk(KERN_WARNING DRV_NAME 4872 pr_warning(DRV_NAME
4921 ": Warning: miimon (%d) and arp_interval (%d) " 4873 ": Warning: miimon (%d) and arp_interval (%d) "
4922 "can't be used simultaneously, disabling ARP " 4874 "can't be used simultaneously, disabling ARP "
4923 "monitoring\n", 4875 "monitoring\n",
@@ -4926,7 +4878,7 @@ static int bond_check_params(struct bond_params *params)
4926 } 4878 }
4927 4879
4928 if ((updelay % miimon) != 0) { 4880 if ((updelay % miimon) != 0) {
4929 printk(KERN_WARNING DRV_NAME 4881 pr_warning(DRV_NAME
4930 ": Warning: updelay (%d) is not a multiple " 4882 ": Warning: updelay (%d) is not a multiple "
4931 "of miimon (%d), updelay rounded to %d ms\n", 4883 "of miimon (%d), updelay rounded to %d ms\n",
4932 updelay, miimon, (updelay / miimon) * miimon); 4884 updelay, miimon, (updelay / miimon) * miimon);
@@ -4935,7 +4887,7 @@ static int bond_check_params(struct bond_params *params)
4935 updelay /= miimon; 4887 updelay /= miimon;
4936 4888
4937 if ((downdelay % miimon) != 0) { 4889 if ((downdelay % miimon) != 0) {
4938 printk(KERN_WARNING DRV_NAME 4890 pr_warning(DRV_NAME
4939 ": Warning: downdelay (%d) is not a multiple " 4891 ": Warning: downdelay (%d) is not a multiple "
4940 "of miimon (%d), downdelay rounded to %d ms\n", 4892 "of miimon (%d), downdelay rounded to %d ms\n",
4941 downdelay, miimon, 4893 downdelay, miimon,
@@ -4946,7 +4898,7 @@ static int bond_check_params(struct bond_params *params)
4946 } 4898 }
4947 4899
4948 if (arp_interval < 0) { 4900 if (arp_interval < 0) {
4949 printk(KERN_WARNING DRV_NAME 4901 pr_warning(DRV_NAME
4950 ": Warning: arp_interval module parameter (%d) " 4902 ": Warning: arp_interval module parameter (%d) "
4951 ", not in range 0-%d, so it was reset to %d\n", 4903 ", not in range 0-%d, so it was reset to %d\n",
4952 arp_interval, INT_MAX, BOND_LINK_ARP_INTERV); 4904 arp_interval, INT_MAX, BOND_LINK_ARP_INTERV);
@@ -4959,7 +4911,7 @@ static int bond_check_params(struct bond_params *params)
4959 /* not complete check, but should be good enough to 4911 /* not complete check, but should be good enough to
4960 catch mistakes */ 4912 catch mistakes */
4961 if (!isdigit(arp_ip_target[arp_ip_count][0])) { 4913 if (!isdigit(arp_ip_target[arp_ip_count][0])) {
4962 printk(KERN_WARNING DRV_NAME 4914 pr_warning(DRV_NAME
4963 ": Warning: bad arp_ip_target module parameter " 4915 ": Warning: bad arp_ip_target module parameter "
4964 "(%s), ARP monitoring will not be performed\n", 4916 "(%s), ARP monitoring will not be performed\n",
4965 arp_ip_target[arp_ip_count]); 4917 arp_ip_target[arp_ip_count]);
@@ -4972,7 +4924,7 @@ static int bond_check_params(struct bond_params *params)
4972 4924
4973 if (arp_interval && !arp_ip_count) { 4925 if (arp_interval && !arp_ip_count) {
4974 /* don't allow arping if no arp_ip_target given... */ 4926 /* don't allow arping if no arp_ip_target given... */
4975 printk(KERN_WARNING DRV_NAME 4927 pr_warning(DRV_NAME
4976 ": Warning: arp_interval module parameter (%d) " 4928 ": Warning: arp_interval module parameter (%d) "
4977 "specified without providing an arp_ip_target " 4929 "specified without providing an arp_ip_target "
4978 "parameter, arp_interval was reset to 0\n", 4930 "parameter, arp_interval was reset to 0\n",
@@ -4982,12 +4934,12 @@ static int bond_check_params(struct bond_params *params)
4982 4934
4983 if (arp_validate) { 4935 if (arp_validate) {
4984 if (bond_mode != BOND_MODE_ACTIVEBACKUP) { 4936 if (bond_mode != BOND_MODE_ACTIVEBACKUP) {
4985 printk(KERN_ERR DRV_NAME 4937 pr_err(DRV_NAME
4986 ": arp_validate only supported in active-backup mode\n"); 4938 ": arp_validate only supported in active-backup mode\n");
4987 return -EINVAL; 4939 return -EINVAL;
4988 } 4940 }
4989 if (!arp_interval) { 4941 if (!arp_interval) {
4990 printk(KERN_ERR DRV_NAME 4942 pr_err(DRV_NAME
4991 ": arp_validate requires arp_interval\n"); 4943 ": arp_validate requires arp_interval\n");
4992 return -EINVAL; 4944 return -EINVAL;
4993 } 4945 }
@@ -4995,7 +4947,7 @@ static int bond_check_params(struct bond_params *params)
4995 arp_validate_value = bond_parse_parm(arp_validate, 4947 arp_validate_value = bond_parse_parm(arp_validate,
4996 arp_validate_tbl); 4948 arp_validate_tbl);
4997 if (arp_validate_value == -1) { 4949 if (arp_validate_value == -1) {
4998 printk(KERN_ERR DRV_NAME 4950 pr_err(DRV_NAME
4999 ": Error: invalid arp_validate \"%s\"\n", 4951 ": Error: invalid arp_validate \"%s\"\n",
5000 arp_validate == NULL ? "NULL" : arp_validate); 4952 arp_validate == NULL ? "NULL" : arp_validate);
5001 return -EINVAL; 4953 return -EINVAL;
@@ -5004,20 +4956,20 @@ static int bond_check_params(struct bond_params *params)
5004 arp_validate_value = 0; 4956 arp_validate_value = 0;
5005 4957
5006 if (miimon) { 4958 if (miimon) {
5007 printk(KERN_INFO DRV_NAME 4959 pr_info(DRV_NAME
5008 ": MII link monitoring set to %d ms\n", 4960 ": MII link monitoring set to %d ms\n",
5009 miimon); 4961 miimon);
5010 } else if (arp_interval) { 4962 } else if (arp_interval) {
5011 int i; 4963 int i;
5012 4964
5013 printk(KERN_INFO DRV_NAME 4965 pr_info(DRV_NAME ": ARP monitoring set to %d ms,"
5014 ": ARP monitoring set to %d ms, validate %s, with %d target(s):", 4966 " validate %s, with %d target(s):",
5015 arp_interval, 4967 arp_interval,
5016 arp_validate_tbl[arp_validate_value].modename, 4968 arp_validate_tbl[arp_validate_value].modename,
5017 arp_ip_count); 4969 arp_ip_count);
5018 4970
5019 for (i = 0; i < arp_ip_count; i++) 4971 for (i = 0; i < arp_ip_count; i++)
5020 printk (" %s", arp_ip_target[i]); 4972 printk(" %s", arp_ip_target[i]);
5021 4973
5022 printk("\n"); 4974 printk("\n");
5023 4975
@@ -5025,7 +4977,7 @@ static int bond_check_params(struct bond_params *params)
5025 /* miimon and arp_interval not set, we need one so things 4977 /* miimon and arp_interval not set, we need one so things
5026 * work as expected, see bonding.txt for details 4978 * work as expected, see bonding.txt for details
5027 */ 4979 */
5028 printk(KERN_WARNING DRV_NAME 4980 pr_warning(DRV_NAME
5029 ": Warning: either miimon or arp_interval and " 4981 ": Warning: either miimon or arp_interval and "
5030 "arp_ip_target module parameters must be specified, " 4982 "arp_ip_target module parameters must be specified, "
5031 "otherwise bonding will not detect link failures! see " 4983 "otherwise bonding will not detect link failures! see "
@@ -5036,7 +4988,7 @@ static int bond_check_params(struct bond_params *params)
5036 /* currently, using a primary only makes sense 4988 /* currently, using a primary only makes sense
5037 * in active backup, TLB or ALB modes 4989 * in active backup, TLB or ALB modes
5038 */ 4990 */
5039 printk(KERN_WARNING DRV_NAME 4991 pr_warning(DRV_NAME
5040 ": Warning: %s primary device specified but has no " 4992 ": Warning: %s primary device specified but has no "
5041 "effect in %s mode\n", 4993 "effect in %s mode\n",
5042 primary, bond_mode_name(bond_mode)); 4994 primary, bond_mode_name(bond_mode));
@@ -5047,14 +4999,14 @@ static int bond_check_params(struct bond_params *params)
5047 fail_over_mac_value = bond_parse_parm(fail_over_mac, 4999 fail_over_mac_value = bond_parse_parm(fail_over_mac,
5048 fail_over_mac_tbl); 5000 fail_over_mac_tbl);
5049 if (fail_over_mac_value == -1) { 5001 if (fail_over_mac_value == -1) {
5050 printk(KERN_ERR DRV_NAME 5002 pr_err(DRV_NAME
5051 ": Error: invalid fail_over_mac \"%s\"\n", 5003 ": Error: invalid fail_over_mac \"%s\"\n",
5052 arp_validate == NULL ? "NULL" : arp_validate); 5004 arp_validate == NULL ? "NULL" : arp_validate);
5053 return -EINVAL; 5005 return -EINVAL;
5054 } 5006 }
5055 5007
5056 if (bond_mode != BOND_MODE_ACTIVEBACKUP) 5008 if (bond_mode != BOND_MODE_ACTIVEBACKUP)
5057 printk(KERN_WARNING DRV_NAME 5009 pr_warning(DRV_NAME
5058 ": Warning: fail_over_mac only affects " 5010 ": Warning: fail_over_mac only affects "
5059 "active-backup mode.\n"); 5011 "active-backup mode.\n");
5060 } else { 5012 } else {
@@ -5120,9 +5072,8 @@ int bond_create(const char *name)
5120 if (name) { 5072 if (name) {
5121 list_for_each_entry(bond, &bond_dev_list, bond_list) 5073 list_for_each_entry(bond, &bond_dev_list, bond_list)
5122 if (strnicmp(bond->dev->name, name, IFNAMSIZ) == 0) { 5074 if (strnicmp(bond->dev->name, name, IFNAMSIZ) == 0) {
5123 printk(KERN_ERR DRV_NAME 5075 pr_err(DRV_NAME ": cannot add bond %s;"
5124 ": cannot add bond %s; it already exists\n", 5076 " it already exists\n", name);
5125 name);
5126 res = -EPERM; 5077 res = -EPERM;
5127 goto out_rtnl; 5078 goto out_rtnl;
5128 } 5079 }
@@ -5131,8 +5082,7 @@ int bond_create(const char *name)
5131 bond_dev = alloc_netdev(sizeof(struct bonding), name ? name : "", 5082 bond_dev = alloc_netdev(sizeof(struct bonding), name ? name : "",
5132 ether_setup); 5083 ether_setup);
5133 if (!bond_dev) { 5084 if (!bond_dev) {
5134 printk(KERN_ERR DRV_NAME 5085 pr_err(DRV_NAME ": %s: eek! can't alloc netdev!\n",
5135 ": %s: eek! can't alloc netdev!\n",
5136 name); 5086 name);
5137 res = -ENOMEM; 5087 res = -ENOMEM;
5138 goto out_rtnl; 5088 goto out_rtnl;
@@ -5151,18 +5101,16 @@ int bond_create(const char *name)
5151 */ 5101 */
5152 5102
5153 res = bond_init(bond_dev); 5103 res = bond_init(bond_dev);
5154 if (res < 0) { 5104 if (res < 0)
5155 goto out_netdev; 5105 goto out_netdev;
5156 }
5157 5106
5158 bond_set_lockdep_class(bond_dev); 5107 bond_set_lockdep_class(bond_dev);
5159 5108
5160 netif_carrier_off(bond_dev); 5109 netif_carrier_off(bond_dev);
5161 5110
5162 res = register_netdevice(bond_dev); 5111 res = register_netdevice(bond_dev);
5163 if (res < 0) { 5112 if (res < 0)
5164 goto out_bond; 5113 goto out_bond;
5165 }
5166 5114
5167 res = bond_create_sysfs_entry(netdev_priv(bond_dev)); 5115 res = bond_create_sysfs_entry(netdev_priv(bond_dev));
5168 if (res < 0) 5116 if (res < 0)
@@ -5187,12 +5135,11 @@ static int __init bonding_init(void)
5187 int i; 5135 int i;
5188 int res; 5136 int res;
5189 5137
5190 printk(KERN_INFO "%s", version); 5138 pr_info("%s", version);
5191 5139
5192 res = bond_check_params(&bonding_defaults); 5140 res = bond_check_params(&bonding_defaults);
5193 if (res) { 5141 if (res)
5194 goto out; 5142 goto out;
5195 }
5196 5143
5197 bond_create_proc_dir(); 5144 bond_create_proc_dir();
5198 5145
@@ -5239,13 +5186,3 @@ MODULE_LICENSE("GPL");
5239MODULE_VERSION(DRV_VERSION); 5186MODULE_VERSION(DRV_VERSION);
5240MODULE_DESCRIPTION(DRV_DESCRIPTION ", v" DRV_VERSION); 5187MODULE_DESCRIPTION(DRV_DESCRIPTION ", v" DRV_VERSION);
5241MODULE_AUTHOR("Thomas Davis, tadavis@lbl.gov and many others"); 5188MODULE_AUTHOR("Thomas Davis, tadavis@lbl.gov and many others");
5242MODULE_SUPPORTED_DEVICE("most ethernet devices");
5243
5244/*
5245 * Local variables:
5246 * c-indent-level: 8
5247 * c-basic-offset: 8
5248 * tab-width: 8
5249 * End:
5250 */
5251
diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c
index 72357597fa1b..ecb20208f67c 100644
--- a/drivers/net/bonding/bond_sysfs.c
+++ b/drivers/net/bonding/bond_sysfs.c
@@ -1,4 +1,3 @@
1
2/* 1/*
3 * Copyright(c) 2004-2005 Intel Corporation. All rights reserved. 2 * Copyright(c) 2004-2005 Intel Corporation. All rights reserved.
4 * 3 *
@@ -38,7 +37,7 @@
38 37
39#include "bonding.h" 38#include "bonding.h"
40 39
41#define to_dev(obj) container_of(obj,struct device,kobj) 40#define to_dev(obj) container_of(obj, struct device, kobj)
42#define to_bond(cd) ((struct bonding *)(netdev_priv(to_net_dev(cd)))) 41#define to_bond(cd) ((struct bonding *)(netdev_priv(to_net_dev(cd))))
43 42
44/*---------------------------- Declarations -------------------------------*/ 43/*---------------------------- Declarations -------------------------------*/
@@ -83,7 +82,8 @@ static ssize_t bonding_show_bonds(struct class *cls, char *buf)
83 * 82 *
84 */ 83 */
85 84
86static ssize_t bonding_store_bonds(struct class *cls, const char *buffer, size_t count) 85static ssize_t bonding_store_bonds(struct class *cls,
86 const char *buffer, size_t count)
87{ 87{
88 char command[IFNAMSIZ + 1] = {0, }; 88 char command[IFNAMSIZ + 1] = {0, };
89 char *ifname; 89 char *ifname;
@@ -97,11 +97,11 @@ static ssize_t bonding_store_bonds(struct class *cls, const char *buffer, size_t
97 goto err_no_cmd; 97 goto err_no_cmd;
98 98
99 if (command[0] == '+') { 99 if (command[0] == '+') {
100 printk(KERN_INFO DRV_NAME 100 pr_info(DRV_NAME
101 ": %s is being created...\n", ifname); 101 ": %s is being created...\n", ifname);
102 rv = bond_create(ifname); 102 rv = bond_create(ifname);
103 if (rv) { 103 if (rv) {
104 printk(KERN_INFO DRV_NAME ": Bond creation failed.\n"); 104 pr_info(DRV_NAME ": Bond creation failed.\n");
105 res = rv; 105 res = rv;
106 } 106 }
107 goto out; 107 goto out;
@@ -118,28 +118,28 @@ static ssize_t bonding_store_bonds(struct class *cls, const char *buffer, size_t
118 */ 118 */
119 if (atomic_read(&bond->dev->dev.kobj.kref.refcount) 119 if (atomic_read(&bond->dev->dev.kobj.kref.refcount)
120 > expected_refcount){ 120 > expected_refcount){
121 printk(KERN_INFO DRV_NAME 121 pr_info(DRV_NAME
122 ": Unable remove bond %s due to open references.\n", 122 ": Unable remove bond %s due to open references.\n",
123 ifname); 123 ifname);
124 res = -EPERM; 124 res = -EPERM;
125 goto out_unlock; 125 goto out_unlock;
126 } 126 }
127 printk(KERN_INFO DRV_NAME 127 pr_info(DRV_NAME
128 ": %s is being deleted...\n", 128 ": %s is being deleted...\n",
129 bond->dev->name); 129 bond->dev->name);
130 unregister_netdevice(bond->dev); 130 unregister_netdevice(bond->dev);
131 goto out_unlock; 131 goto out_unlock;
132 } 132 }
133 133
134 printk(KERN_ERR DRV_NAME 134 pr_err(DRV_NAME
135 ": unable to delete non-existent bond %s\n", ifname); 135 ": unable to delete non-existent bond %s\n", ifname);
136 res = -ENODEV; 136 res = -ENODEV;
137 goto out_unlock; 137 goto out_unlock;
138 } 138 }
139 139
140err_no_cmd: 140err_no_cmd:
141 printk(KERN_ERR DRV_NAME 141 pr_err(DRV_NAME ": no command found in bonding_masters."
142 ": no command found in bonding_masters. Use +ifname or -ifname.\n"); 142 " Use +ifname or -ifname.\n");
143 return -EPERM; 143 return -EPERM;
144 144
145out_unlock: 145out_unlock:
@@ -155,7 +155,8 @@ out:
155static CLASS_ATTR(bonding_masters, S_IWUSR | S_IRUGO, 155static CLASS_ATTR(bonding_masters, S_IWUSR | S_IRUGO,
156 bonding_show_bonds, bonding_store_bonds); 156 bonding_show_bonds, bonding_store_bonds);
157 157
158int bond_create_slave_symlinks(struct net_device *master, struct net_device *slave) 158int bond_create_slave_symlinks(struct net_device *master,
159 struct net_device *slave)
159{ 160{
160 char linkname[IFNAMSIZ+7]; 161 char linkname[IFNAMSIZ+7];
161 int ret = 0; 162 int ret = 0;
@@ -166,19 +167,20 @@ int bond_create_slave_symlinks(struct net_device *master, struct net_device *sla
166 if (ret) 167 if (ret)
167 return ret; 168 return ret;
168 /* next, create a link from the master to the slave */ 169 /* next, create a link from the master to the slave */
169 sprintf(linkname,"slave_%s",slave->name); 170 sprintf(linkname, "slave_%s", slave->name);
170 ret = sysfs_create_link(&(master->dev.kobj), &(slave->dev.kobj), 171 ret = sysfs_create_link(&(master->dev.kobj), &(slave->dev.kobj),
171 linkname); 172 linkname);
172 return ret; 173 return ret;
173 174
174} 175}
175 176
176void bond_destroy_slave_symlinks(struct net_device *master, struct net_device *slave) 177void bond_destroy_slave_symlinks(struct net_device *master,
178 struct net_device *slave)
177{ 179{
178 char linkname[IFNAMSIZ+7]; 180 char linkname[IFNAMSIZ+7];
179 181
180 sysfs_remove_link(&(slave->dev.kobj), "master"); 182 sysfs_remove_link(&(slave->dev.kobj), "master");
181 sprintf(linkname,"slave_%s",slave->name); 183 sprintf(linkname, "slave_%s", slave->name);
182 sysfs_remove_link(&(master->dev.kobj), linkname); 184 sysfs_remove_link(&(master->dev.kobj), linkname);
183} 185}
184 186
@@ -252,7 +254,7 @@ static ssize_t bonding_store_slaves(struct device *d,
252 read_lock(&bond->lock); 254 read_lock(&bond->lock);
253 bond_for_each_slave(bond, slave, i) 255 bond_for_each_slave(bond, slave, i)
254 if (strnicmp(slave->dev->name, ifname, IFNAMSIZ) == 0) { 256 if (strnicmp(slave->dev->name, ifname, IFNAMSIZ) == 0) {
255 printk(KERN_ERR DRV_NAME 257 pr_err(DRV_NAME
256 ": %s: Interface %s is already enslaved!\n", 258 ": %s: Interface %s is already enslaved!\n",
257 bond->dev->name, ifname); 259 bond->dev->name, ifname);
258 ret = -EPERM; 260 ret = -EPERM;
@@ -261,21 +263,20 @@ static ssize_t bonding_store_slaves(struct device *d,
261 } 263 }
262 264
263 read_unlock(&bond->lock); 265 read_unlock(&bond->lock);
264 printk(KERN_INFO DRV_NAME ": %s: Adding slave %s.\n", 266 pr_info(DRV_NAME ": %s: Adding slave %s.\n",
265 bond->dev->name, ifname); 267 bond->dev->name, ifname);
266 dev = dev_get_by_name(&init_net, ifname); 268 dev = dev_get_by_name(&init_net, ifname);
267 if (!dev) { 269 if (!dev) {
268 printk(KERN_INFO DRV_NAME 270 pr_info(DRV_NAME
269 ": %s: Interface %s does not exist!\n", 271 ": %s: Interface %s does not exist!\n",
270 bond->dev->name, ifname); 272 bond->dev->name, ifname);
271 ret = -EPERM; 273 ret = -EPERM;
272 goto out; 274 goto out;
273 } 275 } else
274 else
275 dev_put(dev); 276 dev_put(dev);
276 277
277 if (dev->flags & IFF_UP) { 278 if (dev->flags & IFF_UP) {
278 printk(KERN_ERR DRV_NAME 279 pr_err(DRV_NAME
279 ": %s: Error: Unable to enslave %s " 280 ": %s: Error: Unable to enslave %s "
280 "because it is already up.\n", 281 "because it is already up.\n",
281 bond->dev->name, dev->name); 282 bond->dev->name, dev->name);
@@ -302,9 +303,9 @@ static ssize_t bonding_store_slaves(struct device *d,
302 bond_for_each_slave(bond, slave, i) 303 bond_for_each_slave(bond, slave, i)
303 if (strnicmp(slave->dev->name, ifname, IFNAMSIZ) == 0) 304 if (strnicmp(slave->dev->name, ifname, IFNAMSIZ) == 0)
304 slave->original_mtu = original_mtu; 305 slave->original_mtu = original_mtu;
305 if (res) { 306 if (res)
306 ret = res; 307 ret = res;
307 } 308
308 goto out; 309 goto out;
309 } 310 }
310 311
@@ -318,7 +319,7 @@ static ssize_t bonding_store_slaves(struct device *d,
318 break; 319 break;
319 } 320 }
320 if (dev) { 321 if (dev) {
321 printk(KERN_INFO DRV_NAME ": %s: Removing slave %s\n", 322 pr_info(DRV_NAME ": %s: Removing slave %s\n",
322 bond->dev->name, dev->name); 323 bond->dev->name, dev->name);
323 res = bond_release(bond->dev, dev); 324 res = bond_release(bond->dev, dev);
324 if (res) { 325 if (res) {
@@ -327,9 +328,9 @@ static ssize_t bonding_store_slaves(struct device *d,
327 } 328 }
328 /* set the slave MTU to the default */ 329 /* set the slave MTU to the default */
329 dev_set_mtu(dev, original_mtu); 330 dev_set_mtu(dev, original_mtu);
330 } 331 } else {
331 else { 332 pr_err(DRV_NAME ": unable to remove non-existent"
332 printk(KERN_ERR DRV_NAME ": unable to remove non-existent slave %s for bond %s.\n", 333 " slave %s for bond %s.\n",
333 ifname, bond->dev->name); 334 ifname, bond->dev->name);
334 ret = -ENODEV; 335 ret = -ENODEV;
335 } 336 }
@@ -337,7 +338,7 @@ static ssize_t bonding_store_slaves(struct device *d,
337 } 338 }
338 339
339err_no_cmd: 340err_no_cmd:
340 printk(KERN_ERR DRV_NAME ": no command found in slaves file for bond %s. Use +ifname or -ifname.\n", bond->dev->name); 341 pr_err(DRV_NAME ": no command found in slaves file for bond %s. Use +ifname or -ifname.\n", bond->dev->name);
341 ret = -EPERM; 342 ret = -EPERM;
342 343
343out: 344out:
@@ -345,7 +346,8 @@ out:
345 return ret; 346 return ret;
346} 347}
347 348
348static DEVICE_ATTR(slaves, S_IRUGO | S_IWUSR, bonding_show_slaves, bonding_store_slaves); 349static DEVICE_ATTR(slaves, S_IRUGO | S_IWUSR, bonding_show_slaves,
350 bonding_store_slaves);
349 351
350/* 352/*
351 * Show and set the bonding mode. The bond interface must be down to 353 * Show and set the bonding mode. The bond interface must be down to
@@ -369,16 +371,15 @@ static ssize_t bonding_store_mode(struct device *d,
369 struct bonding *bond = to_bond(d); 371 struct bonding *bond = to_bond(d);
370 372
371 if (bond->dev->flags & IFF_UP) { 373 if (bond->dev->flags & IFF_UP) {
372 printk(KERN_ERR DRV_NAME 374 pr_err(DRV_NAME ": unable to update mode of %s"
373 ": unable to update mode of %s because interface is up.\n", 375 " because interface is up.\n", bond->dev->name);
374 bond->dev->name);
375 ret = -EPERM; 376 ret = -EPERM;
376 goto out; 377 goto out;
377 } 378 }
378 379
379 new_value = bond_parse_parm(buf, bond_mode_tbl); 380 new_value = bond_parse_parm(buf, bond_mode_tbl);
380 if (new_value < 0) { 381 if (new_value < 0) {
381 printk(KERN_ERR DRV_NAME 382 pr_err(DRV_NAME
382 ": %s: Ignoring invalid mode value %.*s.\n", 383 ": %s: Ignoring invalid mode value %.*s.\n",
383 bond->dev->name, 384 bond->dev->name,
384 (int)strlen(buf) - 1, buf); 385 (int)strlen(buf) - 1, buf);
@@ -393,17 +394,19 @@ static ssize_t bonding_store_mode(struct device *d,
393 394
394 bond->params.mode = new_value; 395 bond->params.mode = new_value;
395 bond_set_mode_ops(bond, bond->params.mode); 396 bond_set_mode_ops(bond, bond->params.mode);
396 printk(KERN_INFO DRV_NAME ": %s: setting mode to %s (%d).\n", 397 pr_info(DRV_NAME ": %s: setting mode to %s (%d).\n",
397 bond->dev->name, bond_mode_tbl[new_value].modename, new_value); 398 bond->dev->name, bond_mode_tbl[new_value].modename,
399 new_value);
398 } 400 }
399out: 401out:
400 return ret; 402 return ret;
401} 403}
402static DEVICE_ATTR(mode, S_IRUGO | S_IWUSR, bonding_show_mode, bonding_store_mode); 404static DEVICE_ATTR(mode, S_IRUGO | S_IWUSR,
405 bonding_show_mode, bonding_store_mode);
403 406
404/* 407/*
405 * Show and set the bonding transmit hash method. The bond interface must be down to 408 * Show and set the bonding transmit hash method.
406 * change the xmit hash policy. 409 * The bond interface must be down to change the xmit hash policy.
407 */ 410 */
408static ssize_t bonding_show_xmit_hash(struct device *d, 411static ssize_t bonding_show_xmit_hash(struct device *d,
409 struct device_attribute *attr, 412 struct device_attribute *attr,
@@ -424,7 +427,7 @@ static ssize_t bonding_store_xmit_hash(struct device *d,
424 struct bonding *bond = to_bond(d); 427 struct bonding *bond = to_bond(d);
425 428
426 if (bond->dev->flags & IFF_UP) { 429 if (bond->dev->flags & IFF_UP) {
427 printk(KERN_ERR DRV_NAME 430 pr_err(DRV_NAME
428 "%s: Interface is up. Unable to update xmit policy.\n", 431 "%s: Interface is up. Unable to update xmit policy.\n",
429 bond->dev->name); 432 bond->dev->name);
430 ret = -EPERM; 433 ret = -EPERM;
@@ -433,7 +436,7 @@ static ssize_t bonding_store_xmit_hash(struct device *d,
433 436
434 new_value = bond_parse_parm(buf, xmit_hashtype_tbl); 437 new_value = bond_parse_parm(buf, xmit_hashtype_tbl);
435 if (new_value < 0) { 438 if (new_value < 0) {
436 printk(KERN_ERR DRV_NAME 439 pr_err(DRV_NAME
437 ": %s: Ignoring invalid xmit hash policy value %.*s.\n", 440 ": %s: Ignoring invalid xmit hash policy value %.*s.\n",
438 bond->dev->name, 441 bond->dev->name,
439 (int)strlen(buf) - 1, buf); 442 (int)strlen(buf) - 1, buf);
@@ -442,13 +445,15 @@ static ssize_t bonding_store_xmit_hash(struct device *d,
442 } else { 445 } else {
443 bond->params.xmit_policy = new_value; 446 bond->params.xmit_policy = new_value;
444 bond_set_mode_ops(bond, bond->params.mode); 447 bond_set_mode_ops(bond, bond->params.mode);
445 printk(KERN_INFO DRV_NAME ": %s: setting xmit hash policy to %s (%d).\n", 448 pr_info(DRV_NAME ": %s: setting xmit hash policy to %s (%d).\n",
446 bond->dev->name, xmit_hashtype_tbl[new_value].modename, new_value); 449 bond->dev->name,
450 xmit_hashtype_tbl[new_value].modename, new_value);
447 } 451 }
448out: 452out:
449 return ret; 453 return ret;
450} 454}
451static DEVICE_ATTR(xmit_hash_policy, S_IRUGO | S_IWUSR, bonding_show_xmit_hash, bonding_store_xmit_hash); 455static DEVICE_ATTR(xmit_hash_policy, S_IRUGO | S_IWUSR,
456 bonding_show_xmit_hash, bonding_store_xmit_hash);
452 457
453/* 458/*
454 * Show and set arp_validate. 459 * Show and set arp_validate.
@@ -473,39 +478,41 @@ static ssize_t bonding_store_arp_validate(struct device *d,
473 478
474 new_value = bond_parse_parm(buf, arp_validate_tbl); 479 new_value = bond_parse_parm(buf, arp_validate_tbl);
475 if (new_value < 0) { 480 if (new_value < 0) {
476 printk(KERN_ERR DRV_NAME 481 pr_err(DRV_NAME
477 ": %s: Ignoring invalid arp_validate value %s\n", 482 ": %s: Ignoring invalid arp_validate value %s\n",
478 bond->dev->name, buf); 483 bond->dev->name, buf);
479 return -EINVAL; 484 return -EINVAL;
480 } 485 }
481 if (new_value && (bond->params.mode != BOND_MODE_ACTIVEBACKUP)) { 486 if (new_value && (bond->params.mode != BOND_MODE_ACTIVEBACKUP)) {
482 printk(KERN_ERR DRV_NAME 487 pr_err(DRV_NAME
483 ": %s: arp_validate only supported in active-backup mode.\n", 488 ": %s: arp_validate only supported in active-backup mode.\n",
484 bond->dev->name); 489 bond->dev->name);
485 return -EINVAL; 490 return -EINVAL;
486 } 491 }
487 printk(KERN_INFO DRV_NAME ": %s: setting arp_validate to %s (%d).\n", 492 pr_info(DRV_NAME ": %s: setting arp_validate to %s (%d).\n",
488 bond->dev->name, arp_validate_tbl[new_value].modename, 493 bond->dev->name, arp_validate_tbl[new_value].modename,
489 new_value); 494 new_value);
490 495
491 if (!bond->params.arp_validate && new_value) { 496 if (!bond->params.arp_validate && new_value)
492 bond_register_arp(bond); 497 bond_register_arp(bond);
493 } else if (bond->params.arp_validate && !new_value) { 498 else if (bond->params.arp_validate && !new_value)
494 bond_unregister_arp(bond); 499 bond_unregister_arp(bond);
495 }
496 500
497 bond->params.arp_validate = new_value; 501 bond->params.arp_validate = new_value;
498 502
499 return count; 503 return count;
500} 504}
501 505
502static DEVICE_ATTR(arp_validate, S_IRUGO | S_IWUSR, bonding_show_arp_validate, bonding_store_arp_validate); 506static DEVICE_ATTR(arp_validate, S_IRUGO | S_IWUSR, bonding_show_arp_validate,
507 bonding_store_arp_validate);
503 508
504/* 509/*
505 * Show and store fail_over_mac. User only allowed to change the 510 * Show and store fail_over_mac. User only allowed to change the
506 * value when there are no slaves. 511 * value when there are no slaves.
507 */ 512 */
508static ssize_t bonding_show_fail_over_mac(struct device *d, struct device_attribute *attr, char *buf) 513static ssize_t bonding_show_fail_over_mac(struct device *d,
514 struct device_attribute *attr,
515 char *buf)
509{ 516{
510 struct bonding *bond = to_bond(d); 517 struct bonding *bond = to_bond(d);
511 518
@@ -514,13 +521,15 @@ static ssize_t bonding_show_fail_over_mac(struct device *d, struct device_attrib
514 bond->params.fail_over_mac); 521 bond->params.fail_over_mac);
515} 522}
516 523
517static ssize_t bonding_store_fail_over_mac(struct device *d, struct device_attribute *attr, const char *buf, size_t count) 524static ssize_t bonding_store_fail_over_mac(struct device *d,
525 struct device_attribute *attr,
526 const char *buf, size_t count)
518{ 527{
519 int new_value; 528 int new_value;
520 struct bonding *bond = to_bond(d); 529 struct bonding *bond = to_bond(d);
521 530
522 if (bond->slave_cnt != 0) { 531 if (bond->slave_cnt != 0) {
523 printk(KERN_ERR DRV_NAME 532 pr_err(DRV_NAME
524 ": %s: Can't alter fail_over_mac with slaves in bond.\n", 533 ": %s: Can't alter fail_over_mac with slaves in bond.\n",
525 bond->dev->name); 534 bond->dev->name);
526 return -EPERM; 535 return -EPERM;
@@ -528,21 +537,22 @@ static ssize_t bonding_store_fail_over_mac(struct device *d, struct device_attri
528 537
529 new_value = bond_parse_parm(buf, fail_over_mac_tbl); 538 new_value = bond_parse_parm(buf, fail_over_mac_tbl);
530 if (new_value < 0) { 539 if (new_value < 0) {
531 printk(KERN_ERR DRV_NAME 540 pr_err(DRV_NAME
532 ": %s: Ignoring invalid fail_over_mac value %s.\n", 541 ": %s: Ignoring invalid fail_over_mac value %s.\n",
533 bond->dev->name, buf); 542 bond->dev->name, buf);
534 return -EINVAL; 543 return -EINVAL;
535 } 544 }
536 545
537 bond->params.fail_over_mac = new_value; 546 bond->params.fail_over_mac = new_value;
538 printk(KERN_INFO DRV_NAME ": %s: Setting fail_over_mac to %s (%d).\n", 547 pr_info(DRV_NAME ": %s: Setting fail_over_mac to %s (%d).\n",
539 bond->dev->name, fail_over_mac_tbl[new_value].modename, 548 bond->dev->name, fail_over_mac_tbl[new_value].modename,
540 new_value); 549 new_value);
541 550
542 return count; 551 return count;
543} 552}
544 553
545static DEVICE_ATTR(fail_over_mac, S_IRUGO | S_IWUSR, bonding_show_fail_over_mac, bonding_store_fail_over_mac); 554static DEVICE_ATTR(fail_over_mac, S_IRUGO | S_IWUSR,
555 bonding_show_fail_over_mac, bonding_store_fail_over_mac);
546 556
547/* 557/*
548 * Show and set the arp timer interval. There are two tricky bits 558 * Show and set the arp timer interval. There are two tricky bits
@@ -567,28 +577,28 @@ static ssize_t bonding_store_arp_interval(struct device *d,
567 struct bonding *bond = to_bond(d); 577 struct bonding *bond = to_bond(d);
568 578
569 if (sscanf(buf, "%d", &new_value) != 1) { 579 if (sscanf(buf, "%d", &new_value) != 1) {
570 printk(KERN_ERR DRV_NAME 580 pr_err(DRV_NAME
571 ": %s: no arp_interval value specified.\n", 581 ": %s: no arp_interval value specified.\n",
572 bond->dev->name); 582 bond->dev->name);
573 ret = -EINVAL; 583 ret = -EINVAL;
574 goto out; 584 goto out;
575 } 585 }
576 if (new_value < 0) { 586 if (new_value < 0) {
577 printk(KERN_ERR DRV_NAME 587 pr_err(DRV_NAME
578 ": %s: Invalid arp_interval value %d not in range 1-%d; rejected.\n", 588 ": %s: Invalid arp_interval value %d not in range 1-%d; rejected.\n",
579 bond->dev->name, new_value, INT_MAX); 589 bond->dev->name, new_value, INT_MAX);
580 ret = -EINVAL; 590 ret = -EINVAL;
581 goto out; 591 goto out;
582 } 592 }
583 593
584 printk(KERN_INFO DRV_NAME 594 pr_info(DRV_NAME
585 ": %s: Setting ARP monitoring interval to %d.\n", 595 ": %s: Setting ARP monitoring interval to %d.\n",
586 bond->dev->name, new_value); 596 bond->dev->name, new_value);
587 bond->params.arp_interval = new_value; 597 bond->params.arp_interval = new_value;
588 if (bond->params.arp_interval) 598 if (bond->params.arp_interval)
589 bond->dev->priv_flags |= IFF_MASTER_ARPMON; 599 bond->dev->priv_flags |= IFF_MASTER_ARPMON;
590 if (bond->params.miimon) { 600 if (bond->params.miimon) {
591 printk(KERN_INFO DRV_NAME 601 pr_info(DRV_NAME
592 ": %s: ARP monitoring cannot be used with MII monitoring. " 602 ": %s: ARP monitoring cannot be used with MII monitoring. "
593 "%s Disabling MII monitoring.\n", 603 "%s Disabling MII monitoring.\n",
594 bond->dev->name, bond->dev->name); 604 bond->dev->name, bond->dev->name);
@@ -599,7 +609,7 @@ static ssize_t bonding_store_arp_interval(struct device *d,
599 } 609 }
600 } 610 }
601 if (!bond->params.arp_targets[0]) { 611 if (!bond->params.arp_targets[0]) {
602 printk(KERN_INFO DRV_NAME 612 pr_info(DRV_NAME
603 ": %s: ARP monitoring has been set up, " 613 ": %s: ARP monitoring has been set up, "
604 "but no ARP targets have been specified.\n", 614 "but no ARP targets have been specified.\n",
605 bond->dev->name); 615 bond->dev->name);
@@ -625,7 +635,8 @@ static ssize_t bonding_store_arp_interval(struct device *d,
625out: 635out:
626 return ret; 636 return ret;
627} 637}
628static DEVICE_ATTR(arp_interval, S_IRUGO | S_IWUSR , bonding_show_arp_interval, bonding_store_arp_interval); 638static DEVICE_ATTR(arp_interval, S_IRUGO | S_IWUSR,
639 bonding_show_arp_interval, bonding_store_arp_interval);
629 640
630/* 641/*
631 * Show and set the arp targets. 642 * Show and set the arp targets.
@@ -661,7 +672,7 @@ static ssize_t bonding_store_arp_targets(struct device *d,
661 /* look for adds */ 672 /* look for adds */
662 if (buf[0] == '+') { 673 if (buf[0] == '+') {
663 if ((newtarget == 0) || (newtarget == htonl(INADDR_BROADCAST))) { 674 if ((newtarget == 0) || (newtarget == htonl(INADDR_BROADCAST))) {
664 printk(KERN_ERR DRV_NAME 675 pr_err(DRV_NAME
665 ": %s: invalid ARP target %pI4 specified for addition\n", 676 ": %s: invalid ARP target %pI4 specified for addition\n",
666 bond->dev->name, &newtarget); 677 bond->dev->name, &newtarget);
667 ret = -EINVAL; 678 ret = -EINVAL;
@@ -670,14 +681,14 @@ static ssize_t bonding_store_arp_targets(struct device *d,
670 /* look for an empty slot to put the target in, and check for dupes */ 681 /* look for an empty slot to put the target in, and check for dupes */
671 for (i = 0; (i < BOND_MAX_ARP_TARGETS) && !done; i++) { 682 for (i = 0; (i < BOND_MAX_ARP_TARGETS) && !done; i++) {
672 if (targets[i] == newtarget) { /* duplicate */ 683 if (targets[i] == newtarget) { /* duplicate */
673 printk(KERN_ERR DRV_NAME 684 pr_err(DRV_NAME
674 ": %s: ARP target %pI4 is already present\n", 685 ": %s: ARP target %pI4 is already present\n",
675 bond->dev->name, &newtarget); 686 bond->dev->name, &newtarget);
676 ret = -EINVAL; 687 ret = -EINVAL;
677 goto out; 688 goto out;
678 } 689 }
679 if (targets[i] == 0) { 690 if (targets[i] == 0) {
680 printk(KERN_INFO DRV_NAME 691 pr_info(DRV_NAME
681 ": %s: adding ARP target %pI4.\n", 692 ": %s: adding ARP target %pI4.\n",
682 bond->dev->name, &newtarget); 693 bond->dev->name, &newtarget);
683 done = 1; 694 done = 1;
@@ -685,17 +696,16 @@ static ssize_t bonding_store_arp_targets(struct device *d,
685 } 696 }
686 } 697 }
687 if (!done) { 698 if (!done) {
688 printk(KERN_ERR DRV_NAME 699 pr_err(DRV_NAME
689 ": %s: ARP target table is full!\n", 700 ": %s: ARP target table is full!\n",
690 bond->dev->name); 701 bond->dev->name);
691 ret = -EINVAL; 702 ret = -EINVAL;
692 goto out; 703 goto out;
693 } 704 }
694 705
695 } 706 } else if (buf[0] == '-') {
696 else if (buf[0] == '-') {
697 if ((newtarget == 0) || (newtarget == htonl(INADDR_BROADCAST))) { 707 if ((newtarget == 0) || (newtarget == htonl(INADDR_BROADCAST))) {
698 printk(KERN_ERR DRV_NAME 708 pr_err(DRV_NAME
699 ": %s: invalid ARP target %pI4 specified for removal\n", 709 ": %s: invalid ARP target %pI4 specified for removal\n",
700 bond->dev->name, &newtarget); 710 bond->dev->name, &newtarget);
701 ret = -EINVAL; 711 ret = -EINVAL;
@@ -705,7 +715,7 @@ static ssize_t bonding_store_arp_targets(struct device *d,
705 for (i = 0; (i < BOND_MAX_ARP_TARGETS) && !done; i++) { 715 for (i = 0; (i < BOND_MAX_ARP_TARGETS) && !done; i++) {
706 if (targets[i] == newtarget) { 716 if (targets[i] == newtarget) {
707 int j; 717 int j;
708 printk(KERN_INFO DRV_NAME 718 pr_info(DRV_NAME
709 ": %s: removing ARP target %pI4.\n", 719 ": %s: removing ARP target %pI4.\n",
710 bond->dev->name, &newtarget); 720 bond->dev->name, &newtarget);
711 for (j = i; (j < (BOND_MAX_ARP_TARGETS-1)) && targets[j+1]; j++) 721 for (j = i; (j < (BOND_MAX_ARP_TARGETS-1)) && targets[j+1]; j++)
@@ -716,15 +726,15 @@ static ssize_t bonding_store_arp_targets(struct device *d,
716 } 726 }
717 } 727 }
718 if (!done) { 728 if (!done) {
719 printk(KERN_INFO DRV_NAME 729 pr_info(DRV_NAME
720 ": %s: unable to remove nonexistent ARP target %pI4.\n", 730 ": %s: unable to remove nonexistent ARP target %pI4.\n",
721 bond->dev->name, &newtarget); 731 bond->dev->name, &newtarget);
722 ret = -EINVAL; 732 ret = -EINVAL;
723 goto out; 733 goto out;
724 } 734 }
725 } 735 } else {
726 else { 736 pr_err(DRV_NAME ": no command found in arp_ip_targets file"
727 printk(KERN_ERR DRV_NAME ": no command found in arp_ip_targets file for bond %s. Use +<addr> or -<addr>.\n", 737 " for bond %s. Use +<addr> or -<addr>.\n",
728 bond->dev->name); 738 bond->dev->name);
729 ret = -EPERM; 739 ret = -EPERM;
730 goto out; 740 goto out;
@@ -757,7 +767,7 @@ static ssize_t bonding_store_downdelay(struct device *d,
757 struct bonding *bond = to_bond(d); 767 struct bonding *bond = to_bond(d);
758 768
759 if (!(bond->params.miimon)) { 769 if (!(bond->params.miimon)) {
760 printk(KERN_ERR DRV_NAME 770 pr_err(DRV_NAME
761 ": %s: Unable to set down delay as MII monitoring is disabled\n", 771 ": %s: Unable to set down delay as MII monitoring is disabled\n",
762 bond->dev->name); 772 bond->dev->name);
763 ret = -EPERM; 773 ret = -EPERM;
@@ -765,14 +775,14 @@ static ssize_t bonding_store_downdelay(struct device *d,
765 } 775 }
766 776
767 if (sscanf(buf, "%d", &new_value) != 1) { 777 if (sscanf(buf, "%d", &new_value) != 1) {
768 printk(KERN_ERR DRV_NAME 778 pr_err(DRV_NAME
769 ": %s: no down delay value specified.\n", 779 ": %s: no down delay value specified.\n",
770 bond->dev->name); 780 bond->dev->name);
771 ret = -EINVAL; 781 ret = -EINVAL;
772 goto out; 782 goto out;
773 } 783 }
774 if (new_value < 0) { 784 if (new_value < 0) {
775 printk(KERN_ERR DRV_NAME 785 pr_err(DRV_NAME
776 ": %s: Invalid down delay value %d not in range %d-%d; rejected.\n", 786 ": %s: Invalid down delay value %d not in range %d-%d; rejected.\n",
777 bond->dev->name, new_value, 1, INT_MAX); 787 bond->dev->name, new_value, 1, INT_MAX);
778 ret = -EINVAL; 788 ret = -EINVAL;
@@ -787,15 +797,17 @@ static ssize_t bonding_store_downdelay(struct device *d,
787 bond->params.miimon); 797 bond->params.miimon);
788 } 798 }
789 bond->params.downdelay = new_value / bond->params.miimon; 799 bond->params.downdelay = new_value / bond->params.miimon;
790 printk(KERN_INFO DRV_NAME ": %s: Setting down delay to %d.\n", 800 pr_info(DRV_NAME ": %s: Setting down delay to %d.\n",
791 bond->dev->name, bond->params.downdelay * bond->params.miimon); 801 bond->dev->name,
802 bond->params.downdelay * bond->params.miimon);
792 803
793 } 804 }
794 805
795out: 806out:
796 return ret; 807 return ret;
797} 808}
798static DEVICE_ATTR(downdelay, S_IRUGO | S_IWUSR , bonding_show_downdelay, bonding_store_downdelay); 809static DEVICE_ATTR(downdelay, S_IRUGO | S_IWUSR,
810 bonding_show_downdelay, bonding_store_downdelay);
799 811
800static ssize_t bonding_show_updelay(struct device *d, 812static ssize_t bonding_show_updelay(struct device *d,
801 struct device_attribute *attr, 813 struct device_attribute *attr,
@@ -815,7 +827,7 @@ static ssize_t bonding_store_updelay(struct device *d,
815 struct bonding *bond = to_bond(d); 827 struct bonding *bond = to_bond(d);
816 828
817 if (!(bond->params.miimon)) { 829 if (!(bond->params.miimon)) {
818 printk(KERN_ERR DRV_NAME 830 pr_err(DRV_NAME
819 ": %s: Unable to set up delay as MII monitoring is disabled\n", 831 ": %s: Unable to set up delay as MII monitoring is disabled\n",
820 bond->dev->name); 832 bond->dev->name);
821 ret = -EPERM; 833 ret = -EPERM;
@@ -823,14 +835,14 @@ static ssize_t bonding_store_updelay(struct device *d,
823 } 835 }
824 836
825 if (sscanf(buf, "%d", &new_value) != 1) { 837 if (sscanf(buf, "%d", &new_value) != 1) {
826 printk(KERN_ERR DRV_NAME 838 pr_err(DRV_NAME
827 ": %s: no up delay value specified.\n", 839 ": %s: no up delay value specified.\n",
828 bond->dev->name); 840 bond->dev->name);
829 ret = -EINVAL; 841 ret = -EINVAL;
830 goto out; 842 goto out;
831 } 843 }
832 if (new_value < 0) { 844 if (new_value < 0) {
833 printk(KERN_ERR DRV_NAME 845 pr_err(DRV_NAME
834 ": %s: Invalid down delay value %d not in range %d-%d; rejected.\n", 846 ": %s: Invalid down delay value %d not in range %d-%d; rejected.\n",
835 bond->dev->name, new_value, 1, INT_MAX); 847 bond->dev->name, new_value, 1, INT_MAX);
836 ret = -EINVAL; 848 ret = -EINVAL;
@@ -845,7 +857,7 @@ static ssize_t bonding_store_updelay(struct device *d,
845 bond->params.miimon); 857 bond->params.miimon);
846 } 858 }
847 bond->params.updelay = new_value / bond->params.miimon; 859 bond->params.updelay = new_value / bond->params.miimon;
848 printk(KERN_INFO DRV_NAME ": %s: Setting up delay to %d.\n", 860 pr_info(DRV_NAME ": %s: Setting up delay to %d.\n",
849 bond->dev->name, bond->params.updelay * bond->params.miimon); 861 bond->dev->name, bond->params.updelay * bond->params.miimon);
850 862
851 } 863 }
@@ -853,7 +865,8 @@ static ssize_t bonding_store_updelay(struct device *d,
853out: 865out:
854 return ret; 866 return ret;
855} 867}
856static DEVICE_ATTR(updelay, S_IRUGO | S_IWUSR , bonding_show_updelay, bonding_store_updelay); 868static DEVICE_ATTR(updelay, S_IRUGO | S_IWUSR,
869 bonding_show_updelay, bonding_store_updelay);
857 870
858/* 871/*
859 * Show and set the LACP interval. Interface must be down, and the mode 872 * Show and set the LACP interval. Interface must be down, and the mode
@@ -878,7 +891,7 @@ static ssize_t bonding_store_lacp(struct device *d,
878 struct bonding *bond = to_bond(d); 891 struct bonding *bond = to_bond(d);
879 892
880 if (bond->dev->flags & IFF_UP) { 893 if (bond->dev->flags & IFF_UP) {
881 printk(KERN_ERR DRV_NAME 894 pr_err(DRV_NAME
882 ": %s: Unable to update LACP rate because interface is up.\n", 895 ": %s: Unable to update LACP rate because interface is up.\n",
883 bond->dev->name); 896 bond->dev->name);
884 ret = -EPERM; 897 ret = -EPERM;
@@ -886,7 +899,7 @@ static ssize_t bonding_store_lacp(struct device *d,
886 } 899 }
887 900
888 if (bond->params.mode != BOND_MODE_8023AD) { 901 if (bond->params.mode != BOND_MODE_8023AD) {
889 printk(KERN_ERR DRV_NAME 902 pr_err(DRV_NAME
890 ": %s: Unable to update LACP rate because bond is not in 802.3ad mode.\n", 903 ": %s: Unable to update LACP rate because bond is not in 802.3ad mode.\n",
891 bond->dev->name); 904 bond->dev->name);
892 ret = -EPERM; 905 ret = -EPERM;
@@ -897,19 +910,20 @@ static ssize_t bonding_store_lacp(struct device *d,
897 910
898 if ((new_value == 1) || (new_value == 0)) { 911 if ((new_value == 1) || (new_value == 0)) {
899 bond->params.lacp_fast = new_value; 912 bond->params.lacp_fast = new_value;
900 printk(KERN_INFO DRV_NAME 913 pr_info(DRV_NAME ": %s: Setting LACP rate to %s (%d).\n",
901 ": %s: Setting LACP rate to %s (%d).\n", 914 bond->dev->name, bond_lacp_tbl[new_value].modename,
902 bond->dev->name, bond_lacp_tbl[new_value].modename, new_value); 915 new_value);
903 } else { 916 } else {
904 printk(KERN_ERR DRV_NAME 917 pr_err(DRV_NAME
905 ": %s: Ignoring invalid LACP rate value %.*s.\n", 918 ": %s: Ignoring invalid LACP rate value %.*s.\n",
906 bond->dev->name, (int)strlen(buf) - 1, buf); 919 bond->dev->name, (int)strlen(buf) - 1, buf);
907 ret = -EINVAL; 920 ret = -EINVAL;
908 } 921 }
909out: 922out:
910 return ret; 923 return ret;
911} 924}
912static DEVICE_ATTR(lacp_rate, S_IRUGO | S_IWUSR, bonding_show_lacp, bonding_store_lacp); 925static DEVICE_ATTR(lacp_rate, S_IRUGO | S_IWUSR,
926 bonding_show_lacp, bonding_store_lacp);
913 927
914static ssize_t bonding_show_ad_select(struct device *d, 928static ssize_t bonding_show_ad_select(struct device *d,
915 struct device_attribute *attr, 929 struct device_attribute *attr,
@@ -931,7 +945,7 @@ static ssize_t bonding_store_ad_select(struct device *d,
931 struct bonding *bond = to_bond(d); 945 struct bonding *bond = to_bond(d);
932 946
933 if (bond->dev->flags & IFF_UP) { 947 if (bond->dev->flags & IFF_UP) {
934 printk(KERN_ERR DRV_NAME 948 pr_err(DRV_NAME
935 ": %s: Unable to update ad_select because interface " 949 ": %s: Unable to update ad_select because interface "
936 "is up.\n", bond->dev->name); 950 "is up.\n", bond->dev->name);
937 ret = -EPERM; 951 ret = -EPERM;
@@ -942,12 +956,12 @@ static ssize_t bonding_store_ad_select(struct device *d,
942 956
943 if (new_value != -1) { 957 if (new_value != -1) {
944 bond->params.ad_select = new_value; 958 bond->params.ad_select = new_value;
945 printk(KERN_INFO DRV_NAME 959 pr_info(DRV_NAME
946 ": %s: Setting ad_select to %s (%d).\n", 960 ": %s: Setting ad_select to %s (%d).\n",
947 bond->dev->name, ad_select_tbl[new_value].modename, 961 bond->dev->name, ad_select_tbl[new_value].modename,
948 new_value); 962 new_value);
949 } else { 963 } else {
950 printk(KERN_ERR DRV_NAME 964 pr_err(DRV_NAME
951 ": %s: Ignoring invalid ad_select value %.*s.\n", 965 ": %s: Ignoring invalid ad_select value %.*s.\n",
952 bond->dev->name, (int)strlen(buf) - 1, buf); 966 bond->dev->name, (int)strlen(buf) - 1, buf);
953 ret = -EINVAL; 967 ret = -EINVAL;
@@ -955,8 +969,8 @@ static ssize_t bonding_store_ad_select(struct device *d,
955out: 969out:
956 return ret; 970 return ret;
957} 971}
958 972static DEVICE_ATTR(ad_select, S_IRUGO | S_IWUSR,
959static DEVICE_ATTR(ad_select, S_IRUGO | S_IWUSR, bonding_show_ad_select, bonding_store_ad_select); 973 bonding_show_ad_select, bonding_store_ad_select);
960 974
961/* 975/*
962 * Show and set the number of grat ARP to send after a failover event. 976 * Show and set the number of grat ARP to send after a failover event.
@@ -978,14 +992,14 @@ static ssize_t bonding_store_n_grat_arp(struct device *d,
978 struct bonding *bond = to_bond(d); 992 struct bonding *bond = to_bond(d);
979 993
980 if (sscanf(buf, "%d", &new_value) != 1) { 994 if (sscanf(buf, "%d", &new_value) != 1) {
981 printk(KERN_ERR DRV_NAME 995 pr_err(DRV_NAME
982 ": %s: no num_grat_arp value specified.\n", 996 ": %s: no num_grat_arp value specified.\n",
983 bond->dev->name); 997 bond->dev->name);
984 ret = -EINVAL; 998 ret = -EINVAL;
985 goto out; 999 goto out;
986 } 1000 }
987 if (new_value < 0 || new_value > 255) { 1001 if (new_value < 0 || new_value > 255) {
988 printk(KERN_ERR DRV_NAME 1002 pr_err(DRV_NAME
989 ": %s: Invalid num_grat_arp value %d not in range 0-255; rejected.\n", 1003 ": %s: Invalid num_grat_arp value %d not in range 0-255; rejected.\n",
990 bond->dev->name, new_value); 1004 bond->dev->name, new_value);
991 ret = -EINVAL; 1005 ret = -EINVAL;
@@ -996,10 +1010,11 @@ static ssize_t bonding_store_n_grat_arp(struct device *d,
996out: 1010out:
997 return ret; 1011 return ret;
998} 1012}
999static DEVICE_ATTR(num_grat_arp, S_IRUGO | S_IWUSR, bonding_show_n_grat_arp, bonding_store_n_grat_arp); 1013static DEVICE_ATTR(num_grat_arp, S_IRUGO | S_IWUSR,
1014 bonding_show_n_grat_arp, bonding_store_n_grat_arp);
1000 1015
1001/* 1016/*
1002 * Show and set the number of unsolicted NA's to send after a failover event. 1017 * Show and set the number of unsolicited NA's to send after a failover event.
1003 */ 1018 */
1004static ssize_t bonding_show_n_unsol_na(struct device *d, 1019static ssize_t bonding_show_n_unsol_na(struct device *d,
1005 struct device_attribute *attr, 1020 struct device_attribute *attr,
@@ -1018,25 +1033,26 @@ static ssize_t bonding_store_n_unsol_na(struct device *d,
1018 struct bonding *bond = to_bond(d); 1033 struct bonding *bond = to_bond(d);
1019 1034
1020 if (sscanf(buf, "%d", &new_value) != 1) { 1035 if (sscanf(buf, "%d", &new_value) != 1) {
1021 printk(KERN_ERR DRV_NAME 1036 pr_err(DRV_NAME
1022 ": %s: no num_unsol_na value specified.\n", 1037 ": %s: no num_unsol_na value specified.\n",
1023 bond->dev->name); 1038 bond->dev->name);
1024 ret = -EINVAL; 1039 ret = -EINVAL;
1025 goto out; 1040 goto out;
1026 } 1041 }
1042
1027 if (new_value < 0 || new_value > 255) { 1043 if (new_value < 0 || new_value > 255) {
1028 printk(KERN_ERR DRV_NAME 1044 pr_err(DRV_NAME
1029 ": %s: Invalid num_unsol_na value %d not in range 0-255; rejected.\n", 1045 ": %s: Invalid num_unsol_na value %d not in range 0-255; rejected.\n",
1030 bond->dev->name, new_value); 1046 bond->dev->name, new_value);
1031 ret = -EINVAL; 1047 ret = -EINVAL;
1032 goto out; 1048 goto out;
1033 } else { 1049 } else
1034 bond->params.num_unsol_na = new_value; 1050 bond->params.num_unsol_na = new_value;
1035 }
1036out: 1051out:
1037 return ret; 1052 return ret;
1038} 1053}
1039static DEVICE_ATTR(num_unsol_na, S_IRUGO | S_IWUSR, bonding_show_n_unsol_na, bonding_store_n_unsol_na); 1054static DEVICE_ATTR(num_unsol_na, S_IRUGO | S_IWUSR,
1055 bonding_show_n_unsol_na, bonding_store_n_unsol_na);
1040 1056
1041/* 1057/*
1042 * Show and set the MII monitor interval. There are two tricky bits 1058 * Show and set the MII monitor interval. There are two tricky bits
@@ -1061,37 +1077,37 @@ static ssize_t bonding_store_miimon(struct device *d,
1061 struct bonding *bond = to_bond(d); 1077 struct bonding *bond = to_bond(d);
1062 1078
1063 if (sscanf(buf, "%d", &new_value) != 1) { 1079 if (sscanf(buf, "%d", &new_value) != 1) {
1064 printk(KERN_ERR DRV_NAME 1080 pr_err(DRV_NAME
1065 ": %s: no miimon value specified.\n", 1081 ": %s: no miimon value specified.\n",
1066 bond->dev->name); 1082 bond->dev->name);
1067 ret = -EINVAL; 1083 ret = -EINVAL;
1068 goto out; 1084 goto out;
1069 } 1085 }
1070 if (new_value < 0) { 1086 if (new_value < 0) {
1071 printk(KERN_ERR DRV_NAME 1087 pr_err(DRV_NAME
1072 ": %s: Invalid miimon value %d not in range %d-%d; rejected.\n", 1088 ": %s: Invalid miimon value %d not in range %d-%d; rejected.\n",
1073 bond->dev->name, new_value, 1, INT_MAX); 1089 bond->dev->name, new_value, 1, INT_MAX);
1074 ret = -EINVAL; 1090 ret = -EINVAL;
1075 goto out; 1091 goto out;
1076 } else { 1092 } else {
1077 printk(KERN_INFO DRV_NAME 1093 pr_info(DRV_NAME
1078 ": %s: Setting MII monitoring interval to %d.\n", 1094 ": %s: Setting MII monitoring interval to %d.\n",
1079 bond->dev->name, new_value); 1095 bond->dev->name, new_value);
1080 bond->params.miimon = new_value; 1096 bond->params.miimon = new_value;
1081 if(bond->params.updelay) 1097 if (bond->params.updelay)
1082 printk(KERN_INFO DRV_NAME 1098 pr_info(DRV_NAME
1083 ": %s: Note: Updating updelay (to %d) " 1099 ": %s: Note: Updating updelay (to %d) "
1084 "since it is a multiple of the miimon value.\n", 1100 "since it is a multiple of the miimon value.\n",
1085 bond->dev->name, 1101 bond->dev->name,
1086 bond->params.updelay * bond->params.miimon); 1102 bond->params.updelay * bond->params.miimon);
1087 if(bond->params.downdelay) 1103 if (bond->params.downdelay)
1088 printk(KERN_INFO DRV_NAME 1104 pr_info(DRV_NAME
1089 ": %s: Note: Updating downdelay (to %d) " 1105 ": %s: Note: Updating downdelay (to %d) "
1090 "since it is a multiple of the miimon value.\n", 1106 "since it is a multiple of the miimon value.\n",
1091 bond->dev->name, 1107 bond->dev->name,
1092 bond->params.downdelay * bond->params.miimon); 1108 bond->params.downdelay * bond->params.miimon);
1093 if (bond->params.arp_interval) { 1109 if (bond->params.arp_interval) {
1094 printk(KERN_INFO DRV_NAME 1110 pr_info(DRV_NAME
1095 ": %s: MII monitoring cannot be used with " 1111 ": %s: MII monitoring cannot be used with "
1096 "ARP monitoring. Disabling ARP monitoring...\n", 1112 "ARP monitoring. Disabling ARP monitoring...\n",
1097 bond->dev->name); 1113 bond->dev->name);
@@ -1125,7 +1141,8 @@ static ssize_t bonding_store_miimon(struct device *d,
1125out: 1141out:
1126 return ret; 1142 return ret;
1127} 1143}
1128static DEVICE_ATTR(miimon, S_IRUGO | S_IWUSR, bonding_show_miimon, bonding_store_miimon); 1144static DEVICE_ATTR(miimon, S_IRUGO | S_IWUSR,
1145 bonding_show_miimon, bonding_store_miimon);
1129 1146
1130/* 1147/*
1131 * Show and set the primary slave. The store function is much 1148 * Show and set the primary slave. The store function is much
@@ -1161,7 +1178,7 @@ static ssize_t bonding_store_primary(struct device *d,
1161 write_lock_bh(&bond->curr_slave_lock); 1178 write_lock_bh(&bond->curr_slave_lock);
1162 1179
1163 if (!USES_PRIMARY(bond->params.mode)) { 1180 if (!USES_PRIMARY(bond->params.mode)) {
1164 printk(KERN_INFO DRV_NAME 1181 pr_info(DRV_NAME
1165 ": %s: Unable to set primary slave; %s is in mode %d\n", 1182 ": %s: Unable to set primary slave; %s is in mode %d\n",
1166 bond->dev->name, bond->dev->name, bond->params.mode); 1183 bond->dev->name, bond->dev->name, bond->params.mode);
1167 } else { 1184 } else {
@@ -1169,7 +1186,7 @@ static ssize_t bonding_store_primary(struct device *d,
1169 if (strnicmp 1186 if (strnicmp
1170 (slave->dev->name, buf, 1187 (slave->dev->name, buf,
1171 strlen(slave->dev->name)) == 0) { 1188 strlen(slave->dev->name)) == 0) {
1172 printk(KERN_INFO DRV_NAME 1189 pr_info(DRV_NAME
1173 ": %s: Setting %s as primary slave.\n", 1190 ": %s: Setting %s as primary slave.\n",
1174 bond->dev->name, slave->dev->name); 1191 bond->dev->name, slave->dev->name);
1175 bond->primary_slave = slave; 1192 bond->primary_slave = slave;
@@ -1181,13 +1198,13 @@ static ssize_t bonding_store_primary(struct device *d,
1181 /* if we got here, then we didn't match the name of any slave */ 1198 /* if we got here, then we didn't match the name of any slave */
1182 1199
1183 if (strlen(buf) == 0 || buf[0] == '\n') { 1200 if (strlen(buf) == 0 || buf[0] == '\n') {
1184 printk(KERN_INFO DRV_NAME 1201 pr_info(DRV_NAME
1185 ": %s: Setting primary slave to None.\n", 1202 ": %s: Setting primary slave to None.\n",
1186 bond->dev->name); 1203 bond->dev->name);
1187 bond->primary_slave = NULL; 1204 bond->primary_slave = NULL;
1188 bond_select_active_slave(bond); 1205 bond_select_active_slave(bond);
1189 } else { 1206 } else {
1190 printk(KERN_INFO DRV_NAME 1207 pr_info(DRV_NAME
1191 ": %s: Unable to set %.*s as primary slave as it is not a slave.\n", 1208 ": %s: Unable to set %.*s as primary slave as it is not a slave.\n",
1192 bond->dev->name, (int)strlen(buf) - 1, buf); 1209 bond->dev->name, (int)strlen(buf) - 1, buf);
1193 } 1210 }
@@ -1199,7 +1216,8 @@ out:
1199 1216
1200 return count; 1217 return count;
1201} 1218}
1202static DEVICE_ATTR(primary, S_IRUGO | S_IWUSR, bonding_show_primary, bonding_store_primary); 1219static DEVICE_ATTR(primary, S_IRUGO | S_IWUSR,
1220 bonding_show_primary, bonding_store_primary);
1203 1221
1204/* 1222/*
1205 * Show and set the use_carrier flag. 1223 * Show and set the use_carrier flag.
@@ -1222,7 +1240,7 @@ static ssize_t bonding_store_carrier(struct device *d,
1222 1240
1223 1241
1224 if (sscanf(buf, "%d", &new_value) != 1) { 1242 if (sscanf(buf, "%d", &new_value) != 1) {
1225 printk(KERN_ERR DRV_NAME 1243 pr_err(DRV_NAME
1226 ": %s: no use_carrier value specified.\n", 1244 ": %s: no use_carrier value specified.\n",
1227 bond->dev->name); 1245 bond->dev->name);
1228 ret = -EINVAL; 1246 ret = -EINVAL;
@@ -1230,17 +1248,18 @@ static ssize_t bonding_store_carrier(struct device *d,
1230 } 1248 }
1231 if ((new_value == 0) || (new_value == 1)) { 1249 if ((new_value == 0) || (new_value == 1)) {
1232 bond->params.use_carrier = new_value; 1250 bond->params.use_carrier = new_value;
1233 printk(KERN_INFO DRV_NAME ": %s: Setting use_carrier to %d.\n", 1251 pr_info(DRV_NAME ": %s: Setting use_carrier to %d.\n",
1234 bond->dev->name, new_value); 1252 bond->dev->name, new_value);
1235 } else { 1253 } else {
1236 printk(KERN_INFO DRV_NAME 1254 pr_info(DRV_NAME
1237 ": %s: Ignoring invalid use_carrier value %d.\n", 1255 ": %s: Ignoring invalid use_carrier value %d.\n",
1238 bond->dev->name, new_value); 1256 bond->dev->name, new_value);
1239 } 1257 }
1240out: 1258out:
1241 return count; 1259 return count;
1242} 1260}
1243static DEVICE_ATTR(use_carrier, S_IRUGO | S_IWUSR, bonding_show_carrier, bonding_store_carrier); 1261static DEVICE_ATTR(use_carrier, S_IRUGO | S_IWUSR,
1262 bonding_show_carrier, bonding_store_carrier);
1244 1263
1245 1264
1246/* 1265/*
@@ -1269,8 +1288,8 @@ static ssize_t bonding_store_active_slave(struct device *d,
1269{ 1288{
1270 int i; 1289 int i;
1271 struct slave *slave; 1290 struct slave *slave;
1272 struct slave *old_active = NULL; 1291 struct slave *old_active = NULL;
1273 struct slave *new_active = NULL; 1292 struct slave *new_active = NULL;
1274 struct bonding *bond = to_bond(d); 1293 struct bonding *bond = to_bond(d);
1275 1294
1276 if (!rtnl_trylock()) 1295 if (!rtnl_trylock())
@@ -1278,11 +1297,11 @@ static ssize_t bonding_store_active_slave(struct device *d,
1278 read_lock(&bond->lock); 1297 read_lock(&bond->lock);
1279 write_lock_bh(&bond->curr_slave_lock); 1298 write_lock_bh(&bond->curr_slave_lock);
1280 1299
1281 if (!USES_PRIMARY(bond->params.mode)) { 1300 if (!USES_PRIMARY(bond->params.mode))
1282 printk(KERN_INFO DRV_NAME 1301 pr_info(DRV_NAME ": %s: Unable to change active slave;"
1283 ": %s: Unable to change active slave; %s is in mode %d\n", 1302 " %s is in mode %d\n",
1284 bond->dev->name, bond->dev->name, bond->params.mode); 1303 bond->dev->name, bond->dev->name, bond->params.mode);
1285 } else { 1304 else {
1286 bond_for_each_slave(bond, slave, i) { 1305 bond_for_each_slave(bond, slave, i) {
1287 if (strnicmp 1306 if (strnicmp
1288 (slave->dev->name, buf, 1307 (slave->dev->name, buf,
@@ -1321,18 +1340,18 @@ static ssize_t bonding_store_active_slave(struct device *d,
1321 /* if we got here, then we didn't match the name of any slave */ 1340 /* if we got here, then we didn't match the name of any slave */
1322 1341
1323 if (strlen(buf) == 0 || buf[0] == '\n') { 1342 if (strlen(buf) == 0 || buf[0] == '\n') {
1324 printk(KERN_INFO DRV_NAME 1343 pr_info(DRV_NAME
1325 ": %s: Setting active slave to None.\n", 1344 ": %s: Setting active slave to None.\n",
1326 bond->dev->name); 1345 bond->dev->name);
1327 bond->primary_slave = NULL; 1346 bond->primary_slave = NULL;
1328 bond_select_active_slave(bond); 1347 bond_select_active_slave(bond);
1329 } else { 1348 } else {
1330 printk(KERN_INFO DRV_NAME 1349 pr_info(DRV_NAME ": %s: Unable to set %.*s"
1331 ": %s: Unable to set %.*s as active slave as it is not a slave.\n", 1350 " as active slave as it is not a slave.\n",
1332 bond->dev->name, (int)strlen(buf) - 1, buf); 1351 bond->dev->name, (int)strlen(buf) - 1, buf);
1333 } 1352 }
1334 } 1353 }
1335out: 1354 out:
1336 write_unlock_bh(&bond->curr_slave_lock); 1355 write_unlock_bh(&bond->curr_slave_lock);
1337 read_unlock(&bond->lock); 1356 read_unlock(&bond->lock);
1338 rtnl_unlock(); 1357 rtnl_unlock();
@@ -1340,7 +1359,8 @@ out:
1340 return count; 1359 return count;
1341 1360
1342} 1361}
1343static DEVICE_ATTR(active_slave, S_IRUGO | S_IWUSR, bonding_show_active_slave, bonding_store_active_slave); 1362static DEVICE_ATTR(active_slave, S_IRUGO | S_IWUSR,
1363 bonding_show_active_slave, bonding_store_active_slave);
1344 1364
1345 1365
1346/* 1366/*
@@ -1357,7 +1377,7 @@ static ssize_t bonding_show_mii_status(struct device *d,
1357 curr = bond->curr_active_slave; 1377 curr = bond->curr_active_slave;
1358 read_unlock(&bond->curr_slave_lock); 1378 read_unlock(&bond->curr_slave_lock);
1359 1379
1360 return sprintf(buf, "%s\n", (curr) ? "up" : "down"); 1380 return sprintf(buf, "%s\n", curr ? "up" : "down");
1361} 1381}
1362static DEVICE_ATTR(mii_status, S_IRUGO, bonding_show_mii_status, NULL); 1382static DEVICE_ATTR(mii_status, S_IRUGO, bonding_show_mii_status, NULL);
1363 1383
@@ -1374,7 +1394,9 @@ static ssize_t bonding_show_ad_aggregator(struct device *d,
1374 1394
1375 if (bond->params.mode == BOND_MODE_8023AD) { 1395 if (bond->params.mode == BOND_MODE_8023AD) {
1376 struct ad_info ad_info; 1396 struct ad_info ad_info;
1377 count = sprintf(buf, "%d\n", (bond_3ad_get_active_agg_info(bond, &ad_info)) ? 0 : ad_info.aggregator_id); 1397 count = sprintf(buf, "%d\n",
1398 (bond_3ad_get_active_agg_info(bond, &ad_info))
1399 ? 0 : ad_info.aggregator_id);
1378 } 1400 }
1379 1401
1380 return count; 1402 return count;
@@ -1394,7 +1416,9 @@ static ssize_t bonding_show_ad_num_ports(struct device *d,
1394 1416
1395 if (bond->params.mode == BOND_MODE_8023AD) { 1417 if (bond->params.mode == BOND_MODE_8023AD) {
1396 struct ad_info ad_info; 1418 struct ad_info ad_info;
1397 count = sprintf(buf, "%d\n", (bond_3ad_get_active_agg_info(bond, &ad_info)) ? 0: ad_info.ports); 1419 count = sprintf(buf, "%d\n",
1420 (bond_3ad_get_active_agg_info(bond, &ad_info))
1421 ? 0 : ad_info.ports);
1398 } 1422 }
1399 1423
1400 return count; 1424 return count;
@@ -1414,7 +1438,9 @@ static ssize_t bonding_show_ad_actor_key(struct device *d,
1414 1438
1415 if (bond->params.mode == BOND_MODE_8023AD) { 1439 if (bond->params.mode == BOND_MODE_8023AD) {
1416 struct ad_info ad_info; 1440 struct ad_info ad_info;
1417 count = sprintf(buf, "%d\n", (bond_3ad_get_active_agg_info(bond, &ad_info)) ? 0 : ad_info.actor_key); 1441 count = sprintf(buf, "%d\n",
1442 (bond_3ad_get_active_agg_info(bond, &ad_info))
1443 ? 0 : ad_info.actor_key);
1418 } 1444 }
1419 1445
1420 return count; 1446 return count;
@@ -1434,7 +1460,9 @@ static ssize_t bonding_show_ad_partner_key(struct device *d,
1434 1460
1435 if (bond->params.mode == BOND_MODE_8023AD) { 1461 if (bond->params.mode == BOND_MODE_8023AD) {
1436 struct ad_info ad_info; 1462 struct ad_info ad_info;
1437 count = sprintf(buf, "%d\n", (bond_3ad_get_active_agg_info(bond, &ad_info)) ? 0 : ad_info.partner_key); 1463 count = sprintf(buf, "%d\n",
1464 (bond_3ad_get_active_agg_info(bond, &ad_info))
1465 ? 0 : ad_info.partner_key);
1438 } 1466 }
1439 1467
1440 return count; 1468 return count;
@@ -1454,9 +1482,8 @@ static ssize_t bonding_show_ad_partner_mac(struct device *d,
1454 1482
1455 if (bond->params.mode == BOND_MODE_8023AD) { 1483 if (bond->params.mode == BOND_MODE_8023AD) {
1456 struct ad_info ad_info; 1484 struct ad_info ad_info;
1457 if (!bond_3ad_get_active_agg_info(bond, &ad_info)) { 1485 if (!bond_3ad_get_active_agg_info(bond, &ad_info))
1458 count = sprintf(buf, "%pM\n", ad_info.partner_system); 1486 count = sprintf(buf, "%pM\n", ad_info.partner_system);
1459 }
1460 } 1487 }
1461 1488
1462 return count; 1489 return count;
@@ -1549,9 +1576,8 @@ int bond_create_sysfs_entry(struct bonding *bond)
1549 int err; 1576 int err;
1550 1577
1551 err = sysfs_create_group(&(dev->dev.kobj), &bonding_group); 1578 err = sysfs_create_group(&(dev->dev.kobj), &bonding_group);
1552 if (err) { 1579 if (err)
1553 printk(KERN_EMERG "eek! didn't create group!\n"); 1580 printk(KERN_EMERG "eek! didn't create group!\n");
1554 }
1555 1581
1556 if (expected_refcount < 1) 1582 if (expected_refcount < 1)
1557 expected_refcount = atomic_read(&bond->dev->dev.kobj.kref.refcount); 1583 expected_refcount = atomic_read(&bond->dev->dev.kobj.kref.refcount);