From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: drivers/net/wan/fsl_ucc_hdlc.c:458:33: sparse: sparse: incorrect type in argument 1 (different address spaces)
Date: Tue, 02 Feb 2021 00:24:34 +0800 [thread overview]
Message-ID: <202102020031.RM8ZHTsS-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 11071 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 1048ba83fb1c00cd24172e23e8263972f6b5d9ac
commit: 8f28ca6bd8211214faf717677bbffe375c2a6072 iomap: constify ioreadX() iomem argument (as in generic implementation)
date: 6 months ago
config: sh-randconfig-s031-20210201 (attached as .config)
compiler: sh4-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-215-g0fb77bb6-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8f28ca6bd8211214faf717677bbffe375c2a6072
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 8f28ca6bd8211214faf717677bbffe375c2a6072
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=sh
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
"sparse warnings: (new ones prefixed by >>)"
drivers/net/wan/fsl_ucc_hdlc.c:305:57: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got restricted __be16 * @@
drivers/net/wan/fsl_ucc_hdlc.c:305:57: sparse: expected void [noderef] __iomem *
drivers/net/wan/fsl_ucc_hdlc.c:305:57: sparse: got restricted __be16 *
drivers/net/wan/fsl_ucc_hdlc.c:307:46: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got restricted __be32 * @@
drivers/net/wan/fsl_ucc_hdlc.c:307:46: sparse: expected void [noderef] __iomem *
drivers/net/wan/fsl_ucc_hdlc.c:307:46: sparse: got restricted __be32 *
drivers/net/wan/fsl_ucc_hdlc.c:316:57: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got restricted __be16 * @@
drivers/net/wan/fsl_ucc_hdlc.c:316:57: sparse: expected void [noderef] __iomem *
drivers/net/wan/fsl_ucc_hdlc.c:316:57: sparse: got restricted __be16 *
drivers/net/wan/fsl_ucc_hdlc.c:318:46: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got restricted __be32 * @@
drivers/net/wan/fsl_ucc_hdlc.c:318:46: sparse: expected void [noderef] __iomem *
drivers/net/wan/fsl_ucc_hdlc.c:318:46: sparse: got restricted __be32 *
drivers/net/wan/fsl_ucc_hdlc.c:368:29: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] @@ got restricted __be16 [usertype] @@
drivers/net/wan/fsl_ucc_hdlc.c:368:29: sparse: expected unsigned short [usertype]
drivers/net/wan/fsl_ucc_hdlc.c:368:29: sparse: got restricted __be16 [usertype]
drivers/net/wan/fsl_ucc_hdlc.c:375:36: sparse: sparse: restricted __be16 degrades to integer
drivers/net/wan/fsl_ucc_hdlc.c:398:12: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct qe_bd [noderef] __iomem *bd @@ got struct qe_bd *curtx_bd @@
drivers/net/wan/fsl_ucc_hdlc.c:398:12: sparse: expected struct qe_bd [noderef] __iomem *bd
drivers/net/wan/fsl_ucc_hdlc.c:398:12: sparse: got struct qe_bd *curtx_bd
drivers/net/wan/fsl_ucc_hdlc.c:408:35: sparse: sparse: dereference of noderef expression
drivers/net/wan/fsl_ucc_hdlc.c:421:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct qe_bd [noderef] __iomem *[assigned] bd @@ got struct qe_bd *tx_bd_base @@
drivers/net/wan/fsl_ucc_hdlc.c:421:20: sparse: expected struct qe_bd [noderef] __iomem *[assigned] bd
drivers/net/wan/fsl_ucc_hdlc.c:421:20: sparse: got struct qe_bd *tx_bd_base
drivers/net/wan/fsl_ucc_hdlc.c:423:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/net/wan/fsl_ucc_hdlc.c:423:16: sparse: struct qe_bd [noderef] __iomem *
drivers/net/wan/fsl_ucc_hdlc.c:423:16: sparse: struct qe_bd *
>> drivers/net/wan/fsl_ucc_hdlc.c:458:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got restricted __be16 * @@
drivers/net/wan/fsl_ucc_hdlc.c:502:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got restricted __be16 * @@
drivers/net/wan/fsl_ucc_hdlc.c:524:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got restricted __be16 * @@
drivers/net/wan/fsl_ucc_hdlc.c:548:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got restricted __be16 * @@
drivers/net/wan/fsl_ucc_hdlc.c:592:67: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got restricted __be16 * @@
drivers/net/wan/fsl_ucc_hdlc.c:607:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got restricted __be16 * @@
drivers/net/wan/fsl_ucc_hdlc.c:408:35: sparse: sparse: dereference of noderef expression
drivers/net/wan/fsl_ucc_hdlc.c:408:35: sparse: sparse: dereference of noderef expression
drivers/net/wan/fsl_ucc_hdlc.c:723:29: sparse: sparse: dereference of noderef expression
drivers/net/wan/fsl_ucc_hdlc.c:814:21: sparse: sparse: dereference of noderef expression
vim +458 drivers/net/wan/fsl_ucc_hdlc.c
ba59d5705825fb Mathias Thore 2018-10-22 446
c19b6d246a3562 Zhao Qiang 2016-06-06 447 static int hdlc_tx_done(struct ucc_hdlc_private *priv)
c19b6d246a3562 Zhao Qiang 2016-06-06 448 {
c19b6d246a3562 Zhao Qiang 2016-06-06 449 /* Start from the next BD that should be filled */
c19b6d246a3562 Zhao Qiang 2016-06-06 450 struct net_device *dev = priv->ndev;
2e7ad56aa54778 Mathias Thore 2018-11-07 451 unsigned int bytes_sent = 0;
2e7ad56aa54778 Mathias Thore 2018-11-07 452 int howmany = 0;
c19b6d246a3562 Zhao Qiang 2016-06-06 453 struct qe_bd *bd; /* BD pointer */
c19b6d246a3562 Zhao Qiang 2016-06-06 454 u16 bd_status;
ba59d5705825fb Mathias Thore 2018-10-22 455 int tx_restart = 0;
c19b6d246a3562 Zhao Qiang 2016-06-06 456
c19b6d246a3562 Zhao Qiang 2016-06-06 457 bd = priv->dirty_tx;
c19b6d246a3562 Zhao Qiang 2016-06-06 @458 bd_status = ioread16be(&bd->status);
c19b6d246a3562 Zhao Qiang 2016-06-06 459
c19b6d246a3562 Zhao Qiang 2016-06-06 460 /* Normal processing. */
c19b6d246a3562 Zhao Qiang 2016-06-06 461 while ((bd_status & T_R_S) == 0) {
c19b6d246a3562 Zhao Qiang 2016-06-06 462 struct sk_buff *skb;
c19b6d246a3562 Zhao Qiang 2016-06-06 463
ba59d5705825fb Mathias Thore 2018-10-22 464 if (bd_status & T_UN_S) { /* Underrun */
ba59d5705825fb Mathias Thore 2018-10-22 465 dev->stats.tx_fifo_errors++;
ba59d5705825fb Mathias Thore 2018-10-22 466 tx_restart = 1;
ba59d5705825fb Mathias Thore 2018-10-22 467 }
ba59d5705825fb Mathias Thore 2018-10-22 468 if (bd_status & T_CT_S) { /* Carrier lost */
ba59d5705825fb Mathias Thore 2018-10-22 469 dev->stats.tx_carrier_errors++;
ba59d5705825fb Mathias Thore 2018-10-22 470 tx_restart = 1;
ba59d5705825fb Mathias Thore 2018-10-22 471 }
ba59d5705825fb Mathias Thore 2018-10-22 472
c19b6d246a3562 Zhao Qiang 2016-06-06 473 /* BD contains already transmitted buffer. */
c19b6d246a3562 Zhao Qiang 2016-06-06 474 /* Handle the transmitted buffer and release */
c19b6d246a3562 Zhao Qiang 2016-06-06 475 /* the BD to be used with the current frame */
c19b6d246a3562 Zhao Qiang 2016-06-06 476
c19b6d246a3562 Zhao Qiang 2016-06-06 477 skb = priv->tx_skbuff[priv->skb_dirtytx];
c19b6d246a3562 Zhao Qiang 2016-06-06 478 if (!skb)
c19b6d246a3562 Zhao Qiang 2016-06-06 479 break;
2e7ad56aa54778 Mathias Thore 2018-11-07 480 howmany++;
2e7ad56aa54778 Mathias Thore 2018-11-07 481 bytes_sent += skb->len;
c19b6d246a3562 Zhao Qiang 2016-06-06 482 dev->stats.tx_packets++;
c19b6d246a3562 Zhao Qiang 2016-06-06 483 memset(priv->tx_buffer +
c19b6d246a3562 Zhao Qiang 2016-06-06 484 (be32_to_cpu(bd->buf) - priv->dma_tx_addr),
c19b6d246a3562 Zhao Qiang 2016-06-06 485 0, skb->len);
7c3850adbcccc2 Yang Wei 2019-02-06 486 dev_consume_skb_irq(skb);
c19b6d246a3562 Zhao Qiang 2016-06-06 487
c19b6d246a3562 Zhao Qiang 2016-06-06 488 priv->tx_skbuff[priv->skb_dirtytx] = NULL;
c19b6d246a3562 Zhao Qiang 2016-06-06 489 priv->skb_dirtytx =
c19b6d246a3562 Zhao Qiang 2016-06-06 490 (priv->skb_dirtytx +
c19b6d246a3562 Zhao Qiang 2016-06-06 491 1) & TX_RING_MOD_MASK(TX_BD_RING_LEN);
c19b6d246a3562 Zhao Qiang 2016-06-06 492
c19b6d246a3562 Zhao Qiang 2016-06-06 493 /* We freed a buffer, so now we can restart transmission */
c19b6d246a3562 Zhao Qiang 2016-06-06 494 if (netif_queue_stopped(dev))
c19b6d246a3562 Zhao Qiang 2016-06-06 495 netif_wake_queue(dev);
c19b6d246a3562 Zhao Qiang 2016-06-06 496
c19b6d246a3562 Zhao Qiang 2016-06-06 497 /* Advance the confirmation BD pointer */
c19b6d246a3562 Zhao Qiang 2016-06-06 498 if (!(bd_status & T_W_S))
c19b6d246a3562 Zhao Qiang 2016-06-06 499 bd += 1;
c19b6d246a3562 Zhao Qiang 2016-06-06 500 else
c19b6d246a3562 Zhao Qiang 2016-06-06 501 bd = priv->tx_bd_base;
c19b6d246a3562 Zhao Qiang 2016-06-06 502 bd_status = ioread16be(&bd->status);
c19b6d246a3562 Zhao Qiang 2016-06-06 503 }
c19b6d246a3562 Zhao Qiang 2016-06-06 504 priv->dirty_tx = bd;
c19b6d246a3562 Zhao Qiang 2016-06-06 505
ba59d5705825fb Mathias Thore 2018-10-22 506 if (tx_restart)
ba59d5705825fb Mathias Thore 2018-10-22 507 hdlc_tx_restart(priv);
ba59d5705825fb Mathias Thore 2018-10-22 508
2e7ad56aa54778 Mathias Thore 2018-11-07 509 netdev_completed_queue(dev, howmany, bytes_sent);
c19b6d246a3562 Zhao Qiang 2016-06-06 510 return 0;
c19b6d246a3562 Zhao Qiang 2016-06-06 511 }
c19b6d246a3562 Zhao Qiang 2016-06-06 512
:::::: The code at line 458 was first introduced by commit
:::::: c19b6d246a35627c3a69b2fa6bdece212b48214b drivers/net: support hdlc function for QE-UCC
:::::: TO: Zhao Qiang <qiang.zhao@nxp.com>
:::::: CC: David S. Miller <davem@davemloft.net>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 30738 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Krzysztof Kozlowski <krzk@kernel.org>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
Linux Memory Management List <linux-mm@kvack.org>,
Geert Uytterhoeven <geert+renesas@glider.be>,
Arnd Bergmann <arnd@arndb.de>
Subject: drivers/net/wan/fsl_ucc_hdlc.c:458:33: sparse: sparse: incorrect type in argument 1 (different address spaces)
Date: Tue, 2 Feb 2021 00:24:34 +0800 [thread overview]
Message-ID: <202102020031.RM8ZHTsS-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 10930 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 1048ba83fb1c00cd24172e23e8263972f6b5d9ac
commit: 8f28ca6bd8211214faf717677bbffe375c2a6072 iomap: constify ioreadX() iomem argument (as in generic implementation)
date: 6 months ago
config: sh-randconfig-s031-20210201 (attached as .config)
compiler: sh4-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-215-g0fb77bb6-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8f28ca6bd8211214faf717677bbffe375c2a6072
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 8f28ca6bd8211214faf717677bbffe375c2a6072
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=sh
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
"sparse warnings: (new ones prefixed by >>)"
drivers/net/wan/fsl_ucc_hdlc.c:305:57: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got restricted __be16 * @@
drivers/net/wan/fsl_ucc_hdlc.c:305:57: sparse: expected void [noderef] __iomem *
drivers/net/wan/fsl_ucc_hdlc.c:305:57: sparse: got restricted __be16 *
drivers/net/wan/fsl_ucc_hdlc.c:307:46: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got restricted __be32 * @@
drivers/net/wan/fsl_ucc_hdlc.c:307:46: sparse: expected void [noderef] __iomem *
drivers/net/wan/fsl_ucc_hdlc.c:307:46: sparse: got restricted __be32 *
drivers/net/wan/fsl_ucc_hdlc.c:316:57: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got restricted __be16 * @@
drivers/net/wan/fsl_ucc_hdlc.c:316:57: sparse: expected void [noderef] __iomem *
drivers/net/wan/fsl_ucc_hdlc.c:316:57: sparse: got restricted __be16 *
drivers/net/wan/fsl_ucc_hdlc.c:318:46: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got restricted __be32 * @@
drivers/net/wan/fsl_ucc_hdlc.c:318:46: sparse: expected void [noderef] __iomem *
drivers/net/wan/fsl_ucc_hdlc.c:318:46: sparse: got restricted __be32 *
drivers/net/wan/fsl_ucc_hdlc.c:368:29: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] @@ got restricted __be16 [usertype] @@
drivers/net/wan/fsl_ucc_hdlc.c:368:29: sparse: expected unsigned short [usertype]
drivers/net/wan/fsl_ucc_hdlc.c:368:29: sparse: got restricted __be16 [usertype]
drivers/net/wan/fsl_ucc_hdlc.c:375:36: sparse: sparse: restricted __be16 degrades to integer
drivers/net/wan/fsl_ucc_hdlc.c:398:12: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct qe_bd [noderef] __iomem *bd @@ got struct qe_bd *curtx_bd @@
drivers/net/wan/fsl_ucc_hdlc.c:398:12: sparse: expected struct qe_bd [noderef] __iomem *bd
drivers/net/wan/fsl_ucc_hdlc.c:398:12: sparse: got struct qe_bd *curtx_bd
drivers/net/wan/fsl_ucc_hdlc.c:408:35: sparse: sparse: dereference of noderef expression
drivers/net/wan/fsl_ucc_hdlc.c:421:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct qe_bd [noderef] __iomem *[assigned] bd @@ got struct qe_bd *tx_bd_base @@
drivers/net/wan/fsl_ucc_hdlc.c:421:20: sparse: expected struct qe_bd [noderef] __iomem *[assigned] bd
drivers/net/wan/fsl_ucc_hdlc.c:421:20: sparse: got struct qe_bd *tx_bd_base
drivers/net/wan/fsl_ucc_hdlc.c:423:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/net/wan/fsl_ucc_hdlc.c:423:16: sparse: struct qe_bd [noderef] __iomem *
drivers/net/wan/fsl_ucc_hdlc.c:423:16: sparse: struct qe_bd *
>> drivers/net/wan/fsl_ucc_hdlc.c:458:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got restricted __be16 * @@
drivers/net/wan/fsl_ucc_hdlc.c:502:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got restricted __be16 * @@
drivers/net/wan/fsl_ucc_hdlc.c:524:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got restricted __be16 * @@
drivers/net/wan/fsl_ucc_hdlc.c:548:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got restricted __be16 * @@
drivers/net/wan/fsl_ucc_hdlc.c:592:67: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got restricted __be16 * @@
drivers/net/wan/fsl_ucc_hdlc.c:607:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got restricted __be16 * @@
drivers/net/wan/fsl_ucc_hdlc.c:408:35: sparse: sparse: dereference of noderef expression
drivers/net/wan/fsl_ucc_hdlc.c:408:35: sparse: sparse: dereference of noderef expression
drivers/net/wan/fsl_ucc_hdlc.c:723:29: sparse: sparse: dereference of noderef expression
drivers/net/wan/fsl_ucc_hdlc.c:814:21: sparse: sparse: dereference of noderef expression
vim +458 drivers/net/wan/fsl_ucc_hdlc.c
ba59d5705825fb Mathias Thore 2018-10-22 446
c19b6d246a3562 Zhao Qiang 2016-06-06 447 static int hdlc_tx_done(struct ucc_hdlc_private *priv)
c19b6d246a3562 Zhao Qiang 2016-06-06 448 {
c19b6d246a3562 Zhao Qiang 2016-06-06 449 /* Start from the next BD that should be filled */
c19b6d246a3562 Zhao Qiang 2016-06-06 450 struct net_device *dev = priv->ndev;
2e7ad56aa54778 Mathias Thore 2018-11-07 451 unsigned int bytes_sent = 0;
2e7ad56aa54778 Mathias Thore 2018-11-07 452 int howmany = 0;
c19b6d246a3562 Zhao Qiang 2016-06-06 453 struct qe_bd *bd; /* BD pointer */
c19b6d246a3562 Zhao Qiang 2016-06-06 454 u16 bd_status;
ba59d5705825fb Mathias Thore 2018-10-22 455 int tx_restart = 0;
c19b6d246a3562 Zhao Qiang 2016-06-06 456
c19b6d246a3562 Zhao Qiang 2016-06-06 457 bd = priv->dirty_tx;
c19b6d246a3562 Zhao Qiang 2016-06-06 @458 bd_status = ioread16be(&bd->status);
c19b6d246a3562 Zhao Qiang 2016-06-06 459
c19b6d246a3562 Zhao Qiang 2016-06-06 460 /* Normal processing. */
c19b6d246a3562 Zhao Qiang 2016-06-06 461 while ((bd_status & T_R_S) == 0) {
c19b6d246a3562 Zhao Qiang 2016-06-06 462 struct sk_buff *skb;
c19b6d246a3562 Zhao Qiang 2016-06-06 463
ba59d5705825fb Mathias Thore 2018-10-22 464 if (bd_status & T_UN_S) { /* Underrun */
ba59d5705825fb Mathias Thore 2018-10-22 465 dev->stats.tx_fifo_errors++;
ba59d5705825fb Mathias Thore 2018-10-22 466 tx_restart = 1;
ba59d5705825fb Mathias Thore 2018-10-22 467 }
ba59d5705825fb Mathias Thore 2018-10-22 468 if (bd_status & T_CT_S) { /* Carrier lost */
ba59d5705825fb Mathias Thore 2018-10-22 469 dev->stats.tx_carrier_errors++;
ba59d5705825fb Mathias Thore 2018-10-22 470 tx_restart = 1;
ba59d5705825fb Mathias Thore 2018-10-22 471 }
ba59d5705825fb Mathias Thore 2018-10-22 472
c19b6d246a3562 Zhao Qiang 2016-06-06 473 /* BD contains already transmitted buffer. */
c19b6d246a3562 Zhao Qiang 2016-06-06 474 /* Handle the transmitted buffer and release */
c19b6d246a3562 Zhao Qiang 2016-06-06 475 /* the BD to be used with the current frame */
c19b6d246a3562 Zhao Qiang 2016-06-06 476
c19b6d246a3562 Zhao Qiang 2016-06-06 477 skb = priv->tx_skbuff[priv->skb_dirtytx];
c19b6d246a3562 Zhao Qiang 2016-06-06 478 if (!skb)
c19b6d246a3562 Zhao Qiang 2016-06-06 479 break;
2e7ad56aa54778 Mathias Thore 2018-11-07 480 howmany++;
2e7ad56aa54778 Mathias Thore 2018-11-07 481 bytes_sent += skb->len;
c19b6d246a3562 Zhao Qiang 2016-06-06 482 dev->stats.tx_packets++;
c19b6d246a3562 Zhao Qiang 2016-06-06 483 memset(priv->tx_buffer +
c19b6d246a3562 Zhao Qiang 2016-06-06 484 (be32_to_cpu(bd->buf) - priv->dma_tx_addr),
c19b6d246a3562 Zhao Qiang 2016-06-06 485 0, skb->len);
7c3850adbcccc2 Yang Wei 2019-02-06 486 dev_consume_skb_irq(skb);
c19b6d246a3562 Zhao Qiang 2016-06-06 487
c19b6d246a3562 Zhao Qiang 2016-06-06 488 priv->tx_skbuff[priv->skb_dirtytx] = NULL;
c19b6d246a3562 Zhao Qiang 2016-06-06 489 priv->skb_dirtytx =
c19b6d246a3562 Zhao Qiang 2016-06-06 490 (priv->skb_dirtytx +
c19b6d246a3562 Zhao Qiang 2016-06-06 491 1) & TX_RING_MOD_MASK(TX_BD_RING_LEN);
c19b6d246a3562 Zhao Qiang 2016-06-06 492
c19b6d246a3562 Zhao Qiang 2016-06-06 493 /* We freed a buffer, so now we can restart transmission */
c19b6d246a3562 Zhao Qiang 2016-06-06 494 if (netif_queue_stopped(dev))
c19b6d246a3562 Zhao Qiang 2016-06-06 495 netif_wake_queue(dev);
c19b6d246a3562 Zhao Qiang 2016-06-06 496
c19b6d246a3562 Zhao Qiang 2016-06-06 497 /* Advance the confirmation BD pointer */
c19b6d246a3562 Zhao Qiang 2016-06-06 498 if (!(bd_status & T_W_S))
c19b6d246a3562 Zhao Qiang 2016-06-06 499 bd += 1;
c19b6d246a3562 Zhao Qiang 2016-06-06 500 else
c19b6d246a3562 Zhao Qiang 2016-06-06 501 bd = priv->tx_bd_base;
c19b6d246a3562 Zhao Qiang 2016-06-06 502 bd_status = ioread16be(&bd->status);
c19b6d246a3562 Zhao Qiang 2016-06-06 503 }
c19b6d246a3562 Zhao Qiang 2016-06-06 504 priv->dirty_tx = bd;
c19b6d246a3562 Zhao Qiang 2016-06-06 505
ba59d5705825fb Mathias Thore 2018-10-22 506 if (tx_restart)
ba59d5705825fb Mathias Thore 2018-10-22 507 hdlc_tx_restart(priv);
ba59d5705825fb Mathias Thore 2018-10-22 508
2e7ad56aa54778 Mathias Thore 2018-11-07 509 netdev_completed_queue(dev, howmany, bytes_sent);
c19b6d246a3562 Zhao Qiang 2016-06-06 510 return 0;
c19b6d246a3562 Zhao Qiang 2016-06-06 511 }
c19b6d246a3562 Zhao Qiang 2016-06-06 512
:::::: The code at line 458 was first introduced by commit
:::::: c19b6d246a35627c3a69b2fa6bdece212b48214b drivers/net: support hdlc function for QE-UCC
:::::: TO: Zhao Qiang <qiang.zhao@nxp.com>
:::::: CC: David S. Miller <davem@davemloft.net>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 30738 bytes --]
next reply other threads:[~2021-02-01 16:24 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-01 16:24 kernel test robot [this message]
2021-02-01 16:24 ` drivers/net/wan/fsl_ucc_hdlc.c:458:33: sparse: sparse: incorrect type in argument 1 (different address spaces) kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2021-05-18 18:53 kernel test robot
2021-05-18 18:53 ` kernel test robot
2020-10-22 19:23 kernel test robot
2020-10-22 19:23 ` kernel test robot
2020-09-05 19:40 kernel test robot
2020-09-05 19:40 ` kernel test robot
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=202102020031.RM8ZHTsS-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.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.