forked from luck/tmp_suning_uos_patched
vlan: rename __vlan_find_dev_deep() to __vlan_find_dev_deep_rcu()
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@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
60ff746739
commit
f06c7f9f92
|
@ -185,7 +185,7 @@ static struct net_device *get_iff_from_mac(struct adapter *adapter,
|
||||||
if (ether_addr_equal(dev->dev_addr, mac)) {
|
if (ether_addr_equal(dev->dev_addr, mac)) {
|
||||||
rcu_read_lock();
|
rcu_read_lock();
|
||||||
if (vlan && vlan != VLAN_VID_MASK) {
|
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)) {
|
} else if (netif_is_bond_slave(dev)) {
|
||||||
struct net_device *upper_dev;
|
struct net_device *upper_dev;
|
||||||
|
|
||||||
|
|
|
@ -4068,7 +4068,7 @@ static int update_root_dev_clip(struct net_device *dev)
|
||||||
|
|
||||||
/* Parse all bond and vlan devices layered on top of the physical dev */
|
/* Parse all bond and vlan devices layered on top of the physical dev */
|
||||||
for (i = 0; i < VLAN_N_VID; i++) {
|
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)
|
if (!root_dev)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
|
@ -4146,7 +4146,7 @@ void qlcnic_restore_indev_addr(struct net_device *netdev, unsigned long event)
|
||||||
|
|
||||||
rcu_read_lock();
|
rcu_read_lock();
|
||||||
for_each_set_bit(vid, adapter->vlans, VLAN_N_VID) {
|
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)
|
if (!dev)
|
||||||
continue;
|
continue;
|
||||||
qlcnic_config_indev_addr(adapter, dev, event);
|
qlcnic_config_indev_addr(adapter, dev, event);
|
||||||
|
|
|
@ -223,8 +223,8 @@ static void do_neigh_solicit(struct usbnet *dev, u8 *buf, u16 tci)
|
||||||
/* need to send the NA on the VLAN dev, if any */
|
/* need to send the NA on the VLAN dev, if any */
|
||||||
rcu_read_lock();
|
rcu_read_lock();
|
||||||
if (tci) {
|
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);
|
tci);
|
||||||
if (!netdev) {
|
if (!netdev) {
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -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) {
|
for_each_set_bit(vid, card->active_vlans, VLAN_N_VID) {
|
||||||
struct net_device *netdev;
|
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);
|
vid);
|
||||||
if (netdev == NULL ||
|
if (netdev == NULL ||
|
||||||
!(netdev->flags & IFF_UP))
|
!(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) {
|
for_each_set_bit(vid, card->active_vlans, VLAN_N_VID) {
|
||||||
struct net_device *netdev;
|
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);
|
vid);
|
||||||
if (netdev == NULL ||
|
if (netdev == NULL ||
|
||||||
!(netdev->flags & IFF_UP))
|
!(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");
|
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)
|
if (!netdev)
|
||||||
return;
|
return;
|
||||||
in_dev = in_dev_get(netdev);
|
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");
|
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)
|
if (!netdev)
|
||||||
return;
|
return;
|
||||||
in6_dev = in6_dev_get(netdev);
|
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;
|
struct net_device *netdev;
|
||||||
|
|
||||||
rcu_read_lock();
|
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);
|
vid);
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
if (netdev == dev) {
|
if (netdev == dev) {
|
||||||
|
|
|
@ -106,7 +106,7 @@ struct vlan_pcpu_stats {
|
||||||
|
|
||||||
#if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
|
#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);
|
__be16 vlan_proto, u16 vlan_id);
|
||||||
extern struct net_device *vlan_dev_real_dev(const struct net_device *dev);
|
extern struct net_device *vlan_dev_real_dev(const struct net_device *dev);
|
||||||
extern u16 vlan_dev_vlan_id(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);
|
extern bool vlan_uses_dev(const struct net_device *dev);
|
||||||
#else
|
#else
|
||||||
static inline struct net_device *
|
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)
|
__be16 vlan_proto, u16 vlan_id)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -63,7 +63,7 @@ bool vlan_do_receive(struct sk_buff **skbp)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Must be invoked with rcu_read_lock. */
|
/* 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)
|
__be16 vlan_proto, u16 vlan_id)
|
||||||
{
|
{
|
||||||
struct vlan_info *vlan_info = rcu_dereference(dev->vlan_info);
|
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);
|
upper_dev = netdev_master_upper_dev_get_rcu(dev);
|
||||||
if (upper_dev)
|
if (upper_dev)
|
||||||
return __vlan_find_dev_deep(upper_dev,
|
return __vlan_find_dev_deep_rcu(upper_dev,
|
||||||
vlan_proto, vlan_id);
|
vlan_proto, vlan_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
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)
|
struct net_device *vlan_dev_real_dev(const struct net_device *dev)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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))
|
if (brnf_pass_vlan_indev == 0 || !vlan_tx_tag_present(skb))
|
||||||
return br;
|
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);
|
vlan_tx_tag_get(skb) & VLAN_VID_MASK);
|
||||||
|
|
||||||
return vlan ? vlan : br;
|
return vlan ? vlan : br;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user