Work around a bug in the current interrupt system by explicitly

rejecting INTR_FAST interrupts.  Since they can't be shared anyway,
this just short circuits a failure case that should work but is panic
fodder now.

This bug is that if the interrut condiation is active when you activate
the interrupt, then the interrupt routine will be called.  jhb had
a patch that may or may not work to fix it, but I've lost it.

This may be due to the sio probe doing something odd too.
This commit is contained in:
Warner Losh 2001-06-25 04:13:54 +00:00
parent 004c9c5da2
commit 9ae6dc2e12
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=78751

View File

@ -692,9 +692,13 @@ int
pcic_setup_intr(device_t dev, device_t child, struct resource *irq,
int flags, driver_intr_t *intr, void *arg, void **cookiep)
{
struct pcic_softc *sc = device_get_softc(dev);
struct pccard_devinfo *devi = device_get_ivars(child);
int err;
if (sc->csc_route == pci_parallel && (flags & INTR_FAST))
return (EINVAL);
if (((1 << rman_get_start(irq)) & PCIC_INT_MASK_ALLOWED) == 0) {
device_printf(dev, "Hardware does not support irq %ld.\n",
rman_get_start(irq));