[xlnx:xlnx_rebase_v5.4 1116/1697] drivers/gpio/gpio-xilinx.c:377:12: warning: conversion from 'long unsigned int' to 'unsigned int' changes value from '18446744071562067967' to '2147483647'

kernel test robot lkp at intel.com
Wed Jan 13 00:13:50 EST 2021


tree:   https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.4
head:   629150468791671b5fde21363e643e87c5815b17
commit: 256f37f6020654ff3d8044852f75542882301a26 [1116/1697] gpio: xilinx: Add irq support to the driver
config: x86_64-randconfig-s022-20210113 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-208-g46a52ca4-dirty
        # https://github.com/Xilinx/linux-xlnx/commit/256f37f6020654ff3d8044852f75542882301a26
        git remote add xlnx https://github.com/Xilinx/linux-xlnx
        git fetch --no-tags xlnx xlnx_rebase_v5.4
        git checkout 256f37f6020654ff3d8044852f75542882301a26
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>

All warnings (new ones prefixed by >>):

   drivers/gpio/gpio-xilinx.c: In function 'xgpio_irq_mask':
>> drivers/gpio/gpio-xilinx.c:377:12: warning: conversion from 'long unsigned int' to 'unsigned int' changes value from '18446744071562067967' to '2147483647' [-Woverflow]
     377 |            ~XGPIO_GIER_IE);
   drivers/gpio/gpio-xilinx.c:39:45: note: in definition of macro 'xgpio_writereg'
      39 | # define xgpio_writereg(offset, val) writel(val, offset)
         |                                             ^~~
   drivers/gpio/gpio-xilinx.c: In function 'xgpio_irqhandler':
   drivers/gpio/gpio-xilinx.c:472:14: warning: variable 'status' set but not used [-Wunused-but-set-variable]
     472 |  u32 offset, status, channel = 1;
         |              ^~~~~~


vim +377 drivers/gpio/gpio-xilinx.c

   342	
   343	/**
   344	 * xgpiops_irq_mask - Write the specified signal of the GPIO device.
   345	 * @irq_data: per irq and chip data passed down to chip functions
   346	 */
   347	static void xgpio_irq_mask(struct irq_data *irq_data)
   348	{
   349		unsigned long flags;
   350		struct xgpio_instance *chip = irq_data_get_irq_chip_data(irq_data);
   351		u32 offset = irq_data->irq - chip->irq_base;
   352		u32 temp;
   353		s32 val;
   354		int index = xgpio_index(chip, 0);
   355	
   356		pr_debug("%s: Disable %d irq, irq_enable_mask 0x%x\n",
   357			 __func__, offset, chip->irq_enable);
   358	
   359		spin_lock_irqsave(&chip->gpio_lock[index], flags);
   360	
   361		chip->irq_enable &= ~BIT(offset);
   362	
   363		if (!chip->irq_enable) {
   364			/* Enable per channel interrupt */
   365			temp = xgpio_readreg(chip->regs + XGPIO_IPIER_OFFSET);
   366			val = offset - chip->gpio_width[0] + 1;
   367			if (val > 0)
   368				temp &= 1;
   369			else
   370				temp &= 2;
   371			xgpio_writereg(chip->regs + XGPIO_IPIER_OFFSET, temp);
   372	
   373			/* Disable global interrupt if channel interrupts are unused */
   374			temp = xgpio_readreg(chip->regs + XGPIO_IPIER_OFFSET);
   375			if (!temp)
   376				xgpio_writereg(chip->regs + XGPIO_GIER_OFFSET,
 > 377					       ~XGPIO_GIER_IE);
   378		}
   379		spin_unlock_irqrestore(&chip->gpio_lock[index], flags);
   380	}
   381	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 32746 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20210113/b03b910d/attachment-0001.gz>


More information about the linux-arm-kernel mailing list