[linux-next:master 4285/10007] mm/kasan/sw_tags.c:211:6: warning: no previous prototype for function 'kasan_tag_mismatch'
by kernel test robot
Hi Peter,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 19ae1f2bd9c091059f80646604ccef8a1e614f57
commit: 1cbdf60bd1b74e397d48aa877367cfc621f45ffe [4285/10007] kasan: arm64: support specialized outlined tag mismatch checks
config: arm64-randconfig-r022-20210615 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 64720f57bea6a6bf033feef4a5751ab9c0c3b401)
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/commi...
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 1cbdf60bd1b74e397d48aa877367cfc621f45ffe
# 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(a)intel.com>
All warnings (new ones prefixed by >>):
>> mm/kasan/sw_tags.c:211:6: warning: no previous prototype for function 'kasan_tag_mismatch' [-Wmissing-prototypes]
void kasan_tag_mismatch(unsigned long addr, unsigned long access_info,
^
mm/kasan/sw_tags.c:211:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void kasan_tag_mismatch(unsigned long addr, unsigned long access_info,
^
static
1 warning generated.
vim +/kasan_tag_mismatch +211 mm/kasan/sw_tags.c
210
> 211 void kasan_tag_mismatch(unsigned long addr, unsigned long access_info,
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 3 months
[xlnx:xlnx_rebase_v5.4 1563/1762] drivers/net/ethernet/xilinx/xilinx_axienet_main.c:1962:10: warning: 'regval' may be used uninitialized in this function
by kernel test robot
tree: https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.4
head: d128303e4c53bcf7775c46771bf64c71596f3303
commit: d42de16ed2832785de4066fac3883d46ed3f063f [1563/1762] net: xilinx: XXV Ethernet HW timestamp fixes
config: i386-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/Xilinx/linux-xlnx/commit/d42de16ed2832785de4066fac3883...
git remote add xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xlnx xlnx_rebase_v5.4
git checkout d42de16ed2832785de4066fac3883d46ed3f063f
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings
All warnings (new ones prefixed by >>):
drivers/net/ethernet/xilinx/xilinx_axienet_main.c: In function 'axienet_queue_xmit':
drivers/net/ethernet/xilinx/xilinx_axienet_main.c:1077:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
1077 | const struct ethhdr *eth;
| ^~~~~
drivers/net/ethernet/xilinx/xilinx_axienet_main.c: In function 'axienet_ioctl':
>> drivers/net/ethernet/xilinx/xilinx_axienet_main.c:1962:10: warning: 'regval' may be used uninitialized in this function [-Wmaybe-uninitialized]
1962 | regval &= ~XAE_TC_INBAND1588_MASK;
drivers/net/ethernet/xilinx/xilinx_axienet_main.c:1927:6: note: 'regval' was declared here
1927 | u32 regval;
| ^~~~~~
vim +/regval +1962 drivers/net/ethernet/xilinx/xilinx_axienet_main.c
bbcf6f9bb1bc20 Saurabh Sengar 2020-02-13 1951
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1952 /* reserved for future extensions */
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1953 if (config->flags)
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1954 return -EINVAL;
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1955
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1956 /* Read the current value in the MAC TX CTRL register */
d42de16ed28327 Harini Katakam 2020-09-24 1957 if (lp->axienet_config->mactype != XAXIENET_10G_25G)
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1958 regval = axienet_ior(lp, XAE_TC_OFFSET);
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1959
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1960 switch (config->tx_type) {
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1961 case HWTSTAMP_TX_OFF:
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 @1962 regval &= ~XAE_TC_INBAND1588_MASK;
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1963 break;
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1964 case HWTSTAMP_TX_ON:
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1965 config->tx_type = HWTSTAMP_TX_ON;
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1966 regval |= XAE_TC_INBAND1588_MASK;
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1967 break;
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1968 case HWTSTAMP_TX_ONESTEP_SYNC:
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1969 config->tx_type = HWTSTAMP_TX_ONESTEP_SYNC;
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1970 regval |= XAE_TC_INBAND1588_MASK;
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1971 break;
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1972 default:
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1973 return -ERANGE;
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1974 }
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1975
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1976 if (lp->axienet_config->mactype != XAXIENET_10G_25G)
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1977 axienet_iow(lp, XAE_TC_OFFSET, regval);
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1978
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1979 /* Read the current value in the MAC RX RCW1 register */
d42de16ed28327 Harini Katakam 2020-09-24 1980 if (lp->axienet_config->mactype != XAXIENET_10G_25G)
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1981 regval = axienet_ior(lp, XAE_RCW1_OFFSET);
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1982
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1983 /* On RX always timestamp everything */
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1984 switch (config->rx_filter) {
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1985 case HWTSTAMP_FILTER_NONE:
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1986 regval &= ~XAE_RCW1_INBAND1588_MASK;
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1987 break;
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1988 default:
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1989 config->rx_filter = HWTSTAMP_FILTER_ALL;
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1990 regval |= XAE_RCW1_INBAND1588_MASK;
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1991 }
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1992
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1993 if (lp->axienet_config->mactype != XAXIENET_10G_25G)
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1994 axienet_iow(lp, XAE_RCW1_OFFSET, regval);
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1995
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1996 return 0;
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1997 }
7aee9da192ba57 Appana Durga Kedareswara Rao 2020-01-24 1998
:::::: The code at line 1962 was first introduced by commit
:::::: 7aee9da192ba57210897a418ada793ac5b15a851 net: axienet: Add support for 1588
:::::: TO: Appana Durga Kedareswara Rao <appana.durga.rao(a)xilinx.com>
:::::: CC: Michal Simek <michal.simek(a)xilinx.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 3 months
[xlnx:xlnx_rebase_v5.4 904/1762] ld.lld: error: duplicate symbol: dwc3_set_simple_data
by kernel test robot
Hi Michal,
FYI, the error/warning still remains.
tree: https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.4
head: d128303e4c53bcf7775c46771bf64c71596f3303
commit: 3d600fd776cbda29abdea084f7437f7d9102b2a5 [904/1762] usb: dwc3: Add support for removing vbus when suspended
config: x86_64-randconfig-a014-20210615 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 64720f57bea6a6bf033feef4a5751ab9c0c3b401)
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 x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/Xilinx/linux-xlnx/commit/3d600fd776cbda29abdea084f7437...
git remote add xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xlnx xlnx_rebase_v5.4
git checkout 3d600fd776cbda29abdea084f7437f7d9102b2a5
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> ld.lld: error: duplicate symbol: dwc3_set_simple_data
>>> defined at core.h:1422 (drivers/usb/dwc3/core.h:1422)
>>> usb/dwc3/core.o:(dwc3_set_simple_data) in archive drivers/built-in.a
>>> defined at core.h:1422 (drivers/usb/dwc3/core.h:1422)
>>> usb/dwc3/trace.o:(.text+0x20) in archive drivers/built-in.a
--
>> ld.lld: error: duplicate symbol: dwc3_set_simple_data
>>> defined at core.h:1422 (drivers/usb/dwc3/core.h:1422)
>>> usb/dwc3/core.o:(dwc3_set_simple_data) in archive drivers/built-in.a
>>> defined at core.h:1422 (drivers/usb/dwc3/core.h:1422)
>>> usb/dwc3/host.o:(.text+0x20) in archive drivers/built-in.a
--
>> ld.lld: error: duplicate symbol: dwc3_set_simple_data
>>> defined at core.h:1422 (drivers/usb/dwc3/core.h:1422)
>>> usb/dwc3/core.o:(dwc3_set_simple_data) in archive drivers/built-in.a
>>> defined at core.h:1422 (drivers/usb/dwc3/core.h:1422)
>>> usb/dwc3/debugfs.o:(.text+0x20) in archive drivers/built-in.a
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 3 months
[agd5f:drm-next 53/84] drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_dp.c:3628:17: warning: variable 'status' set but not used
by kernel test robot
tree: https://gitlab.freedesktop.org/agd5f/linux.git drm-next
head: 5fedbd64e1c0eedd28f478f280c6315d18ff7762
commit: ee9b1992f1fdf3726af010cd771b12205e0ce346 [53/84] drm/amd/display: Move LTTPR cap read into its own function
config: riscv-randconfig-r033-20210615 (attached as .config)
compiler: riscv64-linux-gcc (GCC) 9.3.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
git remote add agd5f https://gitlab.freedesktop.org/agd5f/linux.git
git fetch --no-tags agd5f drm-next
git checkout ee9b1992f1fdf3726af010cd771b12205e0ce346
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_dp.c:1378:16: warning: no previous prototype for 'configure_lttpr_mode_transparent' [-Wmissing-prototypes]
1378 | enum dc_status configure_lttpr_mode_transparent(struct dc_link *link)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_dp.c:1389:16: warning: no previous prototype for 'configure_lttpr_mode_non_transparent' [-Wmissing-prototypes]
1389 | enum dc_status configure_lttpr_mode_non_transparent(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_dp.c:1637:16: warning: no previous prototype for 'dpcd_configure_channel_coding' [-Wmissing-prototypes]
1637 | enum dc_status dpcd_configure_channel_coding(struct dc_link *link,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_dp.c:3622:6: warning: no previous prototype for 'dp_retrieve_lttpr_cap' [-Wmissing-prototypes]
3622 | bool dp_retrieve_lttpr_cap(struct dc_link *link)
| ^~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_dp.c: In function 'dp_retrieve_lttpr_cap':
>> drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_dp.c:3628:17: warning: variable 'status' set but not used [-Wunused-but-set-variable]
3628 | enum dc_status status = DC_ERROR_UNEXPECTED;
| ^~~~~~
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for LOCKDEP
Depends on DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT && (FRAME_POINTER || MIPS || PPC || S390 || MICROBLAZE || ARM || ARC || X86)
Selected by
- PROVE_LOCKING && DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT
- DEBUG_LOCK_ALLOC && DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT
vim +/status +3628 drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link_dp.c
3621
3622 bool dp_retrieve_lttpr_cap(struct dc_link *link)
3623 {
3624 uint8_t lttpr_dpcd_data[6];
3625 bool vbios_lttpr_enable = false;
3626 bool vbios_lttpr_interop = false;
3627 struct dc_bios *bios = link->dc->ctx->dc_bios;
> 3628 enum dc_status status = DC_ERROR_UNEXPECTED;
3629 bool is_lttpr_present = false;
3630
3631 memset(lttpr_dpcd_data, '\0', sizeof(lttpr_dpcd_data));
3632 /* Query BIOS to determine if LTTPR functionality is forced on by system */
3633 if (bios->funcs->get_lttpr_caps) {
3634 enum bp_result bp_query_result;
3635 uint8_t is_vbios_lttpr_enable = 0;
3636
3637 bp_query_result = bios->funcs->get_lttpr_caps(bios, &is_vbios_lttpr_enable);
3638 vbios_lttpr_enable = (bp_query_result == BP_RESULT_OK) && !!is_vbios_lttpr_enable;
3639 }
3640
3641 if (bios->funcs->get_lttpr_interop) {
3642 enum bp_result bp_query_result;
3643 uint8_t is_vbios_interop_enabled = 0;
3644
3645 bp_query_result = bios->funcs->get_lttpr_interop(bios, &is_vbios_interop_enabled);
3646 vbios_lttpr_interop = (bp_query_result == BP_RESULT_OK) && !!is_vbios_interop_enabled;
3647 }
3648
3649 /*
3650 * Logic to determine LTTPR mode
3651 */
3652 link->lttpr_mode = LTTPR_MODE_NON_LTTPR;
3653 if (vbios_lttpr_enable && vbios_lttpr_interop)
3654 link->lttpr_mode = LTTPR_MODE_NON_TRANSPARENT;
3655 else if (!vbios_lttpr_enable && vbios_lttpr_interop) {
3656 if (link->dc->config.allow_lttpr_non_transparent_mode)
3657 link->lttpr_mode = LTTPR_MODE_NON_TRANSPARENT;
3658 else
3659 link->lttpr_mode = LTTPR_MODE_TRANSPARENT;
3660 } else if (!vbios_lttpr_enable && !vbios_lttpr_interop) {
3661 if (!link->dc->config.allow_lttpr_non_transparent_mode
3662 || !link->dc->caps.extended_aux_timeout_support)
3663 link->lttpr_mode = LTTPR_MODE_NON_LTTPR;
3664 else
3665 link->lttpr_mode = LTTPR_MODE_NON_TRANSPARENT;
3666 }
3667
3668 if (link->lttpr_mode == LTTPR_MODE_NON_TRANSPARENT || link->lttpr_mode == LTTPR_MODE_TRANSPARENT) {
3669 /* By reading LTTPR capability, RX assumes that we will enable
3670 * LTTPR extended aux timeout if LTTPR is present.
3671 */
3672 status = core_link_read_dpcd(
3673 link,
3674 DP_LT_TUNABLE_PHY_REPEATER_FIELD_DATA_STRUCTURE_REV,
3675 lttpr_dpcd_data,
3676 sizeof(lttpr_dpcd_data));
3677
3678 link->dpcd_caps.lttpr_caps.revision.raw =
3679 lttpr_dpcd_data[DP_LT_TUNABLE_PHY_REPEATER_FIELD_DATA_STRUCTURE_REV -
3680 DP_LT_TUNABLE_PHY_REPEATER_FIELD_DATA_STRUCTURE_REV];
3681
3682 link->dpcd_caps.lttpr_caps.max_link_rate =
3683 lttpr_dpcd_data[DP_MAX_LINK_RATE_PHY_REPEATER -
3684 DP_LT_TUNABLE_PHY_REPEATER_FIELD_DATA_STRUCTURE_REV];
3685
3686 link->dpcd_caps.lttpr_caps.phy_repeater_cnt =
3687 lttpr_dpcd_data[DP_PHY_REPEATER_CNT -
3688 DP_LT_TUNABLE_PHY_REPEATER_FIELD_DATA_STRUCTURE_REV];
3689
3690 link->dpcd_caps.lttpr_caps.max_lane_count =
3691 lttpr_dpcd_data[DP_MAX_LANE_COUNT_PHY_REPEATER -
3692 DP_LT_TUNABLE_PHY_REPEATER_FIELD_DATA_STRUCTURE_REV];
3693
3694 link->dpcd_caps.lttpr_caps.mode =
3695 lttpr_dpcd_data[DP_PHY_REPEATER_MODE -
3696 DP_LT_TUNABLE_PHY_REPEATER_FIELD_DATA_STRUCTURE_REV];
3697
3698 link->dpcd_caps.lttpr_caps.max_ext_timeout =
3699 lttpr_dpcd_data[DP_PHY_REPEATER_EXTENDED_WAIT_TIMEOUT -
3700 DP_LT_TUNABLE_PHY_REPEATER_FIELD_DATA_STRUCTURE_REV];
3701
3702 /* Attempt to train in LTTPR transparent mode if repeater count exceeds 8. */
3703 is_lttpr_present = (link->dpcd_caps.lttpr_caps.phy_repeater_cnt > 0 &&
3704 link->dpcd_caps.lttpr_caps.phy_repeater_cnt < 0xff &&
3705 link->dpcd_caps.lttpr_caps.max_lane_count > 0 &&
3706 link->dpcd_caps.lttpr_caps.max_lane_count <= 4 &&
3707 link->dpcd_caps.lttpr_caps.revision.raw >= 0x14);
3708 if (is_lttpr_present)
3709 CONN_DATA_DETECT(link, lttpr_dpcd_data, sizeof(lttpr_dpcd_data), "LTTPR Caps: ");
3710 else
3711 link->lttpr_mode = LTTPR_MODE_NON_LTTPR;
3712 }
3713 return is_lttpr_present;
3714 }
3715
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 3 months
[xlnx:xlnx_rebase_v5.4 1172/1762] drivers/irqchip/irq-xilinx-intc.c:170:10: error: implicit declaration of function 'handle_domain_irq'; did you mean 'handle_bad_irq'?
by kernel test robot
Hi Michal,
FYI, the error/warning still remains.
tree: https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.4
head: d128303e4c53bcf7775c46771bf64c71596f3303
commit: 9b798b0101efddfd3c5f6e2d86dfbb1522bfc1cf [1172/1762] irqchip: xilinx: Use handle_domain_irq()
config: i386-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/Xilinx/linux-xlnx/commit/9b798b0101efddfd3c5f6e2d86dfb...
git remote add xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xlnx xlnx_rebase_v5.4
git checkout 9b798b0101efddfd3c5f6e2d86dfbb1522bfc1cf
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/irqchip/irq-xilinx-intc.c: In function 'xil_intc_handle_irq':
>> drivers/irqchip/irq-xilinx-intc.c:170:10: error: implicit declaration of function 'handle_domain_irq'; did you mean 'handle_bad_irq'? [-Werror=implicit-function-declaration]
170 | ret = handle_domain_irq(irqc->root_domain, hwirq, regs);
| ^~~~~~~~~~~~~~~~~
| handle_bad_irq
drivers/irqchip/irq-xilinx-intc.c: In function 'xilinx_intc_of_init':
drivers/irqchip/irq-xilinx-intc.c:280:3: error: implicit declaration of function 'set_handle_irq'; did you mean 'handle_irq'? [-Werror=implicit-function-declaration]
280 | set_handle_irq(xil_intc_handle_irq);
| ^~~~~~~~~~~~~~
| handle_irq
cc1: some warnings being treated as errors
vim +170 drivers/irqchip/irq-xilinx-intc.c
160
161 static void xil_intc_handle_irq(struct pt_regs *regs)
162 {
163 int ret;
164 unsigned int hwirq, cpu_id = smp_processor_id();
165 struct xintc_irq_chip *irqc = per_cpu_ptr(&primary_intc, cpu_id);
166
167 do {
168 hwirq = irqc->read_fn(irqc->base + IVR);
169 if (hwirq != -1U) {
> 170 ret = handle_domain_irq(irqc->root_domain, hwirq, regs);
171 WARN_ONCE(ret, "cpu %d: Unhandled HWIRQ %d\n",
172 cpu_id, hwirq);
173 continue;
174 }
175
176 break;
177 } while (1);
178 }
179
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 3 months
[intel-tdx:guest 36/76] include/linux/compiler_types.h:328:38: error: call to '__compiletime_assert_223' declared with attribute error: Need native word sized stores/loads for atomicity.
by kernel test robot
tree: https://github.com/intel/tdx.git guest
head: 224dd4925275ef73ef78f1412d6f9d03564294eb
commit: 2cebad45f71238234fe6268a9ad041056fa87170 [36/76] x86/acpi, x86/boot: Add multiprocessor wake-up support
config: i386-randconfig-r032-20210616 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/intel/tdx/commit/2cebad45f71238234fe6268a9ad041056fa87170
git remote add intel-tdx https://github.com/intel/tdx.git
git fetch --no-tags intel-tdx guest
git checkout 2cebad45f71238234fe6268a9ad041056fa87170
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from <command-line>:
arch/x86/kernel/acpi/boot.c: In function 'acpi_wakeup_cpu':
>> include/linux/compiler_types.h:328:38: error: call to '__compiletime_assert_223' declared with attribute error: Need native word sized stores/loads for atomicity.
328 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:309:4: note: in definition of macro '__compiletime_assert'
309 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:328:2: note: in expansion of macro '_compiletime_assert'
328 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/compiler_types.h:331:2: note: in expansion of macro 'compiletime_assert'
331 | compiletime_assert(__native_word(t), \
| ^~~~~~~~~~~~~~~~~~
arch/x86/include/asm/barrier.h:68:2: note: in expansion of macro 'compiletime_assert_atomic_type'
68 | compiletime_assert_atomic_type(*p); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/barrier.h:138:33: note: in expansion of macro '__smp_store_release'
138 | #define smp_store_release(p, v) __smp_store_release(p, v)
| ^~~~~~~~~~~~~~~~~~~
arch/x86/kernel/acpi/boot.c:368:2: note: in expansion of macro 'smp_store_release'
368 | smp_store_release(&acpi_mp_wake_mailbox->wakeup_vector, start_ip);
| ^~~~~~~~~~~~~~~~~
vim +/__compiletime_assert_223 +328 include/linux/compiler_types.h
eb5c2d4b45e3d2 Will Deacon 2020-07-21 314
eb5c2d4b45e3d2 Will Deacon 2020-07-21 315 #define _compiletime_assert(condition, msg, prefix, suffix) \
eb5c2d4b45e3d2 Will Deacon 2020-07-21 316 __compiletime_assert(condition, msg, prefix, suffix)
eb5c2d4b45e3d2 Will Deacon 2020-07-21 317
eb5c2d4b45e3d2 Will Deacon 2020-07-21 318 /**
eb5c2d4b45e3d2 Will Deacon 2020-07-21 319 * compiletime_assert - break build and emit msg if condition is false
eb5c2d4b45e3d2 Will Deacon 2020-07-21 320 * @condition: a compile-time constant condition to check
eb5c2d4b45e3d2 Will Deacon 2020-07-21 321 * @msg: a message to emit if condition is false
eb5c2d4b45e3d2 Will Deacon 2020-07-21 322 *
eb5c2d4b45e3d2 Will Deacon 2020-07-21 323 * In tradition of POSIX assert, this macro will break the build if the
eb5c2d4b45e3d2 Will Deacon 2020-07-21 324 * supplied condition is *false*, emitting the supplied error message if the
eb5c2d4b45e3d2 Will Deacon 2020-07-21 325 * compiler has support to do so.
eb5c2d4b45e3d2 Will Deacon 2020-07-21 326 */
eb5c2d4b45e3d2 Will Deacon 2020-07-21 327 #define compiletime_assert(condition, msg) \
eb5c2d4b45e3d2 Will Deacon 2020-07-21 @328 _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
eb5c2d4b45e3d2 Will Deacon 2020-07-21 329
:::::: The code at line 328 was first introduced by commit
:::::: eb5c2d4b45e3d2d5d052ea6b8f1463976b1020d5 compiler.h: Move compiletime_assert() macros into compiler_types.h
:::::: TO: Will Deacon <will(a)kernel.org>
:::::: CC: Will Deacon <will(a)kernel.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 3 months
[zen-kernel-zen-kernel:5.12/futex2 1/16] arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_futex_wait'
by kernel test robot
tree: https://github.com/zen-kernel/zen-kernel 5.12/futex2
head: 81255c11c48cc2302883425c87318f9cad37e7e6
commit: 64cdae0a6364c651f13a9ba90f6a8fadd7e1b9f7 [1/16] futex2: Implement wait and wake functions
config: x86_64-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/zen-kernel/zen-kernel/commit/64cdae0a6364c651f13a9ba90...
git remote add zen-kernel-zen-kernel https://github.com/zen-kernel/zen-kernel
git fetch --no-tags zen-kernel-zen-kernel 5.12/futex2
git checkout 64cdae0a6364c651f13a9ba90f6a8fadd7e1b9f7
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:147:1: note: in expansion of macro 'COND_SYSCALL'
147 | COND_SYSCALL(futex_time32);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_set_robust_list' [-Wmissing-prototypes]
83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL'
100 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL'
256 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:148:1: note: in expansion of macro 'COND_SYSCALL'
148 | COND_SYSCALL(set_robust_list);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__ia32_sys_set_robust_list' [-Wmissing-prototypes]
83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:120:2: note: in expansion of macro '__COND_SYSCALL'
120 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:257:2: note: in expansion of macro '__IA32_COND_SYSCALL'
257 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:148:1: note: in expansion of macro 'COND_SYSCALL'
148 | COND_SYSCALL(set_robust_list);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__ia32_compat_sys_set_robust_list' [-Wmissing-prototypes]
83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:148:2: note: in expansion of macro '__COND_SYSCALL'
148 | __COND_SYSCALL(ia32, compat_sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:218:2: note: in expansion of macro '__IA32_COMPAT_COND_SYSCALL'
218 | __IA32_COMPAT_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:149:1: note: in expansion of macro 'COND_SYSCALL_COMPAT'
149 | COND_SYSCALL_COMPAT(set_robust_list);
| ^~~~~~~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x32_compat_sys_set_robust_list' [-Wmissing-prototypes]
83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:175:2: note: in expansion of macro '__COND_SYSCALL'
175 | __COND_SYSCALL(x32, compat_sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:219:2: note: in expansion of macro '__X32_COMPAT_COND_SYSCALL'
219 | __X32_COMPAT_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:149:1: note: in expansion of macro 'COND_SYSCALL_COMPAT'
149 | COND_SYSCALL_COMPAT(set_robust_list);
| ^~~~~~~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_get_robust_list' [-Wmissing-prototypes]
83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL'
100 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL'
256 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:150:1: note: in expansion of macro 'COND_SYSCALL'
150 | COND_SYSCALL(get_robust_list);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__ia32_sys_get_robust_list' [-Wmissing-prototypes]
83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:120:2: note: in expansion of macro '__COND_SYSCALL'
120 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:257:2: note: in expansion of macro '__IA32_COND_SYSCALL'
257 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:150:1: note: in expansion of macro 'COND_SYSCALL'
150 | COND_SYSCALL(get_robust_list);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__ia32_compat_sys_get_robust_list' [-Wmissing-prototypes]
83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:148:2: note: in expansion of macro '__COND_SYSCALL'
148 | __COND_SYSCALL(ia32, compat_sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:218:2: note: in expansion of macro '__IA32_COMPAT_COND_SYSCALL'
218 | __IA32_COMPAT_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:151:1: note: in expansion of macro 'COND_SYSCALL_COMPAT'
151 | COND_SYSCALL_COMPAT(get_robust_list);
| ^~~~~~~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x32_compat_sys_get_robust_list' [-Wmissing-prototypes]
83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:175:2: note: in expansion of macro '__COND_SYSCALL'
175 | __COND_SYSCALL(x32, compat_sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:219:2: note: in expansion of macro '__X32_COMPAT_COND_SYSCALL'
219 | __X32_COMPAT_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:151:1: note: in expansion of macro 'COND_SYSCALL_COMPAT'
151 | COND_SYSCALL_COMPAT(get_robust_list);
| ^~~~~~~~~~~~~~~~~~~
>> arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_futex_wait' [-Wmissing-prototypes]
83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL'
100 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL'
256 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:154:1: note: in expansion of macro 'COND_SYSCALL'
154 | COND_SYSCALL(futex_wait);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__ia32_sys_futex_wait' [-Wmissing-prototypes]
83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:120:2: note: in expansion of macro '__COND_SYSCALL'
120 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:257:2: note: in expansion of macro '__IA32_COND_SYSCALL'
257 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:154:1: note: in expansion of macro 'COND_SYSCALL'
154 | COND_SYSCALL(futex_wait);
| ^~~~~~~~~~~~
>> arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_futex_wake' [-Wmissing-prototypes]
83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL'
100 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL'
256 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:155:1: note: in expansion of macro 'COND_SYSCALL'
155 | COND_SYSCALL(futex_wake);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__ia32_sys_futex_wake' [-Wmissing-prototypes]
83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:120:2: note: in expansion of macro '__COND_SYSCALL'
120 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:257:2: note: in expansion of macro '__IA32_COND_SYSCALL'
257 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:155:1: note: in expansion of macro 'COND_SYSCALL'
155 | COND_SYSCALL(futex_wake);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_kexec_load' [-Wmissing-prototypes]
83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL'
100 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL'
256 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:162:1: note: in expansion of macro 'COND_SYSCALL'
162 | COND_SYSCALL(kexec_load);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__ia32_sys_kexec_load' [-Wmissing-prototypes]
83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:120:2: note: in expansion of macro '__COND_SYSCALL'
120 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:257:2: note: in expansion of macro '__IA32_COND_SYSCALL'
257 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:162:1: note: in expansion of macro 'COND_SYSCALL'
162 | COND_SYSCALL(kexec_load);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__ia32_compat_sys_kexec_load' [-Wmissing-prototypes]
83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:148:2: note: in expansion of macro '__COND_SYSCALL'
148 | __COND_SYSCALL(ia32, compat_sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:218:2: note: in expansion of macro '__IA32_COMPAT_COND_SYSCALL'
218 | __IA32_COMPAT_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:163:1: note: in expansion of macro 'COND_SYSCALL_COMPAT'
163 | COND_SYSCALL_COMPAT(kexec_load);
| ^~~~~~~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x32_compat_sys_kexec_load' [-Wmissing-prototypes]
83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:175:2: note: in expansion of macro '__COND_SYSCALL'
175 | __COND_SYSCALL(x32, compat_sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:219:2: note: in expansion of macro '__X32_COMPAT_COND_SYSCALL'
219 | __X32_COMPAT_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:163:1: note: in expansion of macro 'COND_SYSCALL_COMPAT'
163 | COND_SYSCALL_COMPAT(kexec_load);
| ^~~~~~~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_init_module' [-Wmissing-prototypes]
83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL'
100 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:256:2: note: in expansion of macro '__X64_COND_SYSCALL'
256 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:166:1: note: in expansion of macro 'COND_SYSCALL'
166 | COND_SYSCALL(init_module);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__ia32_sys_init_module' [-Wmissing-prototypes]
83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:120:2: note: in expansion of macro '__COND_SYSCALL'
120 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:257:2: note: in expansion of macro '__IA32_COND_SYSCALL'
257 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:166:1: note: in expansion of macro 'COND_SYSCALL'
166 | COND_SYSCALL(init_module);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:83:14: warning: no previous prototype for '__x64_sys_delete_module' [-Wmissing-prototypes]
83 | __weak long __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:100:2: note: in expansion of macro '__COND_SYSCALL'
100 | __COND_SYSCALL(x64, sys_##name)
vim +/__x64_sys_futex_wait +83 arch/x86/include/asm/syscall_wrapper.h
cc42c045af1ff4 Brian Gerst 2020-03-13 13
25c619e59b395a Brian Gerst 2020-03-13 14 /*
25c619e59b395a Brian Gerst 2020-03-13 15 * Instead of the generic __SYSCALL_DEFINEx() definition, the x86 version takes
25c619e59b395a Brian Gerst 2020-03-13 16 * struct pt_regs *regs as the only argument of the syscall stub(s) named as:
25c619e59b395a Brian Gerst 2020-03-13 17 * __x64_sys_*() - 64-bit native syscall
25c619e59b395a Brian Gerst 2020-03-13 18 * __ia32_sys_*() - 32-bit native syscall or common compat syscall
25c619e59b395a Brian Gerst 2020-03-13 19 * __ia32_compat_sys_*() - 32-bit compat syscall
25c619e59b395a Brian Gerst 2020-03-13 20 * __x32_compat_sys_*() - 64-bit X32 compat syscall
25c619e59b395a Brian Gerst 2020-03-13 21 *
25c619e59b395a Brian Gerst 2020-03-13 22 * The registers are decoded according to the ABI:
25c619e59b395a Brian Gerst 2020-03-13 23 * 64-bit: RDI, RSI, RDX, R10, R8, R9
25c619e59b395a Brian Gerst 2020-03-13 24 * 32-bit: EBX, ECX, EDX, ESI, EDI, EBP
25c619e59b395a Brian Gerst 2020-03-13 25 *
25c619e59b395a Brian Gerst 2020-03-13 26 * The stub then passes the decoded arguments to the __se_sys_*() wrapper to
25c619e59b395a Brian Gerst 2020-03-13 27 * perform sign-extension (omitted for zero-argument syscalls). Finally the
25c619e59b395a Brian Gerst 2020-03-13 28 * arguments are passed to the __do_sys_*() function which is the actual
25c619e59b395a Brian Gerst 2020-03-13 29 * syscall. These wrappers are marked as inline so the compiler can optimize
25c619e59b395a Brian Gerst 2020-03-13 30 * the functions where appropriate.
25c619e59b395a Brian Gerst 2020-03-13 31 *
25c619e59b395a Brian Gerst 2020-03-13 32 * Example assembly (slightly re-ordered for better readability):
25c619e59b395a Brian Gerst 2020-03-13 33 *
25c619e59b395a Brian Gerst 2020-03-13 34 * <__x64_sys_recv>: <-- syscall with 4 parameters
25c619e59b395a Brian Gerst 2020-03-13 35 * callq <__fentry__>
25c619e59b395a Brian Gerst 2020-03-13 36 *
25c619e59b395a Brian Gerst 2020-03-13 37 * mov 0x70(%rdi),%rdi <-- decode regs->di
25c619e59b395a Brian Gerst 2020-03-13 38 * mov 0x68(%rdi),%rsi <-- decode regs->si
25c619e59b395a Brian Gerst 2020-03-13 39 * mov 0x60(%rdi),%rdx <-- decode regs->dx
25c619e59b395a Brian Gerst 2020-03-13 40 * mov 0x38(%rdi),%rcx <-- decode regs->r10
25c619e59b395a Brian Gerst 2020-03-13 41 *
25c619e59b395a Brian Gerst 2020-03-13 42 * xor %r9d,%r9d <-- clear %r9
25c619e59b395a Brian Gerst 2020-03-13 43 * xor %r8d,%r8d <-- clear %r8
25c619e59b395a Brian Gerst 2020-03-13 44 *
25c619e59b395a Brian Gerst 2020-03-13 45 * callq __sys_recvfrom <-- do the actual work in __sys_recvfrom()
25c619e59b395a Brian Gerst 2020-03-13 46 * which takes 6 arguments
25c619e59b395a Brian Gerst 2020-03-13 47 *
25c619e59b395a Brian Gerst 2020-03-13 48 * cltq <-- extend return value to 64-bit
25c619e59b395a Brian Gerst 2020-03-13 49 * retq <-- return
25c619e59b395a Brian Gerst 2020-03-13 50 *
25c619e59b395a Brian Gerst 2020-03-13 51 * This approach avoids leaking random user-provided register content down
25c619e59b395a Brian Gerst 2020-03-13 52 * the call chain.
25c619e59b395a Brian Gerst 2020-03-13 53 */
25c619e59b395a Brian Gerst 2020-03-13 54
ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 55 /* Mapping of registers to parameters for syscalls on x86-64 and x32 */
ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 56 #define SC_X86_64_REGS_TO_ARGS(x, ...) \
ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 57 __MAP(x,__SC_ARGS \
ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 58 ,,regs->di,,regs->si,,regs->dx \
ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 59 ,,regs->r10,,regs->r8,,regs->r9) \
ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 60
ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 61 /* Mapping of registers to parameters for syscalls on i386 */
ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 62 #define SC_IA32_REGS_TO_ARGS(x, ...) \
ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 63 __MAP(x,__SC_ARGS \
ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 64 ,,(unsigned int)regs->bx,,(unsigned int)regs->cx \
ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 65 ,,(unsigned int)regs->dx,,(unsigned int)regs->si \
ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 66 ,,(unsigned int)regs->di,,(unsigned int)regs->bp)
ebeb8c82ffaf94 Dominik Brodowski 2018-04-05 67
d2b5de495ee983 Brian Gerst 2020-03-13 68 #define __SYS_STUB0(abi, name) \
0f78ff17112d8b Brian Gerst 2020-03-13 69 long __##abi##_##name(const struct pt_regs *regs); \
d2b5de495ee983 Brian Gerst 2020-03-13 70 ALLOW_ERROR_INJECTION(__##abi##_##name, ERRNO); \
0f78ff17112d8b Brian Gerst 2020-03-13 71 long __##abi##_##name(const struct pt_regs *regs) \
d2b5de495ee983 Brian Gerst 2020-03-13 72 __alias(__do_##name);
d2b5de495ee983 Brian Gerst 2020-03-13 73
4399e0cf494f73 Brian Gerst 2020-03-13 74 #define __SYS_STUBx(abi, name, ...) \
0f78ff17112d8b Brian Gerst 2020-03-13 75 long __##abi##_##name(const struct pt_regs *regs); \
4399e0cf494f73 Brian Gerst 2020-03-13 76 ALLOW_ERROR_INJECTION(__##abi##_##name, ERRNO); \
0f78ff17112d8b Brian Gerst 2020-03-13 77 long __##abi##_##name(const struct pt_regs *regs) \
4399e0cf494f73 Brian Gerst 2020-03-13 78 { \
4399e0cf494f73 Brian Gerst 2020-03-13 79 return __se_##name(__VA_ARGS__); \
4399e0cf494f73 Brian Gerst 2020-03-13 80 }
4399e0cf494f73 Brian Gerst 2020-03-13 81
6cc8d2b286d9e7 Brian Gerst 2020-03-13 82 #define __COND_SYSCALL(abi, name) \
0f78ff17112d8b Brian Gerst 2020-03-13 @83 __weak long __##abi##_##name(const struct pt_regs *__unused) \
6cc8d2b286d9e7 Brian Gerst 2020-03-13 84 { \
6cc8d2b286d9e7 Brian Gerst 2020-03-13 85 return sys_ni_syscall(); \
6cc8d2b286d9e7 Brian Gerst 2020-03-13 86 }
6cc8d2b286d9e7 Brian Gerst 2020-03-13 87
:::::: The code at line 83 was first introduced by commit
:::::: 0f78ff17112d8b3469b805ff4ea9780cc1e5c93b x86/entry: Drop asmlinkage from syscalls
:::::: TO: Brian Gerst <brgerst(a)gmail.com>
:::::: CC: Thomas Gleixner <tglx(a)linutronix.de>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 3 months
[zen-kernel-zen-kernel:5.12/futex2 3/16] kernel/futex2.c:714:28: error: variable has incomplete type 'struct compat_futex_waitv'
by kernel test robot
tree: https://github.com/zen-kernel/zen-kernel 5.12/futex2
head: 81255c11c48cc2302883425c87318f9cad37e7e6
commit: 04a97ad2406166e12a13f09c9981f18e6487f530 [3/16] futex2: Implement vectorized wait
config: powerpc-randconfig-r013-20210615 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 64720f57bea6a6bf033feef4a5751ab9c0c3b401)
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://github.com/zen-kernel/zen-kernel/commit/04a97ad2406166e12a13f09c9...
git remote add zen-kernel-zen-kernel https://github.com/zen-kernel/zen-kernel
git fetch --no-tags zen-kernel-zen-kernel 5.12/futex2
git checkout 04a97ad2406166e12a13f09c9981f18e6487f530
# 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 <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
In file included from kernel/futex2.c:16:
In file included from include/linux/freezer.h:7:
In file included from include/linux/debug_locks.h:5:
In file included from include/linux/atomic.h:7:
In file included from arch/powerpc/include/asm/atomic.h:11:
In file included from arch/powerpc/include/asm/cmpxchg.h:8:
In file included from include/linux/bug.h:5:
In file included from arch/powerpc/include/asm/bug.h:109:
In file included from include/asm-generic/bug.h:20:
In file included from include/linux/kernel.h:11:
In file included from include/linux/bitops.h:32:
In file included from arch/powerpc/include/asm/bitops.h:62:
arch/powerpc/include/asm/barrier.h:49:9: warning: '__lwsync' macro redefined [-Wmacro-redefined]
#define __lwsync() __asm__ __volatile__ (stringify_in_c(LWSYNC) : : :"memory")
^
<built-in>:309:9: note: previous definition is here
#define __lwsync __builtin_ppc_lwsync
^
>> kernel/futex2.c:711:16: warning: declaration of 'struct compat_futex_waitv' will not be visible outside of this function [-Wvisibility]
struct compat_futex_waitv __user *uwaitv,
^
>> kernel/futex2.c:714:28: error: variable has incomplete type 'struct compat_futex_waitv'
struct compat_futex_waitv waitv;
^
kernel/futex2.c:711:16: note: forward declaration of 'struct compat_futex_waitv'
struct compat_futex_waitv __user *uwaitv,
^
>> kernel/futex2.c:719:37: error: subscript of pointer to incomplete type 'struct compat_futex_waitv'
if (copy_from_user(&waitv, &uwaitv[i], sizeof(waitv)))
~~~~~~^
kernel/futex2.c:711:16: note: forward declaration of 'struct compat_futex_waitv'
struct compat_futex_waitv __user *uwaitv,
^
>> kernel/futex2.c:728:31: error: implicit declaration of function 'compat_ptr' [-Werror,-Wimplicit-function-declaration]
futexv->objects[i].uaddr = compat_ptr(waitv.uaddr);
^
>> kernel/futex2.c:747:37: error: expected identifier
COMPAT_SYSCALL_DEFINE4(futex_waitv, struct compat_futex_waitv __user *, waiters,
^
>> kernel/futex2.c:754:6: error: use of undeclared identifier 'flags'
if (flags & ~FUTEXV_MASK)
^
>> kernel/futex2.c:757:7: error: use of undeclared identifier 'nr_futexes'
if (!nr_futexes || nr_futexes > FUTEX_WAITV_MAX || !waiters)
^
kernel/futex2.c:757:21: error: use of undeclared identifier 'nr_futexes'
if (!nr_futexes || nr_futexes > FUTEX_WAITV_MAX || !waiters)
^
>> kernel/futex2.c:757:54: error: use of undeclared identifier 'waiters'
if (!nr_futexes || nr_futexes > FUTEX_WAITV_MAX || !waiters)
^
kernel/futex2.c:760:50: error: use of undeclared identifier 'nr_futexes'
futexv = kmalloc((sizeof(struct futex_waiter) * nr_futexes) +
^
kernel/futex2.c:768:41: error: use of undeclared identifier 'waiters'
ret = compat_futex_parse_waitv(futexv, waiters, nr_futexes);
^
kernel/futex2.c:768:50: error: use of undeclared identifier 'nr_futexes'
ret = compat_futex_parse_waitv(futexv, waiters, nr_futexes);
^
kernel/futex2.c:771:31: error: use of undeclared identifier 'nr_futexes'
ret = __futex_waitv(futexv, nr_futexes, timo, flags);
^
>> kernel/futex2.c:771:43: error: use of undeclared identifier 'timo'
ret = __futex_waitv(futexv, nr_futexes, timo, flags);
^
kernel/futex2.c:771:49: error: use of undeclared identifier 'flags'
ret = __futex_waitv(futexv, nr_futexes, timo, flags);
^
>> kernel/futex2.c:747:1: warning: no previous prototype for function 'COMPAT_SYSCALL_DEFINE4' [-Wmissing-prototypes]
COMPAT_SYSCALL_DEFINE4(futex_waitv, struct compat_futex_waitv __user *, waiters,
^
kernel/futex2.c:747:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
COMPAT_SYSCALL_DEFINE4(futex_waitv, struct compat_futex_waitv __user *, waiters,
^
static
>> kernel/futex2.c:747:23: error: this old-style function definition is not preceded by a prototype [-Werror,-Wstrict-prototypes]
COMPAT_SYSCALL_DEFINE4(futex_waitv, struct compat_futex_waitv __user *, waiters,
^
3 warnings and 15 errors generated.
vim +714 kernel/futex2.c
700
701 #ifdef CONFIG_COMPAT
702 /**
703 * compat_futex_parse_waitv - Parse a waitv array from userspace
704 * @futexv: Kernel side list of waiters to be filled
705 * @uwaitv: Userspace list to be parsed
706 * @nr_futexes: Length of futexv
707 *
708 * Return: Error code on failure, pointer to a prepared futexv otherwise
709 */
710 static int compat_futex_parse_waitv(struct futex_waiter_head *futexv,
> 711 struct compat_futex_waitv __user *uwaitv,
712 unsigned int nr_futexes)
713 {
> 714 struct compat_futex_waitv waitv;
715 struct futex_bucket *bucket;
716 unsigned int i;
717
718 for (i = 0; i < nr_futexes; i++) {
> 719 if (copy_from_user(&waitv, &uwaitv[i], sizeof(waitv)))
720 return -EFAULT;
721
722 if ((waitv.flags & ~FUTEXV_WAITER_MASK) ||
723 (waitv.flags & FUTEX_SIZE_MASK) != FUTEX_32)
724 return -EINVAL;
725
726 futexv->objects[i].key.pointer = 0;
727 futexv->objects[i].flags = waitv.flags;
> 728 futexv->objects[i].uaddr = compat_ptr(waitv.uaddr);
729 futexv->objects[i].val = waitv.val;
730 futexv->objects[i].index = i;
731
732 bucket = futex_get_bucket(compat_ptr(waitv.uaddr),
733 &futexv->objects[i].key,
734 is_object_shared);
735
736 if (IS_ERR(bucket))
737 return PTR_ERR(bucket);
738
739 futexv->objects[i].bucket = bucket;
740
741 INIT_LIST_HEAD(&futexv->objects[i].list);
742 }
743
744 return 0;
745 }
746
> 747 COMPAT_SYSCALL_DEFINE4(futex_waitv, struct compat_futex_waitv __user *, waiters,
748 unsigned int, nr_futexes, unsigned int, flags,
749 struct __kernel_timespec __user *, timo)
750 {
751 struct futex_waiter_head *futexv;
752 int ret;
753
> 754 if (flags & ~FUTEXV_MASK)
755 return -EINVAL;
756
> 757 if (!nr_futexes || nr_futexes > FUTEX_WAITV_MAX || !waiters)
758 return -EINVAL;
759
760 futexv = kmalloc((sizeof(struct futex_waiter) * nr_futexes) +
761 sizeof(*futexv), GFP_KERNEL);
762 if (!futexv)
763 return -ENOMEM;
764
765 futexv->hint = false;
766 futexv->task = current;
767
768 ret = compat_futex_parse_waitv(futexv, waiters, nr_futexes);
769
770 if (!ret)
> 771 ret = __futex_waitv(futexv, nr_futexes, timo, flags);
772
773 kfree(futexv);
774
775 return ret;
776 }
777 #endif
778
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 3 months