Blame SOURCES/0004-pyverbs-Fix-WC-creation-process.patch

baba1b
From 252e5a0f63663da5128fe714a1e9ea8a35995696 Mon Sep 17 00:00:00 2001
baba1b
From: Maxim Chicherin <maximc@mellanox.com>
baba1b
Date: Mon, 19 Aug 2019 11:11:12 +0300
baba1b
Subject: [PATCH rdma-core 04/13] pyverbs: Fix WC creation process
baba1b
baba1b
[ Upstream commit e83c7ff811544302ca3ecbcec23df0bb5b68d23f ]
baba1b
baba1b
In WC constructor, parameters assignment was incorrect and values
baba1b
were not stored properly.
baba1b
In addition, imm_data attribute was not initiated. imm_data represents
baba1b
immediate data in network byte order if wc_flags & IBV_WC_WITH_IMM or
baba1b
stores the invalidated rkey if wc_flags & IBV_WC_WITH_INV.
baba1b
baba1b
Fixes: 32165065ffbe ("pyverbs: Introducing completions related classes")
baba1b
Signed-off-by: Maxim Chicherin <maximc@mellanox.com>
baba1b
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
baba1b
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
baba1b
---
baba1b
 pyverbs/cq.pyx | 33 +++++++++++++++++++++------------
baba1b
 1 file changed, 21 insertions(+), 12 deletions(-)
baba1b
 mode change 100644 => 100755 pyverbs/cq.pyx
baba1b
baba1b
diff --git a/pyverbs/cq.pyx b/pyverbs/cq.pyx
baba1b
old mode 100644
baba1b
new mode 100755
baba1b
index dc09924e..3ac5f704
baba1b
--- a/pyverbs/cq.pyx
baba1b
+++ b/pyverbs/cq.pyx
baba1b
@@ -366,18 +366,19 @@ cdef class WC(PyverbsObject):
baba1b
     def __cinit__(self, wr_id=0, status=0, opcode=0, vendor_err=0, byte_len=0,
baba1b
                   qp_num=0, src_qp=0, imm_data=0, wc_flags=0, pkey_index=0,
baba1b
                   slid=0, sl=0, dlid_path_bits=0):
baba1b
-        self.wr_id = wr_id
baba1b
-        self.status = status
baba1b
-        self.opcode = opcode
baba1b
-        self.vendor_err = vendor_err
baba1b
-        self.byte_len = byte_len
baba1b
-        self.qp_num = qp_num
baba1b
-        self.src_qp = src_qp
baba1b
-        self.wc_flags = wc_flags
baba1b
-        self.pkey_index = pkey_index
baba1b
-        self.slid = slid
baba1b
-        self.sl = sl
baba1b
-        self.dlid_path_bits = dlid_path_bits
baba1b
+        self.wc.wr_id = wr_id
baba1b
+        self.wc.status = status
baba1b
+        self.wc.opcode = opcode
baba1b
+        self.wc.vendor_err = vendor_err
baba1b
+        self.wc.byte_len = byte_len
baba1b
+        self.wc.qp_num = qp_num
baba1b
+        self.wc.src_qp = src_qp
baba1b
+        self.wc.wc_flags = wc_flags
baba1b
+        self.wc.pkey_index = pkey_index
baba1b
+        self.wc.slid = slid
baba1b
+        self.wc.imm_data = imm_data
baba1b
+        self.wc.sl = sl
baba1b
+        self.wc.dlid_path_bits = dlid_path_bits
baba1b
 
baba1b
     @property
baba1b
     def wr_id(self):
baba1b
@@ -456,6 +457,13 @@ cdef class WC(PyverbsObject):
baba1b
     def sl(self, val):
baba1b
         self.wc.sl = val
baba1b
 
baba1b
+    @property
baba1b
+    def imm_data(self):
baba1b
+        return self.wc.imm_data
baba1b
+    @imm_data.setter
baba1b
+    def imm_data(self, val):
baba1b
+        self.wc.imm_data = val
baba1b
+
baba1b
     @property
baba1b
     def dlid_path_bits(self):
baba1b
         return self.wc.dlid_path_bits
baba1b
@@ -476,6 +484,7 @@ cdef class WC(PyverbsObject):
baba1b
             print_format.format('pkey index', self.pkey_index) +\
baba1b
             print_format.format('slid', self.slid) +\
baba1b
             print_format.format('sl', self.sl) +\
baba1b
+            print_format.format('imm_data', self.imm_data) +\
baba1b
             print_format.format('dlid path bits', self.dlid_path_bits)
baba1b
 
baba1b
 
baba1b
-- 
baba1b
2.20.1
baba1b