summaryrefslogtreecommitdiffstats
path: root/sys/pci/pci.c
diff options
context:
space:
mode:
authorse <se@FreeBSD.org>1997-01-25 01:57:30 +0000
committerse <se@FreeBSD.org>1997-01-25 01:57:30 +0000
commit09dd134c9400d86db83af6043b65ea6598caa241 (patch)
treedde0bfb82b2bdc2075fd5097def19a2bed04e5c0 /sys/pci/pci.c
parent5479ba63a9de106855df4c536562735e64f3e512 (diff)
downloadFreeBSD-src-09dd134c9400d86db83af6043b65ea6598caa241.zip
FreeBSD-src-09dd134c9400d86db83af6043b65ea6598caa241.tar.gz
Improve on previous fix: Clean up getirq() as well, and remove redundant
warning messages.
Diffstat (limited to 'sys/pci/pci.c')
-rw-r--r--sys/pci/pci.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/sys/pci/pci.c b/sys/pci/pci.c
index 23c1109..d8b134c 100644
--- a/sys/pci/pci.c
+++ b/sys/pci/pci.c
@@ -1256,14 +1256,15 @@ getirq (pcici_t tag)
irq = PCI_INTERRUPT_LINE_EXTRACT(
pci_conf_read (tag, PCI_INTERRUPT_REG));
- if (irq <= 0) {
+ if (irq == 0 || irq == 0xff) {
printf ("\tint line register not set by bios\n");
- return (0);
+ return (0xff);
}
- if (irq >= pcibus->pb_maxirq || irq >= PCI_MAX_IRQ) {
- printf ("\tirq %d invalid.\n", irq);
- return (0);
+ if (irq >= PCI_MAX_IRQ) {
+ printf ("\tirq %d out of bounds (must be < %d).\n",
+ irq, PCI_MAX_IRQ);
+ return (0xff);
}
return (irq);
@@ -1315,8 +1316,7 @@ int pci_map_int (pcici_t tag, pci_inthand_t *func, void *arg, unsigned *maskptr)
*/
irq = getirq (tag);
- if ((irq == 0) || (irq >= PCI_MAX_IRQ)) {
- printf ("\tillegal irq %d.\n", irq);
+ if (irq == 0xff) {
return (0);
};
mask= 1ul << irq;
@@ -1455,8 +1455,7 @@ int pci_unmap_int (pcici_t tag)
*/
irq = getirq (tag);
- if (irq >= PCI_MAX_IRQ) {
- printf ("\tillegal irq %d.\n", irq);
+ if (irq == 0xff) {
return (0);
};
OpenPOWER on IntegriCloud