Re: [PATCH V3 5/6] Avoid duplicate probe for of platform devices

From: Grant Likely
Date: Wed Jul 11 2012 - 23:36:37 EST


On Mon, 9 Jul 2012 07:58:31 -0700, Greg KH <greg@xxxxxxxxx> wrote:
> On Mon, Jul 09, 2012 at 03:46:59AM +0000, Li Yang-R58472 wrote:
> > > > I don't understand, why is this just showing up now? What changed to
> > > > cause this? Couldn't that be the real problem here?
> > > >
> > >
> > > The issue is showing up because we now probe devices twice.
> > > Previously, we just probe devices once. But now we changed the way of pci
> > > init which makes pci controllers should be probed earlier than other
> > > devices.
> > > So we have to probe pci nodes separately. Probe more than once is the
> > > root
> > > cause of this issue.
> > >
> > > The pci patchset I mentioned please refer to:
> > > http://patchwork.ozlabs.org/patch/163742/
> >
> > Let me try to clarify a little bit. The of platform bus normally
> > traverse the device tree to add all the devices. The change which
> > caused problem is that we need to probe PCIe RC devices at a earlier
> > stage of initialization.
>
> That sounds, wrong.

Yes, really really wrong; starting with terminology...

> > So we added these PCIe RC devices earlier than the normal device tree
> > traversal process. These PCIe RC devices will be scanned again during
> > the normal traversal and cause duplicated devices being added. Our
> > proposal is to deal with duplicated devices automatically and make it
> > possible to scan the device tree multiple times for devices to be
> > added.

... This isn't *probing* twice; it is *registration*. That's cause
confusion on this thread.

> Then you need to put something in your own tree scanning logic to not
> try to register devices multiple times. How about a simple flag in your
> device structure instead of having to muck around in the driver core
> internals?

Right. If you're going to create the pci bus devices early, then you
need to explicitly inhibit creation of them later... but still; why do
the PCI bus devices need to be registered separately from the rest of the
devices on the simple-bus? Why not just move *all* device registration
earlier?

>
> Although one should seriously question the need to want to recan the bus
> and register devices at different times of the boot process...

Yes; the model they're trying to use sounds wrong.

g.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/