From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Aisheng Dong <aisheng.dong@nxp.com>
Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com>,
"Rafael J . Wysocki" <rafael@kernel.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
Shawn Guo <shawnguo@kernel.org>, Stephen Boyd <sboyd@kernel.org>
Subject: Re: [PATCH RESEND] driver core: export device_is_bound() to fix build failure
Date: Mon, 9 Nov 2020 13:48:01 +0100 [thread overview]
Message-ID: <20201109124801.GA1890488@kroah.com> (raw)
In-Reply-To: <AM6PR04MB49668F60F74B73931C2ABBFD80EA0@AM6PR04MB4966.eurprd04.prod.outlook.com>
On Mon, Nov 09, 2020 at 12:26:55PM +0000, Aisheng Dong wrote:
> > From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > Sent: Monday, November 9, 2020 8:05 PM
> >
> > On Mon, Nov 09, 2020 at 11:55:46AM +0000, Aisheng Dong wrote:
> > > > From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > > > Sent: Monday, November 9, 2020 7:41 PM
> > > >
> > > > On Mon, Nov 09, 2020 at 10:57:05AM +0000, Aisheng Dong wrote:
> > > > > Hi Greg,
> > > > >
> > > > > > From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > > > > > Sent: Monday, November 9, 2020 6:37 PM
> > > > > > Subject: Re: [PATCH RESEND] driver core: export
> > > > > > device_is_bound() to fix build failure
> > > > > >
> > > > > > On Mon, Nov 09, 2020 at 10:14:46AM +0000, Sudip Mukherjee wrote:
> > > > > > > Hi Greg,
> > > > > > >
> > > > > > > On Sun, Nov 8, 2020 at 8:23 AM Greg Kroah-Hartman
> > > > > > > <gregkh@linuxfoundation.org> wrote:
> > > > > > > >
> > > > > > > > On Sat, Nov 07, 2020 at 10:47:27PM +0000, Sudip Mukherjee wrote:
> > > > > > > > > When CONFIG_MXC_CLK_SCU is configured as 'm' the build
> > > > > > > > > fails as it is unable to find device_is_bound(). The error being:
> > > > > > > > > ERROR: modpost: "device_is_bound"
> > [drivers/clk/imx/clk-imx-scu.ko]
> > > > > > > > > undefined!
> > > > > > > > >
> > > > > > > > > Export the symbol so that the module finds it.
> > > > > > > > >
> > > > > > > > > Fixes: 77d8f3068c63 ("clk: imx: scu: add two cells binding
> > > > > > > > > support")
> > > > > > > > > Signed-off-by: Sudip Mukherjee
> > > > > > > > > <sudipm.mukherjee@gmail.com>
> > > > > > > > > ---
> > > > > > > > >
> > > > > > > > > resending with the Fixes: tag.
> > > > > > > > >
> > > > > > > > > drivers/base/dd.c | 1 +
> > > > > > > > > 1 file changed, 1 insertion(+)
> > > > > > > > >
> > > > > > > > > diff --git a/drivers/base/dd.c b/drivers/base/dd.c index
> > > > > > > > > 148e81969e04..a796a57e5efb 100644
> > > > > > > > > --- a/drivers/base/dd.c
> > > > > > > > > +++ b/drivers/base/dd.c
> > > > > > > > > @@ -353,6 +353,7 @@ bool device_is_bound(struct device *dev)
> > {
> > > > > > > > > return dev->p &&
> > > > > > > > > klist_node_attached(&dev->p->knode_driver);
> > > > > > > > > }
> > > > > > > > > +EXPORT_SYMBOL(device_is_bound);
> > > > > > > >
> > > > > > > > EXPORT_SYMBOL_GPL() please, like all the other exports in this file.
> > > > > > > >
> > > > > > > > Also, wait, no, don't call this, are you sure you are
> > > > > > > > calling it in a race-free way? And what branch/tree is the above
> > commit in?
> > > > > > >
> > > > > > > I have not checked fully but since it is being called from
> > > > > > > probe() I assume the lock will be held at that time.
> > > > > >
> > > > > > probe() should never call this function as it makes no sense at
> > > > > > all at that point in time. The driver should be fixed.
> > > > >
> > > > > Would you suggest if any other API we can use to allow the driver
> > > > > to know whether another device has been probed?
> > > >
> > > > There is none, sorry, as that just opens up way too many problems.
> > > >
> > > > > For imx scu driver in question, it has a special requirement that
> > > > > it depends on scu power domain driver. However, there're a huge
> > > > > number
> > > > > (200+) of power domains for each device clock, we can't define
> > > > > them all in DT
> > > > for a single clock controller node.
> > > > >
> > > > > That's why we wanted to use device_is_bound() before to check if
> > > > > scu power domain is ready or not to support defer probe.
> > > >
> > > > Use the device link functionality for this type of thing, that is
> > > > what it was created for.
> > > >
> > >
> > > Thanks for the suggestion. I will check it how to use.
> > > BTW, I wonder if dev_driver_string() could be an optional solution
> > > which seems a more simple way?
> >
> > Also, how do you really know you even have a valid pointer to that other device
> > structure? How are you getting access to that?
> >
>
> The rough idea is as follows. Not sure if those APIs are safe enough as there're
> many users In kernel.
>
> pd_np = of_find_compatible_node(NULL, NULL, "fsl,scu-pd");
> pd_dev = of_find_device_by_node(pd_np);
> if (!pd_dev || !dev_driver_string(&pd_dev->dev) ||
> strcmp(dev_driver_string(&pd_dev->dev), "imx-scu-pd")) {
> of_node_put(pd_np);
> return -EPROBE_DEFER;
> }
Ick, again, no, don't do that, you can not guarantee "names" of devices
anywhere in the system, sorry.
greg k-h
next prev parent reply other threads:[~2020-11-09 12:47 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-07 22:47 [PATCH RESEND] driver core: export device_is_bound() to fix build failure Sudip Mukherjee
2020-11-08 8:23 ` Greg Kroah-Hartman
2020-11-09 10:14 ` Sudip Mukherjee
2020-11-09 10:37 ` Greg Kroah-Hartman
2020-11-09 10:57 ` Aisheng Dong
2020-11-09 11:18 ` Sudip Mukherjee
2020-11-09 11:32 ` Aisheng Dong
2020-11-09 11:42 ` Greg Kroah-Hartman
2020-11-09 11:41 ` Greg Kroah-Hartman
2020-11-09 11:55 ` Aisheng Dong
2020-11-09 12:04 ` Greg Kroah-Hartman
2020-11-09 12:05 ` Greg Kroah-Hartman
2020-11-09 12:26 ` Aisheng Dong
2020-11-09 12:48 ` Greg Kroah-Hartman [this message]
2020-11-18 10:23 ` Aisheng Dong
2020-11-18 10:45 ` Greg Kroah-Hartman
2020-11-18 15:40 ` Aisheng Dong
2020-11-18 22:22 ` Saravana Kannan
2020-11-19 4:13 ` Aisheng Dong
2020-11-19 13:10 ` Greg Kroah-Hartman
2020-11-19 14:09 ` Aisheng Dong
2020-11-19 14:25 ` Greg Kroah-Hartman
2020-11-19 15:20 ` Aisheng Dong
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=20201109124801.GA1890488@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=aisheng.dong@nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rafael@kernel.org \
--cc=sboyd@kernel.org \
--cc=shawnguo@kernel.org \
--cc=sudipm.mukherjee@gmail.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 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.