From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============8880370852340880875==" MIME-Version: 1.0 From: Vinod Koul To: kbuild-all@lists.01.org Subject: Re: [phy-linux-phy:next 70/71] drivers/phy/qualcomm/phy-qcom-qmp.c:3899 qcom_qmp_phy_probe() error: uninitialized symbol 'dp_cfg'. Date: Thu, 01 Oct 2020 12:38:10 +0530 Message-ID: <20201001070810.GS2968@vkoul-mobl> In-Reply-To: <20200928115234.GS4282@kadam> List-Id: --===============8880370852340880875== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Dan, On 28-09-20, 14:52, Dan Carpenter wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy.git= next > head: 7612f4e2bc0e4a7dbbebafc077d220385ab63fbb > commit: 52e013d0bffa2238746b246074272817ec8e0807 [70/71] phy: qcom-qmp: A= dd support for DP in USB3+DP combo phy > config: x86_64-randconfig-m001-20200928 (attached as .config) > compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 > = > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot > Reported-by: Dan Carpenter > = > smatch warnings: > drivers/phy/qualcomm/phy-qcom-qmp.c:3899 qcom_qmp_phy_probe() error: unin= itialized symbol 'dp_cfg'. > drivers/phy/qualcomm/phy-qcom-qmp.c:3900 qcom_qmp_phy_probe() error: unin= itialized symbol 'dp_serdes'. > drivers/phy/qualcomm/phy-qcom-qmp.c:3902 qcom_qmp_phy_probe() error: unin= itialized symbol 'usb_cfg'. > = > vim +/dp_cfg +3899 drivers/phy/qualcomm/phy-qcom-qmp.c > = > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3797 static int qcom_qmp_phy_probe(struct platform_device *pde= v) > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3798 { > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3799 struct qcom_qmp *qmp; > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3800 struct device *dev =3D &pdev->dev; > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3801 struct device_node *child; > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3802 struct phy_provider *phy_provider; > aa968cb1a67e27 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3803 void __iomem *serdes; > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3804 void __iomem *usb_serdes; > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3805 void __iomem *dp_serdes; > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3806 const struct qmp_phy_combo_cfg *combo_cfg =3D NULL; > aa968cb1a67e27 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3807 const struct qmp_phy_cfg *cfg; > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3808 const struct qmp_phy_cfg *usb_cfg; > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3809 const struct qmp_phy_cfg *dp_cfg; > = ^^^^^^^^^ > = > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3810 int num, id, expected_phys; > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3811 int ret; > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3812 = > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3813 qmp =3D devm_kzalloc(dev, sizeof(*qmp), GFP_KERNEL); > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3814 if (!qmp) > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3815 return -ENOMEM; > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3816 = > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3817 qmp->dev =3D dev; > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3818 dev_set_drvdata(dev, qmp); > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3819 = > efb05a50c956b4 drivers/phy/qualcomm/phy-qcom-qmp.c Manu Gautam = 2018-01-16 3820 /* Get the specific init parameters of QMP phy */ > aa968cb1a67e27 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3821 cfg =3D of_device_get_match_data(dev); > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3822 if (!cfg) { > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3823 const struct of_device_id *match; > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3824 = > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3825 match =3D of_match_device(qcom_qmp_combo_phy_of_match_t= able, dev); > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3826 if (!match) > efb05a50c956b4 drivers/phy/qualcomm/phy-qcom-qmp.c Manu Gautam = 2018-01-16 3827 return -EINVAL; > efb05a50c956b4 drivers/phy/qualcomm/phy-qcom-qmp.c Manu Gautam = 2018-01-16 3828 = > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3829 combo_cfg =3D match->data; > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3830 if (!combo_cfg) > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3831 return -EINVAL; > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3832 = > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3833 usb_cfg =3D combo_cfg->usb_cfg; > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3834 cfg =3D usb_cfg; /* Setup clks and regulators */ > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3835 } > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3836 = > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3837 /* per PHY serdes; usually located at base address */ > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3838 usb_serdes =3D serdes =3D devm_platform_ioremap_resource= (pdev, 0); > f385b73192c584 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3839 if (IS_ERR(serdes)) > f385b73192c584 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3840 return PTR_ERR(serdes); > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3841 = > efb05a50c956b4 drivers/phy/qualcomm/phy-qcom-qmp.c Manu Gautam = 2018-01-16 3842 /* per PHY dp_com; if PHY has dp_com control block */ > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3843 if (combo_cfg || cfg->has_phy_dp_com_ctrl) { > dab7b10ddc83e5 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3844 qmp->dp_com =3D devm_platform_ioremap_resource(pdev, 1); > dab7b10ddc83e5 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3845 if (IS_ERR(qmp->dp_com)) > dab7b10ddc83e5 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3846 return PTR_ERR(qmp->dp_com); > efb05a50c956b4 drivers/phy/qualcomm/phy-qcom-qmp.c Manu Gautam = 2018-01-16 3847 } > efb05a50c956b4 drivers/phy/qualcomm/phy-qcom-qmp.c Manu Gautam = 2018-01-16 3848 = > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3849 if (combo_cfg) { > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3850 /* Only two serdes for combo PHY */ > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3851 dp_serdes =3D devm_platform_ioremap_resource(pdev, 2); > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3852 if (IS_ERR(dp_serdes)) > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3853 return PTR_ERR(dp_serdes); > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3854 = > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3855 dp_cfg =3D combo_cfg->dp_cfg; > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3856 expected_phys =3D 2; > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3857 } else { > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3858 expected_phys =3D cfg->nlanes; > = > Not initialized on the else path. Right > = > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3859 } > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3860 = > efb05a50c956b4 drivers/phy/qualcomm/phy-qcom-qmp.c Manu Gautam = 2018-01-16 3861 mutex_init(&qmp->phy_mutex); > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3862 = > aa968cb1a67e27 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3863 ret =3D qcom_qmp_phy_clk_init(dev, cfg); > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3864 if (ret) > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3865 return ret; > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3866 = > aa968cb1a67e27 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3867 ret =3D qcom_qmp_phy_reset_init(dev, cfg); > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3868 if (ret) > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3869 return ret; > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3870 = > aa968cb1a67e27 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3871 ret =3D qcom_qmp_phy_vreg_init(dev, cfg); > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3872 if (ret) { > 22fa10e52ab30c drivers/phy/qualcomm/phy-qcom-qmp.c Douglas Anderson = 2018-05-14 3873 if (ret !=3D -EPROBE_DEFER) > 22fa10e52ab30c drivers/phy/qualcomm/phy-qcom-qmp.c Douglas Anderson = 2018-05-14 3874 dev_err(dev, "failed to get regulator supplies: %d\n", > 22fa10e52ab30c drivers/phy/qualcomm/phy-qcom-qmp.c Douglas Anderson = 2018-05-14 3875 ret); > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3876 return ret; > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3877 } > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3878 = > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3879 num =3D of_get_available_child_count(dev->of_node); > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3880 /* do we have a rogue child node ? */ > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3881 if (num > expected_phys) > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3882 return -EINVAL; > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3883 = > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3884 qmp->phys =3D devm_kcalloc(dev, num, sizeof(*qmp->phys),= GFP_KERNEL); > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3885 if (!qmp->phys) > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3886 return -ENOMEM; > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3887 = > ac0d239936bd87 drivers/phy/qualcomm/phy-qcom-qmp.c Manu Gautam = 2018-01-16 3888 pm_runtime_set_active(dev); > ac0d239936bd87 drivers/phy/qualcomm/phy-qcom-qmp.c Manu Gautam = 2018-01-16 3889 pm_runtime_enable(dev); > ac0d239936bd87 drivers/phy/qualcomm/phy-qcom-qmp.c Manu Gautam = 2018-01-16 3890 /* > ac0d239936bd87 drivers/phy/qualcomm/phy-qcom-qmp.c Manu Gautam = 2018-01-16 3891 * Prevent runtime pm from being ON by default. Users ca= n enable > ac0d239936bd87 drivers/phy/qualcomm/phy-qcom-qmp.c Manu Gautam = 2018-01-16 3892 * it using power/control in sysfs. > ac0d239936bd87 drivers/phy/qualcomm/phy-qcom-qmp.c Manu Gautam = 2018-01-16 3893 */ > ac0d239936bd87 drivers/phy/qualcomm/phy-qcom-qmp.c Manu Gautam = 2018-01-16 3894 pm_runtime_forbid(dev); > ac0d239936bd87 drivers/phy/qualcomm/phy-qcom-qmp.c Manu Gautam = 2018-01-16 3895 = > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3896 id =3D 0; > e78f3d15e115e8 drivers/phy/phy-qcom-qmp.c Vivek Gautam = 2017-04-06 3897 for_each_available_child_of_node(dev->of_node, child) { > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 3898 if (of_node_name_eq(child, "dp-phy")) { > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 @3899 cfg =3D dp_cfg; > 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd = 2020-09-16 @3900 serdes =3D dp_serdes; > = ^^^^^^^^^^^^^^^^^^^ > Smatch isn't able to tie the "if (of_node_name_eq(child, "dp-phy"))" to > the "if (combo_cfg) {" check. Yes so this wont happen in practice. But to quiesce the noise, we can set this to NULL :) Sending patch shortly = -- = ~Vinod --===============8880370852340880875==--