Author: rminnich Date: 2008-04-29 05:52:57 +0200 (Tue, 29 Apr 2008) New Revision: 669
Modified: coreboot-v3/device/device.c Log: properly align bridge resources.
Signed-off-by: Aaron Lwe aaron.lwe@gmail.com Acked-by: Joseph Smith joe@settoplinux.org Tested on v3 and Signed-off-by: Ronald G. Minnich rminnich@gmail.com
This patch also (accidently) includes a simple fix for the null pointer reference problem. I had forgotten that the fix was in there, but I will include it here and hope no one is too upset about its inclusion.
Modified: coreboot-v3/device/device.c =================================================================== --- coreboot-v3/device/device.c 2008-04-27 02:50:07 UTC (rev 668) +++ coreboot-v3/device/device.c 2008-04-29 03:52:57 UTC (rev 669) @@ -292,9 +292,10 @@ int i; printk(BIOS_SPEW, "%s: %s(%s) dtsname %s have_resources %d enabled %d\n", - __func__, bus->dev->dtsname, dev_path(bus->dev), - curdev->dtsname, - curdev->have_resources, curdev->enabled); + __func__, bus->dev? bus->dev->dtsname : "NOBUSDEV", + bus->dev ? dev_path(bus->dev) : "NOBUSDEV", + curdev->dtsname, + curdev->have_resources, curdev->enabled); if (curdev->have_resources) { continue; } @@ -469,10 +470,6 @@ * they have no size. PCI bridge resources are a good example * of this. */ - /* Propagate the resource alignment to the bridge register. */ - if (resource->align > bridge->align) { - bridge->align = resource->align; - }
/* Make certain we are dealing with a good minimum size. */ size = resource->size; @@ -481,6 +478,11 @@ align = min_align; }
+ /* Propogate the resource alignment to the bridge register */ + if (align > bridge->align) { + bridge->align = align; + } + if (resource->flags & IORESOURCE_FIXED) { continue; }