Commit 3cd7967825a2b3926dc96ae566d986c4420919f7
Committed by
Eric Van Hensbergen
1 parent
26822eebb2
Exists in
master
and in
7 other branches
net/9p: Handle get_user_pages_fast return properly
Use proper data type to handle get_user_pages_fast error condition. Also do not treat EFAULT error as fatal. Signed-off-by: M. Mohan Kumar <mohan@in.ibm.com> Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com> Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
Showing 2 changed files with 4 additions and 9 deletions Side-by-side Diff
net/9p/client.c
net/9p/trans_common.c
... | ... | @@ -63,7 +63,7 @@ |
63 | 63 | int nr_pages, u8 rw) |
64 | 64 | { |
65 | 65 | uint32_t first_page_bytes = 0; |
66 | - uint32_t pdata_mapped_pages; | |
66 | + int32_t pdata_mapped_pages; | |
67 | 67 | struct trans_rpage_info *rpinfo; |
68 | 68 | |
69 | 69 | *pdata_off = (__force size_t)req->tc->pubuf & (PAGE_SIZE-1); |
70 | 70 | |
... | ... | @@ -75,14 +75,9 @@ |
75 | 75 | rpinfo = req->tc->private; |
76 | 76 | pdata_mapped_pages = get_user_pages_fast((unsigned long)req->tc->pubuf, |
77 | 77 | nr_pages, rw, &rpinfo->rp_data[0]); |
78 | + if (pdata_mapped_pages <= 0) | |
79 | + return pdata_mapped_pages; | |
78 | 80 | |
79 | - if (pdata_mapped_pages < 0) { | |
80 | - printk(KERN_ERR "get_user_pages_fast failed:%d udata:%p" | |
81 | - "nr_pages:%d\n", pdata_mapped_pages, | |
82 | - req->tc->pubuf, nr_pages); | |
83 | - pdata_mapped_pages = 0; | |
84 | - return -EIO; | |
85 | - } | |
86 | 81 | rpinfo->rp_nr_pages = pdata_mapped_pages; |
87 | 82 | if (*pdata_off) { |
88 | 83 | *pdata_len = first_page_bytes; |