opp: Remove bandwidth votes when target_freq is zero
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
Quoted 47 lines · Dan Carpenter
Hello Viresh Kumar,
The patch
c57afacc9270: "opp: Remove bandwidth votes whentarget_freqis 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 intdev_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