Skip to contentSkip to conversation

clk: tegra: Add BPMP clock driver

bug report Dan Carpenter 2 participants 2 messages Nov 17, 2016 Tegra architecture support

lore
Share & tools
lore
#0 lore raw

Hello Thierry Reding,

The patch 569d53d81e37: "clk: tegra: Add BPMP clock driver" from Aug 18, 2016, leads to the following static checker warning:

drivers/clk/tegra/clk-bpmp.c:183 tegra_bpmp_clk_get_parent()
warn: sizeof(&pointer)?

drivers/clk/tegra/clk-bpmp.c
171 static u8 tegra_bpmp_clk_get_parent(struct clk_hw *hw) 172 {

   173          struct tegra_bpmp_clk *clk = to_tegra_bpmp_clk(hw);
   174          struct cmd_clk_get_parent_response response;
   175          struct tegra_bpmp_clk_message msg;
   176          unsigned int i;
   177          int err;
   178  
   179          memset(&msg, 0, sizeof(msg));
   180          msg.cmd = CMD_CLK_GET_PARENT;
   181          msg.clk = clk->id;
   182          msg.rx.data = &response;
   183          msg.rx.size = sizeof(&response);

This should almost certainly sizeof(response). int vs pointer.

   184  
   185          err = tegra_bpmp_clk_transfer(clk->bpmp, &msg);
   186          if (err < 0) {
   187                  dev_err(clk->bpmp->dev, "failed to get parent for %s: %d\n",

regards,
dan carpenter

#1 lore raw

Hi Dan,

Quoted 23 lines · Dan Carpenter

Hello Thierry Reding,

The patch 569d53d81e37: "clk: tegra: Add BPMP clock driver" from Aug 18, 2016, leads to the following static checker warning:

drivers/clk/tegra/clk-bpmp.c:183 tegra_bpmp_clk_get_parent()
warn: sizeof(&pointer)?

drivers/clk/tegra/clk-bpmp.c
171 static u8 tegra_bpmp_clk_get_parent(struct clk_hw *hw)

   172  {
   173          struct tegra_bpmp_clk *clk = to_tegra_bpmp_clk(hw);
   174          struct cmd_clk_get_parent_response response;
   175          struct tegra_bpmp_clk_message msg;
   176          unsigned int i;
   177          int err;
   178  
   179          memset(&msg, 0, sizeof(msg));
   180          msg.cmd = CMD_CLK_GET_PARENT;
   181          msg.clk = clk->id;
   182          msg.rx.data = &response;
   183          msg.rx.size = sizeof(&response);
Quoted 6 lines

This should almost certainly sizeof(response). int vs pointer.

   184  
   185          err = tegra_bpmp_clk_transfer(clk->bpmp, &msg);
   186          if (err < 0) {
   187                  dev_err(clk->bpmp->dev, "failed to get parent for %s: %d\n",

Mike pointed that out during review and I've fixed it since then. I assume that this worked fine because we were accidentally ovewriting something on the stack that we no longer used (perhaps the following msg variable?).

Thanks for reporting,
Thierry