IB/mlx5: Enhance UMR support to allow partial page table update
[linux-2.6-block.git] / drivers / infiniband / hw / mlx5 / mlx5_ib.h
index 386780f0d1e18304927d8a3c42705c4be916b731..53d19e6e69a4c7fc8d0767b25fadcd2c27b04bfe 100644 (file)
@@ -111,6 +111,8 @@ struct mlx5_ib_pd {
  */
 
 #define MLX5_IB_SEND_UMR_UNREG IB_SEND_RESERVED_START
+#define MLX5_IB_SEND_UMR_FAIL_IF_FREE (IB_SEND_RESERVED_START << 1)
+#define MLX5_IB_SEND_UMR_UPDATE_MTT (IB_SEND_RESERVED_START << 2)
 #define MLX5_IB_QPT_REG_UMR    IB_QPT_RESERVED1
 #define MLX5_IB_WR_UMR         IB_WR_RESERVED1
 
@@ -206,6 +208,19 @@ enum mlx5_ib_qp_flags {
        MLX5_IB_QP_SIGNATURE_HANDLING           = 1 << 1,
 };
 
+struct mlx5_umr_wr {
+       union {
+               u64                     virt_addr;
+               u64                     offset;
+       } target;
+       struct ib_pd                   *pd;
+       unsigned int                    page_shift;
+       unsigned int                    npages;
+       u32                             length;
+       int                             access_flags;
+       u32                             mkey;
+};
+
 struct mlx5_shared_mr_info {
        int mr_id;
        struct ib_umem          *umem;
@@ -261,8 +276,6 @@ struct mlx5_ib_mr {
        struct list_head        list;
        int                     order;
        int                     umred;
-       __be64                  *pas;
-       dma_addr_t              dma;
        int                     npages;
        struct mlx5_ib_dev     *dev;
        struct mlx5_create_mkey_mbox_out out;