projects
/
linux-2.6-block.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mm: replace get_user_pages() write/force parameters with gup_flags
[linux-2.6-block.git]
/
drivers
/
infiniband
/
hw
/
usnic
/
usnic_uiom.c
diff --git
a/drivers/infiniband/hw/usnic/usnic_uiom.c
b/drivers/infiniband/hw/usnic/usnic_uiom.c
index a0b6ebee4d8a047e2fdffb8bbd831e5c36107fec..1ccee6ea5bc3092f196689c4481b21d9f27b796c 100644
(file)
--- a/
drivers/infiniband/hw/usnic/usnic_uiom.c
+++ b/
drivers/infiniband/hw/usnic/usnic_uiom.c
@@
-111,6
+111,7
@@
static int usnic_uiom_get_pages(unsigned long addr, size_t size, int writable,
int i;
int flags;
dma_addr_t pa;
int i;
int flags;
dma_addr_t pa;
+ unsigned int gup_flags;
if (!can_do_mlock())
return -EPERM;
if (!can_do_mlock())
return -EPERM;
@@
-135,6
+136,8
@@
static int usnic_uiom_get_pages(unsigned long addr, size_t size, int writable,
flags = IOMMU_READ | IOMMU_CACHE;
flags |= (writable) ? IOMMU_WRITE : 0;
flags = IOMMU_READ | IOMMU_CACHE;
flags |= (writable) ? IOMMU_WRITE : 0;
+ gup_flags = FOLL_WRITE;
+ gup_flags |= (writable) ? 0 : FOLL_FORCE;
cur_base = addr & PAGE_MASK;
ret = 0;
cur_base = addr & PAGE_MASK;
ret = 0;
@@
-142,7
+145,7
@@
static int usnic_uiom_get_pages(unsigned long addr, size_t size, int writable,
ret = get_user_pages(cur_base,
min_t(unsigned long, npages,
PAGE_SIZE / sizeof(struct page *)),
ret = get_user_pages(cur_base,
min_t(unsigned long, npages,
PAGE_SIZE / sizeof(struct page *)),
-
1, !writable
, page_list, NULL);
+
gup_flags
, page_list, NULL);
if (ret < 0)
goto out;
if (ret < 0)
goto out;