Skip to content

Compilation error : aic8800_fdrv/rwnx_main.c:5701:28 #9

@pierreblavy2

Description

@pierreblavy2

Hello.

When I compile the code, I get the error :

aic8800_fdrv/rwnx_main.c:5701:28: error: initialization of ‘int (*)(struct wiphy *, struct net_device *, struct cfg80211_chan_def *)’ from incompatible pointer type ‘int (*)(struct wiphy *, struct cfg80211_chan_def *)’ [-Wincompatible-pointer-types]
 5701 |     .set_monitor_channel = rwnx_cfg80211_set_monitor_channel,

Can you please help me to fix this bug ?

How to reproduce

git clone https://github.com/goecho/aic8800_linux_drvier.git
cd aic8800_linux_drvier
make

System info

uname -a
Linux fedora 6.14.3-200.fc41.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 13:49:26 UTC 2025 x86_64 GNU/Linux

sudo dnf install kernel-devel kernel-headers gcc make git
[...]
Package "kernel-devel-6.13.6-200.fc41.x86_64" is already installed.
Package "kernel-devel-6.13.8-200.fc41.x86_64" is already installed.
Package "kernel-devel-6.14.3-200.fc41.x86_64" is already installed.
Package "kernel-headers-6.14.3-200.fc41.x86_64" is already installed.
Package "gcc-14.2.1-7.fc41.x86_64" is already installed.
Package "make-1:4.4.1-8.fc41.x86_64" is already installed.
Package "git-2.49.0-1.fc41.x86_64" is already installed.
Nothing to do

Complete log of make

Compiling the driver...
cd drivers/aic8800 && make
make[1]: Entering directory '/var/tmp/aic8800_linux_drvier/drivers/aic8800'
make -C /lib/modules/6.14.3-200.fc41.x86_64/build M=/var/tmp/aic8800_linux_drvier/drivers/aic8800 ARCH=x86_64 CROSS_COMPILE= modules
make[2]: Entering directory '/usr/src/kernels/6.14.3-200.fc41.x86_64'
make[3]: Entering directory '/var/tmp/aic8800_linux_drvier/drivers/aic8800'
  CC [M]  aic_load_fw/aic_bluetooth_main.o
  CC [M]  aic_load_fw/aicbluetooth.o
  CC [M]  aic8800_fdrv/rwnx_msg_tx.o
  CC [M]  aic_load_fw/aicwf_usb.o
  CC [M]  aic_load_fw/aic_txrxif.o
  CC [M]  aic8800_fdrv/rwnx_msg_rx.o
  CC [M]  aic_load_fw/aicbluetooth_cmds.o
  CC [M]  aic8800_fdrv/rwnx_utils.o
aic_load_fw/aicbluetooth.c:810:6: warning: no previous prototype for ‘get_fw_path’ [-Wmissing-prototypes]
  810 | void get_fw_path(char* fw_path){
      |      ^~~~~~~~~~~
aic_load_fw/aicbluetooth.c:818:6: warning: no previous prototype for ‘set_testmode’ [-Wmissing-prototypes]
  818 | void set_testmode(int val){
      |      ^~~~~~~~~~~~
aic_load_fw/aicbluetooth.c:822:5: warning: no previous prototype for ‘get_testmode’ [-Wmissing-prototypes]
  822 | int get_testmode(void){
      |     ^~~~~~~~~~~~
aic_load_fw/aicbluetooth.c:826:5: warning: no previous prototype for ‘get_hardware_info’ [-Wmissing-prototypes]
  826 | int get_hardware_info(void){
      |     ^~~~~~~~~~~~~~~~~
aic_load_fw/aicbluetooth.c:831:5: warning: no previous prototype for ‘get_adap_test’ [-Wmissing-prototypes]
  831 | int get_adap_test(void){
      |     ^~~~~~~~~~~~~
aic_load_fw/aicbluetooth.c:846:6: warning: no previous prototype for ‘get_userconfig_xtal_cap’ [-Wmissing-prototypes]
  846 | void get_userconfig_xtal_cap(xtal_cap_conf_t *xtal_cap)
      |      ^~~~~~~~~~~~~~~~~~~~~~~
aic_load_fw/aicbluetooth.c:859:6: warning: no previous prototype for ‘get_userconfig_txpwr_idx’ [-Wmissing-prototypes]
  859 | void get_userconfig_txpwr_idx(txpwr_idx_conf_t *txpwr_idx){
      |      ^~~~~~~~~~~~~~~~~~~~~~~~
aic_load_fw/aicbluetooth.c:886:6: warning: no previous prototype for ‘get_userconfig_txpwr_ofst’ [-Wmissing-prototypes]
  886 | void get_userconfig_txpwr_ofst(txpwr_ofst_conf_t *txpwr_ofst){
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~
aic_load_fw/aicbluetooth.c:909:6: warning: no previous prototype for ‘rwnx_plat_userconfig_set_value’ [-Wmissing-prototypes]
  909 | void rwnx_plat_userconfig_set_value(char *command, char *value){
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic_load_fw/aicbluetooth.c:957:6: warning: no previous prototype for ‘rwnx_plat_userconfig_parsing’ [-Wmissing-prototypes]
  957 | void rwnx_plat_userconfig_parsing(char *buffer, int size){
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/src/kernels/6.14.3-200.fc41.x86_64/include/linux/module.h:22,
                 from aic_load_fw/aic_bluetooth_main.c:1:
aic_load_fw/aic_bluetooth_main.c:73:18: error: expected ‘,’ or ‘;’ before ‘VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver’
   73 | MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/src/kernels/6.14.3-200.fc41.x86_64/include/linux/moduleparam.h:26:61: note: in definition of macro ‘__MODULE_INFO’
   26 |                 = __MODULE_INFO_PREFIX __stringify(tag) "=" info
      |                                                             ^~~~
/usr/src/kernels/6.14.3-200.fc41.x86_64/include/linux/module.h:299:33: note: in expansion of macro ‘MODULE_INFO’
  299 | #define MODULE_IMPORT_NS(ns)    MODULE_INFO(import_ns, ns)
      |                                 ^~~~~~~~~~~
aic_load_fw/aic_bluetooth_main.c:73:1: note: in expansion of macro ‘MODULE_IMPORT_NS’
   73 | MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
      | ^~~~~~~~~~~~~~~~
aic_load_fw/aicwf_usb.c:1353:5: warning: no previous prototype for ‘aicfw_download_fw_8800’ [-Wmissing-prototypes]
 1353 | int aicfw_download_fw_8800(struct aic_usb_dev *usb_dev){
      |     ^~~~~~~~~~~~~~~~~~~~~~
aic_load_fw/aicwf_usb.c:1577:5: warning: no previous prototype for ‘aicfw_download_fw’ [-Wmissing-prototypes]
 1577 | int aicfw_download_fw(struct aic_usb_dev *usb_dev)
      |     ^~~~~~~~~~~~~~~~~
make[6]: *** [/usr/src/kernels/6.14.3-200.fc41.x86_64/scripts/Makefile.build:207: aic_load_fw/aic_bluetooth_main.o] Error 1
make[6]: *** Waiting for unfinished jobs....
  CC [M]  aic8800_fdrv/rwnx_cmds.o
  CC [M]  aic8800_fdrv/rwnx_irqs.o
  CC [M]  aic8800_fdrv/rwnx_cfgfile.o
In file included from aic8800_fdrv/rwnx_msg_tx.h:16,
                 from aic8800_fdrv/rwnx_msg_tx.c:13:
aic8800_fdrv/rwnx_defs.h:91:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB" redefined
   91 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:80:9: note: this is the location of the previous definition
   80 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         0x08
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:92:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB" redefined
   92 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:83:9: note: this is the location of the previous definition
   83 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         0x04
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:93:9: warning: "IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA" redefined
   93 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:86:9: note: this is the location of the previous definition
   86 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA 0x40
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from aic8800_fdrv/rwnx_utils.c:9:
aic8800_fdrv/rwnx_defs.h:91:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB" redefined
   91 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:80:9: note: this is the location of the previous definition
   80 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         0x08
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:92:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB" redefined
   92 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:83:9: note: this is the location of the previous definition
   83 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         0x04
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:93:9: warning: "IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA" redefined
   93 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:86:9: note: this is the location of the previous definition
   86 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA 0x40
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_msg_tx.c:170:18: warning: no previous prototype for ‘rwnx_cmd_malloc’ [-Wmissing-prototypes]
  170 | struct rwnx_cmd *rwnx_cmd_malloc(void){
      |                  ^~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_msg_tx.c:199:6: warning: no previous prototype for ‘rwnx_cmd_free’ [-Wmissing-prototypes]
  199 | void rwnx_cmd_free(struct rwnx_cmd *cmd){
      |      ^~~~~~~~~~~~~
aic8800_fdrv/rwnx_msg_tx.c:209:5: warning: no previous prototype for ‘rwnx_init_cmd_array’ [-Wmissing-prototypes]
  209 | int rwnx_init_cmd_array(void){
      |     ^~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_utils.c:23:5: warning: no previous prototype for ‘rwnx_init_aic’ [-Wmissing-prototypes]
   23 | int rwnx_init_aic(struct rwnx_hw *rwnx_hw)
      |     ^~~~~~~~~~~~~
aic8800_fdrv/rwnx_msg_tx.c:224:6: warning: no previous prototype for ‘rwnx_free_cmd_array’ [-Wmissing-prototypes]
  224 | void rwnx_free_cmd_array(void){
      |      ^~~~~~~~~~~~~~~~~~~
In file included from aic8800_fdrv/rwnx_msg_rx.c:14:
aic8800_fdrv/rwnx_defs.h:91:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB" redefined
   91 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:80:9: note: this is the location of the previous definition
   80 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         0x08
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:92:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB" redefined
   92 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:83:9: note: this is the location of the previous definition
   83 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         0x04
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:93:9: warning: "IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA" redefined
   93 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:86:9: note: this is the location of the previous definition
   86 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA 0x40
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  CC [M]  aic8800_fdrv/rwnx_strs.o
  CC [M]  aic8800_fdrv/rwnx_rx.o
aic8800_fdrv/rwnx_msg_rx.c:1639:6: warning: no previous prototype for ‘rwnx_rx_handle_msg’ [-Wmissing-prototypes]
 1639 | void rwnx_rx_handle_msg(struct rwnx_hw *rwnx_hw, struct ipc_e2a_msg *msg)
      |      ^~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_msg_rx.c:1651:6: warning: no previous prototype for ‘rwnx_rx_handle_print’ [-Wmissing-prototypes]
 1651 | void rwnx_rx_handle_print(struct rwnx_hw *rwnx_hw, u8 *msg, u32 len)
      |      ^~~~~~~~~~~~~~~~~~~~
  CC [M]  aic8800_fdrv/rwnx_tx.o
make[5]: *** [/usr/src/kernels/6.14.3-200.fc41.x86_64/scripts/Makefile.build:465: aic_load_fw] Error 2
make[5]: *** Waiting for unfinished jobs....
  CC [M]  aic8800_fdrv/rwnx_txq.o
  CC [M]  aic8800_fdrv/rwnx_main.o
In file included from aic8800_fdrv/rwnx_cmds.c:18:
aic8800_fdrv/rwnx_defs.h:91:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB" redefined
   91 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:80:9: note: this is the location of the previous definition
   80 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         0x08
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:92:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB" redefined
   92 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:83:9: note: this is the location of the previous definition
   83 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         0x04
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:93:9: warning: "IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA" redefined
   93 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:86:9: note: this is the location of the previous definition
   86 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA 0x40
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_cmds.c:300:6: warning: no previous prototype for ‘cmd_mgr_task_process’ [-Wmissing-prototypes]
  300 | void cmd_mgr_task_process(struct work_struct *work)
      |      ^~~~~~~~~~~~~~~~~~~~
In file included from aic8800_fdrv/rwnx_irqs.c:12:
aic8800_fdrv/rwnx_defs.h:91:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB" redefined
   91 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:80:9: note: this is the location of the previous definition
   80 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         0x08
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:92:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB" redefined
   92 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:83:9: note: this is the location of the previous definition
   83 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         0x04
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:93:9: warning: "IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA" redefined
   93 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:86:9: note: this is the location of the previous definition
   86 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA 0x40
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_irqs.c:21:13: warning: no previous prototype for ‘rwnx_irq_hdlr’ [-Wmissing-prototypes]
   21 | irqreturn_t rwnx_irq_hdlr(int irq, void *dev_id)
      |             ^~~~~~~~~~~~~
aic8800_fdrv/rwnx_irqs.c:34:6: warning: no previous prototype for ‘rwnx_task’ [-Wmissing-prototypes]
   34 | void rwnx_task(unsigned long data)
      |      ^~~~~~~~~
  CC [M]  aic8800_fdrv/rwnx_mod_params.o
In file included from aic8800_fdrv/rwnx_cfgfile.c:13:
aic8800_fdrv/rwnx_defs.h:91:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB" redefined
   91 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:80:9: note: this is the location of the previous definition
   80 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         0x08
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:92:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB" redefined
   92 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:83:9: note: this is the location of the previous definition
   83 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         0x04
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:93:9: warning: "IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA" redefined
   93 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:86:9: note: this is the location of the previous definition
   86 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA 0x40
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  CC [M]  aic8800_fdrv/rwnx_mesh.o
In file included from aic8800_fdrv/rwnx_tx.c:14:
aic8800_fdrv/rwnx_defs.h:91:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB" redefined
   91 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:80:9: note: this is the location of the previous definition
   80 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         0x08
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:92:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB" redefined
   92 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:83:9: note: this is the location of the previous definition
   83 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         0x04
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:93:9: warning: "IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA" redefined
   93 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:86:9: note: this is the location of the previous definition
   86 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA 0x40
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from aic8800_fdrv/rwnx_rx.c:15:
aic8800_fdrv/rwnx_defs.h:91:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB" redefined
   91 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:80:9: note: this is the location of the previous definition
   80 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         0x08
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:92:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB" redefined
   92 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:83:9: note: this is the location of the previous definition
   83 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         0x04
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:93:9: warning: "IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA" redefined
   93 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:86:9: note: this is the location of the previous definition
   86 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA 0x40
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_tx.c:1243:5: warning: no previous prototype for ‘intf_tx’ [-Wmissing-prototypes]
 1243 | int intf_tx(struct rwnx_hw *priv,struct msg_buf *msg)
      |     ^~~~~~~
In file included from aic8800_fdrv/rwnx_txq.c:11:
aic8800_fdrv/rwnx_defs.h:91:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB" redefined
   91 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:80:9: note: this is the location of the previous definition
   80 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         0x08
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:92:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB" redefined
   92 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:83:9: note: this is the location of the previous definition
   83 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         0x04
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:93:9: warning: "IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA" redefined
   93 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:86:9: note: this is the location of the previous definition
   86 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA 0x40
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  CC [M]  aic8800_fdrv/rwnx_platform.o
aic8800_fdrv/rwnx_rx.c:330:6: warning: no previous prototype for ‘rwnx_rx_data_skb_resend’ [-Wmissing-prototypes]
  330 | void rwnx_rx_data_skb_resend(struct rwnx_hw *rwnx_hw, struct rwnx_vif *rwnx_vif,
      |      ^~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_rx.c:1374:5: warning: no previous prototype for ‘reord_flush_tid’ [-Wmissing-prototypes]
 1374 | int reord_flush_tid(struct aicwf_rx_priv *rx_priv, struct sk_buff *skb, u8 tid)
      |     ^~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_rx.c:1588:6: warning: no previous prototype for ‘reord_rxframes_process’ [-Wmissing-prototypes]
 1588 | bool reord_rxframes_process(struct aicwf_rx_priv *rx_priv, struct reord_ctrl *preorder_ctrl, int bforced)
      |      ^~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_rx.c:1624:6: warning: no previous prototype for ‘reord_rxframes_ind’ [-Wmissing-prototypes]
 1624 | void reord_rxframes_ind(struct aicwf_rx_priv *rx_priv,
      |      ^~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_rx.c:1708:5: warning: no previous prototype for ‘reord_process_unit’ [-Wmissing-prototypes]
 1708 | int reord_process_unit(struct aicwf_rx_priv *rx_priv, struct sk_buff *skb, u16 seq_num, u8 tid, u8 forward)
      |     ^~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_rx.c:1911:6: warning: no previous prototype for ‘remove_sec_hdr_mgmt_frame’ [-Wmissing-prototypes]
 1911 | void remove_sec_hdr_mgmt_frame(struct hw_rxhdr *hw_rxhdr,struct sk_buff *skb)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_txq.c:154:6: warning: no previous prototype for ‘rwnx_txq_flush’ [-Wmissing-prototypes]
  154 | void rwnx_txq_flush(struct rwnx_hw *rwnx_hw, struct rwnx_txq *txq)
      |      ^~~~~~~~~~~~~~
In file included from /usr/src/kernels/6.14.3-200.fc41.x86_64/include/linux/string.h:392,
                 from /usr/src/kernels/6.14.3-200.fc41.x86_64/include/linux/bitmap.h:13,
                 from /usr/src/kernels/6.14.3-200.fc41.x86_64/include/linux/cpumask.h:12,
                 from /usr/src/kernels/6.14.3-200.fc41.x86_64/arch/x86/include/asm/paravirt.h:21,
                 from /usr/src/kernels/6.14.3-200.fc41.x86_64/arch/x86/include/asm/cpuid.h:71,
                 from /usr/src/kernels/6.14.3-200.fc41.x86_64/arch/x86/include/asm/processor.h:19,
                 from /usr/src/kernels/6.14.3-200.fc41.x86_64/include/linux/sched.h:13,
                 from /usr/src/kernels/6.14.3-200.fc41.x86_64/include/linux/ratelimit.h:6,
                 from /usr/src/kernels/6.14.3-200.fc41.x86_64/include/linux/dev_printk.h:16,
                 from /usr/src/kernels/6.14.3-200.fc41.x86_64/include/linux/device.h:15,
                 from /usr/src/kernels/6.14.3-200.fc41.x86_64/include/linux/dma-mapping.h:5,
                 from aic8800_fdrv/rwnx_rx.c:10:
In function ‘fortify_memcpy_chk’,
    inlined from ‘rwnx_rx_add_rtap_hdr.constprop’ at aic8800_fdrv/rwnx_rx.c:1207:9:
/usr/src/kernels/6.14.3-200.fc41.x86_64/include/linux/fortify-string.h:571:25: warning: call to ‘__write_overflow_field’ declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Wattribute-warning]
  571 |                         __write_overflow_field(p_size_field, size);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  CC [M]  aic8800_fdrv/rwnx_pci.o
In file included from aic8800_fdrv/rwnx_main.c:25:
aic8800_fdrv/rwnx_defs.h:91:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB" redefined
   91 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:80:9: note: this is the location of the previous definition
   80 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         0x08
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:92:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB" redefined
   92 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:83:9: note: this is the location of the previous definition
   83 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         0x04
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:93:9: warning: "IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA" redefined
   93 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:86:9: note: this is the location of the previous definition
   86 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA 0x40
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  CC [M]  aic8800_fdrv/rwnx_dini.o
aic8800_fdrv/rwnx_main.c:532:6: warning: no previous prototype for ‘rwnx_skb_align_8bytes’ [-Wmissing-prototypes]
  532 | void rwnx_skb_align_8bytes(struct sk_buff *skb){
      |      ^~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_main.c:599:6: warning: no previous prototype for ‘rwnx_frame_parser’ [-Wmissing-prototypes]
  599 | void rwnx_frame_parser(char* tag, char* data, unsigned long len){
      |      ^~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_main.c:1141:6: warning: no previous prototype for ‘rwnx_update_mesh_power_mode’ [-Wmissing-prototypes]
 1141 | void rwnx_update_mesh_power_mode(struct rwnx_vif *vif)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from aic8800_fdrv/rwnx_defs.h:32:
aic8800_fdrv/rwnx_compat.h:393:5: warning: no previous prototype for ‘rwnx_select_queue’ [-Wmissing-prototypes]
  393 |     rwnx_select_queue(dev, skb, sb_dev)
      |     ^~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_main.c:1652:5: note: in expansion of macro ‘rwnx_select_queue’
 1652 | u16 rwnx_select_queue(struct net_device *dev, struct sk_buff *skb,
      |     ^~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_main.c:1940:6: warning: no previous prototype for ‘aicwf_p2p_alive_timeout’ [-Wmissing-prototypes]
 1940 | void aicwf_p2p_alive_timeout(struct timer_list *t)
      |      ^~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_main.c:2466:5: warning: no previous prototype for ‘rwnx_send_check_p2p’ [-Wmissing-prototypes]
 2466 | int rwnx_send_check_p2p(struct cfg80211_scan_request *param){
      |     ^~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_main.c:3304:6: warning: no previous prototype for ‘apm_staloss_work_process’ [-Wmissing-prototypes]
 3304 | void apm_staloss_work_process(struct work_struct *work)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_main.c:3418:6: warning: no previous prototype for ‘apm_probe_sta_work_process’ [-Wmissing-prototypes]
 3418 | void apm_probe_sta_work_process(struct work_struct *work)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_main.c:3902:5: warning: no previous prototype for ‘rwnx_cfg80211_probe_client’ [-Wmissing-prototypes]
 3902 | int rwnx_cfg80211_probe_client(struct wiphy *wiphy, struct net_device *dev,
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_main.c:3939:6: warning: no previous prototype for ‘rwnx_cfg80211_mgmt_frame_register’ [-Wmissing-prototypes]
 3939 | void rwnx_cfg80211_mgmt_frame_register(struct wiphy *wiphy,
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_main.c:4617:5: warning: no previous prototype for ‘rwnx_cfg80211_channel_switch’ [-Wmissing-prototypes]
 4617 | int rwnx_cfg80211_channel_switch(struct wiphy *wiphy,
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_main.c:4955:5: warning: no previous prototype for ‘rwnx_cfg80211_change_bss’ [-Wmissing-prototypes]
 4955 | int rwnx_cfg80211_change_bss(struct wiphy *wiphy, struct net_device *dev,
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
  CC [M]  aic8800_fdrv/rwnx_v7.o
aic8800_fdrv/rwnx_main.c:5701:28: error: initialization of ‘int (*)(struct wiphy *, struct net_device *, struct cfg80211_chan_def *)’ from incompatible pointer type ‘int (*)(struct wiphy *, struct cfg80211_chan_def *)’ [-Wincompatible-pointer-types]
 5701 |     .set_monitor_channel = rwnx_cfg80211_set_monitor_channel,
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_main.c:5701:28: note: (near initialization for ‘rwnx_cfg80211_ops.set_monitor_channel’)
aic8800_fdrv/rwnx_main.c:5714:30: error: initialization of ‘int (*)(struct wiphy *, struct net_device *, struct cfg80211_chan_def *, u32,  int)’ {aka ‘int (*)(struct wiphy *, struct net_device *, struct cfg80211_chan_def *, unsigned int,  int)’} from incompatible pointer type ‘int (*)(struct wiphy *, struct net_device *, struct cfg80211_chan_def *, u32)’ {aka ‘int (*)(struct wiphy *, struct net_device *, struct cfg80211_chan_def *, unsigned int)’} [-Wincompatible-pointer-types]
 5714 |     .start_radar_detection = rwnx_cfg80211_start_radar_detection,
      |                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_main.c:5714:30: note: (near initialization for ‘rwnx_cfg80211_ops.start_radar_detection’)
aic8800_fdrv/rwnx_main.c:7905:5: warning: no previous prototype for ‘rwnx_ic_system_init’ [-Wmissing-prototypes]
 7905 | int rwnx_ic_system_init(struct rwnx_hw *rwnx_hw){
      |     ^~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_main.c:7938:5: warning: no previous prototype for ‘rwnx_ic_rf_init’ [-Wmissing-prototypes]
 7938 | int rwnx_ic_rf_init(struct rwnx_hw *rwnx_hw){
      |     ^~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_main.c:7973:6: warning: no previous prototype for ‘aic_ipc_setting’ [-Wmissing-prototypes]
 7973 | void aic_ipc_setting(struct rwnx_vif *rwnx_vif){
      |      ^~~~~~~~~~~~~~~
In file included from /usr/src/kernels/6.14.3-200.fc41.x86_64/include/linux/module.h:22,
                 from aic8800_fdrv/rwnx_main.c:13:
aic8800_fdrv/rwnx_main.c:8543:18: error: expected ‘,’ or ‘;’ before ‘VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver’
 8543 | MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/src/kernels/6.14.3-200.fc41.x86_64/include/linux/moduleparam.h:26:61: note: in definition of macro ‘__MODULE_INFO’
   26 |                 = __MODULE_INFO_PREFIX __stringify(tag) "=" info
      |                                                             ^~~~
/usr/src/kernels/6.14.3-200.fc41.x86_64/include/linux/module.h:299:33: note: in expansion of macro ‘MODULE_INFO’
  299 | #define MODULE_IMPORT_NS(ns)    MODULE_INFO(import_ns, ns)
      |                                 ^~~~~~~~~~~
aic8800_fdrv/rwnx_main.c:8543:1: note: in expansion of macro ‘MODULE_IMPORT_NS’
 8543 | MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
      | ^~~~~~~~~~~~~~~~
make[6]: *** [/usr/src/kernels/6.14.3-200.fc41.x86_64/scripts/Makefile.build:207: aic8800_fdrv/rwnx_main.o] Error 1
make[6]: *** Waiting for unfinished jobs....
In file included from aic8800_fdrv/rwnx_mod_params.c:15:
aic8800_fdrv/rwnx_defs.h:91:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB" redefined
   91 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:80:9: note: this is the location of the previous definition
   80 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         0x08
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:92:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB" redefined
   92 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:83:9: note: this is the location of the previous definition
   83 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         0x04
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:93:9: warning: "IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA" redefined
   93 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:86:9: note: this is the location of the previous definition
   86 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA 0x40
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_mod_params.c:268:6: warning: no previous prototype for ‘rwnx_get_countrycode_channels’ [-Wmissing-prototypes]
  268 | void rwnx_get_countrycode_channels(struct wiphy *wiphy,
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_mod_params.c:327:29: warning: no previous prototype for ‘getRegdomainFromRwnxDBIndex’ [-Wmissing-prototypes]
  327 | struct ieee80211_regdomain *getRegdomainFromRwnxDBIndex(struct wiphy *wiphy,
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_mod_params.c:347:29: warning: no previous prototype for ‘getRegdomainFromRwnxDB’ [-Wmissing-prototypes]
  347 | struct ieee80211_regdomain *getRegdomainFromRwnxDB(struct wiphy *wiphy,
      |                             ^~~~~~~~~~~~~~~~~~~~~~
In file included from aic8800_fdrv/rwnx_mesh.h:21,
                 from aic8800_fdrv/rwnx_mesh.c:16:
aic8800_fdrv/rwnx_defs.h:91:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB" redefined
   91 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:80:9: note: this is the location of the previous definition
   80 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         0x08
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:92:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB" redefined
   92 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:83:9: note: this is the location of the previous definition
   83 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         0x04
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:93:9: warning: "IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA" redefined
   93 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:86:9: note: this is the location of the previous definition
   86 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA 0x40
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from aic8800_fdrv/rwnx_main.h:14,
                 from aic8800_fdrv/rwnx_platform.c:19:
aic8800_fdrv/rwnx_defs.h:91:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB" redefined
   91 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:80:9: note: this is the location of the previous definition
   80 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         0x08
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:92:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB" redefined
   92 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:83:9: note: this is the location of the previous definition
   83 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         0x04
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:93:9: warning: "IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA" redefined
   93 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:86:9: note: this is the location of the previous definition
   86 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA 0x40
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_platform.c:482:5: warning: no previous prototype for ‘rwnx_request_firmware_common’ [-Wmissing-prototypes]
  482 | int rwnx_request_firmware_common(struct rwnx_hw *rwnx_hw, u32** buffer, const char *filename)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_platform.c:493:6: warning: no previous prototype for ‘rwnx_release_firmware_common’ [-Wmissing-prototypes]
  493 | void rwnx_release_firmware_common(u32** buffer)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_platform.c:510:5: warning: no previous prototype for ‘rwnx_plat_bin_fw_upload_2’ [-Wmissing-prototypes]
  510 | int rwnx_plat_bin_fw_upload_2(struct rwnx_hw *rwnx_hw, u32 fw_addr,
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_platform.c:1655:5: warning: no previous prototype for ‘rwnx_atoi’ [-Wmissing-prototypes]
 1655 | int rwnx_atoi(char *value)
      |     ^~~~~~~~~
aic8800_fdrv/rwnx_platform.c:1895:6: warning: no previous prototype for ‘get_userconfig_xtal_cap’ [-Wmissing-prototypes]
 1895 | void get_userconfig_xtal_cap(xtal_cap_conf_t *xtal_cap)
      |      ^~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_platform.c:1904:6: warning: no previous prototype for ‘rwnx_plat_nvram_set_value’ [-Wmissing-prototypes]
 1904 | void rwnx_plat_nvram_set_value(char *command, char *value)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_platform.c: In function ‘rwnx_plat_patch_load’:
aic8800_fdrv/rwnx_platform.c:1309:9: warning: ‘sprintf’ argument 3 overlaps destination object ‘aic_fw_path’ [-Wrestrict]
 1309 |         sprintf(aic_fw_path, "%s/%s", aic_fw_path, "aic8800DC");
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_platform.c:50:13: note: destination object referenced by ‘restrict’-qualified argument 1 was declared here
   50 | extern char aic_fw_path[FW_PATH_MAX_LEN];
      |             ^~~~~~~~~~~
In file included from aic8800_fdrv/rwnx_dini.c:12:
aic8800_fdrv/rwnx_defs.h:91:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB" redefined
   91 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:80:9: note: this is the location of the previous definition
   80 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         0x08
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:92:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB" redefined
   92 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:83:9: note: this is the location of the previous definition
   83 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         0x04
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:93:9: warning: "IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA" redefined
   93 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:86:9: note: this is the location of the previous definition
   86 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA 0x40
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_dini.c:105:5: warning: no previous prototype for ‘rwnx_cfpga_irq_enable’ [-Wmissing-prototypes]
  105 | int rwnx_cfpga_irq_enable(struct rwnx_hw *rwnx_hw)
      |     ^~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_dini.c:129:5: warning: no previous prototype for ‘rwnx_cfpga_irq_disable’ [-Wmissing-prototypes]
  129 | int rwnx_cfpga_irq_disable(struct rwnx_hw *rwnx_hw)
      |     ^~~~~~~~~~~~~~~~~~~~~~
In file included from aic8800_fdrv/rwnx_pci.c:13:
aic8800_fdrv/rwnx_defs.h:91:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB" redefined
   91 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:80:9: note: this is the location of the previous definition
   80 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         0x08
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:92:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB" redefined
   92 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:83:9: note: this is the location of the previous definition
   83 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         0x04
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:93:9: warning: "IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA" redefined
   93 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:86:9: note: this is the location of the previous definition
   86 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA 0x40
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_pci.c:85:5: warning: no previous prototype for ‘rwnx_pci_register_drv’ [-Wmissing-prototypes]
   85 | int rwnx_pci_register_drv(void)
      |     ^~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_pci.c:90:6: warning: no previous prototype for ‘rwnx_pci_unregister_drv’ [-Wmissing-prototypes]
   90 | void rwnx_pci_unregister_drv(void)
      |      ^~~~~~~~~~~~~~~~~~~~~~~
In file included from aic8800_fdrv/rwnx_v7.c:12:
aic8800_fdrv/rwnx_defs.h:91:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB" redefined
   91 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:80:9: note: this is the location of the previous definition
   80 | #define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB         0x08
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:92:9: warning: "IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB" redefined
   92 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:83:9: note: this is the location of the previous definition
   83 | #define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB         0x04
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:93:9: warning: "IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA" redefined
   93 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aic8800_fdrv/rwnx_defs.h:86:9: note: this is the location of the previous definition
   86 | #define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA 0x40
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[5]: *** [/usr/src/kernels/6.14.3-200.fc41.x86_64/scripts/Makefile.build:465: aic8800_fdrv] Error 2
make[4]: *** [/usr/src/kernels/6.14.3-200.fc41.x86_64/Makefile:2037: .] Error 2
make[3]: *** [/usr/src/kernels/6.14.3-200.fc41.x86_64/Makefile:263: __sub-make] Error 2
make[3]: Leaving directory '/var/tmp/aic8800_linux_drvier/drivers/aic8800'
make[2]: *** [Makefile:263: __sub-make] Error 2
make[2]: Leaving directory '/usr/src/kernels/6.14.3-200.fc41.x86_64'
make[1]: *** [Makefile:64: modules] Error 2
make[1]: Leaving directory '/var/tmp/aic8800_linux_drvier/drivers/aic8800'
make: *** [Makefile:13: build] Error 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions