On Tue, Apr 24, 2012 at 06:24:27PM +1200, Alexey Korolev wrote:
Do not store pci region stats - instead calulate the sum and alignment on demand.
[...]
@@ -446,9 +459,9 @@ static int pci_bios_check_devices(struct pci_bus *busses) for (type = 0; type < PCI_REGION_TYPE_COUNT; type++) { u64 align = (type == PCI_REGION_TYPE_IO) ? PCI_BRIDGE_IO_MIN : PCI_BRIDGE_MEM_MIN;
if (s->r[type].align > align)
align = s->r[type].align;
u64 size = ALIGN(s->r[type].sum, align);
if (pci_region_align(&s->r[type]) > align)
align = pci_region_align(&s->r[type]);
u64 size = ALIGN(pci_region_sum(&s->r[type]), align);
[...]
- r_end->base = ALIGN_DOWN((BUILD_PCIMEM_END - pci_region_sum(r_end)),
pci_region_align(r_end));
- r_start->base = ALIGN_DOWN((r_end->base - pci_region_sum(r_start)),
pci_region_align(r_start));
I'd avoid making function calls in the parameter of a macro (it can be executed multiple times and it's non-obvious).
-Kevin