summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/edgetpu/edgetpu-device-group.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/edgetpu/edgetpu-device-group.c b/drivers/edgetpu/edgetpu-device-group.c
index 9b85679..c410ebc 100644
--- a/drivers/edgetpu/edgetpu-device-group.c
+++ b/drivers/edgetpu/edgetpu-device-group.c
@@ -1258,8 +1258,18 @@ static struct page **edgetpu_pin_user_pages(struct edgetpu_device_group *group,
kvfree(pages);
return ERR_PTR(-ENOMEM);
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
+ down_read(&current->mm->mmap_sem);
+#else
+ mmap_read_lock(current->mm);
+#endif
ret = pin_user_pages(host_addr & PAGE_MASK, num_pages, foll_flags,
pages, vmas);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
+ up_read(&current->mm->mmap_sem);
+#else
+ mmap_read_unlock(current->mm);
+#endif
kvfree(vmas);
if (ret < 0) {
etdev_dbg(etdev, "pin_user_pages failed %u:%pK-%u: %d",