From 67e1561e198dee9ed35577371a0285352374cc9d Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 31 Aug 2018 13:23:30 -0700 Subject: [PATCH] 4.9-stable patches added patches: sparc-kernel-pcic-silence-gcc-7.x-warning-in-pcibios_fixup_bus.patch --- queue-4.9/series | 1 + ...gcc-7.x-warning-in-pcibios_fixup_bus.patch | 56 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 queue-4.9/sparc-kernel-pcic-silence-gcc-7.x-warning-in-pcibios_fixup_bus.patch diff --git a/queue-4.9/series b/queue-4.9/series index f8bf7b46c10..3f1ed003d1d 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -63,3 +63,4 @@ ext4-reset-error-code-in-ext4_find_entry-in-fallback.patch staging-android-ion-fix-ion_ioc_-map-share-use-after-free.patch kvm-arm-arm64-skip-updating-pte-entry-if-no-change.patch kvm-arm-arm64-skip-updating-pmd-entry-if-no-change.patch +sparc-kernel-pcic-silence-gcc-7.x-warning-in-pcibios_fixup_bus.patch diff --git a/queue-4.9/sparc-kernel-pcic-silence-gcc-7.x-warning-in-pcibios_fixup_bus.patch b/queue-4.9/sparc-kernel-pcic-silence-gcc-7.x-warning-in-pcibios_fixup_bus.patch new file mode 100644 index 00000000000..fbebede7013 --- /dev/null +++ b/queue-4.9/sparc-kernel-pcic-silence-gcc-7.x-warning-in-pcibios_fixup_bus.patch @@ -0,0 +1,56 @@ +From 2dc77533f1e495788d73ffa4bee4323b2646d2bb Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sun, 13 Aug 2017 23:14:58 +0200 +Subject: sparc: kernel/pcic: silence gcc 7.x warning in pcibios_fixup_bus() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Thomas Petazzoni + +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 +Signed-off-by: David S. Miller +Cc: Guenter Roeck +Signed-off-by: Greg Kroah-Hartman + +--- + arch/sparc/kernel/pcic.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/sparc/kernel/pcic.c ++++ b/arch/sparc/kernel/pcic.c +@@ -602,7 +602,7 @@ void pcibios_fixup_bus(struct pci_bus *b + { + struct pci_dev *dev; + int i, has_io, has_mem; +- unsigned int cmd; ++ unsigned int cmd = 0; + struct linux_pcic *pcic; + /* struct linux_pbm_info* pbm = &pcic->pbm; */ + int node; -- 2.47.3