Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1332138

Re: [PATCH] tty/serial: digicolor: Fix bad usage of IS_ERR_VALUE

From Guenter Roeck <linux@roeck-us.net>
Newsgroups linux.kernel
Subject Re: [PATCH] tty/serial: digicolor: Fix bad usage of IS_ERR_VALUE
Date 2016-02-11 16:20 +0100
Message-ID <r11ce-26P-17@gated-at.bofh.it> (permalink)
References <r0i5s-5IR-21@gated-at.bofh.it> <r0ioQ-5QL-85@gated-at.bofh.it> <r0sRc-4oH-9@gated-at.bofh.it> <r0WYW-7vk-17@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Thu, Feb 11, 2016 at 10:46:50AM +0000, Russell King - ARM Linux wrote:
> On Tue, Feb 09, 2016 at 06:37:46PM -0800, Guenter Roeck wrote:
> > On 02/09/2016 07:26 AM, Arnd Bergmann wrote:
> > >On Tuesday 09 February 2016 07:08:59 Guenter Roeck wrote:
> > >>IS_ERR_VALUE() assumes that its parameter is an unsigned long.
> > >>It can not be used to check if an unsigned int reflects an error.
> > >>Doing so can result in the following build warning.
> > >>
> > >>drivers/tty/serial/digicolor-usart.c: In function ‘digicolor_uart_probe’:
> > >>include/linux/err.h:21:38: warning:
> > >>         comparison is always false due to limited range of data type
> > >>drivers/tty/serial/digicolor-usart.c:485:6: note:
> > >>         in expansion of macro ‘IS_ERR_VALUE’
> > >>
> > >>If that warning is seen, an error return from platform_get_irq() is missed.
> > >>
> > >>
> > >
> > >The patch looks correct to me, but what compiler version and which kernel
> > >tree is it that triggered the warning?
> > >
> > >Andrzej Hajda just modified the definition of IS_ERR_VALUE(), and the
> > >changes are still under discussion, but I don't see that warning with
> > >any of the versions.
> > >
> > I see it with gcc 5.1 and 5.2 (and W=1). I did not see / notice Andrzej's patch.
> > 
> > I agree that fixing the problem in IS_ERR_VALUE() is preferrable.
> 
> I disagree.  What happens if (eg) you decide to do this:
> 
> 	u8 irq;
> 
> 	irq = platform_get_irq(...);
> 	if (IS_ERR_VALUE(irq))
> 		...
> 
> is that the fault of IS_ERR_VALUE() that it will never be true?  No, it's
> a programming error in the caller, because the caller is using the wrong
> type here - in fact, you can't do anything in IS_ERR_VALUE() to correct
> that.
> 
Yes, I think we all reached that conclusion by now.

Thanks,
Guenter

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH] tty/serial: digicolor: Fix bad usage of IS_ERR_VALUE Guenter Roeck <linux@roeck-us.net> - 2016-02-09 16:10 +0100
  Re: [PATCH] tty/serial: digicolor: Fix bad usage of IS_ERR_VALUE Arnd Bergmann <arnd@arndb.de> - 2016-02-09 16:30 +0100
    Re: [PATCH] tty/serial: digicolor: Fix bad usage of IS_ERR_VALUE Guenter Roeck <linux@roeck-us.net> - 2016-02-10 03:40 +0100
      Re: [PATCH] tty/serial: digicolor: Fix bad usage of IS_ERR_VALUE Arnd Bergmann <arnd@arndb.de> - 2016-02-10 16:30 +0100
        Re: [PATCH] tty/serial: digicolor: Fix bad usage of IS_ERR_VALUE Guenter Roeck <linux@roeck-us.net> - 2016-02-11 04:40 +0100
          Re: [PATCH] tty/serial: digicolor: Fix bad usage of IS_ERR_VALUE Andrzej Hajda <a.hajda@samsung.com> - 2016-02-11 07:50 +0100
            Re: [PATCH] tty/serial: digicolor: Fix bad usage of IS_ERR_VALUE Guenter Roeck <linux@roeck-us.net> - 2016-02-11 16:40 +0100
              Re: [PATCH] tty/serial: digicolor: Fix bad usage of IS_ERR_VALUE Andrzej Hajda <a.hajda@samsung.com> - 2016-02-12 07:50 +0100
      Re: [PATCH] tty/serial: digicolor: Fix bad usage of IS_ERR_VALUE Russell King - ARM Linux <linux@arm.linux.org.uk> - 2016-02-11 11:50 +0100
        Re: [PATCH] tty/serial: digicolor: Fix bad usage of IS_ERR_VALUE Guenter Roeck <linux@roeck-us.net> - 2016-02-11 16:20 +0100
  Re: [PATCH] tty/serial: digicolor: Fix bad usage of IS_ERR_VALUE Baruch Siach <baruch@tkos.co.il> - 2016-02-11 08:00 +0100

csiph-web