[arnd-asm-generic:master 14/20] lib/iomem_copy.c:27:26: sparse: sparse: cast removes address space '__iomem' of expression

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git master
head:   c0dc92144ba181cf7ba366a87909bbaa93d5b713
commit: b660d0a2acb9053d627befbb259a397d26aa9582 [14/20] New implementation for IO memcpy and IO memset
config: nios2-randconfig-r131-20241029 (https://download.01.org/0day-ci/archive/20241030/202410300955.s4EEXG5n-lkp@xxxxxxxxx/config)
compiler: nios2-linux-gcc (GCC) 14.1.0
reproduce: (https://download.01.org/0day-ci/archive/20241030/202410300955.s4EEXG5n-lkp@xxxxxxxxx/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
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410300955.s4EEXG5n-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> lib/iomem_copy.c:27:26: sparse: sparse: cast removes address space '__iomem' of expression
>> lib/iomem_copy.c:27:26: sparse: sparse: cast removes address space '__iomem' of expression
   lib/iomem_copy.c:64:26: sparse: sparse: cast removes address space '__iomem' of expression
   lib/iomem_copy.c:64:26: sparse: sparse: cast removes address space '__iomem' of expression
   lib/iomem_copy.c:106:26: sparse: sparse: cast removes address space '__iomem' of expression
   lib/iomem_copy.c:106:26: sparse: sparse: cast removes address space '__iomem' of expression

vim +/__iomem +27 lib/iomem_copy.c

    11	
    12	#ifndef memset_io
    13	/**
    14	 * memset_io		Set a range of I/O memory to a constant value
    15	 * @addr:		The beginning of the I/O-memory range to set
    16	 * @val:		The value to set the memory to
    17	 * @count:		The number of bytes to set
    18	 *
    19	 * Set a range of I/O memory to a given value.
    20	 */
    21	void memset_io(volatile void __iomem *addr, int val, size_t count)
    22	{
    23		long qc = (u8)val;
    24	
    25		qc *= ~0UL / 0xff;
    26	
  > 27		while (count && !IS_ALIGNED((long)addr, sizeof(long))) {
    28			__raw_writeb(val, addr);
    29			addr++;
    30			count--;
    31		}
    32	
    33		while (count >= sizeof(long)) {
    34	#ifdef CONFIG_64BIT
    35			__raw_writeq(qc, addr);
    36	#else
    37			__raw_writel(qc, addr);
    38	#endif
    39	
    40			addr += sizeof(long);
    41			count -= sizeof(long);
    42		}
    43	
    44		while (count) {
    45			__raw_writeb(val, addr);
    46			addr++;
    47			count--;
    48		}
    49	}
    50	EXPORT_SYMBOL(memset_io);
    51	#endif
    52	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki




[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux