]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.25/patches.arch/s390-11-02-kernel_pfn_valid_uaccess.patch
Move xen patchset to new version's subdir.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.25 / patches.arch / s390-11-02-kernel_pfn_valid_uaccess.patch
diff --git a/src/patches/suse-2.6.27.25/patches.arch/s390-11-02-kernel_pfn_valid_uaccess.patch b/src/patches/suse-2.6.27.25/patches.arch/s390-11-02-kernel_pfn_valid_uaccess.patch
deleted file mode 100644 (file)
index dbcdd34..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-From: Gerald Schaefer <geraldsc@de.ibm.com>
-Subject: kernel: don't check for pfn_valid() in uaccess_pt.c
-References: bnc#484767,LTC#52175
-
-Symptom:     Access to xip mappings fails (-EFAULT).
-Problem:     pfn_valid() actually checks for a valid struct page and
-             not for a valid pfn. Using xip mappings w/o struct pages,
-             this will result in -EFAULT returned by the (page table
-             walk) user copy functions, even though there is valid memory.
-Solution:    Those user copy functions don't need a struct page, so this
-             patch just removes the pfn_valid() check.
-
-Acked-by: John Jolly <jjolly@suse.de>
----
- arch/s390/lib/uaccess_pt.c |   18 ------------------
- 1 file changed, 18 deletions(-)
-
-Index: linux-sles11/arch/s390/lib/uaccess_pt.c
-===================================================================
---- linux-sles11.orig/arch/s390/lib/uaccess_pt.c
-+++ linux-sles11/arch/s390/lib/uaccess_pt.c
-@@ -119,8 +119,6 @@ retry:
-                       goto fault;
-               pfn = pte_pfn(*pte);
--              if (!pfn_valid(pfn))
--                      goto out;
-               offset = uaddr & (PAGE_SIZE - 1);
-               size = min(n - done, PAGE_SIZE - offset);
-@@ -135,7 +133,6 @@ retry:
-               done += size;
-               uaddr += size;
-       } while (done < n);
--out:
-       spin_unlock(&mm->page_table_lock);
-       return n - done;
- fault:
-@@ -163,9 +160,6 @@ retry:
-               goto fault;
-       pfn = pte_pfn(*pte);
--      if (!pfn_valid(pfn))
--              goto out;
--
-       ret = (pfn << PAGE_SHIFT) + (uaddr & (PAGE_SIZE - 1));
- out:
-       return ret;
-@@ -244,11 +238,6 @@ retry:
-                       goto fault;
-               pfn = pte_pfn(*pte);
--              if (!pfn_valid(pfn)) {
--                      done = -1;
--                      goto out;
--              }
--
-               offset = uaddr & (PAGE_SIZE-1);
-               addr = (char *)(pfn << PAGE_SHIFT) + offset;
-               len = min(count - done, PAGE_SIZE - offset);
-@@ -256,7 +245,6 @@ retry:
-               done += len_str;
-               uaddr += len_str;
-       } while ((len_str == len) && (done < count));
--out:
-       spin_unlock(&mm->page_table_lock);
-       return done + 1;
- fault:
-@@ -325,12 +313,7 @@ retry:
-               }
-               pfn_from = pte_pfn(*pte_from);
--              if (!pfn_valid(pfn_from))
--                      goto out;
-               pfn_to = pte_pfn(*pte_to);
--              if (!pfn_valid(pfn_to))
--                      goto out;
--
-               offset_from = uaddr_from & (PAGE_SIZE-1);
-               offset_to = uaddr_from & (PAGE_SIZE-1);
-               offset_max = max(offset_from, offset_to);
-@@ -342,7 +325,6 @@ retry:
-               uaddr_from += size;
-               uaddr_to += size;
-       } while (done < n);
--out:
-       spin_unlock(&mm->page_table_lock);
-       return n - done;
- fault: