Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac802...
authorJohn W. Linville <linville@tuxdriver.com>
Thu, 6 Dec 2012 19:58:41 +0000 (14:58 -0500)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 6 Dec 2012 19:58:41 +0000 (14:58 -0500)
Conflicts:
drivers/net/wireless/mwifiex/sta_ioctl.c
net/mac80211/scan.c

1  2 
drivers/net/wireless/mwifiex/sta_ioctl.c
net/mac80211/cfg.c
net/mac80211/ieee80211_i.h
net/mac80211/main.c
net/mac80211/scan.c
net/mac80211/status.c
net/mac80211/tx.c
net/mac80211/util.c
net/wireless/reg.c

index 95e3ab531c939fc14ae37a6e153a73d34c572386,5d7b83e2dc4df42607516f7f65c3f8983476a98f..cb682561c43898fd6f27c03ab3aba38adbf269d8
@@@ -158,13 -158,22 +158,23 @@@ int mwifiex_fill_new_bss_desc(struct mw
                              struct cfg80211_bss *bss,
                              struct mwifiex_bssdescriptor *bss_desc)
  {
 -      int ret, beacon_ie_len;
 +      int ret;
        u8 *beacon_ie;
++      size_t beacon_ie_len;
        struct mwifiex_bss_priv *bss_priv = (void *)bss->priv;
-       size_t beacon_ie_len = bss->len_information_elements;
+       const struct cfg80211_bss_ies *ies;
+       rcu_read_lock();
+       ies = rcu_dereference(bss->ies);
+       if (WARN_ON(!ies)) {
+               /* should never happen */
+               rcu_read_unlock();
+               return -EINVAL;
+       }
+       beacon_ie = kmemdup(ies->data, ies->len, GFP_ATOMIC);
+       beacon_ie_len = ies->len;
+       rcu_read_unlock();
  
-       beacon_ie = kmemdup(bss->information_elements, beacon_ie_len,
-                           GFP_KERNEL);
        if (!beacon_ie) {
                dev_err(priv->adapter->dev, " failed to alloc beacon_ie\n");
                return -ENOMEM;
Simple merge
Simple merge
Simple merge
index f3340279aba3c1bf14616cebe90fb7ce17a6837d,d7c190b80670ea05ce1a35de380d1ed5d4b07ff5..f7176ac5a535a711d8e4bdca4e1170fa8ac90e17
@@@ -927,8 -930,11 +930,11 @@@ int ieee80211_request_sched_scan_start(
                                       struct cfg80211_sched_scan_request *req)
  {
        struct ieee80211_local *local = sdata->local;
 -      struct ieee80211_sched_scan_ies sched_scan_ies;
 +      struct ieee80211_sched_scan_ies sched_scan_ies = {};
-       int ret, i;
+       int ret, i, iebufsz;
+       iebufsz = 2 + IEEE80211_MAX_SSID_LEN +
+                 local->scan_ies_len + req->ie_len;
  
        mutex_lock(&local->mtx);
  
Simple merge
Simple merge
Simple merge
Simple merge