diff --git a/openpower/linux/0001-xhci-Reset-controller-on-xhci-shutdown.patch b/openpower/linux/0001-xhci-Reset-controller-on-xhci-shutdown.patch
index 64fc38b..8f89a95 100644
--- a/openpower/linux/0001-xhci-Reset-controller-on-xhci-shutdown.patch
+++ b/openpower/linux/0001-xhci-Reset-controller-on-xhci-shutdown.patch
@@ -1,7 +1,7 @@
 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Brian King <brking@linux.vnet.ibm.com>
 Date: Wed, 25 Oct 2017 10:42:59 +1100
-Subject: [PATCH 1/4] xhci: Reset controller on xhci shutdown
+Subject: [PATCH 1/3] xhci: Reset controller on xhci shutdown
 
 Fixes kexec boot. Without a hard reset, some USB chips will fail to
 initialize in a kexec booted kernel.
diff --git a/openpower/linux/0003-powerpc-64s-Add-workaround-for-P9-vector-CI-load-iss.patch b/openpower/linux/0002-powerpc-64s-Add-workaround-for-P9-vector-CI-load-iss.patch
similarity index 94%
rename from openpower/linux/0003-powerpc-64s-Add-workaround-for-P9-vector-CI-load-iss.patch
rename to openpower/linux/0002-powerpc-64s-Add-workaround-for-P9-vector-CI-load-iss.patch
index d5c04ce..a190ce2 100644
--- a/openpower/linux/0003-powerpc-64s-Add-workaround-for-P9-vector-CI-load-iss.patch
+++ b/openpower/linux/0002-powerpc-64s-Add-workaround-for-P9-vector-CI-load-iss.patch
@@ -1,7 +1,7 @@
 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Michael Neuling <mikey@neuling.org>
-Date: Wed, 4 Oct 2017 13:42:52 +1100
-Subject: [PATCH 3/4] powerpc/64s: Add workaround for P9 vector CI load issue
+Date: Fri, 15 Sep 2017 15:25:48 +1000
+Subject: [PATCH 2/3] powerpc/64s: Add workaround for P9 vector CI load issue
 
 POWER9 DD2.1 and earlier has an issue where some cache inhibited
 vector load will return bad data. The workaround is two part, one
@@ -30,7 +30,6 @@
 [mpe: Switch CONFIG_PPC_BOOK3S_64 to CONFIG_VSX to unbreak the build]
 Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
 (cherry picked from commit 5080332c2c893118dbc18755f35c8b0131cf0fc4)
-Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
 Signed-off-by: Joel Stanley <joel@jms.id.au>
 ---
  arch/powerpc/include/asm/emulated_ops.h |   4 +
@@ -58,10 +57,10 @@
  } ppc_emulated;
  
 diff --git a/arch/powerpc/include/asm/paca.h b/arch/powerpc/include/asm/paca.h
-index dc88a31cc79a..21061773149b 100644
+index 04b60af027ae..1e06310ccc09 100644
 --- a/arch/powerpc/include/asm/paca.h
 +++ b/arch/powerpc/include/asm/paca.h
-@@ -203,6 +203,7 @@ struct paca_struct {
+@@ -210,6 +210,7 @@ struct paca_struct {
  	 */
  	u16 in_mce;
  	u8 hmi_event_available;		/* HMI event is available */
@@ -70,10 +69,10 @@
  
  	/* Stuff for accurate time accounting */
 diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h
-index 9c0e60ca1666..e34f15e727d9 100644
+index 11f4bd07cce0..1e6ead577459 100644
 --- a/arch/powerpc/include/asm/uaccess.h
 +++ b/arch/powerpc/include/asm/uaccess.h
-@@ -173,6 +173,23 @@ do {								\
+@@ -174,6 +174,23 @@ do {								\
  
  extern long __get_user_bad(void);
  
@@ -98,10 +97,10 @@
  	__asm__ __volatile__(				\
  		"1:	"op" %1,0(%2)	# get_user\n"	\
 diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
-index d9dfdf7ede45..0256286d7153 100644
+index 1c80bd292e48..302bc61dead3 100644
 --- a/arch/powerpc/kernel/exceptions-64s.S
 +++ b/arch/powerpc/kernel/exceptions-64s.S
-@@ -1032,6 +1032,8 @@ TRAMP_REAL_BEGIN(hmi_exception_early)
+@@ -1033,6 +1033,8 @@ TRAMP_REAL_BEGIN(hmi_exception_early)
  	EXCEPTION_PROLOG_COMMON_3(0xe60)
  	addi	r3,r1,STACK_FRAME_OVERHEAD
  	BRANCH_LINK_TO_FAR(hmi_exception_realmode) /* Function call ABI */
@@ -110,7 +109,7 @@
  	/* Windup the stack. */
  	/* Move original HSRR0 and HSRR1 into the respective regs */
  	ld	r9,_MSR(r1)
-@@ -1048,10 +1050,15 @@ TRAMP_REAL_BEGIN(hmi_exception_early)
+@@ -1049,10 +1051,15 @@ TRAMP_REAL_BEGIN(hmi_exception_early)
  	REST_8GPRS(2, r1)
  	REST_GPR(10, r1)
  	ld	r11,_CCR(r1)
@@ -128,7 +127,7 @@
  	ld	r1,GPR1(r1)
  
  	/*
-@@ -1064,8 +1071,9 @@ hmi_exception_after_realmode:
+@@ -1065,8 +1072,9 @@ hmi_exception_after_realmode:
  	EXCEPTION_PROLOG_0(PACA_EXGEN)
  	b	tramp_real_hmi_exception
  
@@ -187,7 +186,7 @@
 +	return 1;
  }
 diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
-index 559664e75fb5..5fbe81d4e648 100644
+index 13c9dcdcba69..9ae1924c7d1a 100644
 --- a/arch/powerpc/kernel/traps.c
 +++ b/arch/powerpc/kernel/traps.c
 @@ -37,6 +37,7 @@
@@ -198,7 +197,7 @@
  
  #include <asm/emulated_ops.h>
  #include <asm/pgtable.h>
-@@ -761,6 +762,187 @@ void SMIException(struct pt_regs *regs)
+@@ -699,6 +700,187 @@ void SMIException(struct pt_regs *regs)
  	die("System Management Interrupt", regs, SIGABRT);
  }
  
@@ -386,7 +385,7 @@
  void handle_hmi_exception(struct pt_regs *regs)
  {
  	struct pt_regs *old_regs;
-@@ -768,6 +950,21 @@ void handle_hmi_exception(struct pt_regs *regs)
+@@ -706,6 +888,21 @@ void handle_hmi_exception(struct pt_regs *regs)
  	old_regs = set_irq_regs(regs);
  	irq_enter();
  
@@ -408,7 +407,7 @@
  	if (ppc_md.handle_hmi_exception)
  		ppc_md.handle_hmi_exception(regs);
  
-@@ -2004,6 +2201,10 @@ struct ppc_emulated ppc_emulated = {
+@@ -1924,6 +2121,10 @@ struct ppc_emulated ppc_emulated = {
  	WARN_EMULATED_SETUP(mfdscr),
  	WARN_EMULATED_SETUP(mtdscr),
  	WARN_EMULATED_SETUP(lq_stq),
@@ -420,7 +419,7 @@
  };
  
 diff --git a/arch/powerpc/platforms/powernv/smp.c b/arch/powerpc/platforms/powernv/smp.c
-index 40dae96f7e20..b9dd3cc1d217 100644
+index c17f81e433f7..355d3f99cafb 100644
 --- a/arch/powerpc/platforms/powernv/smp.c
 +++ b/arch/powerpc/platforms/powernv/smp.c
 @@ -49,6 +49,13 @@
diff --git a/openpower/linux/0002-powerpc-mce-Move-64-bit-machine-check-code-into-mce..patch b/openpower/linux/0002-powerpc-mce-Move-64-bit-machine-check-code-into-mce..patch
deleted file mode 100644
index 6a5783f..0000000
--- a/openpower/linux/0002-powerpc-mce-Move-64-bit-machine-check-code-into-mce..patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Michael Ellerman <mpe@ellerman.id.au>
-Date: Wed, 4 Oct 2017 13:42:51 +1100
-Subject: [PATCH 2/4] powerpc/mce: Move 64-bit machine check code into mce.c
-
-We already have mce.c which is built for 64bit and contains other parts
-of the machine check code, so move these bits in there too.
-
-Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-(cherry picked from commit ccd3cd361341b71ae2afa596f6b470fcb32a916e)
-Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- arch/powerpc/kernel/mce.c   | 33 +++++++++++++++++++++++++++++++++
- arch/powerpc/kernel/traps.c | 33 ---------------------------------
- 2 files changed, 33 insertions(+), 33 deletions(-)
-
-diff --git a/arch/powerpc/kernel/mce.c b/arch/powerpc/kernel/mce.c
-index e0e131e662ed..9b2ea7e71c06 100644
---- a/arch/powerpc/kernel/mce.c
-+++ b/arch/powerpc/kernel/mce.c
-@@ -22,11 +22,14 @@
- #undef DEBUG
- #define pr_fmt(fmt) "mce: " fmt
- 
-+#include <linux/hardirq.h>
- #include <linux/types.h>
- #include <linux/ptrace.h>
- #include <linux/percpu.h>
- #include <linux/export.h>
- #include <linux/irq_work.h>
-+
-+#include <asm/machdep.h>
- #include <asm/mce.h>
- 
- static DEFINE_PER_CPU(int, mce_nest_count);
-@@ -446,3 +449,33 @@ uint64_t get_mce_fault_addr(struct machine_check_event *evt)
- 	return 0;
- }
- EXPORT_SYMBOL(get_mce_fault_addr);
-+
-+/*
-+ * This function is called in real mode. Strictly no printk's please.
-+ *
-+ * regs->nip and regs->msr contains srr0 and ssr1.
-+ */
-+long machine_check_early(struct pt_regs *regs)
-+{
-+	long handled = 0;
-+
-+	__this_cpu_inc(irq_stat.mce_exceptions);
-+
-+	if (cur_cpu_spec && cur_cpu_spec->machine_check_early)
-+		handled = cur_cpu_spec->machine_check_early(regs);
-+	return handled;
-+}
-+
-+long hmi_exception_realmode(struct pt_regs *regs)
-+{
-+	__this_cpu_inc(irq_stat.hmi_exceptions);
-+
-+	wait_for_subcore_guest_exit();
-+
-+	if (ppc_md.hmi_exception_early)
-+		ppc_md.hmi_exception_early(regs);
-+
-+	wait_for_tb_resync();
-+
-+	return 0;
-+}
-diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
-index bfcfd9ef09f2..559664e75fb5 100644
---- a/arch/powerpc/kernel/traps.c
-+++ b/arch/powerpc/kernel/traps.c
-@@ -312,39 +312,6 @@ void system_reset_exception(struct pt_regs *regs)
- 	/* What should we do here? We could issue a shutdown or hard reset. */
- }
- 
--#ifdef CONFIG_PPC64
--/*
-- * This function is called in real mode. Strictly no printk's please.
-- *
-- * regs->nip and regs->msr contains srr0 and ssr1.
-- */
--long machine_check_early(struct pt_regs *regs)
--{
--	long handled = 0;
--
--	__this_cpu_inc(irq_stat.mce_exceptions);
--
--	if (cur_cpu_spec && cur_cpu_spec->machine_check_early)
--		handled = cur_cpu_spec->machine_check_early(regs);
--	return handled;
--}
--
--long hmi_exception_realmode(struct pt_regs *regs)
--{
--	__this_cpu_inc(irq_stat.hmi_exceptions);
--
--	wait_for_subcore_guest_exit();
--
--	if (ppc_md.hmi_exception_early)
--		ppc_md.hmi_exception_early(regs);
--
--	wait_for_tb_resync();
--
--	return 0;
--}
--
--#endif
--
- /*
-  * I/O accesses can cause machine checks on powermacs.
-  * Check if the NIP corresponds to the address of a sync
diff --git a/openpower/linux/0004-Release-OpenPower-kernel.patch b/openpower/linux/0003-Release-OpenPower-kernel.patch
similarity index 69%
rename from openpower/linux/0004-Release-OpenPower-kernel.patch
rename to openpower/linux/0003-Release-OpenPower-kernel.patch
index 07ad022..f0b9fac 100644
--- a/openpower/linux/0004-Release-OpenPower-kernel.patch
+++ b/openpower/linux/0003-Release-OpenPower-kernel.patch
@@ -1,7 +1,7 @@
 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Joel Stanley <joel@jms.id.au>
-Date: Fri, 3 Nov 2017 13:56:40 +1100
-Subject: [PATCH 4/4] Release OpenPower kernel
+Date: Tue, 14 Nov 2017 17:41:32 +1030
+Subject: [PATCH 3/3] Release OpenPower kernel
 
 Signed-off-by: Joel Stanley <joel@jms.id.au>
 ---
@@ -9,13 +9,13 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/Makefile b/Makefile
-index 8280953c8a45..a2394578649f 100644
+index ccd981892ef2..c845ed98df5b 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -1,7 +1,7 @@
+@@ -2,7 +2,7 @@
  VERSION = 4
- PATCHLEVEL = 13
- SUBLEVEL = 11
+ PATCHLEVEL = 14
+ SUBLEVEL = 0
 -EXTRAVERSION =
 +EXTRAVERSION = -openpower1
  NAME = Fearless Coyote
