tree: https://github.com/nbd168/wireless mtk-flow-offload head: 1ba2137278dd5c4747b6e43be7aae4e94fb9c76e commit: 1ba2137278dd5c4747b6e43be7aae4e94fb9c76e [9/9] mt76: mt7915: add Wireless Ethernet Dispatch support config: mips-allmodconfig (https://download.01.org/0day-ci/archive/20220212/202202121510.24R6oTBV-lkp@intel.com/config) compiler: mips-linux-gcc (GCC) 11.2.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/nbd168/wireless/commit/1ba2137278dd5c4747b6e43be7aae4e94fb9c76e git remote add nbd168-wireless https://github.com/nbd168/wireless git fetch --no-tags nbd168-wireless mtk-flow-offload git checkout 1ba2137278dd5c4747b6e43be7aae4e94fb9c76e # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=mips SHELL=/bin/bash drivers/net/wireless/mediatek/mt76/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All error/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:13: warning: unused variable '_offset' [-Wunused-variable] 24 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:111:9: 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:13: warning: unused variable '_offset' [-Wunused-variable] 24 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:112:9: note: in expansion of macro 'Q_WRITE' 112 | Q_WRITE(dev, q, ring_size, q->ndesc); | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:11:13: warning: unused variable '_offset' [-Wunused-variable] 11 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:113:19: 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:13: warning: unused variable '_offset' [-Wunused-variable] 24 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:129:9: note: in expansion of macro 'Q_WRITE' 129 | Q_WRITE(dev, q, cpu_idx, 0); | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:24:13: warning: unused variable '_offset' [-Wunused-variable] 24 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:130:9: 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:42: 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:68: 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:122: note: macro "mtk_wed_device_txfree_ring_setup" defined here 122 | #define mtk_wed_device_txfree_ring_setup(_dev, _ring, _regs) -ENODEV | >> drivers/net/wireless/mediatek/mt76/dma.c:163:23: 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:23: note: each undeclared identifier is reported only once for each function it appears in >> drivers/net/wireless/mediatek/mt76/dma.c:165:42: 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:24: 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:13: warning: unused variable '_offset' [-Wunused-variable] 24 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:298:9: 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:13: warning: unused variable '_offset' [-Wunused-variable] 11 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:314:24: note: in expansion of macro 'Q_READ' 314 | last = Q_READ(dev, q, dma_idx); | ^~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:11:13: warning: unused variable '_offset' [-Wunused-variable] 11 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:326:32: 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:13: warning: unused variable '_offset' [-Wunused-variable] 11 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:644:27: note: in expansion of macro 'Q_READ' 644 | dma_idx = Q_READ(dev, q, dma_idx); | ^~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:11:13: warning: unused variable '_offset' [-Wunused-variable] 11 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \ | ^~~~~~~ drivers/net/wireless/mediatek/mt76/dma.c:653:43: note: in expansion of macro 'Q_READ' 653 | dma_idx = Q_READ(dev, q, dma_idx); | ^~~~~~ -- drivers/net/wireless/mediatek/mt76/tx.c: In function 'mt76_token_consume': >> drivers/net/wireless/mediatek/mt76/tx.c:730:25: error: 'struct mtk_wed_device' has no member named 'wlan' 730 | token >= wed->wlan.token_start) | ^~ drivers/net/wireless/mediatek/mt76/tx.c: In function 'mt76_token_release': drivers/net/wireless/mediatek/mt76/tx.c:755:33: error: 'struct mtk_wed_device' has no member named 'wlan' 755 | token >= wed->wlan.token_start && | ^~ -- drivers/net/wireless/mediatek/mt76/mt7915/pci.c: In function 'mt7915_wed_offload_enable': >> drivers/net/wireless/mediatek/mt76/mt7915/pci.c:106:35: error: 'struct mtk_wed_device' has no member named 'wlan' 106 | dev->mt76.token_size = wed->wlan.token_start; | ^~ drivers/net/wireless/mediatek/mt76/mt7915/pci.c: In function 'mt7915_pci_probe': drivers/net/wireless/mediatek/mt76/mt7915/pci.c:164:12: error: 'struct mtk_wed_device' has no member named 'wlan' 164 | wed->wlan.pci_dev = pdev; | ^~ drivers/net/wireless/mediatek/mt76/mt7915/pci.c:165:12: error: 'struct mtk_wed_device' has no member named 'wlan' 165 | wed->wlan.wpdma_phys = pci_resource_start(pdev, 0) + | ^~ drivers/net/wireless/mediatek/mt76/mt7915/pci.c:167:12: error: 'struct mtk_wed_device' has no member named 'wlan' 167 | wed->wlan.nbuf = 4096; | ^~ drivers/net/wireless/mediatek/mt76/mt7915/pci.c:168:12: error: 'struct mtk_wed_device' has no member named 'wlan' 168 | wed->wlan.token_start = MT7915_TOKEN_SIZE - wed->wlan.nbuf; | ^~ drivers/net/wireless/mediatek/mt76/mt7915/pci.c:168:56: error: 'struct mtk_wed_device' has no member named 'wlan' 168 | wed->wlan.token_start = MT7915_TOKEN_SIZE - wed->wlan.nbuf; | ^~ drivers/net/wireless/mediatek/mt76/mt7915/pci.c:169:12: error: 'struct mtk_wed_device' has no member named 'wlan' 169 | wed->wlan.init_buf = mt7915_wed_init_buf; | ^~ drivers/net/wireless/mediatek/mt76/mt7915/pci.c:170:12: error: 'struct mtk_wed_device' has no member named 'wlan' 170 | wed->wlan.offload_enable = mt7915_wed_offload_enable; | ^~ drivers/net/wireless/mediatek/mt76/mt7915/pci.c:171:12: error: 'struct mtk_wed_device' has no member named 'wlan' 171 | wed->wlan.offload_disable = mt7915_wed_offload_disable; | ^~ >> drivers/net/wireless/mediatek/mt76/mt7915/pci.c:174:26: error: 'struct mtk_wed_device' has no member named 'irq' 174 | irq = wed->irq; | ^~ >> drivers/net/wireless/mediatek/mt76/mt7915/pci.c:175:40: error: 'struct mtk_wed_device' has no member named 'dev' 175 | dev->mt76.dma_dev = wed->dev; | ^~ drivers/net/wireless/mediatek/mt76/mt7915/pci.c:177:39: error: 'struct mtk_wed_device' has no member named 'dev' 177 | ret = dma_set_mask(wed->dev, DMA_BIT_MASK(32)); | ^~ -- drivers/net/wireless/mediatek/mt76/mt7915/main.c: In function 'mt7915_net_fill_forward_path': >> drivers/net/wireless/mediatek/mt76/mt7915/main.c:1408:38: error: 'struct mtk_wed_device' has no member named 'wdma_idx' 1408 | path->mtk_wdma.wdma_idx = wed->wdma_idx; | ^~ vim +154 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@lists.01.org