aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-12-01net/tcp: Do cleanup on tcp_md5_key_copy() failureDmitry Safonov2-14/+10
If the kernel was short on (atomic) memory and failed to allocate it - don't proceed to creation of request socket. Otherwise the socket would be unsigned and userspace likely doesn't expect that the TCP is not MD5-signed anymore. Signed-off-by: Dmitry Safonov <[email protected]> Acked-by: Jakub Kicinski <[email protected]> Reviewed-by: Eric Dumazet <[email protected]> Signed-off-by: Jakub Kicinski <[email protected]>
2022-12-01net/tcp: Disable TCP-MD5 static key on tcp_md5sig_info destructionDmitry Safonov6-32/+84
To do that, separate two scenarios: - where it's the first MD5 key on the system, which means that enabling of the static key may need to sleep; - copying of an existing key from a listening socket to the request socket upon receiving a signed TCP segment, where static key was already enabled (when the key was added to the listening socket). Now the life-time of the static branch for TCP-MD5 is until: - last tcp_md5sig_info is destroyed - last socket in time-wait state with MD5 key is closed. Which means that after all sockets with TCP-MD5 keys are gone, the system gets back the performance of disabled md5-key static branch. While at here, provide static_key_fast_inc() helper that does ref counter increment in atomic fashion (without grabbing cpus_read_lock() on CONFIG_JUMP_LABEL=y). This is needed to add a new user for a static_key when the caller controls the lifetime of another user. Signed-off-by: Dmitry Safonov <[email protected]> Acked-by: Jakub Kicinski <[email protected]> Reviewed-by: Eric Dumazet <[email protected]> Signed-off-by: Jakub Kicinski <[email protected]>
2022-12-01net/tcp: Separate tcp_md5sig_info allocation into tcp_md5sig_info_add()Dmitry Safonov1-9/+21
Add a helper to allocate tcp_md5sig_info, that will help later to do/allocate things when info allocated, once per socket. Signed-off-by: Dmitry Safonov <[email protected]> Reviewed-by: Eric Dumazet <[email protected]> Acked-by: Jakub Kicinski <[email protected]> Signed-off-by: Jakub Kicinski <[email protected]>
2022-12-01jump_label: Prevent key->enabled int overflowDmitry Safonov2-16/+61
1. With CONFIG_JUMP_LABEL=n static_key_slow_inc() doesn't have any protection against key->enabled refcounter overflow. 2. With CONFIG_JUMP_LABEL=y static_key_slow_inc_cpuslocked() still may turn the refcounter negative as (v + 1) may overflow. key->enabled is indeed a ref-counter as it's documented in multiple places: top comment in jump_label.h, Documentation/staging/static-keys.rst, etc. As -1 is reserved for static key that's in process of being enabled, functions would break with negative key->enabled refcount: - for CONFIG_JUMP_LABEL=n negative return of static_key_count() breaks static_key_false(), static_key_true() - the ref counter may become 0 from negative side by too many static_key_slow_inc() calls and lead to use-after-free issues. These flaws result in that some users have to introduce an additional mutex and prevent the reference counter from overflowing themselves, see bpf_enable_runtime_stats() checking the counter against INT_MAX / 2. Prevent the reference counter overflow by checking if (v + 1) > 0. Change functions API to return whether the increment was successful. Signed-off-by: Dmitry Safonov <[email protected]> Acked-by: Jakub Kicinski <[email protected]> Acked-by: Peter Zijlstra (Intel) <[email protected]> Signed-off-by: Jakub Kicinski <[email protected]>
2022-12-01Merge branch 'locking/core' of ↵Jakub Kicinski1-6/+2
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull in locking/core from tip (just a single patch) to avoid a conflict with a jump_label change needed by a TCP cleanup. Link: https://lore.kernel.org/all/[email protected]/ Signed-off-by: Jakub Kicinski <[email protected]>
2022-12-01Merge tag 'iwlwifi-next-for-kalle-2022-11-28' of ↵Kalle Valo18-157/+647
http://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next This is the second pull request intended for v6.2 It contains two patch-sets sent before with the following content: * iwlwifi EHT adjustments * double-free fix in tx path * iwlmei PLDR flow fixes * iwlmei smatch fixes * a logging data improvement
2022-12-01Merge tag 'mt76-for-kvalo-2022-12-01' of https://github.com/nbd168/wirelessKalle Valo84-1031/+16572
mt76 patches for 6.2 - fixes - WED support for mt7986 + mt7915 for flow offloading - new driver for the mt7996 wifi-7 chipset
2022-12-01wifi: mt76: mt7921e: add pci .shutdown() supportLeon Yen1-0/+16
Some combinations of hosts cannnot detect mt7921e after reboot. The interoperability issue is caused by the status mismatch between host and chip fw. In such cases, the driver should stop chip activities and reset chip to default state before reboot. Suggested-by: [email protected] Co-developed-by: Deren Wu <[email protected]> Signed-off-by: Deren Wu <[email protected]> Signed-off-by: Leon Yen <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7915: mmio: fix naming conventionLorenzo Bianconi1-5/+5
Rename mt7915_wed_release_rx_buf in mt7915_mmio_wed_release_rx_buf, mt7915_wed_init_rx_buf in mt7915_mmio_wed_init_rx_buf and mt7915_wed_release_rx_buf in mt7915_mmio_wed_release_rx_buf Signed-off-by: Lorenzo Bianconi <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7996: add support to configure spatial reuse parameter setRyder Lee4-13/+196
The SPR parameter set comprises OBSS PD threshold for SRG and non SRG and Bitmap of BSS color and partial BSSID. This adds support to configure fields of SPR element to firmware. User can disable firmware SR algorithms by turning sr_scene_detect off. Signed-off-by: Ryder Lee <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7996: enable ack signal supportRyder Lee6-13/+60
This reports signal strength of ACK packets from the peer as measured at each interface. Signed-off-by: Ryder Lee <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7996: enable use_cts_prot supportRyder Lee3-0/+18
This adds selectable RTC/CTS enablement for each interface. Signed-off-by: Ryder Lee <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7915: rely on band_idx of mt76_phyRyder Lee10-166/+184
The commit dc44c45c8cd0 added band_idx into mt76_phy, so switching to rely on that. Signed-off-by: Ryder Lee <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7915: enable per bandwidth power limit supportRyder Lee3-32/+184
This power should override the per bandwidth max power that the device emits. Signed-off-by: Ryder Lee <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7915: introduce mt7915_get_power_bound()Ryder Lee2-7/+17
Add a helper for common boundary check. This is a preliminary patch to add per bandwidth power control. Signed-off-by: Ryder Lee <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01mt76: mt7915: Fix PCI device refcount leak in mt7915_pci_init_hif2()Xiongfeng Wang1-3/+10
As comment of pci_get_device() says, it returns a pci_device with its refcount increased. We need to call pci_dev_put() to decrease the refcount. Save the return value of pci_get_device() and call pci_dev_put() to decrease the refcount. Fixes: 9093cfff72e3 ("mt76: mt7915: add support for using a secondary PCIe link for gen1") Fixes: 2e30db0dde61 ("mt76: mt7915: add device id for mt7916") Signed-off-by: Xiongfeng Wang <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: do not send firmware FW_FEATURE_NON_DL regionDeren Wu1-0/+4
skip invalid section to avoid potential risks Fixes: 23bdc5d8cadf ("wifi: mt76: mt7921: introduce Country Location Control support") Signed-off-by: Deren Wu <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7921: Add missing __packed annotation of struct mt7921_clcDeren Wu1-1/+1
Add __packed annotation to avoid potential CLC parsing error Fixes: 23bdc5d8cadf ("wifi: mt76: mt7921: introduce Country Location Control support") Signed-off-by: Deren Wu <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: fix coverity overrun-call in mt76_get_txpower()Deren Wu1-1/+2
Make sure the nss is valid for nss_delta array. Return zero if the index is invalid. Coverity message: Event overrun-call: Overrunning callee's array of size 4 by passing argument "n_chains" (which evaluates to 15) in call to "mt76_tx_power_nss_delta". int delta = mt76_tx_power_nss_delta(n_chains); Fixes: 07cda406308b ("mt76: fix rounding issues on converting per-chain and combined txpower") Signed-off-by: Deren Wu <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (802.11be) devicesShayne Chen18-0/+12289
The driver first supports Filogic 680 PCI device, which is a Wi-Fi 7 chipset supporting concurrent tri-band operation at 6 GHz, 5 GHz, and 2.4 GHz with 4x4 antennas on each band. Currently, mt7996 only supports tri-band HE or older mode. EHT mode and more variants of Filogic 680 support will be introduced in further patches. Reviewed-by: Ryder Lee <[email protected]> Co-developed-by: Peter Chiu <[email protected]> Signed-off-by: Peter Chiu <[email protected]> Co-developed-by: Bo Jiao <[email protected]> Signed-off-by: Bo Jiao <[email protected]> Co-developed-by: Howard Hsu <[email protected]> Signed-off-by: Howard Hsu <[email protected]> Co-developed-by: MeiChia Chiu <[email protected]> Signed-off-by: MeiChia Chiu <[email protected]> Co-developed-by: StanleyYP Wang <[email protected]> Signed-off-by: StanleyYP Wang <[email protected]> Co-developed-by: Money Wang <[email protected]> Signed-off-by: Money Wang <[email protected]> Co-developed-by: Evelyn Tsai <[email protected]> Signed-off-by: Evelyn Tsai <[email protected]> Signed-off-by: Shayne Chen <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt76x0: remove dead code in mt76x0_phy_get_target_powerLorenzo Bianconi1-3/+0
tx_rate can't be greater than 3 in mt76x0_phy_get_target_power routine for cck rates. Get rid of dead code. Signed-off-by: Lorenzo Bianconi <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7915: fix band_idx usageRyder Lee5-59/+58
The commit 006b9d4ad5bf introduced phy->band_idx to accommodate the band definition change for mt7986 so that the band_idx of main_phy can be 0 or 1. Accordingly, the source of band_idx 1 has switched to "phy != &dev->phy" or "dev->phy.band_idx = 1". We still use ext_phy to represent band 1 somewhere in driver, so fix it. Also, band_idx sounds more reasonable than dbdc_idx, so change it. Fixes: 006b9d4ad5bf ("mt76: mt7915: introduce band_idx in mt7915_phy") Signed-off-by: Ryder Lee <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7915: enable .sta_set_txpwr supportRyder Lee5-6/+137
This adds support for adjusting the Txpower level while pushing traffic to an associated station. The allowed range is from 0 to the maximum power of channel. Signed-off-by: Ryder Lee <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7915: add basedband Txpower info into debugfsRyder Lee2-3/+20
This helps user to debug Txpower propagation path easily. Signed-off-by: Ryder Lee <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7915: add support to configure spatial reuse parameter setRyder Lee4-21/+207
The SPR parameter set comprises OBSS PD threshold for SRG and non SRG and Bitmap of BSS color and partial BSSID. This adds support to configure fields of SPR element to firmware. User can disable firmware SR algorithms by turning sr_scene_detect off. Signed-off-by: Ryder Lee <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7915: add missing MODULE_PARM_DESCRyder Lee1-0/+1
Add documentation for module_param so that they're visible with modinfo command. Signed-off-by: Ryder Lee <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7915: enable WED RX statsSujuan Chen6-0/+65
Introduce the capability to report WED RX stats to mac80211. Tested-by: Daniel Golle <[email protected]> Co-developed-by: Lorenzo Bianconi <[email protected]> Signed-off-by: Lorenzo Bianconi <[email protected]> Signed-off-by: Sujuan Chen <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7915: enable WED RX supportLorenzo Bianconi6-93/+238
Enable RX Wireless Ethernet Dispatch available on MT7986 Soc in oreder to offlad traffic received by WLAN NIC and forwarded to LAN/WAN one. Tested-by: Daniel Golle <[email protected]> Co-developed-by: Sujuan Chen <[email protected]> Signed-off-by: Sujuan Chen <[email protected]> Signed-off-by: Lorenzo Bianconi <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: connac: introduce mt76_connac_mcu_sta_wed_update utility routineSujuan Chen2-0/+23
This is a preliminary patch to introduce WED RX support for mt7915. Tested-by: Daniel Golle <[email protected]> Co-developed-by: Lorenzo Bianconi <[email protected]> Signed-off-by: Lorenzo Bianconi <[email protected]> Signed-off-by: Sujuan Chen <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: add info parameter to rx_skb signatureSujuan Chen14-22/+53
This is a preliminary patch to introduce WED RX support for mt7915. Tested-by: Daniel Golle <[email protected]> Co-developed-by: Lorenzo Bianconi <[email protected]> Signed-off-by: Lorenzo Bianconi <[email protected]> Signed-off-by: Sujuan Chen <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: add WED RX support to dma queue allocLorenzo Bianconi1-1/+9
Introduce the capability to allocate WED RX buffers in mt76_dma_wed_setup routine. Tested-by: Daniel Golle <[email protected]> Co-developed-by: Sujuan Chen <[email protected]> Signed-off-by: Sujuan Chen <[email protected]> Signed-off-by: Lorenzo Bianconi <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: add WED RX support to mt76_dma_rx_fillLorenzo Bianconi1-6/+27
Introduce the capability to refill WED RX buffers in mt76_dma_rx_fill utility routine. Tested-by: Daniel Golle <[email protected]> Co-developed-by: Sujuan Chen <[email protected]> Signed-off-by: Sujuan Chen <[email protected]> Signed-off-by: Lorenzo Bianconi <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: add WED RX support to mt76_dma_{add,get}_bufLorenzo Bianconi2-39/+88
Introduce the capability to configure RX WED in mt76_dma_{add,get}_buf utility routines. Tested-by: Daniel Golle <[email protected]> Co-developed-by: Sujuan Chen <[email protected]> Signed-off-by: Sujuan Chen <[email protected]> Signed-off-by: Lorenzo Bianconi <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: introduce rxwi and rx token utility routinesSujuan Chen5-1/+126
This is a preliminary patch to introduce WED RX support for mt7915. Tested-by: Daniel Golle <[email protected]> Co-developed-by: Lorenzo Bianconi <[email protected]> Signed-off-by: Lorenzo Bianconi <[email protected]> Signed-off-by: Sujuan Chen <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7921: fix wrong power after multiple SAR setYN Chen3-0/+9
We should update CLC config before SAR set to synchronize all related settings. Fixes: 23bdc5d8cadf ("wifi: mt76: mt7921: introduce Country Location Control support") Signed-off-by: YN Chen <[email protected]> Signed-off-by: Deren Wu <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: connac: introduce helper for mt7996 chipsetShayne Chen2-1/+7
Introduce is_mt7996() helper for new chipset. This is a preliminary patch to support mt7996 driver. Signed-off-by: Shayne Chen <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: connac: add more starec command tagsShayne Chen1-0/+2
Add starec tags which will be used in new chipset. This is a preliminary patch to add mt7996 chipset support. Signed-off-by: Shayne Chen <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: connac: add more bss info command tagsShayne Chen1-0/+9
Add bss info tags which will be used in new chipset. This is a preliminary patch to add mt7996 chipset support. Signed-off-by: Shayne Chen <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: connac: introduce unified event tableShayne Chen1-0/+11
Add event IDs and related bit fields for unified event support. This is a preliminary patch to add mt7996 chipset support. Signed-off-by: Bo Jiao <[email protected]> Signed-off-by: Peter Chiu <[email protected]> Signed-off-by: Shayne Chen <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: connac: add more unified command IDsShayne Chen1-0/+22
Add more unified command IDs which will be used in new chipset. This is the preliminary patch for mt7996 support. Signed-off-by: Shayne Chen <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: connac: rework fields for larger bandwidth support in sta_rec_bfShayne Chen2-7/+7
Rename nrow_bw160 and ncol_bw160 since channel width 320 MHz will share the same field. This is a preliminary patch to add mt7996 chipset support. Signed-off-by: MeiChia Chiu <[email protected]> Signed-off-by: Shayne Chen <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: connac: update struct sta_rec_phyShayne Chen1-1/+2
For connac3 generation, max_ampdu_len should be filled in struct sta_rec_phy. This is a preliminary patch to add mt7996 chipset support. Signed-off-by: Peter Chiu <[email protected]> Signed-off-by: Shayne Chen <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: connac: rework macros for unified commandShayne Chen1-3/+15
Rework some macros for connac3 unified command. This is a preliminary patch to add mt7996 chipset support. Signed-off-by: Peter Chiu <[email protected]> Signed-off-by: Shayne Chen <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7921: introduce chanctx supportSean Wang7-17/+157
The firmware can have the capability to manage the channel context scheduling on multiple roles running on the device including Station, AP and P2P GC/GO mode (will be extended based on the future patchset) to help users sharing the network with others on a single device. The firmware is able to support the channel chanctx up to 2 interface simultaneously running on the different channels. Another thing to be noted is that before the driver is going sent out the management frames, the driver has to get the privilege from the firmware to occupy the current channel context until the frame handshake is completed and then get the privilege back to the firmware. Co-developed-by: Deren Wu <[email protected]> Signed-off-by: Deren Wu <[email protected]> Signed-off-by: Sean Wang <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7921: introduce remain_on_channel supportSean Wang7-12/+303
Introduce remain_on_channel support. Additionally, we add mt7921_check_offload_capability to disable .remain_on_channel and .cancel_remain_on_channel and related configuration because those operations would rely on the fundamental MCU commands that will be only supported with newer firmware. Co-developed-by: Deren Wu <[email protected]> Signed-off-by: Deren Wu <[email protected]> Signed-off-by: Sean Wang <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: connac: accept hw scan request at a timeSean Wang1-0/+3
The current hw scan cannot accept multiple hw scan requests at a time, we return the proper error code when the hw scan is still undergoing. Signed-off-by: Sean Wang <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7921: drop ieee80211_[start, stop]_queues in driverSean Wang1-18/+0
The firmware would be in charge of braking and continuing the traffic while the channel contexts are switching between different BSS and HW SCAN in the background. Signed-off-by: Sean Wang <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7921: add unified ROC cmd/event supportQuan Zhou3-2/+146
Add unified ROC cmd/event which is only supported by the newer fw. Co-developed-by: Sean Wang <[email protected]> Signed-off-by: Sean Wang <[email protected]> Co-developed-by: Deren Wu <[email protected]> Signed-off-by: Deren Wu <[email protected]> Co-developed-by: Kaikai Hu <[email protected]> Signed-off-by: Kaikai Hu <[email protected]> Signed-off-by: Quan Zhou <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: mt7921: add chanctx parameter to mt76_connac_mcu_uni_add_bss ↵Sean Wang5-10/+14
signature Add a chanctx parameter to mt76_connac_mcu_uni_add_bss signature to allow the firmware binds the BSS into the specific channel context. Signed-off-by: Sean Wang <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
2022-12-01wifi: mt76: connac: add mt76_connac_mcu_uni_set_chctxSean Wang2-68/+82
add mt76_connac_mcu_uni_set_chctx to set up the channel context per BSS in the firmware Signed-off-by: Sean Wang <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>