oops, don't hold mycpu() result across intr_off()

This commit is contained in:
Robert Morris 2019-07-01 14:15:18 -04:00 committed by Frans Kaashoek
parent 2c0338fe42
commit 535ac52efa

View file

@ -87,13 +87,12 @@ holding(struct spinlock *lk)
void
push_off(void)
{
struct cpu *c = mycpu();
int old = intr_get();
intr_off();
if(c->noff == 0)
c->intena = old;
c->noff += 1;
if(mycpu()->noff == 0)
mycpu()->intena = old;
mycpu()->noff += 1;
}
void