Skip to contentSkip to conversation

opp: Remove bandwidth votes when target_freq is zero

bug report Dan Carpenter 2 participants 2 messages May 29, 2020

lore
Share & tools
lore
#0 lore raw

Hello Viresh Kumar,

The patch c57afacc9270: "opp: Remove bandwidth votes when target_freq is zero" from May 27, 2020, leads to the following static checker warning:

	drivers/opp/core.c:875 dev_pm_opp_set_rate()
	error: uninitialized symbol 'opp'.

drivers/opp/core.c
844 */
845 int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq) 846 {

   847          struct opp_table *opp_table;
   848          unsigned long freq, old_freq, temp_freq;
   849          struct dev_pm_opp *old_opp, *opp;
                                             ^^^

850 struct clk *clk;
851 int ret;
852
853 opp_table = _find_opp_table(dev);
854 if (IS_ERR(opp_table)) {
855 dev_err(dev, "%s: device opp doesn't exist\n", __func__);
856 return PTR_ERR(opp_table);
857 }
858
859 if (unlikely(!target_freq)) {
860 /*

   861                   * Some drivers need to support cases where some platforms may
   862                   * have OPP table for the device, while others don't and
   863                   * opp_set_rate() just needs to behave like clk_set_rate().
   864                   */
   865                  if (!_get_opp_count(opp_table))
   866                          return 0;
   867  
   868                  if (!opp_table->required_opp_tables && !opp_table->regulators &&
   869                      !opp_table->paths) {
   870                          dev_err(dev, "target frequency can't be 0\n");
   871                          ret = -EINVAL;
   872                          goto put_opp_table;
   873                  }
   874  
   875                  ret = _set_opp_bw(opp_table, opp, dev, true);
                                                     ^^^

Not initialized.

   876                  if (ret)
   877                          return ret;
   878  
   879                  if (opp_table->regulator_enabled) {
   880                          regulator_disable(opp_table->regulators[0]);
   881                          opp_table->regulator_enabled = false;
   882                  }

regards,
dan carpenter

#1 lore raw
Quoted 47 lines · Dan Carpenter

Hello Viresh Kumar,

The patch c57afacc9270: "opp: Remove bandwidth votes when target_freq is zero" from May 27, 2020, leads to the following static checker warning:

	drivers/opp/core.c:875 dev_pm_opp_set_rate()
	error: uninitialized symbol 'opp'.

drivers/opp/core.c
844 */
845 int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq)

   846  {
   847          struct opp_table *opp_table;
   848          unsigned long freq, old_freq, temp_freq;
   849          struct dev_pm_opp *old_opp, *opp;
                                             ^^^

   850          struct clk *clk;
   851          int ret;
   852  
   853          opp_table = _find_opp_table(dev);
   854          if (IS_ERR(opp_table)) {
   855                  dev_err(dev, "%s: device opp doesn't exist\n", __func__);
   856                  return PTR_ERR(opp_table);
   857          }
   858  
   859          if (unlikely(!target_freq)) {
   860                  /*
   861                   * Some drivers need to support cases where some platforms may
   862                   * have OPP table for the device, while others don't and
   863                   * opp_set_rate() just needs to behave like clk_set_rate().
   864                   */
   865                  if (!_get_opp_count(opp_table))
   866                          return 0;
   867  
   868                  if (!opp_table->required_opp_tables && !opp_table->regulators &&
   869                      !opp_table->paths) {
   870                          dev_err(dev, "target frequency can't be 0\n");
   871                          ret = -EINVAL;
   872                          goto put_opp_table;
   873                  }
   874  
   875                  ret = _set_opp_bw(opp_table, opp, dev, true);
                                                     ^^^

Not initialized.

Quoted 7 lines
   876                  if (ret)
   877                          return ret;
   878  
   879                  if (opp_table->regulator_enabled) {
   880                          regulator_disable(opp_table->regulators[0]);
   881                          opp_table->regulator_enabled = false;
   882                  }

Thanks. I have already fixed and pushed the fix yesterday.

Signature · 1 line
viresh