30 Dec, 2020

2 commits

  • [ Upstream commit f879ac8ed6c83ce05fcb53815a8ea83c5b6099a1 ]

    It should be !is_multicast_ether_addr() in ieee80211_rx_h_sta_process()
    for the rx_stats update, below commit remove the !, this patch is to
    change it back.

    It lead the rx rate "iw wlan0 station dump" become invalid for some
    scenario when IEEE80211_HW_USES_RSS is set.

    Fixes: 09a740ce352e ("mac80211: receive and process S1G beacons")
    Signed-off-by: Wen Gong
    Link: https://lore.kernel.org/r/1607483189-3891-1-git-send-email-wgong@codeaurora.org
    Signed-off-by: Johannes Berg
    Signed-off-by: Sasha Levin

    Wen Gong
     
  • [ Upstream commit f65607cdbc6b0da356ef5a22552ddd9313cf87a0 ]

    When we set up a TDLS station, we set sta->sta.bandwidth solely based
    on the capabilities, because the "what's the current bandwidth" check
    is bypassed and only applied for other types of stations.

    This leads to the unfortunate scenario that the sta->sta.bandwidth is
    160 MHz if both stations support it, but we never actually configure
    this bandwidth unless the AP is already using 160 MHz; even for wider
    bandwidth support we only go up to 80 MHz (at least right now.)

    For iwlwifi, this can also lead to firmware asserts, telling us that
    we've configured the TX rates for a higher bandwidth than is actually
    available due to the PHY configuration.

    For non-TDLS, we check against the interface's requested bandwidth,
    but we explicitly skip this check for TDLS to cope with the wider BW
    case. Change this to
    (a) still limit to the TDLS peer's own chandef, which gets factored
    into the overall PHY configuration we request from the driver,
    and
    (b) limit it to when the TDLS peer is authorized, because it's only
    factored into the channel context in this case.

    Fixes: 504871e602d9 ("mac80211: fix bandwidth computation for TDLS peers")
    Signed-off-by: Johannes Berg
    Signed-off-by: Luca Coelho
    Link: https://lore.kernel.org/r/iwlwifi.20201206145305.fcc7d29c4590.I11f77e9e25ddf871a3c8d5604650c763e2c5887a@changeid
    Signed-off-by: Johannes Berg
    Signed-off-by: Sasha Levin

    Johannes Berg
     

05 Dec, 2020

1 commit

  • If tbl_mpp can not be allocated, we call mesh_table_free(tbl_path)
    while tbl_path rhashtable has not yet been initialized, which causes
    panics.

    Simply factorize the rhashtable_init() call into mesh_table_alloc()

    WARNING: CPU: 1 PID: 8474 at kernel/workqueue.c:3040 __flush_work kernel/workqueue.c:3040 [inline]
    WARNING: CPU: 1 PID: 8474 at kernel/workqueue.c:3040 __cancel_work_timer+0x514/0x540 kernel/workqueue.c:3136
    Modules linked in:
    CPU: 1 PID: 8474 Comm: syz-executor663 Not tainted 5.10.0-rc6-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    RIP: 0010:__flush_work kernel/workqueue.c:3040 [inline]
    RIP: 0010:__cancel_work_timer+0x514/0x540 kernel/workqueue.c:3136
    Code: 5d c3 e8 bf ae 29 00 0f 0b e9 f0 fd ff ff e8 b3 ae 29 00 0f 0b 43 80 3c 3e 00 0f 85 31 ff ff ff e9 34 ff ff ff e8 9c ae 29 00 0b e9 dc fe ff ff 89 e9 80 e1 07 80 c1 03 38 c1 0f 8c 7d fd ff
    RSP: 0018:ffffc9000165f5a0 EFLAGS: 00010293
    RAX: ffffffff814b7064 RBX: 0000000000000001 RCX: ffff888021c80000
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
    RBP: ffff888024039ca0 R08: dffffc0000000000 R09: fffffbfff1dd3e64
    R10: fffffbfff1dd3e64 R11: 0000000000000000 R12: 1ffff920002cbebd
    R13: ffff888024039c88 R14: 1ffff11004807391 R15: dffffc0000000000
    FS: 0000000001347880(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000020000140 CR3: 000000002cc0a000 CR4: 00000000001506e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
    rhashtable_free_and_destroy+0x25/0x9c0 lib/rhashtable.c:1137
    mesh_table_free net/mac80211/mesh_pathtbl.c:69 [inline]
    mesh_pathtbl_init+0x287/0x2e0 net/mac80211/mesh_pathtbl.c:785
    ieee80211_mesh_init_sdata+0x2ee/0x530 net/mac80211/mesh.c:1591
    ieee80211_setup_sdata+0x733/0xc40 net/mac80211/iface.c:1569
    ieee80211_if_add+0xd5c/0x1cd0 net/mac80211/iface.c:1987
    ieee80211_add_iface+0x59/0x130 net/mac80211/cfg.c:125
    rdev_add_virtual_intf net/wireless/rdev-ops.h:45 [inline]
    nl80211_new_interface+0x563/0xb40 net/wireless/nl80211.c:3855
    genl_family_rcv_msg_doit net/netlink/genetlink.c:739 [inline]
    genl_family_rcv_msg net/netlink/genetlink.c:783 [inline]
    genl_rcv_msg+0xe4e/0x1280 net/netlink/genetlink.c:800
    netlink_rcv_skb+0x190/0x3a0 net/netlink/af_netlink.c:2494
    genl_rcv+0x24/0x40 net/netlink/genetlink.c:811
    netlink_unicast_kernel net/netlink/af_netlink.c:1304 [inline]
    netlink_unicast+0x780/0x930 net/netlink/af_netlink.c:1330
    netlink_sendmsg+0x9a8/0xd40 net/netlink/af_netlink.c:1919
    sock_sendmsg_nosec net/socket.c:651 [inline]
    sock_sendmsg net/socket.c:671 [inline]
    ____sys_sendmsg+0x519/0x800 net/socket.c:2353
    ___sys_sendmsg net/socket.c:2407 [inline]
    __sys_sendmsg+0x2b1/0x360 net/socket.c:2440
    do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
    entry_SYSCALL_64_after_hwframe+0x44/0xa9

    Fixes: 60854fd94573 ("mac80211: mesh: convert path table to rhashtable")
    Signed-off-by: Eric Dumazet
    Reported-by: syzbot
    Reviewed-by: Johannes Berg
    Link: https://lore.kernel.org/r/20201204162428.2583119-1-eric.dumazet@gmail.com
    Signed-off-by: Jakub Kicinski

    Eric Dumazet
     

04 Dec, 2020

2 commits

  • During restarrt, mac80211 is supposed to reconfigure the driver.
    When there's a monitor interface, the interface is added and the
    channel context for it was created, but not assigned to it as it
    was not considered running during the restart.

    Fix this by setting SDATA_STATE_RUNNING while adding monitor
    interfaces.

    Signed-off-by: Borwankar, Antara
    Signed-off-by: Luca Coelho
    Link: https://lore.kernel.org/r/iwlwifi.20201129172929.e1df99693a4c.I494579f28018c2d0b9d4083a664cf872c28405ae@changeid
    [reword commit log]
    Signed-off-by: Johannes Berg

    Borwankar, Antara
     
  • ieee80211_chandef_he_6ghz_oper() needs to return true if it
    determined a value 6 GHz chandef, fix that.

    Fixes: 1d00ce807efa ("mac80211: support S1G association")
    Signed-off-by: Wen Gong
    Link: https://lore.kernel.org/r/1606121152-3452-1-git-send-email-wgong@codeaurora.org
    [rewrite commit message]
    Signed-off-by: Johannes Berg

    Wen Gong
     

13 Nov, 2020

1 commit

  • If sta_info_insert_finish() fails, we currently keep the station
    around and free it only in the caller, but there's only one such
    caller and it always frees it immediately.

    As syzbot found, another consequence of this split is that we can
    put things that sleep only into __cleanup_single_sta() and not in
    sta_info_free(), but this is the only place that requires such of
    sta_info_free() now.

    Change this to free the station in sta_info_insert_finish(), in
    which case we can still sleep. This will also let us unify the
    cleanup code later.

    Cc: stable@vger.kernel.org
    Fixes: dcd479e10a05 ("mac80211: always wind down STA state")
    Reported-by: syzbot+32c6c38c4812d22f2f0b@syzkaller.appspotmail.com
    Reported-by: syzbot+4c81fe92e372d26c4246@syzkaller.appspotmail.com
    Reported-by: syzbot+6a7fe9faf0d1d61bc24a@syzkaller.appspotmail.com
    Reported-by: syzbot+abed06851c5ffe010921@syzkaller.appspotmail.com
    Reported-by: syzbot+b7aeb9318541a1c709f1@syzkaller.appspotmail.com
    Reported-by: syzbot+d5a9416c6cafe53b5dd0@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/r/20201112112201.ee6b397b9453.I9c31d667a0ea2151441cc64ed6613d36c18a48e0@changeid
    Signed-off-by: Johannes Berg

    Johannes Berg
     

12 Nov, 2020

3 commits

  • Some drivers fill the status rate list without setting the rate index after
    the final rate to -1. minstrel_ht already deals with this, but minstrel
    doesn't, which causes it to get stuck at the lowest rate on these drivers.

    Fix this by checking the count as well.

    Cc: stable@vger.kernel.org
    Fixes: cccf129f820e ("mac80211: add the 'minstrel' rate control algorithm")
    Signed-off-by: Felix Fietkau
    Link: https://lore.kernel.org/r/20201111183359.43528-3-nbd@nbd.name
    Signed-off-by: Johannes Berg

    Felix Fietkau
     
  • Deferring sampling attempts to the second stage has some bad interactions
    with drivers that process the rate table in hardware and use the probe flag
    to indicate probing packets (e.g. most mt76 drivers). On affected drivers
    it can lead to probing not working at all.

    If the link conditions turn worse, it might not be such a good idea to
    do a lot of sampling for lower rates in this case.

    Fix this by simply skipping the sample attempt instead of deferring it,
    but keep the checks that would allow it to be sampled if it was skipped
    too often, but only if it has less than 95% success probability.

    Also ensure that IEEE80211_TX_CTL_RATE_CTRL_PROBE is set for all probing
    packets.

    Cc: stable@vger.kernel.org
    Fixes: cccf129f820e ("mac80211: add the 'minstrel' rate control algorithm")
    Signed-off-by: Felix Fietkau
    Link: https://lore.kernel.org/r/20201111183359.43528-2-nbd@nbd.name
    Signed-off-by: Johannes Berg

    Felix Fietkau
     
  • After the status rework, ieee80211_tx_status_ext is leaking un-acknowledged
    packets for stations in powersave mode.
    To fix this, move the code handling those packets from __ieee80211_tx_status
    into ieee80211_tx_status_ext

    Reported-by: Tobias Waldvogel
    Fixes: 3318111cf63d ("mac80211: reduce duplication in tx status functions")
    Signed-off-by: Felix Fietkau
    Link: https://lore.kernel.org/r/20201111183359.43528-1-nbd@nbd.name
    Signed-off-by: Johannes Berg

    Felix Fietkau
     

30 Oct, 2020

5 commits

  • After the previous similar bugfix there was another bug here,
    if no VHT elements were found we also disabled HE. Fix this to
    disable HE only on the 5 GHz band; on 6 GHz it was already not
    disabled, and on 2.4 GHz there need (should) not be any VHT.

    Fixes: 57fa5e85d53c ("mac80211: determine chandef from HE 6 GHz operation")
    Link: https://lore.kernel.org/r/20201013140156.535a2fc6192f.Id6e5e525a60ac18d245d86f4015f1b271fce6ee6@changeid
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • Some identifiers have different names between their prototypes
    and the kernel-doc markup.

    Others need to be fixed, as kernel-doc markups should use this format:
    identifier - description

    In the specific case of __sta_info_flush(), add a documentation
    for sta_info_flush(), as this one is the one used outside
    sta_info.c.

    Signed-off-by: Mauro Carvalho Chehab
    Reviewed-by: Johannes Berg
    Link: https://lore.kernel.org/r/978d35eef2dc76e21c81931804e4eaefbd6d635e.1603469755.git.mchehab+huawei@kernel.org
    Signed-off-by: Johannes Berg

    Mauro Carvalho Chehab
     
  • When (for example) an IBSS station is pre-moved to AUTHORIZED
    before it's inserted, and then the insertion fails, we don't
    clean up the fast RX/TX states that might already have been
    created, since we don't go through all the state transitions
    again on the way down.

    Do that, if it hasn't been done already, when the station is
    freed. I considered only freeing the fast TX/RX state there,
    but we might add more state so it's more robust to wind down
    the state properly.

    Note that we warn if the station was ever inserted, it should
    have been properly cleaned up in that case, and the driver
    will probably not like things happening out of order.

    Reported-by: syzbot+2e293dbd67de2836ba42@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/r/20201009141710.7223b322a955.I95bd08b9ad0e039c034927cce0b75beea38e059b@changeid
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • When ieee80211_skb_resize() is called from ieee80211_build_hdr()
    the skb has no 802.11 header yet, in fact it consist only of the
    payload as the ethernet frame is removed. As such, we're using
    the payload data for ieee80211_is_mgmt(), which is of course
    completely wrong. This didn't really hurt us because these are
    always data frames, so we could only have added more tailroom
    than we needed if we determined it was a management frame and
    sdata->crypto_tx_tailroom_needed_cnt was false.

    However, syzbot found that of course there need not be any payload,
    so we're using at best uninitialized memory for the check.

    Fix this to pass explicitly the kind of frame that we have instead
    of checking there, by replacing the "bool may_encrypt" argument
    with an argument that can carry the three possible states - it's
    not going to be encrypted, it's a management frame, or it's a data
    frame (and then we check sdata->crypto_tx_tailroom_needed_cnt).

    Reported-by: syzbot+32fd1a1bfe355e93f1e2@syzkaller.appspotmail.com
    Signed-off-by: Johannes Berg
    Link: https://lore.kernel.org/r/20201009132538.e1fd7f802947.I799b288466ea2815f9d4c84349fae697dca2f189@changeid
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • When sending EAPOL frames via NL80211 they are treated as injected
    frames in mac80211. Due to commit 1df2bdba528b ("mac80211: never drop
    injected frames even if normally not allowed") these injected frames
    were not assigned a sta context in the function ieee80211_tx_dequeue,
    causing certain wireless network cards to always send EAPOL frames in
    plaintext. This may cause compatibility issues with some clients or
    APs, which for instance can cause the group key handshake to fail and
    in turn would cause the station to get disconnected.

    This commit fixes this regression by assigning a sta context in
    ieee80211_tx_dequeue to injected frames as well.

    Note that sending EAPOL frames in plaintext is not a security issue
    since they contain their own encryption and authentication protection.

    Cc: stable@vger.kernel.org
    Fixes: 1df2bdba528b ("mac80211: never drop injected frames even if normally not allowed")
    Reported-by: Thomas Deutschmann
    Tested-by: Christian Hesse
    Tested-by: Thomas Deutschmann
    Signed-off-by: Mathy Vanhoef
    Link: https://lore.kernel.org/r/20201019160113.350912-1-Mathy.Vanhoef@kuleuven.be
    Signed-off-by: Johannes Berg

    Mathy Vanhoef
     

14 Oct, 2020

1 commit


08 Oct, 2020

3 commits

  • The user is allowed to change beacon tx rate (HT/VHT/HE) from hostapd.
    This information needs to be passed to the driver when the rate control
    is offloaded to the firmware. The driver capability of allowing beacon
    rate is already validated in cfg80211, so simply passing the rate
    information to the driver is enough.

    Signed-off-by: Rajkumar Manoharan
    Link: https://lore.kernel.org/r/1601762658-15627-1-git-send-email-rmanohar@codeaurora.org
    [adjust commit message slightly]
    Signed-off-by: Johannes Berg

    Rajkumar Manoharan
     
  • last_rate is initialized to zero by sta_info_alloc(), but
    this indicates legacy bitrate for the last TX rate (and
    invalid for the last RX rate). To avoid a warning when
    decoding the last rate as legacy (before a data frame
    has been sent), initialize them as S1G MCS.

    Signed-off-by: Thomas Pedersen
    Link: https://lore.kernel.org/r/20201005164522.18069-2-thomas@adapt-ip.com
    [rename to ieee80211_s1g_sta_rate_init(), seems more appropriate]
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     
  • Even though a driver or mac80211 shouldn't produce a
    legacy bitrate if sband->bitrates doesn't exist, don't
    crash if that is the case either.

    This fixes a kernel panic if station dump is run before
    last_rate can be updated with a data frame when
    sband->bitrates is missing (eg. in S1G bands).

    Signed-off-by: Thomas Pedersen
    Link: https://lore.kernel.org/r/20201005164522.18069-1-thomas@adapt-ip.com
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     

02 Oct, 2020

1 commit

  • In ieee80211_determine_chantype(), the sband->ht_cap was
    being processed before S1G Operation element. Since the
    HT capability element should not be present on the S1G
    band, avoid processing potential garbage by moving the
    call to ieee80211_apply_htcap_overrides() to after the S1G
    block.

    Also, in case of a missing S1G Operation element, we would
    continue trying to process non-S1G elements (and return
    with a channel width of 20MHz). Instead, just assume
    primary channel is equal to operating and infer the
    operating width from the BSS channel, then return.

    Signed-off-by: Thomas Pedersen
    Link: https://lore.kernel.org/r/20201001174748.24520-1-thomas@adapt-ip.com
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     

28 Sep, 2020

16 commits

  • Allow drivers to request that interface-iterator does NOT iterate
    over interfaces that are not sdata-in-driver. This will allow
    us to fix crashes in ath10k (and possibly other drivers).

    To summarize Johannes' explanation:

    Consider

    add interface wlan0
    add interface wlan1
    iterate active interfaces -> wlan0 wlan1
    add interface wlan2
    iterate active interfaces -> wlan0 wlan1 wlan2

    If you apply this scenario to a restart, which ought to be functionally
    equivalent to the normal startup, just compressed in time, you're
    basically saying that today you get

    add interface wlan0
    add interface wlan1
    iterate active interfaces -> wlan0 wlan1 wlan2 << problem here
    add interface wlan2
    iterate active interfaces -> wlan0 wlan1 wlan2

    which yeah, totally seems wrong.

    But fixing that to be

    add interface wlan0
    add interface wlan1
    iterate active interfaces ->

    add interface wlan2
    iterate active interfaces ->
    (or
    maybe -> wlan0 wlan1 wlan2 if the reconfig already completed)

    This is also at least somewhat wrong, but better to not iterate
    over something that exists in the driver than iterate over something
    that does not. Originally the first issue was causing crashes in
    testing with lots of station vdevs on an ath10k radio, combined
    with firmware crashing.

    I ran with a similar patch for years with no obvious bad results,
    including significant testing with ath9k and ath10k.

    Signed-off-by: Ben Greear
    Link: https://lore.kernel.org/r/20200922191957.25257-1-greearb@candelatech.com
    Signed-off-by: Johannes Berg

    Ben Greear
     
  • Add a few more missing kernel-doc annotations in mesh code.

    Signed-off-by: Johannes Berg
    Link: https://lore.kernel.org/r/20200928135129.6409460c28b7.I43657d0b70398723e59e4e724f56af88af0fec7e@changeid
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • When a frame was acked and probe frames were sent, the connection monitoring
    needs to be reset, otherwise it will keep probing until the connection is
    considered dead, even though frames have been acked in the mean time.

    Fixes: 9abf4e49830d ("mac80211: optimize station connection monitor")
    Reported-by: Georgi Valkov
    Signed-off-by: Felix Fietkau
    Link: https://lore.kernel.org/r/20200927105605.97954-1-nbd@nbd.name
    Signed-off-by: Johannes Berg

    Felix Fietkau
     
  • The changes required for associating in S1G are:

    - apply S1G BSS channel info before assoc
    - mark all S1G STAs as QoS STAs
    - include and parse AID request element
    - handle new Association Response format
    - don't fail assoc if supported rates element is missing

    Signed-off-by: Thomas Pedersen
    Link: https://lore.kernel.org/r/20200922022818.15855-15-thomas@adapt-ip.com
    [pass skb to ieee80211_add_aid_request_ie(), remove unused variable 'bss']
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     
  • S1G beacons are 802.11 Extension Frames, so the fixed
    header part differs from regular beacons.

    Add a handler to process S1G beacons and abstract out the
    fetching of BSSID and element start locations in the
    beacon body handler.

    Signed-off-by: Thomas Pedersen
    Link: https://lore.kernel.org/r/20200922022818.15855-14-thomas@adapt-ip.com
    [don't rename, small coding style cleanups]
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     
  • minstrel_ht is confused by the lack of sband->bitrates,
    and S1G will likely require a unique RC algorithm, so
    avoid rate init for now if STA is on the S1G band.

    Signed-off-by: Thomas Pedersen
    Link: https://lore.kernel.org/r/20200922022818.15855-13-thomas@adapt-ip.com
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     
  • S1G doesn't have legacy (sband->bitrates) rates, only MCS.
    For now, just send a frame at MCS 0 if a low rate is
    requested. Note we also redefine (since we're out of TX
    flags) TX_RC_VHT_MCS as TX_RC_S1G_MCS to indicate an S1G
    MCS. This is probably OK as VHT MCS is not valid on S1G
    band and vice versa.

    Signed-off-by: Thomas Pedersen
    Link: https://lore.kernel.org/r/20200922022818.15855-12-thomas@adapt-ip.com
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     
  • For now just skip the duration calculation for frames
    transmitted on the S1G band and avoid a warning.

    Signed-off-by: Thomas Pedersen
    Link: https://lore.kernel.org/r/20200922022818.15855-11-thomas@adapt-ip.com
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     
  • S1G allows listen interval up to 2^14 * 10000 beacon
    intervals. In order to do this listen interval needs a
    scaling factor applied to the lower 14 bits. Calculate
    this and properly encode the listen interval for S1G STAs.

    See IEEE802.11ah-2016 Table 9-44a for reference.

    Signed-off-by: Thomas Pedersen
    Link: https://lore.kernel.org/r/20200922022818.15855-10-thomas@adapt-ip.com
    [move listen_int_usf into function using it]
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     
  • This commit finds the correct offset for Information
    Elements in S1G beacon frames so they can be reported in
    scan results.

    Signed-off-by: Thomas Pedersen
    Link: https://lore.kernel.org/r/20200922022818.15855-8-thomas@adapt-ip.com
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     
  • Include the S1G Capabilities element in an association
    request, and support the cfg80211 capability overrides.

    Signed-off-by: Thomas Pedersen
    Link: https://lore.kernel.org/r/20200922022818.15855-5-thomas@adapt-ip.com
    [pass skb to ieee80211_add_s1g_capab_ie(), small code style edits]
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     
  • An S1G BSS can beacon at either 1 or 2 MHz and the channel
    width is unique to a given frequency. Ignore scan channel
    width for now and use the allowed channel width.

    Signed-off-by: Thomas Pedersen
    Link: https://lore.kernel.org/r/20200922022818.15855-3-thomas@adapt-ip.com
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     
  • When deleting a channel context, mac80211 would assing
    NL80211_CHAN_WIDTH_20_NOHT as the default channel width.
    This is wrong in S1G however, so instead get the allowed
    channel width for a given channel.

    Fixes eg. configuring strange (20Mhz) width during a scan
    on the S1G band.

    Signed-off-by: Thomas Pedersen
    Link: https://lore.kernel.org/r/20200922022818.15855-2-thomas@adapt-ip.com
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     
  • Two parameters are not described, add them.

    Signed-off-by: Johannes Berg
    Link: https://lore.kernel.org/r/20200924192511.21411377b0a8.I1add147d782a3bf38287bde412dc98f69323c732@changeid
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • Support 6 GHz scanning, by
    * a new scan flag to scan for colocated BSSes advertised
    by (and found) APs on 2.4 & 5 GHz
    * doing the necessary reduced neighbor report parsing for
    this, to find them
    * adding the ability to split the scan request in case the
    device by itself cannot support this.

    Also add some necessary bits in mac80211 to not break with
    these changes.

    Signed-off-by: Tova Mussai
    Signed-off-by: Johannes Berg
    Link: https://lore.kernel.org/r/20200918113313.232917c93af9.Ida22f0212f9122f47094d81659e879a50434a6a2@changeid
    Signed-off-by: Johannes Berg

    Tova Mussai
     
  • Because we can miss AP wakeup (beacon) while scanning other channels,
    it's better go into wakeup state and inform the AP of that upon
    returning to the operating channel, rather than staying asleep and
    waiting for the next TIM indicating traffic for us.

    This saves precious time, especially when we only have 200ms inter-
    scan period for monitoring the active connection.

    Signed-off-by: Loic Poulain
    Link: https://lore.kernel.org/r/1593420923-26668-1-git-send-email-loic.poulain@linaro.org
    [rewrite commit message a bit]
    Signed-off-by: Johannes Berg

    Loic Poulain
     

23 Sep, 2020

1 commit

  • Two minor conflicts:

    1) net/ipv4/route.c, adding a new local variable while
    moving another local variable and removing it's
    initial assignment.

    2) drivers/net/dsa/microchip/ksz9477.c, overlapping changes.
    One pretty prints the port mode differently, whilst another
    changes the driver to try and obtain the port mode from
    the port node rather than the switch node.

    Signed-off-by: David S. Miller

    David S. Miller
     

18 Sep, 2020

4 commits

  • This patch adds mac80211 support to configure unsolicited
    broadcast probe response transmission for in-band discovery in 6GHz.

    Changes include functions to store and retrieve probe response template,
    and packet interval (0 - 20 TUs).
    Setting interval to 0 disables the unsolicited broadcast probe response
    transmission.

    Signed-off-by: Aloka Dixit
    Link: https://lore.kernel.org/r/010101747a946b35-ad25858a-1f1f-48df-909e-dc7bf26d9169-000000@us-west-2.amazonses.com
    Signed-off-by: Johannes Berg

    Aloka Dixit
     
  • This patch adds mac80211 support to configure FILS discovery
    transmission.
    Changes include functions to store and retrieve FILS discovery
    template, minimum and maximum packet intervals.

    Signed-off-by: Aloka Dixit
    Link: https://lore.kernel.org/r/20200805011838.28166-3-alokad@codeaurora.org
    [remove SUPPORTS_FILS_DISCOVERY, driver can just set wiphy info]
    Link: https://lore.kernel.org/r/010101747a7b3cbb-6edaa89c-436d-4391-8765-61456d7f5f4e-000000@us-west-2.amazonses.com
    Signed-off-by: Johannes Berg

    Aloka Dixit
     
  • When trying to associate to an AP support 180 or 80+80 MHz on 6 GHz with a
    STA that only has 80 Mhz support the cf2 field inside the chandef will get
    set causing the association to fail when trying to validate the chandef.
    Fix this by checking the support flags prior to setting cf2.

    Fixes: 57fa5e85d53ce ("mac80211: determine chandef from HE 6 GHz operation")
    Signed-off-by: John Crispin
    Link: https://lore.kernel.org/r/20200918115304.1135693-1-john@phrozen.org
    [reword commit message a bit]
    Signed-off-by: Johannes Berg

    John Crispin
     
  • Some APs (e.g. Asus RT-AC88U) have been observed to report an HT MSDU size
    limit of 3839 and a VHT limit of 7991. These APs can handle bigger frames
    than 3839 bytes just fine, so we should remove the VHT limit based on the
    HT capabilities. This improves tx throughput.

    Signed-off-by: Felix Fietkau
    Link: https://lore.kernel.org/r/20200916164611.8022-1-nbd@nbd.name
    Signed-off-by: Johannes Berg

    Felix Fietkau