Merge branch 'master' of ssh://master.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
#include <net/sock.h>
|
||||
#include <linux/rtnetlink.h>
|
||||
#include <linux/wireless.h>
|
||||
#include <net/iw_handler.h>
|
||||
#include <net/wext.h>
|
||||
|
||||
#include "net-sysfs.h"
|
||||
|
||||
@@ -363,15 +363,13 @@ static ssize_t wireless_show(struct device *d, char *buf,
|
||||
char *))
|
||||
{
|
||||
struct net_device *dev = to_net_dev(d);
|
||||
const struct iw_statistics *iw = NULL;
|
||||
const struct iw_statistics *iw;
|
||||
ssize_t ret = -EINVAL;
|
||||
|
||||
read_lock(&dev_base_lock);
|
||||
if (dev_isalive(dev)) {
|
||||
if (dev->wireless_handlers &&
|
||||
dev->wireless_handlers->get_wireless_stats)
|
||||
iw = dev->wireless_handlers->get_wireless_stats(dev);
|
||||
if (iw != NULL)
|
||||
iw = get_wireless_stats(dev);
|
||||
if (iw)
|
||||
ret = (*format)(iw, buf);
|
||||
}
|
||||
read_unlock(&dev_base_lock);
|
||||
@@ -505,7 +503,7 @@ int netdev_register_kobject(struct net_device *net)
|
||||
*groups++ = &netstat_group;
|
||||
|
||||
#ifdef CONFIG_WIRELESS_EXT_SYSFS
|
||||
if (net->wireless_handlers && net->wireless_handlers->get_wireless_stats)
|
||||
if (net->wireless_handlers || net->ieee80211_ptr)
|
||||
*groups++ = &wireless_group;
|
||||
#endif
|
||||
#endif /* CONFIG_SYSFS */
|
||||
|
@@ -1388,8 +1388,8 @@ ieee80211_rx_mgmt_disassoc(struct ieee80211_sub_if_data *sdata,
|
||||
|
||||
reason_code = le16_to_cpu(mgmt->u.disassoc.reason_code);
|
||||
|
||||
printk(KERN_DEBUG "%s: disassociated (Reason: %u)\n",
|
||||
sdata->dev->name, reason_code);
|
||||
printk(KERN_DEBUG "%s: disassociated from %pM (Reason: %u)\n",
|
||||
sdata->dev->name, mgmt->sa, reason_code);
|
||||
|
||||
ieee80211_set_disassoc(sdata, false);
|
||||
return RX_MGMT_CFG80211_DISASSOC;
|
||||
@@ -1675,7 +1675,7 @@ static void ieee80211_rx_mgmt_probe_resp(struct ieee80211_sub_if_data *sdata,
|
||||
|
||||
/* direct probe may be part of the association flow */
|
||||
if (wk && wk->state == IEEE80211_MGD_STATE_PROBE) {
|
||||
printk(KERN_DEBUG "%s direct probe responded\n",
|
||||
printk(KERN_DEBUG "%s: direct probe responded\n",
|
||||
sdata->dev->name);
|
||||
wk->tries = 0;
|
||||
wk->state = IEEE80211_MGD_STATE_AUTH;
|
||||
@@ -2502,9 +2502,6 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata,
|
||||
struct ieee80211_mgd_work *wk;
|
||||
const u8 *bssid = NULL;
|
||||
|
||||
printk(KERN_DEBUG "%s: deauthenticating by local choice (reason=%d)\n",
|
||||
sdata->dev->name, req->reason_code);
|
||||
|
||||
mutex_lock(&ifmgd->mtx);
|
||||
|
||||
if (ifmgd->associated && &ifmgd->associated->cbss == req->bss) {
|
||||
@@ -2532,6 +2529,9 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata,
|
||||
|
||||
mutex_unlock(&ifmgd->mtx);
|
||||
|
||||
printk(KERN_DEBUG "%s: deauthenticating from %pM by local choice (reason=%d)\n",
|
||||
sdata->dev->name, bssid, req->reason_code);
|
||||
|
||||
ieee80211_send_deauth_disassoc(sdata, bssid,
|
||||
IEEE80211_STYPE_DEAUTH, req->reason_code,
|
||||
cookie);
|
||||
@@ -2545,9 +2545,6 @@ int ieee80211_mgd_disassoc(struct ieee80211_sub_if_data *sdata,
|
||||
{
|
||||
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
|
||||
|
||||
printk(KERN_DEBUG "%s: disassociating by local choice (reason=%d)\n",
|
||||
sdata->dev->name, req->reason_code);
|
||||
|
||||
mutex_lock(&ifmgd->mtx);
|
||||
|
||||
/*
|
||||
@@ -2561,6 +2558,9 @@ int ieee80211_mgd_disassoc(struct ieee80211_sub_if_data *sdata,
|
||||
return -ENOLINK;
|
||||
}
|
||||
|
||||
printk(KERN_DEBUG "%s: disassociating from %pM by local choice (reason=%d)\n",
|
||||
sdata->dev->name, req->bss->bssid, req->reason_code);
|
||||
|
||||
ieee80211_set_disassoc(sdata, false);
|
||||
|
||||
mutex_unlock(&ifmgd->mtx);
|
||||
|
@@ -762,9 +762,8 @@ int __cfg80211_connect(struct cfg80211_registered_device *rdev,
|
||||
wdev->conn->params.ssid = wdev->ssid;
|
||||
wdev->conn->params.ssid_len = connect->ssid_len;
|
||||
|
||||
/* don't care about result -- but fill bssid & channel */
|
||||
if (!wdev->conn->params.bssid || !wdev->conn->params.channel)
|
||||
bss = cfg80211_get_conn_bss(wdev);
|
||||
/* see if we have the bss already */
|
||||
bss = cfg80211_get_conn_bss(wdev);
|
||||
|
||||
wdev->sme_state = CFG80211_SME_CONNECTING;
|
||||
wdev->connect_keys = connkeys;
|
||||
|
@@ -30,7 +30,8 @@ int cfg80211_mgd_wext_connect(struct cfg80211_registered_device *rdev,
|
||||
if (wdev->wext.keys) {
|
||||
wdev->wext.keys->def = wdev->wext.default_key;
|
||||
wdev->wext.keys->defmgmt = wdev->wext.default_mgmt_key;
|
||||
wdev->wext.connect.privacy = true;
|
||||
if (wdev->wext.default_key != -1)
|
||||
wdev->wext.connect.privacy = true;
|
||||
}
|
||||
|
||||
if (!wdev->wext.connect.ssid_len)
|
||||
@@ -229,8 +230,7 @@ int cfg80211_mgd_wext_giwessid(struct net_device *dev,
|
||||
data->flags = 1;
|
||||
data->length = wdev->wext.connect.ssid_len;
|
||||
memcpy(ssid, wdev->wext.connect.ssid, data->length);
|
||||
} else
|
||||
data->flags = 0;
|
||||
}
|
||||
wdev_unlock(wdev);
|
||||
|
||||
return 0;
|
||||
@@ -306,8 +306,6 @@ int cfg80211_mgd_wext_giwap(struct net_device *dev,
|
||||
wdev_lock(wdev);
|
||||
if (wdev->current_bss)
|
||||
memcpy(ap_addr->sa_data, wdev->current_bss->pub.bssid, ETH_ALEN);
|
||||
else if (wdev->wext.connect.bssid)
|
||||
memcpy(ap_addr->sa_data, wdev->wext.connect.bssid, ETH_ALEN);
|
||||
else
|
||||
memset(ap_addr->sa_data, 0, ETH_ALEN);
|
||||
wdev_unlock(wdev);
|
||||
|
@@ -470,7 +470,7 @@ static iw_handler get_handler(struct net_device *dev, unsigned int cmd)
|
||||
/*
|
||||
* Get statistics out of the driver
|
||||
*/
|
||||
static struct iw_statistics *get_wireless_stats(struct net_device *dev)
|
||||
struct iw_statistics *get_wireless_stats(struct net_device *dev)
|
||||
{
|
||||
/* New location */
|
||||
if ((dev->wireless_handlers != NULL) &&
|
||||
@@ -773,10 +773,13 @@ static int ioctl_standard_iw_point(struct iw_point *iwp, unsigned int cmd,
|
||||
essid_compat = 1;
|
||||
else if (IW_IS_SET(cmd) && (iwp->length != 0)) {
|
||||
char essid[IW_ESSID_MAX_SIZE + 1];
|
||||
unsigned int len;
|
||||
len = iwp->length * descr->token_size;
|
||||
|
||||
err = copy_from_user(essid, iwp->pointer,
|
||||
iwp->length *
|
||||
descr->token_size);
|
||||
if (len > IW_ESSID_MAX_SIZE)
|
||||
return -EFAULT;
|
||||
|
||||
err = copy_from_user(essid, iwp->pointer, len);
|
||||
if (err)
|
||||
return -EFAULT;
|
||||
|
||||
|
Reference in New Issue
Block a user