Re: [PATCH v2] irqchip/gicv3: Workaround for NVIDIA erratum T241-FABRIC-4

From: kernel test robot
Date: Wed Mar 15 2023 - 18:50:03 EST


Hi Shanker,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on arm64/for-next/core]
[also build test ERROR on tip/irq/core soc/for-next linus/master v6.3-rc2 next-20230315]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Shanker-Donthineni/irqchip-gicv3-Workaround-for-NVIDIA-erratum-T241-FABRIC-4/20230314-215648
base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
patch link: https://lore.kernel.org/r/20230314135128.2930580-1-sdonthineni%40nvidia.com
patch subject: [PATCH v2] irqchip/gicv3: Workaround for NVIDIA erratum T241-FABRIC-4
config: arm-randconfig-r046-20230315 (https://download.01.org/0day-ci/archive/20230316/202303160647.R16cnZkc-lkp@xxxxxxxxx/config)
compiler: arm-linux-gnueabi-gcc (GCC) 12.1.0
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
# https://github.com/intel-lab-lkp/linux/commit/f796361134151057b68a259013204e8fa5516aee
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Shanker-Donthineni/irqchip-gicv3-Workaround-for-NVIDIA-erratum-T241-FABRIC-4/20230314-215648
git checkout f796361134151057b68a259013204e8fa5516aee
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=arm olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash drivers/irqchip/

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

All errors (new ones prefixed by >>):

In file included from include/linux/bits.h:6,
from include/linux/ioport.h:13,
from include/linux/acpi.h:12,
from drivers/irqchip/irq-gic-v3.c:9:
drivers/irqchip/irq-gic-v3.c: In function 'gic_enable_quirk_nvidia_t241':
>> drivers/irqchip/irq-gic-v3.c:1775:35: error: implicit declaration of function 'FIELD_GET'; did you mean 'FOLL_GET'? [-Werror=implicit-function-declaration]
1775 | chip_bmask |= BIT(FIELD_GET(T241_CHIPN_MASK,
| ^~~~~~~~~
include/vdso/bits.h:7:44: note: in definition of macro 'BIT'
7 | #define BIT(nr) (UL(1) << (nr))
| ^~
>> drivers/irqchip/irq-gic-v3.c:1786:33: error: implicit declaration of function 'FIELD_PREP' [-Werror=implicit-function-declaration]
1786 | phys |= FIELD_PREP(T241_CHIPN_MASK, i);
| ^~~~~~~~~~
cc1: some warnings being treated as errors


vim +1775 drivers/irqchip/irq-gic-v3.c

1760
1761 static bool gic_enable_quirk_nvidia_t241(void *data)
1762 {
1763 unsigned long chip_bmask = 0;
1764 phys_addr_t phys;
1765 u32 i;
1766
1767 /* Check JEP106 code for NVIDIA T241 chip (036b:0241) */
1768 if ((smccc_soc_id_version < 0) ||
1769 ((smccc_soc_id_version & SMCCC_SOC_ID_MASK) != SMCCC_SOC_ID_T241)) {
1770 return false;
1771 }
1772
1773 /* Find the chips based on GICR regions PHYS addr */
1774 for (i = 0; i < gic_data.nr_redist_regions; i++) {
> 1775 chip_bmask |= BIT(FIELD_GET(T241_CHIPN_MASK,
1776 gic_data.redist_regions[i].phys_base));
1777 }
1778
1779 if (hweight32(chip_bmask) < 3)
1780 return false;
1781
1782 /* Setup GICD alias regions */
1783 for (i = 0; i < ARRAY_SIZE(t241_dist_base_alias); i++) {
1784 if (chip_bmask & BIT(i)) {
1785 phys = gic_data.dist_phys_base + T241_CHIP_GICDA_OFFSET;
> 1786 phys |= FIELD_PREP(T241_CHIPN_MASK, i);
1787 t241_dist_base_alias[i] = ioremap(phys, SZ_64K);
1788 WARN_ON_ONCE(!t241_dist_base_alias[i]);
1789 }
1790 }
1791 static_branch_enable(&gic_nvidia_t241_erratum);
1792 return true;
1793 }
1794

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