[PATCH] uml: use correct register file size everywhere
This patch uses MAX_REG_NR consistently to refer to the register file size. FRAME_SIZE isn't sufficient because on x86_64, it is smaller than the ptrace register file size. MAX_REG_NR was introduced as a consistent way to get the number of registers, but wasn't used everywhere it should be. When this causes a problem, it makes PTRACE_SETREGS fail on x86_64 because of a corrupted segment register value in the known-good register file. The patch also adds a register dump at that point in case there are any future problems here. Signed-off-by: Jeff Dike <jdike@linux.intel.com> Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
7632fc8f80
commit
b92c4f922b
@@ -104,10 +104,6 @@ union uml_pt_regs {
|
||||
#endif
|
||||
#ifdef UML_CONFIG_MODE_SKAS
|
||||
struct skas_regs {
|
||||
/* x86_64 ptrace uses sizeof(user_regs_struct) as its register
|
||||
* file size, while i386 uses FRAME_SIZE. Therefore, we need
|
||||
* to use UM_FRAME_SIZE here instead of HOST_FRAME_SIZE.
|
||||
*/
|
||||
unsigned long regs[MAX_REG_NR];
|
||||
unsigned long fp[HOST_FP_SIZE];
|
||||
struct faultinfo faultinfo;
|
||||
|
Reference in New Issue
Block a user