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: Fri, 9 May 2014 10:19:50 +0800 From: Ding Tianhong <dingtianhong@...wei.com> To: "David S. Miller" <davem@...emloft.net>, Patrick McHardy <kaber@...sh.net>, Netdev <netdev@...r.kernel.org>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org> Subject: Re: [PATCH net-next] vlan: rename __vlan_find_dev_deep() to __vlan_find_dev_deep_rcu_rcu() On 2014/5/8 10:29, Ding Tianhong wrote: > The __vlan_find_dev_deep should always called in RCU, according > David's suggestion, rename to __vlan_find_dev_deep_rcu looks more > reasonable. > > Signed-off-by: Ding Tianhong <dingtianhong@...wei.com> Self Nacked, I make this patch from net repository, and could not applied to net-next, I will fix this and resend for net-next repository, sorry for the noise. Ding > --- > drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c | 2 +- > drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 2 +- > drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 2 +- > drivers/net/usb/cdc_mbim.c | 2 +- > drivers/s390/net/qeth_l3_main.c | 10 +++++----- > include/linux/if_vlan.h | 4 ++-- > net/8021q/vlan_core.c | 6 +++--- > net/bridge/br_netfilter.c | 2 +- > 8 files changed, 15 insertions(+), 15 deletions(-) > > diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c > index c0a9dd5..b0cbb2b 100644 > --- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c > +++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c > @@ -185,7 +185,7 @@ static struct net_device *get_iff_from_mac(struct adapter *adapter, > if (ether_addr_equal(dev->dev_addr, mac)) { > rcu_read_lock(); > if (vlan && vlan != VLAN_VID_MASK) { > - dev = __vlan_find_dev_deep(dev, htons(ETH_P_8021Q), vlan); > + dev = __vlan_find_dev_deep_rcu(dev, htons(ETH_P_8021Q), vlan); > } else if (netif_is_bond_slave(dev)) { > struct net_device *upper_dev; > > diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c > index 24e16e3..05ce66e 100644 > --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c > +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c > @@ -4061,7 +4061,7 @@ static int update_root_dev_clip(struct net_device *dev) > > /* Parse all bond and vlan devices layered on top of the physical dev */ > for (i = 0; i < VLAN_N_VID; i++) { > - root_dev = __vlan_find_dev_deep(dev, htons(ETH_P_8021Q), i); > + root_dev = __vlan_find_dev_deep_rcu(dev, htons(ETH_P_8021Q), i); > if (!root_dev) > continue; > > diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c > index 7e55e88..076aa5e 100644 > --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c > +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c > @@ -4122,7 +4122,7 @@ void qlcnic_restore_indev_addr(struct net_device *netdev, unsigned long event) > > rcu_read_lock(); > for_each_set_bit(vid, adapter->vlans, VLAN_N_VID) { > - dev = __vlan_find_dev_deep(netdev, htons(ETH_P_8021Q), vid); > + dev = __vlan_find_dev_deep_rcu(netdev, htons(ETH_P_8021Q), vid); > if (!dev) > continue; > qlcnic_config_indev_addr(adapter, dev, event); > diff --git a/drivers/net/usb/cdc_mbim.c b/drivers/net/usb/cdc_mbim.c > index 13f7705..5b5a0a4 100644 > --- a/drivers/net/usb/cdc_mbim.c > +++ b/drivers/net/usb/cdc_mbim.c > @@ -206,7 +206,7 @@ static void do_neigh_solicit(struct usbnet *dev, u8 *buf, u16 tci) > /* need to send the NA on the VLAN dev, if any */ > rcu_read_lock(); > if (tci) { > - netdev = __vlan_find_dev_deep(dev->net, htons(ETH_P_8021Q), > + netdev = __vlan_find_dev_deep_rcu(dev->net, htons(ETH_P_8021Q), > tci); > if (!netdev) { > rcu_read_unlock(); > diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c > index 3524d34..403889a 100644 > --- a/drivers/s390/net/qeth_l3_main.c > +++ b/drivers/s390/net/qeth_l3_main.c > @@ -1659,7 +1659,7 @@ static void qeth_l3_add_vlan_mc(struct qeth_card *card) > for_each_set_bit(vid, card->active_vlans, VLAN_N_VID) { > struct net_device *netdev; > > - netdev = __vlan_find_dev_deep(card->dev, htons(ETH_P_8021Q), > + netdev = __vlan_find_dev_deep_rcu(card->dev, htons(ETH_P_8021Q), > vid); > if (netdev == NULL || > !(netdev->flags & IFF_UP)) > @@ -1721,7 +1721,7 @@ static void qeth_l3_add_vlan_mc6(struct qeth_card *card) > for_each_set_bit(vid, card->active_vlans, VLAN_N_VID) { > struct net_device *netdev; > > - netdev = __vlan_find_dev_deep(card->dev, htons(ETH_P_8021Q), > + netdev = __vlan_find_dev_deep_rcu(card->dev, htons(ETH_P_8021Q), > vid); > if (netdev == NULL || > !(netdev->flags & IFF_UP)) > @@ -1766,7 +1766,7 @@ static void qeth_l3_free_vlan_addresses4(struct qeth_card *card, > > QETH_CARD_TEXT(card, 4, "frvaddr4"); > > - netdev = __vlan_find_dev_deep(card->dev, htons(ETH_P_8021Q), vid); > + netdev = __vlan_find_dev_deep_rcu(card->dev, htons(ETH_P_8021Q), vid); > if (!netdev) > return; > in_dev = in_dev_get(netdev); > @@ -1796,7 +1796,7 @@ static void qeth_l3_free_vlan_addresses6(struct qeth_card *card, > > QETH_CARD_TEXT(card, 4, "frvaddr6"); > > - netdev = __vlan_find_dev_deep(card->dev, htons(ETH_P_8021Q), vid); > + netdev = __vlan_find_dev_deep_rcu(card->dev, htons(ETH_P_8021Q), vid); > if (!netdev) > return; > in6_dev = in6_dev_get(netdev); > @@ -2089,7 +2089,7 @@ static int qeth_l3_verify_vlan_dev(struct net_device *dev, > struct net_device *netdev; > > rcu_read_lock(); > - netdev = __vlan_find_dev_deep(card->dev, htons(ETH_P_8021Q), > + netdev = __vlan_find_dev_deep_rcu(card->dev, htons(ETH_P_8021Q), > vid); > rcu_read_unlock(); > if (netdev == dev) { > diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h > index 13bbbde..8c0fb7f 100644 > --- a/include/linux/if_vlan.h > +++ b/include/linux/if_vlan.h > @@ -106,7 +106,7 @@ struct vlan_pcpu_stats { > > #if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE) > > -extern struct net_device *__vlan_find_dev_deep(struct net_device *real_dev, > +extern struct net_device *__vlan_find_dev_deep_rcu(struct net_device *real_dev, > __be16 vlan_proto, u16 vlan_id); > extern struct net_device *vlan_dev_real_dev(const struct net_device *dev); > extern u16 vlan_dev_vlan_id(const struct net_device *dev); > @@ -199,7 +199,7 @@ extern void vlan_vids_del_by_dev(struct net_device *dev, > extern bool vlan_uses_dev(const struct net_device *dev); > #else > static inline struct net_device * > -__vlan_find_dev_deep(struct net_device *real_dev, > +__vlan_find_dev_deep_rcu(struct net_device *real_dev, > __be16 vlan_proto, u16 vlan_id) > { > return NULL; > diff --git a/net/8021q/vlan_core.c b/net/8021q/vlan_core.c > index 3c32bd2..9012b1c 100644 > --- a/net/8021q/vlan_core.c > +++ b/net/8021q/vlan_core.c > @@ -63,7 +63,7 @@ bool vlan_do_receive(struct sk_buff **skbp) > } > > /* Must be invoked with rcu_read_lock. */ > -struct net_device *__vlan_find_dev_deep(struct net_device *dev, > +struct net_device *__vlan_find_dev_deep_rcu(struct net_device *dev, > __be16 vlan_proto, u16 vlan_id) > { > struct vlan_info *vlan_info = rcu_dereference(dev->vlan_info); > @@ -81,13 +81,13 @@ struct net_device *__vlan_find_dev_deep(struct net_device *dev, > > upper_dev = netdev_master_upper_dev_get_rcu(dev); > if (upper_dev) > - return __vlan_find_dev_deep(upper_dev, > + return __vlan_find_dev_deep_rcu(upper_dev, > vlan_proto, vlan_id); > } > > return NULL; > } > -EXPORT_SYMBOL(__vlan_find_dev_deep); > +EXPORT_SYMBOL(__vlan_find_dev_deep_rcu); > > struct net_device *vlan_dev_real_dev(const struct net_device *dev) > { > diff --git a/net/bridge/br_netfilter.c b/net/bridge/br_netfilter.c > index 80e1b0f..adc5708 100644 > --- a/net/bridge/br_netfilter.c > +++ b/net/bridge/br_netfilter.c > @@ -535,7 +535,7 @@ static struct net_device *brnf_get_logical_dev(struct sk_buff *skb, const struct > if (brnf_pass_vlan_indev == 0 || !vlan_tx_tag_present(skb)) > return br; > > - vlan = __vlan_find_dev_deep(br, skb->vlan_proto, > + vlan = __vlan_find_dev_deep_rcu(br, skb->vlan_proto, > vlan_tx_tag_get(skb) & VLAN_VID_MASK); > > return vlan ? vlan : br; > -- 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