From 5684556c19c50d38ad3873686d893481ea7d5509 Mon Sep 17 00:00:00 2001 From: Robert Morris Date: Wed, 5 Jun 2019 14:31:13 -0400 Subject: clean up -Wall --- trap.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) (limited to 'trap.c') diff --git a/trap.c b/trap.c index 929f761..050a94d 100644 --- a/trap.c +++ b/trap.c @@ -129,7 +129,6 @@ kerneltrap() { uint64 sstatus = r_sstatus(); uint64 scause = r_scause(); - uint64 sepc = r_sepc(); // XXX needed only for check at end? if((sstatus & SSTATUS_SPP) == 0) panic("kerneltrap: not from supervisor mode"); @@ -141,12 +140,6 @@ kerneltrap() printf("sepc=%p stval=%p\n", r_sepc(), r_stval()); panic("kerneltrap"); } - - // XXX assert that we don't have to save/restore sstatus or sepc. - if(r_sstatus() != sstatus) - panic("kerneltrap sstatus"); - if(r_sepc() != sepc) - panic("kerneltrap sepc"); } // check if it's an external interrupt or software interrupt, @@ -166,8 +159,6 @@ devintr() if(irq == UART0_IRQ){ uartintr(); - } else { - printf("stray interrupt irq=%d\n", irq); } plic_complete(irq); @@ -175,10 +166,12 @@ devintr() } else if(scause == 0x8000000000000001){ // software interrupt from a machine-mode timer interrupt. - acquire(&tickslock); - ticks++; - wakeup(&ticks); - release(&tickslock); + if(cpuid() == 0){ + acquire(&tickslock); + ticks++; + wakeup(&ticks); + release(&tickslock); + } // acknowledge. w_sip(r_sip() & ~2); -- cgit v1.2.3