tree: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next-test head: 4e4ed87981c764498942c52004c620bb8f104eac commit: e2f67efc6c8654d7aed885e943499f00a29eecdc [192/220] powerpc/rtas: move rtas_call_reentrant() out of pseries guards config: powerpc-randconfig-r016-20201204 (attached as .config) compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 32c501dd88b62787d3a5ffda7aabcf4650dbe3cd) 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 powerpc cross compiling tool for clang build # apt-get install binutils-powerpc-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id=e2f67efc6c8654d7aed885e943499f00a29eecdc git remote add powerpc https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git git fetch --no-tags powerpc next-test git checkout e2f67efc6c8654d7aed885e943499f00a29eecdc # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): >> arch/powerpc/kernel/rtas.c:938:21: error: no member named 'rtas_args_reentrant' in 'struct paca_struct' args = local_paca->rtas_args_reentrant; ~~~~~~~~~~ ^ 1 error generated. vim +938 arch/powerpc/kernel/rtas.c b664db8e3f976d Leonardo Bras 2020-05-18 906 b664db8e3f976d Leonardo Bras 2020-05-18 907 /** b664db8e3f976d Leonardo Bras 2020-05-18 908 * rtas_call_reentrant() - Used for reentrant rtas calls b664db8e3f976d Leonardo Bras 2020-05-18 909 * @token: Token for desired reentrant RTAS call b664db8e3f976d Leonardo Bras 2020-05-18 910 * @nargs: Number of Input Parameters b664db8e3f976d Leonardo Bras 2020-05-18 911 * @nret: Number of Output Parameters b664db8e3f976d Leonardo Bras 2020-05-18 912 * @outputs: Array of outputs b664db8e3f976d Leonardo Bras 2020-05-18 913 * @...: Inputs for desired RTAS call b664db8e3f976d Leonardo Bras 2020-05-18 914 * b664db8e3f976d Leonardo Bras 2020-05-18 915 * According to LoPAR documentation, only "ibm,int-on", "ibm,int-off", b664db8e3f976d Leonardo Bras 2020-05-18 916 * "ibm,get-xive" and "ibm,set-xive" are currently reentrant. b664db8e3f976d Leonardo Bras 2020-05-18 917 * Reentrant calls need their own rtas_args buffer, so not using rtas.args, but b664db8e3f976d Leonardo Bras 2020-05-18 918 * PACA one instead. b664db8e3f976d Leonardo Bras 2020-05-18 919 * b664db8e3f976d Leonardo Bras 2020-05-18 920 * Return: -1 on error, b664db8e3f976d Leonardo Bras 2020-05-18 921 * First output value of RTAS call if (nret > 0), b664db8e3f976d Leonardo Bras 2020-05-18 922 * 0 otherwise, b664db8e3f976d Leonardo Bras 2020-05-18 923 */ b664db8e3f976d Leonardo Bras 2020-05-18 924 int rtas_call_reentrant(int token, int nargs, int nret, int *outputs, ...) b664db8e3f976d Leonardo Bras 2020-05-18 925 { b664db8e3f976d Leonardo Bras 2020-05-18 926 va_list list; b664db8e3f976d Leonardo Bras 2020-05-18 927 struct rtas_args *args; b664db8e3f976d Leonardo Bras 2020-05-18 928 unsigned long flags; b664db8e3f976d Leonardo Bras 2020-05-18 929 int i, ret = 0; b664db8e3f976d Leonardo Bras 2020-05-18 930 b664db8e3f976d Leonardo Bras 2020-05-18 931 if (!rtas.entry || token == RTAS_UNKNOWN_SERVICE) b664db8e3f976d Leonardo Bras 2020-05-18 932 return -1; b664db8e3f976d Leonardo Bras 2020-05-18 933 b664db8e3f976d Leonardo Bras 2020-05-18 934 local_irq_save(flags); b664db8e3f976d Leonardo Bras 2020-05-18 935 preempt_disable(); b664db8e3f976d Leonardo Bras 2020-05-18 936 b664db8e3f976d Leonardo Bras 2020-05-18 937 /* We use the per-cpu (PACA) rtas args buffer */ b664db8e3f976d Leonardo Bras 2020-05-18 @938 args = local_paca->rtas_args_reentrant; b664db8e3f976d Leonardo Bras 2020-05-18 939 b664db8e3f976d Leonardo Bras 2020-05-18 940 va_start(list, outputs); b664db8e3f976d Leonardo Bras 2020-05-18 941 va_rtas_call_unlocked(args, token, nargs, nret, list); b664db8e3f976d Leonardo Bras 2020-05-18 942 va_end(list); b664db8e3f976d Leonardo Bras 2020-05-18 943 b664db8e3f976d Leonardo Bras 2020-05-18 944 if (nret > 1 && outputs) b664db8e3f976d Leonardo Bras 2020-05-18 945 for (i = 0; i < nret - 1; ++i) b664db8e3f976d Leonardo Bras 2020-05-18 946 outputs[i] = be32_to_cpu(args->rets[i + 1]); b664db8e3f976d Leonardo Bras 2020-05-18 947 b664db8e3f976d Leonardo Bras 2020-05-18 948 if (nret > 0) b664db8e3f976d Leonardo Bras 2020-05-18 949 ret = be32_to_cpu(args->rets[0]); b664db8e3f976d Leonardo Bras 2020-05-18 950 b664db8e3f976d Leonardo Bras 2020-05-18 951 local_irq_restore(flags); b664db8e3f976d Leonardo Bras 2020-05-18 952 preempt_enable(); b664db8e3f976d Leonardo Bras 2020-05-18 953 b664db8e3f976d Leonardo Bras 2020-05-18 954 return ret; b664db8e3f976d Leonardo Bras 2020-05-18 955 } b664db8e3f976d Leonardo Bras 2020-05-18 956 :::::: The code at line 938 was first introduced by commit :::::: b664db8e3f976d9233cc9ea5e3f8a8c0bcabeb48 powerpc/rtas: Implement reentrant rtas call :::::: TO: Leonardo Bras :::::: CC: Michael Ellerman --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org