Page MenuHomeFreeBSD

D23511.id.diff
No OneTemporary

D23511.id.diff

Index: head/sys/riscv/riscv/trap.c
===================================================================
--- head/sys/riscv/riscv/trap.c
+++ head/sys/riscv/riscv/trap.c
@@ -245,12 +245,10 @@
do_trap_supervisor(struct trapframe *frame)
{
uint64_t exception;
- uint64_t sstatus;
/* Ensure we came from supervisor mode, interrupts disabled */
- __asm __volatile("csrr %0, sstatus" : "=&r" (sstatus));
- KASSERT((sstatus & (SSTATUS_SPP | SSTATUS_SIE)) == SSTATUS_SPP,
- ("We must came from S mode with interrupts disabled"));
+ KASSERT((csr_read(sstatus) & (SSTATUS_SPP | SSTATUS_SIE)) ==
+ SSTATUS_SPP, ("Came from S mode with interrupts enabled"));
exception = (frame->tf_scause & EXCP_MASK);
if (frame->tf_scause & EXCP_INTR) {
@@ -305,7 +303,6 @@
{
uint64_t exception;
struct thread *td;
- uint64_t sstatus;
struct pcb *pcb;
td = curthread;
@@ -313,9 +310,8 @@
pcb = td->td_pcb;
/* Ensure we came from usermode, interrupts disabled */
- __asm __volatile("csrr %0, sstatus" : "=&r" (sstatus));
- KASSERT((sstatus & (SSTATUS_SPP | SSTATUS_SIE)) == 0,
- ("We must came from U mode with interrupts disabled"));
+ KASSERT((csr_read(sstatus) & (SSTATUS_SPP | SSTATUS_SIE)) == 0,
+ ("Came from U mode with interrupts enabled"));
exception = (frame->tf_scause & EXCP_MASK);
if (frame->tf_scause & EXCP_INTR) {

File Metadata

Mime Type
text/plain
Expires
Thu, Sep 3, 8:36 AM (12 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37668943
Default Alt Text
D23511.id.diff (1 KB)

Event Timeline