All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jay Vosburgh <jay.vosburgh@canonical.com>
To: Veaceslav Falico <vfalico@gmail.com>
Cc: netdev@vger.kernel.org, Andy Gospodarek <andy@greyhouse.net>
Subject: Re: [PATCH v2 net-next 5/9] bonding: create a macro for bond mode and use it
Date: Thu, 15 May 2014 10:51:51 -0700	[thread overview]
Message-ID: <10028.1400176311@localhost.localdomain> (raw)
In-Reply-To: <1400156967-8231-6-git-send-email-vfalico@gmail.com>

Veaceslav Falico <vfalico@gmail.com> wrote:

>CC: Jay Vosburgh <j.vosburgh@gmail.com>
>CC: Andy Gospodarek <andy@greyhouse.net>
>Signed-off-by: Veaceslav Falico <vfalico@gmail.com>
>---
> drivers/net/bonding/bond_alb.c         |  4 +-
> drivers/net/bonding/bond_debugfs.c     |  2 +-
> drivers/net/bonding/bond_main.c        | 94 +++++++++++++++++-----------------
> drivers/net/bonding/bond_netlink.c     |  6 +--
> drivers/net/bonding/bond_options.c     |  2 +-
> drivers/net/bonding/bond_procfs.c      | 14 ++---
> drivers/net/bonding/bond_sysfs.c       | 14 ++---
> drivers/net/bonding/bond_sysfs_slave.c |  2 +-
> drivers/net/bonding/bonding.h          |  6 ++-
> 9 files changed, 73 insertions(+), 71 deletions(-)
>
>diff --git a/drivers/net/bonding/bond_alb.c b/drivers/net/bonding/bond_alb.c
>index 70de039..efacb0e 100644
>--- a/drivers/net/bonding/bond_alb.c
>+++ b/drivers/net/bonding/bond_alb.c
>@@ -1057,7 +1057,7 @@ static int alb_set_slave_mac_addr(struct slave *slave, u8 addr[])
> 	struct net_device *dev = slave->dev;
> 	struct sockaddr s_addr;
> 
>-	if (slave->bond->params.mode == BOND_MODE_TLB) {
>+	if (BOND_MODE(slave->bond) == BOND_MODE_TLB) {
> 		memcpy(dev->dev_addr, addr, dev->addr_len);
> 		return 0;
> 	}
>@@ -1745,7 +1745,7 @@ void bond_alb_handle_active_change(struct bonding *bond, struct slave *new_slave
> 	/* in TLB mode, the slave might flip down/up with the old dev_addr,
> 	 * and thus filter bond->dev_addr's packets, so force bond's mac
> 	 */
>-	if (bond->params.mode == BOND_MODE_TLB) {
>+	if (BOND_MODE(bond) == BOND_MODE_TLB) {
> 		struct sockaddr sa;
> 		u8 tmp_addr[ETH_ALEN];
> 
>diff --git a/drivers/net/bonding/bond_debugfs.c b/drivers/net/bonding/bond_debugfs.c
>index 2d3f7fa..658e761 100644
>--- a/drivers/net/bonding/bond_debugfs.c
>+++ b/drivers/net/bonding/bond_debugfs.c
>@@ -23,7 +23,7 @@ static int bond_debug_rlb_hash_show(struct seq_file *m, void *v)
> 	struct rlb_client_info *client_info;
> 	u32 hash_index;
> 
>-	if (bond->params.mode != BOND_MODE_ALB)
>+	if (BOND_MODE(bond) != BOND_MODE_ALB)
> 		return 0;
> 
> 	seq_printf(m, "SourceIP        DestinationIP   "
>diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
>index 17b68b5..7b8e121 100644
>--- a/drivers/net/bonding/bond_main.c
>+++ b/drivers/net/bonding/bond_main.c
>@@ -343,7 +343,7 @@ static int bond_set_carrier(struct bonding *bond)
> 	if (!bond_has_slaves(bond))
> 		goto down;
> 
>-	if (bond->params.mode == BOND_MODE_8023AD)
>+	if (BOND_MODE(bond) == BOND_MODE_8023AD)
> 		return bond_3ad_set_carrier(bond);
> 
> 	bond_for_each_slave(bond, slave, iter) {
>@@ -497,7 +497,7 @@ static int bond_set_promiscuity(struct bonding *bond, int inc)
> 	struct list_head *iter;
> 	int err = 0;
> 
>-	if (bond_mode_uses_primary(bond->params.mode)) {
>+	if (bond_mode_uses_primary(BOND_MODE(bond))) {

	Would it be better to use "bond_uses_primary(struct bonding *)"
instead of the above?  That would simplify the above calling pattern,
and shorten the calls elsewhere.  Maybe I missed one, but it looks like
all of the calls to _uses_primary have BOND_MODE(bond) as the argument.

	-J

> 		/* write lock already acquired */
> 		if (bond->curr_active_slave) {
> 			err = dev_set_promiscuity(bond->curr_active_slave->dev,
>@@ -523,7 +523,7 @@ static int bond_set_allmulti(struct bonding *bond, int inc)
> 	struct list_head *iter;
> 	int err = 0;
> 
>-	if (bond_mode_uses_primary(bond->params.mode)) {
>+	if (bond_mode_uses_primary(BOND_MODE(bond))) {
> 		/* write lock already acquired */
> 		if (bond->curr_active_slave) {
> 			err = dev_set_allmulti(bond->curr_active_slave->dev,
>@@ -574,7 +574,7 @@ static void bond_hw_addr_flush(struct net_device *bond_dev,
> 	dev_uc_unsync(slave_dev, bond_dev);
> 	dev_mc_unsync(slave_dev, bond_dev);
> 
>-	if (bond->params.mode == BOND_MODE_8023AD) {
>+	if (BOND_MODE(bond) == BOND_MODE_8023AD) {
> 		/* del lacpdu mc addr from mc list */
> 		u8 lacpdu_multicast[ETH_ALEN] = MULTICAST_LACPDU_ADDR;
> 
>@@ -801,7 +801,7 @@ void bond_change_active_slave(struct bonding *bond, struct slave *new_active)
> 		new_active->last_link_up = jiffies;
> 
> 		if (new_active->link == BOND_LINK_BACK) {
>-			if (bond_mode_uses_primary(bond->params.mode)) {
>+			if (bond_mode_uses_primary(BOND_MODE(bond))) {
> 				pr_info("%s: making interface %s the new active one %d ms earlier\n",
> 					bond->dev->name, new_active->dev->name,
> 					(bond->params.updelay - new_active->delay) * bond->params.miimon);
>@@ -810,20 +810,20 @@ void bond_change_active_slave(struct bonding *bond, struct slave *new_active)
> 			new_active->delay = 0;
> 			new_active->link = BOND_LINK_UP;
> 
>-			if (bond->params.mode == BOND_MODE_8023AD)
>+			if (BOND_MODE(bond) == BOND_MODE_8023AD)
> 				bond_3ad_handle_link_change(new_active, BOND_LINK_UP);
> 
> 			if (bond_is_lb(bond))
> 				bond_alb_handle_link_change(bond, new_active, BOND_LINK_UP);
> 		} else {
>-			if (bond_mode_uses_primary(bond->params.mode)) {
>+			if (bond_mode_uses_primary(BOND_MODE(bond))) {
> 				pr_info("%s: making interface %s the new active one\n",
> 					bond->dev->name, new_active->dev->name);
> 			}
> 		}
> 	}
> 
>-	if (bond_mode_uses_primary(bond->params.mode))
>+	if (bond_mode_uses_primary(BOND_MODE(bond)))
> 		bond_hw_addr_swap(bond, new_active, old_active);
> 
> 	if (bond_is_lb(bond)) {
>@@ -838,7 +838,7 @@ void bond_change_active_slave(struct bonding *bond, struct slave *new_active)
> 		rcu_assign_pointer(bond->curr_active_slave, new_active);
> 	}
> 
>-	if (bond->params.mode == BOND_MODE_ACTIVEBACKUP) {
>+	if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP) {
> 		if (old_active)
> 			bond_set_slave_inactive_flags(old_active,
> 						      BOND_SLAVE_NOTIFY_NOW);
>@@ -876,8 +876,8 @@ void bond_change_active_slave(struct bonding *bond, struct slave *new_active)
> 	 * resend only if bond is brought up with the affected
> 	 * bonding modes and the retransmission is enabled */
> 	if (netif_running(bond->dev) && (bond->params.resend_igmp > 0) &&
>-	    ((bond_mode_uses_primary(bond->params.mode) && new_active) ||
>-	     bond->params.mode == BOND_MODE_ROUNDROBIN)) {
>+	    ((bond_mode_uses_primary(BOND_MODE(bond)) && new_active) ||
>+	     BOND_MODE(bond) == BOND_MODE_ROUNDROBIN)) {
> 		bond->igmp_retrans = bond->params.resend_igmp;
> 		queue_delayed_work(bond->wq, &bond->mcast_work, 1);
> 	}
>@@ -1084,7 +1084,7 @@ static bool bond_should_deliver_exact_match(struct sk_buff *skb,
> 					    struct bonding *bond)
> {
> 	if (bond_is_slave_inactive(slave)) {
>-		if (bond->params.mode == BOND_MODE_ALB &&
>+		if (BOND_MODE(bond) == BOND_MODE_ALB &&
> 		    skb->pkt_type != PACKET_BROADCAST &&
> 		    skb->pkt_type != PACKET_MULTICAST)
> 			return false;
>@@ -1126,7 +1126,7 @@ static rx_handler_result_t bond_handle_frame(struct sk_buff **pskb)
> 
> 	skb->dev = bond->dev;
> 
>-	if (bond->params.mode == BOND_MODE_ALB &&
>+	if (BOND_MODE(bond) == BOND_MODE_ALB &&
> 	    bond->dev->priv_flags & IFF_BRIDGE_PORT &&
> 	    skb->pkt_type == PACKET_HOST) {
> 
>@@ -1171,7 +1171,7 @@ static struct slave *bond_alloc_slave(struct bonding *bond)
> 	if (!slave)
> 		return NULL;
> 
>-	if (bond->params.mode == BOND_MODE_8023AD) {
>+	if (BOND_MODE(bond) == BOND_MODE_8023AD) {
> 		SLAVE_AD_INFO(slave) = kzalloc(sizeof(struct ad_slave_info),
> 					       GFP_KERNEL);
> 		if (!SLAVE_AD_INFO(slave)) {
>@@ -1186,7 +1186,7 @@ static void bond_free_slave(struct slave *slave)
> {
> 	struct bonding *bond = bond_get_bond_by_slave(slave);
> 
>-	if (bond->params.mode == BOND_MODE_8023AD)
>+	if (BOND_MODE(bond) == BOND_MODE_8023AD)
> 		kfree(SLAVE_AD_INFO(slave));
> 
> 	kfree(slave);
>@@ -1298,7 +1298,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
> 		if (!bond_has_slaves(bond)) {
> 			pr_warn("%s: Warning: The first slave device specified does not support setting the MAC address\n",
> 				bond_dev->name);
>-			if (bond->params.mode == BOND_MODE_ACTIVEBACKUP) {
>+			if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP) {
> 				bond->params.fail_over_mac = BOND_FOM_ACTIVE;
> 				pr_warn("%s: Setting fail_over_mac to active for active-backup mode\n",
> 					bond_dev->name);
>@@ -1347,7 +1347,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
> 	ether_addr_copy(new_slave->perm_hwaddr, slave_dev->dev_addr);
> 
> 	if (!bond->params.fail_over_mac ||
>-	    bond->params.mode != BOND_MODE_ACTIVEBACKUP) {
>+	    BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP) {
> 		/*
> 		 * Set slave to master's mac address.  The application already
> 		 * set the master's mac address to that of the first slave
>@@ -1384,7 +1384,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
> 	/* If the mode uses primary, then the following is handled by
> 	 * bond_change_active_slave().
> 	 */
>-	if (!bond_mode_uses_primary(bond->params.mode)) {
>+	if (!bond_mode_uses_primary(BOND_MODE(bond))) {
> 		/* set promiscuity level to new slave */
> 		if (bond_dev->flags & IFF_PROMISC) {
> 			res = dev_set_promiscuity(slave_dev, 1);
>@@ -1407,7 +1407,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
> 		netif_addr_unlock_bh(bond_dev);
> 	}
> 
>-	if (bond->params.mode == BOND_MODE_8023AD) {
>+	if (BOND_MODE(bond) == BOND_MODE_8023AD) {
> 		/* add lacpdu mc addr to mc list */
> 		u8 lacpdu_multicast[ETH_ALEN] = MULTICAST_LACPDU_ADDR;
> 
>@@ -1480,7 +1480,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
> 		 new_slave->link == BOND_LINK_DOWN ? "DOWN" :
> 		 (new_slave->link == BOND_LINK_UP ? "UP" : "BACK"));
> 
>-	if (bond_mode_uses_primary(bond->params.mode) && bond->params.primary[0]) {
>+	if (bond_mode_uses_primary(BOND_MODE(bond)) && bond->params.primary[0]) {
> 		/* if there is a primary slave, remember it */
> 		if (strcmp(bond->params.primary, new_slave->dev->name) == 0) {
> 			bond->primary_slave = new_slave;
>@@ -1488,7 +1488,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
> 		}
> 	}
> 
>-	switch (bond->params.mode) {
>+	switch (BOND_MODE(bond)) {
> 	case BOND_MODE_ACTIVEBACKUP:
> 		bond_set_slave_inactive_flags(new_slave,
> 					      BOND_SLAVE_NOTIFY_NOW);
>@@ -1569,7 +1569,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
> 	bond_compute_features(bond);
> 	bond_set_carrier(bond);
> 
>-	if (bond_mode_uses_primary(bond->params.mode)) {
>+	if (bond_mode_uses_primary(BOND_MODE(bond))) {
> 		block_netpoll_tx();
> 		write_lock_bh(&bond->curr_slave_lock);
> 		bond_select_active_slave(bond);
>@@ -1593,7 +1593,7 @@ err_unregister:
> 	netdev_rx_handler_unregister(slave_dev);
> 
> err_detach:
>-	if (!bond_mode_uses_primary(bond->params.mode))
>+	if (!bond_mode_uses_primary(BOND_MODE(bond)))
> 		bond_hw_addr_flush(bond_dev, slave_dev);
> 
> 	vlan_vids_del_by_dev(slave_dev, bond_dev);
>@@ -1615,7 +1615,7 @@ err_close:
> 
> err_restore_mac:
> 	if (!bond->params.fail_over_mac ||
>-	    bond->params.mode != BOND_MODE_ACTIVEBACKUP) {
>+	    BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP) {
> 		/* XXX TODO - fom follow mode needs to change master's
> 		 * MAC if this slave's MAC is in use by the bond, or at
> 		 * least print a warning.
>@@ -1691,7 +1691,7 @@ static int __bond_release_one(struct net_device *bond_dev,
> 	write_lock_bh(&bond->lock);
> 
> 	/* Inform AD package of unbinding of slave. */
>-	if (bond->params.mode == BOND_MODE_8023AD)
>+	if (BOND_MODE(bond) == BOND_MODE_8023AD)
> 		bond_3ad_unbind_slave(slave);
> 
> 	write_unlock_bh(&bond->lock);
>@@ -1706,7 +1706,7 @@ static int __bond_release_one(struct net_device *bond_dev,
> 	bond->current_arp_slave = NULL;
> 
> 	if (!all && (!bond->params.fail_over_mac ||
>-		     bond->params.mode != BOND_MODE_ACTIVEBACKUP)) {
>+		     BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP)) {
> 		if (ether_addr_equal_64bits(bond_dev->dev_addr, slave->perm_hwaddr) &&
> 		    bond_has_slaves(bond))
> 			pr_warn("%s: Warning: the permanent HWaddr of %s - %pM - is still in use by %s - set the HWaddr of %s to a different address to avoid conflicts\n",
>@@ -1781,7 +1781,7 @@ static int __bond_release_one(struct net_device *bond_dev,
> 	/* If the mode uses primary, then this cases was handled above by
> 	 * bond_change_active_slave(..., NULL)
> 	 */
>-	if (!bond_mode_uses_primary(bond->params.mode)) {
>+	if (!bond_mode_uses_primary(BOND_MODE(bond))) {
> 		/* unset promiscuity level from slave
> 		 * NOTE: The NETDEV_CHANGEADDR call above may change the value
> 		 * of the IFF_PROMISC flag in the bond_dev, but we need the
>@@ -1805,7 +1805,7 @@ static int __bond_release_one(struct net_device *bond_dev,
> 	dev_close(slave_dev);
> 
> 	if (bond->params.fail_over_mac != BOND_FOM_ACTIVE ||
>-	    bond->params.mode != BOND_MODE_ACTIVEBACKUP) {
>+	    BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP) {
> 		/* restore original ("permanent") mac address */
> 		ether_addr_copy(addr.sa_data, slave->perm_hwaddr);
> 		addr.sa_family = slave_dev->type;
>@@ -1851,7 +1851,7 @@ static int bond_info_query(struct net_device *bond_dev, struct ifbond *info)
> {
> 	struct bonding *bond = netdev_priv(bond_dev);
> 
>-	info->bond_mode = bond->params.mode;
>+	info->bond_mode = BOND_MODE(bond);
> 	info->miimon = bond->params.miimon;
> 
> 	info->num_slaves = bond->slave_cnt;
>@@ -1907,7 +1907,7 @@ static int bond_miimon_inspect(struct bonding *bond)
> 			if (slave->delay) {
> 				pr_info("%s: link status down for %sinterface %s, disabling it in %d ms\n",
> 					bond->dev->name,
>-					(bond->params.mode ==
>+					(BOND_MODE(bond) ==
> 					 BOND_MODE_ACTIVEBACKUP) ?
> 					(bond_is_active_slave(slave) ?
> 					 "active " : "backup ") : "",
>@@ -1998,10 +1998,10 @@ static void bond_miimon_commit(struct bonding *bond)
> 			slave->link = BOND_LINK_UP;
> 			slave->last_link_up = jiffies;
> 
>-			if (bond->params.mode == BOND_MODE_8023AD) {
>+			if (BOND_MODE(bond) == BOND_MODE_8023AD) {
> 				/* prevent it from being the active one */
> 				bond_set_backup_slave(slave);
>-			} else if (bond->params.mode != BOND_MODE_ACTIVEBACKUP) {
>+			} else if (BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP) {
> 				/* make it immediately active */
> 				bond_set_active_slave(slave);
> 			} else if (slave != bond->primary_slave) {
>@@ -2015,7 +2015,7 @@ static void bond_miimon_commit(struct bonding *bond)
> 				slave->duplex ? "full" : "half");
> 
> 			/* notify ad that the link status has changed */
>-			if (bond->params.mode == BOND_MODE_8023AD)
>+			if (BOND_MODE(bond) == BOND_MODE_8023AD)
> 				bond_3ad_handle_link_change(slave, BOND_LINK_UP);
> 
> 			if (bond_is_lb(bond))
>@@ -2034,15 +2034,15 @@ static void bond_miimon_commit(struct bonding *bond)
> 
> 			slave->link = BOND_LINK_DOWN;
> 
>-			if (bond->params.mode == BOND_MODE_ACTIVEBACKUP ||
>-			    bond->params.mode == BOND_MODE_8023AD)
>+			if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP ||
>+			    BOND_MODE(bond) == BOND_MODE_8023AD)
> 				bond_set_slave_inactive_flags(slave,
> 							      BOND_SLAVE_NOTIFY_NOW);
> 
> 			pr_info("%s: link status definitely down for interface %s, disabling it\n",
> 				bond->dev->name, slave->dev->name);
> 
>-			if (bond->params.mode == BOND_MODE_8023AD)
>+			if (BOND_MODE(bond) == BOND_MODE_8023AD)
> 				bond_3ad_handle_link_change(slave,
> 							    BOND_LINK_DOWN);
> 
>@@ -2887,7 +2887,7 @@ static int bond_slave_netdev_event(unsigned long event,
> 
> 		bond_update_speed_duplex(slave);
> 
>-		if (bond->params.mode == BOND_MODE_8023AD) {
>+		if (BOND_MODE(bond) == BOND_MODE_8023AD) {
> 			if (old_speed != slave->speed)
> 				bond_3ad_adapter_speed_changed(slave);
> 			if (old_duplex != slave->duplex)
>@@ -2915,7 +2915,7 @@ static int bond_slave_netdev_event(unsigned long event,
> 		break;
> 	case NETDEV_CHANGENAME:
> 		/* we don't care if we don't have primary set */
>-		if (!bond_mode_uses_primary(bond->params.mode) ||
>+		if (!bond_mode_uses_primary(BOND_MODE(bond)) ||
> 		    !bond->params.primary[0])
> 			break;
> 
>@@ -3078,7 +3078,7 @@ static void bond_work_init_all(struct bonding *bond)
> 			  bond_resend_igmp_join_requests_delayed);
> 	INIT_DELAYED_WORK(&bond->alb_work, bond_alb_monitor);
> 	INIT_DELAYED_WORK(&bond->mii_work, bond_mii_monitor);
>-	if (bond->params.mode == BOND_MODE_ACTIVEBACKUP)
>+	if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP)
> 		INIT_DELAYED_WORK(&bond->arp_work, bond_activebackup_arp_mon);
> 	else
> 		INIT_DELAYED_WORK(&bond->arp_work, bond_loadbalance_arp_mon);
>@@ -3105,7 +3105,7 @@ static int bond_open(struct net_device *bond_dev)
> 	if (bond_has_slaves(bond)) {
> 		read_lock(&bond->curr_slave_lock);
> 		bond_for_each_slave(bond, slave, iter) {
>-			if (bond_mode_uses_primary(bond->params.mode)
>+			if (bond_mode_uses_primary(BOND_MODE(bond))
> 				&& (slave != bond->curr_active_slave)) {
> 				bond_set_slave_inactive_flags(slave,
> 							      BOND_SLAVE_NOTIFY_NOW);
>@@ -3124,7 +3124,7 @@ static int bond_open(struct net_device *bond_dev)
> 		/* bond_alb_initialize must be called before the timer
> 		 * is started.
> 		 */
>-		if (bond_alb_initialize(bond, (bond->params.mode == BOND_MODE_ALB)))
>+		if (bond_alb_initialize(bond, (BOND_MODE(bond) == BOND_MODE_ALB)))
> 			return -ENOMEM;
> 		if (bond->params.tlb_dynamic_lb)
> 			queue_delayed_work(bond->wq, &bond->alb_work, 0);
>@@ -3138,7 +3138,7 @@ static int bond_open(struct net_device *bond_dev)
> 		bond->recv_probe = bond_arp_rcv;
> 	}
> 
>-	if (bond->params.mode == BOND_MODE_8023AD) {
>+	if (BOND_MODE(bond) == BOND_MODE_8023AD) {
> 		queue_delayed_work(bond->wq, &bond->ad_work, 0);
> 		/* register to receive LACPDUs */
> 		bond->recv_probe = bond_3ad_lacpdu_recv;
>@@ -3343,7 +3343,7 @@ static void bond_set_rx_mode(struct net_device *bond_dev)
> 
> 
> 	rcu_read_lock();
>-	if (bond_mode_uses_primary(bond->params.mode)) {
>+	if (bond_mode_uses_primary(BOND_MODE(bond))) {
> 		slave = rcu_dereference(bond->curr_active_slave);
> 		if (slave) {
> 			dev_uc_sync(slave->dev, bond_dev);
>@@ -3497,7 +3497,7 @@ static int bond_set_mac_address(struct net_device *bond_dev, void *addr)
> 	struct list_head *iter;
> 	int res = 0;
> 
>-	if (bond->params.mode == BOND_MODE_ALB)
>+	if (BOND_MODE(bond) == BOND_MODE_ALB)
> 		return bond_alb_set_mac_address(bond_dev, addr);
> 
> 
>@@ -3508,7 +3508,7 @@ static int bond_set_mac_address(struct net_device *bond_dev, void *addr)
> 	 * Returning an error causes ifenslave to fail.
> 	 */
> 	if (bond->params.fail_over_mac &&
>-	    bond->params.mode == BOND_MODE_ACTIVEBACKUP)
>+	    BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP)
> 		return 0;
> 
> 	if (!is_valid_ether_addr(sa->sa_data))
>@@ -3792,7 +3792,7 @@ static netdev_tx_t __bond_start_xmit(struct sk_buff *skb, struct net_device *dev
> 	    !bond_slave_override(bond, skb))
> 		return NETDEV_TX_OK;
> 
>-	switch (bond->params.mode) {
>+	switch (BOND_MODE(bond)) {
> 	case BOND_MODE_ROUNDROBIN:
> 		return bond_xmit_roundrobin(skb, dev);
> 	case BOND_MODE_ACTIVEBACKUP:
>@@ -3810,7 +3810,7 @@ static netdev_tx_t __bond_start_xmit(struct sk_buff *skb, struct net_device *dev
> 	default:
> 		/* Should never happen, mode already checked */
> 		pr_err("%s: Error: Unknown bonding mode %d\n",
>-		       dev->name, bond->params.mode);
>+		       dev->name, BOND_MODE(bond));
> 		WARN_ON_ONCE(1);
> 		dev_kfree_skb_any(skb);
> 		return NETDEV_TX_OK;
>diff --git a/drivers/net/bonding/bond_netlink.c b/drivers/net/bonding/bond_netlink.c
>index 0d06e75..5ab3c18 100644
>--- a/drivers/net/bonding/bond_netlink.c
>+++ b/drivers/net/bonding/bond_netlink.c
>@@ -56,7 +56,7 @@ static int bond_fill_slave_info(struct sk_buff *skb,
> 	if (nla_put_u16(skb, IFLA_BOND_SLAVE_QUEUE_ID, slave->queue_id))
> 		goto nla_put_failure;
> 
>-	if (slave->bond->params.mode == BOND_MODE_8023AD) {
>+	if (BOND_MODE(slave->bond) == BOND_MODE_8023AD) {
> 		const struct aggregator *agg;
> 
> 		agg = SLAVE_AD_INFO(slave)->port.aggregator;
>@@ -407,7 +407,7 @@ static int bond_fill_info(struct sk_buff *skb,
> 	unsigned int packets_per_slave;
> 	int i, targets_added;
> 
>-	if (nla_put_u8(skb, IFLA_BOND_MODE, bond->params.mode))
>+	if (nla_put_u8(skb, IFLA_BOND_MODE, BOND_MODE(bond)))
> 		goto nla_put_failure;
> 
> 	if (slave_dev &&
>@@ -505,7 +505,7 @@ static int bond_fill_info(struct sk_buff *skb,
> 		       bond->params.ad_select))
> 		goto nla_put_failure;
> 
>-	if (bond->params.mode == BOND_MODE_8023AD) {
>+	if (BOND_MODE(bond) == BOND_MODE_8023AD) {
> 		struct ad_info info;
> 
> 		if (!bond_3ad_get_active_agg_info(bond, &info)) {
>diff --git a/drivers/net/bonding/bond_options.c b/drivers/net/bonding/bond_options.c
>index afae661..ed11c6f 100644
>--- a/drivers/net/bonding/bond_options.c
>+++ b/drivers/net/bonding/bond_options.c
>@@ -693,7 +693,7 @@ int bond_option_mode_set(struct bonding *bond, const struct bond_opt_value *newv
> static struct net_device *__bond_option_active_slave_get(struct bonding *bond,
> 							 struct slave *slave)
> {
>-	return bond_mode_uses_primary(bond->params.mode) && slave ? slave->dev : NULL;
>+	return bond_mode_uses_primary(BOND_MODE(bond)) && slave ? slave->dev : NULL;
> }
> 
> struct net_device *bond_option_active_slave_get_rcu(struct bonding *bond)
>diff --git a/drivers/net/bonding/bond_procfs.c b/drivers/net/bonding/bond_procfs.c
>index 7cf55a5..dc1291f 100644
>--- a/drivers/net/bonding/bond_procfs.c
>+++ b/drivers/net/bonding/bond_procfs.c
>@@ -72,9 +72,9 @@ static void bond_info_show_master(struct seq_file *seq)
> 	curr = rcu_dereference(bond->curr_active_slave);
> 
> 	seq_printf(seq, "Bonding Mode: %s",
>-		   bond_mode_name(bond->params.mode));
>+		   bond_mode_name(BOND_MODE(bond)));
> 
>-	if (bond->params.mode == BOND_MODE_ACTIVEBACKUP &&
>+	if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP &&
> 	    bond->params.fail_over_mac) {
> 		optval = bond_opt_get_val(BOND_OPT_FAIL_OVER_MAC,
> 					  bond->params.fail_over_mac);
>@@ -83,15 +83,15 @@ static void bond_info_show_master(struct seq_file *seq)
> 
> 	seq_printf(seq, "\n");
> 
>-	if (bond->params.mode == BOND_MODE_XOR ||
>-		bond->params.mode == BOND_MODE_8023AD) {
>+	if (BOND_MODE(bond) == BOND_MODE_XOR ||
>+	    BOND_MODE(bond) == BOND_MODE_8023AD) {
> 		optval = bond_opt_get_val(BOND_OPT_XMIT_HASH,
> 					  bond->params.xmit_policy);
> 		seq_printf(seq, "Transmit Hash Policy: %s (%d)\n",
> 			   optval->string, bond->params.xmit_policy);
> 	}
> 
>-	if (bond_mode_uses_primary(bond->params.mode)) {
>+	if (bond_mode_uses_primary(BOND_MODE(bond))) {
> 		seq_printf(seq, "Primary Slave: %s",
> 			   (bond->primary_slave) ?
> 			   bond->primary_slave->dev->name : "None");
>@@ -134,7 +134,7 @@ static void bond_info_show_master(struct seq_file *seq)
> 		seq_printf(seq, "\n");
> 	}
> 
>-	if (bond->params.mode == BOND_MODE_8023AD) {
>+	if (BOND_MODE(bond) == BOND_MODE_8023AD) {
> 		struct ad_info ad_info;
> 
> 		seq_puts(seq, "\n802.3ad info\n");
>@@ -188,7 +188,7 @@ static void bond_info_show_slave(struct seq_file *seq,
> 
> 	seq_printf(seq, "Permanent HW addr: %pM\n", slave->perm_hwaddr);
> 
>-	if (bond->params.mode == BOND_MODE_8023AD) {
>+	if (BOND_MODE(bond) == BOND_MODE_8023AD) {
> 		const struct aggregator *agg
> 			= SLAVE_AD_INFO(slave)->port.aggregator;
> 
>diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c
>index 39c4d8d..daed52f 100644
>--- a/drivers/net/bonding/bond_sysfs.c
>+++ b/drivers/net/bonding/bond_sysfs.c
>@@ -214,9 +214,9 @@ static ssize_t bonding_show_mode(struct device *d,
> 	struct bonding *bond = to_bond(d);
> 	const struct bond_opt_value *val;
> 
>-	val = bond_opt_get_val(BOND_OPT_MODE, bond->params.mode);
>+	val = bond_opt_get_val(BOND_OPT_MODE, BOND_MODE(bond));
> 
>-	return sprintf(buf, "%s %d\n", val->string, bond->params.mode);
>+	return sprintf(buf, "%s %d\n", val->string, BOND_MODE(bond));
> }
> static DEVICE_ATTR(mode, S_IRUGO | S_IWUSR,
> 		   bonding_show_mode, bonding_sysfs_store_option);
>@@ -505,7 +505,7 @@ static ssize_t bonding_show_ad_aggregator(struct device *d,
> 	int count = 0;
> 	struct bonding *bond = to_bond(d);
> 
>-	if (bond->params.mode == BOND_MODE_8023AD) {
>+	if (BOND_MODE(bond) == BOND_MODE_8023AD) {
> 		struct ad_info ad_info;
> 		count = sprintf(buf, "%d\n",
> 				bond_3ad_get_active_agg_info(bond, &ad_info)
>@@ -525,7 +525,7 @@ static ssize_t bonding_show_ad_num_ports(struct device *d,
> 	int count = 0;
> 	struct bonding *bond = to_bond(d);
> 
>-	if (bond->params.mode == BOND_MODE_8023AD) {
>+	if (BOND_MODE(bond) == BOND_MODE_8023AD) {
> 		struct ad_info ad_info;
> 		count = sprintf(buf, "%d\n",
> 				bond_3ad_get_active_agg_info(bond, &ad_info)
>@@ -545,7 +545,7 @@ static ssize_t bonding_show_ad_actor_key(struct device *d,
> 	int count = 0;
> 	struct bonding *bond = to_bond(d);
> 
>-	if (bond->params.mode == BOND_MODE_8023AD) {
>+	if (BOND_MODE(bond) == BOND_MODE_8023AD) {
> 		struct ad_info ad_info;
> 		count = sprintf(buf, "%d\n",
> 				bond_3ad_get_active_agg_info(bond, &ad_info)
>@@ -565,7 +565,7 @@ static ssize_t bonding_show_ad_partner_key(struct device *d,
> 	int count = 0;
> 	struct bonding *bond = to_bond(d);
> 
>-	if (bond->params.mode == BOND_MODE_8023AD) {
>+	if (BOND_MODE(bond) == BOND_MODE_8023AD) {
> 		struct ad_info ad_info;
> 		count = sprintf(buf, "%d\n",
> 				bond_3ad_get_active_agg_info(bond, &ad_info)
>@@ -585,7 +585,7 @@ static ssize_t bonding_show_ad_partner_mac(struct device *d,
> 	int count = 0;
> 	struct bonding *bond = to_bond(d);
> 
>-	if (bond->params.mode == BOND_MODE_8023AD) {
>+	if (BOND_MODE(bond) == BOND_MODE_8023AD) {
> 		struct ad_info ad_info;
> 		if (!bond_3ad_get_active_agg_info(bond, &ad_info))
> 			count = sprintf(buf, "%pM\n", ad_info.partner_system);
>diff --git a/drivers/net/bonding/bond_sysfs_slave.c b/drivers/net/bonding/bond_sysfs_slave.c
>index 89bc3b3..198677f 100644
>--- a/drivers/net/bonding/bond_sysfs_slave.c
>+++ b/drivers/net/bonding/bond_sysfs_slave.c
>@@ -69,7 +69,7 @@ static ssize_t ad_aggregator_id_show(struct slave *slave, char *buf)
> {
> 	const struct aggregator *agg;
> 
>-	if (slave->bond->params.mode == BOND_MODE_8023AD) {
>+	if (BOND_MODE(slave->bond) == BOND_MODE_8023AD) {
> 		agg = SLAVE_AD_INFO(slave)->port.aggregator;
> 		if (agg)
> 			return sprintf(buf, "%d\n",
>diff --git a/drivers/net/bonding/bonding.h b/drivers/net/bonding/bonding.h
>index 34a8ed5..4494fb9 100644
>--- a/drivers/net/bonding/bonding.h
>+++ b/drivers/net/bonding/bonding.h
>@@ -70,6 +70,8 @@
> 	set_fs(fs);			\
> 	res; })
> 
>+#define BOND_MODE(bond) ((bond)->params.mode)
>+
> /* slave list primitives */
> #define bond_slave_list(bond) (&(bond)->dev->adj_list.lower)
> 
>@@ -277,8 +279,8 @@ static inline bool bond_should_override_tx_queue(struct bonding *bond)
> 
> static inline bool bond_is_lb(const struct bonding *bond)
> {
>-	return bond->params.mode == BOND_MODE_TLB ||
>-	       bond->params.mode == BOND_MODE_ALB;
>+	return BOND_MODE(bond) == BOND_MODE_TLB ||
>+	       BOND_MODE(bond) == BOND_MODE_ALB;
> }
> 
> static inline bool bond_mode_uses_arp(int mode)
>-- 
>1.8.4

---
	-Jay Vosburgh, jay.vosburgh@canonical.com

  reply	other threads:[~2014-05-15 17:51 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-15 12:29 [PATCH v2 net-next 0/9] bonding: simple macro cleanup Veaceslav Falico
2014-05-15 12:29 ` [PATCH v2 net-next 1/9] bonding: remove BOND_MODE_IS_LB macro Veaceslav Falico
2014-05-15 12:29 ` [PATCH v2 net-next 2/9] bonding: make TX_QUEUE_OVERRIDE() macro an inline function Veaceslav Falico
2014-05-15 12:29 ` [PATCH v2 net-next 3/9] bonding: make BOND_NO_USES_ARP " Veaceslav Falico
2014-05-15 15:35   ` Alexei Starovoitov
2014-05-15 15:45     ` Veaceslav Falico
2014-05-15 12:29 ` [PATCH v2 net-next 4/9] bonding: make USES_PRIMARY " Veaceslav Falico
2014-05-15 12:29 ` [PATCH v2 net-next 5/9] bonding: create a macro for bond mode and use it Veaceslav Falico
2014-05-15 17:51   ` Jay Vosburgh [this message]
2014-05-15 18:14     ` Veaceslav Falico
2014-05-15 18:32       ` Jay Vosburgh
2014-05-15 19:18         ` Veaceslav Falico
2014-05-15 12:29 ` [PATCH v2 net-next 6/9] bonding: make IS_IP_TARGET_UNUSABLE_ADDRESS an inline function Veaceslav Falico
2014-05-15 12:29 ` [PATCH v2 net-next 7/9] bonding: convert IS_UP(slave->dev) to " Veaceslav Falico
2014-05-15 12:29 ` [PATCH v2 net-next 8/9] bonding: rename {,bond_}slave_can_tx and clean it up Veaceslav Falico
2014-05-15 12:29 ` [PATCH v2 net-next 9/9] bonding: replace SLAVE_IS_OK() with bond_slave_can_tx() Veaceslav Falico

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=10028.1400176311@localhost.localdomain \
    --to=jay.vosburgh@canonical.com \
    --cc=andy@greyhouse.net \
    --cc=netdev@vger.kernel.org \
    --cc=vfalico@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.