Hi Sriram, kernel test robot noticed the following build warnings: [auto build test WARNING on tnguy-next-queue/dev-queue] url: https://github.com/intel-lab-lkp/linux/commits/Sriram-Yagnaraman/igb-prepare-for-AF_XDP-zero-copy-support/20230804-164354 base: https://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue.git dev-queue patch link: https://lore.kernel.org/r/20230804084051.14194-4-sriram.yagnaraman%40est.tech patch subject: [Intel-wired-lan] [PATCH iwl-next v4 3/4] igb: add AF_XDP zero-copy Rx support config: i386-debian-10.3 (https://download.01.org/0day-ci/archive/20230805/202308052204.SQxxKnNI-lkp@xxxxxxxxx/config) compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 reproduce: (https://download.01.org/0day-ci/archive/20230805/202308052204.SQxxKnNI-lkp@xxxxxxxxx/reproduce) 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@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202308052204.SQxxKnNI-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): drivers/net/ethernet/intel/igb/igb_main.c: In function 'igb_dump': >> drivers/net/ethernet/intel/igb/igb_main.c:505:42: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 505 | dma_addr_t dma = (dma_addr_t)NULL; | ^ vim +505 drivers/net/ethernet/intel/igb/igb_main.c 348 349 /* igb_dump - Print registers, Tx-rings and Rx-rings */ 350 static void igb_dump(struct igb_adapter *adapter) 351 { 352 struct net_device *netdev = adapter->netdev; 353 struct e1000_hw *hw = &adapter->hw; 354 struct igb_reg_info *reginfo; 355 struct igb_ring *tx_ring; 356 union e1000_adv_tx_desc *tx_desc; 357 struct my_u0 { __le64 a; __le64 b; } *u0; 358 struct igb_ring *rx_ring; 359 union e1000_adv_rx_desc *rx_desc; 360 u32 staterr; 361 u16 i, n; 362 363 if (!netif_msg_hw(adapter)) 364 return; 365 366 /* Print netdevice Info */ 367 if (netdev) { 368 dev_info(&adapter->pdev->dev, "Net device Info\n"); 369 pr_info("Device Name state trans_start\n"); 370 pr_info("%-15s %016lX %016lX\n", netdev->name, 371 netdev->state, dev_trans_start(netdev)); 372 } 373 374 /* Print Registers */ 375 dev_info(&adapter->pdev->dev, "Register Dump\n"); 376 pr_info(" Register Name Value\n"); 377 for (reginfo = (struct igb_reg_info *)igb_reg_info_tbl; 378 reginfo->name; reginfo++) { 379 igb_regdump(hw, reginfo); 380 } 381 382 /* Print TX Ring Summary */ 383 if (!netdev || !netif_running(netdev)) 384 goto exit; 385 386 dev_info(&adapter->pdev->dev, "TX Rings Summary\n"); 387 pr_info("Queue [NTU] [NTC] [bi(ntc)->dma ] leng ntw timestamp\n"); 388 for (n = 0; n < adapter->num_tx_queues; n++) { 389 struct igb_tx_buffer *buffer_info; 390 tx_ring = adapter->tx_ring[n]; 391 buffer_info = &tx_ring->tx_buffer_info[tx_ring->next_to_clean]; 392 pr_info(" %5d %5X %5X %016llX %04X %p %016llX\n", 393 n, tx_ring->next_to_use, tx_ring->next_to_clean, 394 (u64)dma_unmap_addr(buffer_info, dma), 395 dma_unmap_len(buffer_info, len), 396 buffer_info->next_to_watch, 397 (u64)buffer_info->time_stamp); 398 } 399 400 /* Print TX Rings */ 401 if (!netif_msg_tx_done(adapter)) 402 goto rx_ring_summary; 403 404 dev_info(&adapter->pdev->dev, "TX Rings Dump\n"); 405 406 /* Transmit Descriptor Formats 407 * 408 * Advanced Transmit Descriptor 409 * +--------------------------------------------------------------+ 410 * 0 | Buffer Address [63:0] | 411 * +--------------------------------------------------------------+ 412 * 8 | PAYLEN | PORTS |CC|IDX | STA | DCMD |DTYP|MAC|RSV| DTALEN | 413 * +--------------------------------------------------------------+ 414 * 63 46 45 40 39 38 36 35 32 31 24 15 0 415 */ 416 417 for (n = 0; n < adapter->num_tx_queues; n++) { 418 tx_ring = adapter->tx_ring[n]; 419 pr_info("------------------------------------\n"); 420 pr_info("TX QUEUE INDEX = %d\n", tx_ring->queue_index); 421 pr_info("------------------------------------\n"); 422 pr_info("T [desc] [address 63:0 ] [PlPOCIStDDM Ln] [bi->dma ] leng ntw timestamp bi->skb\n"); 423 424 for (i = 0; tx_ring->desc && (i < tx_ring->count); i++) { 425 const char *next_desc; 426 struct igb_tx_buffer *buffer_info; 427 tx_desc = IGB_TX_DESC(tx_ring, i); 428 buffer_info = &tx_ring->tx_buffer_info[i]; 429 u0 = (struct my_u0 *)tx_desc; 430 if (i == tx_ring->next_to_use && 431 i == tx_ring->next_to_clean) 432 next_desc = " NTC/U"; 433 else if (i == tx_ring->next_to_use) 434 next_desc = " NTU"; 435 else if (i == tx_ring->next_to_clean) 436 next_desc = " NTC"; 437 else 438 next_desc = ""; 439 440 pr_info("T [0x%03X] %016llX %016llX %016llX %04X %p %016llX %p%s\n", 441 i, le64_to_cpu(u0->a), 442 le64_to_cpu(u0->b), 443 (u64)dma_unmap_addr(buffer_info, dma), 444 dma_unmap_len(buffer_info, len), 445 buffer_info->next_to_watch, 446 (u64)buffer_info->time_stamp, 447 buffer_info->skb, next_desc); 448 449 if (netif_msg_pktdata(adapter) && buffer_info->skb) 450 print_hex_dump(KERN_INFO, "", 451 DUMP_PREFIX_ADDRESS, 452 16, 1, buffer_info->skb->data, 453 dma_unmap_len(buffer_info, len), 454 true); 455 } 456 } 457 458 /* Print RX Rings Summary */ 459 rx_ring_summary: 460 dev_info(&adapter->pdev->dev, "RX Rings Summary\n"); 461 pr_info("Queue [NTU] [NTC]\n"); 462 for (n = 0; n < adapter->num_rx_queues; n++) { 463 rx_ring = adapter->rx_ring[n]; 464 pr_info(" %5d %5X %5X\n", 465 n, rx_ring->next_to_use, rx_ring->next_to_clean); 466 } 467 468 /* Print RX Rings */ 469 if (!netif_msg_rx_status(adapter)) 470 goto exit; 471 472 dev_info(&adapter->pdev->dev, "RX Rings Dump\n"); 473 474 /* Advanced Receive Descriptor (Read) Format 475 * 63 1 0 476 * +-----------------------------------------------------+ 477 * 0 | Packet Buffer Address [63:1] |A0/NSE| 478 * +----------------------------------------------+------+ 479 * 8 | Header Buffer Address [63:1] | DD | 480 * +-----------------------------------------------------+ 481 * 482 * 483 * Advanced Receive Descriptor (Write-Back) Format 484 * 485 * 63 48 47 32 31 30 21 20 17 16 4 3 0 486 * +------------------------------------------------------+ 487 * 0 | Packet IP |SPH| HDR_LEN | RSV|Packet| RSS | 488 * | Checksum Ident | | | | Type | Type | 489 * +------------------------------------------------------+ 490 * 8 | VLAN Tag | Length | Extended Error | Extended Status | 491 * +------------------------------------------------------+ 492 * 63 48 47 32 31 20 19 0 493 */ 494 495 for (n = 0; n < adapter->num_rx_queues; n++) { 496 rx_ring = adapter->rx_ring[n]; 497 pr_info("------------------------------------\n"); 498 pr_info("RX QUEUE INDEX = %d\n", rx_ring->queue_index); 499 pr_info("------------------------------------\n"); 500 pr_info("R [desc] [ PktBuf A0] [ HeadBuf DD] [bi->dma ] [bi->skb] <-- Adv Rx Read format\n"); 501 pr_info("RWB[desc] [PcsmIpSHl PtRs] [vl er S cks ln] ---------------- [bi->skb] <-- Adv Rx Write-Back format\n"); 502 503 for (i = 0; i < rx_ring->count; i++) { 504 const char *next_desc; > 505 dma_addr_t dma = (dma_addr_t)NULL; 506 struct igb_rx_buffer *buffer_info = NULL; 507 rx_desc = IGB_RX_DESC(rx_ring, i); 508 u0 = (struct my_u0 *)rx_desc; 509 staterr = le32_to_cpu(rx_desc->wb.upper.status_error); 510 511 if (!rx_ring->xsk_pool) { 512 buffer_info = &rx_ring->rx_buffer_info[i]; 513 dma = buffer_info->dma; 514 } 515 516 if (i == rx_ring->next_to_use) 517 next_desc = " NTU"; 518 else if (i == rx_ring->next_to_clean) 519 next_desc = " NTC"; 520 else 521 next_desc = ""; 522 523 if (staterr & E1000_RXD_STAT_DD) { 524 /* Descriptor Done */ 525 pr_info("%s[0x%03X] %016llX %016llX ---------------- %s\n", 526 "RWB", i, 527 le64_to_cpu(u0->a), 528 le64_to_cpu(u0->b), 529 next_desc); 530 } else { 531 pr_info("%s[0x%03X] %016llX %016llX %016llX %s\n", 532 "R ", i, 533 le64_to_cpu(u0->a), 534 le64_to_cpu(u0->b), 535 (u64)dma, 536 next_desc); 537 538 if (netif_msg_pktdata(adapter) && 539 buffer_info && dma && buffer_info->page) { 540 print_hex_dump(KERN_INFO, "", 541 DUMP_PREFIX_ADDRESS, 542 16, 1, 543 page_address(buffer_info->page) + 544 buffer_info->page_offset, 545 igb_rx_bufsz(rx_ring), true); 546 } 547 } 548 } 549 } 550 551 exit: 552 return; 553 } 554 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki