netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jiri Pirko <jpirko@redhat.com>
To: netdev@vger.kernel.org
Cc: davem@davemloft.net, shemminger@linux-foundation.org,
	kaber@trash.net, fubar@us.ibm.com, eric.dumazet@gmail.com,
	nicolas.2p.debian@gmail.com, andy@greyhouse.net,
	xiaosuo@gmail.com
Subject: [patch net-next-2.6 5/6] bonding: get rid of IFF_SLAVE_INACTIVE netdev->priv_flag
Date: Sat, 12 Mar 2011 14:14:38 +0100	[thread overview]
Message-ID: <1299935679-18135-6-git-send-email-jpirko@redhat.com> (raw)
In-Reply-To: <1299935679-18135-1-git-send-email-jpirko@redhat.com>

Since bond-related code was moved from net/core/dev.c into bonding,
IFF_SLAVE_INACTIVE is no longer needed. Replace is with flag "inactive"
stored in slave structure

Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Reviewed-by: Nicolas de Pesloüan <nicolas.2p.debian@free.fr>
---
 drivers/net/bonding/bond_main.c  |    6 ++----
 drivers/net/bonding/bond_sysfs.c |    4 ++--
 drivers/net/bonding/bonding.h    |   14 ++++++++++----
 include/linux/if.h               |   19 +++++++++----------
 4 files changed, 23 insertions(+), 20 deletions(-)

diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index c5f3a01..c3150df 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -1461,7 +1461,7 @@ static bool bond_should_deliver_exact_match(struct sk_buff *skb,
 					    struct slave *slave,
 					    struct bonding *bond)
 {
-	if (slave->dev->priv_flags & IFF_SLAVE_INACTIVE) {
+	if (bond_is_slave_inactive(slave)) {
 		if (slave_do_arp_validate(bond, slave) &&
 		    skb->protocol == __cpu_to_be16(ETH_P_ARP))
 			return false;
@@ -2122,7 +2122,7 @@ int bond_release(struct net_device *bond_dev, struct net_device *slave_dev)
 
 	dev_set_mtu(slave_dev, slave->original_mtu);
 
-	slave_dev->priv_flags &= ~(IFF_SLAVE_INACTIVE | IFF_BONDING);
+	slave_dev->priv_flags &= ~IFF_BONDING;
 
 	kfree(slave);
 
@@ -2233,8 +2233,6 @@ static int bond_release_all(struct net_device *bond_dev)
 			dev_set_mac_address(slave_dev, &addr);
 		}
 
-		slave_dev->priv_flags &= ~IFF_SLAVE_INACTIVE;
-
 		kfree(slave);
 
 		/* re-acquire the lock before getting the next slave */
diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c
index 344d23f..5161183 100644
--- a/drivers/net/bonding/bond_sysfs.c
+++ b/drivers/net/bonding/bond_sysfs.c
@@ -1581,9 +1581,9 @@ static ssize_t bonding_store_slaves_active(struct device *d,
 	bond_for_each_slave(bond, slave, i) {
 		if (!bond_is_active_slave(slave)) {
 			if (new_value)
-				slave->dev->priv_flags &= ~IFF_SLAVE_INACTIVE;
+				slave->inactive = 0;
 			else
-				slave->dev->priv_flags |= IFF_SLAVE_INACTIVE;
+				slave->inactive = 1;
 		}
 	}
 out:
diff --git a/drivers/net/bonding/bonding.h b/drivers/net/bonding/bonding.h
index 63e9cf7..6b26962 100644
--- a/drivers/net/bonding/bonding.h
+++ b/drivers/net/bonding/bonding.h
@@ -192,8 +192,9 @@ struct slave {
 	unsigned long last_arp_rx;
 	s8     link;    /* one of BOND_LINK_XXXX */
 	s8     new_link;
-	u8     backup;	/* indicates backup slave. Value corresponds with
-			   BOND_STATE_ACTIVE and BOND_STATE_BACKUP */
+	u8     backup:1,   /* indicates backup slave. Value corresponds with
+			      BOND_STATE_ACTIVE and BOND_STATE_BACKUP */
+	       inactive:1; /* indicates inactive slave */
 	u32    original_mtu;
 	u32    link_failure_count;
 	u8     perm_hwaddr[ETH_ALEN];
@@ -376,13 +377,18 @@ static inline void bond_set_slave_inactive_flags(struct slave *slave)
 	if (!bond_is_lb(bond))
 		bond_set_backup_slave(slave);
 	if (!bond->params.all_slaves_active)
-		slave->dev->priv_flags |= IFF_SLAVE_INACTIVE;
+		slave->inactive = 1;
 }
 
 static inline void bond_set_slave_active_flags(struct slave *slave)
 {
 	bond_set_active_slave(slave);
-	slave->dev->priv_flags &= ~IFF_SLAVE_INACTIVE;
+	slave->inactive = 0;
+}
+
+static inline bool bond_is_slave_inactive(struct slave *slave)
+{
+	return slave->inactive;
 }
 
 struct vlan_entry *bond_next_vlan(struct bonding *bond, struct vlan_entry *curr);
diff --git a/include/linux/if.h b/include/linux/if.h
index 2fdd47a..0da7991 100644
--- a/include/linux/if.h
+++ b/include/linux/if.h
@@ -59,18 +59,17 @@
 /* Private (from user) interface flags (netdevice->priv_flags). */
 #define IFF_802_1Q_VLAN 0x1             /* 802.1Q VLAN device.          */
 #define IFF_EBRIDGE	0x2		/* Ethernet bridging device.	*/
-#define IFF_SLAVE_INACTIVE	0x4	/* bonding slave not the curr. active */
-#define IFF_BONDING	0x8		/* bonding master or slave	*/
-#define IFF_ISATAP	0x10		/* ISATAP interface (RFC4214)	*/
-#define IFF_WAN_HDLC	0x20		/* WAN HDLC device		*/
-#define IFF_XMIT_DST_RELEASE 0x40	/* dev_hard_start_xmit() is allowed to
+#define IFF_BONDING	0x4		/* bonding master or slave	*/
+#define IFF_ISATAP	0x8		/* ISATAP interface (RFC4214)	*/
+#define IFF_WAN_HDLC	0x10		/* WAN HDLC device		*/
+#define IFF_XMIT_DST_RELEASE 0x20	/* dev_hard_start_xmit() is allowed to
 					 * release skb->dst
 					 */
-#define IFF_DONT_BRIDGE 0x80		/* disallow bridging this ether dev */
-#define IFF_DISABLE_NETPOLL	0x100	/* disable netpoll at run-time */
-#define IFF_MACVLAN_PORT	0x200	/* device used as macvlan port */
-#define IFF_BRIDGE_PORT	0x400		/* device used as bridge port */
-#define IFF_OVS_DATAPATH	0x800	/* device used as Open vSwitch
+#define IFF_DONT_BRIDGE 0x40		/* disallow bridging this ether dev */
+#define IFF_DISABLE_NETPOLL	0x80	/* disable netpoll at run-time */
+#define IFF_MACVLAN_PORT	0x100	/* device used as macvlan port */
+#define IFF_BRIDGE_PORT	0x200		/* device used as bridge port */
+#define IFF_OVS_DATAPATH	0x400	/* device used as Open vSwitch
 					 * datapath port */
 
 #define IF_GET_IFACE	0x0001		/* for querying only */
-- 
1.7.4


  parent reply	other threads:[~2011-03-12 13:15 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-12 13:14 [patch net-next-2.6 0/6] mostly bonding cleanups (partial repost) Jiri Pirko
2011-03-12 13:14 ` [patch net-next-2.6 1/6] af_packet: use skb->skb_iif instead of orig_dev->ifindex Jiri Pirko
2011-03-13 23:52   ` Changli Gao
2011-03-14  6:54     ` Jiri Pirko
2011-03-14  6:59       ` Changli Gao
2011-03-14  7:43         ` Jiri Pirko
2011-03-14 15:10           ` Changli Gao
2011-03-12 13:14 ` [patch net-next-2.6 2/6] bonding: register slave pointer for rx_handler Jiri Pirko
2011-03-16 19:52   ` David Miller
2011-03-12 13:14 ` [patch net-next-2.6 3/6] net: get rid of multiple bond-related netdevice->priv_flags Jiri Pirko
2011-03-16 18:45   ` [patch net-next-2.6 3/6 v2] " Jiri Pirko
2011-03-16 19:52     ` David Miller
2011-03-12 13:14 ` [patch net-next-2.6 4/6] bonding: wrap slave state work Jiri Pirko
2011-03-16 19:52   ` David Miller
2011-03-12 13:14 ` Jiri Pirko [this message]
2011-03-14  5:29   ` [patch net-next-2.6 5/6] bonding: get rid of IFF_SLAVE_INACTIVE netdev->priv_flag WANG Cong
2011-03-16 18:46   ` [patch net-next-2.6 5/6 v2] " Jiri Pirko
2011-03-16 19:52     ` David Miller
2011-03-12 13:14 ` [patch net-next-2.6 6/6] net: introduce rx_handler results and logic around that Jiri Pirko
2011-03-12 13:24   ` Nicolas de Pesloüan
2011-03-12 13:25     ` Nicolas de Pesloüan
2011-03-12 13:36       ` Jiri Pirko
2011-03-16 19:53         ` David Miller

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=1299935679-18135-6-git-send-email-jpirko@redhat.com \
    --to=jpirko@redhat.com \
    --cc=andy@greyhouse.net \
    --cc=davem@davemloft.net \
    --cc=eric.dumazet@gmail.com \
    --cc=fubar@us.ibm.com \
    --cc=kaber@trash.net \
    --cc=netdev@vger.kernel.org \
    --cc=nicolas.2p.debian@gmail.com \
    --cc=shemminger@linux-foundation.org \
    --cc=xiaosuo@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).