Re: [PATCH v2 4/4] PCI: Allow extend_bridge_window() to shrink resource if necessary

From: Mika Westerberg
Date: Thu Jan 16 2020 - 05:23:06 EST


On Wed, Jan 15, 2020 at 05:58:05PM +0000, Nicholas Johnson wrote:
> Remove checks for resource size in extend_bridge_window(). This is
> necessary to allow the pci_bus_distribute_available_resources() to
> function when the kernel parameter pci=hpmemsize=nn[KMG] is used to
> allocate resources. Because the kernel parameter sets the size of all
> hotplug bridges to be the same, there are problems when nested hotplug
> bridges are encountered. Fitting a downstream hotplug bridge with size X
> and normal bridges with non-zero size Y into parent hotplug bridge with
> size X is impossible, and hence the downstream hotplug bridge needs to
> shrink to fit into its parent.
>
> Add check for if bridge is extended or shrunken and reflect that in the
> call to pci_dbg().
>
> Do not change resource size if new size is zero (if we have run out of a
> bridge window resource) to prevent the PCI resource assignment code from
> attempting to assign a zero-sized resource. If this happens, we are
> running out of resource space, anyway, so not shrinking the resource
> will not deny space for other resources. This prevents the following
> from happening:
>
> pcieport 0000:07:04.0: can't enable device: BAR 13 [io 0x1000-0x0fff] not claimed
>
> Signed-off-by: Nicholas Johnson <nicholas.johnson-opensource@xxxxxxxxxxxxxx>

Reviewed-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>