free_irq problem in 2.6 kernel

From: brian franklin
Date: Fri Oct 29 2004 - 18:13:40 EST


I have a network driver which uses PCI Interrupt D.
Using kernel
2.6.8-1.528.2.10smp, I now have a problem when I call
free_irq(). It
now masks off the interrupt even though it is shared
with another
device. My initial call to request_irq() succeeds,
and my driver will
correctly receive interrupts. But once I call
free_irq(), the
interrupt is now masked, and subsequent calls to
request_irq() don't
unmask the interrupt.

The syntax of my calls to these two functions are:
status = request_irq(priv->irq , jnet_isr, SA_SHIRQ,
name1, dev);
and
free_irq(priv->irq, dev);

Can anyone shed some light on what I might be doing
wrong?

As a side note: I noticed that this kernel now
correctly configures
the IOAPIC configuration register with the interrupt
vector. Previous
kernels did not. Can anyone tell me how to
distinguish between a
kernel version that does configured the IOAPIC
configuration registers
correctly, and one that doesn't? (In previous
versions, the
configuration register would have an interrupt vector
of IRQ169 while
the interrupt was really IRQ19. Now, the interrupt
vector in the
configuration register matches with the IRQ that is
actually
selected.)

Thanks for any assistance.
Brian Franklin





__________________________________
Do you Yahoo!?
Yahoo! Mail Address AutoComplete - You start. We finish.
http://promotions.yahoo.com/new_mail
-
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/