From: kernel test robot <lkp@intel.com>
To: Jiawen Wu <jiawenwu@trustnetic.com>, netdev@vger.kernel.org
Cc: kbuild-all@lists.01.org, Jiawen Wu <jiawenwu@trustnetic.com>
Subject: Re: [PATCH net-next 02/14] net: txgbe: Add hardware initialization
Date: Thu, 12 May 2022 13:15:47 +0800 [thread overview]
Message-ID: <202205121354.BKT9ZuVB-lkp@intel.com> (raw)
In-Reply-To: <20220511032659.641834-3-jiawenwu@trustnetic.com>
Hi Jiawen,
I love your patch! Perhaps something to improve:
[auto build test WARNING on horms-ipvs/master]
[cannot apply to net-next/master net/master linus/master v5.18-rc6 next-20220511]
[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/intel-lab-lkp/linux/commits/Jiawen-Wu/Wangxun-10-Gigabit-Ethernet-Driver/20220511-113032
base: https://git.kernel.org/pub/scm/linux/kernel/git/horms/ipvs.git master
config: arc-allyesconfig (https://download.01.org/0day-ci/archive/20220512/202205121354.BKT9ZuVB-lkp@intel.com/config)
compiler: arceb-elf-gcc (GCC) 11.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/intel-lab-lkp/linux/commit/f33cce2ea458796311d5925beaf78c01546f36ce
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Jiawen-Wu/Wangxun-10-Gigabit-Ethernet-Driver/20220511-113032
git checkout f33cce2ea458796311d5925beaf78c01546f36ce
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=arc SHELL=/bin/bash drivers/net/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
drivers/net/ethernet/wangxun/txgbe/txgbe_main.c:98:6: warning: no previous prototype for 'txgbe_service_event_schedule' [-Wmissing-prototypes]
98 | void txgbe_service_event_schedule(struct txgbe_adapter *adapter)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/wangxun/txgbe/txgbe_main.c:178:6: warning: no previous prototype for 'txgbe_reset' [-Wmissing-prototypes]
178 | void txgbe_reset(struct txgbe_adapter *adapter)
| ^~~~~~~~~~~
>> drivers/net/ethernet/wangxun/txgbe/txgbe_main.c:208:6: warning: no previous prototype for 'txgbe_disable_device' [-Wmissing-prototypes]
208 | void txgbe_disable_device(struct txgbe_adapter *adapter)
| ^~~~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/wangxun/txgbe/txgbe_main.c:264:5: warning: no previous prototype for 'txgbe_init_shared_code' [-Wmissing-prototypes]
264 | s32 txgbe_init_shared_code(struct txgbe_hw *hw)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/wangxun/txgbe/txgbe_main.c: In function 'txgbe_probe':
drivers/net/ethernet/wangxun/txgbe/txgbe_main.c:460:18: warning: variable 'pci_using_dac' set but not used [-Wunused-but-set-variable]
460 | int err, pci_using_dac, expected_gts;
| ^~~~~~~~~~~~~
--
drivers/net/ethernet/wangxun/txgbe/txgbe_hw.c:205: warning: Function parameter or member 'pools' not described in 'txgbe_set_rar'
drivers/net/ethernet/wangxun/txgbe/txgbe_hw.c:205: warning: Excess function parameter 'vmdq' description in 'txgbe_set_rar'
>> drivers/net/ethernet/wangxun/txgbe/txgbe_hw.c:444: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* This function should only be involved in the IOV mode.
vim +/txgbe_disable_device +208 drivers/net/ethernet/wangxun/txgbe/txgbe_main.c
97
> 98 void txgbe_service_event_schedule(struct txgbe_adapter *adapter)
99 {
100 if (!test_bit(__TXGBE_DOWN, &adapter->state) &&
101 !test_bit(__TXGBE_REMOVING, &adapter->state) &&
102 !test_and_set_bit(__TXGBE_SERVICE_SCHED, &adapter->state))
103 queue_work(txgbe_wq, &adapter->service_task);
104 }
105
106 static void txgbe_service_event_complete(struct txgbe_adapter *adapter)
107 {
108 BUG_ON(!test_bit(__TXGBE_SERVICE_SCHED, &adapter->state));
109
110 /* flush memory to make sure state is correct before next watchdog */
111 smp_mb__before_atomic();
112 clear_bit(__TXGBE_SERVICE_SCHED, &adapter->state);
113 }
114
115 static void txgbe_remove_adapter(struct txgbe_hw *hw)
116 {
117 struct txgbe_adapter *adapter = hw->back;
118
119 if (!hw->hw_addr)
120 return;
121 hw->hw_addr = NULL;
122 txgbe_dev_err("Adapter removed\n");
123 if (test_bit(__TXGBE_SERVICE_INITED, &adapter->state))
124 txgbe_service_event_schedule(adapter);
125 }
126
127 static void txgbe_sync_mac_table(struct txgbe_adapter *adapter)
128 {
129 struct txgbe_hw *hw = &adapter->hw;
130 int i;
131
132 for (i = 0; i < hw->mac.num_rar_entries; i++) {
133 if (adapter->mac_table[i].state & TXGBE_MAC_STATE_MODIFIED) {
134 if (adapter->mac_table[i].state &
135 TXGBE_MAC_STATE_IN_USE) {
136 TCALL(hw, mac.ops.set_rar, i,
137 adapter->mac_table[i].addr,
138 adapter->mac_table[i].pools,
139 TXGBE_PSR_MAC_SWC_AD_H_AV);
140 } else {
141 TCALL(hw, mac.ops.clear_rar, i);
142 }
143 adapter->mac_table[i].state &=
144 ~(TXGBE_MAC_STATE_MODIFIED);
145 }
146 }
147 }
148
149 /* this function destroys the first RAR entry */
150 static void txgbe_mac_set_default_filter(struct txgbe_adapter *adapter,
151 u8 *addr)
152 {
153 struct txgbe_hw *hw = &adapter->hw;
154
155 memcpy(&adapter->mac_table[0].addr, addr, ETH_ALEN);
156 adapter->mac_table[0].pools = 1ULL;
157 adapter->mac_table[0].state = (TXGBE_MAC_STATE_DEFAULT |
158 TXGBE_MAC_STATE_IN_USE);
159 TCALL(hw, mac.ops.set_rar, 0, adapter->mac_table[0].addr,
160 adapter->mac_table[0].pools,
161 TXGBE_PSR_MAC_SWC_AD_H_AV);
162 }
163
164 static void txgbe_flush_sw_mac_table(struct txgbe_adapter *adapter)
165 {
166 u32 i;
167 struct txgbe_hw *hw = &adapter->hw;
168
169 for (i = 0; i < hw->mac.num_rar_entries; i++) {
170 adapter->mac_table[i].state |= TXGBE_MAC_STATE_MODIFIED;
171 adapter->mac_table[i].state &= ~TXGBE_MAC_STATE_IN_USE;
172 memset(adapter->mac_table[i].addr, 0, ETH_ALEN);
173 adapter->mac_table[i].pools = 0;
174 }
175 txgbe_sync_mac_table(adapter);
176 }
177
178 void txgbe_reset(struct txgbe_adapter *adapter)
179 {
180 struct txgbe_hw *hw = &adapter->hw;
181 struct net_device *netdev = adapter->netdev;
182 int err;
183 u8 old_addr[ETH_ALEN];
184
185 if (TXGBE_REMOVED(hw->hw_addr))
186 return;
187
188 err = TCALL(hw, mac.ops.init_hw);
189 switch (err) {
190 case 0:
191 break;
192 case TXGBE_ERR_MASTER_REQUESTS_PENDING:
193 txgbe_dev_err("master disable timed out\n");
194 break;
195 default:
196 txgbe_dev_err("Hardware Error: %d\n", err);
197 }
198
199 /* do not flush user set addresses */
200 memcpy(old_addr, &adapter->mac_table[0].addr, netdev->addr_len);
201 txgbe_flush_sw_mac_table(adapter);
202 txgbe_mac_set_default_filter(adapter, old_addr);
203
204 /* update SAN MAC vmdq pool selection */
205 TCALL(hw, mac.ops.set_vmdq_san_mac, 0);
206 }
207
> 208 void txgbe_disable_device(struct txgbe_adapter *adapter)
209 {
210 struct net_device *netdev = adapter->netdev;
211 struct txgbe_hw *hw = &adapter->hw;
212 u32 i;
213
214 /* signal that we are down to the interrupt handler */
215 if (test_and_set_bit(__TXGBE_DOWN, &adapter->state))
216 return; /* do nothing if already down */
217
218 txgbe_disable_pcie_master(hw);
219 /* disable receives */
220 TCALL(hw, mac.ops.disable_rx);
221
222 /* call carrier off first to avoid false dev_watchdog timeouts */
223 netif_carrier_off(netdev);
224 netif_tx_disable(netdev);
225
226 del_timer_sync(&adapter->service_timer);
227
228 if (hw->bus.lan_id == 0)
229 wr32m(hw, TXGBE_MIS_PRB_CTL, TXGBE_MIS_PRB_CTL_LAN0_UP, 0);
230 else if (hw->bus.lan_id == 1)
231 wr32m(hw, TXGBE_MIS_PRB_CTL, TXGBE_MIS_PRB_CTL_LAN1_UP, 0);
232 else
233 txgbe_dev_err("%s: invalid bus lan id %d\n", __func__,
234 hw->bus.lan_id);
235
236 if (!(((hw->subsystem_device_id & TXGBE_NCSI_MASK) == TXGBE_NCSI_SUP) ||
237 ((hw->subsystem_device_id & TXGBE_WOL_MASK) == TXGBE_WOL_SUP))) {
238 /* disable mac transmiter */
239 wr32m(hw, TXGBE_MAC_TX_CFG, TXGBE_MAC_TX_CFG_TE, 0);
240 }
241 /* disable transmits in the hardware now that interrupts are off */
242 for (i = 0; i < adapter->num_tx_queues; i++) {
243 u8 reg_idx = adapter->tx_ring[i]->reg_idx;
244
245 wr32(hw, TXGBE_PX_TR_CFG(reg_idx), TXGBE_PX_TR_CFG_SWFLSH);
246 }
247
248 /* Disable the Tx DMA engine */
249 wr32m(hw, TXGBE_TDM_CTL, TXGBE_TDM_CTL_TE, 0);
250 }
251
252 void txgbe_down(struct txgbe_adapter *adapter)
253 {
254 txgbe_disable_device(adapter);
255 txgbe_reset(adapter);
256 }
257
258 /**
259 * txgbe_init_shared_code - Initialize the shared code
260 * @hw: pointer to hardware structure
261 *
262 * This will assign function pointers and assign the MAC type and PHY code.
263 **/
> 264 s32 txgbe_init_shared_code(struct txgbe_hw *hw)
265 {
266 s32 status;
267
268 status = txgbe_init_ops(hw);
269 return status;
270 }
271
--
0-DAY CI Kernel Test Service
https://01.org/lkp
next prev parent reply other threads:[~2022-05-12 5:16 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-11 3:26 [PATCH net-next 00/14] Wangxun 10 Gigabit Ethernet Driver Jiawen Wu
2022-05-11 3:26 ` [PATCH net-next 01/14] net: txgbe: Add build support for txgbe ethernet driver Jiawen Wu
2022-05-12 0:38 ` kernel test robot
2022-05-12 15:52 ` Andrew Lunn
2022-05-11 3:26 ` [PATCH net-next 02/14] net: txgbe: Add hardware initialization Jiawen Wu
2022-05-12 5:15 ` kernel test robot [this message]
2022-05-11 3:26 ` [PATCH net-next 03/14] net: txgbe: Add operations to interact with firmware Jiawen Wu
2022-05-11 3:26 ` [PATCH net-next 04/14] net: txgbe: Add PHY interface support Jiawen Wu
2022-05-12 12:21 ` Andrew Lunn
2022-05-11 3:26 ` [PATCH net-next 05/14] net: txgbe: Add interrupt support Jiawen Wu
2022-05-11 3:26 ` [PATCH net-next 06/14] net: txgbe: Support to receive and tranmit packets Jiawen Wu
2022-05-11 3:26 ` [PATCH net-next 07/14] net: txgbe: Support flow control Jiawen Wu
2022-05-11 3:26 ` [PATCH net-next 08/14] net: txgbe: Support flow director Jiawen Wu
2022-05-11 3:26 ` [PATCH net-next 09/14] net: txgbe: Support PTP Jiawen Wu
2022-05-11 3:26 ` [PATCH net-next 10/14] net: txgbe: Add ethtool support Jiawen Wu
2022-05-12 12:11 ` Andrew Lunn
2022-05-11 3:26 ` [PATCH net-next 11/14] net: txgbe: Support PCIe recovery Jiawen Wu
2022-05-11 3:26 ` [PATCH net-next 12/14] net: txgbe: Support power management Jiawen Wu
2022-05-11 3:26 ` [PATCH net-next 13/14] net: txgbe: Support debug filesystem Jiawen Wu
2022-05-12 11:56 ` Andrew Lunn
2022-05-11 3:26 ` [PATCH net-next 14/14] net: txgbe: Support sysfs file system Jiawen Wu
2022-05-12 11:43 ` Andrew Lunn
2022-05-12 0:54 ` [PATCH net-next 00/14] Wangxun 10 Gigabit Ethernet Driver Jakub Kicinski
[not found] ` <004401d865e4$c3073d10$4915b730$@trustnetic.com>
2022-05-12 15:57 ` Jakub Kicinski
2022-05-12 22:06 ` Andrew Lunn
[not found] ` <001201d86671$61c86410$25592c30$@trustnetic.com>
2022-05-13 12:27 ` Andrew Lunn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202205121354.BKT9ZuVB-lkp@intel.com \
--to=lkp@intel.com \
--cc=jiawenwu@trustnetic.com \
--cc=kbuild-all@lists.01.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.