diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c index cb389277df413915e5784f1c18bea599dc90fca8..958da7db90331c44315f95ab90553c586d918c46 100644 --- a/drivers/pci/setup-bus.c +++ b/drivers/pci/setup-bus.c @@ -1066,10 +1066,10 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask, r->flags = 0; continue; } - size += r_size; + size += max(r_size, align); /* Exclude ranges with size > align from calculation of the alignment. */ - if (r_size == align) + if (r_size <= align) aligns[order] += align; if (order > max_order) max_order = order;