diff for duplicates of <202207110939.SC3SbyPy-lkp@intel.com> diff --git a/a/1.txt b/N1/1.txt index c64f8ad..cbdfae7 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,15 +1,6 @@ -CC: kbuild-all(a)lists.01.org -BCC: lkp(a)intel.com -CC: Linux Memory Management List <linux-mm@kvack.org> -TO: Johnson Wang <johnson.wang@mediatek.com> -CC: Chanwoo Choi <cw00.choi@samsung.com> -CC: "Jia-Wei Chang" <jia-wei.chang@mediatek.com> - tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: f2528c29385819a84480cacef4886b049761e2c5 commit: b615b00c42da1ea59aefbd6c98b08b1afabb9d1e [5859/8914] PM / devfreq: mediatek: Introduce MediaTek CCI devfreq driver -:::::: branch date: 3 days ago -:::::: commit date: 11 days ago config: microblaze-randconfig-m031-20220706 (https://download.01.org/0day-ci/archive/20220711/202207110939.SC3SbyPy-lkp(a)intel.com/config) compiler: microblaze-linux-gcc (GCC) 11.3.0 @@ -22,101 +13,28 @@ drivers/devfreq/mtk-cci-devfreq.c:135 mtk_ccifreq_target() warn: variable derefe vim +/drv +135 drivers/devfreq/mtk-cci-devfreq.c -b615b00c42da1e Johnson Wang 2022-06-07 125 b615b00c42da1e Johnson Wang 2022-06-07 126 static int mtk_ccifreq_target(struct device *dev, unsigned long *freq, b615b00c42da1e Johnson Wang 2022-06-07 127 u32 flags) b615b00c42da1e Johnson Wang 2022-06-07 128 { b615b00c42da1e Johnson Wang 2022-06-07 129 struct mtk_ccifreq_drv *drv = dev_get_drvdata(dev); b615b00c42da1e Johnson Wang 2022-06-07 @130 struct clk *cci_pll = clk_get_parent(drv->cci_clk); + ^^^^^^^^^^^^ +Dereference + b615b00c42da1e Johnson Wang 2022-06-07 131 struct dev_pm_opp *opp; b615b00c42da1e Johnson Wang 2022-06-07 132 unsigned long opp_rate; b615b00c42da1e Johnson Wang 2022-06-07 133 int voltage, pre_voltage, inter_voltage, target_voltage, ret; b615b00c42da1e Johnson Wang 2022-06-07 134 b615b00c42da1e Johnson Wang 2022-06-07 @135 if (!drv) + ^^^^ +Too late! + b615b00c42da1e Johnson Wang 2022-06-07 136 return -EINVAL; b615b00c42da1e Johnson Wang 2022-06-07 137 b615b00c42da1e Johnson Wang 2022-06-07 138 if (drv->pre_freq == *freq) b615b00c42da1e Johnson Wang 2022-06-07 139 return 0; b615b00c42da1e Johnson Wang 2022-06-07 140 b615b00c42da1e Johnson Wang 2022-06-07 141 inter_voltage = drv->inter_voltage; -b615b00c42da1e Johnson Wang 2022-06-07 142 -b615b00c42da1e Johnson Wang 2022-06-07 143 opp_rate = *freq; -b615b00c42da1e Johnson Wang 2022-06-07 144 opp = devfreq_recommended_opp(dev, &opp_rate, 1); -b615b00c42da1e Johnson Wang 2022-06-07 145 if (IS_ERR(opp)) { -b615b00c42da1e Johnson Wang 2022-06-07 146 dev_err(dev, "failed to find opp for freq: %ld\n", opp_rate); -b615b00c42da1e Johnson Wang 2022-06-07 147 return PTR_ERR(opp); -b615b00c42da1e Johnson Wang 2022-06-07 148 } -b615b00c42da1e Johnson Wang 2022-06-07 149 -b615b00c42da1e Johnson Wang 2022-06-07 150 mutex_lock(&drv->reg_lock); -b615b00c42da1e Johnson Wang 2022-06-07 151 -b615b00c42da1e Johnson Wang 2022-06-07 152 voltage = dev_pm_opp_get_voltage(opp); -b615b00c42da1e Johnson Wang 2022-06-07 153 dev_pm_opp_put(opp); -b615b00c42da1e Johnson Wang 2022-06-07 154 -b615b00c42da1e Johnson Wang 2022-06-07 155 pre_voltage = regulator_get_voltage(drv->proc_reg); -b615b00c42da1e Johnson Wang 2022-06-07 156 if (pre_voltage < 0) { -b615b00c42da1e Johnson Wang 2022-06-07 157 dev_err(dev, "invalid vproc value: %d\n", pre_voltage); -b615b00c42da1e Johnson Wang 2022-06-07 158 ret = pre_voltage; -b615b00c42da1e Johnson Wang 2022-06-07 159 goto out_unlock; -b615b00c42da1e Johnson Wang 2022-06-07 160 } -b615b00c42da1e Johnson Wang 2022-06-07 161 -b615b00c42da1e Johnson Wang 2022-06-07 162 /* scale up: set voltage first then freq. */ -b615b00c42da1e Johnson Wang 2022-06-07 163 target_voltage = max(inter_voltage, voltage); -b615b00c42da1e Johnson Wang 2022-06-07 164 if (pre_voltage <= target_voltage) { -b615b00c42da1e Johnson Wang 2022-06-07 165 ret = mtk_ccifreq_set_voltage(drv, target_voltage); -b615b00c42da1e Johnson Wang 2022-06-07 166 if (ret) { -b615b00c42da1e Johnson Wang 2022-06-07 167 dev_err(dev, "failed to scale up voltage\n"); -b615b00c42da1e Johnson Wang 2022-06-07 168 goto out_restore_voltage; -b615b00c42da1e Johnson Wang 2022-06-07 169 } -b615b00c42da1e Johnson Wang 2022-06-07 170 } -b615b00c42da1e Johnson Wang 2022-06-07 171 -b615b00c42da1e Johnson Wang 2022-06-07 172 /* switch the cci clock to intermediate clock source. */ -b615b00c42da1e Johnson Wang 2022-06-07 173 ret = clk_set_parent(drv->cci_clk, drv->inter_clk); -b615b00c42da1e Johnson Wang 2022-06-07 174 if (ret) { -b615b00c42da1e Johnson Wang 2022-06-07 175 dev_err(dev, "failed to re-parent cci clock\n"); -b615b00c42da1e Johnson Wang 2022-06-07 176 goto out_restore_voltage; -b615b00c42da1e Johnson Wang 2022-06-07 177 } -b615b00c42da1e Johnson Wang 2022-06-07 178 -b615b00c42da1e Johnson Wang 2022-06-07 179 /* set the original clock to target rate. */ -b615b00c42da1e Johnson Wang 2022-06-07 180 ret = clk_set_rate(cci_pll, *freq); -b615b00c42da1e Johnson Wang 2022-06-07 181 if (ret) { -b615b00c42da1e Johnson Wang 2022-06-07 182 dev_err(dev, "failed to set cci pll rate: %d\n", ret); -b615b00c42da1e Johnson Wang 2022-06-07 183 clk_set_parent(drv->cci_clk, cci_pll); -b615b00c42da1e Johnson Wang 2022-06-07 184 goto out_restore_voltage; -b615b00c42da1e Johnson Wang 2022-06-07 185 } -b615b00c42da1e Johnson Wang 2022-06-07 186 -b615b00c42da1e Johnson Wang 2022-06-07 187 /* switch the cci clock back to the original clock source. */ -b615b00c42da1e Johnson Wang 2022-06-07 188 ret = clk_set_parent(drv->cci_clk, cci_pll); -b615b00c42da1e Johnson Wang 2022-06-07 189 if (ret) { -b615b00c42da1e Johnson Wang 2022-06-07 190 dev_err(dev, "failed to re-parent cci clock\n"); -b615b00c42da1e Johnson Wang 2022-06-07 191 mtk_ccifreq_set_voltage(drv, inter_voltage); -b615b00c42da1e Johnson Wang 2022-06-07 192 goto out_unlock; -b615b00c42da1e Johnson Wang 2022-06-07 193 } -b615b00c42da1e Johnson Wang 2022-06-07 194 -b615b00c42da1e Johnson Wang 2022-06-07 195 /* -b615b00c42da1e Johnson Wang 2022-06-07 196 * If the new voltage is lower than the intermediate voltage or the -b615b00c42da1e Johnson Wang 2022-06-07 197 * original voltage, scale down to the new voltage. -b615b00c42da1e Johnson Wang 2022-06-07 198 */ -b615b00c42da1e Johnson Wang 2022-06-07 199 if (voltage < inter_voltage || voltage < pre_voltage) { -b615b00c42da1e Johnson Wang 2022-06-07 200 ret = mtk_ccifreq_set_voltage(drv, voltage); -b615b00c42da1e Johnson Wang 2022-06-07 201 if (ret) { -b615b00c42da1e Johnson Wang 2022-06-07 202 dev_err(dev, "failed to scale down voltage\n"); -b615b00c42da1e Johnson Wang 2022-06-07 203 goto out_unlock; -b615b00c42da1e Johnson Wang 2022-06-07 204 } -b615b00c42da1e Johnson Wang 2022-06-07 205 } -b615b00c42da1e Johnson Wang 2022-06-07 206 -b615b00c42da1e Johnson Wang 2022-06-07 207 drv->pre_freq = *freq; -b615b00c42da1e Johnson Wang 2022-06-07 208 mutex_unlock(&drv->reg_lock); -b615b00c42da1e Johnson Wang 2022-06-07 209 -b615b00c42da1e Johnson Wang 2022-06-07 210 return 0; -b615b00c42da1e Johnson Wang 2022-06-07 211 -b615b00c42da1e Johnson Wang 2022-06-07 212 out_restore_voltage: -b615b00c42da1e Johnson Wang 2022-06-07 213 mtk_ccifreq_set_voltage(drv, pre_voltage); -b615b00c42da1e Johnson Wang 2022-06-07 214 -b615b00c42da1e Johnson Wang 2022-06-07 215 out_unlock: -b615b00c42da1e Johnson Wang 2022-06-07 216 mutex_unlock(&drv->reg_lock); -b615b00c42da1e Johnson Wang 2022-06-07 217 return ret; -b615b00c42da1e Johnson Wang 2022-06-07 218 } -b615b00c42da1e Johnson Wang 2022-06-07 219 -- 0-DAY CI Kernel Test Service diff --git a/a/content_digest b/N1/content_digest index 7d57a7c..7f2d55d 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,21 +1,12 @@ - "From\0kernel test robot <lkp@intel.com>\0" + "From\0Dan Carpenter <dan.carpenter@oracle.com>\0" "Subject\0[linux-next:master 5859/8914] drivers/devfreq/mtk-cci-devfreq.c:135 mtk_ccifreq_target() warn: variable dereferenced before check 'drv' (see line 130)\0" - "Date\0Mon, 11 Jul 2022 09:31:53 +0800\0" - "To\0kbuild@lists.01.org\0" + "Date\0Tue, 12 Jul 2022 17:02:55 +0300\0" + "To\0kbuild-all@lists.01.org\0" "\01:1\0" "b\0" - "CC: kbuild-all(a)lists.01.org\n" - "BCC: lkp(a)intel.com\n" - "CC: Linux Memory Management List <linux-mm@kvack.org>\n" - "TO: Johnson Wang <johnson.wang@mediatek.com>\n" - "CC: Chanwoo Choi <cw00.choi@samsung.com>\n" - "CC: \"Jia-Wei Chang\" <jia-wei.chang@mediatek.com>\n" - "\n" "tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master\n" "head: f2528c29385819a84480cacef4886b049761e2c5\n" "commit: b615b00c42da1ea59aefbd6c98b08b1afabb9d1e [5859/8914] PM / devfreq: mediatek: Introduce MediaTek CCI devfreq driver\n" - ":::::: branch date: 3 days ago\n" - ":::::: commit date: 11 days ago\n" "config: microblaze-randconfig-m031-20220706 (https://download.01.org/0day-ci/archive/20220711/202207110939.SC3SbyPy-lkp(a)intel.com/config)\n" "compiler: microblaze-linux-gcc (GCC) 11.3.0\n" "\n" @@ -28,104 +19,31 @@ "\n" "vim +/drv +135 drivers/devfreq/mtk-cci-devfreq.c\n" "\n" - "b615b00c42da1e Johnson Wang 2022-06-07 125 \n" "b615b00c42da1e Johnson Wang 2022-06-07 126 static int mtk_ccifreq_target(struct device *dev, unsigned long *freq,\n" "b615b00c42da1e Johnson Wang 2022-06-07 127 \t\t\t u32 flags)\n" "b615b00c42da1e Johnson Wang 2022-06-07 128 {\n" "b615b00c42da1e Johnson Wang 2022-06-07 129 \tstruct mtk_ccifreq_drv *drv = dev_get_drvdata(dev);\n" "b615b00c42da1e Johnson Wang 2022-06-07 @130 \tstruct clk *cci_pll = clk_get_parent(drv->cci_clk);\n" + " ^^^^^^^^^^^^\n" + "Dereference\n" + "\n" "b615b00c42da1e Johnson Wang 2022-06-07 131 \tstruct dev_pm_opp *opp;\n" "b615b00c42da1e Johnson Wang 2022-06-07 132 \tunsigned long opp_rate;\n" "b615b00c42da1e Johnson Wang 2022-06-07 133 \tint voltage, pre_voltage, inter_voltage, target_voltage, ret;\n" "b615b00c42da1e Johnson Wang 2022-06-07 134 \n" "b615b00c42da1e Johnson Wang 2022-06-07 @135 \tif (!drv)\n" + " ^^^^\n" + "Too late!\n" + "\n" "b615b00c42da1e Johnson Wang 2022-06-07 136 \t\treturn -EINVAL;\n" "b615b00c42da1e Johnson Wang 2022-06-07 137 \n" "b615b00c42da1e Johnson Wang 2022-06-07 138 \tif (drv->pre_freq == *freq)\n" "b615b00c42da1e Johnson Wang 2022-06-07 139 \t\treturn 0;\n" "b615b00c42da1e Johnson Wang 2022-06-07 140 \n" "b615b00c42da1e Johnson Wang 2022-06-07 141 \tinter_voltage = drv->inter_voltage;\n" - "b615b00c42da1e Johnson Wang 2022-06-07 142 \n" - "b615b00c42da1e Johnson Wang 2022-06-07 143 \topp_rate = *freq;\n" - "b615b00c42da1e Johnson Wang 2022-06-07 144 \topp = devfreq_recommended_opp(dev, &opp_rate, 1);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 145 \tif (IS_ERR(opp)) {\n" - "b615b00c42da1e Johnson Wang 2022-06-07 146 \t\tdev_err(dev, \"failed to find opp for freq: %ld\\n\", opp_rate);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 147 \t\treturn PTR_ERR(opp);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 148 \t}\n" - "b615b00c42da1e Johnson Wang 2022-06-07 149 \n" - "b615b00c42da1e Johnson Wang 2022-06-07 150 \tmutex_lock(&drv->reg_lock);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 151 \n" - "b615b00c42da1e Johnson Wang 2022-06-07 152 \tvoltage = dev_pm_opp_get_voltage(opp);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 153 \tdev_pm_opp_put(opp);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 154 \n" - "b615b00c42da1e Johnson Wang 2022-06-07 155 \tpre_voltage = regulator_get_voltage(drv->proc_reg);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 156 \tif (pre_voltage < 0) {\n" - "b615b00c42da1e Johnson Wang 2022-06-07 157 \t\tdev_err(dev, \"invalid vproc value: %d\\n\", pre_voltage);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 158 \t\tret = pre_voltage;\n" - "b615b00c42da1e Johnson Wang 2022-06-07 159 \t\tgoto out_unlock;\n" - "b615b00c42da1e Johnson Wang 2022-06-07 160 \t}\n" - "b615b00c42da1e Johnson Wang 2022-06-07 161 \n" - "b615b00c42da1e Johnson Wang 2022-06-07 162 \t/* scale up: set voltage first then freq. */\n" - "b615b00c42da1e Johnson Wang 2022-06-07 163 \ttarget_voltage = max(inter_voltage, voltage);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 164 \tif (pre_voltage <= target_voltage) {\n" - "b615b00c42da1e Johnson Wang 2022-06-07 165 \t\tret = mtk_ccifreq_set_voltage(drv, target_voltage);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 166 \t\tif (ret) {\n" - "b615b00c42da1e Johnson Wang 2022-06-07 167 \t\t\tdev_err(dev, \"failed to scale up voltage\\n\");\n" - "b615b00c42da1e Johnson Wang 2022-06-07 168 \t\t\tgoto out_restore_voltage;\n" - "b615b00c42da1e Johnson Wang 2022-06-07 169 \t\t}\n" - "b615b00c42da1e Johnson Wang 2022-06-07 170 \t}\n" - "b615b00c42da1e Johnson Wang 2022-06-07 171 \n" - "b615b00c42da1e Johnson Wang 2022-06-07 172 \t/* switch the cci clock to intermediate clock source. */\n" - "b615b00c42da1e Johnson Wang 2022-06-07 173 \tret = clk_set_parent(drv->cci_clk, drv->inter_clk);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 174 \tif (ret) {\n" - "b615b00c42da1e Johnson Wang 2022-06-07 175 \t\tdev_err(dev, \"failed to re-parent cci clock\\n\");\n" - "b615b00c42da1e Johnson Wang 2022-06-07 176 \t\tgoto out_restore_voltage;\n" - "b615b00c42da1e Johnson Wang 2022-06-07 177 \t}\n" - "b615b00c42da1e Johnson Wang 2022-06-07 178 \n" - "b615b00c42da1e Johnson Wang 2022-06-07 179 \t/* set the original clock to target rate. */\n" - "b615b00c42da1e Johnson Wang 2022-06-07 180 \tret = clk_set_rate(cci_pll, *freq);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 181 \tif (ret) {\n" - "b615b00c42da1e Johnson Wang 2022-06-07 182 \t\tdev_err(dev, \"failed to set cci pll rate: %d\\n\", ret);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 183 \t\tclk_set_parent(drv->cci_clk, cci_pll);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 184 \t\tgoto out_restore_voltage;\n" - "b615b00c42da1e Johnson Wang 2022-06-07 185 \t}\n" - "b615b00c42da1e Johnson Wang 2022-06-07 186 \n" - "b615b00c42da1e Johnson Wang 2022-06-07 187 \t/* switch the cci clock back to the original clock source. */\n" - "b615b00c42da1e Johnson Wang 2022-06-07 188 \tret = clk_set_parent(drv->cci_clk, cci_pll);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 189 \tif (ret) {\n" - "b615b00c42da1e Johnson Wang 2022-06-07 190 \t\tdev_err(dev, \"failed to re-parent cci clock\\n\");\n" - "b615b00c42da1e Johnson Wang 2022-06-07 191 \t\tmtk_ccifreq_set_voltage(drv, inter_voltage);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 192 \t\tgoto out_unlock;\n" - "b615b00c42da1e Johnson Wang 2022-06-07 193 \t}\n" - "b615b00c42da1e Johnson Wang 2022-06-07 194 \n" - "b615b00c42da1e Johnson Wang 2022-06-07 195 \t/*\n" - "b615b00c42da1e Johnson Wang 2022-06-07 196 \t * If the new voltage is lower than the intermediate voltage or the\n" - "b615b00c42da1e Johnson Wang 2022-06-07 197 \t * original voltage, scale down to the new voltage.\n" - "b615b00c42da1e Johnson Wang 2022-06-07 198 \t */\n" - "b615b00c42da1e Johnson Wang 2022-06-07 199 \tif (voltage < inter_voltage || voltage < pre_voltage) {\n" - "b615b00c42da1e Johnson Wang 2022-06-07 200 \t\tret = mtk_ccifreq_set_voltage(drv, voltage);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 201 \t\tif (ret) {\n" - "b615b00c42da1e Johnson Wang 2022-06-07 202 \t\t\tdev_err(dev, \"failed to scale down voltage\\n\");\n" - "b615b00c42da1e Johnson Wang 2022-06-07 203 \t\t\tgoto out_unlock;\n" - "b615b00c42da1e Johnson Wang 2022-06-07 204 \t\t}\n" - "b615b00c42da1e Johnson Wang 2022-06-07 205 \t}\n" - "b615b00c42da1e Johnson Wang 2022-06-07 206 \n" - "b615b00c42da1e Johnson Wang 2022-06-07 207 \tdrv->pre_freq = *freq;\n" - "b615b00c42da1e Johnson Wang 2022-06-07 208 \tmutex_unlock(&drv->reg_lock);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 209 \n" - "b615b00c42da1e Johnson Wang 2022-06-07 210 \treturn 0;\n" - "b615b00c42da1e Johnson Wang 2022-06-07 211 \n" - "b615b00c42da1e Johnson Wang 2022-06-07 212 out_restore_voltage:\n" - "b615b00c42da1e Johnson Wang 2022-06-07 213 \tmtk_ccifreq_set_voltage(drv, pre_voltage);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 214 \n" - "b615b00c42da1e Johnson Wang 2022-06-07 215 out_unlock:\n" - "b615b00c42da1e Johnson Wang 2022-06-07 216 \tmutex_unlock(&drv->reg_lock);\n" - "b615b00c42da1e Johnson Wang 2022-06-07 217 \treturn ret;\n" - "b615b00c42da1e Johnson Wang 2022-06-07 218 }\n" - "b615b00c42da1e Johnson Wang 2022-06-07 219 \n" "\n" "-- \n" "0-DAY CI Kernel Test Service\n" https://01.org/lkp -eafbdf19d3f971983f0136f5142289213dd2f908bde9783252e355f9678f547f +ca74be3f9a8b8e5ba399262791f9e1d3334faa23700c4d72e49c6ea8db2484a3
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.