Re: parport_pc: irq= parameter with limited usefulness, kernel hangon PPC/OldWorldMac

From: Alan Cox
Date: Tue Sep 14 2010 - 10:53:30 EST


> *) Under at least 2.6.31 and up, the kernel assigns IRQ 25 to the card.
> Under 2.6.28 and below, the card
> was run in polling mode (i.e. irq was -1, not 25).
>
> *) Furthermore, the above report suggests that the system wants to
> handle an edge-triggered IRQ, though
> according to /proc/interrupts, IRQ 25 is level-triggered.

The parport_pc code just asks for the IRQ so any level/edge mismatch
would appear to be coming from the firmware or architecture code. The
older kernel didn't know to use the IRQ on PCI devices which stopped some
things working and hurt performance. That would also have masked the bug
you see - so the report makes total sense.

> should, according to the documentation and the parport_pc.c source do
> that. For reasons beyond me, the kernel module wants
> to be smarter than I and *still* enables the IRQ. I'm pretty sure that

The options only apply to legacy ports - it has always been that way.
It's not clear how you would specify which port to affect otherwise.

> *) parport_pc should take irq=none seriously and should not silently
> override it,

parport_pc could do with a way to specify whether to use the IRQ or DMA
on PCI ports but really this shouldn't be needed if the rest of the
kernel logic is right.

> *) parport_pc should at least not crash the system completely in case
> the IRQ is enabled.
>
> The latter *might* be an issue with the G3 powermac hardware, which is
> of course weird and has a couple of hardware

The latter looks like a bug in the PPC side support, perhaps misreporting
an IRQ, or mislabelling it in some way. I think the first step is to find
a PPC hacker who can figure out why the apparently sane IRQ request from
the parport layer is exploding.

Even if there is some technical reason the IRQ can't be used then the arch
code shouldn't be reporting an IRQ for it, and the parport_pc could ought
to just work.

Adding Ben to the Cc: so we it can get hunted down.

Alan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/