Commit 29191c7f71aa55401c83df60482417d3c511edde

Authored by Linus Torvalds

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
... ... @@ -341,6 +341,8 @@
341 341  
342 342 dev->dev_state = MEI_DEV_POWER_DOWN;
343 343 mei_reset(dev);
  344 + /* move device to disabled state unconditionally */
  345 + dev->dev_state = MEI_DEV_DISABLED;
344 346  
345 347 mutex_unlock(&dev->device_lock);
346 348