tree: https://gitee.com/openeuler/kernel.git OLK-5.10 head: bef6f06e039b8929481350d15d6d8c3ba81c6fd2 commit: 29ecb19fc3e567091641824b91a6019cc1eb8154 [13190/30000] net: hns3: add queue bonding mode support for VF config: arm64-randconfig-r131-20240925 (https://download.01.org/0day-ci/archive/20240928/202409280619.HevoAR3n-lkp@i...) compiler: aarch64-linux-gcc (GCC) 14.1.0 reproduce: (https://download.01.org/0day-ci/archive/20240928/202409280619.HevoAR3n-lkp@i...)
If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot lkp@intel.com | Closes: https://lore.kernel.org/oe-kbuild-all/202409280619.HevoAR3n-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c:385:58: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected unsigned short [usertype] qb_state @@ got restricted __le16 [usertype] @@
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c:385:58: sparse: expected unsigned short [usertype] qb_state drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c:385:58: sparse: got restricted __le16 [usertype]
vim +385 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c
305 306 void hclgevf_mbx_async_handler(struct hclgevf_dev *hdev) 307 { 308 struct hclge_mbx_port_base_vlan *vlan_info; 309 struct hclge_mbx_link_status *link_info; 310 struct hclge_mbx_link_mode *link_mode; 311 enum hnae3_reset_type reset_type; 312 u16 link_status, state; 313 __le16 *msg_q; 314 u16 opcode; 315 u8 duplex; 316 u32 speed; 317 u32 tail; 318 u8 flag; 319 u16 idx; 320 321 tail = hdev->arq.tail; 322 323 /* process all the async queue messages */ 324 while (tail != hdev->arq.head) { 325 if (test_bit(HCLGE_COMM_STATE_CMD_DISABLE, 326 &hdev->hw.hw.comm_state)) { 327 dev_info(&hdev->pdev->dev, 328 "vf crq need init in async\n"); 329 return; 330 } 331 332 msg_q = hdev->arq.msg_q[hdev->arq.head]; 333 opcode = le16_to_cpu(msg_q[0]); 334 switch (opcode) { 335 case HCLGE_MBX_LINK_STAT_CHANGE: 336 link_info = (struct hclge_mbx_link_status *)(msg_q + 1); 337 link_status = le16_to_cpu(link_info->link_status); 338 speed = le32_to_cpu(link_info->speed); 339 duplex = (u8)le16_to_cpu(link_info->duplex); 340 flag = link_info->flag; 341 342 /* update upper layer with new link link status */ 343 hclgevf_update_speed_duplex(hdev, speed, duplex); 344 hclgevf_update_link_status(hdev, link_status); 345 346 if (flag & HCLGE_MBX_PUSH_LINK_STATUS_EN) 347 set_bit(HCLGEVF_STATE_PF_PUSH_LINK_STATUS, 348 &hdev->state); 349 350 break; 351 case HCLGE_MBX_LINK_STAT_MODE: 352 link_mode = (struct hclge_mbx_link_mode *)(msg_q + 1); 353 idx = le16_to_cpu(link_mode->idx); 354 if (idx) 355 hdev->hw.mac.supported = 356 le64_to_cpu(link_mode->link_mode); 357 else 358 hdev->hw.mac.advertising = 359 le64_to_cpu(link_mode->link_mode); 360 break; 361 case HCLGE_MBX_ASSERTING_RESET: 362 /* PF has asserted reset hence VF should go in pending 363 * state and poll for the hardware reset status till it 364 * has been completely reset. After this stack should 365 * eventually be re-initialized. 366 */ 367 reset_type = 368 (enum hnae3_reset_type)le16_to_cpu(msg_q[1]); 369 set_bit(reset_type, &hdev->reset_pending); 370 set_bit(HCLGEVF_RESET_PENDING, &hdev->reset_state); 371 hclgevf_reset_task_schedule(hdev); 372 373 break; 374 case HCLGE_MBX_PUSH_VLAN_INFO: 375 vlan_info = 376 (struct hclge_mbx_port_base_vlan *)(msg_q + 1); 377 state = le16_to_cpu(vlan_info->state); 378 hclgevf_update_port_base_vlan_info(hdev, state, 379 vlan_info); 380 break; 381 case HCLGE_MBX_PUSH_PROMISC_INFO: 382 hclgevf_parse_promisc_info(hdev, le16_to_cpu(msg_q[1])); 383 break; 384 case HCLGE_MBX_PUSH_QB_STATE:
385 hclgevf_parse_qb_info(hdev, msg_q[1]);