IB/mthca: Fix gup usage in mthca_map_user_db()
authorDavidlohr Bueso <dave@stgolabs.net>
Thu, 25 Jan 2018 19:27:27 +0000 (11:27 -0800)
committerDoug Ledford <dledford@redhat.com>
Fri, 26 Jan 2018 15:43:46 +0000 (10:43 -0500)
commit487f6683f1b738e40aca2386b9f73da4ebb8223d
treea3d7ee5b94a0db12b991120ed446bf06d7b8adc3
parentdc728f779a71769526531d3d8593ab4ab1d8e436
IB/mthca: Fix gup usage in mthca_map_user_db()

get_user_pages() must be called with mmap_sem held, currently
it is not. In fact it is called under the user db_table->mutex.
To fix this we can convert gup to use the fast alternative,
and safely avoid taking mmap_sem, if possible. Furthermore
this is safe wrt to the mutex as other callers that take the
lock (unmap and alloc_db) are not called under mmap_sem
(hence possible deadlock).

Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/mthca/mthca_memfree.c