From: kernel test robot <lkp@intel.com>
To: Dave Penkler <dpenkler@gmail.com>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: drivers/gpib/cb7210/cb7210.c:120:32: sparse: sparse: cast to restricted __le16
Date: Wed, 19 Aug 2026 17:38:53 +0800 [thread overview]
Message-ID: <202608191709.BDqLd3DT-lkp@intel.com> (raw)
Hi Dave,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 3a0dd7ba4f44cdc116d83712f61e7c1a95be3588
commit: e6ab504633e4c06e35377ecf3c8cbc304de79858 staging: gpib: Destage gpib
date: 9 months ago
config: m68k-randconfig-r113-20260819 (https://download.01.org/0day-ci/archive/20260819/202608191709.BDqLd3DT-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 15.2.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260819/202608191709.BDqLd3DT-lkp@intel.com/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
| Fixes: e6ab504633e4 ("staging: gpib: Destage gpib")
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202608191709.BDqLd3DT-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/gpib/cb7210/cb7210.c:120:32: sparse: sparse: cast to restricted __le16
>> drivers/gpib/cb7210/cb7210.c:120:32: sparse: sparse: cast to restricted __le16
>> drivers/gpib/cb7210/cb7210.c:120:32: sparse: sparse: cast to restricted __le16
>> drivers/gpib/cb7210/cb7210.c:120:32: sparse: sparse: cast to restricted __le16
drivers/gpib/cb7210/cb7210.c:148:24: sparse: sparse: cast to restricted __le16
drivers/gpib/cb7210/cb7210.c:148:24: sparse: sparse: cast to restricted __le16
drivers/gpib/cb7210/cb7210.c:148:24: sparse: sparse: cast to restricted __le16
drivers/gpib/cb7210/cb7210.c:148:24: sparse: sparse: cast to restricted __le16
drivers/gpib/cb7210/cb7210.c: note: in included file (through arch/m68k/include/asm/io.h, include/linux/io.h, include/linux/irq.h, include/asm-generic/hardirq.h, ...):
arch/m68k/include/asm/io_mm.h:164:21: sparse: sparse: Using plain integer as NULL pointer
arch/m68k/include/asm/io_mm.h:164:21: sparse: sparse: Using plain integer as NULL pointer
arch/m68k/include/asm/io_mm.h:164:21: sparse: sparse: Using plain integer as NULL pointer
arch/m68k/include/asm/io_mm.h:164:21: sparse: sparse: Using plain integer as NULL pointer
arch/m68k/include/asm/io_mm.h:164:21: sparse: sparse: Using plain integer as NULL pointer
arch/m68k/include/asm/io_mm.h:164:21: sparse: sparse: Using plain integer as NULL pointer
arch/m68k/include/asm/io_mm.h:164:21: sparse: sparse: Using plain integer as NULL pointer
arch/m68k/include/asm/io_mm.h:164:21: sparse: sparse: Using plain integer as NULL pointer
arch/m68k/include/asm/io_mm.h:164:21: sparse: sparse: Using plain integer as NULL pointer
vim +120 drivers/gpib/cb7210/cb7210.c
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 78
e8d9c91abf5ad9 drivers/staging/gpib/cb7210/cb7210.c Michael Rubin 2025-04-09 79 static int fifo_read(struct gpib_board *board, struct cb7210_priv *cb_priv, u8 *buffer,
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 80 size_t length, int *end, size_t *bytes_read)
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 81 {
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 82 ssize_t retval = 0;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 83 struct nec7210_priv *nec_priv = &cb_priv->nec7210_priv;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 84 int hs_status;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 85 u16 word;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 86 unsigned long flags;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 87
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 88 *bytes_read = 0;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 89 if (cb_priv->fifo_iobase == 0) {
82e3508046f9bc drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2025-02-20 90 dev_err(board->gpib_dev, "fifo iobase is zero!\n");
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 91 return -EIO;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 92 }
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 93 *end = 0;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 94 if (length <= cb7210_fifo_size) {
82e3508046f9bc drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2025-02-20 95 dev_err(board->gpib_dev, " bug! fifo read length < fifo size\n");
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 96 return -EINVAL;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 97 }
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 98
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 99 input_fifo_enable(board, 1);
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 100
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 101 while (*bytes_read + cb7210_fifo_size < length) {
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 102 nec7210_set_reg_bits(nec_priv, IMR2, HR_DMAI, HR_DMAI);
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 103
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 104 if (wait_event_interruptible(board->wait,
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 105 (cb_priv->in_fifo_half_full &&
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 106 have_fifo_word(cb_priv)) ||
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 107 test_bit(RECEIVED_END_BN, &nec_priv->state) ||
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 108 test_bit(DEV_CLEAR_BN, &nec_priv->state) ||
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 109 test_bit(TIMO_NUM, &board->status))) {
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 110 retval = -ERESTARTSYS;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 111 nec7210_set_reg_bits(nec_priv, IMR2, HR_DMAI, 0);
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 112 break;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 113 }
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 114
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 115 spin_lock_irqsave(&board->spinlock, flags);
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 116
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 117 nec7210_set_reg_bits(nec_priv, IMR2, HR_DMAI, 0);
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 118
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 119 while (have_fifo_word(cb_priv)) {
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 @120 word = inw(cb_priv->fifo_iobase + DIR);
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 121 buffer[(*bytes_read)++] = word & 0xff;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 122 buffer[(*bytes_read)++] = (word >> 8) & 0xff;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 123 }
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 124
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 125 cb_priv->in_fifo_half_full = 0;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 126
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 127 hs_status = cb7210_read_byte(cb_priv, HS_STATUS);
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 128
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 129 spin_unlock_irqrestore(&board->spinlock, flags);
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 130
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 131 if (test_and_clear_bit(RECEIVED_END_BN, &nec_priv->state)) {
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 132 *end = 1;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 133 break;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 134 }
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 135 if (hs_status & HS_FIFO_FULL)
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 136 break;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 137 if (test_bit(TIMO_NUM, &board->status)) {
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 138 retval = -ETIMEDOUT;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 139 break;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 140 }
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 141 if (test_bit(DEV_CLEAR_BN, &nec_priv->state)) {
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 142 retval = -EINTR;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 143 break;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 144 }
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 145 }
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 146 hs_status = cb7210_read_byte(cb_priv, HS_STATUS);
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 147 if (hs_status & HS_RX_LSB_NOT_EMPTY) {
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 148 word = inw(cb_priv->fifo_iobase + DIR);
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 149 buffer[(*bytes_read)++] = word & 0xff;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 150 }
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 151
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 152 input_fifo_enable(board, 0);
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 153
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 154 if (wait_event_interruptible(board->wait,
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 155 test_bit(READ_READY_BN, &nec_priv->state) ||
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 156 test_bit(RECEIVED_END_BN, &nec_priv->state) ||
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 157 test_bit(DEV_CLEAR_BN, &nec_priv->state) ||
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 158 test_bit(TIMO_NUM, &board->status))) {
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 159 retval = -ERESTARTSYS;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 160 }
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 161 if (test_bit(TIMO_NUM, &board->status))
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 162 retval = -ETIMEDOUT;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 163 if (test_bit(DEV_CLEAR_BN, &nec_priv->state))
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 164 retval = -EINTR;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 165 if (test_bit(READ_READY_BN, &nec_priv->state)) {
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 166 nec7210_set_handshake_mode(board, nec_priv, HR_HLDA);
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 167 buffer[(*bytes_read)++] = nec7210_read_data_in(board, nec_priv, end);
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 168 }
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 169
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 170 return retval;
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 171 }
e9dc69956d4d9b drivers/staging/gpib/cb7210/cb7210.c Dave Penkler 2024-09-18 172
:::::: The code at line 120 was first introduced by commit
:::::: e9dc69956d4d9bf4a81d35995ce9229ff5e4cad5 staging: gpib: Add Computer Boards GPIB driver
:::::: TO: Dave Penkler <dpenkler@gmail.com>
:::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2026-08-19 9:39 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-19 9:38 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2026-05-26 18:47 drivers/gpib/cb7210/cb7210.c:120:32: sparse: sparse: cast to restricted __le16 kernel test robot
2026-04-20 1:44 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=202608191709.BDqLd3DT-lkp@intel.com \
--to=lkp@intel.com \
--cc=dpenkler@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox