diff options
author | Corey Minyard | 2017-11-02 17:19:15 +0100 |
---|---|---|
committer | Corey Minyard | 2017-11-02 17:19:15 +0100 |
commit | 6297fabd93f93182245383ba7de56bef829a796b (patch) | |
tree | 804f5d28ada61b402d56281c9a047308d26347f4 /drivers/misc/cxl/cxllib.c | |
parent | ipmi_si: Delete an error message for a failed memory allocation in try_smi_in... (diff) | |
parent | module: Do not paper over type mismatches in module_param_call() (diff) | |
download | kernel-qcow2-linux-6297fabd93f93182245383ba7de56bef829a796b.tar.gz kernel-qcow2-linux-6297fabd93f93182245383ba7de56bef829a796b.tar.xz kernel-qcow2-linux-6297fabd93f93182245383ba7de56bef829a796b.zip |
Merge branch 'modules-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux into for-next
The IPMI SI driver was split into different pieces, merge the module
tree to accountfor that.
Signed-off-by: Corey Minyard <cminyard@mvista.com>
Diffstat (limited to 'drivers/misc/cxl/cxllib.c')
-rw-r--r-- | drivers/misc/cxl/cxllib.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/misc/cxl/cxllib.c b/drivers/misc/cxl/cxllib.c index 5dba23ca2e5f..dc9bc1807fdf 100644 --- a/drivers/misc/cxl/cxllib.c +++ b/drivers/misc/cxl/cxllib.c @@ -219,8 +219,17 @@ int cxllib_handle_fault(struct mm_struct *mm, u64 addr, u64 size, u64 flags) down_read(&mm->mmap_sem); - for (dar = addr; dar < addr + size; dar += page_size) { - if (!vma || dar < vma->vm_start || dar > vma->vm_end) { + vma = find_vma(mm, addr); + if (!vma) { + pr_err("Can't find vma for addr %016llx\n", addr); + rc = -EFAULT; + goto out; + } + /* get the size of the pages allocated */ + page_size = vma_kernel_pagesize(vma); + + for (dar = (addr & ~(page_size - 1)); dar < (addr + size); dar += page_size) { + if (dar < vma->vm_start || dar >= vma->vm_end) { vma = find_vma(mm, addr); if (!vma) { pr_err("Can't find vma for addr %016llx\n", addr); |