17 Dec, 2014
1 commit
-
When writing the code to allow per-station GTKs, I neglected to
take into account the management frame keys (index 4 and 5) when
freeing the station and only added code to free the first four
data frame keys.Fix this by iterating the array of keys over the right length.
Cc: stable@vger.kernel.org
Fixes: e31b82136d1a ("cfg80211/mac80211: allow per-station GTKs")
Signed-off-by: Johannes Berg
12 Dec, 2014
3 commits
-
When the channel switch has been made, a vif is now using
the channel context which was reserved. When that happens,
we need to update the channel context since its parameters
may change.I hit a case in which I switched to a 40Mhz channel but the
reserved channel context was still on 20Mhz. The rate control
would try to send 40Mhz packets on a 20Mhz channel context and
that made iwlwifi's firmware unhappy.Signed-off-by: Emmanuel Grumbach
Signed-off-by: Johannes Berg -
As multicast-frames can't be fragmented, "dot11MulticastReceivedFrameCount"
stopped being incremented after the use-after-free fix. Furthermore, the
RX-LED will be triggered by every multicast frame (which wouldn't happen
before) which wouldn't allow the LED to rest at all.Fixes https://bugzilla.kernel.org/show_bug.cgi?id=89431 which also had the
patch.Cc: stable@vger.kernel.org
Fixes: b8fff407a180 ("mac80211: fix use-after-free in defragmentation")
Signed-off-by: Andreas Müller
[rewrite commit message]
Signed-off-by: Johannes Berg -
Avoid a case where we would access uninitialized stack data if the AP
advertises HT support without 40MHz channel support.Cc: stable@vger.kernel.org
Fixes: f3000e1b43f1 ("mac80211: fix broken use of VHT/20Mhz with some APs")
Signed-off-by: Jes Sorensen
Signed-off-by: Johannes Berg
09 Dec, 2014
1 commit
05 Dec, 2014
1 commit
-
Johannes Berg says:
"This time I have Felix's no-status rate control work, which will allow
drivers to work better with rate control even if they don't have perfect
status reporting. In addition to this, a small hwsim fix from Patrik,
one of the regulatory patches from Arik, and a number of cleanups and
fixes I did myself.Of note is a patch where I disable CFG80211_WEXT so that compatibility
is no longer selectable - this is intended as a wake-up call for anyone
who's still using it, and is still easily worked around (it's a one-line
patch) before we fully remove the code as well in the future."Signed-off-by: John W. Linville
28 Nov, 2014
9 commits
-
This can be used by drivers that cannot reliably map tx status
information onto specific skbs.Signed-off-by: Felix Fietkau
Signed-off-by: Johannes Berg -
Signed-off-by: Felix Fietkau
Signed-off-by: Johannes Berg -
Signed-off-by: Felix Fietkau
Signed-off-by: Johannes Berg -
Signed-off-by: Felix Fietkau
Signed-off-by: Johannes Berg -
Signed-off-by: Felix Fietkau
Signed-off-by: Johannes Berg -
This op works like .tx_status, except it does not need access to the
skb. This will be used by drivers that cannot match tx status
information to specific packets.Signed-off-by: Felix Fietkau
Signed-off-by: Johannes Berg -
Preparation for adding a no-skb tx status path
Signed-off-by: Felix Fietkau
Signed-off-by: Johannes Berg -
Fixes a crash on attempting to calculate the frame duration for a VHT
packet (which needs to be handled by hw/driver instead).Reported-by: Jouni Malinen
Signed-off-by: Felix Fietkau
Signed-off-by: Johannes Berg -
Instead of keeping track of all those special cases where
VLAN interfaces have no bss_conf.chandef, just make sure
they have the same as the AP interface they belong to.Among others, this fixes a crash getting a VLAN's channel
from userspace since a NULL channel is returned as a good
result (return value 0) for VLANs since the commit below.Cc: stable@vger.kernel.org [3.18 only]
Fixes: c12bc4885f4b3 ("mac80211: return the vif's chandef in ieee80211_cfg_get_channel()")
Signed-off-by: Felix Fietkau
[rewrite commit log]
Signed-off-by: Johannes Berg
27 Nov, 2014
1 commit
-
Having it as a sub-event for RSSI thresholds is very ugly,
but luckily no userspace actually uses the events yet.Move the event to its own function call internally and to
its own event attribute in nl80211.Signed-off-by: Johannes Berg
25 Nov, 2014
1 commit
-
If there are no channels allowing 80 MHz to be used, then the
station isn't really VHT capable even if the driver and device
support it in general. In this case, exclude the VHT capability
IE from probe request frames.Signed-off-by: Johannes Berg
24 Nov, 2014
1 commit
-
The supported bandwidth field is a two-bit field, not a bitmap,
so treat it accordingly when disabling 80+80 or 160 MHz.Note that we can only advertise "80+80 and 160" or "160", not
"80+80" by itself, so disabling 160 also disables 80+80.Signed-off-by: Johannes Berg
21 Nov, 2014
1 commit
-
…nux/kernel/git/jberg/mac80211-next
Johannes Berg <johannes@sipsolutions.net> says:
"It has been a while since my last pull request, so we accumulated
another relatively large set of changes:
* TDLS off-channel support set from Arik/Liad, with some support
patches I did
* custom regulatory fixes from Arik
* minstrel VHT fix (and a small optimisation) from Felix
* add back radiotap vendor namespace support (myself)
* random MAC address scanning for cfg80211/mac80211/hwsim (myself)
* CSA improvements (Luca)
* WoWLAN Net Detect (wake on network found) support (Luca)
* and lots of other smaller changes from many people"Signed-off-by: John W. Linville <linville@tuxdriver.com>
20 Nov, 2014
21 commits
-
…pub/scm/linux/kernel/git/linville/wireless
-
Check the queue mapping earlier, skb->queue_mapping is more likely than
skb->data to still be in d-cache.Signed-off-by: Felix Fietkau
Signed-off-by: Johannes Berg -
This allows drivers with a firmware or chip-based rate lookup table to
use the most recent default rate selection without having to get it from
per-packet data or explicit ieee80211_get_tx_rate callsSigned-off-by: Felix Fietkau
Signed-off-by: Johannes Berg -
The rate mask code currently assumes that a rate is legacy if
IEEE80211_TX_RC_MCS is not set. This might be the cause of bogus VHT
rates being reported with minstrel_ht.Signed-off-by: Felix Fietkau
Signed-off-by: Johannes Berg -
When 20MHz chandef is used, 40MHz rates shouldn't be
used (by the rate-control algorithm), even if the sta
ht capabilities indicate support for it.Signed-off-by: Eliad Peller
Singed-off-by: Emmanuel Grumbach
Signed-off-by: Johannes Berg -
Allow drivers to support NL80211_SCAN_FLAG_RANDOM_ADDR with software
based scanning and generate a random MAC address for them for every
scan request with the flag.Signed-off-by: Johannes Berg
-
In order to use the scan and scheduled scan request pointers during
RX to check for randomisation, make them accessible using RCU.Reviewed-by: Emmanuel Grumbach
Signed-off-by: Johannes Berg -
local->scan_req was tested in the previous line, so it
can't be NULL.Signed-off-by: Eliad Peller
Signed-off-by: Johannes Berg -
In TDLS (e.g., TDLS off-channel) there is a requirement for
some drivers to supply an unused TID between the AP and the
device to the FW, to allow sending PTI requests and to allow
the FW to aggregate on a specific TID for better throughput.To ensure that the allocated TID is indeed unused, this patch
introduces an API for blocking the driver from TXing on that
TID.Signed-off-by: Liad Kaufman
Signed-off-by: Johannes Berg -
If the HW supports IEEE80211_HW_QUEUE_CONTROL, allow
flushing only specific queues rather than all of them.Signed-off-by: Liad Kaufman
Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg -
When receiving a TDLS channel switch request or response, parse the frame
and call a new tdls_recv_channel_switch op in the low level driver with
the parsed data.Signed-off-by: Arik Nemtsov
Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg -
Implement the cfg80211 TDLS channel switch ops and introduce new mac80211
ones for low-level drivers.
Verify low-level driver support for the new ops when using the relevant
wiphy feature bit. Also verify the peer supports channel switching before
passing the command down.Add a new STA flag to track the off-channel state with the TDLS peer and
make sure to cancel the channel-switch if the peer STA is unexpectedly
removed.Signed-off-by: Arik Nemtsov
Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg -
These are used in TDLS channel switching code.
Signed-off-by: Arik Nemtsov
Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg -
Split the data-generating from the Tx-sending functionality, as we do
not want to send templates to the lower driver. Also add an optional
chandef argument to the data-generating portion. It will be used for
channel-switch templates.Signed-off-by: Arik Nemtsov
Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg -
The AP or peer can prohibit TDLS channel switch via a bit in the
extended capabilities IE. Parse the IE and track this bit. Set an
appropriate STA flag if both the AP and peer STA support TDLS
channel-switching.Add the new STA flag and the missing TDLS_INITIATOR to debugfs.
Signed-off-by: Arik Nemtsov
Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg -
Define some related TDLS protocol constants and advertise channel switch
support in the extended-capabilities IE when the feature bit is defined.Actually supporting TDLS channel-switching also requires support for
some new nl80211 commands, to be introduced by future patches.Signed-off-by: Arik Nemtsov
Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg -
Add the BSS coex IE in case we support HT40 channels, as mandated by
section 8.5.13 in IEEE802.11 2012.Signed-off-by: Arik Nemtsov
Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg -
This information element is mandatory in case TDLS channel-switching is to
be supported. The channels given are ones supported and allowed to be
active in the current regulatory setting.Signed-off-by: Arik Nemtsov
Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg -
For some TDLS channel switch implementations data frames need to be
sent by the firmware based on a template. This template should be
created by mac80211, and thus needs to properly be built from an
802.3 frame into an 802.11 frame. In addition, the device will need
the key information so the select_key handler needs to be run.
However, the driver/device will be responsible for all of the crypto
encapsulation, as the sequence numbers etc. cannot be built by the
host anyway in this case since it's a template to be used multiple
times.Signed-off-by: Johannes Berg
Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg -
Factor out the 802.11 header building code from the xmit function
to be able to use it separately in a later commit.While at it, fix up some documentation.
Signed-off-by: Johannes Berg
Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg -
Instead of passing the band as a parameter to ieee80211_xmit()
and ieee80211_tx(), move it outside of the two functions while
making sure info->band is set up before calling them.This removes the parameter and simplifies the follow commit.
Signed-off-by: Johannes Berg
Signed-off-by: Arik Nemtsov
Signed-off-by: Johannes Berg