Disable the check in icu_setup() to see if a handler was already used as
the current interrupt thread routines will guarantee the condition this is checking for at a higher level but inthand_add() and inthand_remove() as they currently exist don't satisfy this condition. (Which does need to be fixed but which will take a bit more work.) This fixes shared interrupts.
This commit is contained in:
parent
ccf35be189
commit
bf2965ed32
@ -481,8 +481,10 @@ icu_setup(int intr, driver_intr_t *handler, void *arg, int flags)
|
||||
if ((u_int)intr >= ICU_LEN || intr == ICU_SLAVEID)
|
||||
#endif /* APIC_IO */
|
||||
return (EINVAL);
|
||||
#if 0
|
||||
if (intr_handler[intr] != isa_strayintr)
|
||||
return (EBUSY);
|
||||
#endif
|
||||
|
||||
ef = read_eflags();
|
||||
disable_intr();
|
||||
|
@ -481,8 +481,10 @@ icu_setup(int intr, driver_intr_t *handler, void *arg, int flags)
|
||||
if ((u_int)intr >= ICU_LEN || intr == ICU_SLAVEID)
|
||||
#endif /* APIC_IO */
|
||||
return (EINVAL);
|
||||
#if 0
|
||||
if (intr_handler[intr] != isa_strayintr)
|
||||
return (EBUSY);
|
||||
#endif
|
||||
|
||||
ef = read_eflags();
|
||||
disable_intr();
|
||||
|
@ -481,8 +481,10 @@ icu_setup(int intr, driver_intr_t *handler, void *arg, int flags)
|
||||
if ((u_int)intr >= ICU_LEN || intr == ICU_SLAVEID)
|
||||
#endif /* APIC_IO */
|
||||
return (EINVAL);
|
||||
#if 0
|
||||
if (intr_handler[intr] != isa_strayintr)
|
||||
return (EBUSY);
|
||||
#endif
|
||||
|
||||
ef = read_eflags();
|
||||
disable_intr();
|
||||
|
@ -481,8 +481,10 @@ icu_setup(int intr, driver_intr_t *handler, void *arg, int flags)
|
||||
if ((u_int)intr >= ICU_LEN || intr == ICU_SLAVEID)
|
||||
#endif /* APIC_IO */
|
||||
return (EINVAL);
|
||||
#if 0
|
||||
if (intr_handler[intr] != isa_strayintr)
|
||||
return (EBUSY);
|
||||
#endif
|
||||
|
||||
ef = read_eflags();
|
||||
disable_intr();
|
||||
|
Loading…
Reference in New Issue
Block a user