s390/fpu: split fpu-internal.h into fpu internals, api, and type headers
[deliverable/linux.git] / arch / s390 / kernel / traps.c
index 9861613fb35a7a0c1ef947451f37871937d9c5bd..1b18118bbc06bbe58f846343198dc84fb5ec04b5 100644 (file)
@@ -19,7 +19,7 @@
 #include <linux/sched.h>
 #include <linux/mm.h>
 #include <linux/slab.h>
-#include <asm/fpu-internal.h>
+#include <asm/fpu/api.h>
 #include "entry.h"
 
 int show_unhandled_signals = 1;
@@ -224,29 +224,6 @@ NOKPROBE_SYMBOL(illegal_op);
 DO_ERROR_INFO(specification_exception, SIGILL, ILL_ILLOPN,
              "specification exception");
 
-int alloc_vector_registers(struct task_struct *tsk)
-{
-       __vector128 *vxrs;
-       freg_t *fprs;
-
-       /* Allocate vector register save area. */
-       vxrs = kzalloc(sizeof(__vector128) * __NUM_VXRS,
-                      GFP_KERNEL|__GFP_REPEAT);
-       if (!vxrs)
-               return -ENOMEM;
-       preempt_disable();
-       if (tsk == current)
-               save_fpu_regs();
-       /* Copy the 16 floating point registers */
-       convert_fp_to_vx(vxrs, tsk->thread.fpu.fprs);
-       fprs = tsk->thread.fpu.fprs;
-       tsk->thread.fpu.vxrs = vxrs;
-       tsk->thread.fpu.flags |= FPU_USE_VX;
-       kfree(fprs);
-       preempt_enable();
-       return 0;
-}
-
 void vector_exception(struct pt_regs *regs)
 {
        int si_code, vic;
@@ -281,13 +258,6 @@ void vector_exception(struct pt_regs *regs)
        do_trap(regs, SIGFPE, si_code, "vector exception");
 }
 
-static int __init disable_vector_extension(char *str)
-{
-       S390_lowcore.machine_flags &= ~MACHINE_FLAG_VX;
-       return 1;
-}
-__setup("novx", disable_vector_extension);
-
 void data_exception(struct pt_regs *regs)
 {
        __u16 __user *location;
@@ -296,15 +266,6 @@ void data_exception(struct pt_regs *regs)
        location = get_trap_ip(regs);
 
        save_fpu_regs();
-       /* Check for vector register enablement */
-       if (MACHINE_HAS_VX && !is_vx_task(current) &&
-           (current->thread.fpu.fpc & FPC_DXC_MASK) == 0xfe00) {
-               alloc_vector_registers(current);
-               /* Vector data exception is suppressing, rewind psw. */
-               regs->psw.addr = __rewind_psw(regs->psw, regs->int_code >> 16);
-               clear_pt_regs_flag(regs, PIF_PER_TRAP);
-               return;
-       }
        if (current->thread.fpu.fpc & FPC_DXC_MASK)
                signal = SIGFPE;
        else
This page took 0.025474 seconds and 5 git commands to generate.