diff options
Diffstat (limited to 'drivers/android/binderfs.c')
| -rw-r--r-- | drivers/android/binderfs.c | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/drivers/android/binderfs.c b/drivers/android/binderfs.c index e2580e5316a2..110e41f920c2 100644 --- a/drivers/android/binderfs.c +++ b/drivers/android/binderfs.c @@ -154,6 +154,7 @@ static int binderfs_binder_device_create(struct inode *ref_inode,  	if (!name)  		goto err; +	refcount_set(&device->ref, 1);  	device->binderfs_inode = inode;  	device->context.binder_context_mgr_uid = INVALID_UID;  	device->context.name = name; @@ -257,8 +258,10 @@ static void binderfs_evict_inode(struct inode *inode)  	ida_free(&binderfs_minors, device->miscdev.minor);  	mutex_unlock(&binderfs_minors_mutex); -	kfree(device->context.name); -	kfree(device); +	if (refcount_dec_and_test(&device->ref)) { +		kfree(device->context.name); +		kfree(device); +	}  }  /** |