]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
x86: switch to ->regset_get()
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 18 Feb 2020 17:14:34 +0000 (12:14 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 27 Jul 2020 18:31:07 +0000 (14:31 -0400)
commit0557d64d983e3dedead2d4b4e8abc49620d5f5d2
tree443afb37b0f11b5a72ae574b5b19ea234a0074e5
parent7717cb9bdd0421faa432a4e0d499fdba6e2394c8
x86: switch to ->regset_get()

All instances of ->get() in arch/x86 switched; that might or might
not be worth splitting up.  Notes:

* for xstateregs_get() the amount we want to store is determined at
the boot time; see init_xstate_size() and update_regset_xstate_info() for
details.  task->thread.fpu.state.xsave ends with a flexible array member and
the amount of data in it depends upon the FPU features supported/enabled.

* fpregs_get() writes slightly less than full ->thread.fpu.state.fsave
(the last word is not copied); we pass the full size of state.fsave and let
membuf_write() trim to the amount declared by regset - __regset_get() will
make sure that the space in buffer is no more than that.

* copy_xstate_to_user() and its helpers are gone now.

* fpregs_soft_get() was getting user_regset_copyout() arguments
wrong.  Since "x86: x86 user_regset math_emu" back in 2008...  I really
doubt that it's worth splitting out for -stable, though - you need
a 486SX box for that to trigger...

[Kevin's braino fix for copy_xstate_to_kernel() essentially duplicated here]

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/x86/include/asm/fpu/regset.h
arch/x86/include/asm/fpu/xstate.h
arch/x86/kernel/fpu/regset.c
arch/x86/kernel/fpu/signal.c
arch/x86/kernel/fpu/xstate.c
arch/x86/kernel/ptrace.c
arch/x86/kernel/tls.c
arch/x86/kernel/tls.h
arch/x86/math-emu/fpu_entry.c