From: Vinod Koul <vkoul@kernel.org>
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 [thread overview]
Message-ID: <20201001070810.GS2968@vkoul-mobl> (raw)
In-Reply-To: <20200928115234.GS4282@kadam>
[-- Attachment #1: Type: text/plain, Size: 13869 bytes --]
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: Add 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 <lkp@intel.com>
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
>
> smatch warnings:
> drivers/phy/qualcomm/phy-qcom-qmp.c:3899 qcom_qmp_phy_probe() error: uninitialized symbol 'dp_cfg'.
> drivers/phy/qualcomm/phy-qcom-qmp.c:3900 qcom_qmp_phy_probe() error: uninitialized symbol 'dp_serdes'.
> drivers/phy/qualcomm/phy-qcom-qmp.c:3902 qcom_qmp_phy_probe() error: uninitialized 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 *pdev)
> 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 = &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 = 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 = 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 = 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 = 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 = of_match_device(qcom_qmp_combo_phy_of_match_table, 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 = 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 = combo_cfg->usb_cfg;
> 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd 2020-09-16 3834 cfg = 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 = serdes = 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 = 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 = 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 = combo_cfg->dp_cfg;
> 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd 2020-09-16 3856 expected_phys = 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 = 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 = 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 = 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 = 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 != -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 = 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 = 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 can 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 = 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 = dp_cfg;
> 52e013d0bffa22 drivers/phy/qualcomm/phy-qcom-qmp.c Stephen Boyd 2020-09-16 @3900 serdes = 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
next prev parent reply other threads:[~2020-10-01 7:08 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-28 11:52 [phy-linux-phy:next 70/71] drivers/phy/qualcomm/phy-qcom-qmp.c:3899 qcom_qmp_phy_probe() error: uninitialized symbol 'dp_cfg' Dan Carpenter
2020-09-28 11:52 ` Dan Carpenter
2020-10-01 7:08 ` Vinod Koul [this message]
-- strict thread matches above, loose matches on Subject: below --
2020-09-28 11:37 kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201001070810.GS2968@vkoul-mobl \
--to=vkoul@kernel.org \
--cc=kbuild-all@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.