From: Bjorn Helgaas <helgaas@kernel.org>
To: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Bjorn Helgaas <bhelgaas@google.com>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Zhangfei Gao <zhangfei.gao@linaro.org>,
linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org
Subject: Re: [PATCH v2 1/2] PCI: Convert to device_create_managed_software_node()
Date: Thu, 30 Sep 2021 10:04:02 -0500 [thread overview]
Message-ID: <20210930150402.GA877907@bhelgaas> (raw)
In-Reply-To: <20210930121246.22833-2-heikki.krogerus@linux.intel.com>
On Thu, Sep 30, 2021 at 03:12:45PM +0300, Heikki Krogerus wrote:
> In quirk_huawei_pcie_sva(), use device_create_managed_software_node()
> instead of device_add_properties() to set the "dma-can-stall"
> property.
>
> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
> Acked-by: Zhangfei Gao <zhangfei.gao@linaro.org>
> Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> ---
> Hi,
>
> The commit message now says what Bjorn requested, except I left out
> the claim that the patch fixes a lifetime issue.
Thanks.
The commit log should help reviewers determine whether the change is
safe and necessary. So far it doesn't have any hints along that line.
Comparing device_add_properties() [1] and
device_create_managed_software_node() [2], the only difference in this
case is that the latter sets "swnode->managed = true". The function
comment says "managed" means the lifetime of the swnode is tied to the
lifetime of dev, hence my question about a lifetime issue.
I can see that one reason for this change is to remove the last caller
of device_add_properties(), so device_add_properties() itself can be
removed. That's a good reason for wanting to do it, and the commit
log could mention it.
But it doesn't help me figure out whether it's safe. For that,
I need to know the effect of setting "managed = true". Obviously
it means *something*, but I don't know what. It looks like the only
test is in software_node_notify():
device_del
device_platform_notify_remove
software_node_notify_remove
sysfs_remove_link(dev_name)
sysfs_remove_link("software_node")
if (swnode->managed) <--
set_secondary_fwnode(dev, NULL)
kobject_put(&swnode->kobj)
device_remove_properties
if (is_software_node())
fwnode_remove_software_node
kobject_put(&swnode->kobj)
set_secondary_fwnode(dev, NULL)
I'm not sure what's going on here; it looks like some redundancy with
multiple calls of kobject_put() and set_secondary_fwnode(). Maybe you
are in the process of removing device_remove_properties() as well as
device_add_properties()?
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/base/property.c?id=v5.14#n533
[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/base/swnode.c?id=v5.14#n1083
> There shouldn't be any functional impact.
>
> thanks,
> ---
> drivers/pci/quirks.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index b6b4c803bdc94..fe5eedba47908 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -1850,7 +1850,7 @@ static void quirk_huawei_pcie_sva(struct pci_dev *pdev)
> * can set it directly.
> */
> if (!pdev->dev.of_node &&
> - device_add_properties(&pdev->dev, properties))
> + device_create_managed_software_node(&pdev->dev, properties, NULL))
> pci_warn(pdev, "could not add stall property");
> }
> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_HUAWEI, 0xa250, quirk_huawei_pcie_sva);
> --
> 2.33.0
>
next prev parent reply other threads:[~2021-09-30 15:04 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-30 12:12 [PATCH v2 0/2] device property: Remove device_add_properties() Heikki Krogerus
2021-09-30 12:12 ` [PATCH v2 1/2] PCI: Convert to device_create_managed_software_node() Heikki Krogerus
2021-09-30 15:04 ` Bjorn Helgaas [this message]
2021-10-01 10:36 ` Heikki Krogerus
2021-10-05 14:04 ` Rafael J. Wysocki
2021-10-06 9:48 ` Heikki Krogerus
2021-09-30 12:12 ` [PATCH v2 2/2] device property: Remove device_add_properties() API Heikki Krogerus
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=20210930150402.GA877907@bhelgaas \
--to=helgaas@kernel.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=bhelgaas@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=heikki.krogerus@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=rafael@kernel.org \
--cc=zhangfei.gao@linaro.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.