]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
Merge tag 'v5.4-rc5' into rdma.git for-next
authorJason Gunthorpe <jgg@mellanox.com>
Mon, 28 Oct 2019 19:36:29 +0000 (16:36 -0300)
committerJason Gunthorpe <jgg@mellanox.com>
Mon, 28 Oct 2019 19:36:29 +0000 (16:36 -0300)
Linux 5.4-rc5

For dependencies in the next patches

Conflict resolved by keeping the delete of the unlock.

Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
1  2 
MAINTAINERS
drivers/infiniband/core/cm.c
drivers/infiniband/core/cma.c
drivers/infiniband/core/device.c
drivers/infiniband/core/nldev.c
drivers/infiniband/hw/mlx5/mlx5_ib.h
drivers/infiniband/hw/mlx5/mr.c
drivers/infiniband/hw/mlx5/odp.c

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 2ab6e44aeaae22b56c0f4362cd0e2e8d5492324a,3f9478d1937668bee0a5fb6cfa8e4e4a43fdc736..b332117bca9710337e412364b7ab26d6766e5cb4
@@@ -282,10 -308,6 +312,9 @@@ void mlx5_ib_invalidate_range(struct ib
                                   idx - blk_start_idx + 1, 0,
                                   MLX5_IB_UPD_XLT_ZAP |
                                   MLX5_IB_UPD_XLT_ATOMIC);
-       mutex_unlock(&umem_odp->umem_mutex);
 +
 +      mlx5_update_odp_stats(mr, invalidations, invalidations);
 +
        /*
         * We are now sure that the device will not access the
         * memory. We can safely unmap it, and mark it as dirty if
  
        ib_umem_odp_unmap_dma_pages(umem_odp, start, end);
  
 +
        if (unlikely(!umem_odp->npages && mr->parent &&
                     !umem_odp->dying)) {
-               WRITE_ONCE(umem_odp->dying, 1);
+               WRITE_ONCE(mr->live, 0);
+               umem_odp->dying = 1;
                atomic_inc(&mr->parent->num_leaf_free);
                schedule_work(&umem_odp->work);
        }
@@@ -542,9 -567,8 +573,10 @@@ struct mlx5_ib_mr *mlx5_ib_alloc_implic
        init_waitqueue_head(&imr->q_leaf_free);
        atomic_set(&imr->num_leaf_free, 0);
        atomic_set(&imr->num_pending_prefetch, 0);
+       smp_store_release(&imr->live, 1);
  
 +      imr->is_odp_implicit = true;
 +
        return imr;
  }