sparc: kernel/pcic: silence gcc 7.x warning in pcibios_fixup_bus()
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 13 Aug 2017 21:14:58 +0000 (23:14 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Sep 2018 07:20:07 +0000 (09:20 +0200)
commitcd4fdbb85e7fa74ea88f2db949ceb65f0aa8295b
treeb469ecaaa4473e822fe6cefcf7adabdb0429b7fe
parent7fb227e97df9793c9d7b32962077bb3031cdb85c
sparc: kernel/pcic: silence gcc 7.x warning in pcibios_fixup_bus()

commit 2dc77533f1e495788d73ffa4bee4323b2646d2bb upstream.

When building the kernel for Sparc using gcc 7.x, the build fails
with:

arch/sparc/kernel/pcic.c: In function ‘pcibios_fixup_bus’:
arch/sparc/kernel/pcic.c:647:8: error: ‘cmd’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
    cmd |= PCI_COMMAND_IO;
        ^~

The simplified code looks like this:

unsigned int cmd;
[...]
pcic_read_config(dev->bus, dev->devfn, PCI_COMMAND, 2, &cmd);
[...]
cmd |= PCI_COMMAND_IO;

I.e, the code assumes that pcic_read_config() will always initialize
cmd. But it's not the case. Looking at pcic_read_config(), if
bus->number is != 0 or if the size is not one of 1, 2 or 4, *val will
not be initialized.

As a simple fix, we initialize cmd to zero at the beginning of
pcibios_fixup_bus.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/sparc/kernel/pcic.c