arm64/ptrace: Add compat FPR register support 74/252174/2
authorSeung-Woo Kim <sw0312.kim@samsung.com>
Tue, 19 Nov 2019 01:21:01 +0000 (10:21 +0900)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Mon, 25 Jan 2021 06:57:02 +0000 (15:57 +0900)
From aarch32 ptrace view, fpr register support is done with vfp
registers. As like aarch32 ptrace view, Add to suppot compat fpr
resister with vfp.

Change-Id: If5b4b6b5f33b7691ba9d3b65c1bffcf316e19588
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
arch/arm64/include/asm/ptrace.h
arch/arm64/kernel/ptrace.c

index ada08b5..e950f4b 100644 (file)
@@ -28,6 +28,8 @@
 /* AArch32-specific ptrace requests */
 #define COMPAT_PTRACE_GETREGS          12
 #define COMPAT_PTRACE_SETREGS          13
+#define COMPAT_PTRACE_GETFPREGS                14
+#define COMPAT_PTRACE_SETFPREGS                15
 #define COMPAT_PTRACE_GET_THREAD_AREA  22
 #define COMPAT_PTRACE_SET_SYSCALL      23
 #define COMPAT_PTRACE_GETVFPREGS       27
index 7990377..e35582a 100644 (file)
@@ -1282,6 +1282,22 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
                                                    datap);
                        break;
 
+               case COMPAT_PTRACE_GETFPREGS:
+                       ret = copy_regset_to_user(child,
+                                                 &user_aarch32_ptrace_view,
+                                                 REGSET_FPR,
+                                                 0, VFP_STATE_SIZE,
+                                                 datap);
+                       break;
+
+               case COMPAT_PTRACE_SETFPREGS:
+                       ret = copy_regset_from_user(child,
+                                                   &user_aarch32_ptrace_view,
+                                                   REGSET_FPR,
+                                                   0, VFP_STATE_SIZE,
+                                                   datap);
+                       break;
+
 #ifdef CONFIG_HAVE_HW_BREAKPOINT
                case COMPAT_PTRACE_GETHBPREGS:
                        ret = compat_ptrace_gethbpregs(child, addr, datap);