summaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/diag.c
diff options
context:
space:
mode:
authorMichael Holzheu <holzheu@linux.vnet.ibm.com>2011-05-10 17:13:41 +0200
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>2011-05-10 17:13:43 +0200
commit83ace2701b81be549cca7af33c5b0499cb2602d6 (patch)
tree17c74e48a1d67b7691fbdd4955835f16db76ae88 /arch/s390/kernel/diag.c
parent91d378088b104f8e31baba8c518f32a7a219d58c (diff)
downloadlinux-83ace2701b81be549cca7af33c5b0499cb2602d6.tar.gz
linux-83ace2701b81be549cca7af33c5b0499cb2602d6.tar.bz2
linux-83ace2701b81be549cca7af33c5b0499cb2602d6.zip
[S390] replace diag10() with diag10_range() function
Currently the diag10() function can only release one page. For exploiters that have to call diag10 on a contiguous memory region this is suboptimal. This patch replaces the diag10() function with diag10_range() that is able to release multiple pages. In addition to that the new function now allows to release memory with addresses higher than 2047 MiB. This was due to a restriction of the diagnose implementation under z/VM prior to release 5.2. Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/diag.c')
-rw-r--r--arch/s390/kernel/diag.c21
1 files changed, 0 insertions, 21 deletions
diff --git a/arch/s390/kernel/diag.c b/arch/s390/kernel/diag.c
index c032d11da8a1..8237fc07ac79 100644
--- a/arch/s390/kernel/diag.c
+++ b/arch/s390/kernel/diag.c
@@ -9,27 +9,6 @@
#include <asm/diag.h>
/*
- * Diagnose 10: Release pages
- */
-void diag10(unsigned long addr)
-{
- if (addr >= 0x7ff00000)
- return;
- asm volatile(
-#ifdef CONFIG_64BIT
- " sam31\n"
- " diag %0,%0,0x10\n"
- "0: sam64\n"
-#else
- " diag %0,%0,0x10\n"
- "0:\n"
-#endif
- EX_TABLE(0b, 0b)
- : : "a" (addr));
-}
-EXPORT_SYMBOL(diag10);
-
-/*
* Diagnose 14: Input spool file manipulation
*/
int diag14(unsigned long rx, unsigned long ry1, unsigned long subcode)