From 0e132838e4f42f9aa8940a3105f940e1ed656d9b Mon Sep 17 00:00:00 2001 From: Suresh Siddha Date: Wed, 13 Aug 2008 11:38:14 -0700 Subject: [PATCH] --- yaml --- r: 112786 b: refs/heads/master c: ed405958057ca6a8c4c9178a7a3b1167fabb45f5 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/x86/kernel/xsave.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index bc0642b68ffb..1221761f4e34 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ee2b92a8201a40021ecd1aee6f0625dc03bacc54 +refs/heads/master: ed405958057ca6a8c4c9178a7a3b1167fabb45f5 diff --git a/trunk/arch/x86/kernel/xsave.c b/trunk/arch/x86/kernel/xsave.c index 7415f3e38a51..bb097b1644d8 100644 --- a/trunk/arch/x86/kernel/xsave.c +++ b/trunk/arch/x86/kernel/xsave.c @@ -92,6 +92,12 @@ int save_i387_xstate(void __user *buf) return 0; clear_used_math(); /* trigger finit */ if (task_thread_info(tsk)->status & TS_USEDFPU) { + /* + * Start with clearing the user buffer. This will present a + * clean context for the bytes not touched by the fxsave/xsave. + */ + __clear_user(buf, sig_xstate_size); + if (task_thread_info(tsk)->status & TS_XSAVE) err = xsave_user(buf); else