lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <fe78857f-956c-439e-a1a7-95ea19c8e932@oss.qualcomm.com>
Date: Mon, 17 Nov 2025 11:10:24 -0800
From: Jeff Johnson <jeff.johnson@....qualcomm.com>
To: Jeff Chen <jeff.chen_1@....com>, linux-wireless@...r.kernel.org
Cc: linux-kernel@...r.kernel.org, briannorris@...omium.org,
        johannes@...solutions.net, francesco@...cini.it,
        tsung-hsien.hsieh@....com, s.hauer@...gutronix.de
Subject: Re: [PATCH v7 00/22] wifi: nxpwifi: create nxpwifi to support iw61x

On 11/17/2025 3:00 AM, Jeff Chen wrote:
> This series adds a new full-MAC Wi-Fi driver `nxpwifi` to support NXP IW61x
> chip family. These chips are tri-radio single-chip solutions with Wi-Fi 6
> (1x1, 2.4/5 GHz), Bluetooth 5.4, and IEEE 802.15.4. Communication with the
> external host is via SDIO interface. The driver is tested on i.MX8M Mini
> EVK in both STA and AP mode.
> 
> This driver is not based on mac80211. It derives from mwifiex, but due to
> significant differences in firmware architecture, host command interface,
> and supported features, it was not feasible to extend mwifiex without risk
> of regressions. Thus, a new driver is introduced. Future NXP Wi-Fi chipsets
> will also be supported under `nxpwifi`.
> 
> The driver passes checkpatch. WPA2/WPA3 personal/enterprise is currently
> handled in host via wpa_supplicant/hostapd.
> 
> v4 adds support for TWT, monitor mode, WPA3 Enterprise Suite-B, and various
> fixes and improvements. See below for full changelog.
> 
> Data sheet is available at:
> https://www.nxp.com/docs/en/data-sheet/IW612.pdf
> 
> Change history:
> 
> v7:
>    - Addressed review feedback from v6
>      - Removed unused variable `ext_rate_info` in `nxpwifi_rxpdinfo_to_radiotapinfo()
>      - Radiotap handling fixes:
>        - Converted fields to `__le16`/`__le64`
>        - Applied `cpu_to_le16()`/`cpu_to_le64()` for endian correctness
>        - Replaced `jiffies` with `ktime_get_ns()/1000` for timestamp
>        - Validated channel frequency conversion and removed redundant code
>    - General cleanup of endian conversions and Sparse warnings
>      - Improved HE capability setup via `_ieee80211_set_sband_iftype_data()`
>      - TWT configuration fixes:
>        - Updated structs to `__le16`/`__le32`
>        - Corrected debugfs write helpers for endian conversions
>        - Removed redundant conversions in `nxpwifi_cmd_twt_cfg()`
>      - Scan handling fixes:
>        - Changed OUI variables to `__be32`
>        - Used `le16_to_cpu()` for `ext_cap->header.len`
>        - Moved element pointer declaration outside `switch`
>      - HW spec parsing fix:
>        - Added `le32_to_cpu()` before `GET_MPDU_DENSITY()`
>      - Cfg80211 handling fix:
>        - Moved `legacy_rates[]` definition outside `switch` block
> 
> v6:
>    - Removed custom locking (main_locked, main_proc_lock, more_task_flag)
>    - Refactored main process to rely solely on workqueue
>    - SDIO interrupt now only queues main_work; avoids direct call to nxpwifi_main_process()
>    - Introduced atomic iface_changing flag to block main process during interface transitions
>    - Split monolithic main process logic into helper functions for better readability
>    - Improved exit logic to avoid lost-kick scenarios and ensure all pending tasks are processed
>    - Replaced rcu_read_lock()/unlock() pairs with guard(rcu)() for modern kernel style
>    - Code cleanups based on review feedback
> 
> v5:
>    - Fixed build errors introduced in v4.
> 
> v4:
>    - Added support for TWT (STA mode)
>    - Added support for Monitor mode
>    - Added support for WPA3 Enterprise Suite-B
>    - Bug fix: In BGN/AN HT40 mode, throughput was 50% lower than expected
>    - Bug fix: In STA 2.4G HE40 mode, throughput was 80% lower than expected
>    - Use wiphy work instead of general workqueue for cfg80211 ops
>    - Introduced RCU protection for ba, rx_reorder, and sta_lists
>    - Used per-TID spinlock for tx_ba / rx_reorder lists to improve
>      concurrency
>    - Replaced mutex_lock with wiphy_lock
>    - Reverted "use tasklet for Rx" (back to workqueue)
>    - Refactored HE capability handling for better clarity and
>      maintainability
>    - Used standard kernel helpers for MAC address handling
>    - Replaced proprietary nxpwifi_ieee80211 with standard ieee80211_mgmt
>      structure
>    - Used u32_get_bits() for VHT capability field access
>    - Replaced LOW_PRIO_TID with TC_PRIO_BESTEFFORT for skb priority
>    - Removed static WPA/RSN OUI table; now derived from cipher suite ID
>    - Removed redundant helper functions: has_vendor_hdr and has_ieee_hdr
> 
> v3:
>    - Enable 802.11ax (Wi-Fi 6) for both AP and STA mode.
>    - Extend driver verion string with hotfix number.
>    - Remove Rx mlme work.
>    - Remove all useless check of netif_carrier_ok().
>    - Merge decl.h to cfg.h.
>    - Remove unnecessary check for wiphy parameters setting.
>    - Synchronize following commits from Mwifiex:
>      wifi: mwifiex: replace open-coded module_sdio_driver()
>      wifi: mwifiex: Fix interface type change
>      wifi: mwifiex: Do not return unused priv in mwifiex_get_priv_by_id()
>      wifi: mwifiex: increase max_num_akm_suites
>      wifi: mwifiex: duplicate static structs used in driver instances
>      wifi: mwifiex: keep mwifiex_cfg80211_ops constant
>      wifi: mwifiex: Fix uninitialized variable in
>                     mwifiex_cfg80211_authenticate()
>      wifi: mwifiex: remove unnecessary checks for valid priv
>      wifi: mwifiex: Fix memcpy() field-spanning write warning in
>                     mwifiex_cmd_802_11_scan_ext()
>      wifi: mwifiex: Use IRQF_NO_AUTOEN flag in request_irq()
> 
> v2:
>    - Rename ioctl.h and sta_ioctl.c to cfg.h and sta_cfg.c.
>    - Remove useless header file semaphore.h.
>    - Use static variable for cookie.
>    - Modify nxpwifi_register to use ERR_PTR, IS_ERR and PTR_ERR.
>    - Use error number for error code.
>    - Remove unnecessary private ie definitions.
>    - Remove mutex async_mutex and related code.
>    - Remove unnecessary work queue.
>    - Add the support for PSK SHA256.
>    - Use tasklet for Rx.
>    - Remove unused functions.
>    - Remove compile warning.
> 
> Jeff Chen (22):
>   wifi: nxpwifi: Add 802.11n support for client and AP modes
>   wifi: nxpwifi: add initial support for 802.11ac
>   wifi: nxpwifi: add initial support for 802.11ax
>   wifi: nxpwifi: add support for 802.11h (DFS and TPC)
>   wifi: nxpwifi: add support for WMM
>   wifi: nxpwifi: add scan support
>   wifi: nxpwifi: add join and association support
>   wifi: nxpwifi: add channel/frequency/power (cfp) support
>   wifi: nxpwifi: add configuration support
>   wifi: nxpwifi: implement cfg80211 ops for STA and AP modes
>   wifi: nxpwifi: add firmware command and TLV definitions
>   wifi: nxpwifi: introduce command and event handling infrastructure
>   wifi: nxpwifi: add data path support for STA and AP modes
>   wifi: nxpwifi: add debugfs support for diagnostics and testing
>   wifi: nxpwifi: add ethtool support for Wake-on-LAN
>   wifi: nxpwifi: add utility and IE handling support
>   wifi: nxpwifi: add driver initialization and shutdown support
>   wifi: nxpwifi: add core driver implementation
>   wifi: nxpwifi: add initial SDIO bus driver support
>   wifi: nxpwifi: add NXP vendor and IW61x device IDs to sdio_ids.h
>   wifi: nxpwifi: add Kconfig and Makefile for kernel integration
>   wifi: nxpwifi: add MAINTAINERS entry for nxpwifi driver
> 
>  MAINTAINERS                                   |    8 +
>  drivers/net/wireless/Kconfig                  |    1 +
>  drivers/net/wireless/Makefile                 |    1 +
>  drivers/net/wireless/nxp/Kconfig              |   17 +
>  drivers/net/wireless/nxp/Makefile             |    3 +
>  drivers/net/wireless/nxp/nxpwifi/11ac.c       |  289 ++
>  drivers/net/wireless/nxp/nxpwifi/11ac.h       |   33 +
>  drivers/net/wireless/nxp/nxpwifi/11ax.c       |  596 +++
>  drivers/net/wireless/nxp/nxpwifi/11ax.h       |   77 +
>  drivers/net/wireless/nxp/nxpwifi/11h.c        |  346 ++
>  drivers/net/wireless/nxp/nxpwifi/11n.c        |  887 ++++
>  drivers/net/wireless/nxp/nxpwifi/11n.h        |  164 +
>  drivers/net/wireless/nxp/nxpwifi/11n_aggr.c   |  275 ++
>  drivers/net/wireless/nxp/nxpwifi/11n_aggr.h   |   21 +
>  .../net/wireless/nxp/nxpwifi/11n_rxreorder.c  |  924 ++++
>  .../net/wireless/nxp/nxpwifi/11n_rxreorder.h  |   71 +
>  drivers/net/wireless/nxp/nxpwifi/Kconfig      |   22 +
>  drivers/net/wireless/nxp/nxpwifi/Makefile     |   39 +
>  drivers/net/wireless/nxp/nxpwifi/cfg.h        |  984 ++++
>  drivers/net/wireless/nxp/nxpwifi/cfg80211.c   | 4049 +++++++++++++++++
>  drivers/net/wireless/nxp/nxpwifi/cfg80211.h   |   19 +
>  drivers/net/wireless/nxp/nxpwifi/cfp.c        |  475 ++
>  drivers/net/wireless/nxp/nxpwifi/cmdevt.c     | 1283 ++++++
>  drivers/net/wireless/nxp/nxpwifi/cmdevt.h     |   98 +
>  drivers/net/wireless/nxp/nxpwifi/debugfs.c    | 1221 +++++
>  drivers/net/wireless/nxp/nxpwifi/ethtool.c    |   58 +
>  drivers/net/wireless/nxp/nxpwifi/fw.h         | 2400 ++++++++++
>  drivers/net/wireless/nxp/nxpwifi/ie.c         |  500 ++
>  drivers/net/wireless/nxp/nxpwifi/init.c       |  680 +++
>  drivers/net/wireless/nxp/nxpwifi/join.c       |  910 ++++
>  drivers/net/wireless/nxp/nxpwifi/main.c       | 1834 ++++++++
>  drivers/net/wireless/nxp/nxpwifi/main.h       | 1836 ++++++++
>  drivers/net/wireless/nxp/nxpwifi/scan.c       | 2859 ++++++++++++
>  drivers/net/wireless/nxp/nxpwifi/sdio.c       | 2649 +++++++++++
>  drivers/net/wireless/nxp/nxpwifi/sdio.h       |  340 ++
>  drivers/net/wireless/nxp/nxpwifi/sta_cfg.c    | 1319 ++++++
>  drivers/net/wireless/nxp/nxpwifi/sta_cmd.c    | 3449 ++++++++++++++
>  drivers/net/wireless/nxp/nxpwifi/sta_event.c  |  868 ++++
>  drivers/net/wireless/nxp/nxpwifi/sta_rx.c     |  250 +
>  drivers/net/wireless/nxp/nxpwifi/sta_tx.c     |  208 +
>  drivers/net/wireless/nxp/nxpwifi/txrx.c       |  358 ++
>  drivers/net/wireless/nxp/nxpwifi/uap_cmd.c    | 1234 +++++
>  drivers/net/wireless/nxp/nxpwifi/uap_event.c  |  490 ++
>  drivers/net/wireless/nxp/nxpwifi/uap_txrx.c   |  506 ++
>  drivers/net/wireless/nxp/nxpwifi/util.c       | 1570 +++++++
>  drivers/net/wireless/nxp/nxpwifi/util.h       |  132 +
>  drivers/net/wireless/nxp/nxpwifi/wmm.c        | 1379 ++++++
>  drivers/net/wireless/nxp/nxpwifi/wmm.h        |   78 +
>  include/linux/mmc/sdio_ids.h                  |    3 +
>  49 files changed, 37813 insertions(+)
>  create mode 100644 drivers/net/wireless/nxp/Kconfig
>  create mode 100644 drivers/net/wireless/nxp/Makefile
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/11ac.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/11ac.h
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/11ax.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/11ax.h
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/11h.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/11n.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/11n.h
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/11n_aggr.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/11n_aggr.h
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/11n_rxreorder.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/11n_rxreorder.h
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/Kconfig
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/Makefile
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/cfg.h
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/cfg80211.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/cfg80211.h
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/cfp.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/cmdevt.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/cmdevt.h
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/debugfs.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/ethtool.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/fw.h
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/ie.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/init.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/join.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/main.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/main.h
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/scan.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/sdio.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/sdio.h
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/sta_cfg.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/sta_cmd.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/sta_event.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/sta_rx.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/sta_tx.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/txrx.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/uap_cmd.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/uap_event.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/uap_txrx.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/util.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/util.h
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/wmm.c
>  create mode 100644 drivers/net/wireless/nxp/nxpwifi/wmm.h
> 

So that this series would have an additional set of eyes I ran this through
the automation I use for ath.git.

It reports multiple instances of using the now obsolete networking multi-line
comment style.
Starting from the first patch:
+/* Fills HT capability information field, AMPDU Parameters field, HT extended
+/* This function returns the pointer to an entry in BA Stream
+/* This function handles the command response of delete a block
...

Current guidance is to use the standard multi-line comment style
/*
 * first line of comment
 * [more lines of comment]
 * last line of commnt
 */

It also flagged one incorrect use of kernel-doc comment style:
+       /** rate for LG pkt, RATE flag will be present, it shows datarate in

There are also numerous spelling issues reported by checkpatch.pl --codespell
TYPO_SPELLING: 'interation' may be misspelled - perhaps 'iteration'?
TYPO_SPELLING: 'Dimentions' may be misspelled - perhaps 'Dimensions'?
TYPO_SPELLING: 'interfacces' may be misspelled - perhaps 'interfaces'?
TYPO_SPELLING: 'formate' may be misspelled - perhaps 'format'?
TYPO_SPELLING: 'verion' may be misspelled - perhaps 'version'?
TYPO_SPELLING: 'Timstamp' may be misspelled - perhaps 'Timestamp'?
TYPO_SPELLING: 'intializes' may be misspelled - perhaps 'initializes'?
TYPO_SPELLING: 'statistc' may be misspelled - perhaps 'statistic'?

Also "wifi: nxpwifi: add initial SDIO bus driver support" reports
UNDOCUMENTED_DT_STRING: DT compatible string "nxp,iw61x" appears un-documented
-- check ./Documentation/devicetree/bindings/

Is there an associated DT patch out there?

The MAINTAINERS patch reports multiple instances of:
MAINTAINERS_STYLE: MAINTAINERS entries use one tab after TYPE:

So suggest you use all options to checkpatch.pl on your series

/jeff

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ