diff options
Diffstat (limited to 'drivers/staging/wlan-ng/cfg80211.c')
-rw-r--r-- | drivers/staging/wlan-ng/cfg80211.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/staging/wlan-ng/cfg80211.c b/drivers/staging/wlan-ng/cfg80211.c index 4cd3ba5d564..8bc562b8c4d 100644 --- a/drivers/staging/wlan-ng/cfg80211.c +++ b/drivers/staging/wlan-ng/cfg80211.c | |||
@@ -332,6 +332,7 @@ int prism2_scan(struct wiphy *wiphy, struct net_device *dev, | |||
332 | wlandevice_t *wlandev = dev->ml_priv; | 332 | wlandevice_t *wlandev = dev->ml_priv; |
333 | struct p80211msg_dot11req_scan msg1; | 333 | struct p80211msg_dot11req_scan msg1; |
334 | struct p80211msg_dot11req_scan_results msg2; | 334 | struct p80211msg_dot11req_scan_results msg2; |
335 | struct cfg80211_bss *bss; | ||
335 | int result; | 336 | int result; |
336 | int err = 0; | 337 | int err = 0; |
337 | int numbss = 0; | 338 | int numbss = 0; |
@@ -401,7 +402,7 @@ int prism2_scan(struct wiphy *wiphy, struct net_device *dev, | |||
401 | ie_buf[1] = msg2.ssid.data.len; | 402 | ie_buf[1] = msg2.ssid.data.len; |
402 | ie_len = ie_buf[1] + 2; | 403 | ie_len = ie_buf[1] + 2; |
403 | memcpy(&ie_buf[2], &(msg2.ssid.data.data), msg2.ssid.data.len); | 404 | memcpy(&ie_buf[2], &(msg2.ssid.data.data), msg2.ssid.data.len); |
404 | cfg80211_inform_bss(wiphy, | 405 | bss = cfg80211_inform_bss(wiphy, |
405 | ieee80211_get_channel(wiphy, ieee80211_dsss_chan_to_freq(msg2.dschannel.data)), | 406 | ieee80211_get_channel(wiphy, ieee80211_dsss_chan_to_freq(msg2.dschannel.data)), |
406 | (const u8 *) &(msg2.bssid.data.data), | 407 | (const u8 *) &(msg2.bssid.data.data), |
407 | msg2.timestamp.data, msg2.capinfo.data, | 408 | msg2.timestamp.data, msg2.capinfo.data, |
@@ -411,6 +412,13 @@ int prism2_scan(struct wiphy *wiphy, struct net_device *dev, | |||
411 | (msg2.signal.data - 65536) * 100, /* Conversion to signed type */ | 412 | (msg2.signal.data - 65536) * 100, /* Conversion to signed type */ |
412 | GFP_KERNEL | 413 | GFP_KERNEL |
413 | ); | 414 | ); |
415 | |||
416 | if (!bss) { | ||
417 | err = -ENOMEM; | ||
418 | goto exit; | ||
419 | } | ||
420 | |||
421 | cfg80211_put_bss(bss); | ||
414 | } | 422 | } |
415 | 423 | ||
416 | if (result) | 424 | if (result) |