Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (47 commits) forcedeth: fix a few sparse warnings (variable shadowing) forcedeth: Improve stats counters forcedeth: remove unneeded stats updates forcedeth: Acknowledge only interrupts that are being processed forcedeth: fix race when unloading module MAINTAINERS/rds: update maintainer wanrouter: Remove kernel_lock annotations usbnet: fix oops in usbnet_start_xmit ixgbe: Fix compile for kernel without CONFIG_PCI_IOV defined etherh: Add MAINTAINERS entry for etherh bonding: comparing a u8 with -1 is always false sky2: fix regression on Yukon Optima netlink: clarify attribute length check documentation netlink: validate NLA_MSECS length i825xx:xscale:8390:freescale: Fix Kconfig dependancies macvlan: receive multicast with local address tg3: Update version to 3.121 tg3: Eliminate timer race with reset_task tg3: Schedule at most one tg3_reset_task run tg3: Obtain PCI function number from device ...
This commit is contained in:
@@ -639,6 +639,9 @@ static bool ieee80211_powersave_allowed(struct ieee80211_sub_if_data *sdata)
|
||||
if (!mgd->powersave)
|
||||
return false;
|
||||
|
||||
if (mgd->broken_ap)
|
||||
return false;
|
||||
|
||||
if (!mgd->associated)
|
||||
return false;
|
||||
|
||||
@@ -1491,10 +1494,21 @@ static bool ieee80211_assoc_success(struct ieee80211_work *wk,
|
||||
capab_info = le16_to_cpu(mgmt->u.assoc_resp.capab_info);
|
||||
|
||||
if ((aid & (BIT(15) | BIT(14))) != (BIT(15) | BIT(14)))
|
||||
printk(KERN_DEBUG "%s: invalid aid value %d; bits 15:14 not "
|
||||
"set\n", sdata->name, aid);
|
||||
printk(KERN_DEBUG
|
||||
"%s: invalid AID value 0x%x; bits 15:14 not set\n",
|
||||
sdata->name, aid);
|
||||
aid &= ~(BIT(15) | BIT(14));
|
||||
|
||||
ifmgd->broken_ap = false;
|
||||
|
||||
if (aid == 0 || aid > IEEE80211_MAX_AID) {
|
||||
printk(KERN_DEBUG
|
||||
"%s: invalid AID value %d (out of range), turn off PS\n",
|
||||
sdata->name, aid);
|
||||
aid = 0;
|
||||
ifmgd->broken_ap = true;
|
||||
}
|
||||
|
||||
pos = mgmt->u.assoc_resp.variable;
|
||||
ieee802_11_parse_elems(pos, len - (pos - (u8 *) mgmt), &elems);
|
||||
|
||||
|
Reference in New Issue
Block a user