IB/mthca: Fill in vendor_err field in completion with error
authorMichael S. Tsirkin <mst@mellanox.co.il>
Fri, 6 Jan 2006 21:13:32 +0000 (13:13 -0800)
committerRoland Dreier <rolandd@cisco.com>
Fri, 6 Jan 2006 21:13:32 +0000 (13:13 -0800)
Fill vendor_err field in completion with error.

Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/mthca/mthca_cq.c

index fcef8dc..96f1a86 100644 (file)
@@ -128,12 +128,12 @@ struct mthca_err_cqe {
        __be32 my_qpn;
        u32    reserved1[3];
        u8     syndrome;
-       u8     reserved2;
+       u8     vendor_err;
        __be16 db_cnt;
-       u32    reserved3;
+       u32    reserved2;
        __be32 wqe;
        u8     opcode;
-       u8     reserved4[2];
+       u8     reserved3[2];
        u8     owner;
 };
 
@@ -342,8 +342,8 @@ static int handle_error_cqe(struct mthca_dev *dev, struct mthca_cq *cq,
        }
 
        /*
-        * For completions in error, only work request ID, status (and
-        * freed resource count for RD) have to be set.
+        * For completions in error, only work request ID, status, vendor error
+        * (and freed resource count for RD) have to be set.
         */
        switch (cqe->syndrome) {
        case SYNDROME_LOCAL_LENGTH_ERR:
@@ -405,6 +405,8 @@ static int handle_error_cqe(struct mthca_dev *dev, struct mthca_cq *cq,
                break;
        }
 
+       entry->vendor_err = cqe->vendor_err;
+
        /*
         * Mem-free HCAs always generate one CQE per WQE, even in the
         * error case, so we don't have to check the doorbell count, etc.