mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-12-05 03:39:02 +00:00
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:
parent
004c9c5da2
commit
9ae6dc2e12
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=78751
@ -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));
|
||||
|
Loading…
Reference in New Issue
Block a user