diff options
Diffstat (limited to 'sys/contrib/dev/acpica/rsirq.c')
-rw-r--r-- | sys/contrib/dev/acpica/rsirq.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/sys/contrib/dev/acpica/rsirq.c b/sys/contrib/dev/acpica/rsirq.c index 79afd1e..12bc827 100644 --- a/sys/contrib/dev/acpica/rsirq.c +++ b/sys/contrib/dev/acpica/rsirq.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Module Name: rsirq - IRQ resource descriptors - * $Revision: 28 $ + * $Revision: 30 $ * ******************************************************************************/ @@ -190,18 +190,16 @@ AcpiRsIrqResource ( } } - if (i == 0) - { - /* Zero interrupts is invalid! */ + /* Zero interrupts is valid */ - return_ACPI_STATUS (AE_BAD_DATA); - } OutputStruct->Data.Irq.NumberOfInterrupts = i; - - /* - * Calculate the structure size based upon the number of interrupts - */ - StructSize += ((ACPI_SIZE) OutputStruct->Data.Irq.NumberOfInterrupts - 1) * 4; + if (i > 0) + { + /* + * Calculate the structure size based upon the number of interrupts + */ + StructSize += ((ACPI_SIZE) i - 1) * 4; + } /* * Point to Byte 3 if it is used @@ -233,6 +231,7 @@ AcpiRsIrqResource ( * are allowed (ACPI spec v1.0b ection 6.4.2.1), * so an error will occur if we reach this point */ + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Invalid interrupt polarity/trigger in resource list\n")); return_ACPI_STATUS (AE_BAD_DATA); } } |