Port-atari archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

atari/dev/zs.c interrupt issue



I tried to transfer some files to my Falcon running NetBSD 5 kernel
with ppp. I'm using zs0b (ttyA1) device which is standard Falcon
serial port.

However I started to see "zs0b: ring overrun" messages early during
transfer and occasional freezing.

It seems that BASEPRI() is causing this problem and following
patch cures this issue:

--- zs.c        11 Jun 2008 14:35:53 -0000      1.57
+++ zs.c        24 Jan 2009 00:23:49 -0000
@@ -630,15 +630,15 @@
 #undef b

        if(intflags & 1) {
-               if(BASEPRI(sr)) {
+               if (!cb_scheduled) {
+                       cb_scheduled++;
+                       add_sicallback((si_farg)zssoft, 0, 0);
+               }
+               else {
                        spl1();
                        zsshortcuts++;
                        return(zssoft(sr));
                }
-               else if(!cb_scheduled) {
-                       cb_scheduled++;
-                       add_sicallback((si_farg)zssoft, 0, 0);
-               }
        }
        return(intflags & 2);
 }

It looks that we should pull this to NetBSD 4 & 5. Any comments ?

-Tuomo


Home | Main Index | Thread Index | Old Index