Re: [bug report] bus: ti-sysc: Add handling for clkctrl opt clocks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Dan Carpenter <dan.carpenter@xxxxxxxxxx> [180517 12:47]:
> Hello Tony Lindgren,
> 
> The patch 09dfe5810762: "bus: ti-sysc: Add handling for clkctrl opt
> clocks" from Apr 16, 2018, leads to the following static checker
> warning:
> 
> 	drivers/bus/ti-sysc.c:131 sysc_get_one_clock()
> 	error: buffer overflow 'clock_names' 2 <= 9
> 
> drivers/bus/ti-sysc.c
>    120  static int sysc_get_one_clock(struct sysc *ddata, const char *name)
>    121  {
>    122          int error, i, index = -ENODEV;
>    123  
>    124          if (!strncmp(clock_names[SYSC_FCK], name, 3))
>    125                  index = SYSC_FCK;
>    126          else if (!strncmp(clock_names[SYSC_ICK], name, 3))
>    127                  index = SYSC_ICK;
>    128  
>    129          if (index < 0) {
>    130                  for (i = SYSC_OPTFCK0; i < SYSC_MAX_CLOCKS; i++) {
>    131                          if (!clock_names[i]) {
>                                      ^^^^^^^^^^^^^^
> This isn't right.  The clock_names[] array only has the two elements...
> Probably it should be testing ddate->clocks[i]?

Yup so it seems. Will take a look today.


>    143          ddata->clocks[index] = devm_clk_get(ddata->dev, name);
>    144          if (IS_ERR(ddata->clocks[index])) {
>    145                  if (PTR_ERR(ddata->clocks[index]) == -ENOENT)
>    146                          return 0;
>    147  
>    148                  dev_err(ddata->dev, "clock get error for %s: %li\n",
>    149                          name, PTR_ERR(ddata->clocks[index]));
>    150  
> 
> Should we set ddata->clocks[index] = NULL on this path?

Maybe yeah. At least if clk_prepare later on fails we want to set it to
either to NULL or error to prevent clk_enable() being called on a failed
clock.

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux