IB/mlx5: Add mlx5_ib_update_mtt to update page tables after creation
authorHaggai Eran <haggaie@mellanox.com>
Thu, 11 Dec 2014 15:04:22 +0000 (17:04 +0200)
committerRoland Dreier <roland@purestorage.com>
Tue, 16 Dec 2014 02:19:02 +0000 (18:19 -0800)
commit832a6b06ab5e13c228fc27e333ad360aa03ace6f
treef47db1bab24137255c54f055b4bddbddff1fb7e4
parentcc149f751b75211df8c41fcd60bd0006e6143ed6
IB/mlx5: Add mlx5_ib_update_mtt to update page tables after creation

The new function allows updating the page tables of a memory region
after it was created. This can be used to handle page faults and page
invalidations.

Since mlx5_ib_update_mtt will need to work from within page invalidation,
so it must not block on memory allocation. It employs an atomic memory
allocation mechanism that is used as a fallback when kmalloc(GFP_ATOMIC) fails.

In order to reuse code from mlx5_ib_populate_pas, the patch splits
this function and add the needed parameters.

Signed-off-by: Haggai Eran <haggaie@mellanox.com>
Signed-off-by: Shachar Raindel <raindel@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/mlx5/mem.c
drivers/infiniband/hw/mlx5/mlx5_ib.h
drivers/infiniband/hw/mlx5/mr.c
include/linux/mlx5/device.h