linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* drivers/block/umem.c:287:16: sparse: expected unsigned int value
@ 2020-06-06 18:52 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-06-06 18:52 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: kbuild-all, linux-kernel, Tony Luck

[-- Attachment #1: Type: text/plain, Size: 14624 bytes --]

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 <lkp@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 <torvalds@ppc970.osdl.org>
:::::: CC: Linus Torvalds <torvalds@ppc970.osdl.org>

---
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: 28432 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-06-06 18:56 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-06 18:52 drivers/block/umem.c:287:16: sparse: expected unsigned int value kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).