Linux CXL
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: oe-kbuild-all@lists.linux.dev,
	Alison Schofield <alison.schofield@intel.com>,
	Vishal Verma <vishal.l.verma@intel.com>,
	Ira Weiny <ira.weiny@intel.com>,
	Ben Widawsky <ben.widawsky@intel.com>,
	Dan Williams <dan.j.williams@intel.com>,
	linux-cxl@vger.kernel.org
Subject: [cxl:for-6.3/cxl-ram-region 21/28] drivers/cxl/core/region.c:2527:7: warning: Local variable 'rc' shadows outer variable [shadowVariable]
Date: Sat, 11 Feb 2023 00:50:42 +0800	[thread overview]
Message-ID: <202302110030.nDFn2KVK-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl.git for-6.3/cxl-ram-region
head:   58c651c6c4bbf46725502ffbccde2c24b94dc5c0
commit: eefc4eedc896b9b3af21a96657d00a9d3f4e88dd [21/28] cxl/region: Add region autodiscovery
compiler: ia64-linux-gcc (GCC) 12.1.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout eefc4eedc896b9b3af21a96657d00a9d3f4e88dd
        cppcheck --quiet --enable=style,performance,portability --template=gcc FILE

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202302110030.nDFn2KVK-lkp@intel.com/

cppcheck warnings: (new ones prefixed by >>)
>> drivers/cxl/core/region.c:2527:7: warning: Local variable 'rc' shadows outer variable [shadowVariable]
     int rc = device_attach(&cxlr->dev);
         ^
   drivers/cxl/core/region.c:2487:6: note: Shadowed declaration
    int rc;
        ^
   drivers/cxl/core/region.c:2527:7: note: Shadow variable
     int rc = device_attach(&cxlr->dev);
         ^

cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

   drivers/cxl/core/region.c:1626:5: warning: Redundant initialization for 'rc'. The initialized value is overwritten before it is read. [redundantInitialization]
    rc = cxl_region_validate_position(cxlr, cxled, pos);
       ^
   drivers/cxl/core/region.c:1527:9: note: rc is initialized
    int rc = -ENXIO;
           ^
   drivers/cxl/core/region.c:1626:5: note: rc is overwritten
    rc = cxl_region_validate_position(cxlr, cxled, pos);
       ^

vim +/rc +2527 drivers/cxl/core/region.c

  2476	
  2477	int cxl_add_to_region(struct cxl_port *root, struct cxl_endpoint_decoder *cxled)
  2478	{
  2479		struct cxl_memdev *cxlmd = cxled_to_memdev(cxled);
  2480		struct range *hpa = &cxled->cxld.hpa_range;
  2481		struct cxl_decoder *cxld = &cxled->cxld;
  2482		struct cxl_root_decoder *cxlrd;
  2483		struct cxl_region_params *p;
  2484		struct cxl_region *cxlr;
  2485		bool attach = false;
  2486		struct device *dev;
  2487		int rc;
  2488	
  2489		dev = device_find_child(&root->dev, &cxld->hpa_range,
  2490					match_decoder_by_range);
  2491		if (!dev) {
  2492			dev_err(cxlmd->dev.parent,
  2493				"%s:%s no CXL window for range %#llx:%#llx\n",
  2494				dev_name(&cxlmd->dev), dev_name(&cxld->dev),
  2495				cxld->hpa_range.start, cxld->hpa_range.end);
  2496			return -ENXIO;
  2497		}
  2498	
  2499		cxlrd = to_cxl_root_decoder(dev);
  2500	
  2501		/*
  2502		 * Ensure that if multiple threads race to construct_region() for @hpa
  2503		 * one does the construction and the others add to that.
  2504		 */
  2505		mutex_lock(&cxlrd->range_lock);
  2506		dev = device_find_child(&cxlrd->cxlsd.cxld.dev, hpa,
  2507					match_region_by_range);
  2508		if (!dev)
  2509			cxlr = construct_region(cxlrd, cxled);
  2510		else
  2511			cxlr = to_cxl_region(dev);
  2512		mutex_unlock(&cxlrd->range_lock);
  2513	
  2514		if (IS_ERR(cxlr)) {
  2515			rc = PTR_ERR(cxlr);
  2516			goto out;
  2517		}
  2518	
  2519		attach_target(cxlr, cxled, -1, TASK_UNINTERRUPTIBLE);
  2520	
  2521		down_read(&cxl_region_rwsem);
  2522		p = &cxlr->params;
  2523		attach = p->state == CXL_CONFIG_COMMIT;
  2524		up_read(&cxl_region_rwsem);
  2525	
  2526		if (attach) {
> 2527			int rc = device_attach(&cxlr->dev);
  2528	
  2529			/*
  2530			 * If device_attach() fails the range may still be active via
  2531			 * the platform-firmware memory map, otherwise the driver for
  2532			 * regions is local to this file, so driver matching can't fail.
  2533			 */
  2534			if (rc < 0)
  2535				dev_err(&cxlr->dev, "failed to enable, range: %pr\n",
  2536					p->res);
  2537		}
  2538	
  2539		put_device(&cxlr->dev);
  2540	out:
  2541		put_device(&cxlrd->cxlsd.cxld.dev);
  2542		return rc;
  2543	}
  2544	EXPORT_SYMBOL_NS_GPL(cxl_add_to_region, CXL);
  2545	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests

                 reply	other threads:[~2023-02-10 16:51 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202302110030.nDFn2KVK-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=alison.schofield@intel.com \
    --cc=ben.widawsky@intel.com \
    --cc=dan.j.williams@intel.com \
    --cc=ira.weiny@intel.com \
    --cc=linux-cxl@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=vishal.l.verma@intel.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox