x86/fpu: Get rid of copy_supervisor_to_kernel()
[linux-2.6-microblaze.git] / arch / x86 / kernel / fpu / xstate.c
index 579e343..427977b 100644 (file)
@@ -1204,61 +1204,6 @@ int copy_user_to_xstate(struct xregs_state *xsave, const void __user *ubuf)
        return 0;
 }
 
-/*
- * Save only supervisor states to the kernel buffer.  This blows away all
- * old states, and is intended to be used only in __fpu__restore_sig(), where
- * user states are restored from the user buffer.
- */
-void copy_supervisor_to_kernel(struct xregs_state *xstate)
-{
-       struct xstate_header *header;
-       u64 max_bit, min_bit;
-       u32 lmask, hmask;
-       int err, i;
-
-       if (WARN_ON(!boot_cpu_has(X86_FEATURE_XSAVES)))
-               return;
-
-       if (!xfeatures_mask_supervisor())
-               return;
-
-       max_bit = __fls(xfeatures_mask_supervisor());
-       min_bit = __ffs(xfeatures_mask_supervisor());
-
-       lmask = xfeatures_mask_supervisor();
-       hmask = xfeatures_mask_supervisor() >> 32;
-       XSTATE_OP(XSAVES, xstate, lmask, hmask, err);
-
-       /* We should never fault when copying to a kernel buffer: */
-       if (WARN_ON_FPU(err))
-               return;
-
-       /*
-        * At this point, the buffer has only supervisor states and must be
-        * converted back to normal kernel format.
-        */
-       header = &xstate->header;
-       header->xcomp_bv |= xfeatures_mask_all;
-
-       /*
-        * This only moves states up in the buffer.  Start with
-        * the last state and move backwards so that states are
-        * not overwritten until after they are moved.  Note:
-        * memmove() allows overlapping src/dst buffers.
-        */
-       for (i = max_bit; i >= min_bit; i--) {
-               u8 *xbuf = (u8 *)xstate;
-
-               if (!((header->xfeatures >> i) & 1))
-                       continue;
-
-               /* Move xfeature 'i' into its normal location */
-               memmove(xbuf + xstate_comp_offsets[i],
-                       xbuf + xstate_supervisor_only_offsets[i],
-                       xstate_sizes[i]);
-       }
-}
-
 /**
  * copy_dynamic_supervisor_to_kernel() - Save dynamic supervisor states to
  *                                       an xsave area