diff mbox

[v3,14/15] IB: Add PVRDMA driver

Message ID 1470266864-16888-15-git-send-email-aditr@vmware.com (mailing list archive)
State Superseded
Headers show

Commit Message

Adit Ranadive Aug. 3, 2016, 11:27 p.m. UTC
This patch updates the InfiniBand subsystem to build the PVRDMA driver.

Reviewed-by: Jorgen Hansen <jhansen@vmware.com>
Reviewed-by: George Zhang <georgezhang@vmware.com>
Reviewed-by: Aditya Sarwade <asarwade@vmware.com>
Reviewed-by: Bryan Tan <bryantan@vmware.com>
Signed-off-by: Adit Ranadive <aditr@vmware.com>
---
 drivers/infiniband/Kconfig     | 1 +
 drivers/infiniband/hw/Makefile | 1 +
 2 files changed, 2 insertions(+)

Comments

kernel test robot Aug. 4, 2016, 2:30 a.m. UTC | #1
Hi Adit,

[auto build test WARNING on rdma/master]
[also build test WARNING on v4.7 next-20160803]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Adit-Ranadive/Add-Paravirtual-RDMA-Driver/20160804-075202
base:   https://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma.git master
config: i386-allmodconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All warnings (new ones prefixed by >>):

   In file included from arch/x86/include/asm/string.h:2:0,
                    from include/linux/string.h:18,
                    from arch/x86/include/asm/page_32.h:34,
                    from arch/x86/include/asm/page.h:13,
                    from arch/x86/include/asm/thread_info.h:11,
                    from include/linux/thread_info.h:54,
                    from arch/x86/include/asm/preempt.h:6,
                    from include/linux/preempt.h:59,
                    from include/linux/interrupt.h:8,
                    from drivers/infiniband/hw/pvrdma/pvrdma.h:50,
                    from drivers/infiniband/hw/pvrdma/pvrdma_cmd.c:48:
   drivers/infiniband/hw/pvrdma/pvrdma_cmd.c: In function 'pvrdma_cmd_post':
   include/linux/kernel.h:742:17: warning: comparison of distinct pointer types lacks a cast
     (void) (&_min1 == &_min2);  \
                    ^
   arch/x86/include/asm/string_32.h:182:48: note: in definition of macro 'memcpy'
    #define memcpy(t, f, n) __builtin_memcpy(t, f, n)
                                                   ^
>> drivers/infiniband/hw/pvrdma/pvrdma_cmd.c:76:29: note: in expansion of macro 'min'
     memcpy(dev->cmd_slot, req, min(PAGE_SIZE, sizeof(*req)));
                                ^~~

vim +/min +76 drivers/infiniband/hw/pvrdma/pvrdma_cmd.c

6bad4475 Adit Ranadive 2016-08-03  42   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
6bad4475 Adit Ranadive 2016-08-03  43   * OF THE POSSIBILITY OF SUCH DAMAGE.
6bad4475 Adit Ranadive 2016-08-03  44   */
6bad4475 Adit Ranadive 2016-08-03  45  
6bad4475 Adit Ranadive 2016-08-03  46  #include <linux/list.h>
6bad4475 Adit Ranadive 2016-08-03  47  
6bad4475 Adit Ranadive 2016-08-03 @48  #include "pvrdma.h"
6bad4475 Adit Ranadive 2016-08-03  49  
6bad4475 Adit Ranadive 2016-08-03  50  #define PVRDMA_CMD_TIMEOUT	10000 /* ms */
6bad4475 Adit Ranadive 2016-08-03  51  
6bad4475 Adit Ranadive 2016-08-03  52  static inline int pvrdma_cmd_recv(struct pvrdma_dev *dev,
6bad4475 Adit Ranadive 2016-08-03  53  				  union pvrdma_cmd_resp *resp)
6bad4475 Adit Ranadive 2016-08-03  54  {
6bad4475 Adit Ranadive 2016-08-03  55  	dev_dbg(&dev->pdev->dev, "receive response from device\n");
6bad4475 Adit Ranadive 2016-08-03  56  
6bad4475 Adit Ranadive 2016-08-03  57  	spin_lock(&dev->cmd_lock);
6bad4475 Adit Ranadive 2016-08-03  58  	memcpy(resp, dev->resp_slot, sizeof(*resp));
6bad4475 Adit Ranadive 2016-08-03  59  	spin_unlock(&dev->cmd_lock);
6bad4475 Adit Ranadive 2016-08-03  60  
6bad4475 Adit Ranadive 2016-08-03  61  	return 0;
6bad4475 Adit Ranadive 2016-08-03  62  }
6bad4475 Adit Ranadive 2016-08-03  63  
6bad4475 Adit Ranadive 2016-08-03  64  int
6bad4475 Adit Ranadive 2016-08-03  65  pvrdma_cmd_post(struct pvrdma_dev *dev, union pvrdma_cmd_req *req,
6bad4475 Adit Ranadive 2016-08-03  66  		union pvrdma_cmd_resp *resp)
6bad4475 Adit Ranadive 2016-08-03  67  {
6bad4475 Adit Ranadive 2016-08-03  68  	int err;
6bad4475 Adit Ranadive 2016-08-03  69  
6bad4475 Adit Ranadive 2016-08-03  70  	dev_dbg(&dev->pdev->dev, "post request to device\n");
6bad4475 Adit Ranadive 2016-08-03  71  
6bad4475 Adit Ranadive 2016-08-03  72  	/* Serializiation */
6bad4475 Adit Ranadive 2016-08-03  73  	down(&dev->cmd_sema);
6bad4475 Adit Ranadive 2016-08-03  74  
6bad4475 Adit Ranadive 2016-08-03  75  	spin_lock(&dev->cmd_lock);
6bad4475 Adit Ranadive 2016-08-03 @76  	memcpy(dev->cmd_slot, req, min(PAGE_SIZE, sizeof(*req)));
6bad4475 Adit Ranadive 2016-08-03  77  	spin_unlock(&dev->cmd_lock);
6bad4475 Adit Ranadive 2016-08-03  78  
6bad4475 Adit Ranadive 2016-08-03  79  	init_completion(&dev->cmd_done);

:::::: The code at line 76 was first introduced by commit
:::::: 6bad4475e9e3d236cf6e4b349a8e66fa9eb610f3 IB/pvrdma: Add device command support

:::::: TO: Adit Ranadive <aditr@vmware.com>
:::::: CC: 0day robot <fengguang.wu@intel.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
kernel test robot Aug. 6, 2016, 5:34 a.m. UTC | #2
Hi Adit,

[auto build test WARNING on rdma/master]
[also build test WARNING on v4.7]
[cannot apply to next-20160805]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Adit-Ranadive/Add-Paravirtual-RDMA-Driver/20160804-075202
base:   https://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma.git master
config: i386-allyesconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All warnings (new ones prefixed by >>):

   drivers/infiniband/hw/pvrdma/pvrdma_cmd.c: In function 'pvrdma_cmd_post':
>> drivers/infiniband/hw/pvrdma/pvrdma_cmd.c:76:149: warning: comparison of distinct pointer types lacks a cast
     memcpy(dev->cmd_slot, req, min(PAGE_SIZE, sizeof(*req)));
                                                                                                                                                        ^ 

vim +76 drivers/infiniband/hw/pvrdma/pvrdma_cmd.c

6bad4475 Adit Ranadive 2016-08-03  60  
6bad4475 Adit Ranadive 2016-08-03  61  	return 0;
6bad4475 Adit Ranadive 2016-08-03  62  }
6bad4475 Adit Ranadive 2016-08-03  63  
6bad4475 Adit Ranadive 2016-08-03  64  int
6bad4475 Adit Ranadive 2016-08-03  65  pvrdma_cmd_post(struct pvrdma_dev *dev, union pvrdma_cmd_req *req,
6bad4475 Adit Ranadive 2016-08-03  66  		union pvrdma_cmd_resp *resp)
6bad4475 Adit Ranadive 2016-08-03  67  {
6bad4475 Adit Ranadive 2016-08-03  68  	int err;
6bad4475 Adit Ranadive 2016-08-03  69  
6bad4475 Adit Ranadive 2016-08-03  70  	dev_dbg(&dev->pdev->dev, "post request to device\n");
6bad4475 Adit Ranadive 2016-08-03  71  
6bad4475 Adit Ranadive 2016-08-03  72  	/* Serializiation */
6bad4475 Adit Ranadive 2016-08-03  73  	down(&dev->cmd_sema);
6bad4475 Adit Ranadive 2016-08-03  74  
6bad4475 Adit Ranadive 2016-08-03  75  	spin_lock(&dev->cmd_lock);
6bad4475 Adit Ranadive 2016-08-03 @76  	memcpy(dev->cmd_slot, req, min(PAGE_SIZE, sizeof(*req)));
6bad4475 Adit Ranadive 2016-08-03  77  	spin_unlock(&dev->cmd_lock);
6bad4475 Adit Ranadive 2016-08-03  78  
6bad4475 Adit Ranadive 2016-08-03  79  	init_completion(&dev->cmd_done);
6bad4475 Adit Ranadive 2016-08-03  80  	pvrdma_write_reg(dev, PVRDMA_REG_REQUEST, 0);
6bad4475 Adit Ranadive 2016-08-03  81  
6bad4475 Adit Ranadive 2016-08-03  82  	/* Make sure the request is written before reading status. */
6bad4475 Adit Ranadive 2016-08-03  83  	mb();
6bad4475 Adit Ranadive 2016-08-03  84  	err = pvrdma_read_reg(dev, PVRDMA_REG_ERR);

:::::: The code at line 76 was first introduced by commit
:::::: 6bad4475e9e3d236cf6e4b349a8e66fa9eb610f3 IB/pvrdma: Add device command support

:::::: TO: Adit Ranadive <aditr@vmware.com>
:::::: CC: 0day robot <fengguang.wu@intel.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
diff mbox

Patch

diff --git a/drivers/infiniband/Kconfig b/drivers/infiniband/Kconfig
index 2137adf..d677d8f 100644
--- a/drivers/infiniband/Kconfig
+++ b/drivers/infiniband/Kconfig
@@ -86,5 +86,6 @@  source "drivers/infiniband/ulp/isert/Kconfig"
 source "drivers/infiniband/sw/rdmavt/Kconfig"
 
 source "drivers/infiniband/hw/hfi1/Kconfig"
+source "drivers/infiniband/hw/pvrdma/Kconfig"
 
 endif # INFINIBAND
diff --git a/drivers/infiniband/hw/Makefile b/drivers/infiniband/hw/Makefile
index c0c7cf8..eb24449 100644
--- a/drivers/infiniband/hw/Makefile
+++ b/drivers/infiniband/hw/Makefile
@@ -9,3 +9,4 @@  obj-$(CONFIG_INFINIBAND_NES)		+= nes/
 obj-$(CONFIG_INFINIBAND_OCRDMA)		+= ocrdma/
 obj-$(CONFIG_INFINIBAND_USNIC)		+= usnic/
 obj-$(CONFIG_INFINIBAND_HFI1)		+= hfi1/
+obj-$(CONFIG_INFINIBAND_PVRDMA)		+= pvrdma/