Code Review
/
kvmfornfv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Upgrade to 4.4.50-rt62
[kvmfornfv.git]
/
kernel
/
drivers
/
infiniband
/
core
/
umem.c
diff --git
a/kernel/drivers/infiniband/core/umem.c
b/kernel/drivers/infiniband/core/umem.c
index
38acb3c
..
0ae337b
100644
(file)
--- a/
kernel/drivers/infiniband/core/umem.c
+++ b/
kernel/drivers/infiniband/core/umem.c
@@
-134,6
+134,7
@@
struct ib_umem *ib_umem_get(struct ib_ucontext *context, unsigned long addr,
IB_ACCESS_REMOTE_ATOMIC | IB_ACCESS_MW_BIND));
if (access & IB_ACCESS_ON_DEMAND) {
IB_ACCESS_REMOTE_ATOMIC | IB_ACCESS_MW_BIND));
if (access & IB_ACCESS_ON_DEMAND) {
+ put_pid(umem->pid);
ret = ib_umem_odp_get(context, umem);
if (ret) {
kfree(umem);
ret = ib_umem_odp_get(context, umem);
if (ret) {
kfree(umem);
@@
-149,6
+150,7
@@
struct ib_umem *ib_umem_get(struct ib_ucontext *context, unsigned long addr,
page_list = (struct page **) __get_free_page(GFP_KERNEL);
if (!page_list) {
page_list = (struct page **) __get_free_page(GFP_KERNEL);
if (!page_list) {
+ put_pid(umem->pid);
kfree(umem);
return ERR_PTR(-ENOMEM);
}
kfree(umem);
return ERR_PTR(-ENOMEM);
}
@@
-175,7
+177,7
@@
struct ib_umem *ib_umem_get(struct ib_ucontext *context, unsigned long addr,
cur_base = addr & PAGE_MASK;
cur_base = addr & PAGE_MASK;
- if (npages == 0) {
+ if (npages == 0
|| npages > UINT_MAX
) {
ret = -EINVAL;
goto out;
}
ret = -EINVAL;
goto out;
}