diff options
author | Robert Morris <[email protected]> | 2019-06-05 14:31:13 -0400 |
---|---|---|
committer | Robert Morris <[email protected]> | 2019-06-05 14:31:13 -0400 |
commit | 5684556c19c50d38ad3873686d893481ea7d5509 (patch) | |
tree | bc309b61d99202013f6f6af175c9c0dd679e1465 /trap.c | |
parent | 5eb1cb49722cce9afee48886a8db138d5f58d0ff (diff) | |
download | xv6-labs-5684556c19c50d38ad3873686d893481ea7d5509.tar.gz xv6-labs-5684556c19c50d38ad3873686d893481ea7d5509.tar.bz2 xv6-labs-5684556c19c50d38ad3873686d893481ea7d5509.zip |
clean up -Wall
Diffstat (limited to 'trap.c')
-rw-r--r-- | trap.c | 19 |
1 files changed, 6 insertions, 13 deletions
@@ -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); |