linux: update to v4.2.4-openpower1
- Rebased on upstream stable release v4.2.4
- Upstream commit "8c24d6d7b09d usb: xhci: stop everything on the first
call to xhci_stop" means that our patch "xhci: do not halt the
secondary HCD" is no longer required
Signed-off-by: Joel Stanley <joel@jms.id.au>
diff --git a/openpower/linux/linux-0005-powerpc-kexec-Reset-HILE-before-kexec_sequence.patch b/openpower/linux/linux-0005-powerpc-kexec-Reset-HILE-before-kexec_sequence.patch
new file mode 100644
index 0000000..ac3f985
--- /dev/null
+++ b/openpower/linux/linux-0005-powerpc-kexec-Reset-HILE-before-kexec_sequence.patch
@@ -0,0 +1,40 @@
+From 051c24b3c8b32db05e575e29c3a9d66c924e4bfc Mon Sep 17 00:00:00 2001
+From: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
+Date: Wed, 22 Jul 2015 11:09:15 +1000
+Subject: [PATCH 05/17] powerpc/kexec: Reset HILE before kexec_sequence
+
+On powernv secondary cpus are returned to OPAL, and will then enter
+the target kernel in big-endian. However if it is set the HILE bit
+will persist, causing the first exception in the target kernel to be
+delivered in litte-endian regardless of the current endianess.
+
+If running on top of OPAL make sure the HILE bit is reset once we've
+finished waiting for all of the secondaries to be returned to OPAL.
+
+Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ arch/powerpc/platforms/powernv/setup.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/arch/powerpc/platforms/powernv/setup.c b/arch/powerpc/platforms/powernv/setup.c
+index 53737e0..59076db 100644
+--- a/arch/powerpc/platforms/powernv/setup.c
++++ b/arch/powerpc/platforms/powernv/setup.c
+@@ -243,6 +243,13 @@ static void pnv_kexec_cpu_down(int crash_shutdown, int secondary)
+ } else {
+ /* Primary waits for the secondaries to have reached OPAL */
+ pnv_kexec_wait_secondaries_down();
++
++ /*
++ * We might be running as little-endian - now that interrupts
++ * are disabled, reset the HILE bit to big-endian so we don't
++ * take interrupts in the wrong endian later
++ */
++ opal_reinit_cpus(OPAL_REINIT_CPUS_HILE_BE);
+ }
+ }
+ #endif /* CONFIG_KEXEC */
+--
+2.5.0
+