Subject: Re: bug alert: pmap.c - m68k
To: None <firstname.lastname@example.org>
From: Gordon W. Ross <email@example.com>
Date: 04/18/1996 10:55:17
> From: Leo Weppelman <firstname.lastname@example.org>
> Date: Wed, 17 Apr 1996 09:52:17 +0200 (MET DST)
> I have seen a couple of kernel panics lately that all originated from
> pmap_remove. The trouble is the check if the segment table of the
> current process is changed. It turns out that in a considerable number
> of cases, curproc == NULL. As page-zero is a valid page on the atari
> (and as far as I know this is true on most m68k-ports), the pointer
> to the changed map is compared to something undefined. Occasionally this
> test returns true and PMAP_ACTIVATE is called with a bogus pcb.
> The solution seems quite simple: check if curproc is a NULL-pointer....
> However, there are more references to curproc and this made me wonder if
> curproc being NULL is an error in itself. I can't judge this myself because
> my knowledge of the vm-system is limited and I hope to find some on this
> list ;-)
Are you calling vm_fault on some address you should not? Maybe
a kernel-mode fault on some VA outside the "managed" space?
> Another interesting point is: is it possible to make page-zero invalid.
> I haven't investigated this very thoroughly yet, but I think it's possible.
> This has the advantage of catching this kind of bugs earlier.
Yes. Page zero is invalid on the Sun3.