--- /dev/null
+From 2b29a9fdcb92bfc6b6f4c412d71505869de61a56 Mon Sep 17 00:00:00 2001
+From: Dominik Dingel <dingel@linux.vnet.ibm.com>
+Date: Fri, 26 Jul 2013 15:04:00 +0200
+Subject: KVM: s390: move kvm_guest_enter,exit closer to sie
+
+From: Dominik Dingel <dingel@linux.vnet.ibm.com>
+
+commit 2b29a9fdcb92bfc6b6f4c412d71505869de61a56 upstream.
+
+Any uaccess between guest_enter and guest_exit could trigger a page fault,
+the page fault handler would handle it as a guest fault and translate a
+user address as guest address.
+
+Signed-off-by: Dominik Dingel <dingel@linux.vnet.ibm.com>
+Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+[bwh: Backported to 3.2: adjust context and add the rc variable]
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+Reviewed-by: Dominik Dingel <dingel@linux.vnet.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/s390/kvm/kvm-s390.c | 17 +++++++++++------
+ 1 file changed, 11 insertions(+), 6 deletions(-)
+
+--- a/arch/s390/kvm/kvm-s390.c
++++ b/arch/s390/kvm/kvm-s390.c
+@@ -445,6 +445,8 @@ int kvm_arch_vcpu_ioctl_set_mpstate(stru
+
+ static void __vcpu_run(struct kvm_vcpu *vcpu)
+ {
++ int rc;
++
+ memcpy(&vcpu->arch.sie_block->gg14, &vcpu->arch.guest_gprs[14], 16);
+
+ if (need_resched())
+@@ -455,21 +457,24 @@ static void __vcpu_run(struct kvm_vcpu *
+
+ kvm_s390_deliver_pending_interrupts(vcpu);
+
++ VCPU_EVENT(vcpu, 6, "entering sie flags %x",
++ atomic_read(&vcpu->arch.sie_block->cpuflags));
++
+ vcpu->arch.sie_block->icptcode = 0;
+ local_irq_disable();
+ kvm_guest_enter();
+ local_irq_enable();
+- VCPU_EVENT(vcpu, 6, "entering sie flags %x",
+- atomic_read(&vcpu->arch.sie_block->cpuflags));
+- if (sie64a(vcpu->arch.sie_block, vcpu->arch.guest_gprs)) {
++ rc = sie64a(vcpu->arch.sie_block, vcpu->arch.guest_gprs);
++ local_irq_disable();
++ kvm_guest_exit();
++ local_irq_enable();
++
++ if (rc) {
+ VCPU_EVENT(vcpu, 3, "%s", "fault in sie instruction");
+ kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
+ }
+ VCPU_EVENT(vcpu, 6, "exit sie icptcode %d",
+ vcpu->arch.sie_block->icptcode);
+- local_irq_disable();
+- kvm_guest_exit();
+- local_irq_enable();
+
+ memcpy(&vcpu->arch.guest_gprs[14], &vcpu->arch.sie_block->gg14, 16);
+ }
--- /dev/null
+From a8abbca6617e1caa2344d2d38d0a35f3e5928b79 Mon Sep 17 00:00:00 2001
+From: Geert Uytterhoeven <geert@linux-m68k.org>
+Date: Tue, 17 Jul 2012 15:48:04 -0700
+Subject: m32r: add memcpy() for CONFIG_KERNEL_GZIP=y
+
+From: Geert Uytterhoeven <geert@linux-m68k.org>
+
+commit a8abbca6617e1caa2344d2d38d0a35f3e5928b79 upstream.
+
+Fix the m32r link error:
+
+ LD arch/m32r/boot/compressed/vmlinux
+ arch/m32r/boot/compressed/misc.o: In function `zlib_updatewindow':
+ misc.c:(.text+0x190): undefined reference to `memcpy'
+ misc.c:(.text+0x190): relocation truncated to fit: R_M32R_26_PLTREL against undefined symbol `memcpy'
+ make[5]: *** [arch/m32r/boot/compressed/vmlinux] Error 1
+
+by adding our own implementation of memcpy().
+
+Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
+Cc: Hirokazu Takata <takata@linux-m32r.org>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/m32r/boot/compressed/misc.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+--- a/arch/m32r/boot/compressed/misc.c
++++ b/arch/m32r/boot/compressed/misc.c
+@@ -39,6 +39,16 @@ static void *memset(void *s, int c, size
+ #endif
+
+ #ifdef CONFIG_KERNEL_GZIP
++void *memcpy(void *dest, const void *src, size_t n)
++{
++ char *d = dest;
++ const char *s = src;
++ while (n--)
++ *d++ = *s++;
++
++ return dest;
++}
++
+ #define BOOT_HEAP_SIZE 0x10000
+ #include "../../../../lib/decompress_inflate.c"
+ #endif
--- /dev/null
+From df12aef6a19bb2d69859a94936bda0e6ccaf3327 Mon Sep 17 00:00:00 2001
+From: Geert Uytterhoeven <geert@linux-m68k.org>
+Date: Tue, 17 Jul 2012 15:48:02 -0700
+Subject: m32r: consistently use "suffix-$(...)"
+
+From: Geert Uytterhoeven <geert@linux-m68k.org>
+
+commit df12aef6a19bb2d69859a94936bda0e6ccaf3327 upstream.
+
+Commit a556bec9955c ("m32r: fix arch/m32r/boot/compressed/Makefile")
+changed "$(suffix_y)" to "$(suffix-y)", but didn't update any location
+where "suffix_y" is set, causing:
+
+ make[5]: *** No rule to make target `arch/m32r/boot/compressed/vmlinux.bin.', needed by `arch/m32r/boot/compressed/piggy.o'. Stop.
+ make[4]: *** [arch/m32r/boot/compressed/vmlinux] Error 2
+ make[3]: *** [zImage] Error 2
+
+Correct the other locations to fix this.
+
+Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
+Cc: Hirokazu Takata <takata@linux-m32r.org>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/m32r/boot/compressed/Makefile | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/arch/m32r/boot/compressed/Makefile
++++ b/arch/m32r/boot/compressed/Makefile
+@@ -43,9 +43,9 @@ endif
+
+ OBJCOPYFLAGS += -R .empty_zero_page
+
+-suffix_$(CONFIG_KERNEL_GZIP) = gz
+-suffix_$(CONFIG_KERNEL_BZIP2) = bz2
+-suffix_$(CONFIG_KERNEL_LZMA) = lzma
++suffix-$(CONFIG_KERNEL_GZIP) = gz
++suffix-$(CONFIG_KERNEL_BZIP2) = bz2
++suffix-$(CONFIG_KERNEL_LZMA) = lzma
+
+ $(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix-y) FORCE
+ $(call if_changed,ld)
--- /dev/null
+From 9a75c6e5240f7edc5955e8da5b94bde6f96070b3 Mon Sep 17 00:00:00 2001
+From: Geert Uytterhoeven <geert@linux-m68k.org>
+Date: Tue, 17 Jul 2012 15:48:05 -0700
+Subject: m32r: make memset() global for CONFIG_KERNEL_BZIP2=y
+
+From: Geert Uytterhoeven <geert@linux-m68k.org>
+
+commit 9a75c6e5240f7edc5955e8da5b94bde6f96070b3 upstream.
+
+Fix the m32r compile error:
+
+ arch/m32r/boot/compressed/misc.c:31:14: error: static declaration of 'memset' follows non-static declaration
+ make[5]: *** [arch/m32r/boot/compressed/misc.o] Error 1
+ make[4]: *** [arch/m32r/boot/compressed/vmlinux] Error 2
+
+by removing the static keyword.
+
+Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
+Cc: Hirokazu Takata <takata@linux-m32r.org>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/m32r/boot/compressed/misc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/m32r/boot/compressed/misc.c
++++ b/arch/m32r/boot/compressed/misc.c
+@@ -28,7 +28,7 @@ static unsigned long free_mem_ptr;
+ static unsigned long free_mem_end_ptr;
+
+ #ifdef CONFIG_KERNEL_BZIP2
+-static void *memset(void *s, int c, size_t n)
++void *memset(void *s, int c, size_t n)
+ {
+ char *ss = s;
+
--- /dev/null
+From 650275dbfb2f4c12bc91420ad5a99f955eabec98 Mon Sep 17 00:00:00 2001
+From: Cong Wang <xiyou.wangcong@gmail.com>
+Date: Fri, 3 Feb 2012 15:34:16 +0800
+Subject: PARISC: include <linux/prefetch.h> in drivers/parisc/iommu-helpers.h
+
+From: Cong Wang <xiyou.wangcong@gmail.com>
+
+commit 650275dbfb2f4c12bc91420ad5a99f955eabec98 upstream.
+
+drivers/parisc/iommu-helpers.h:62: error: implicit declaration of function 'prefetchw'
+make[3]: *** [drivers/parisc/sba_iommu.o] Error 1
+
+drivers/parisc/iommu-helpers.h needs to #include <linux/prefetch.h>
+where prefetchw is declared.
+
+Signed-off-by: WANG Cong <xiyou.wangcong@gmail.com>
+Signed-off-by: James Bottomley <JBottomley@Parallels.com>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/parisc/iommu-helpers.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/parisc/iommu-helpers.h
++++ b/drivers/parisc/iommu-helpers.h
+@@ -1,3 +1,5 @@
++#include <linux/prefetch.h>
++
+ /**
+ * iommu_fill_pdir - Insert coalesced scatter/gather chunks into the I/O Pdir.
+ * @ioc: The I/O Controller.
--- /dev/null
+From cd0a2bfb77a3edeecd652081e0b1a163d3b0696b Mon Sep 17 00:00:00 2001
+From: Paul Gortmaker <paul.gortmaker@windriver.com>
+Date: Wed, 18 Apr 2012 17:17:19 -0400
+Subject: pci: frv architecture needs generic setup-bus infrastructure
+
+From: Paul Gortmaker <paul.gortmaker@windriver.com>
+
+commit cd0a2bfb77a3edeecd652081e0b1a163d3b0696b upstream.
+
+Otherwise we get this link failure for frv's defconfig:
+
+ LD .tmp_vmlinux1
+ drivers/built-in.o: In function `pci_assign_resource':
+ (.text+0xbf0c): undefined reference to `pci_cardbus_resource_alignment'
+ drivers/built-in.o: In function `pci_setup':
+ pci.c:(.init.text+0x174): undefined reference to `pci_realloc_get_opt'
+ pci.c:(.init.text+0x1a0): undefined reference to `pci_realloc_get_opt'
+ make[1]: *** [.tmp_vmlinux1] Error 1
+
+Cc: David Howells <dhowells@redhat.com>
+Acked-by: Bjorn Helgaas <bhelgaas@google.com>
+Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/pci/Makefile | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/pci/Makefile
++++ b/drivers/pci/Makefile
+@@ -46,6 +46,7 @@ obj-$(CONFIG_UNICORE32) += setup-bus.o s
+ obj-$(CONFIG_PARISC) += setup-bus.o
+ obj-$(CONFIG_SUPERH) += setup-bus.o setup-irq.o
+ obj-$(CONFIG_PPC) += setup-bus.o
++obj-$(CONFIG_FRV) += setup-bus.o
+ obj-$(CONFIG_MIPS) += setup-bus.o setup-irq.o
+ obj-$(CONFIG_X86_VISWS) += setup-irq.o
+ obj-$(CONFIG_MN10300) += setup-bus.o
net-bridge-convert-mldv2-query-mrc-into-msecs_to_jiffies-for-max_delay.patch
icmpv6-treat-dest-unreachable-codes-5-and-6-as-eacces-not-eproto.patch
tipc-fix-lockdep-warning-during-bearer-initialization.patch
+parisc-include-linux-prefetch.h-in-drivers-parisc-iommu-helpers.h.patch
+pci-frv-architecture-needs-generic-setup-bus-infrastructure.patch
+m32r-consistently-use-suffix.patch
+m32r-add-memcpy-for-config_kernel_gzip-y.patch
+m32r-make-memset-global-for-config_kernel_bzip2-y.patch
+kvm-s390-move-kvm_guest_enter-exit-closer-to-sie.patch