On 1/6/22 1:41 AM, Song Gao wrote:
+struct target_sigcontext {
+    uint64_t sc_pc;
+    uint64_t sc_regs[32];
+    uint32_t sc_flags;
+    uint32_t sc_fcsr;
+    uint32_t sc_vcsr;
+    uint64_t sc_fcc;
+    uint64_t sc_scr[4];
+    union fpureg sc_fpregs[32] __attribute__((aligned(32)));
+    uint8_t sc_reserved[4096] __attribute__((aligned(16)));
+};

Does not match the current (December 31) kernel source.

+static inline void setup_sigcontext(CPULoongArchState *env,
+                                    struct target_sigcontext *sc)

Don't bother with inline markers anywhere in this file.  Let the compiler 
decide.

+restore_sigcontext(CPULoongArchState *env, struct target_sigcontext *sc)
+{
+    int i;
+
+    __get_user(env->pc, &sc->sc_pc);
+    __get_user(env->fcsr0, &sc->sc_fcsr);

You need to call restore_fp_status after this assignment, somewhere before the end of the function.

Otherwise this looks ok.


r~

Reply via email to