diff options
author | ache <ache@FreeBSD.org> | 1997-06-08 17:15:31 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 1997-06-08 17:15:31 +0000 |
commit | c91025daa9ed23fc75d59176eacb0d27feba98ef (patch) | |
tree | 2196119b37c0f4f9df4932ec52960b81f33481c0 /sys/i386/isa/isa.c | |
parent | d219e7f0ddb30cdd388fba5371f5a20504323f1d (diff) | |
download | FreeBSD-src-c91025daa9ed23fc75d59176eacb0d27feba98ef.zip FreeBSD-src-c91025daa9ed23fc75d59176eacb0d27feba98ef.tar.gz |
Add safety check in case "conflicts" keyword specified more times than
needed
Diffstat (limited to 'sys/i386/isa/isa.c')
-rw-r--r-- | sys/i386/isa/isa.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/i386/isa/isa.c b/sys/i386/isa/isa.c index 9af74ec..62185c6 100644 --- a/sys/i386/isa/isa.c +++ b/sys/i386/isa/isa.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * from: @(#)isa.c 7.2 (Berkeley) 5/13/91 - * $Id: isa.c,v 1.89 1997/06/02 08:19:05 dfr Exp $ + * $Id: isa.c,v 1.90 1997/06/08 16:43:37 ache Exp $ */ /* @@ -537,9 +537,12 @@ config_isadev_c(isdp, mp, reconfig) undirect_isa_irq(rirq); /* free for ISA */ } #endif /* APIC_IO */ - if (!isdp->id_conflicts) - register_intr(ffs(isdp->id_irq) - 1, isdp->id_id, - isdp->id_ri_flags, isdp->id_intr, + if ( !isdp->id_conflicts + || !intr_registered(ffs(isdp->id_irq) - 1)) + register_intr(ffs(isdp->id_irq) - 1, + isdp->id_id, + isdp->id_ri_flags, + isdp->id_intr, mp, isdp->id_unit); } } else { |