[linux-next:master 5320/6564] drivers/edac/ghes_edac.c:503:43: error: array has incomplete element type 'struct acpi_platform_list'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   3c30cf91b5ecc7272b3d2942ae0505dd8320b81c
commit: f521a6e687d139e5d33a3d92f5ba4cd0a825cc66 [5320/6564] ACPI: APEI: explicit init HEST and GHES in apci_init()
config: arm64-randconfig-r006-20220220 (https://download.01.org/0day-ci/archive/20220221/202202210219.Xaif78Zq-lkp@xxxxxxxxx/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project d271fc04d5b97b12e6b797c6067d3c96a8d7470e)
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/next/linux-next.git/commit/?id=f521a6e687d139e5d33a3d92f5ba4cd0a825cc66
        git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout f521a6e687d139e5d33a3d92f5ba4cd0a825cc66
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/

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

All errors (new ones prefixed by >>):

>> drivers/edac/ghes_edac.c:503:43: error: array has incomplete element type 'struct acpi_platform_list'
   static struct acpi_platform_list plat_list[] = {
                                             ^
   drivers/edac/ghes_edac.c:503:15: note: forward declaration of 'struct acpi_platform_list'
   static struct acpi_platform_list plat_list[] = {
                 ^
>> drivers/edac/ghes_edac.c:504:43: error: use of undeclared identifier 'all_versions'
           {"HPE   ", "Server  ", 0, ACPI_SIG_FADT, all_versions},
                                                    ^
>> drivers/edac/ghes_edac.c:520:9: error: implicit declaration of function 'acpi_match_platform_list' [-Werror,-Wimplicit-function-declaration]
                   idx = acpi_match_platform_list(plat_list);
                         ^
   3 errors generated.

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for ACPI_APEI_GHES
   Depends on ACPI && ACPI_APEI
   Selected by
   - ARM_SDE_INTERFACE && ARM64


vim +503 drivers/edac/ghes_edac.c

77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  499  
5deed6b6a479ad Toshi Kani            2017-08-23  500  /*
5deed6b6a479ad Toshi Kani            2017-08-23  501   * Known systems that are safe to enable this module.
5deed6b6a479ad Toshi Kani            2017-08-23  502   */
5deed6b6a479ad Toshi Kani            2017-08-23 @503  static struct acpi_platform_list plat_list[] = {
5deed6b6a479ad Toshi Kani            2017-08-23 @504  	{"HPE   ", "Server  ", 0, ACPI_SIG_FADT, all_versions},
5deed6b6a479ad Toshi Kani            2017-08-23  505  	{ } /* End */
5deed6b6a479ad Toshi Kani            2017-08-23  506  };
5deed6b6a479ad Toshi Kani            2017-08-23  507  
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  508  int ghes_edac_register(struct ghes *ghes, struct device *dev)
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  509  {
32fa1f53c2daf9 Mauro Carvalho Chehab 2013-02-14  510  	bool fake = false;
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  511  	struct mem_ctl_info *mci;
b001694d60fe4d Robert Richter        2020-05-19  512  	struct ghes_pvt *pvt;
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  513  	struct edac_mc_layer layers[1];
23f61b9fc5cc10 Robert Richter        2019-11-05  514  	unsigned long flags;
eaa3a1d46cfdbf Borislav Petkov       2018-05-18  515  	int idx = -1;
b9cae27728d1f9 Borislav Petkov       2020-06-03  516  	int rc = 0;
5deed6b6a479ad Toshi Kani            2017-08-23  517  
eaa3a1d46cfdbf Borislav Petkov       2018-05-18  518  	if (IS_ENABLED(CONFIG_X86)) {
5deed6b6a479ad Toshi Kani            2017-08-23  519  		/* Check if safe to enable on this system */
5deed6b6a479ad Toshi Kani            2017-08-23 @520  		idx = acpi_match_platform_list(plat_list);
5deed6b6a479ad Toshi Kani            2017-08-23  521  		if (!force_load && idx < 0)
cc7f3f13265828 Borislav Petkov       2018-04-23  522  			return -ENODEV;
eaa3a1d46cfdbf Borislav Petkov       2018-05-18  523  	} else {
251c54ea26fa60 Borislav Petkov       2020-09-11  524  		force_load = true;
eaa3a1d46cfdbf Borislav Petkov       2018-05-18  525  		idx = 0;
eaa3a1d46cfdbf Borislav Petkov       2018-05-18  526  	}
32fa1f53c2daf9 Mauro Carvalho Chehab 2013-02-14  527  
23f61b9fc5cc10 Robert Richter        2019-11-05  528  	/* finish another registration/unregistration instance first */
23f61b9fc5cc10 Robert Richter        2019-11-05  529  	mutex_lock(&ghes_reg_mutex);
23f61b9fc5cc10 Robert Richter        2019-11-05  530  
0fe5f281f749f1 Borislav Petkov       2017-08-16  531  	/*
0fe5f281f749f1 Borislav Petkov       2017-08-16  532  	 * We have only one logical memory controller to which all DIMMs belong.
0fe5f281f749f1 Borislav Petkov       2017-08-16  533  	 */
23f61b9fc5cc10 Robert Richter        2019-11-05  534  	if (refcount_inc_not_zero(&ghes_refcount))
23f61b9fc5cc10 Robert Richter        2019-11-05  535  		goto unlock;
0fe5f281f749f1 Borislav Petkov       2017-08-16  536  
b9cae27728d1f9 Borislav Petkov       2020-06-03  537  	ghes_scan_system();
32fa1f53c2daf9 Mauro Carvalho Chehab 2013-02-14  538  
32fa1f53c2daf9 Mauro Carvalho Chehab 2013-02-14  539  	/* Check if we've got a bogus BIOS */
b9cae27728d1f9 Borislav Petkov       2020-06-03  540  	if (!ghes_hw.num_dimms) {
32fa1f53c2daf9 Mauro Carvalho Chehab 2013-02-14  541  		fake = true;
b9cae27728d1f9 Borislav Petkov       2020-06-03  542  		ghes_hw.num_dimms = 1;
32fa1f53c2daf9 Mauro Carvalho Chehab 2013-02-14  543  	}
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  544  
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  545  	layers[0].type = EDAC_MC_LAYER_ALL_MEM;
b9cae27728d1f9 Borislav Petkov       2020-06-03  546  	layers[0].size = ghes_hw.num_dimms;
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  547  	layers[0].is_virt_csrow = true;
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  548  
b001694d60fe4d Robert Richter        2020-05-19  549  	mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(struct ghes_pvt));
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  550  	if (!mci) {
d2a6856614fd34 Mauro Carvalho Chehab 2013-02-15  551  		pr_info("Can't allocate memory for EDAC data\n");
23f61b9fc5cc10 Robert Richter        2019-11-05  552  		rc = -ENOMEM;
23f61b9fc5cc10 Robert Richter        2019-11-05  553  		goto unlock;
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  554  	}
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  555  
23f61b9fc5cc10 Robert Richter        2019-11-05  556  	pvt		= mci->pvt_info;
23f61b9fc5cc10 Robert Richter        2019-11-05  557  	pvt->mci	= mci;
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  558  
0fe5f281f749f1 Borislav Petkov       2017-08-16  559  	mci->pdev = dev;
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  560  	mci->mtype_cap = MEM_FLAG_EMPTY;
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  561  	mci->edac_ctl_cap = EDAC_FLAG_NONE;
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  562  	mci->edac_cap = EDAC_FLAG_NONE;
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  563  	mci->mod_name = "ghes_edac.c";
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  564  	mci->ctl_name = "ghes_edac";
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  565  	mci->dev_name = "ghes";
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  566  
5deed6b6a479ad Toshi Kani            2017-08-23  567  	if (fake) {
5deed6b6a479ad Toshi Kani            2017-08-23  568  		pr_info("This system has a very crappy BIOS: It doesn't even list the DIMMS.\n");
5deed6b6a479ad Toshi Kani            2017-08-23  569  		pr_info("Its SMBIOS info is wrong. It is doubtful that the error report would\n");
5deed6b6a479ad Toshi Kani            2017-08-23  570  		pr_info("work on such system. Use this driver with caution\n");
5deed6b6a479ad Toshi Kani            2017-08-23  571  	} else if (idx < 0) {
d2a6856614fd34 Mauro Carvalho Chehab 2013-02-15  572  		pr_info("This EDAC driver relies on BIOS to enumerate memory and get error reports.\n");
d2a6856614fd34 Mauro Carvalho Chehab 2013-02-15  573  		pr_info("Unfortunately, not all BIOSes reflect the memory layout correctly.\n");
d2a6856614fd34 Mauro Carvalho Chehab 2013-02-15  574  		pr_info("So, the end result of using this driver varies from vendor to vendor.\n");
d2a6856614fd34 Mauro Carvalho Chehab 2013-02-15  575  		pr_info("If you find incorrect reports, please contact your hardware vendor\n");
d2a6856614fd34 Mauro Carvalho Chehab 2013-02-15  576  		pr_info("to correct its BIOS.\n");
b9cae27728d1f9 Borislav Petkov       2020-06-03  577  		pr_info("This system has %d DIMM sockets.\n", ghes_hw.num_dimms);
d2a6856614fd34 Mauro Carvalho Chehab 2013-02-15  578  	}
d2a6856614fd34 Mauro Carvalho Chehab 2013-02-15  579  
32fa1f53c2daf9 Mauro Carvalho Chehab 2013-02-14  580  	if (!fake) {
b9cae27728d1f9 Borislav Petkov       2020-06-03  581  		struct dimm_info *src, *dst;
b9cae27728d1f9 Borislav Petkov       2020-06-03  582  		int i = 0;
b9cae27728d1f9 Borislav Petkov       2020-06-03  583  
b9cae27728d1f9 Borislav Petkov       2020-06-03  584  		mci_for_each_dimm(mci, dst) {
b9cae27728d1f9 Borislav Petkov       2020-06-03  585  			src = &ghes_hw.dimms[i];
b9cae27728d1f9 Borislav Petkov       2020-06-03  586  
b9cae27728d1f9 Borislav Petkov       2020-06-03  587  			dst->idx	   = src->idx;
b9cae27728d1f9 Borislav Petkov       2020-06-03  588  			dst->smbios_handle = src->smbios_handle;
b9cae27728d1f9 Borislav Petkov       2020-06-03  589  			dst->nr_pages	   = src->nr_pages;
b9cae27728d1f9 Borislav Petkov       2020-06-03  590  			dst->mtype	   = src->mtype;
b9cae27728d1f9 Borislav Petkov       2020-06-03  591  			dst->edac_mode	   = src->edac_mode;
b9cae27728d1f9 Borislav Petkov       2020-06-03  592  			dst->dtype	   = src->dtype;
b9cae27728d1f9 Borislav Petkov       2020-06-03  593  			dst->grain	   = src->grain;
b9cae27728d1f9 Borislav Petkov       2020-06-03  594  
b9cae27728d1f9 Borislav Petkov       2020-06-03  595  			/*
b9cae27728d1f9 Borislav Petkov       2020-06-03  596  			 * If no src->label, preserve default label assigned
b9cae27728d1f9 Borislav Petkov       2020-06-03  597  			 * from EDAC core.
b9cae27728d1f9 Borislav Petkov       2020-06-03  598  			 */
b9cae27728d1f9 Borislav Petkov       2020-06-03  599  			if (strlen(src->label))
b9cae27728d1f9 Borislav Petkov       2020-06-03  600  				memcpy(dst->label, src->label, sizeof(src->label));
b9cae27728d1f9 Borislav Petkov       2020-06-03  601  
b9cae27728d1f9 Borislav Petkov       2020-06-03  602  			i++;
b9cae27728d1f9 Borislav Petkov       2020-06-03  603  		}
b9cae27728d1f9 Borislav Petkov       2020-06-03  604  
32fa1f53c2daf9 Mauro Carvalho Chehab 2013-02-14  605  	} else {
bc9ad9e40dbc4c Robert Richter        2019-11-06  606  		struct dimm_info *dimm = edac_get_dimm(mci, 0, 0, 0);
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  607  
d2a6856614fd34 Mauro Carvalho Chehab 2013-02-15  608  		dimm->nr_pages = 1;
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  609  		dimm->grain = 128;
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  610  		dimm->mtype = MEM_UNKNOWN;
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  611  		dimm->dtype = DEV_UNKNOWN;
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  612  		dimm->edac_mode = EDAC_SECDED;
32fa1f53c2daf9 Mauro Carvalho Chehab 2013-02-14  613  	}
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  614  
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  615  	rc = edac_mc_add_mc(mci);
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  616  	if (rc < 0) {
b9cae27728d1f9 Borislav Petkov       2020-06-03  617  		pr_info("Can't register with the EDAC core\n");
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  618  		edac_mc_free(mci);
23f61b9fc5cc10 Robert Richter        2019-11-05  619  		rc = -ENODEV;
23f61b9fc5cc10 Robert Richter        2019-11-05  620  		goto unlock;
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  621  	}
23f61b9fc5cc10 Robert Richter        2019-11-05  622  
23f61b9fc5cc10 Robert Richter        2019-11-05  623  	spin_lock_irqsave(&ghes_lock, flags);
23f61b9fc5cc10 Robert Richter        2019-11-05  624  	ghes_pvt = pvt;
23f61b9fc5cc10 Robert Richter        2019-11-05  625  	spin_unlock_irqrestore(&ghes_lock, flags);
23f61b9fc5cc10 Robert Richter        2019-11-05  626  
16214bd9e43a31 Robert Richter        2019-11-21  627  	/* only set on success */
16214bd9e43a31 Robert Richter        2019-11-21  628  	refcount_set(&ghes_refcount, 1);
23f61b9fc5cc10 Robert Richter        2019-11-05  629  
23f61b9fc5cc10 Robert Richter        2019-11-05  630  unlock:
b9cae27728d1f9 Borislav Petkov       2020-06-03  631  
b9cae27728d1f9 Borislav Petkov       2020-06-03  632  	/* Not needed anymore */
b9cae27728d1f9 Borislav Petkov       2020-06-03  633  	kfree(ghes_hw.dimms);
b9cae27728d1f9 Borislav Petkov       2020-06-03  634  	ghes_hw.dimms = NULL;
b9cae27728d1f9 Borislav Petkov       2020-06-03  635  
23f61b9fc5cc10 Robert Richter        2019-11-05  636  	mutex_unlock(&ghes_reg_mutex);
23f61b9fc5cc10 Robert Richter        2019-11-05  637  
23f61b9fc5cc10 Robert Richter        2019-11-05  638  	return rc;
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  639  }
77c5f5d2f212e1 Mauro Carvalho Chehab 2013-02-15  640  

:::::: The code at line 503 was first introduced by commit
:::::: 5deed6b6a479ad5851d7ead6412dc6faa84a694e EDAC, ghes: Add platform check

:::::: TO: Toshi Kani <toshi.kani@xxxxxxx>
:::::: CC: Borislav Petkov <bp@xxxxxxx>

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




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux