xtensa: fix coprocessor context offset definitions
Subsystems (2)
Max Filippov
maintainerPATCH 1/1 xtensa: fix coprocessor context offset definitions
Coprocessor context offsets are used by the assembly code that moves coprocessor context between the individual fields of the thread_info::xtregs_cp structure and coprocessor registers. With all offsets pointing to the beginning of the xtregs_cp it is impossible to get or set any coprocessor register reliably through the ptrace interface in the presence of more than one coprocessor in the core configuration.
Signed-off-by Max Filippov <[email protected]>
--- arch/xtensa/kernel/asm-offsets.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
arch/xtensa/kernel/asm-offsets.c +8 -8
@@ -94,14 +94,14 @@ int main(void) DEFINE(THREAD_SP, offsetof (struct task_struct, thread.sp));DEFINE (THREAD_CPENABLE , offsetof (struct thread_info , cpenable));#if XTENSA_HAVE_COPROCESSORS -DEFINE (THREAD_XTREGS_CP0 , offsetof (struct thread_info , xtregs_cp)); -DEFINE (THREAD_XTREGS_CP1 , offsetof (struct thread_info , xtregs_cp)); -DEFINE (THREAD_XTREGS_CP2 , offsetof (struct thread_info , xtregs_cp)); -DEFINE (THREAD_XTREGS_CP3 , offsetof (struct thread_info , xtregs_cp)); -DEFINE (THREAD_XTREGS_CP4 , offsetof (struct thread_info , xtregs_cp)); -DEFINE (THREAD_XTREGS_CP5 , offsetof (struct thread_info , xtregs_cp)); -DEFINE (THREAD_XTREGS_CP6 , offsetof (struct thread_info , xtregs_cp)); -DEFINE (THREAD_XTREGS_CP7 , offsetof (struct thread_info , xtregs_cp)); + DEFINE(THREAD_XTREGS_CP0, offsetof(struct thread_info, xtregs_cp.cp0)); + DEFINE(THREAD_XTREGS_CP1, offsetof(struct thread_info, xtregs_cp.cp1)); + DEFINE(THREAD_XTREGS_CP2, offsetof(struct thread_info, xtregs_cp.cp2)); + DEFINE(THREAD_XTREGS_CP3, offsetof(struct thread_info, xtregs_cp.cp3)); + DEFINE(THREAD_XTREGS_CP4, offsetof(struct thread_info, xtregs_cp.cp4)); + DEFINE(THREAD_XTREGS_CP5, offsetof(struct thread_info, xtregs_cp.cp5)); + DEFINE(THREAD_XTREGS_CP6, offsetof(struct thread_info, xtregs_cp.cp6)); + DEFINE(THREAD_XTREGS_CP7, offsetof(struct thread_info, xtregs_cp.cp7));#endif DEFINE (THREAD_XTREGS_USER , offsetof (struct thread_info , xtregs_user));DEFINE (XTREGS_USER_SIZE ,sizeof (xtregs_user_t));
Signature · 1 line
2.11.0