Hi Felix, [FYI, it's a private test report for your RFC patch.] [auto build test WARNING on wireless-drivers-next/master] [also build test WARNING on mac80211-next/master linus/master v5.14-rc1 next-20210713] [cannot apply to wireless-drivers/master mac80211/master] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Felix-Fietkau/Ethernet-WLAN-hardware-flow-offloading-support-on-MT7622/20210714-001409 base: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git master config: xtensa-allyesconfig (attached as .config) compiler: xtensa-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/16ac1606c5b18e61fb25775d621cd218f17bb913 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Felix-Fietkau/Ethernet-WLAN-hardware-flow-offloading-support-on-MT7622/20210714-001409 git checkout 16ac1606c5b18e61fb25775d621cd218f17bb913 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=xtensa If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): drivers/net/wireless/mediatek/mt76/dma.c: In function 'mt76_dma_sync_idx': drivers/net/wireless/mediatek/mt76/dma.c:24:6: warning: unused variable '_offset' [-Wunused-variable] 24 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:111:2: note: in expansion of macro 'Q_WRITE' 111 | Q_WRITE(dev, q, desc_base, q->desc_dma); | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:24:6: warning: unused variable '_offset' [-Wunused-variable] 24 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:112:2: note: in expansion of macro 'Q_WRITE' 112 | Q_WRITE(dev, q, ring_size, q->ndesc); | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:11:6: warning: unused variable '_offset' [-Wunused-variable] 11 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:113:12: note: in expansion of macro 'Q_READ' 113 | q->head = Q_READ(dev, q, dma_idx); | ^~~~~~ drivers/net/wireless/mediatek/mt76/dma.c: In function 'mt76_dma_queue_reset': drivers/net/wireless/mediatek/mt76/dma.c:24:6: warning: unused variable '_offset' [-Wunused-variable] 24 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:129:2: note: in expansion of macro 'Q_WRITE' 129 | Q_WRITE(dev, q, cpu_idx, 0); | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:24:6: warning: unused variable '_offset' [-Wunused-variable] 24 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:130:2: note: in expansion of macro 'Q_WRITE' 130 | Q_WRITE(dev, q, dma_idx, 0); | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c: In function 'mt76_dma_wed_setup': drivers/net/wireless/mediatek/mt76/dma.c:154:21: error: 'struct mtk_wed_device' has no member named 'tx_ring' 154 | q->wed_regs = wed->tx_ring[ring].reg_base; | ^~ drivers/net/wireless/mediatek/mt76/dma.c:163:54: error: macro "mtk_wed_device_txfree_ring_setup" requires 3 arguments, but only 2 given 163 | ret = mtk_wed_device_txfree_ring_setup(wed, q->regs); | ^ In file included from drivers/net/wireless/mediatek/mt76/mt76.h:16, from drivers/net/wireless/mediatek/mt76/dma.c:7: include/linux/soc/mediatek/mtk_wed.h:120: note: macro "mtk_wed_device_txfree_ring_setup" defined here 120 | #define mtk_wed_device_txfree_ring_setup(_dev, _ring, _regs) -ENODEV | drivers/net/wireless/mediatek/mt76/dma.c:163:9: error: 'mtk_wed_device_txfree_ring_setup' undeclared (first use in this function) 163 | ret = mtk_wed_device_txfree_ring_setup(wed, q->regs); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:163:9: note: each undeclared identifier is reported only once for each function it appears in drivers/net/wireless/mediatek/mt76/dma.c:165:21: error: 'struct mtk_wed_device' has no member named 'txfree_ring' 165 | q->wed_regs = wed->txfree_ring.reg_base; | ^~ >> drivers/net/wireless/mediatek/mt76/dma.c:138:17: warning: variable 'ring' set but not used [-Wunused-but-set-variable] 138 | int ret, type, ring; | ^~~~ drivers/net/wireless/mediatek/mt76/dma.c: In function 'mt76_dma_kick_queue': drivers/net/wireless/mediatek/mt76/dma.c:24:6: warning: unused variable '_offset' [-Wunused-variable] 24 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:298:2: note: in expansion of macro 'Q_WRITE' 298 | Q_WRITE(dev, q, cpu_idx, q->head); | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c: In function 'mt76_dma_tx_cleanup': drivers/net/wireless/mediatek/mt76/dma.c:11:6: warning: unused variable '_offset' [-Wunused-variable] 11 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:314:10: note: in expansion of macro 'Q_READ' 314 | last = Q_READ(dev, q, dma_idx); | ^~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:11:6: warning: unused variable '_offset' [-Wunused-variable] 11 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:326:11: note: in expansion of macro 'Q_READ' 326 | last = Q_READ(dev, q, dma_idx); | ^~~~~~ drivers/net/wireless/mediatek/mt76/dma.c: In function 'mt76_dma_rx_process': drivers/net/wireless/mediatek/mt76/dma.c:11:6: warning: unused variable '_offset' [-Wunused-variable] 11 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:634:13: note: in expansion of macro 'Q_READ' 634 | dma_idx = Q_READ(dev, q, dma_idx); | ^~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:11:6: warning: unused variable '_offset' [-Wunused-variable] 11 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:643:15: note: in expansion of macro 'Q_READ' 643 | dma_idx = Q_READ(dev, q, dma_idx); | ^~~~~~ vim +/ring +138 drivers/net/wireless/mediatek/mt76/dma.c 133 134 static int 135 mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q) 136 { 137 struct mtk_wed_device *wed = &dev->mmio.wed; > 138 int ret, type, ring; 139 u8 flags = q->flags; 140 141 if (!mtk_wed_device_active(wed)) 142 q->flags &= ~MT_QFLAG_WED; 143 144 if (!(q->flags & MT_QFLAG_WED)) 145 return 0; 146 147 type = FIELD_GET(MT_QFLAG_WED_TYPE, q->flags); 148 ring = FIELD_GET(MT_QFLAG_WED_RING, q->flags); 149 150 switch (type) { 151 case MT76_WED_Q_TX: 152 ret = mtk_wed_device_tx_ring_setup(wed, ring, q->regs); 153 if (!ret) 154 q->wed_regs = wed->tx_ring[ring].reg_base; 155 break; 156 case MT76_WED_Q_TXFREE: 157 /* WED txfree queue needs ring to be initialized before setup */ 158 q->flags = 0; 159 mt76_dma_queue_reset(dev, q); 160 mt76_dma_rx_fill(dev, q); 161 q->flags = flags; 162 163 ret = mtk_wed_device_txfree_ring_setup(wed, q->regs); 164 if (!ret) 165 q->wed_regs = wed->txfree_ring.reg_base; 166 break; 167 default: 168 ret = -EINVAL; 169 } 170 171 return ret; 172 } 173 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org