lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Sat, 04 Jan 2020 23:07:11 -0800
From:   Stephen Boyd <sboyd@...nel.org>
To:     Bjorn Andersson <bjorn.andersson@...aro.org>
Cc:     Michael Turquette <mturquette@...libre.com>,
        linux-kernel@...r.kernel.org, linux-clk@...r.kernel.org,
        Niklas Cassel <niklas.cassel@...aro.org>
Subject: Re: [PATCH] clk: Use parent node pointer during registration if necessary

Quoting Bjorn Andersson (2020-01-02 23:39:26)
> On Mon 30 Dec 11:04 PST 2019, Stephen Boyd wrote:
> 
> > Sometimes clk drivers are attached to devices which are children of a
> > parent device that is connected to a node in DT. This happens when
> > devices are MFD-ish and the parent device driver mostly registers child
> > devices to match against drivers placed in their respective subsystem
> > directories like drivers/clk, drivers/regulator, etc. When the clk
> > driver calls clk_register() with a device pointer, that struct device
> > pointer won't have a device_node associated with it because it was
> > created purely in software as a way to partition logic to a subsystem.
> > 
> > This causes problems for the way we find parent clks for the clks
> > registered by these child devices because we look at the registering
> > device's device_node pointer to lookup 'clocks' and 'clock-names'
> > properties. Let's use the parent device's device_node pointer if the
> > registering device doesn't have a device_node but the parent does. This
> > simplifies clk registration code by avoiding the need to assign some
> > device_node to the device registering the clk.
> > 
> > Cc: Bjorn Andersson <bjorn.andersson@...aro.org>
> > Reported-by: Niklas Cassel <niklas.cassel@...aro.org>
> > Signed-off-by: Stephen Boyd <sboyd@...nel.org>
> > ---
> > 
> > I decided to introduce a new function instead of trying to jam it all
> > in the one line where we assign np. This way the function gets the 
> > true 'np' as an argument all the time.
> > 
> 
> Looks better.
> 
> >  drivers/clk/clk.c | 27 +++++++++++++++++++++++++--
> >  1 file changed, 25 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
> > index b68e200829f2..a743fffe8e46 100644
> > --- a/drivers/clk/clk.c
> > +++ b/drivers/clk/clk.c
> > @@ -3719,6 +3719,28 @@ __clk_register(struct device *dev, struct device_node *np, struct clk_hw *hw)
> >       return ERR_PTR(ret);
> >  }
> >  
> > +/**
> > + * dev_or_parent_of_node - Get device node of @dev or @dev's parent
> 
> ()

This has been left out historically in this file. I'll add it but I
guess I should really take a pass at updating the docs in the whole
file!

> 
> > + * @dev: Device to get device node of
> > + *
> > + * Returns: device node pointer of @dev, or the device node pointer of
> 
> Return: (no 's')

Thanks.

> 
> 
> With that,
> 
> Reviewed-by: Bjorn Andersson <bjorn.andersson@...aro.org>
> Tested-by: Bjorn Andersson <bjorn.andersson@...aro.org>
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ