summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/process.c
diff options
context:
space:
mode:
authorFenghua Yu2014-05-29 20:12:44 +0200
committerH. Peter Anvin2014-05-29 23:33:09 +0200
commit7496d6458fe3219d63848ce4a9afbd86245cab22 (patch)
treee2f8a6a442d153b0708893aedc893469f6a0262d /arch/x86/kernel/process.c
parentx86/xsaves: Enable xsaves/xrstors (diff)
downloadkernel-qcow2-linux-7496d6458fe3219d63848ce4a9afbd86245cab22.tar.gz
kernel-qcow2-linux-7496d6458fe3219d63848ce4a9afbd86245cab22.tar.xz
kernel-qcow2-linux-7496d6458fe3219d63848ce4a9afbd86245cab22.zip
Define kernel API to get address of each state in xsave area
In standard form, each state is saved in the xsave area in fixed offset. But in compacted form, offset of each saved state only can be calculated during run time because some xstates may not be enabled and saved. We define kernel API get_xsave_addr() returns address of a given state saved in a xsave area. It can be called in kernel to get address of each xstate in xsave area in either standard format or compacted format. It's useful when kernel wants to directly access each state in xsave area. Signed-off-by: Fenghua Yu <fenghua.yu@intel.com> Link: http://lkml.kernel.org/r/1401387164-43416-17-git-send-email-fenghua.yu@intel.com Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/kernel/process.c')
-rw-r--r--arch/x86/kernel/process.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
index 4505e2a950d8..f804dc935d2a 100644
--- a/arch/x86/kernel/process.c
+++ b/arch/x86/kernel/process.c
@@ -93,6 +93,7 @@ void arch_task_cache_init(void)
kmem_cache_create("task_xstate", xstate_size,
__alignof__(union thread_xstate),
SLAB_PANIC | SLAB_NOTRACK, NULL);
+ setup_xstate_comp();
}
/*