[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v1 07/14] xen/riscv: introduce exception handlers implementation
On Mon, 2023-01-23 at 11:50 +0000, Andrew Cooper wrote: > > > > + /* Save context to stack */ > > + REG_S sp, (RISCV_CPU_USER_REGS_OFFSET(sp) - > > RISCV_CPU_USER_REGS_SIZE) (sp) > > + addi sp, sp, -RISCV_CPU_USER_REGS_SIZE > > + REG_S t0, RISCV_CPU_USER_REGS_OFFSET(t0)(sp) > > Exceptions on RISC-V don't adjust the stack pointer. This logic > depends > on interrupting Xen code, and Xen not having suffered a stack > overflow > (and actually, that the space on the stack for all registers also > doesn't overflow). > Probably I missed something but an idea of the code above was to reserve memory on a stack to save the registers which can be changed in __handler_expception() as the line of code where exception occurs will expect that registers value weren't changed. Otherwise if we won't reserve memory on stack it will be corrupted by REG_S which basically is SD instruction.
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |