tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 9fa88c5d3f5eae3e68ef20d226c3f13e21490668 commit: 05933aac7b11911955de307a329dc2a7a14b7bd0 ia64: remove now unused machvec indirections date: 10 months ago config: ia64-randconfig-s031-20200607 (attached as .config) compiler: ia64-linux-gcc (GCC) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.1-247-gcadbd124-dirty git checkout 05933aac7b11911955de307a329dc2a7a14b7bd0 # save the attached .config to linux build tree make W=1 C=1 ARCH=ia64 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <l...@intel.com> sparse warnings: (new ones prefixed by >>) ./arch/ia64/include/generated/uapi/asm/unistd_64.h:348:39: sparse: sparse: no newline at end of file drivers/block/umem.c:267:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le64 [usertype] sem_control_bits @@ got restricted __le32 [usertype] control_bits @@ drivers/block/umem.c:267:32: sparse: expected restricted __le64 [usertype] sem_control_bits drivers/block/umem.c:267:32: sparse: got restricted __le32 [usertype] control_bits drivers/block/umem.c:287:16: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] value @@ got restricted __le32 [usertype] @@ >> drivers/block/umem.c:287:16: sparse: expected unsigned int [usertype] >> value drivers/block/umem.c:287:16: sparse: got restricted __le32 [usertype] drivers/block/umem.c:291:16: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] value @@ got restricted __le32 [usertype] @@ drivers/block/umem.c:291:16: sparse: expected unsigned int [usertype] value drivers/block/umem.c:291:16: sparse: got restricted __le32 [usertype] drivers/block/umem.c:295:16: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] value @@ got restricted __le32 [usertype] @@ drivers/block/umem.c:295:16: sparse: expected unsigned int [usertype] value drivers/block/umem.c:295:16: sparse: got restricted __le32 [usertype] drivers/block/umem.c:398:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le64 [usertype] sem_control_bits @@ got restricted __le32 [usertype] control_bits @@ drivers/block/umem.c:398:32: sparse: expected restricted __le64 [usertype] sem_control_bits drivers/block/umem.c:398:32: sparse: got restricted __le32 [usertype] control_bits drivers/block/umem.c:429:31: sparse: sparse: cast to restricted __le32 drivers/block/umem.c:429:31: sparse: sparse: cast from restricted __le64 drivers/block/umem.c:457:33: sparse: sparse: cast to restricted __le32 drivers/block/umem.c:457:33: sparse: sparse: cast from restricted __le64 drivers/block/umem.c:461:28: sparse: sparse: cast to restricted __le32 drivers/block/umem.c:461:28: sparse: sparse: cast from restricted __le64 drivers/block/umem.c:550:22: sparse: sparse: cast to restricted __le32 drivers/block/umem.c:559:24: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] value @@ got restricted __le32 [usertype] @@ drivers/block/umem.c:559:24: sparse: expected unsigned int [usertype] value drivers/block/umem.c:559:24: sparse: got restricted __le32 [usertype] drivers/block/umem.c:573:29: sparse: sparse: cast to restricted __le32 drivers/block/umem.c:575:29: sparse: sparse: cast to restricted __le32 drivers/block/umem.c:577:29: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] value @@ got restricted __le32 [usertype] @@ include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype] include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] value @@ got restricted __le32 [usertype] @@ include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype] include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] value @@ got restricted __le32 [usertype] @@ include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype] include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] value @@ got restricted __le32 [usertype] @@ include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype] include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] value @@ got restricted __le32 [usertype] @@ include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype] include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] value @@ got restricted __le32 [usertype] @@ include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype] include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] value @@ got restricted __le32 [usertype] @@ include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype] include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] value @@ got restricted __le32 [usertype] @@ include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype] include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] value @@ got restricted __le32 [usertype] @@ include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype] include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] value @@ got restricted __le32 [usertype] @@ include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype] include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] value @@ got restricted __le32 [usertype] @@ include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype] include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] value @@ got restricted __le32 [usertype] @@ include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype] include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32 vim +287 drivers/block/umem.c ^1da177e4c3f41 Linus Torvalds 2005-04-16 228 ^1da177e4c3f41 Linus Torvalds 2005-04-16 229 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 230 * Theory of request handling ^1da177e4c3f41 Linus Torvalds 2005-04-16 231 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 232 * Each bio is assigned to one mm_dma_desc - which may not be enough FIXME ^1da177e4c3f41 Linus Torvalds 2005-04-16 233 * We have two pages of mm_dma_desc, holding about 64 descriptors ^1da177e4c3f41 Linus Torvalds 2005-04-16 234 * each. These are allocated at init time. ^1da177e4c3f41 Linus Torvalds 2005-04-16 235 * One page is "Ready" and is either full, or can have request added. ^1da177e4c3f41 Linus Torvalds 2005-04-16 236 * The other page might be "Active", which DMA is happening on it. ^1da177e4c3f41 Linus Torvalds 2005-04-16 237 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 238 * Whenever IO on the active page completes, the Ready page is activated ^1da177e4c3f41 Linus Torvalds 2005-04-16 239 * and the ex-Active page is clean out and made Ready. 7eaceaccab5f40 Jens Axboe 2011-03-10 240 * Otherwise the Ready page is only activated when it becomes full. ^1da177e4c3f41 Linus Torvalds 2005-04-16 241 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 242 * If a request arrives while both pages a full, it is queued, and b_rdev is ^1da177e4c3f41 Linus Torvalds 2005-04-16 243 * overloaded to record whether it was a read or a write. ^1da177e4c3f41 Linus Torvalds 2005-04-16 244 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 245 * The interrupt handler only polls the device to clear the interrupt. ^1da177e4c3f41 Linus Torvalds 2005-04-16 246 * The processing of the result is done in a tasklet. ^1da177e4c3f41 Linus Torvalds 2005-04-16 247 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 248 ^1da177e4c3f41 Linus Torvalds 2005-04-16 249 static void mm_start_io(struct cardinfo *card) ^1da177e4c3f41 Linus Torvalds 2005-04-16 250 { ^1da177e4c3f41 Linus Torvalds 2005-04-16 251 /* we have the lock, we know there is ^1da177e4c3f41 Linus Torvalds 2005-04-16 252 * no IO active, and we know that card->Active ^1da177e4c3f41 Linus Torvalds 2005-04-16 253 * is set ^1da177e4c3f41 Linus Torvalds 2005-04-16 254 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 255 struct mm_dma_desc *desc; ^1da177e4c3f41 Linus Torvalds 2005-04-16 256 struct mm_page *page; ^1da177e4c3f41 Linus Torvalds 2005-04-16 257 int offset; ^1da177e4c3f41 Linus Torvalds 2005-04-16 258 ^1da177e4c3f41 Linus Torvalds 2005-04-16 259 /* make the last descriptor end the chain */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 260 page = &card->mm_pages[card->Active]; 458cf5e9b666c2 Randy Dunlap 2007-12-17 261 pr_debug("start_io: %d %d->%d\n", 458cf5e9b666c2 Randy Dunlap 2007-12-17 262 card->Active, page->headcnt, page->cnt - 1); ^1da177e4c3f41 Linus Torvalds 2005-04-16 263 desc = &page->desc[page->cnt-1]; ^1da177e4c3f41 Linus Torvalds 2005-04-16 264 ^1da177e4c3f41 Linus Torvalds 2005-04-16 265 desc->control_bits |= cpu_to_le32(DMASCR_CHAIN_COMP_EN); ^1da177e4c3f41 Linus Torvalds 2005-04-16 266 desc->control_bits &= ~cpu_to_le32(DMASCR_CHAIN_EN); ^1da177e4c3f41 Linus Torvalds 2005-04-16 267 desc->sem_control_bits = desc->control_bits; ^1da177e4c3f41 Linus Torvalds 2005-04-16 268 ^1da177e4c3f41 Linus Torvalds 2005-04-16 269 ^1da177e4c3f41 Linus Torvalds 2005-04-16 270 if (debug & DEBUG_LED_ON_TRANSFER) ^1da177e4c3f41 Linus Torvalds 2005-04-16 271 set_led(card, LED_REMOVE, LED_ON); ^1da177e4c3f41 Linus Torvalds 2005-04-16 272 ^1da177e4c3f41 Linus Torvalds 2005-04-16 273 desc = &page->desc[page->headcnt]; ^1da177e4c3f41 Linus Torvalds 2005-04-16 274 writel(0, card->csr_remap + DMA_PCI_ADDR); ^1da177e4c3f41 Linus Torvalds 2005-04-16 275 writel(0, card->csr_remap + DMA_PCI_ADDR + 4); ^1da177e4c3f41 Linus Torvalds 2005-04-16 276 ^1da177e4c3f41 Linus Torvalds 2005-04-16 277 writel(0, card->csr_remap + DMA_LOCAL_ADDR); ^1da177e4c3f41 Linus Torvalds 2005-04-16 278 writel(0, card->csr_remap + DMA_LOCAL_ADDR + 4); ^1da177e4c3f41 Linus Torvalds 2005-04-16 279 ^1da177e4c3f41 Linus Torvalds 2005-04-16 280 writel(0, card->csr_remap + DMA_TRANSFER_SIZE); ^1da177e4c3f41 Linus Torvalds 2005-04-16 281 writel(0, card->csr_remap + DMA_TRANSFER_SIZE + 4); ^1da177e4c3f41 Linus Torvalds 2005-04-16 282 ^1da177e4c3f41 Linus Torvalds 2005-04-16 283 writel(0, card->csr_remap + DMA_SEMAPHORE_ADDR); ^1da177e4c3f41 Linus Torvalds 2005-04-16 284 writel(0, card->csr_remap + DMA_SEMAPHORE_ADDR + 4); ^1da177e4c3f41 Linus Torvalds 2005-04-16 285 ^1da177e4c3f41 Linus Torvalds 2005-04-16 286 offset = ((char *)desc) - ((char *)page->desc); ^1da177e4c3f41 Linus Torvalds 2005-04-16 @287 writel(cpu_to_le32((page->page_dma+offset) & 0xffffffff), ^1da177e4c3f41 Linus Torvalds 2005-04-16 288 card->csr_remap + DMA_DESCRIPTOR_ADDR); ^1da177e4c3f41 Linus Torvalds 2005-04-16 289 /* Force the value to u64 before shifting otherwise >> 32 is undefined C ^1da177e4c3f41 Linus Torvalds 2005-04-16 290 * and on some ports will do nothing ! */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 291 writel(cpu_to_le32(((u64)page->page_dma)>>32), ^1da177e4c3f41 Linus Torvalds 2005-04-16 292 card->csr_remap + DMA_DESCRIPTOR_ADDR + 4); ^1da177e4c3f41 Linus Torvalds 2005-04-16 293 ^1da177e4c3f41 Linus Torvalds 2005-04-16 294 /* Go, go, go */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 295 writel(cpu_to_le32(DMASCR_GO | DMASCR_CHAIN_EN | pci_cmds), ^1da177e4c3f41 Linus Torvalds 2005-04-16 296 card->csr_remap + DMA_STATUS_CTRL); ^1da177e4c3f41 Linus Torvalds 2005-04-16 297 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 298 :::::: The code at line 287 was first introduced by commit :::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2 :::::: TO: Linus Torvalds <torva...@ppc970.osdl.org> :::::: CC: Linus Torvalds <torva...@ppc970.osdl.org> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
.config.gz
Description: application/gzip