lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Tue, 22 Jun 2021 00:53:48 +0800
From:   kernel test robot <lkp@...el.com>
To:     Krzysztof Kozlowski <krzk@...nel.org>
Cc:     kbuild-all@...ts.01.org, clang-built-linux@...glegroups.com,
        linux-kernel@...r.kernel.org, Dinh Nguyen <dinguyen@...nel.org>
Subject: drivers/edac/altera_edac.c:541:42: warning: unused variable
 'ocramecc_data'

Hi Krzysztof,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   13311e74253fe64329390df80bed3f07314ddd61
commit: 4a9a1a5602d82c079325bf37466af0b67d6c0b9e arm64: socfpga: merge Agilex and N5X into ARCH_INTEL_SOCFPGA
date:   3 months ago
config: arm64-randconfig-r024-20210621 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project e1adf90826a57b674eee79b071fb46c1f5683cd0)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm64 cross compiling tool for clang build
        # apt-get install binutils-aarch64-linux-gnu
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4a9a1a5602d82c079325bf37466af0b67d6c0b9e
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 4a9a1a5602d82c079325bf37466af0b67d6c0b9e
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>

All warnings (new ones prefixed by >>):

>> drivers/edac/altera_edac.c:541:42: warning: unused variable 'ocramecc_data' [-Wunused-const-variable]
   static const struct edac_device_prv_data ocramecc_data;
                                            ^
   drivers/edac/altera_edac.c:542:42: warning: unused variable 'l2ecc_data' [-Wunused-const-variable]
   static const struct edac_device_prv_data l2ecc_data;
                                            ^
>> drivers/edac/altera_edac.c:543:42: warning: unused variable 'a10_ocramecc_data' [-Wunused-const-variable]
   static const struct edac_device_prv_data a10_ocramecc_data;
                                            ^
   drivers/edac/altera_edac.c:544:42: warning: unused variable 'a10_l2ecc_data' [-Wunused-const-variable]
   static const struct edac_device_prv_data a10_l2ecc_data;
                                            ^
>> drivers/edac/altera_edac.c:642:37: warning: unused variable 'altr_edac_device_inject_fops' [-Wunused-const-variable]
   static const struct file_operations altr_edac_device_inject_fops = {
                                       ^
   5 warnings generated.


vim +/ocramecc_data +541 drivers/edac/altera_edac.c

c3eea1942a16db Thor Thayer  2016-02-10  532  
c3eea1942a16db Thor Thayer  2016-02-10  533  /*
c3eea1942a16db Thor Thayer  2016-02-10  534   * EDAC Device Functions (shared between various IPs).
c3eea1942a16db Thor Thayer  2016-02-10  535   * The discrete memories use the EDAC Device framework. The probe
c3eea1942a16db Thor Thayer  2016-02-10  536   * and error handling functions are very similar between memories
c3eea1942a16db Thor Thayer  2016-02-10  537   * so they are shared. The memory allocation and freeing for EDAC
c3eea1942a16db Thor Thayer  2016-02-10  538   * trigger testing are different for each memory.
c3eea1942a16db Thor Thayer  2016-02-10  539   */
c3eea1942a16db Thor Thayer  2016-02-10  540  
1cf70377247302 Thor Thayer  2016-06-22 @541  static const struct edac_device_prv_data ocramecc_data;
1cf70377247302 Thor Thayer  2016-06-22  542  static const struct edac_device_prv_data l2ecc_data;
1cf70377247302 Thor Thayer  2016-06-22 @543  static const struct edac_device_prv_data a10_ocramecc_data;
1cf70377247302 Thor Thayer  2016-06-22  544  static const struct edac_device_prv_data a10_l2ecc_data;
c3eea1942a16db Thor Thayer  2016-02-10  545  
c3eea1942a16db Thor Thayer  2016-02-10  546  static irqreturn_t altr_edac_device_handler(int irq, void *dev_id)
c3eea1942a16db Thor Thayer  2016-02-10  547  {
c3eea1942a16db Thor Thayer  2016-02-10  548  	irqreturn_t ret_value = IRQ_NONE;
c3eea1942a16db Thor Thayer  2016-02-10  549  	struct edac_device_ctl_info *dci = dev_id;
c3eea1942a16db Thor Thayer  2016-02-10  550  	struct altr_edac_device_dev *drvdata = dci->pvt_info;
c3eea1942a16db Thor Thayer  2016-02-10  551  	const struct edac_device_prv_data *priv = drvdata->data;
c3eea1942a16db Thor Thayer  2016-02-10  552  
c3eea1942a16db Thor Thayer  2016-02-10  553  	if (irq == drvdata->sb_irq) {
c3eea1942a16db Thor Thayer  2016-02-10  554  		if (priv->ce_clear_mask)
c3eea1942a16db Thor Thayer  2016-02-10  555  			writel(priv->ce_clear_mask, drvdata->base);
c3eea1942a16db Thor Thayer  2016-02-10  556  		edac_device_handle_ce(dci, 0, 0, drvdata->edac_dev_name);
c3eea1942a16db Thor Thayer  2016-02-10  557  		ret_value = IRQ_HANDLED;
c3eea1942a16db Thor Thayer  2016-02-10  558  	} else if (irq == drvdata->db_irq) {
c3eea1942a16db Thor Thayer  2016-02-10  559  		if (priv->ue_clear_mask)
c3eea1942a16db Thor Thayer  2016-02-10  560  			writel(priv->ue_clear_mask, drvdata->base);
c3eea1942a16db Thor Thayer  2016-02-10  561  		edac_device_handle_ue(dci, 0, 0, drvdata->edac_dev_name);
c3eea1942a16db Thor Thayer  2016-02-10  562  		panic("\nEDAC:ECC_DEVICE[Uncorrectable errors]\n");
c3eea1942a16db Thor Thayer  2016-02-10  563  		ret_value = IRQ_HANDLED;
c3eea1942a16db Thor Thayer  2016-02-10  564  	} else {
c3eea1942a16db Thor Thayer  2016-02-10  565  		WARN_ON(1);
c3eea1942a16db Thor Thayer  2016-02-10  566  	}
c3eea1942a16db Thor Thayer  2016-02-10  567  
c3eea1942a16db Thor Thayer  2016-02-10  568  	return ret_value;
c3eea1942a16db Thor Thayer  2016-02-10  569  }
c3eea1942a16db Thor Thayer  2016-02-10  570  
c3eea1942a16db Thor Thayer  2016-02-10  571  static ssize_t altr_edac_device_trig(struct file *file,
c3eea1942a16db Thor Thayer  2016-02-10  572  				     const char __user *user_buf,
c3eea1942a16db Thor Thayer  2016-02-10  573  				     size_t count, loff_t *ppos)
c3eea1942a16db Thor Thayer  2016-02-10  574  
c3eea1942a16db Thor Thayer  2016-02-10  575  {
c3eea1942a16db Thor Thayer  2016-02-10  576  	u32 *ptemp, i, error_mask;
c3eea1942a16db Thor Thayer  2016-02-10  577  	int result = 0;
c3eea1942a16db Thor Thayer  2016-02-10  578  	u8 trig_type;
c3eea1942a16db Thor Thayer  2016-02-10  579  	unsigned long flags;
c3eea1942a16db Thor Thayer  2016-02-10  580  	struct edac_device_ctl_info *edac_dci = file->private_data;
c3eea1942a16db Thor Thayer  2016-02-10  581  	struct altr_edac_device_dev *drvdata = edac_dci->pvt_info;
c3eea1942a16db Thor Thayer  2016-02-10  582  	const struct edac_device_prv_data *priv = drvdata->data;
c3eea1942a16db Thor Thayer  2016-02-10  583  	void *generic_ptr = edac_dci->dev;
c3eea1942a16db Thor Thayer  2016-02-10  584  
c3eea1942a16db Thor Thayer  2016-02-10  585  	if (!user_buf || get_user(trig_type, user_buf))
c3eea1942a16db Thor Thayer  2016-02-10  586  		return -EFAULT;
c3eea1942a16db Thor Thayer  2016-02-10  587  
c3eea1942a16db Thor Thayer  2016-02-10  588  	if (!priv->alloc_mem)
c3eea1942a16db Thor Thayer  2016-02-10  589  		return -ENOMEM;
c3eea1942a16db Thor Thayer  2016-02-10  590  
c3eea1942a16db Thor Thayer  2016-02-10  591  	/*
c3eea1942a16db Thor Thayer  2016-02-10  592  	 * Note that generic_ptr is initialized to the device * but in
c3eea1942a16db Thor Thayer  2016-02-10  593  	 * some alloc_functions, this is overridden and returns data.
c3eea1942a16db Thor Thayer  2016-02-10  594  	 */
c3eea1942a16db Thor Thayer  2016-02-10  595  	ptemp = priv->alloc_mem(priv->trig_alloc_sz, &generic_ptr);
c3eea1942a16db Thor Thayer  2016-02-10  596  	if (!ptemp) {
c3eea1942a16db Thor Thayer  2016-02-10  597  		edac_printk(KERN_ERR, EDAC_DEVICE,
c3eea1942a16db Thor Thayer  2016-02-10  598  			    "Inject: Buffer Allocation error\n");
c3eea1942a16db Thor Thayer  2016-02-10  599  		return -ENOMEM;
c3eea1942a16db Thor Thayer  2016-02-10  600  	}
c3eea1942a16db Thor Thayer  2016-02-10  601  
c3eea1942a16db Thor Thayer  2016-02-10  602  	if (trig_type == ALTR_UE_TRIGGER_CHAR)
c3eea1942a16db Thor Thayer  2016-02-10  603  		error_mask = priv->ue_set_mask;
c3eea1942a16db Thor Thayer  2016-02-10  604  	else
c3eea1942a16db Thor Thayer  2016-02-10  605  		error_mask = priv->ce_set_mask;
c3eea1942a16db Thor Thayer  2016-02-10  606  
c3eea1942a16db Thor Thayer  2016-02-10  607  	edac_printk(KERN_ALERT, EDAC_DEVICE,
c3eea1942a16db Thor Thayer  2016-02-10  608  		    "Trigger Error Mask (0x%X)\n", error_mask);
c3eea1942a16db Thor Thayer  2016-02-10  609  
c3eea1942a16db Thor Thayer  2016-02-10  610  	local_irq_save(flags);
c3eea1942a16db Thor Thayer  2016-02-10  611  	/* write ECC corrupted data out. */
c3eea1942a16db Thor Thayer  2016-02-10  612  	for (i = 0; i < (priv->trig_alloc_sz / sizeof(*ptemp)); i++) {
c3eea1942a16db Thor Thayer  2016-02-10  613  		/* Read data so we're in the correct state */
c3eea1942a16db Thor Thayer  2016-02-10  614  		rmb();
332efa6374de75 Mark Rutland 2017-10-23  615  		if (READ_ONCE(ptemp[i]))
c3eea1942a16db Thor Thayer  2016-02-10  616  			result = -1;
c3eea1942a16db Thor Thayer  2016-02-10  617  		/* Toggle Error bit (it is latched), leave ECC enabled */
811fce4f2a7aea Thor Thayer  2016-03-21  618  		writel(error_mask, (drvdata->base + priv->set_err_ofst));
811fce4f2a7aea Thor Thayer  2016-03-21  619  		writel(priv->ecc_enable_mask, (drvdata->base +
811fce4f2a7aea Thor Thayer  2016-03-21  620  					       priv->set_err_ofst));
c3eea1942a16db Thor Thayer  2016-02-10  621  		ptemp[i] = i;
c3eea1942a16db Thor Thayer  2016-02-10  622  	}
c3eea1942a16db Thor Thayer  2016-02-10  623  	/* Ensure it has been written out */
c3eea1942a16db Thor Thayer  2016-02-10  624  	wmb();
c3eea1942a16db Thor Thayer  2016-02-10  625  	local_irq_restore(flags);
c3eea1942a16db Thor Thayer  2016-02-10  626  
c3eea1942a16db Thor Thayer  2016-02-10  627  	if (result)
c3eea1942a16db Thor Thayer  2016-02-10  628  		edac_printk(KERN_ERR, EDAC_DEVICE, "Mem Not Cleared\n");
c3eea1942a16db Thor Thayer  2016-02-10  629  
c3eea1942a16db Thor Thayer  2016-02-10  630  	/* Read out written data. ECC error caused here */
c3eea1942a16db Thor Thayer  2016-02-10  631  	for (i = 0; i < ALTR_TRIGGER_READ_WRD_CNT; i++)
332efa6374de75 Mark Rutland 2017-10-23  632  		if (READ_ONCE(ptemp[i]) != i)
c3eea1942a16db Thor Thayer  2016-02-10  633  			edac_printk(KERN_ERR, EDAC_DEVICE,
c3eea1942a16db Thor Thayer  2016-02-10  634  				    "Read doesn't match written data\n");
c3eea1942a16db Thor Thayer  2016-02-10  635  
c3eea1942a16db Thor Thayer  2016-02-10  636  	if (priv->free_mem)
c3eea1942a16db Thor Thayer  2016-02-10  637  		priv->free_mem(ptemp, priv->trig_alloc_sz, generic_ptr);
c3eea1942a16db Thor Thayer  2016-02-10  638  
c3eea1942a16db Thor Thayer  2016-02-10  639  	return count;
c3eea1942a16db Thor Thayer  2016-02-10  640  }
c3eea1942a16db Thor Thayer  2016-02-10  641  
c3eea1942a16db Thor Thayer  2016-02-10 @642  static const struct file_operations altr_edac_device_inject_fops = {
c3eea1942a16db Thor Thayer  2016-02-10  643  	.open = simple_open,
c3eea1942a16db Thor Thayer  2016-02-10  644  	.write = altr_edac_device_trig,
c3eea1942a16db Thor Thayer  2016-02-10  645  	.llseek = generic_file_llseek,
c3eea1942a16db Thor Thayer  2016-02-10  646  };
c3eea1942a16db Thor Thayer  2016-02-10  647  

:::::: The code at line 541 was first introduced by commit
:::::: 1cf703772473022ac89d815871b20aa4738449b4 EDAC, altera: Make all private data structures static

:::::: TO: Thor Thayer <tthayer@...nsource.altera.com>
:::::: CC: Borislav Petkov <bp@...e.de>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Download attachment ".config.gz" of type "application/gzip" (29523 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ