Message ID | 20190731193517.237136-2-sboyd@kernel.org (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
Series | Make clk_hw::init NULL after clk registration | expand |
On Wed, Jul 31, 2019 at 12:35:09PM -0700, Stephen Boyd wrote: > A future patch is going to change semantics of clk_register() so that > clk_hw::init is guaranteed to be NULL after a clk is registered. Avoid > referencing this member here so that we don't run into NULL pointer > exceptions. > > Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > Signed-off-by: Stephen Boyd <sboyd@kernel.org> Acked-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Thanks, Mani > --- > > Please ack so I can take this through clk tree > > drivers/clk/actions/owl-common.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/clk/actions/owl-common.c b/drivers/clk/actions/owl-common.c > index 32dd29e0a37e..71b683c4e643 100644 > --- a/drivers/clk/actions/owl-common.c > +++ b/drivers/clk/actions/owl-common.c > @@ -68,6 +68,7 @@ int owl_clk_probe(struct device *dev, struct clk_hw_onecell_data *hw_clks) > struct clk_hw *hw; > > for (i = 0; i < hw_clks->num; i++) { > + const char *name = hw->init->name; > > hw = hw_clks->hws[i]; > > @@ -77,7 +78,7 @@ int owl_clk_probe(struct device *dev, struct clk_hw_onecell_data *hw_clks) > ret = devm_clk_hw_register(dev, hw); > if (ret) { > dev_err(dev, "Couldn't register clock %d - %s\n", > - i, hw->init->name); > + i, name); > return ret; > } > } > -- > Sent by a computer through tubes >
Quoting Stephen Boyd (2019-07-31 12:35:09) > A future patch is going to change semantics of clk_register() so that > clk_hw::init is guaranteed to be NULL after a clk is registered. Avoid > referencing this member here so that we don't run into NULL pointer > exceptions. > > Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > Signed-off-by: Stephen Boyd <sboyd@kernel.org> > --- Applied to clk-next
On Wed, Jul 31, 2019 at 12:35:09PM -0700, Stephen Boyd wrote: > A future patch is going to change semantics of clk_register() so that > clk_hw::init is guaranteed to be NULL after a clk is registered. Avoid > referencing this member here so that we don't run into NULL pointer > exceptions. > > Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > Signed-off-by: Stephen Boyd <sboyd@kernel.org> > --- > > Please ack so I can take this through clk tree > > drivers/clk/actions/owl-common.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/clk/actions/owl-common.c b/drivers/clk/actions/owl-common.c > index 32dd29e0a37e..71b683c4e643 100644 > --- a/drivers/clk/actions/owl-common.c > +++ b/drivers/clk/actions/owl-common.c > @@ -68,6 +68,7 @@ int owl_clk_probe(struct device *dev, struct clk_hw_onecell_data *hw_clks) > struct clk_hw *hw; > > for (i = 0; i < hw_clks->num; i++) { > + const char *name = hw->init->name; > This should come after below statement and hence the warning is generated in linux-next. Sorry for missing! Thanks, Mani > hw = hw_clks->hws[i]; > > @@ -77,7 +78,7 @@ int owl_clk_probe(struct device *dev, struct clk_hw_onecell_data *hw_clks) > ret = devm_clk_hw_register(dev, hw); > if (ret) { > dev_err(dev, "Couldn't register clock %d - %s\n", > - i, hw->init->name); > + i, name); > return ret; > } > } > -- > Sent by a computer through tubes >
Quoting Manivannan Sadhasivam (2019-08-16 04:22:10) > On Wed, Jul 31, 2019 at 12:35:09PM -0700, Stephen Boyd wrote: > > A future patch is going to change semantics of clk_register() so that > > clk_hw::init is guaranteed to be NULL after a clk is registered. Avoid > > referencing this member here so that we don't run into NULL pointer > > exceptions. > > > > Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > > Signed-off-by: Stephen Boyd <sboyd@kernel.org> > > --- > > > > Please ack so I can take this through clk tree > > > > drivers/clk/actions/owl-common.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/clk/actions/owl-common.c b/drivers/clk/actions/owl-common.c > > index 32dd29e0a37e..71b683c4e643 100644 > > --- a/drivers/clk/actions/owl-common.c > > +++ b/drivers/clk/actions/owl-common.c > > @@ -68,6 +68,7 @@ int owl_clk_probe(struct device *dev, struct clk_hw_onecell_data *hw_clks) > > struct clk_hw *hw; > > > > for (i = 0; i < hw_clks->num; i++) { > > + const char *name = hw->init->name; > > > > This should come after below statement and hence the warning is generated > in linux-next. Sorry for missing! > Oh right. Will fix it.
diff --git a/drivers/clk/actions/owl-common.c b/drivers/clk/actions/owl-common.c index 32dd29e0a37e..71b683c4e643 100644 --- a/drivers/clk/actions/owl-common.c +++ b/drivers/clk/actions/owl-common.c @@ -68,6 +68,7 @@ int owl_clk_probe(struct device *dev, struct clk_hw_onecell_data *hw_clks) struct clk_hw *hw; for (i = 0; i < hw_clks->num; i++) { + const char *name = hw->init->name; hw = hw_clks->hws[i]; @@ -77,7 +78,7 @@ int owl_clk_probe(struct device *dev, struct clk_hw_onecell_data *hw_clks) ret = devm_clk_hw_register(dev, hw); if (ret) { dev_err(dev, "Couldn't register clock %d - %s\n", - i, hw->init->name); + i, name); return ret; } }
A future patch is going to change semantics of clk_register() so that clk_hw::init is guaranteed to be NULL after a clk is registered. Avoid referencing this member here so that we don't run into NULL pointer exceptions. Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Signed-off-by: Stephen Boyd <sboyd@kernel.org> --- Please ack so I can take this through clk tree drivers/clk/actions/owl-common.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)