aboutsummaryrefslogtreecommitdiff
path: root/drivers/infiniband/hw
diff options
context:
space:
mode:
authorGravatar Mitko Haralanov <mitko.haralanov@intel.com> 2015-12-08 17:10:13 -0500
committerGravatar Greg Kroah-Hartman <gregkh@linuxfoundation.org> 2015-12-21 13:57:55 -0800
commita0d406934a460b2b8dac8cf15996ec8591e33e2e (patch)
tree3492b1e381d6d211e4070c2f652236a566ec375b /drivers/infiniband/hw
parentstaging/rdma/hfi1: Convert to use get_user_pages_fast (diff)
downloadlinux-a0d406934a46.tar.gz
linux-a0d406934a46.tar.bz2
linux-a0d406934a46.zip
staging/rdma/hfi1: Add page lock limit check for SDMA requests
The driver pins pages on behalf of user processes in two separate instances - when the process has submitted a SDMA transfer and when the process programs an expected receive buffer. When pinning pages, the driver is required to observe the locked page limit set by the system administrator and refuse to lock more pages than allowed. Such a check was done for expected receives but was missing from the SDMA transfer code path. This commit adds the missing check for SDMA transfers. As of this commit, user SDMA or expected receive requests will be rejected if the number of pages required to be pinned will exceed the set limit. Due to the fact that the driver needs to take the MM semaphore in order to update the locked page count (which can sleep), this cannot be done by the callback function as it [the callback] is executed in interrupt context. Therefore, it is necessary to put all the completed SDMA tx requests onto a separate list (txcmp) and offload the actual clean-up and unpinning work to a workqueue. Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Reviewed-by: Ira Weiny <ira.weiny@intel.com> Signed-off-by: Mitko Haralanov <mitko.haralanov@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/infiniband/hw')
0 files changed, 0 insertions, 0 deletions