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] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 29 Mar 2017 14:38:23 +0300
From:   Daniel Baluta <daniel.baluta@...il.com>
To:     Mark Brown <broonie@...nel.org>
Cc:     Charles Keepax <ckeepax@...nsource.wolfsonmicro.com>,
        Daniel Baluta <daniel.baluta@....com>,
        Nicolin Chen <nicoleotsuka@...il.com>,
        alsa-devel@...a-project.org, Timur Tabi <timur@...i.org>,
        Xiubo.Lee@...il.com,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        Liam Girdwood <lgirdwood@...il.com>,
        Takashi Iwai <tiwai@...e.com>, fabio.estevam@....com,
        linuxppc-dev@...ts.ozlabs.org
Subject: Re: [alsa-devel] [PATCH v3 2/2] ASoC: imx-wm8962: Fix codec_clk cleanup

On Tue, Mar 28, 2017 at 6:24 PM, Mark Brown <broonie@...nel.org> wrote:
> On Tue, Mar 28, 2017 at 12:53:06PM +0100, Charles Keepax wrote:
>> On Tue, Mar 28, 2017 at 01:47:04PM +0300, Daniel Baluta wrote:
>
>> > >> -     codec_clk = devm_clk_get(&codec_dev->dev, NULL);
>> > >> +     codec_clk = clk_get(&codec_dev->dev, NULL);
>
>> > is different from &codec_dev->dev.
>
>> I get that they are different, I just don't get why changing
>> from a devm_clk_get to a clk_get is a better fix than changing
>> &codec->dev to &pdev->dev.
>
> This should be clear from the semantics of clk_get(): you're looking up
> the clock in the context of the supplied device and the clock is
> attached to the CODEC so you need to look up in the CODEC context.  What
> would be even better would be to move the allocation of the clock into
> the CODEC driver...

If I read the code correctly, both machine and codec driver are doing:

* codec_clk = clk_get(...)

I guess that the codec driver is the first to be loaded and it will call:

* __clk_create_clk

which will do the allocation. Then when machine driver is loaded, it
will only take a reference to the allocated clock.

I might be very wrong on this. Can you clarify what does moving allocation
of the clock into codec driver implies? Machine driver only needs a reference
to codec_clk to just get the clock's rate.

Daniel.

Powered by blists - more mailing lists