You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
This commit is contained in:
@@ -545,8 +545,12 @@ static int netdev_notify(struct notifier_block *nb,
|
||||
|
||||
sdata = IEEE80211_DEV_TO_SUB_IF(dev);
|
||||
|
||||
sprintf(buf, "netdev:%s", dev->name);
|
||||
dir = sdata->debugfsdir;
|
||||
|
||||
if (!dir)
|
||||
return 0;
|
||||
|
||||
sprintf(buf, "netdev:%s", dev->name);
|
||||
if (!debugfs_rename(dir->d_parent, dir, dir->d_parent, buf))
|
||||
printk(KERN_ERR "mac80211: debugfs: failed to rename debugfs "
|
||||
"dir to %s\n", buf);
|
||||
|
||||
@@ -249,11 +249,22 @@ void ieee80211_sta_debugfs_add(struct sta_info *sta)
|
||||
DECLARE_MAC_BUF(mbuf);
|
||||
u8 *mac;
|
||||
|
||||
sta->debugfs.add_has_run = true;
|
||||
|
||||
if (!stations_dir)
|
||||
return;
|
||||
|
||||
mac = print_mac(mbuf, sta->sta.addr);
|
||||
|
||||
/*
|
||||
* This might fail due to a race condition:
|
||||
* When mac80211 unlinks a station, the debugfs entries
|
||||
* remain, but it is already possible to link a new
|
||||
* station with the same address which triggers adding
|
||||
* it to debugfs; therefore, if the old station isn't
|
||||
* destroyed quickly enough the old station's debugfs
|
||||
* dir might still be around.
|
||||
*/
|
||||
sta->debugfs.dir = debugfs_create_dir(mac, stations_dir);
|
||||
if (!sta->debugfs.dir)
|
||||
return;
|
||||
|
||||
@@ -816,8 +816,8 @@ struct ieee802_11_elems {
|
||||
u8 *ext_supp_rates;
|
||||
u8 *wmm_info;
|
||||
u8 *wmm_param;
|
||||
u8 *ht_cap_elem;
|
||||
u8 *ht_info_elem;
|
||||
struct ieee80211_ht_cap *ht_cap_elem;
|
||||
struct ieee80211_ht_addt_info *ht_info_elem;
|
||||
u8 *mesh_config;
|
||||
u8 *mesh_id;
|
||||
u8 *peer_link;
|
||||
@@ -844,8 +844,6 @@ struct ieee802_11_elems {
|
||||
u8 ext_supp_rates_len;
|
||||
u8 wmm_info_len;
|
||||
u8 wmm_param_len;
|
||||
u8 ht_cap_elem_len;
|
||||
u8 ht_info_elem_len;
|
||||
u8 mesh_config_len;
|
||||
u8 mesh_id_len;
|
||||
u8 peer_link_len;
|
||||
|
||||
@@ -1348,10 +1348,8 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
|
||||
(ifsta->flags & IEEE80211_STA_WMM_ENABLED)) {
|
||||
struct ieee80211_ht_bss_info bss_info;
|
||||
ieee80211_ht_cap_ie_to_ht_info(
|
||||
(struct ieee80211_ht_cap *)
|
||||
elems.ht_cap_elem, &sta->sta.ht_info);
|
||||
ieee80211_ht_addt_info_ie_to_ht_bss_info(
|
||||
(struct ieee80211_ht_addt_info *)
|
||||
elems.ht_info_elem, &bss_info);
|
||||
ieee80211_handle_ht(local, 1, &sta->sta.ht_info, &bss_info);
|
||||
}
|
||||
@@ -1709,7 +1707,6 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,
|
||||
struct ieee80211_ht_bss_info bss_info;
|
||||
|
||||
ieee80211_ht_addt_info_ie_to_ht_bss_info(
|
||||
(struct ieee80211_ht_addt_info *)
|
||||
elems.ht_info_elem, &bss_info);
|
||||
changed |= ieee80211_handle_ht(local, 1, &conf->ht_conf,
|
||||
&bss_info);
|
||||
|
||||
+2
-1
@@ -388,7 +388,8 @@ ieee80211_scan_rx(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb,
|
||||
bss = ieee80211_bss_info_update(sdata->local, rx_status,
|
||||
mgmt, skb->len, &elems,
|
||||
freq, beacon);
|
||||
ieee80211_rx_bss_put(sdata->local, bss);
|
||||
if (bss)
|
||||
ieee80211_rx_bss_put(sdata->local, bss);
|
||||
|
||||
dev_kfree_skb(skb);
|
||||
return RX_QUEUED;
|
||||
|
||||
@@ -635,7 +635,12 @@ static void sta_info_debugfs_add_work(struct work_struct *work)
|
||||
|
||||
spin_lock_irqsave(&local->sta_lock, flags);
|
||||
list_for_each_entry(tmp, &local->sta_list, list) {
|
||||
if (!tmp->debugfs.dir) {
|
||||
/*
|
||||
* debugfs.add_has_run will be set by
|
||||
* ieee80211_sta_debugfs_add regardless
|
||||
* of what else it does.
|
||||
*/
|
||||
if (!tmp->debugfs.add_has_run) {
|
||||
sta = tmp;
|
||||
__sta_info_pin(sta);
|
||||
break;
|
||||
|
||||
@@ -300,6 +300,7 @@ struct sta_info {
|
||||
struct dentry *inactive_ms;
|
||||
struct dentry *last_seq_ctrl;
|
||||
struct dentry *agg_status;
|
||||
bool add_has_run;
|
||||
} debugfs;
|
||||
#endif
|
||||
|
||||
|
||||
+4
-4
@@ -529,12 +529,12 @@ void ieee802_11_parse_elems(u8 *start, size_t len,
|
||||
elems->ext_supp_rates_len = elen;
|
||||
break;
|
||||
case WLAN_EID_HT_CAPABILITY:
|
||||
elems->ht_cap_elem = pos;
|
||||
elems->ht_cap_elem_len = elen;
|
||||
if (elen >= sizeof(struct ieee80211_ht_cap))
|
||||
elems->ht_cap_elem = (void *)pos;
|
||||
break;
|
||||
case WLAN_EID_HT_EXTRA_INFO:
|
||||
elems->ht_info_elem = pos;
|
||||
elems->ht_info_elem_len = elen;
|
||||
if (elen >= sizeof(struct ieee80211_ht_addt_info))
|
||||
elems->ht_info_elem = (void *)pos;
|
||||
break;
|
||||
case WLAN_EID_MESH_ID:
|
||||
elems->mesh_id = pos;
|
||||
|
||||
+1
-1
@@ -775,7 +775,7 @@ static int ieee80211_ioctl_siwfrag(struct net_device *dev,
|
||||
* configure it here */
|
||||
|
||||
if (local->ops->set_frag_threshold)
|
||||
local->ops->set_frag_threshold(
|
||||
return local->ops->set_frag_threshold(
|
||||
local_to_hw(local),
|
||||
local->fragmentation_threshold);
|
||||
|
||||
|
||||
+4
-1
@@ -184,7 +184,8 @@ int cfg80211_dev_rename(struct cfg80211_registered_device *rdev,
|
||||
if (result)
|
||||
goto out_unlock;
|
||||
|
||||
if (!debugfs_rename(rdev->wiphy.debugfsdir->d_parent,
|
||||
if (rdev->wiphy.debugfsdir &&
|
||||
!debugfs_rename(rdev->wiphy.debugfsdir->d_parent,
|
||||
rdev->wiphy.debugfsdir,
|
||||
rdev->wiphy.debugfsdir->d_parent,
|
||||
newname))
|
||||
@@ -317,6 +318,8 @@ int wiphy_register(struct wiphy *wiphy)
|
||||
drv->wiphy.debugfsdir =
|
||||
debugfs_create_dir(wiphy_name(&drv->wiphy),
|
||||
ieee80211_debugfs_dir);
|
||||
if (IS_ERR(drv->wiphy.debugfsdir))
|
||||
drv->wiphy.debugfsdir = NULL;
|
||||
|
||||
res = 0;
|
||||
out_unlock:
|
||||
|
||||
Reference in New Issue
Block a user