diff options
| author | Frans Kaashoek <kaashoek@mit.edu> | 2016-09-02 08:36:14 -0400 | 
|---|---|---|
| committer | Frans Kaashoek <kaashoek@mit.edu> | 2016-09-02 08:36:14 -0400 | 
| commit | b8fd4cba1367656b464a8ac303e4141107712c39 (patch) | |
| tree | 79c9cc8d58978ccf4184da731728002e1bec0361 | |
| parent | ae15515d80559ff95b315e3342c3baa00b87be1c (diff) | |
| parent | bc8221a59c083811ee2d8c49c0342ea59caa6d51 (diff) | |
| download | xv6-labs-b8fd4cba1367656b464a8ac303e4141107712c39.tar.gz xv6-labs-b8fd4cba1367656b464a8ac303e4141107712c39.tar.bz2 xv6-labs-b8fd4cba1367656b464a8ac303e4141107712c39.zip | |
Merge branch 'master' of g.csail.mit.edu:xv6-dev
| -rw-r--r-- | proc.c | 7 | ||||
| -rw-r--r-- | spinlock.c | 3 | ||||
| -rw-r--r-- | vm.c | 2 | 
3 files changed, 9 insertions, 3 deletions
| @@ -302,7 +302,12 @@ scheduler(void)  }  // Enter scheduler.  Must hold only ptable.lock -// and have changed proc->state. +// and have changed proc->state. Saves and restores +// intena because intena is a property of this +// kernel thread, not this CPU. It should +// be proc->intena and proc->ncli, but that would +// break in the few places where a lock is held but +// there's no process.  void  sched(void)  { @@ -102,8 +102,9 @@ pushcli(void)    eflags = readeflags();    cli(); -  if(cpu->ncli++ == 0) +  if(cpu->ncli == 0)      cpu->intena = eflags & FL_IF; +  cpu->ncli += 1;  }  void @@ -27,7 +27,7 @@ seginit(void)    c->gdt[SEG_UCODE] = SEG(STA_X|STA_R, 0, 0xffffffff, DPL_USER);    c->gdt[SEG_UDATA] = SEG(STA_W, 0, 0xffffffff, DPL_USER); -  // Map cpu and curproc -- these are private per cpu. +  // Map cpu and proc -- these are private per cpu.    c->gdt[SEG_KCPU] = SEG(STA_W, &c->cpu, 8, 0);    lgdt(c->gdt, sizeof(c->gdt)); | 
