Re: Kernel diffs

From: Dave Hudson <dave_at_nospam.org>
Date: Mon Mar 06 1995 - 02:54:16 PST

Hi Andy,

Andrew Valencia wrote:
>

I just thought about this one a little more...

> syscall argument handling was indeed broken, as was copyin/copyout, which no
> longer used the t_probe to protect themselves. This was all rather hidden
> by the fault handling code, which assumed that any reference to a virtual
> address in the 0x80000000..0xffffffff range should result in the current
> process being killed. Very questionable in any case, but spectacular when
> it happens from an interrupt handler with no current process!

Two things puzzle me a little about this - if a process attempts to use an
invalid pointer reference when calling a syscall I'd have thought it pretty
reasonable to notify a fault? It's trying to do something naughty - much as
if it was trying to do a NULL pointer reference. The query is what
circumstances would cause one of our interrupt handlers to attempt to do
anything with user-space? I thought all we did was queue an interrupt
message, or call hardclock()?

I guess it's not a great problem as the copyin()/copyout() code can be made
to inline the t_probe stuff reasonably easily (I had it do this a while
back), but I'm trying to understand what I missed. I've clocked up days of
uptime without seeing any problems with this code - both with heavy (loadavg
> 5) and no loading).

                                Regards,
                                Dave
Received on Mon Mar 6 02:20:34 1995

This archive was generated by hypermail 2.1.8 : Thu Sep 22 2005 - 15:12:17 PDT