Subject: Re: panic: crazy interrupts
To: None <port-sparc@NetBSD.ORG>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: port-sparc
Date: 11/01/1997 09:47:36
>> I fixed the race condition that was causing this earlier this year
>> in the previous version of the zs driver. I fear that change was
>> not ported to the current driver.
> i believe we should backout the new zs driver for NetBSD/sparc 1.3,
> as it has so far shown at least two cases of lossage (hangs when DCD
> asserted, and crtscts being set, and this new panic).
I can't speak to the former, but I've thought about it and believe I
can make the latter go away with a few lines of code. Given the twisty
little maze of structures, all different, that the zs code seems to be,
I can't fix it right without understanding it a lot better than one
afternoon's study produces. But it'd be easy enough to do something
like
static volatile int zs_expectstray = 0;
zshard() { ...
if (returnvalue==0 && zs_expectstray) {
zs_expectstray=0; returnvalue=1;
}
return(returnvalue);
}
zs_putc() { ...
s=splhigh();
...
zs_expectstray=1;
splx(s);
zs_expectstray=0;
...
}
which should at least paper over the problem.
der Mouse
mouse@rodents.montreal.qc.ca
7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B