TI IRQ routing - irq_mask used before being set

Pavel Roskin proski at gnu.org
Thu Sep 18 05:44:59 BST 2003


Hello!

I've just realized the real reason why my old patch for TI IRQs that ended
up in the kernel caused problems for laptops.

The ISA IRQ list is determined after it's used to check if PCI IRQs should
be enabled.  The means that it's always 0 and the code always attempts to
reroute IRQs.  Further checks limited the damage, but the fact is that
irq_mask is 0 in the card specific override() functions.

Either yenta_get_socket_capabilities() should be put before the
socket->type->override call, or some more fine-grained reordering should be
used.

We want to probe interrupts after the card specific initialization has
been done.  On the other hand, we want to know the results of interrupt
probe to do card specific initialization.  It's a chicken and egg problem.

Perhaps cards with irqmux 0 should be set to use PCI IRQ and a flag should
be set to prevent unnecessary probing for ISA IRQs in
yenta_get_socket_capabilities().  I'll post a patch after some testing.

-- 
Regards,
Pavel Roskin



More information about the linux-pcmcia mailing list