All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: Re: [PATCH rdma-next v1 4/6] RDMA/mlx5: Check enabled UCAPs when creating ucontext
Date: Sat, 8 Mar 2025 12:22:50 +0800	[thread overview]
Message-ID: <202503081223.ISLOmyVZ-lkp@intel.com> (raw)
In-Reply-To: <8b180583a207cb30deb7a2967934079749cdcc44.1741261611.git.leon@kernel.org>

Hi Leon,

kernel test robot noticed the following build errors:

[auto build test ERROR on rdma/for-next]
[also build test ERROR on linus/master v6.14-rc5 next-20250307]
[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/Leon-Romanovsky/RDMA-uverbs-Introduce-UCAP-User-CAPabilities-API/20250306-195708
base:   https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git for-next
patch link:    https://lore.kernel.org/r/8b180583a207cb30deb7a2967934079749cdcc44.1741261611.git.leon%40kernel.org
patch subject: [PATCH rdma-next v1 4/6] RDMA/mlx5: Check enabled UCAPs when creating ucontext
config: s390-defconfig (https://download.01.org/0day-ci/archive/20250308/202503081223.ISLOmyVZ-lkp@intel.com/config)
compiler: clang version 15.0.7 (https://github.com/llvm/llvm-project 8dfdcc7b7bf66834a761bd8de445840ef68e4d1a)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250308/202503081223.ISLOmyVZ-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503081223.ISLOmyVZ-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/infiniband/hw/mlx5/main.c:1992:10: error: call to undeclared function 'mlx5_cmd_add_privileged_uid'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
                           err = mlx5_cmd_add_privileged_uid(dev->mdev,
                                 ^
>> drivers/infiniband/hw/mlx5/main.c:2086:3: error: call to undeclared function 'mlx5_cmd_remove_privileged_uid'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
                   mlx5_cmd_remove_privileged_uid(dev->mdev, context->devx_uid);
                   ^
   drivers/infiniband/hw/mlx5/main.c:2134:4: error: call to undeclared function 'mlx5_cmd_remove_privileged_uid'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
                           mlx5_cmd_remove_privileged_uid(dev->mdev,
                           ^
   drivers/infiniband/hw/mlx5/main.c:4229:42: error: use of undeclared identifier 'MLX5_UCTX_CAP_RDMA_CTRL'; did you mean 'MLX5_UCTX_CAP_RAW_TX'?
           if (MLX5_CAP_GEN(dev->mdev, uctx_cap) & MLX5_UCTX_CAP_RDMA_CTRL)
                                                   ^~~~~~~~~~~~~~~~~~~~~~~
                                                   MLX5_UCTX_CAP_RAW_TX
   include/linux/mlx5/mlx5_ifc.h:1571:2: note: 'MLX5_UCTX_CAP_RAW_TX' declared here
           MLX5_UCTX_CAP_RAW_TX = 1UL << 0,
           ^
   drivers/infiniband/hw/mlx5/main.c:4233:6: error: use of undeclared identifier 'MLX5_UCTX_CAP_RDMA_CTRL_OTHER_VHCA'; did you mean 'RDMA_UCAP_MLX5_CTRL_OTHER_VHCA'?
               MLX5_UCTX_CAP_RDMA_CTRL_OTHER_VHCA)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               RDMA_UCAP_MLX5_CTRL_OTHER_VHCA
   include/rdma/ib_ucaps.h:13:2: note: 'RDMA_UCAP_MLX5_CTRL_OTHER_VHCA' declared here
           RDMA_UCAP_MLX5_CTRL_OTHER_VHCA,
           ^
   drivers/infiniband/hw/mlx5/main.c:4241:42: error: use of undeclared identifier 'MLX5_UCTX_CAP_RDMA_CTRL'; did you mean 'MLX5_UCTX_CAP_RAW_TX'?
           if (MLX5_CAP_GEN(dev->mdev, uctx_cap) & MLX5_UCTX_CAP_RDMA_CTRL) {
                                                   ^~~~~~~~~~~~~~~~~~~~~~~
                                                   MLX5_UCTX_CAP_RAW_TX
   include/linux/mlx5/mlx5_ifc.h:1571:2: note: 'MLX5_UCTX_CAP_RAW_TX' declared here
           MLX5_UCTX_CAP_RAW_TX = 1UL << 0,
           ^
   drivers/infiniband/hw/mlx5/main.c:4248:6: error: use of undeclared identifier 'MLX5_UCTX_CAP_RDMA_CTRL_OTHER_VHCA'; did you mean 'RDMA_UCAP_MLX5_CTRL_OTHER_VHCA'?
               MLX5_UCTX_CAP_RDMA_CTRL_OTHER_VHCA) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               RDMA_UCAP_MLX5_CTRL_OTHER_VHCA
   include/rdma/ib_ucaps.h:13:2: note: 'RDMA_UCAP_MLX5_CTRL_OTHER_VHCA' declared here
           RDMA_UCAP_MLX5_CTRL_OTHER_VHCA,
           ^
   drivers/infiniband/hw/mlx5/main.c:4257:42: error: use of undeclared identifier 'MLX5_UCTX_CAP_RDMA_CTRL'; did you mean 'MLX5_UCTX_CAP_RAW_TX'?
           if (MLX5_CAP_GEN(dev->mdev, uctx_cap) & MLX5_UCTX_CAP_RDMA_CTRL)
                                                   ^~~~~~~~~~~~~~~~~~~~~~~
                                                   MLX5_UCTX_CAP_RAW_TX
   include/linux/mlx5/mlx5_ifc.h:1571:2: note: 'MLX5_UCTX_CAP_RAW_TX' declared here
           MLX5_UCTX_CAP_RAW_TX = 1UL << 0,
           ^
   drivers/infiniband/hw/mlx5/main.c:4264:6: error: no member named 'general_obj_types_127_64' in 'mlx5_ifc_cmd_hca_cap_2_bits'
           if (MLX5_CAP_GEN_2_64(dev->mdev, general_obj_types_127_64) &
               ^                            ~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/mlx5/device.h:1299:2: note: expanded from macro 'MLX5_CAP_GEN_2_64'
           MLX5_GET64(cmd_hca_cap_2, mdev->caps.hca[MLX5_CAP_GENERAL_2]->cur, cap)
           ^                                                                  ~~~
   include/linux/mlx5/device.h:121:63: note: expanded from macro 'MLX5_GET64'
   #define MLX5_GET64(typ, p, fld) be64_to_cpu(*((__be64 *)(p) + __mlx5_64_off(typ, fld)))
                                                                 ^                  ~~~
   include/linux/mlx5/device.h:55:34: note: expanded from macro '__mlx5_64_off'
   #define __mlx5_64_off(typ, fld) (__mlx5_bit_off(typ, fld) / 64)
                                    ^                   ~~~
   include/linux/mlx5/device.h:52:35: note: expanded from macro '__mlx5_bit_off'
   #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld))
                                     ^                                      ~~~
   include/linux/stddef.h:16:32: note: expanded from macro 'offsetof'
   #define offsetof(TYPE, MEMBER)  __builtin_offsetof(TYPE, MEMBER)
                                   ^                        ~~~~~~
   include/uapi/linux/byteorder/big_endian.h:39:51: note: expanded from macro '__be64_to_cpu'
   #define __be64_to_cpu(x) ((__force __u64)(__be64)(x))
                                                     ^
   drivers/infiniband/hw/mlx5/main.c:4265:6: error: use of undeclared identifier 'MLX5_HCA_CAP_2_GENERAL_OBJECT_TYPES_RDMA_CTRL'; did you mean 'MLX5_HCA_CAP_GENERAL_OBJECT_TYPES_SAMPLER'?
               MLX5_HCA_CAP_2_GENERAL_OBJECT_TYPES_RDMA_CTRL)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               MLX5_HCA_CAP_GENERAL_OBJECT_TYPES_SAMPLER
   include/linux/mlx5/mlx5_ifc.h:12493:2: note: 'MLX5_HCA_CAP_GENERAL_OBJECT_TYPES_SAMPLER' declared here
           MLX5_HCA_CAP_GENERAL_OBJECT_TYPES_SAMPLER = BIT_ULL(0x20),
           ^
   drivers/infiniband/hw/mlx5/main.c:4318:6: error: no member named 'general_obj_types_127_64' in 'mlx5_ifc_cmd_hca_cap_2_bits'
           if (MLX5_CAP_GEN_2_64(dev->mdev, general_obj_types_127_64) &
               ^                            ~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/mlx5/device.h:1299:2: note: expanded from macro 'MLX5_CAP_GEN_2_64'
           MLX5_GET64(cmd_hca_cap_2, mdev->caps.hca[MLX5_CAP_GENERAL_2]->cur, cap)
           ^                                                                  ~~~
   include/linux/mlx5/device.h:121:63: note: expanded from macro 'MLX5_GET64'
   #define MLX5_GET64(typ, p, fld) be64_to_cpu(*((__be64 *)(p) + __mlx5_64_off(typ, fld)))
                                                                 ^                  ~~~
   include/linux/mlx5/device.h:55:34: note: expanded from macro '__mlx5_64_off'
   #define __mlx5_64_off(typ, fld) (__mlx5_bit_off(typ, fld) / 64)
                                    ^                   ~~~
   include/linux/mlx5/device.h:52:35: note: expanded from macro '__mlx5_bit_off'
   #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld))
                                     ^                                      ~~~
   include/linux/stddef.h:16:32: note: expanded from macro 'offsetof'
   #define offsetof(TYPE, MEMBER)  __builtin_offsetof(TYPE, MEMBER)
                                   ^                        ~~~~~~
   include/uapi/linux/byteorder/big_endian.h:39:51: note: expanded from macro '__be64_to_cpu'
   #define __be64_to_cpu(x) ((__force __u64)(__be64)(x))
                                                     ^
   drivers/infiniband/hw/mlx5/main.c:4319:6: error: use of undeclared identifier 'MLX5_HCA_CAP_2_GENERAL_OBJECT_TYPES_RDMA_CTRL'; did you mean 'MLX5_HCA_CAP_GENERAL_OBJECT_TYPES_SAMPLER'?
               MLX5_HCA_CAP_2_GENERAL_OBJECT_TYPES_RDMA_CTRL) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               MLX5_HCA_CAP_GENERAL_OBJECT_TYPES_SAMPLER
   include/linux/mlx5/mlx5_ifc.h:12493:2: note: 'MLX5_HCA_CAP_GENERAL_OBJECT_TYPES_SAMPLER' declared here
           MLX5_HCA_CAP_GENERAL_OBJECT_TYPES_SAMPLER = BIT_ULL(0x20),
           ^
   12 errors generated.


vim +/mlx5_cmd_add_privileged_uid +1992 drivers/infiniband/hw/mlx5/main.c

  1943	
  1944	static int mlx5_ib_alloc_ucontext(struct ib_ucontext *uctx,
  1945					  struct ib_udata *udata)
  1946	{
  1947		struct ib_device *ibdev = uctx->device;
  1948		struct mlx5_ib_dev *dev = to_mdev(ibdev);
  1949		struct mlx5_ib_alloc_ucontext_req_v2 req = {};
  1950		struct mlx5_ib_alloc_ucontext_resp resp = {};
  1951		struct mlx5_ib_ucontext *context = to_mucontext(uctx);
  1952		struct mlx5_bfreg_info *bfregi;
  1953		int ver;
  1954		int err;
  1955		size_t min_req_v2 = offsetof(struct mlx5_ib_alloc_ucontext_req_v2,
  1956					     max_cqe_version);
  1957		bool lib_uar_4k;
  1958		bool lib_uar_dyn;
  1959	
  1960		if (!dev->ib_active)
  1961			return -EAGAIN;
  1962	
  1963		if (udata->inlen == sizeof(struct mlx5_ib_alloc_ucontext_req))
  1964			ver = 0;
  1965		else if (udata->inlen >= min_req_v2)
  1966			ver = 2;
  1967		else
  1968			return -EINVAL;
  1969	
  1970		err = ib_copy_from_udata(&req, udata, min(udata->inlen, sizeof(req)));
  1971		if (err)
  1972			return err;
  1973	
  1974		if (req.flags & ~MLX5_IB_ALLOC_UCTX_DEVX)
  1975			return -EOPNOTSUPP;
  1976	
  1977		if (req.comp_mask || req.reserved0 || req.reserved1 || req.reserved2)
  1978			return -EOPNOTSUPP;
  1979	
  1980		req.total_num_bfregs = ALIGN(req.total_num_bfregs,
  1981					    MLX5_NON_FP_BFREGS_PER_UAR);
  1982		if (req.num_low_latency_bfregs > req.total_num_bfregs - 1)
  1983			return -EINVAL;
  1984	
  1985		if (req.flags & MLX5_IB_ALLOC_UCTX_DEVX) {
  1986			err = mlx5_ib_devx_create(dev, true, uctx->enabled_caps);
  1987			if (err < 0)
  1988				goto out_ctx;
  1989			context->devx_uid = err;
  1990	
  1991			if (uctx_rdma_ctrl_is_enabled(uctx->enabled_caps)) {
> 1992				err = mlx5_cmd_add_privileged_uid(dev->mdev,
  1993								  context->devx_uid);
  1994				if (err)
  1995					goto out_devx;
  1996			}
  1997		}
  1998	
  1999		lib_uar_4k = req.lib_caps & MLX5_LIB_CAP_4K_UAR;
  2000		lib_uar_dyn = req.lib_caps & MLX5_LIB_CAP_DYN_UAR;
  2001		bfregi = &context->bfregi;
  2002	
  2003		if (lib_uar_dyn) {
  2004			bfregi->lib_uar_dyn = lib_uar_dyn;
  2005			goto uar_done;
  2006		}
  2007	
  2008		/* updates req->total_num_bfregs */
  2009		err = calc_total_bfregs(dev, lib_uar_4k, &req, bfregi);
  2010		if (err)
  2011			goto out_ucap;
  2012	
  2013		mutex_init(&bfregi->lock);
  2014		bfregi->lib_uar_4k = lib_uar_4k;
  2015		bfregi->count = kcalloc(bfregi->total_num_bfregs, sizeof(*bfregi->count),
  2016					GFP_KERNEL);
  2017		if (!bfregi->count) {
  2018			err = -ENOMEM;
  2019			goto out_ucap;
  2020		}
  2021	
  2022		bfregi->sys_pages = kcalloc(bfregi->num_sys_pages,
  2023					    sizeof(*bfregi->sys_pages),
  2024					    GFP_KERNEL);
  2025		if (!bfregi->sys_pages) {
  2026			err = -ENOMEM;
  2027			goto out_count;
  2028		}
  2029	
  2030		err = allocate_uars(dev, context);
  2031		if (err)
  2032			goto out_sys_pages;
  2033	
  2034	uar_done:
  2035		err = mlx5_ib_alloc_transport_domain(dev, &context->tdn,
  2036						     context->devx_uid);
  2037		if (err)
  2038			goto out_uars;
  2039	
  2040		INIT_LIST_HEAD(&context->db_page_list);
  2041		mutex_init(&context->db_page_mutex);
  2042	
  2043		context->cqe_version = min_t(__u8,
  2044					 (__u8)MLX5_CAP_GEN(dev->mdev, cqe_version),
  2045					 req.max_cqe_version);
  2046	
  2047		err = set_ucontext_resp(uctx, &resp);
  2048		if (err)
  2049			goto out_mdev;
  2050	
  2051		resp.response_length = min(udata->outlen, sizeof(resp));
  2052		err = ib_copy_to_udata(udata, &resp, resp.response_length);
  2053		if (err)
  2054			goto out_mdev;
  2055	
  2056		bfregi->ver = ver;
  2057		bfregi->num_low_latency_bfregs = req.num_low_latency_bfregs;
  2058		context->lib_caps = req.lib_caps;
  2059		print_lib_caps(dev, context->lib_caps);
  2060	
  2061		if (mlx5_ib_lag_should_assign_affinity(dev)) {
  2062			u32 port = mlx5_core_native_port_num(dev->mdev) - 1;
  2063	
  2064			atomic_set(&context->tx_port_affinity,
  2065				   atomic_add_return(
  2066					   1, &dev->port[port].roce.tx_port_affinity));
  2067		}
  2068	
  2069		return 0;
  2070	
  2071	out_mdev:
  2072		mlx5_ib_dealloc_transport_domain(dev, context->tdn, context->devx_uid);
  2073	
  2074	out_uars:
  2075		deallocate_uars(dev, context);
  2076	
  2077	out_sys_pages:
  2078		kfree(bfregi->sys_pages);
  2079	
  2080	out_count:
  2081		kfree(bfregi->count);
  2082	
  2083	out_ucap:
  2084		if (req.flags & MLX5_IB_ALLOC_UCTX_DEVX &&
  2085		    uctx_rdma_ctrl_is_enabled(uctx->enabled_caps))
> 2086			mlx5_cmd_remove_privileged_uid(dev->mdev, context->devx_uid);
  2087	
  2088	out_devx:
  2089		if (req.flags & MLX5_IB_ALLOC_UCTX_DEVX)
  2090			mlx5_ib_devx_destroy(dev, context->devx_uid);
  2091	
  2092	out_ctx:
  2093		return err;
  2094	}
  2095	

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

  reply	other threads:[~2025-03-08  4:23 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-06 11:51 [PATCH rdma-next v1 0/6] Introduce UCAP API and usage in mlx5 Leon Romanovsky
2025-03-06 11:51 ` [PATCH rdma-next v1 1/6] RDMA/uverbs: Introduce UCAP (User CAPabilities) API Leon Romanovsky
2025-03-08  7:25   ` Zhu Yanjun
2025-03-08 19:21     ` Leon Romanovsky
2025-03-06 11:51 ` [PATCH rdma-next v1 2/6] RDMA/mlx5: Create UCAP char devices for supported device capabilities Leon Romanovsky
2025-03-08 12:33   ` kernel test robot
2025-03-06 11:51 ` [PATCH rdma-next v1 3/6] RDMA/uverbs: Add support for UCAPs in context creation Leon Romanovsky
2025-03-06 11:51 ` [PATCH rdma-next v1 4/6] RDMA/mlx5: Check enabled UCAPs when creating ucontext Leon Romanovsky
2025-03-08  4:22   ` kernel test robot [this message]
2025-03-06 11:51 ` [PATCH rdma-next v1 5/6] RDMA/mlx5: Expose RDMA TRANSPORT flow table types to userspace Leon Romanovsky
2025-03-07 12:30   ` kernel test robot
2025-03-08  5:37   ` kernel test robot
2025-03-06 11:51 ` [PATCH rdma-next v1 6/6] docs: infiniband: document the UCAP API Leon Romanovsky
2025-03-08 19:23 ` [PATCH rdma-next v1 0/6] Introduce UCAP API and usage in mlx5 Leon Romanovsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202503081223.ISLOmyVZ-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=leon@kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.