Thread (3 messages) 3 messages, 2 authors, 2016-02-26

Re: [PATCH] serial: ifx6x60: avoid uninitialized variable use

From: Arnd Bergmann <arnd@arndb.de>
Date: 2016-02-26 13:56:35
Also in: linux-arm-kernel, lkml

On Friday 26 February 2016 00:06:51 One Thousand Gnomes wrote:
On Thu, 25 Feb 2016 21:47:57 +0100
Arnd Bergmann [off-list ref] wrote:
quoted
gcc warns about a potential use of an uninitialized variable in this driver:

drivers/tty/serial/ifx6x60.c: In function 'ifx_spi_complete':
drivers/tty/serial/ifx6x60.c:713:6: warning: 'more' may be used uninitialized in this function [-Wmaybe-uninitialized]
   if (more || ifx_dev->spi_more || queue_length > 0 ||

Unlike a lot of other such warnings, this one is correct and describes
an actual problem in the handling of the "IFX_SPI_HEADER_F" result code.

This appears to be a result from a restructuring of the driver that
dates back to before it was merged in the kernel, so it's impossible
to know where it went wrong. I also don't know what that result code
means, so I have no idea if setting 'more' to zero is the correct
solution, but at least it makes the behavior reproducible rather than
depending on whatever happens to be on the kernel stack.
Would it not be far simpler just to set more = 0 at the top of
ifx_spi_complete ?
That would be simpler, but I generally don't like to do that, because it
makes it less obvious where the value is coming from.

In this case, it's still not obvious, as I was just guessing what the
original intention might have been.

	Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help