--- /dev/null
+From 504e75d0ed3389747e40a4aaa4b1f4e569576665 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens@de.ibm.com>
+Date: Thu, 20 Mar 2008 17:33:38 +0100
+Message-ID: <20080322161918.GA6367@osiris.boeblingen.de.ibm.com>
+Subject: S390 futex: let futex_atomic_cmpxchg_pt survive early functional tests.
+
+a0c1e9073ef7428a14309cba010633a6cd6719ea "futex: runtime enable pi and
+robust functionality" introduces a test wether futex in atomic stuff
+works or not.
+It does that by writing to address 0 of the kernel address space. This
+will crash on older machines where addressing mode switching is enabled
+but where the mvcos instruction is not available. Page table walking is
+done by hand and therefore the code tries to access current->mm which
+is NULL.
+Therefore add an extra check, so we survive the early test.
+
+Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
+Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+ arch/s390/lib/uaccess_pt.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/arch/s390/lib/uaccess_pt.c
++++ b/arch/s390/lib/uaccess_pt.c
+@@ -406,6 +406,8 @@ int futex_atomic_cmpxchg_pt(int __user *
+ {
+ int ret;
+
++ if (!current->mm)
++ return -EFAULT;
+ spin_lock(¤t->mm->page_table_lock);
+ uaddr = (int __user *) __dat_user_addr((unsigned long) uaddr);
+ if (!uaddr) {
bluetooth-fix-bugs-in-previous-conn-add-del-workqueue-changes.patch
relay-fix-subbuf_splice_actor-adding-too-many-pages.patch
slab-numa-slab-allocator-migration-bugfix.patch
+s390-futex-let-futex_atomic_cmpxchg_pt-survive-early-functional-tests.patch