From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4C37DC433EF for ; Fri, 8 Apr 2022 00:22:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Subject:Cc:To: From:Date:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=r4uk9R45cdJDMY77kFuNxwCl+RhSdBlMytyFBGnkum8=; b=yS3JVVrO+vSuqk SOQHZwehK3xSGZqDG6/y3zqD1TNR6Ugl7i+uH7Ms035DdBa7sdcbDUf3hePPyL880x+qc/J36v9Vk LnTL5jj7LAz6sStqp8TXHRjPeurjEnbqos56sMM4p9WlIEmUlt3uojnnrwxdGYnSH57c8CuexAXKr HvcDlZmvq4qkLlE+DrOY6F6USDMc7NpS9pll73qrbx8ffkesXMKrQ6h2Pww6XLagTaUiy+JLM1Pd9 5zgpl8nYnsgZnwlKeGRsgpgPoQ4Kuq7zDzLpTBbyHyjTnWGNGituKjN3r9EYkYU9jXLJ/zICabc8R eTyaPq8wEzyXoUWX/yJg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nccMa-00EPoC-WB; Fri, 08 Apr 2022 00:20:33 +0000 Received: from mga14.intel.com ([192.55.52.115]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nccMW-00EPnq-Jo for linux-arm-kernel@lists.infradead.org; Fri, 08 Apr 2022 00:20:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1649377228; x=1680913228; h=date:from:to:cc:subject:message-id:mime-version; bh=ZM5jiZOPJPMcM2Z2JFAc49FrIJ2yPFkwBFrWXKaZDkU=; b=Jh1fFgF4QxIAyUjc2bM+5qRCT3n49bHmamXZ3ZSwQvUtsVj2REnnTWyJ 1FsGgnyptzNOHzKoWlnEmI89TFbRqr9jjUTawLkd8Y3jaRs06F93HmMGq gDuYHtsVgO2w3wv3/zb5GhlGw2z3Lk4M6qzBI7zjd5aXNxzwsjbWgfmKx 7LhHA7RJZyg3jSHZ2NCeyO4PeGpqXJbiO2MrSOgyh9IUW0K6/VtRtfJXi ONOEwhnSj94HB/S9bqIDuaS15LVqAyemzWgZrFMFUrvvk03afrkbzKsZ0 SaE+9JkW0+6r//sHf2LYNMKnSqP3EZhg204DBUM8OzKKkPIdscz7Vb+hO g==; X-IronPort-AV: E=McAfee;i="6400,9594,10310"; a="261648355" X-IronPort-AV: E=Sophos;i="5.90,243,1643702400"; d="scan'208";a="261648355" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Apr 2022 17:20:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,243,1643702400"; d="scan'208";a="506357483" Received: from lkp-server02.sh.intel.com (HELO a44fdfb70b94) ([10.239.97.151]) by orsmga003.jf.intel.com with ESMTP; 07 Apr 2022 17:20:21 -0700 Received: from kbuild by a44fdfb70b94 with local (Exim 4.95) (envelope-from ) id 1nccMO-0005ta-GH; Fri, 08 Apr 2022 00:20:20 +0000 Date: Fri, 8 Apr 2022 08:20:06 +0800 From: kernel test robot To: Pranavi Somisetty Cc: kbuild-all@lists.01.org, linux-arm-kernel@lists.infradead.org, Michal Simek , Harini Katakam , Radhey Shyam Pandey Subject: [xilinx-xlnx:xlnx_rebase_v5.15_LTS 1089/1091] drivers/staging/xilinx-tsn/xilinx_axienet_main_tsn.c:479:43: warning: cast to pointer from integer of different size Message-ID: <202204080825.xp9Sa2Hw-lkp@intel.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220407_172028_765265_6880683E X-CRM114-Status: GOOD ( 21.88 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org tree: https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.15_LTS head: 031eb9ce665429a9574c95f89bcc488fd0ba0ec1 commit: 8c6910de988070200e93c242ced7187754c4020d [1089/1091] net: xilinx: Move Xilinx TSN to staging config: arc-allyesconfig (https://download.01.org/0day-ci/archive/20220408/202204080825.xp9Sa2Hw-lkp@intel.com/config) compiler: arceb-elf-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/Xilinx/linux-xlnx/commit/8c6910de988070200e93c242ced7187754c4020d git remote add xilinx-xlnx https://github.com/Xilinx/linux-xlnx git fetch --no-tags xilinx-xlnx xlnx_rebase_v5.15_LTS git checkout 8c6910de988070200e93c242ced7187754c4020d # 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=arc SHELL=/bin/bash drivers/staging/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): In file included from drivers/staging/xilinx-tsn/xilinx_axienet_main_tsn.c:49: drivers/staging/xilinx-tsn/xilinx_axienet_tsn.h: In function 'axienet_dma_bdout': drivers/staging/xilinx-tsn/xilinx_axienet_tsn.h:1185:9: error: implicit declaration of function 'writeq'; did you mean 'writeb'? [-Werror=implicit-function-declaration] 1185 | writeq(value, (q->dma_regs + reg)); | ^~~~~~ | writeb drivers/staging/xilinx-tsn/xilinx_axienet_main_tsn.c: In function 'axienet_start_xmit_done_tsn': >> drivers/staging/xilinx-tsn/xilinx_axienet_main_tsn.c:479:43: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 479 | dev_kfree_skb_irq((struct sk_buff *)cur_p->tx_skb); | ^ drivers/staging/xilinx-tsn/xilinx_axienet_main_tsn.c: In function 'axienet_queue_xmit_tsn': >> drivers/staging/xilinx-tsn/xilinx_axienet_main_tsn.c:602:15: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 602 | (((phys_addr_t)skb->data & 0x3) || num_frag > 0)) { | ^ drivers/staging/xilinx-tsn/xilinx_axienet_main_tsn.c:641:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 641 | cur_p->tx_skb = (phys_addr_t)skb; | ^ drivers/staging/xilinx-tsn/xilinx_axienet_main_tsn.c:642:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 642 | cur_p->tx_skb = (phys_addr_t)skb; | ^ drivers/staging/xilinx-tsn/xilinx_axienet_main_tsn.c: In function 'axienet_recv': drivers/staging/xilinx-tsn/xilinx_axienet_main_tsn.c:702:23: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 702 | skb = (struct sk_buff *)(cur_p->sw_id_offset); | ^ drivers/staging/xilinx-tsn/xilinx_axienet_main_tsn.c:787:39: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 787 | cur_p->sw_id_offset = (phys_addr_t)new_skb; | ^ cc1: some warnings being treated as errors -- In file included from drivers/staging/xilinx-tsn/xilinx_axienet_mcdma_tsn.c:23: drivers/staging/xilinx-tsn/xilinx_axienet_tsn.h: In function 'axienet_dma_bdout': drivers/staging/xilinx-tsn/xilinx_axienet_tsn.h:1185:9: error: implicit declaration of function 'writeq'; did you mean 'writeb'? [-Werror=implicit-function-declaration] 1185 | writeq(value, (q->dma_regs + reg)); | ^~~~~~ | writeb In file included from include/linux/netlink.h:7, from include/linux/ethtool.h:18, from include/linux/phy.h:16, from include/linux/of_mdio.h:12, from drivers/staging/xilinx-tsn/xilinx_axienet_mcdma_tsn.c:17: drivers/staging/xilinx-tsn/xilinx_axienet_mcdma_tsn.c: In function 'axienet_mcdma_rx_bd_free_tsn': >> drivers/staging/xilinx-tsn/xilinx_axienet_mcdma_tsn.c:160:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 160 | dev_kfree_skb((struct sk_buff *) | ^ include/linux/skbuff.h:1214:45: note: in definition of macro 'dev_kfree_skb' 1214 | #define dev_kfree_skb(a) consume_skb(a) | ^ drivers/staging/xilinx-tsn/xilinx_axienet_mcdma_tsn.c: In function 'axienet_mcdma_rx_q_init_tsn': >> drivers/staging/xilinx-tsn/xilinx_axienet_mcdma_tsn.c:294:47: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 294 | q->rxq_bd_v[i].sw_id_offset = (phys_addr_t)skb; | ^ drivers/staging/xilinx-tsn/xilinx_axienet_mcdma_tsn.c: In function 'axienet_mcdma_err_handler_tsn': drivers/staging/xilinx-tsn/xilinx_axienet_mcdma_tsn.c:686:43: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 686 | dev_kfree_skb_irq((struct sk_buff *)cur_p->tx_skb); | ^ cc1: some warnings being treated as errors -- In file included from drivers/staging/xilinx-tsn/xilinx_tsn_tadma.c:24: drivers/staging/xilinx-tsn/xilinx_axienet_tsn.h: In function 'axienet_dma_bdout': drivers/staging/xilinx-tsn/xilinx_axienet_tsn.h:1185:9: error: implicit declaration of function 'writeq'; did you mean 'writeb'? [-Werror=implicit-function-declaration] 1185 | writeq(value, (q->dma_regs + reg)); | ^~~~~~ | writeb drivers/staging/xilinx-tsn/xilinx_tsn_tadma.c: In function 'tadma_xmit_done': >> drivers/staging/xilinx-tsn/xilinx_tsn_tadma.c:136:43: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 136 | dev_kfree_skb_irq((struct sk_buff *) | ^ drivers/staging/xilinx-tsn/xilinx_tsn_tadma.c: In function 'axienet_tadma_xmit': >> drivers/staging/xilinx-tsn/xilinx_tsn_tadma.c:517:62: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 517 | lp->tx_bd[sid][lp->tx_bd_head[sid]].tx_skb = (phys_addr_t)skb; | ^ drivers/staging/xilinx-tsn/xilinx_tsn_tadma.c:550:57: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 550 | (phys_addr_t)skb; | ^ cc1: some warnings being treated as errors vim +479 drivers/staging/xilinx-tsn/xilinx_axienet_main_tsn.c 443 444 /** 445 * axienet_start_xmit_done_tsn - Invoked once a transmit is completed by the 446 * Axi DMA Tx channel. 447 * @ndev: Pointer to the net_device structure 448 * @q: Pointer to DMA queue structure 449 * 450 * This function is invoked from the Axi DMA Tx isr to notify the completion 451 * of transmit operation. It clears fields in the corresponding Tx BDs and 452 * unmaps the corresponding buffer so that CPU can regain ownership of the 453 * buffer. It finally invokes "netif_wake_queue" to restart transmission if 454 * required. 455 */ 456 void axienet_start_xmit_done_tsn(struct net_device *ndev, 457 struct axienet_dma_q *q) 458 { 459 u32 size = 0; 460 u32 packets = 0; 461 struct axienet_local *lp = netdev_priv(ndev); 462 struct aximcdma_bd *cur_p; 463 unsigned int status = 0; 464 465 cur_p = &q->txq_bd_v[q->tx_bd_ci]; 466 status = cur_p->sband_stats; 467 while (status & XAXIDMA_BD_STS_COMPLETE_MASK) { 468 if (cur_p->tx_desc_mapping == DESC_DMA_MAP_PAGE) 469 dma_unmap_page(ndev->dev.parent, cur_p->phys, 470 cur_p->cntrl & 471 XAXIDMA_BD_CTRL_LENGTH_MASK, 472 DMA_TO_DEVICE); 473 else 474 dma_unmap_single(ndev->dev.parent, cur_p->phys, 475 cur_p->cntrl & 476 XAXIDMA_BD_CTRL_LENGTH_MASK, 477 DMA_TO_DEVICE); 478 if (cur_p->tx_skb) > 479 dev_kfree_skb_irq((struct sk_buff *)cur_p->tx_skb); 480 /*cur_p->phys = 0;*/ 481 cur_p->app0 = 0; 482 cur_p->app1 = 0; 483 cur_p->app2 = 0; 484 cur_p->app4 = 0; 485 cur_p->status = 0; 486 cur_p->tx_skb = 0; 487 cur_p->sband_stats = 0; 488 489 size += status & XAXIDMA_BD_STS_ACTUAL_LEN_MASK; 490 packets++; 491 492 if (++q->tx_bd_ci >= lp->tx_bd_num) 493 q->tx_bd_ci = 0; 494 cur_p = &q->txq_bd_v[q->tx_bd_ci]; 495 status = cur_p->sband_stats; 496 } 497 498 ndev->stats.tx_packets += packets; 499 ndev->stats.tx_bytes += size; 500 q->tx_packets += packets; 501 q->tx_bytes += size; 502 503 /* Matches barrier in axienet_start_xmit */ 504 smp_mb(); 505 506 /* Fixme: With the existing multiqueue implementation 507 * in the driver it is difficult to get the exact queue info. 508 * We should wake only the particular queue 509 * instead of waking all ndev queues. 510 */ 511 netif_tx_wake_all_queues(ndev); 512 } 513 514 /** 515 * axienet_check_tx_bd_space - Checks if a BD/group of BDs are currently busy 516 * @q: Pointer to DMA queue structure 517 * @num_frag: The number of BDs to check for 518 * 519 * Return: 0, on success 520 * NETDEV_TX_BUSY, if any of the descriptors are not free 521 * 522 * This function is invoked before BDs are allocated and transmission starts. 523 * This function returns 0 if a BD or group of BDs can be allocated for 524 * transmission. If the BD or any of the BDs are not free the function 525 * returns a busy status. This is invoked from axienet_start_xmit. 526 */ 527 static inline int axienet_check_tx_bd_space(struct axienet_dma_q *q, 528 int num_frag) 529 { 530 struct axienet_local *lp = q->lp; 531 struct aximcdma_bd *cur_p; 532 533 if (CIRC_SPACE(q->tx_bd_tail, q->tx_bd_ci, lp->tx_bd_num) < (num_frag + 1)) 534 return NETDEV_TX_BUSY; 535 536 cur_p = &q->txq_bd_v[(q->tx_bd_tail + num_frag) % lp->tx_bd_num]; 537 if (cur_p->sband_stats & XMCDMA_BD_STS_ALL_MASK) 538 return NETDEV_TX_BUSY; 539 return 0; 540 } 541 542 int axienet_queue_xmit_tsn(struct sk_buff *skb, 543 struct net_device *ndev, u16 map) 544 { 545 u32 ii; 546 u32 num_frag; 547 u32 csum_start_off; 548 u32 csum_index_off; 549 dma_addr_t tail_p; 550 struct axienet_local *lp = netdev_priv(ndev); 551 struct aximcdma_bd *cur_p; 552 unsigned long flags; 553 struct axienet_dma_q *q; 554 555 num_frag = skb_shinfo(skb)->nr_frags; 556 557 q = lp->dq[map]; 558 559 cur_p = &q->txq_bd_v[q->tx_bd_tail]; 560 spin_lock_irqsave(&q->tx_lock, flags); 561 if (axienet_check_tx_bd_space(q, num_frag)) { 562 if (netif_queue_stopped(ndev)) { 563 spin_unlock_irqrestore(&q->tx_lock, flags); 564 return NETDEV_TX_BUSY; 565 } 566 567 netif_stop_queue(ndev); 568 569 /* Matches barrier in axienet_start_xmit_done_tsn */ 570 smp_mb(); 571 572 /* Space might have just been freed - check again */ 573 if (axienet_check_tx_bd_space(q, num_frag)) { 574 spin_unlock_irqrestore(&q->tx_lock, flags); 575 return NETDEV_TX_BUSY; 576 } 577 578 netif_wake_queue(ndev); 579 } 580 581 if (skb->ip_summed == CHECKSUM_PARTIAL && !lp->eth_hasnobuf && 582 lp->axienet_config->mactype == XAXIENET_1G) { 583 if (lp->features & XAE_FEATURE_FULL_TX_CSUM) { 584 /* Tx Full Checksum Offload Enabled */ 585 cur_p->app0 |= 2; 586 } else if (lp->features & XAE_FEATURE_PARTIAL_RX_CSUM) { 587 csum_start_off = skb_transport_offset(skb); 588 csum_index_off = csum_start_off + skb->csum_offset; 589 /* Tx Partial Checksum Offload Enabled */ 590 cur_p->app0 |= 1; 591 cur_p->app1 = (csum_start_off << 16) | csum_index_off; 592 } 593 } else if (skb->ip_summed == CHECKSUM_UNNECESSARY && 594 !lp->eth_hasnobuf && 595 (lp->axienet_config->mactype == XAXIENET_1G)) { 596 cur_p->app0 |= 2; /* Tx Full Checksum Offload Enabled */ 597 } 598 599 cur_p->cntrl = (skb_headlen(skb) | XMCDMA_BD_CTRL_TXSOF_MASK); 600 601 if (!q->eth_hasdre && > 602 (((phys_addr_t)skb->data & 0x3) || num_frag > 0)) { 603 skb_copy_and_csum_dev(skb, q->tx_buf[q->tx_bd_tail]); 604 605 cur_p->phys = q->tx_bufs_dma + 606 (q->tx_buf[q->tx_bd_tail] - q->tx_bufs); 607 608 cur_p->cntrl = skb_pagelen(skb) | XMCDMA_BD_CTRL_TXSOF_MASK; 609 goto out; 610 } else { 611 cur_p->phys = dma_map_single(ndev->dev.parent, skb->data, 612 skb_headlen(skb), DMA_TO_DEVICE); 613 if (unlikely(dma_mapping_error(ndev->dev.parent, cur_p->phys))) { 614 cur_p->phys = 0; 615 spin_unlock_irqrestore(&q->tx_lock, flags); 616 dev_err(&ndev->dev, "TX buffer map failed\n"); 617 return NETDEV_TX_BUSY; 618 } 619 } 620 cur_p->tx_desc_mapping = DESC_DMA_MAP_SINGLE; 621 622 for (ii = 0; ii < num_frag; ii++) { 623 u32 len; 624 skb_frag_t *frag; 625 626 if (++q->tx_bd_tail >= lp->tx_bd_num) 627 q->tx_bd_tail = 0; 628 629 cur_p = &q->txq_bd_v[q->tx_bd_tail]; 630 frag = &skb_shinfo(skb)->frags[ii]; 631 len = skb_frag_size(frag); 632 cur_p->phys = skb_frag_dma_map(ndev->dev.parent, frag, 0, len, 633 DMA_TO_DEVICE); 634 cur_p->cntrl = len; 635 cur_p->tx_desc_mapping = DESC_DMA_MAP_PAGE; 636 } 637 638 out: 639 cur_p->cntrl |= XMCDMA_BD_CTRL_TXEOF_MASK; 640 tail_p = q->tx_bd_p + sizeof(*q->txq_bd_v) * q->tx_bd_tail; 641 cur_p->tx_skb = (phys_addr_t)skb; 642 cur_p->tx_skb = (phys_addr_t)skb; 643 644 tail_p = q->tx_bd_p + sizeof(*q->tx_bd_v) * q->tx_bd_tail; 645 /* Ensure BD write before starting transfer */ 646 wmb(); 647 648 /* Start the transfer */ 649 axienet_dma_bdout(q, XMCDMA_CHAN_TAILDESC_OFFSET(q->chan_id), 650 tail_p); 651 if (++q->tx_bd_tail >= lp->tx_bd_num) 652 q->tx_bd_tail = 0; 653 654 spin_unlock_irqrestore(&q->tx_lock, flags); 655 656 return NETDEV_TX_OK; 657 } 658 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel