mirror of
https://github.com/reactos/reactos.git
synced 2024-07-01 02:10:07 +00:00
[FREELDR]
- Improve GetPciIrqRoutingTable. Patch by Sergey Chernov (serrox at ya dot ru), small modifications by me. CORE-8440 svn path=/trunk/; revision=63985
This commit is contained in:
parent
038c129cf6
commit
0cca44bdb8
|
@ -41,6 +41,14 @@ GetPciIrqRoutingTable(VOID)
|
|||
{
|
||||
TRACE("Found signature\n");
|
||||
|
||||
if (Table->TableSize < FIELD_OFFSET(PCI_IRQ_ROUTING_TABLE, Slot) ||
|
||||
Table->TableSize % 16 != 0)
|
||||
{
|
||||
ERR("Invalid routing table size (%u) at %p. Continue searching...\n", Table->TableSize, Table);
|
||||
Table = (PPCI_IRQ_ROUTING_TABLE)((ULONG_PTR)Table + 0x10);
|
||||
continue;
|
||||
}
|
||||
|
||||
Ptr = (PUCHAR)Table;
|
||||
Sum = 0;
|
||||
for (i = 0; i < Table->TableSize; i++)
|
||||
|
@ -50,18 +58,20 @@ GetPciIrqRoutingTable(VOID)
|
|||
|
||||
if ((Sum & 0xFF) != 0)
|
||||
{
|
||||
ERR("Invalid routing table\n");
|
||||
return NULL;
|
||||
ERR("Invalid routing table checksum (%#lx) at %p. Continue searching...\n", Sum & 0xFF, Table);
|
||||
}
|
||||
else
|
||||
{
|
||||
TRACE("Valid checksum\n");
|
||||
return Table;
|
||||
}
|
||||
|
||||
TRACE("Valid checksum\n");
|
||||
|
||||
return Table;
|
||||
}
|
||||
|
||||
Table = (PPCI_IRQ_ROUTING_TABLE)((ULONG_PTR)Table + 0x10);
|
||||
}
|
||||
|
||||
ERR("No valid routing table found!\n");
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue