diff options
| author | Sagi Grimberg <sagig@mellanox.com> | 2015-07-20 12:54:36 -0400 |
|---|---|---|
| committer | Doug Ledford <dledford@redhat.com> | 2015-08-28 22:54:46 -0400 |
| commit | a3c874200cbcd95ed914ba84f33f571a0ef7adfa (patch) | |
| tree | 07ed51041215501b61f6f0d7672bafcbfa6e4062 /include/linux/mlx5 | |
| parent | c13dcf9f2d6f5f06ef1bf79ec456df614c5e058b (diff) | |
mlx5: Fix missing device local_dma_lkey
The mlx5 driver exposes device capability IB_DEVICE_LOCAL_DMA_LKEY
but does not set the the device local_dma_lkey. This breaks
rpcrdma drivers.
Query and set this lkey when creating the device resources.
Signed-off-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'include/linux/mlx5')
| -rw-r--r-- | include/linux/mlx5/device.h | 11 | ||||
| -rw-r--r-- | include/linux/mlx5/driver.h | 1 |
2 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/mlx5/device.h b/include/linux/mlx5/device.h index b943cd9e2097..6e4169c5ad78 100644 --- a/include/linux/mlx5/device.h +++ b/include/linux/mlx5/device.h | |||
| @@ -402,6 +402,17 @@ struct mlx5_cmd_teardown_hca_mbox_out { | |||
| 402 | u8 rsvd[8]; | 402 | u8 rsvd[8]; |
| 403 | }; | 403 | }; |
| 404 | 404 | ||
| 405 | struct mlx5_cmd_query_special_contexts_mbox_in { | ||
| 406 | struct mlx5_inbox_hdr hdr; | ||
| 407 | u8 rsvd[8]; | ||
| 408 | }; | ||
| 409 | |||
| 410 | struct mlx5_cmd_query_special_contexts_mbox_out { | ||
| 411 | struct mlx5_outbox_hdr hdr; | ||
| 412 | __be32 dump_fill_mkey; | ||
| 413 | __be32 resd_lkey; | ||
| 414 | }; | ||
| 415 | |||
| 405 | struct mlx5_cmd_layout { | 416 | struct mlx5_cmd_layout { |
| 406 | u8 type; | 417 | u8 type; |
| 407 | u8 rsvd0[3]; | 418 | u8 rsvd0[3]; |
diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h index 5722d88c2429..1e2e48ccb3fd 100644 --- a/include/linux/mlx5/driver.h +++ b/include/linux/mlx5/driver.h | |||
| @@ -828,6 +828,7 @@ void *mlx5_get_protocol_dev(struct mlx5_core_dev *mdev, int protocol); | |||
| 828 | int mlx5_register_interface(struct mlx5_interface *intf); | 828 | int mlx5_register_interface(struct mlx5_interface *intf); |
| 829 | void mlx5_unregister_interface(struct mlx5_interface *intf); | 829 | void mlx5_unregister_interface(struct mlx5_interface *intf); |
| 830 | int mlx5_core_query_vendor_id(struct mlx5_core_dev *mdev, u32 *vendor_id); | 830 | int mlx5_core_query_vendor_id(struct mlx5_core_dev *mdev, u32 *vendor_id); |
| 831 | int mlx5_core_query_special_context(struct mlx5_core_dev *dev, u32 *rsvd_lkey); | ||
| 831 | 832 | ||
| 832 | struct mlx5_profile { | 833 | struct mlx5_profile { |
| 833 | u64 mask; | 834 | u64 mask; |
