lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 05 Mar 2011 15:18:11 +0100 From: Nicolas de Pesloüan <nicolas.2p.debian@...il.com> To: Jiri Pirko <jpirko@...hat.com> CC: netdev@...r.kernel.org, davem@...emloft.net, shemminger@...ux-foundation.org, kaber@...sh.net, fubar@...ibm.com, eric.dumazet@...il.com, andy@...yhouse.net Subject: Re: [patch net-next-2.6 5/8] bonding: get rid of IFF_SLAVE_INACTIVE netdev->priv_flag Le 05/03/2011 11:29, Jiri Pirko a écrit : > 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@...hat.com> Reviewed-by: Nicolas de Pesloüan <nicolas.2p.debian@...e.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 62020a7..dbe182c 100644 > --- a/drivers/net/bonding/bond_main.c > +++ b/drivers/net/bonding/bond_main.c > @@ -1474,7 +1474,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; > @@ -2131,7 +2131,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); > > @@ -2242,8 +2242,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 8a3718b..8f78166 100644 > --- a/drivers/net/bonding/bonding.h > +++ b/drivers/net/bonding/bonding.h > @@ -190,8 +190,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]; > @@ -374,13 +375,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 */ -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists