All of lore.kernel.org
 help / color / mirror / Atom feed
From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
To: "Andreas Färber" <afaerber@suse.de>
Cc: sboyd@kernel.org, ulf.hansson@linaro.org, robh+dt@kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-mmc@vger.kernel.org,
	linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
	thomas.liau@actions-semi.com, linux-actions@lists.infradead.org,
	linus.walleij@linaro.org, linux-clk@vger.kernel.org
Subject: Re: [PATCH 1/7] clk: actions: Fix factor clk struct member access
Date: Mon, 10 Jun 2019 21:35:55 +0530	[thread overview]
Message-ID: <20190610160555.GB31461@mani> (raw)
In-Reply-To: <29ef33a9-f1f1-fe10-9288-8103714d40fa@suse.de>


Hi Andreas,

On Mon, Jun 10, 2019 at 03:36:42PM +0200, Andreas Färber wrote:
> Hi Mani,
> 
> Am 08.06.19 um 21:53 schrieb Manivannan Sadhasivam:
> > Since the helper "owl_factor_helper_round_rate" is shared between factor
> > and composite clocks, using the factor clk specific helper function
> > like "hw_to_owl_factor" to access its members will create issues when
> > called from composite clk specific code. Hence, pass the "factor_hw"
> > struct pointer directly instead of fetching it using factor clk specific
> > helpers.
> > 
> > This issue has been observed when a composite clock like "sd0_clk" tried
> > to call "owl_factor_helper_round_rate" resulting in pointer dereferencing
> > error.
> > 
> > Fixes: 4bb78fc9744a ("clk: actions: Add factor clock support")
> > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> > ---
> >  drivers/clk/actions/owl-factor.c | 7 +++----
> >  1 file changed, 3 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/clk/actions/owl-factor.c b/drivers/clk/actions/owl-factor.c
> > index 317d4a9e112e..f419dfdd334f 100644
> > --- a/drivers/clk/actions/owl-factor.c
> > +++ b/drivers/clk/actions/owl-factor.c
> > @@ -64,11 +64,10 @@ static unsigned int _get_table_val(const struct clk_factor_table *table,
> >  	return val;
> >  }
> >  
> > -static int clk_val_best(struct clk_hw *hw, unsigned long rate,
> > +static int clk_val_best(const struct owl_factor_hw *factor_hw,
> > +			struct clk_hw *hw, unsigned long rate,
> >  			unsigned long *best_parent_rate)
> >  {
> > -	struct owl_factor *factor = hw_to_owl_factor(hw);
> > -	struct owl_factor_hw *factor_hw = &factor->factor_hw;
> >  	const struct clk_factor_table *clkt = factor_hw->table;
> >  	unsigned long parent_rate, try_parent_rate, best = 0, cur_rate;
> >  	unsigned long parent_rate_saved = *best_parent_rate;
> > @@ -126,7 +125,7 @@ long owl_factor_helper_round_rate(struct owl_clk_common *common,
> >  	const struct clk_factor_table *clkt = factor_hw->table;
> >  	unsigned int val, mul = 0, div = 1;
> >  
> > -	val = clk_val_best(&common->hw, rate, parent_rate);
> > +	val = clk_val_best(factor_hw, &common->hw, rate, parent_rate);
> >  	_get_table_div_mul(clkt, val, &mul, &div);
> >  
> >  	return *parent_rate * mul / div;
> 
> While at it, I think it would be a good idea to rename it to
> owl_clk_val_best. Pretty confusing that you're touching only owl files
> for a clk_ refactoring, which sounds like common clk code.
> 

Sure, will do.

Thanks,
Mani

> Regards,
> Andreas
> 
> -- 
> SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
> GF: Felix Imendörffer, Mary Higgins, Sri Rasiah
> HRB 21284 (AG Nürnberg)

WARNING: multiple messages have this Message-ID (diff)
From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
To: "Andreas Färber" <afaerber@suse.de>
Cc: devicetree@vger.kernel.org, ulf.hansson@linaro.org,
	sboyd@kernel.org, linux-actions@lists.infradead.org,
	linus.walleij@linaro.org, linux-mmc@vger.kernel.org,
	linux-kernel@vger.kernel.org, thomas.liau@actions-semi.com,
	robh+dt@kernel.org, linux-clk@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 1/7] clk: actions: Fix factor clk struct member access
Date: Mon, 10 Jun 2019 21:35:55 +0530	[thread overview]
Message-ID: <20190610160555.GB31461@mani> (raw)
In-Reply-To: <29ef33a9-f1f1-fe10-9288-8103714d40fa@suse.de>


Hi Andreas,

On Mon, Jun 10, 2019 at 03:36:42PM +0200, Andreas Färber wrote:
> Hi Mani,
> 
> Am 08.06.19 um 21:53 schrieb Manivannan Sadhasivam:
> > Since the helper "owl_factor_helper_round_rate" is shared between factor
> > and composite clocks, using the factor clk specific helper function
> > like "hw_to_owl_factor" to access its members will create issues when
> > called from composite clk specific code. Hence, pass the "factor_hw"
> > struct pointer directly instead of fetching it using factor clk specific
> > helpers.
> > 
> > This issue has been observed when a composite clock like "sd0_clk" tried
> > to call "owl_factor_helper_round_rate" resulting in pointer dereferencing
> > error.
> > 
> > Fixes: 4bb78fc9744a ("clk: actions: Add factor clock support")
> > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> > ---
> >  drivers/clk/actions/owl-factor.c | 7 +++----
> >  1 file changed, 3 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/clk/actions/owl-factor.c b/drivers/clk/actions/owl-factor.c
> > index 317d4a9e112e..f419dfdd334f 100644
> > --- a/drivers/clk/actions/owl-factor.c
> > +++ b/drivers/clk/actions/owl-factor.c
> > @@ -64,11 +64,10 @@ static unsigned int _get_table_val(const struct clk_factor_table *table,
> >  	return val;
> >  }
> >  
> > -static int clk_val_best(struct clk_hw *hw, unsigned long rate,
> > +static int clk_val_best(const struct owl_factor_hw *factor_hw,
> > +			struct clk_hw *hw, unsigned long rate,
> >  			unsigned long *best_parent_rate)
> >  {
> > -	struct owl_factor *factor = hw_to_owl_factor(hw);
> > -	struct owl_factor_hw *factor_hw = &factor->factor_hw;
> >  	const struct clk_factor_table *clkt = factor_hw->table;
> >  	unsigned long parent_rate, try_parent_rate, best = 0, cur_rate;
> >  	unsigned long parent_rate_saved = *best_parent_rate;
> > @@ -126,7 +125,7 @@ long owl_factor_helper_round_rate(struct owl_clk_common *common,
> >  	const struct clk_factor_table *clkt = factor_hw->table;
> >  	unsigned int val, mul = 0, div = 1;
> >  
> > -	val = clk_val_best(&common->hw, rate, parent_rate);
> > +	val = clk_val_best(factor_hw, &common->hw, rate, parent_rate);
> >  	_get_table_div_mul(clkt, val, &mul, &div);
> >  
> >  	return *parent_rate * mul / div;
> 
> While at it, I think it would be a good idea to rename it to
> owl_clk_val_best. Pretty confusing that you're touching only owl files
> for a clk_ refactoring, which sounds like common clk code.
> 

Sure, will do.

Thanks,
Mani

> Regards,
> Andreas
> 
> -- 
> SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
> GF: Felix Imendörffer, Mary Higgins, Sri Rasiah
> HRB 21284 (AG Nürnberg)

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-06-10 16:06 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-08 19:53 [PATCH 0/7] Add SD/MMC driver for Actions Semi S900 SoC Manivannan Sadhasivam
2019-06-08 19:53 ` Manivannan Sadhasivam
2019-06-08 19:53 ` Manivannan Sadhasivam
2019-06-08 19:53 ` [PATCH 1/7] clk: actions: Fix factor clk struct member access Manivannan Sadhasivam
2019-06-08 19:53   ` Manivannan Sadhasivam
2019-06-10 13:36   ` Andreas Färber
2019-06-10 13:36     ` Andreas Färber
2019-06-10 16:05     ` Manivannan Sadhasivam [this message]
2019-06-10 16:05       ` Manivannan Sadhasivam
2019-06-10 15:01   ` Stephen Boyd
2019-06-10 15:01     ` Stephen Boyd
2019-06-10 15:01     ` Stephen Boyd
2019-06-08 19:53 ` [PATCH 2/7] dt-bindings: mmc: Add Actions Semi SD/MMC/SDIO controller binding Manivannan Sadhasivam
2019-06-08 19:53   ` Manivannan Sadhasivam
2019-06-10 13:45   ` Andreas Färber
2019-06-10 13:45     ` Andreas Färber
2019-06-10 16:04     ` Manivannan Sadhasivam
2019-06-10 16:04       ` Manivannan Sadhasivam
2019-07-09  2:16     ` Rob Herring
2019-07-09  2:16       ` Rob Herring
2019-06-08 19:53 ` [PATCH 3/7] arm64: dts: actions: Add MMC controller support for S900 Manivannan Sadhasivam
2019-06-08 19:53   ` Manivannan Sadhasivam
2019-06-08 19:53 ` [PATCH 4/7] arm64: dts: actions: Add uSD and eMMC support for Bubblegum96 Manivannan Sadhasivam
2019-06-08 19:53   ` Manivannan Sadhasivam
2019-06-10 14:08   ` Andreas Färber
2019-06-10 14:08     ` Andreas Färber
2019-06-10 16:11     ` Manivannan Sadhasivam
2019-06-10 16:11       ` Manivannan Sadhasivam
2019-06-08 19:53 ` [PATCH 5/7] mmc: Add Actions Semi Owl SoCs SD/MMC driver Manivannan Sadhasivam
2019-06-08 19:53   ` Manivannan Sadhasivam
2019-07-22 13:41   ` Ulf Hansson
2019-07-22 13:41     ` Ulf Hansson
2019-08-21  2:26     ` Manivannan Sadhasivam
2019-08-21  2:26       ` Manivannan Sadhasivam
2019-06-08 19:53 ` [PATCH 6/7] MAINTAINERS: Add entry for Actions Semi SD/MMC driver and binding Manivannan Sadhasivam
2019-06-08 19:53   ` Manivannan Sadhasivam
2019-06-08 19:53 ` [PATCH 7/7] arm64: configs: Enable Actions Semi platform in defconfig Manivannan Sadhasivam
2019-06-08 19:53   ` Manivannan Sadhasivam

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=20190610160555.GB31461@mani \
    --to=manivannan.sadhasivam@linaro.org \
    --cc=afaerber@suse.de \
    --cc=devicetree@vger.kernel.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-actions@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=thomas.liau@actions-semi.com \
    --cc=ulf.hansson@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.