Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 36e097a8 authored by Bjorn Helgaas's avatar Bjorn Helgaas
Browse files

PCI: Split out bridge window override of minimum allocation address



pci_bus_alloc_resource() avoids allocating space below the "min" supplied
by the caller (usually PCIBIOS_MIN_IO or PCIBIOS_MIN_MEM).  This is to
protect badly documented motherboard resources.  But if we're allocating
space inside an already-configured PCI-PCI bridge window, we ignore "min".

See 688d1918 ("pci: make bus resource start address override minimum IO
address").

This patch moves the check to make it more visible and simplify future
patches.  No functional change.

Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
parent 167b1f04
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -147,11 +147,18 @@ pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res,
		    !(res->flags & IORESOURCE_PREFETCH))
			continue;

		/*
		 * "min" is typically PCIBIOS_MIN_IO or PCIBIOS_MIN_MEM to
		 * protect badly documented motherboard resources, but if
		 * this is an already-configured bridge window, its start
		 * overrides "min".
		 */
		if (r->start)
			min = r->start;

		/* Ok, try it out.. */
		ret = allocate_resource(r, res, size,
					r->start ? : min,
					max, align,
					alignf, alignf_data);
		ret = allocate_resource(r, res, size, min, max,
					align, alignf, alignf_data);
		if (ret == 0)
			break;
	}