Skip to content
  • Thomas Petazzoni's avatar
    sparc: kernel/pcic: silence gcc 7.x warning in pcibios_fixup_bus() · cd4fdbb8
    Thomas Petazzoni authored
    commit 2dc77533
    
     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: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    cd4fdbb8