mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-15 09:34:17 +00:00
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem
This commit is contained in:
commit
039aafba1b
@ -707,11 +707,14 @@ static int rs_toggle_antenna(u32 valid_ant, u32 *rate_n_flags,
|
||||
*/
|
||||
static bool rs_use_green(struct ieee80211_sta *sta)
|
||||
{
|
||||
struct iwl_station_priv *sta_priv = (void *)sta->drv_priv;
|
||||
struct iwl_rxon_context *ctx = sta_priv->ctx;
|
||||
|
||||
return (sta->ht_cap.cap & IEEE80211_HT_CAP_GRN_FLD) &&
|
||||
!(ctx->ht.non_gf_sta_present);
|
||||
/*
|
||||
* There's a bug somewhere in this code that causes the
|
||||
* scaling to get stuck because GF+SGI can't be combined
|
||||
* in SISO rates. Until we find that bug, disable GF, it
|
||||
* has only limited benefit and we still interoperate with
|
||||
* GF APs since we can always receive GF transmissions.
|
||||
*/
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2243,8 +2243,7 @@ static void rt61pci_txdone(struct rt2x00_dev *rt2x00dev)
|
||||
|
||||
static void rt61pci_wakeup(struct rt2x00_dev *rt2x00dev)
|
||||
{
|
||||
struct ieee80211_conf conf = { .flags = 0 };
|
||||
struct rt2x00lib_conf libconf = { .conf = &conf };
|
||||
struct rt2x00lib_conf libconf = { .conf = &rt2x00dev->hw->conf };
|
||||
|
||||
rt61pci_config(rt2x00dev, &libconf, IEEE80211_CONF_CHANGE_PS);
|
||||
}
|
||||
|
@ -952,6 +952,11 @@ static int cfg80211_netdev_notifier_call(struct notifier_block *nb,
|
||||
*/
|
||||
synchronize_rcu();
|
||||
INIT_LIST_HEAD(&wdev->list);
|
||||
/*
|
||||
* Ensure that all events have been processed and
|
||||
* freed.
|
||||
*/
|
||||
cfg80211_process_wdev_events(wdev);
|
||||
break;
|
||||
case NETDEV_PRE_UP:
|
||||
if (!(wdev->wiphy->interface_modes & BIT(wdev->iftype)))
|
||||
|
@ -426,6 +426,7 @@ int cfg80211_change_iface(struct cfg80211_registered_device *rdev,
|
||||
struct net_device *dev, enum nl80211_iftype ntype,
|
||||
u32 *flags, struct vif_params *params);
|
||||
void cfg80211_process_rdev_events(struct cfg80211_registered_device *rdev);
|
||||
void cfg80211_process_wdev_events(struct wireless_dev *wdev);
|
||||
|
||||
int cfg80211_can_use_iftype_chan(struct cfg80211_registered_device *rdev,
|
||||
struct wireless_dev *wdev,
|
||||
|
@ -735,7 +735,7 @@ void cfg80211_upload_connect_keys(struct wireless_dev *wdev)
|
||||
wdev->connect_keys = NULL;
|
||||
}
|
||||
|
||||
static void cfg80211_process_wdev_events(struct wireless_dev *wdev)
|
||||
void cfg80211_process_wdev_events(struct wireless_dev *wdev)
|
||||
{
|
||||
struct cfg80211_event *ev;
|
||||
unsigned long flags;
|
||||
|
Loading…
x
Reference in New Issue
Block a user