Re: Linux-2.1.109.. preliminary code freeze.

bde@accessone.com
Sat, 18 Jul 1998 02:09:21 -0700


In Message-ID: <19980718002820.A582@uni-mainz.de>
Dominik Kubla <dominik.kubla@uni-mainz.de>:
> > - de4x5 driver update
>
> 2.1.109 dies immedeately after ifconfig with "Aiee, killing interrupt
> handler". Reason appears to be a "bad unaligned kernel access" in
> de4x5_interrupt(). Sorry for not being more specific, but ksymoops can't
> decode an alpha OOPS!

The problem here is applying "test_and_set_bit" to a poorly-aligned char.
The variable is "interrupt" in a "struct device" (line 192 in netdevice.h).
For the UDB, this can be kludged-around by changing the two char-s to int-s.
Somebody else should know the correct solution. The code in question is
around line 1560 in de4x5.c:

static void
de4x5_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
struct device *dev = (struct device *)dev_id;
struct de4x5_private *lp;
s32 imr, omr, sts, limit;
u_long iobase;

if (dev == NULL) {
printk ("de4x5_interrupt(): irq %d for unknown device.\n", irq);
return;
}
lp = (struct de4x5_private *)dev->priv;
iobase = dev->base_addr;

if (test_and_set_bit(MASK_INTERRUPTS, (void*) &dev->interrupt)) <=======
printk("%s: Re-entering the interrupt handler.\n", dev->name);

There is an unrelated typo in asm-alpha/serial.h. The problem is a hanging-
tab at the end of the line:

--- linux/include/asm-alpha/serial.h.orig Fri Jul 17 17:59:18 1998
+++ linux/include/asm-alpha/serial.h Fri Jul 17 18:46:34 1998
@@ -37,7 +37,7 @@


#ifdef CONFIG_SERIAL_MANY_PORTS
-#define EXTRA_SERIAL_PORT_DEFNS \
+#define EXTRA_SERIAL_PORT_DEFNS \
{ 0, BASE_BAUD, 0x1A0, 9, FOURPORT_FLAGS }, /* ttyS4 */ \
{ 0, BASE_BAUD, 0x1A8, 9, FOURPORT_FLAGS }, /* ttyS5 */ \
{ 0, BASE_BAUD, 0x1B0, 9, FOURPORT_FLAGS }, /* ttyS6 */ \

-- 
B. D. Elliott   bde@accessone.com   (Seattle)

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html