Commit 29191c7f71aa55401c83df60482417d3c511edde
Exists in
ti-lsk-linux-4.1.y
and in
10 other branches
Merge tag 'char-misc-4.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
Pull char/misc driver fixes from Greg KH: "Here are two char/misc fixes for 4.0-rc3. One is a reported binder driver fix needed due to a change in the mm core that happened in 4.0-rc1. Another is a mei driver fix that resolves a reported issue in that driver. Both have been in linux-next for a while" * tag 'char-misc-4.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: mei: make device disabled on stop unconditionally android: binder: fix binder mmap failures
Showing 2 changed files Side-by-side Diff
drivers/android/binder.c
... | ... | @@ -551,7 +551,6 @@ |
551 | 551 | { |
552 | 552 | void *page_addr; |
553 | 553 | unsigned long user_page_addr; |
554 | - struct vm_struct tmp_area; | |
555 | 554 | struct page **page; |
556 | 555 | struct mm_struct *mm; |
557 | 556 | |
... | ... | @@ -600,10 +599,11 @@ |
600 | 599 | proc->pid, page_addr); |
601 | 600 | goto err_alloc_page_failed; |
602 | 601 | } |
603 | - tmp_area.addr = page_addr; | |
604 | - tmp_area.size = PAGE_SIZE + PAGE_SIZE /* guard page? */; | |
605 | - ret = map_vm_area(&tmp_area, PAGE_KERNEL, page); | |
606 | - if (ret) { | |
602 | + ret = map_kernel_range_noflush((unsigned long)page_addr, | |
603 | + PAGE_SIZE, PAGE_KERNEL, page); | |
604 | + flush_cache_vmap((unsigned long)page_addr, | |
605 | + (unsigned long)page_addr + PAGE_SIZE); | |
606 | + if (ret != 1) { | |
607 | 607 | pr_err("%d: binder_alloc_buf failed to map page at %p in kernel\n", |
608 | 608 | proc->pid, page_addr); |
609 | 609 | goto err_map_kernel_failed; |
drivers/misc/mei/init.c