Skip to content

Commit 29191c7

Browse files
committed
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
2 parents b0bc657 + 6c15a85 commit 29191c7

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

drivers/android/binder.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,6 @@ static int binder_update_page_range(struct binder_proc *proc, int allocate,
551551
{
552552
void *page_addr;
553553
unsigned long user_page_addr;
554-
struct vm_struct tmp_area;
555554
struct page **page;
556555
struct mm_struct *mm;
557556

@@ -600,10 +599,11 @@ static int binder_update_page_range(struct binder_proc *proc, int allocate,
600599
proc->pid, page_addr);
601600
goto err_alloc_page_failed;
602601
}
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) {
607607
pr_err("%d: binder_alloc_buf failed to map page at %p in kernel\n",
608608
proc->pid, page_addr);
609609
goto err_map_kernel_failed;

drivers/misc/mei/init.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,8 @@ void mei_stop(struct mei_device *dev)
341341

342342
dev->dev_state = MEI_DEV_POWER_DOWN;
343343
mei_reset(dev);
344+
/* move device to disabled state unconditionally */
345+
dev->dev_state = MEI_DEV_DISABLED;
344346

345347
mutex_unlock(&dev->device_lock);
346348

0 commit comments

Comments
 (0)