From: Greg Kroah-Hartman Date: Fri, 1 Mar 2019 06:59:10 +0000 (+0100) Subject: 4.9-stable patches X-Git-Tag: v4.9.162~17 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d10cedd8f2a57c80cbd701c724165fcc8342b224;p=thirdparty%2Fkernel%2Fstable-queue.git 4.9-stable patches added patches: powerpc-always-initialize-input-array-when-calling-epapr_hypercall.patch --- diff --git a/queue-4.9/powerpc-always-initialize-input-array-when-calling-epapr_hypercall.patch b/queue-4.9/powerpc-always-initialize-input-array-when-calling-epapr_hypercall.patch new file mode 100644 index 00000000000..e9f66d53cc8 --- /dev/null +++ b/queue-4.9/powerpc-always-initialize-input-array-when-calling-epapr_hypercall.patch @@ -0,0 +1,86 @@ +From 186b8f1587c79c2fa04bfa392fdf084443e398c1 Mon Sep 17 00:00:00 2001 +From: Seth Forshee +Date: Thu, 28 Sep 2017 09:33:39 -0400 +Subject: powerpc: Always initialize input array when calling epapr_hypercall() + +From: Seth Forshee + +commit 186b8f1587c79c2fa04bfa392fdf084443e398c1 upstream. + +Several callers to epapr_hypercall() pass an uninitialized stack +allocated array for the input arguments, presumably because they +have no input arguments. However this can produce errors like +this one + + arch/powerpc/include/asm/epapr_hcalls.h:470:42: error: 'in' may be used uninitialized in this function [-Werror=maybe-uninitialized] + unsigned long register r3 asm("r3") = in[0]; + ~~^~~ + +Fix callers to this function to always zero-initialize the input +arguments array to prevent this. + +Signed-off-by: Seth Forshee +Signed-off-by: Michael Ellerman +Cc: "A. Wilcox" +Signed-off-by: Greg Kroah-Hartman + +--- + arch/powerpc/include/asm/epapr_hcalls.h | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +--- a/arch/powerpc/include/asm/epapr_hcalls.h ++++ b/arch/powerpc/include/asm/epapr_hcalls.h +@@ -508,7 +508,7 @@ static unsigned long epapr_hypercall(uns + + static inline long epapr_hypercall0_1(unsigned int nr, unsigned long *r2) + { +- unsigned long in[8]; ++ unsigned long in[8] = {0}; + unsigned long out[8]; + unsigned long r; + +@@ -520,7 +520,7 @@ static inline long epapr_hypercall0_1(un + + static inline long epapr_hypercall0(unsigned int nr) + { +- unsigned long in[8]; ++ unsigned long in[8] = {0}; + unsigned long out[8]; + + return epapr_hypercall(in, out, nr); +@@ -528,7 +528,7 @@ static inline long epapr_hypercall0(unsi + + static inline long epapr_hypercall1(unsigned int nr, unsigned long p1) + { +- unsigned long in[8]; ++ unsigned long in[8] = {0}; + unsigned long out[8]; + + in[0] = p1; +@@ -538,7 +538,7 @@ static inline long epapr_hypercall1(unsi + static inline long epapr_hypercall2(unsigned int nr, unsigned long p1, + unsigned long p2) + { +- unsigned long in[8]; ++ unsigned long in[8] = {0}; + unsigned long out[8]; + + in[0] = p1; +@@ -549,7 +549,7 @@ static inline long epapr_hypercall2(unsi + static inline long epapr_hypercall3(unsigned int nr, unsigned long p1, + unsigned long p2, unsigned long p3) + { +- unsigned long in[8]; ++ unsigned long in[8] = {0}; + unsigned long out[8]; + + in[0] = p1; +@@ -562,7 +562,7 @@ static inline long epapr_hypercall4(unsi + unsigned long p2, unsigned long p3, + unsigned long p4) + { +- unsigned long in[8]; ++ unsigned long in[8] = {0}; + unsigned long out[8]; + + in[0] = p1; diff --git a/queue-4.9/series b/queue-4.9/series index 833c8f07526..144a5f31b10 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -27,3 +27,4 @@ mac80211-add-attribute-aligned-2-to-struct-action.patch cfg80211-extend-range-deviation-for-dmg.patch svm-fix-avic-incomplete-ipi-emulation.patch kvm-nsvm-clear-events-pending-from-svm_complete_inte.patch +powerpc-always-initialize-input-array-when-calling-epapr_hypercall.patch