From: Rob Herring <robh@kernel.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "Herve Codina" <herve.codina@bootlin.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Lizhi Hou" <lizhi.hou@amd.com>, "Max Zhen" <max.zhen@amd.com>,
"Sonal Santan" <sonal.santan@amd.com>,
"Stefano Stabellini" <stefano.stabellini@xilinx.com>,
"Jonathan Cameron" <Jonathan.Cameron@huawei.com>,
"Krzysztof Wilczyński" <kwilczynski@kernel.org>,
linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org,
"Allan Nielsen" <allan.nielsen@microchip.com>,
"Horatiu Vultur" <horatiu.vultur@microchip.com>,
"Steen Hegelund" <steen.hegelund@microchip.com>,
"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>,
stable@vger.kernel.org
Subject: Re: [PATCH v3 2/2] PCI: of: Attach created of_node to existing device
Date: Thu, 11 Apr 2024 15:34:49 -0500 [thread overview]
Message-ID: <20240411203449.GA2641-robh@kernel.org> (raw)
In-Reply-To: <2024041142-applause-spearman-bd38@gregkh>
On Thu, Apr 11, 2024 at 03:23:55PM +0200, Greg Kroah-Hartman wrote:
> On Mon, Mar 25, 2024 at 04:39:15PM +0100, Herve Codina wrote:
> > The commit 407d1a51921e ("PCI: Create device tree node for bridge")
> > creates of_node for PCI devices.
> >
> > During the insertion handling of these new DT nodes done by of_platform,
> > new devices (struct device) are created. For each PCI devices a struct
> > device is already present (created and handled by the PCI core).
> > Having a second struct device to represent the exact same PCI device is
> > not correct.
> >
> > On the of_node creation:
> > - tell the of_platform that there is no need to create a device for this
> > node (OF_POPULATED flag),
> > - link this newly created of_node to the already present device,
> > - tell fwnode that the device attached to this of_node is ready using
> > fwnode_dev_initialized().
> >
> > With this fix, the of_node are available in the sysfs device tree:
> > /sys/devices/platform/soc/d0070000.pcie/
> > + of_node -> .../devicetree/base/soc/pcie@d0070000
> > + pci0000:00
> > + 0000:00:00.0
> > + of_node -> .../devicetree/base/soc/pcie@d0070000/pci@0,0
> > + 0000:01:00.0
> > + of_node -> .../devicetree/base/soc/pcie@d0070000/pci@0,0/dev@0,0
> >
> > On the of_node removal, revert the operations.
> >
> > Fixes: 407d1a51921e ("PCI: Create device tree node for bridge")
> > Cc: stable@vger.kernel.org
> > Signed-off-by: Herve Codina <herve.codina@bootlin.com>
>
> I need an ack from the maintainer here before I can take this.
Correct me if I'm wrong, but having the of_node sysfs link populated or
changed after device_add is a race we lost. Userspace is notified about
the new device and then some time later the symlink shows up.
However, it so far is not appearing that there's an easy way to
reshuffle order of things to fix this.
Maybe the short term (and stable) answer just don't create any of_node
symlinks on these dynamically created nodes.
Rob
next prev parent reply other threads:[~2024-04-11 20:34 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-25 15:39 [PATCH v3 0/2] Attach DT nodes to existing PCI devices Herve Codina
2024-03-25 15:39 ` [PATCH v3 1/2] driver core: Introduce device_{add,remove}_of_node() Herve Codina
2024-03-25 15:39 ` [PATCH v3 2/2] PCI: of: Attach created of_node to existing device Herve Codina
2024-04-11 13:23 ` Greg Kroah-Hartman
2024-04-11 20:34 ` Rob Herring [this message]
2024-04-12 7:41 ` Greg Kroah-Hartman
2024-04-12 8:10 ` Herve Codina
2024-04-08 12:43 ` [PATCH v3 0/2] Attach DT nodes to existing PCI devices Herve Codina
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240411203449.GA2641-robh@kernel.org \
--to=robh@kernel.org \
--cc=Jonathan.Cameron@huawei.com \
--cc=allan.nielsen@microchip.com \
--cc=bhelgaas@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=herve.codina@bootlin.com \
--cc=horatiu.vultur@microchip.com \
--cc=kwilczynski@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lizhi.hou@amd.com \
--cc=max.zhen@amd.com \
--cc=rafael@kernel.org \
--cc=sonal.santan@amd.com \
--cc=stable@vger.kernel.org \
--cc=steen.hegelund@microchip.com \
--cc=stefano.stabellini@xilinx.com \
--cc=thomas.petazzoni@bootlin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox