All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.