net/mlx5: Update PAGE_FAULT_RESUME layout
authorArtemy Kovalyov <artemyko@mellanox.com>
Mon, 2 Jan 2017 09:37:45 +0000 (11:37 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 2 Jan 2017 20:51:20 +0000 (15:51 -0500)
Update PAGE_FAULT_RESUME command layout.

Three bit fields describing page fault: rdma, rdma_write, req_res gave 8
possible combinations, while only a few were legal. Now they
are interpreted as three-bit type field, where former legal
combinations turns into corresponding types and unused were added as new
types.

Signed-off-by: Artemy Kovalyov <artemyko@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx5/core/qp.c
include/linux/mlx5/mlx5_ifc.h

index d0a4005fe63a425869b71feb3626e998a34b0d39..5378a5f74bdc1d9c66fec6e1ef3e61a29d5c234f 100644 (file)
@@ -515,14 +515,8 @@ int mlx5_core_page_fault_resume(struct mlx5_core_dev *dev, u32 qpn,
 
        MLX5_SET(page_fault_resume_in, in, opcode,
                 MLX5_CMD_OP_PAGE_FAULT_RESUME);
-       MLX5_SET(page_fault_resume_in, in, qpn, qpn);
-
-       if (flags & MLX5_PAGE_FAULT_RESUME_REQUESTOR)
-               MLX5_SET(page_fault_resume_in, in, req_res, 1);
-       if (flags & MLX5_PAGE_FAULT_RESUME_WRITE)
-               MLX5_SET(page_fault_resume_in, in, read_write, 1);
-       if (flags & MLX5_PAGE_FAULT_RESUME_RDMA)
-               MLX5_SET(page_fault_resume_in, in, rdma, 1);
+       MLX5_SET(page_fault_resume_in, in, wq_number, qpn);
+       MLX5_SET(page_fault_resume_in, in, page_fault_type, flags);
        if (error)
                MLX5_SET(page_fault_resume_in, in, error, 1);
 
index 7c760e580268ad8ddc21270c60284933ada49b6e..608dc988b3d6c1a265fdb7582d00802feb3aa262 100644 (file)
@@ -4775,12 +4775,11 @@ struct mlx5_ifc_page_fault_resume_in_bits {
 
        u8         error[0x1];
        u8         reserved_at_41[0x4];
-       u8         rdma[0x1];
-       u8         read_write[0x1];
-       u8         req_res[0x1];
-       u8         qpn[0x18];
+       u8         page_fault_type[0x3];
+       u8         wq_number[0x18];
 
-       u8         reserved_at_60[0x20];
+       u8         reserved_at_60[0x8];
+       u8         token[0x18];
 };
 
 struct mlx5_ifc_nop_out_bits {