diff mbox series

[rdma-next,11/11] RDMA/erdma: Add driver to kernel build environment

Message ID 20211221024858.25938-12-chengyou@linux.alibaba.com (mailing list archive)
State Superseded
Headers show
Series Elastic RDMA Adapter (ERDMA) driver | expand

Commit Message

Cheng Xu Dec. 21, 2021, 2:48 a.m. UTC
Signed-off-by: Cheng Xu <chengyou@linux.alibaba.com>
---
 MAINTAINERS                          |  8 ++++++++
 drivers/infiniband/Kconfig           |  1 +
 drivers/infiniband/hw/Makefile       |  1 +
 drivers/infiniband/hw/erdma/Kconfig  | 10 ++++++++++
 drivers/infiniband/hw/erdma/Makefile |  5 +++++
 5 files changed, 25 insertions(+)
 create mode 100644 drivers/infiniband/hw/erdma/Kconfig
 create mode 100644 drivers/infiniband/hw/erdma/Makefile

Comments

kernel test robot Dec. 22, 2021, 12:58 a.m. UTC | #1
Hi Cheng,

I love your patch! Perhaps something to improve:

[auto build test WARNING on rdma/for-next]
[also build test WARNING on linus/master v5.16-rc6 next-20211221]
[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]

url:    https://github.com/0day-ci/linux/commits/Cheng-Xu/Elastic-RDMA-Adapter-ERDMA-driver/20211221-105044
base:   https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git for-next
config: ia64-allyesconfig (https://download.01.org/0day-ci/archive/20211222/202112220838.tXmQUWZb-lkp@intel.com/config)
compiler: ia64-linux-gcc (GCC) 11.2.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/0day-ci/linux/commit/3b0243fb79f0f12a5b5c020c6f26c82de2c3c57e
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Cheng-Xu/Elastic-RDMA-Adapter-ERDMA-driver/20211221-105044
        git checkout 3b0243fb79f0f12a5b5c020c6f26c82de2c3c57e
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=ia64 SHELL=/bin/bash

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

All warnings (new ones prefixed by >>):

   drivers/infiniband/hw/erdma/erdma_cm.c: In function 'erdma_cep_set_inuse':
>> drivers/infiniband/hw/erdma/erdma_cm.c:173:13: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
     173 |         int ret;
         |             ^~~
   drivers/infiniband/hw/erdma/erdma_cm.c: In function 'erdma_cm_llp_state_change':
>> drivers/infiniband/hw/erdma/erdma_cm.c:1077:24: warning: variable 's' set but not used [-Wunused-but-set-variable]
    1077 |         struct socket *s;
         |                        ^
   drivers/infiniband/hw/erdma/erdma_cm.c: In function 'erdma_create_listen':
>> drivers/infiniband/hw/erdma/erdma_cm.c:1456:28: warning: variable 'r_ip' set but not used [-Wunused-but-set-variable]
    1456 |                 u8 *l_ip, *r_ip;
         |                            ^~~~
>> drivers/infiniband/hw/erdma/erdma_cm.c:1456:21: warning: variable 'l_ip' set but not used [-Wunused-but-set-variable]
    1456 |                 u8 *l_ip, *r_ip;
         |                     ^~~~
--
   drivers/infiniband/hw/erdma/erdma_main.c: In function 'erdma_probe_dev':
>> drivers/infiniband/hw/erdma/erdma_main.c:294:27: warning: variable 'ibdev' set but not used [-Wunused-but-set-variable]
     294 |         struct ib_device *ibdev;
         |                           ^~~~~
   drivers/infiniband/hw/erdma/erdma_main.c: At top level:
>> drivers/infiniband/hw/erdma/erdma_main.c:464:5: warning: no previous prototype for 'erdma_res_cb_init' [-Wmissing-prototypes]
     464 | int erdma_res_cb_init(struct erdma_dev *dev)
         |     ^~~~~~~~~~~~~~~~~
>> drivers/infiniband/hw/erdma/erdma_main.c:481:6: warning: no previous prototype for 'erdma_res_cb_free' [-Wmissing-prototypes]
     481 | void erdma_res_cb_free(struct erdma_dev *dev)
         |      ^~~~~~~~~~~~~~~~~
--
>> drivers/infiniband/hw/erdma/erdma_eq.c:169:6: warning: no previous prototype for 'erdma_intr_ceq_task' [-Wmissing-prototypes]
     169 | void erdma_intr_ceq_task(unsigned long data)
         |      ^~~~~~~~~~~~~~~~~~~


vim +/ret +173 drivers/infiniband/hw/erdma/erdma_cm.c

1d17ac4bdb13af Cheng Xu 2021-12-21  169  
1d17ac4bdb13af Cheng Xu 2021-12-21  170  static void erdma_cep_set_inuse(struct erdma_cep *cep)
1d17ac4bdb13af Cheng Xu 2021-12-21  171  {
1d17ac4bdb13af Cheng Xu 2021-12-21  172  	unsigned long flags;
1d17ac4bdb13af Cheng Xu 2021-12-21 @173  	int ret;
1d17ac4bdb13af Cheng Xu 2021-12-21  174  retry:
1d17ac4bdb13af Cheng Xu 2021-12-21  175  	spin_lock_irqsave(&cep->lock, flags);
1d17ac4bdb13af Cheng Xu 2021-12-21  176  
1d17ac4bdb13af Cheng Xu 2021-12-21  177  	if (cep->in_use) {
1d17ac4bdb13af Cheng Xu 2021-12-21  178  		spin_unlock_irqrestore(&cep->lock, flags);
1d17ac4bdb13af Cheng Xu 2021-12-21  179  		ret = wait_event_interruptible(cep->waitq, !cep->in_use);
1d17ac4bdb13af Cheng Xu 2021-12-21  180  		if (signal_pending(current))
1d17ac4bdb13af Cheng Xu 2021-12-21  181  			flush_signals(current);
1d17ac4bdb13af Cheng Xu 2021-12-21  182  		goto retry;
1d17ac4bdb13af Cheng Xu 2021-12-21  183  	} else {
1d17ac4bdb13af Cheng Xu 2021-12-21  184  		cep->in_use = 1;
1d17ac4bdb13af Cheng Xu 2021-12-21  185  		spin_unlock_irqrestore(&cep->lock, flags);
1d17ac4bdb13af Cheng Xu 2021-12-21  186  	}
1d17ac4bdb13af Cheng Xu 2021-12-21  187  }
1d17ac4bdb13af Cheng Xu 2021-12-21  188  

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

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index e9d484507c06..ac2b54c6439b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -722,6 +722,14 @@  S:	Maintained
 F:	Documentation/i2c/busses/i2c-ali1563.rst
 F:	drivers/i2c/busses/i2c-ali1563.c
 
+ALIBABA ELASTIC RDMA DRIVER
+M:	Cheng Xu <chengyou@linux.alibaba.com>
+M:	Kai Shen <kaishen@linux.alibaba.com>
+L:	linux-rdma@vger.kernel.org
+S:	Supported
+F:	drivers/infiniband/hw/erdma
+F:	include/uapi/rdma/erdma-abi.h
+
 ALIENWARE WMI DRIVER
 L:	Dell.Client.Kernel@dell.com
 S:	Maintained
diff --git a/drivers/infiniband/Kconfig b/drivers/infiniband/Kconfig
index 33d3ce9c888e..cc6a7ff88ff3 100644
--- a/drivers/infiniband/Kconfig
+++ b/drivers/infiniband/Kconfig
@@ -92,6 +92,7 @@  source "drivers/infiniband/hw/hns/Kconfig"
 source "drivers/infiniband/hw/bnxt_re/Kconfig"
 source "drivers/infiniband/hw/hfi1/Kconfig"
 source "drivers/infiniband/hw/qedr/Kconfig"
+source "drivers/infiniband/hw/erdma/Kconfig"
 source "drivers/infiniband/sw/rdmavt/Kconfig"
 source "drivers/infiniband/sw/rxe/Kconfig"
 source "drivers/infiniband/sw/siw/Kconfig"
diff --git a/drivers/infiniband/hw/Makefile b/drivers/infiniband/hw/Makefile
index fba0b3be903e..6b3a88046125 100644
--- a/drivers/infiniband/hw/Makefile
+++ b/drivers/infiniband/hw/Makefile
@@ -13,3 +13,4 @@  obj-$(CONFIG_INFINIBAND_HFI1)		+= hfi1/
 obj-$(CONFIG_INFINIBAND_HNS)		+= hns/
 obj-$(CONFIG_INFINIBAND_QEDR)		+= qedr/
 obj-$(CONFIG_INFINIBAND_BNXT_RE)	+= bnxt_re/
+obj-$(CONFIG_INFINIBAND_ERDMA)		+= erdma/
diff --git a/drivers/infiniband/hw/erdma/Kconfig b/drivers/infiniband/hw/erdma/Kconfig
new file mode 100644
index 000000000000..8526689fede7
--- /dev/null
+++ b/drivers/infiniband/hw/erdma/Kconfig
@@ -0,0 +1,10 @@ 
+# SPDX-License-Identifier: GPL-2.0-only
+config INFINIBAND_ERDMA
+	tristate "Alibaba Elastic RDMA Adapter (ERDMA) support"
+	depends on PCI_MSI && 64BIT && !CPU_BIG_ENDIAN
+	depends on INFINIBAND_ADDR_TRANS
+	depends on INFINIBAND_USER_ACCESS
+	help
+	  This is a RDMA/iWarp driver for Alibaba Elastic RDMA Adapter(ERDMA).
+
+	  To compile this driver as module, choose M here.
diff --git a/drivers/infiniband/hw/erdma/Makefile b/drivers/infiniband/hw/erdma/Makefile
new file mode 100644
index 000000000000..149d22a80aa6
--- /dev/null
+++ b/drivers/infiniband/hw/erdma/Makefile
@@ -0,0 +1,5 @@ 
+# SPDX-License-Identifier: GPL-2.0
+obj-$(CONFIG_INFINIBAND_ERDMA) := erdma.o
+
+erdma-y := erdma_cm.o erdma_main.o erdma_cmdq.o erdma_debug.o erdma_verbs.o erdma_qp.o erdma_eq.o\
+	erdma_cq.o