[LOCAL] arm64/ptrace: Add compat FPR register support 31/218031/2 accepted/tizen/unified/20191121.154754 submit/tizen/20191121.072817
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>
Tue, 19 Nov 2019 02:17:13 +0000 (11:17 +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: Iac60d4fe53182b901b3cc7956695fced00018487
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
arch/arm64/include/asm/ptrace.h
arch/arm64/kernel/ptrace.c

index d6dd9fdbc3bee63b5f972ae71f7e31604af992d2..fefd8a8851189aa5f10f3dd9a413a790fda0ebc0 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 3eb848865d93cc4935dc4ce13429e78b3071ab57..adee9047d31c25512335c4792ba8fd981a54c7b6 100644 (file)
@@ -1171,6 +1171,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);