[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200902234756.60e4c4f6@DUFFMAN>
Date: Wed, 2 Sep 2020 23:47:56 -0400
From: Samuel Dionne-Riel <samuel@...nne-riel.com>
To: Lorenzo Pieralisi <lorenzo.pieralisi@....com>
Cc: Marc Zyngier <maz@...nel.org>, Bjorn Helgaas <bhelgaas@...gle.com>,
Rob Herring <robh@...nel.org>, devicetree@...r.kernel.org,
Frank Rowand <frowand.list@...il.com>,
linux-kernel@...r.kernel.org
Subject: Re: Boot failure on gru-scarlet-inx with 5.9-rc2
On Wed, 2 Sep 2020 17:01:19 +0100
Lorenzo Pieralisi <lorenzo.pieralisi@....com> wrote:
> On Tue, Sep 01, 2020 at 02:33:56PM -0400, Samuel Dionne-Riel wrote:
>
> Please print a pointer as a pointer and print both bus and
> bus->parent.
Hopefully pointer as a pointer is %px. Not sure what else, if that's
wrong please tell.
---
@@ -79,6 +79,8 @@ static int rockchip_pcie_valid_device(struct rockchip_pcie *rockchip,
* do not read more than one device on the bus directly attached
* to RC's downstream side.
*/
+ printk("[!!] // bus (%px) bus->parent (%px)\n", bus, bus->parent);
+ printk("[!!] bus->primary (%d) == rockchip->root_bus_nr (%d) && dev (%d) > 0\n", bus->primary, rockchip->root_bus_nr, dev);
if (bus->primary == rockchip->root_bus_nr && dev > 0)
return 0;
--
Again, two values, verified with a bit of set and `sort -u`.
[ 1.691266] [!!] // bus (ffff0000ef9ab800) bus->parent (0000000000000000)
[ 1.691271] [!!] bus->primary (0) == rockchip->root_bus_nr (0) && dev (0) > 0
and
[ 1.697156] [!!] // bus (ffff0000ef9ac000) bus->parent (ffff0000ef9ab800)
[ 1.697160] [!!] bus->primary (0) == rockchip->root_bus_nr (0) && dev (0) > 0
First instance of each shown here. Last time I don't think it was.
> > + printk("[!!] bus->primary (%d) == rockchip->root_bus_nr
> > (%d) && dev (%d) > 0\n", bus->primary, rockchip->root_bus_nr, dev);
> > if (bus->primary == rockchip->root_bus_nr && dev > 0) return 0;
> >
> > --
> >
> > I get two kind of results
> >
> > [ 1.692913] [!!] // bus->parent (0)
> > [ 1.692917] [!!] bus->primary (0) == rockchip->root_bus_nr (0)
> > && dev (0) > 0
> >
> > and
> >
> > [ 1.693055] [!!] // bus->parent (-256794624)
> > [ 1.693058] [!!] bus->primary (0) == rockchip->root_bus_nr (0)
> > && dev (0) > 0
>
> Looks like this is the condition that pci_is_root_bus(bus->parent) is
> not hitting.
>
> You are accessing a resource IORESOURCE_MEM that has nothing to do
> with bus numbers.
>
> s/IORESOURCE_MEM/IORESOURCE_BUS
>
> should be better ;-)
At least correct, rather than luckily working.
Thanks, as always, anything I missed, or need more precisions, do ask.
--
Samuel Dionne-Riel
Powered by blists - more mailing lists