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
This commit is contained in:
@@ -551,7 +551,6 @@ static int binder_update_page_range(struct binder_proc *proc, int allocate,
|
|||||||
{
|
{
|
||||||
void *page_addr;
|
void *page_addr;
|
||||||
unsigned long user_page_addr;
|
unsigned long user_page_addr;
|
||||||
struct vm_struct tmp_area;
|
|
||||||
struct page **page;
|
struct page **page;
|
||||||
struct mm_struct *mm;
|
struct mm_struct *mm;
|
||||||
|
|
||||||
@@ -600,10 +599,11 @@ static int binder_update_page_range(struct binder_proc *proc, int allocate,
|
|||||||
proc->pid, page_addr);
|
proc->pid, page_addr);
|
||||||
goto err_alloc_page_failed;
|
goto err_alloc_page_failed;
|
||||||
}
|
}
|
||||||
tmp_area.addr = page_addr;
|
ret = map_kernel_range_noflush((unsigned long)page_addr,
|
||||||
tmp_area.size = PAGE_SIZE + PAGE_SIZE /* guard page? */;
|
PAGE_SIZE, PAGE_KERNEL, page);
|
||||||
ret = map_vm_area(&tmp_area, PAGE_KERNEL, page);
|
flush_cache_vmap((unsigned long)page_addr,
|
||||||
if (ret) {
|
(unsigned long)page_addr + PAGE_SIZE);
|
||||||
|
if (ret != 1) {
|
||||||
pr_err("%d: binder_alloc_buf failed to map page at %p in kernel\n",
|
pr_err("%d: binder_alloc_buf failed to map page at %p in kernel\n",
|
||||||
proc->pid, page_addr);
|
proc->pid, page_addr);
|
||||||
goto err_map_kernel_failed;
|
goto err_map_kernel_failed;
|
||||||
|
@@ -341,6 +341,8 @@ void mei_stop(struct mei_device *dev)
|
|||||||
|
|
||||||
dev->dev_state = MEI_DEV_POWER_DOWN;
|
dev->dev_state = MEI_DEV_POWER_DOWN;
|
||||||
mei_reset(dev);
|
mei_reset(dev);
|
||||||
|
/* move device to disabled state unconditionally */
|
||||||
|
dev->dev_state = MEI_DEV_DISABLED;
|
||||||
|
|
||||||
mutex_unlock(&dev->device_lock);
|
mutex_unlock(&dev->device_lock);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user