Add an error message if there is a zero-sized fixed resource. Fix the existing

example of one.

Signed-off-by: Myles Watson <mylesgw@gmail.com>
Acked-by: Patrick Georgi <patrick.georgi@coresystems.de>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4557 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Myles Watson 2009-08-19 19:12:39 +00:00
parent 6bd93f4753
commit ce9d8640b1
2 changed files with 7 additions and 1 deletions

View File

@ -556,8 +556,12 @@ static void constrain_resources(struct device *dev, struct constraints* limits)
/* Constrain limits based on the fixed resources of this device. */ /* Constrain limits based on the fixed resources of this device. */
for (i = 0; i < dev->resources; i++) { for (i = 0; i < dev->resources; i++) {
res = &dev->resource[i]; res = &dev->resource[i];
if (!res->size) if (!res->size) {
/* It makes no sense to have 0-sized, fixed resources.*/
printk_err("skipping %s@%lx fixed resource, size=0!\n",
dev_path(dev), res->index);
continue; continue;
}
if (!(res->flags & IORESOURCE_FIXED)) if (!(res->flags & IORESOURCE_FIXED))
continue; continue;

View File

@ -332,6 +332,8 @@ static void pci_get_rom_resource(struct device *dev, unsigned long index)
* inited by driver_pci_onboard_ops::enable_dev() */ * inited by driver_pci_onboard_ops::enable_dev() */
if ((dev->on_mainboard) && (dev->rom_address != 0)) { if ((dev->on_mainboard) && (dev->rom_address != 0)) {
resource->base = dev->rom_address; resource->base = dev->rom_address;
/* The resource allocator needs the size to be non-zero. */
resource->size = 0x100;
resource->flags |= IORESOURCE_MEM | IORESOURCE_READONLY | resource->flags |= IORESOURCE_MEM | IORESOURCE_READONLY |
IORESOURCE_ASSIGNED | IORESOURCE_FIXED; IORESOURCE_ASSIGNED | IORESOURCE_FIXED;
} }