Previously assigned resources are perfectly valid - just silently
ignore them.
struct resource *r = &dev->resource[i];
unsigned long r_size;
- if (!(r->flags & IORESOURCE_IO))
+ if (r->parent || !(r->flags & IORESOURCE_IO))
continue;
- if (r->parent)
- BUG();
r_size = r->end - r->start + 1;
if (r_size < 0x400)
struct resource *r = &dev->resource[i];
unsigned long r_size;
- if ((r->flags & mask) != type)
+ if (r->parent || (r->flags & mask) != type)
continue;
- if (r->parent)
- BUG();
r_size = r->end - r->start + 1;
/* For bridges size != alignment */
align = (i < PCI_BRIDGE_RESOURCES) ? r_size : r->start;