cyclades.c under SMP-Linux-2.1.46

Uwe Ohse (uwe@ohse.de)
Sun, 20 Jul 1997 21:47:27 +0200 (MET DST)


Hello,

for some reason i didn't understand cy_probe() was called
while probe_ready and intr_base_addr both were zero, leading
to a kernel oops.

Linux-2.1.46, Dual-Processor Tyan Tomcat III. I first noticed the
problem around 2.1.27 or .29, didn't see it with 2.0.x.

With this little patch it works again.

Cyclom driver 1.36.4.33 1997/06/27 19:00:00
built Jul 17 1997 21:57:06
Cyclom-Y/ISA #1: 0xc00d0000-0xc00d1fff, IRQ5, 8 channels starting from port 0.

Regards, Uwe

-- 
--- linux-2.1.46/drivers/char/cyclades.c	Thu Jul 17 07:47:14 1997
+++ linux/drivers/char/cyclades.c	Sun Jul 20 19:19:20 1997
@@ -1065,9 +1067,16 @@
   int index = 0;        /* probing interrupts is only for ISA */
 
     if (!probe_ready) {
-        *(intr_base_addr + (Cy_ClrIntr<<index)) = 0;
+    	if (intr_base_addr)
+	        *(intr_base_addr + (Cy_ClrIntr<<index)) = 0;
         return;
     }
 
     cy_irq_triggered = irq;
     cy_triggered |= 1 << irq;