diff --git a/kernel/fs.c b/kernel/fs.c index dea5864..c6bab15 100644 --- a/kernel/fs.c +++ b/kernel/fs.c @@ -194,7 +194,7 @@ static struct inode* iget(uint dev, uint inum); // Allocate an inode on device dev. // Mark it as allocated by giving it type type. // Returns an unlocked but allocated and referenced inode, -// or NULL if there is no free inode.. +// or NULL if there is no free inode. struct inode* ialloc(uint dev, short type) { diff --git a/kernel/trampoline.S b/kernel/trampoline.S index 0aaa413..7fb0b36 100644 --- a/kernel/trampoline.S +++ b/kernel/trampoline.S @@ -82,6 +82,7 @@ uservec: # load the kernel page table, from p->trapframe->kernel_satp ld t1, 0(a0) + sfence.vma zero, zero csrw satp, t1 sfence.vma zero, zero @@ -96,6 +97,7 @@ userret: # a0: user page table, for satp. # switch to the user page table. + sfence.vma zero, zero csrw satp, a0 sfence.vma zero, zero diff --git a/user/grind.c b/user/grind.c index 5cd89f4..431ed19 100644 --- a/user/grind.c +++ b/user/grind.c @@ -305,7 +305,7 @@ iter() exit(1); } if(pid1 == 0){ - rand_next = 31; + rand_next ^= 31; go(0); exit(0); } @@ -316,7 +316,7 @@ iter() exit(1); } if(pid2 == 0){ - rand_next = 7177; + rand_next ^= 7177; go(1); exit(0); } @@ -346,5 +346,6 @@ main() wait(0); } sleep(20); + rand_next += 1; } }