diff options
Diffstat (limited to 'net/wireless/scan.c')
-rw-r--r-- | net/wireless/scan.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/net/wireless/scan.c b/net/wireless/scan.c index a56287bb550c..23b7e59c6506 100644 --- a/net/wireless/scan.c +++ b/net/wireless/scan.c | |||
@@ -583,16 +583,15 @@ cfg80211_bss_update(struct cfg80211_registered_device *dev, | |||
583 | kfree_rcu((struct cfg80211_bss_ies *)old, | 583 | kfree_rcu((struct cfg80211_bss_ies *)old, |
584 | rcu_head); | 584 | rcu_head); |
585 | } else if (rcu_access_pointer(tmp->pub.beacon_ies)) { | 585 | } else if (rcu_access_pointer(tmp->pub.beacon_ies)) { |
586 | const struct cfg80211_bss_ies *old, *ies; | 586 | const struct cfg80211_bss_ies *old; |
587 | 587 | ||
588 | old = rcu_access_pointer(found->pub.beacon_ies); | 588 | old = rcu_access_pointer(found->pub.beacon_ies); |
589 | ies = rcu_access_pointer(found->pub.ies); | ||
590 | 589 | ||
591 | rcu_assign_pointer(found->pub.beacon_ies, | 590 | rcu_assign_pointer(found->pub.beacon_ies, |
592 | tmp->pub.beacon_ies); | 591 | tmp->pub.beacon_ies); |
593 | 592 | ||
594 | /* Override IEs if they were from a beacon before */ | 593 | /* Override IEs if they were from a beacon before */ |
595 | if (old == ies) | 594 | if (old == rcu_access_pointer(found->pub.ies)) |
596 | rcu_assign_pointer(found->pub.ies, | 595 | rcu_assign_pointer(found->pub.ies, |
597 | tmp->pub.beacon_ies); | 596 | tmp->pub.beacon_ies); |
598 | 597 | ||