On Fri, Apr 20, 2018 at 08:08:23AM -0500, Rob Herring wrote: > Having a 'bus-range' property for PCI bridges should not be required, > so remove the warning when missing. There was some confusion with the > Linux kernel printing a message that no property is present and the OS > assigned the bus number. This message was intended to be informational > rather than a warning. > > When the firmware doesn't enumerate the PCI bus and leaves it up to the > OS to do, then it is perfectly fine for the OS to assign bus numbers > and bus-range is not necessary. > > There are a few cases where bus-range is needed or useful as Arnd > Bergmann summarized: > > - Traditionally Linux avoided using multiple PCI domains, but instead > configured separate PCI host bridges to have non-overlapping > bus ranges so we can present them to user space as a single > domain, and run the kernel without CONFIG_PCI_DOMAINS. > Specifying the bus ranges this way would and give stable bus > numbers across boots when the probe order is not fixed. > > - On certain ARM64 systems, we must only use the first > 128 bus numbers based on the way the IOMMU identifies > the device with truncated bus/dev/fn number. There are probably > others like this, with various limitations. > > - To leave some room for hotplugged devices, each slot on > a host bridge can in theory get a range of bus numbers > that are available when assigning bus numbers at boot time > > Cc: Arnd Bergmann <arnd@xxxxxxxx> > Signed-off-by: Rob Herring <robh@xxxxxxxxxx> Merged, thanks. > --- > v2: > - expand the commit message about when bus-range is used or not > > checks.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/checks.c b/checks.c > index 1e6a88c81a99..261c57557ad2 100644 > --- a/checks.c > +++ b/checks.c > @@ -792,10 +792,9 @@ static void check_pci_bridge(struct check *c, struct dt_info *dti, struct node * > FAIL(c, dti, node, "incorrect #size-cells for PCI bridge"); > > prop = get_property(node, "bus-range"); > - if (!prop) { > - FAIL(c, dti, node, "missing bus-range for PCI bridge"); > + if (!prop) > return; > - } > + > if (prop->val.len != (sizeof(cell_t) * 2)) { > FAIL_PROP(c, dti, node, prop, "value must be 2 cells"); > return; -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Attachment:
signature.asc
Description: PGP signature