diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2011-11-23 02:09:32 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-11-23 18:48:19 -0500 |
commit | 2cfa5a0471fef43fda0b7bd87e3a5e4dbadb7809 (patch) | |
tree | 0603cf740823a45337e2b82ba63bae96a6e75186 /drivers | |
parent | 8c2152286aabe753519d7627a2992625b97e4b20 (diff) |
net: treewide use of RCU_INIT_POINTER
rcu_assign_pointer(ptr, NULL) can be safely replaced by
RCU_INIT_POINTER(ptr, NULL)
(old rcu_assign_pointer() macro was testing the NULL value and could
omit the smp_wmb(), but this had to be removed because of compiler
warnings)
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/cnic.c | 6 | ||||
-rw-r--r-- | drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c | 4 | ||||
-rw-r--r-- | drivers/net/macvtap.c | 8 | ||||
-rw-r--r-- | drivers/net/ppp/pptp.c | 2 | ||||
-rw-r--r-- | drivers/net/team/team_mode_activebackup.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/ath/carl9170/main.c | 12 |
8 files changed, 19 insertions, 19 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c index 83d8cefba8c0..d573169279b7 100644 --- a/drivers/net/ethernet/broadcom/bnx2.c +++ b/drivers/net/ethernet/broadcom/bnx2.c | |||
@@ -409,7 +409,7 @@ static int bnx2_unregister_cnic(struct net_device *dev) | |||
409 | mutex_lock(&bp->cnic_lock); | 409 | mutex_lock(&bp->cnic_lock); |
410 | cp->drv_state = 0; | 410 | cp->drv_state = 0; |
411 | bnapi->cnic_present = 0; | 411 | bnapi->cnic_present = 0; |
412 | rcu_assign_pointer(bp->cnic_ops, NULL); | 412 | RCU_INIT_POINTER(bp->cnic_ops, NULL); |
413 | mutex_unlock(&bp->cnic_lock); | 413 | mutex_unlock(&bp->cnic_lock); |
414 | synchronize_rcu(); | 414 | synchronize_rcu(); |
415 | return 0; | 415 | return 0; |
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c index 83481e20f144..0cdbb70ef83e 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | |||
@@ -11587,7 +11587,7 @@ static int bnx2x_unregister_cnic(struct net_device *dev) | |||
11587 | 11587 | ||
11588 | mutex_lock(&bp->cnic_mutex); | 11588 | mutex_lock(&bp->cnic_mutex); |
11589 | cp->drv_state = 0; | 11589 | cp->drv_state = 0; |
11590 | rcu_assign_pointer(bp->cnic_ops, NULL); | 11590 | RCU_INIT_POINTER(bp->cnic_ops, NULL); |
11591 | mutex_unlock(&bp->cnic_mutex); | 11591 | mutex_unlock(&bp->cnic_mutex); |
11592 | synchronize_rcu(); | 11592 | synchronize_rcu(); |
11593 | kfree(bp->cnic_kwq); | 11593 | kfree(bp->cnic_kwq); |
diff --git a/drivers/net/ethernet/broadcom/cnic.c b/drivers/net/ethernet/broadcom/cnic.c index 099f41d99ec0..b336e55e0d80 100644 --- a/drivers/net/ethernet/broadcom/cnic.c +++ b/drivers/net/ethernet/broadcom/cnic.c | |||
@@ -506,7 +506,7 @@ int cnic_unregister_driver(int ulp_type) | |||
506 | } | 506 | } |
507 | read_unlock(&cnic_dev_lock); | 507 | read_unlock(&cnic_dev_lock); |
508 | 508 | ||
509 | rcu_assign_pointer(cnic_ulp_tbl[ulp_type], NULL); | 509 | RCU_INIT_POINTER(cnic_ulp_tbl[ulp_type], NULL); |
510 | 510 | ||
511 | mutex_unlock(&cnic_lock); | 511 | mutex_unlock(&cnic_lock); |
512 | synchronize_rcu(); | 512 | synchronize_rcu(); |
@@ -579,7 +579,7 @@ static int cnic_unregister_device(struct cnic_dev *dev, int ulp_type) | |||
579 | } | 579 | } |
580 | mutex_lock(&cnic_lock); | 580 | mutex_lock(&cnic_lock); |
581 | if (rcu_dereference(cp->ulp_ops[ulp_type])) { | 581 | if (rcu_dereference(cp->ulp_ops[ulp_type])) { |
582 | rcu_assign_pointer(cp->ulp_ops[ulp_type], NULL); | 582 | RCU_INIT_POINTER(cp->ulp_ops[ulp_type], NULL); |
583 | cnic_put(dev); | 583 | cnic_put(dev); |
584 | } else { | 584 | } else { |
585 | pr_err("%s: device not registered to this ulp type %d\n", | 585 | pr_err("%s: device not registered to this ulp type %d\n", |
@@ -5134,7 +5134,7 @@ static void cnic_stop_hw(struct cnic_dev *dev) | |||
5134 | } | 5134 | } |
5135 | cnic_shutdown_rings(dev); | 5135 | cnic_shutdown_rings(dev); |
5136 | clear_bit(CNIC_F_CNIC_UP, &dev->flags); | 5136 | clear_bit(CNIC_F_CNIC_UP, &dev->flags); |
5137 | rcu_assign_pointer(cp->ulp_ops[CNIC_ULP_L4], NULL); | 5137 | RCU_INIT_POINTER(cp->ulp_ops[CNIC_ULP_L4], NULL); |
5138 | synchronize_rcu(); | 5138 | synchronize_rcu(); |
5139 | cnic_cm_shutdown(dev); | 5139 | cnic_cm_shutdown(dev); |
5140 | cp->stop_hw(dev); | 5140 | cp->stop_hw(dev); |
diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c index 90ff1318cc05..7f7882d24bc6 100644 --- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c +++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c | |||
@@ -1301,7 +1301,7 @@ int cxgb3_offload_activate(struct adapter *adapter) | |||
1301 | 1301 | ||
1302 | out_free_l2t: | 1302 | out_free_l2t: |
1303 | t3_free_l2t(L2DATA(dev)); | 1303 | t3_free_l2t(L2DATA(dev)); |
1304 | rcu_assign_pointer(dev->l2opt, NULL); | 1304 | RCU_INIT_POINTER(dev->l2opt, NULL); |
1305 | out_free: | 1305 | out_free: |
1306 | kfree(t); | 1306 | kfree(t); |
1307 | return err; | 1307 | return err; |
@@ -1329,7 +1329,7 @@ void cxgb3_offload_deactivate(struct adapter *adapter) | |||
1329 | rcu_read_lock(); | 1329 | rcu_read_lock(); |
1330 | d = L2DATA(tdev); | 1330 | d = L2DATA(tdev); |
1331 | rcu_read_unlock(); | 1331 | rcu_read_unlock(); |
1332 | rcu_assign_pointer(tdev->l2opt, NULL); | 1332 | RCU_INIT_POINTER(tdev->l2opt, NULL); |
1333 | call_rcu(&d->rcu_head, clean_l2_data); | 1333 | call_rcu(&d->rcu_head, clean_l2_data); |
1334 | if (t->nofail_skb) | 1334 | if (t->nofail_skb) |
1335 | kfree_skb(t->nofail_skb); | 1335 | kfree_skb(t->nofail_skb); |
diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c index 1b7082d08f33..7c88d136e723 100644 --- a/drivers/net/macvtap.c +++ b/drivers/net/macvtap.c | |||
@@ -145,8 +145,8 @@ static void macvtap_put_queue(struct macvtap_queue *q) | |||
145 | if (vlan) { | 145 | if (vlan) { |
146 | int index = get_slot(vlan, q); | 146 | int index = get_slot(vlan, q); |
147 | 147 | ||
148 | rcu_assign_pointer(vlan->taps[index], NULL); | 148 | RCU_INIT_POINTER(vlan->taps[index], NULL); |
149 | rcu_assign_pointer(q->vlan, NULL); | 149 | RCU_INIT_POINTER(q->vlan, NULL); |
150 | sock_put(&q->sk); | 150 | sock_put(&q->sk); |
151 | --vlan->numvtaps; | 151 | --vlan->numvtaps; |
152 | } | 152 | } |
@@ -223,8 +223,8 @@ static void macvtap_del_queues(struct net_device *dev) | |||
223 | lockdep_is_held(&macvtap_lock)); | 223 | lockdep_is_held(&macvtap_lock)); |
224 | if (q) { | 224 | if (q) { |
225 | qlist[j++] = q; | 225 | qlist[j++] = q; |
226 | rcu_assign_pointer(vlan->taps[i], NULL); | 226 | RCU_INIT_POINTER(vlan->taps[i], NULL); |
227 | rcu_assign_pointer(q->vlan, NULL); | 227 | RCU_INIT_POINTER(q->vlan, NULL); |
228 | vlan->numvtaps--; | 228 | vlan->numvtaps--; |
229 | } | 229 | } |
230 | } | 230 | } |
diff --git a/drivers/net/ppp/pptp.c b/drivers/net/ppp/pptp.c index 89f829f5f725..ede899ca0ee6 100644 --- a/drivers/net/ppp/pptp.c +++ b/drivers/net/ppp/pptp.c | |||
@@ -162,7 +162,7 @@ static void del_chan(struct pppox_sock *sock) | |||
162 | { | 162 | { |
163 | spin_lock(&chan_lock); | 163 | spin_lock(&chan_lock); |
164 | clear_bit(sock->proto.pptp.src_addr.call_id, callid_bitmap); | 164 | clear_bit(sock->proto.pptp.src_addr.call_id, callid_bitmap); |
165 | rcu_assign_pointer(callid_sock[sock->proto.pptp.src_addr.call_id], NULL); | 165 | RCU_INIT_POINTER(callid_sock[sock->proto.pptp.src_addr.call_id], NULL); |
166 | spin_unlock(&chan_lock); | 166 | spin_unlock(&chan_lock); |
167 | synchronize_rcu(); | 167 | synchronize_rcu(); |
168 | } | 168 | } |
diff --git a/drivers/net/team/team_mode_activebackup.c b/drivers/net/team/team_mode_activebackup.c index b34427502b54..f4d960e82e29 100644 --- a/drivers/net/team/team_mode_activebackup.c +++ b/drivers/net/team/team_mode_activebackup.c | |||
@@ -56,7 +56,7 @@ drop: | |||
56 | static void ab_port_leave(struct team *team, struct team_port *port) | 56 | static void ab_port_leave(struct team *team, struct team_port *port) |
57 | { | 57 | { |
58 | if (ab_priv(team)->active_port == port) | 58 | if (ab_priv(team)->active_port == port) |
59 | rcu_assign_pointer(ab_priv(team)->active_port, NULL); | 59 | RCU_INIT_POINTER(ab_priv(team)->active_port, NULL); |
60 | } | 60 | } |
61 | 61 | ||
62 | static int ab_active_port_get(struct team *team, void *arg) | 62 | static int ab_active_port_get(struct team *team, void *arg) |
diff --git a/drivers/net/wireless/ath/carl9170/main.c b/drivers/net/wireless/ath/carl9170/main.c index f06e0695d412..551859214ee9 100644 --- a/drivers/net/wireless/ath/carl9170/main.c +++ b/drivers/net/wireless/ath/carl9170/main.c | |||
@@ -446,7 +446,7 @@ static void carl9170_op_stop(struct ieee80211_hw *hw) | |||
446 | 446 | ||
447 | mutex_lock(&ar->mutex); | 447 | mutex_lock(&ar->mutex); |
448 | if (IS_ACCEPTING_CMD(ar)) { | 448 | if (IS_ACCEPTING_CMD(ar)) { |
449 | rcu_assign_pointer(ar->beacon_iter, NULL); | 449 | RCU_INIT_POINTER(ar->beacon_iter, NULL); |
450 | 450 | ||
451 | carl9170_led_set_state(ar, 0); | 451 | carl9170_led_set_state(ar, 0); |
452 | 452 | ||
@@ -678,7 +678,7 @@ unlock: | |||
678 | vif_priv->active = false; | 678 | vif_priv->active = false; |
679 | bitmap_release_region(&ar->vif_bitmap, vif_id, 0); | 679 | bitmap_release_region(&ar->vif_bitmap, vif_id, 0); |
680 | ar->vifs--; | 680 | ar->vifs--; |
681 | rcu_assign_pointer(ar->vif_priv[vif_id].vif, NULL); | 681 | RCU_INIT_POINTER(ar->vif_priv[vif_id].vif, NULL); |
682 | list_del_rcu(&vif_priv->list); | 682 | list_del_rcu(&vif_priv->list); |
683 | mutex_unlock(&ar->mutex); | 683 | mutex_unlock(&ar->mutex); |
684 | synchronize_rcu(); | 684 | synchronize_rcu(); |
@@ -716,7 +716,7 @@ static void carl9170_op_remove_interface(struct ieee80211_hw *hw, | |||
716 | WARN_ON(vif_priv->enable_beacon); | 716 | WARN_ON(vif_priv->enable_beacon); |
717 | vif_priv->enable_beacon = false; | 717 | vif_priv->enable_beacon = false; |
718 | list_del_rcu(&vif_priv->list); | 718 | list_del_rcu(&vif_priv->list); |
719 | rcu_assign_pointer(ar->vif_priv[id].vif, NULL); | 719 | RCU_INIT_POINTER(ar->vif_priv[id].vif, NULL); |
720 | 720 | ||
721 | if (vif == main_vif) { | 721 | if (vif == main_vif) { |
722 | rcu_read_unlock(); | 722 | rcu_read_unlock(); |
@@ -1258,7 +1258,7 @@ static int carl9170_op_sta_add(struct ieee80211_hw *hw, | |||
1258 | } | 1258 | } |
1259 | 1259 | ||
1260 | for (i = 0; i < CARL9170_NUM_TID; i++) | 1260 | for (i = 0; i < CARL9170_NUM_TID; i++) |
1261 | rcu_assign_pointer(sta_info->agg[i], NULL); | 1261 | RCU_INIT_POINTER(sta_info->agg[i], NULL); |
1262 | 1262 | ||
1263 | sta_info->ampdu_max_len = 1 << (3 + sta->ht_cap.ampdu_factor); | 1263 | sta_info->ampdu_max_len = 1 << (3 + sta->ht_cap.ampdu_factor); |
1264 | sta_info->ht_sta = true; | 1264 | sta_info->ht_sta = true; |
@@ -1285,7 +1285,7 @@ static int carl9170_op_sta_remove(struct ieee80211_hw *hw, | |||
1285 | struct carl9170_sta_tid *tid_info; | 1285 | struct carl9170_sta_tid *tid_info; |
1286 | 1286 | ||
1287 | tid_info = rcu_dereference(sta_info->agg[i]); | 1287 | tid_info = rcu_dereference(sta_info->agg[i]); |
1288 | rcu_assign_pointer(sta_info->agg[i], NULL); | 1288 | RCU_INIT_POINTER(sta_info->agg[i], NULL); |
1289 | 1289 | ||
1290 | if (!tid_info) | 1290 | if (!tid_info) |
1291 | continue; | 1291 | continue; |
@@ -1398,7 +1398,7 @@ static int carl9170_op_ampdu_action(struct ieee80211_hw *hw, | |||
1398 | spin_unlock_bh(&ar->tx_ampdu_list_lock); | 1398 | spin_unlock_bh(&ar->tx_ampdu_list_lock); |
1399 | } | 1399 | } |
1400 | 1400 | ||
1401 | rcu_assign_pointer(sta_info->agg[tid], NULL); | 1401 | RCU_INIT_POINTER(sta_info->agg[tid], NULL); |
1402 | rcu_read_unlock(); | 1402 | rcu_read_unlock(); |
1403 | 1403 | ||
1404 | ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); | 1404 | ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); |