Commit 656a800a authored by Todd Kjos's avatar Todd Kjos Committed by Greg Kroah-Hartman

binder: make binder_last_id an atomic

Use an atomic for binder_last_id to avoid locking it
Signed-off-by: default avatarTodd Kjos <tkjos@google.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 0953c797
...@@ -59,7 +59,7 @@ static DEFINE_SPINLOCK(binder_dead_nodes_lock); ...@@ -59,7 +59,7 @@ static DEFINE_SPINLOCK(binder_dead_nodes_lock);
static struct dentry *binder_debugfs_dir_entry_root; static struct dentry *binder_debugfs_dir_entry_root;
static struct dentry *binder_debugfs_dir_entry_proc; static struct dentry *binder_debugfs_dir_entry_proc;
static int binder_last_id; static atomic_t binder_last_id;
#define BINDER_DEBUG_ENTRY(name) \ #define BINDER_DEBUG_ENTRY(name) \
static int binder_##name##_open(struct inode *inode, struct file *file) \ static int binder_##name##_open(struct inode *inode, struct file *file) \
...@@ -496,7 +496,7 @@ static struct binder_node *binder_new_node(struct binder_proc *proc, ...@@ -496,7 +496,7 @@ static struct binder_node *binder_new_node(struct binder_proc *proc,
binder_stats_created(BINDER_STAT_NODE); binder_stats_created(BINDER_STAT_NODE);
rb_link_node(&node->rb_node, parent, p); rb_link_node(&node->rb_node, parent, p);
rb_insert_color(&node->rb_node, &proc->nodes); rb_insert_color(&node->rb_node, &proc->nodes);
node->debug_id = ++binder_last_id; node->debug_id = atomic_inc_return(&binder_last_id);
node->proc = proc; node->proc = proc;
node->ptr = ptr; node->ptr = ptr;
node->cookie = cookie; node->cookie = cookie;
...@@ -639,7 +639,7 @@ static struct binder_ref *binder_get_ref_for_node(struct binder_proc *proc, ...@@ -639,7 +639,7 @@ static struct binder_ref *binder_get_ref_for_node(struct binder_proc *proc,
if (new_ref == NULL) if (new_ref == NULL)
return NULL; return NULL;
binder_stats_created(BINDER_STAT_REF); binder_stats_created(BINDER_STAT_REF);
new_ref->debug_id = ++binder_last_id; new_ref->debug_id = atomic_inc_return(&binder_last_id);
new_ref->proc = proc; new_ref->proc = proc;
new_ref->node = node; new_ref->node = node;
rb_link_node(&new_ref->rb_node_node, parent, p); rb_link_node(&new_ref->rb_node_node, parent, p);
...@@ -1527,7 +1527,7 @@ static void binder_transaction(struct binder_proc *proc, ...@@ -1527,7 +1527,7 @@ static void binder_transaction(struct binder_proc *proc,
} }
binder_stats_created(BINDER_STAT_TRANSACTION_COMPLETE); binder_stats_created(BINDER_STAT_TRANSACTION_COMPLETE);
t->debug_id = ++binder_last_id; t->debug_id = atomic_inc_return(&binder_last_id);
e->debug_id = t->debug_id; e->debug_id = t->debug_id;
if (reply) if (reply)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment