Fix a buglet in revision 189401: when restoring a 64-bit BAR,

write the upper 32-bits in the adjacent bar. The consequences
of the buglet were severe enough though: a machine check.
This commit is contained in:
Marcel Moolenaar 2009-03-10 06:21:52 +00:00
parent 280db2a6f5
commit d175be464e

View file

@ -3464,7 +3464,7 @@ pci_alloc_map(device_t dev, device_t child, int type, int *rid,
*/
pci_write_config(child, *rid, map, 4);
if (maprange == 64)
pci_write_config(child, *rid + 4, map, 4);
pci_write_config(child, *rid + 4, map >> 32, 4);
pci_write_config(child, PCIR_COMMAND, cmd, 2);
/* Ignore a BAR with a base of 0. */