diff options
-rw-r--r-- | drivers/staging/android/binder.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/drivers/staging/android/binder.c b/drivers/staging/android/binder.c index aad750b..42b23f6 100644 --- a/drivers/staging/android/binder.c +++ b/drivers/staging/android/binder.c @@ -3545,13 +3545,25 @@ static int binder_transactions_show(struct seq_file *m, void *unused) static int binder_proc_show(struct seq_file *m, void *unused) { + struct binder_proc *itr; struct binder_proc *proc = m->private; + struct hlist_node *pos; int do_lock = !binder_debug_no_lock; + bool valid_proc = false; if (do_lock) - mutex_lock(&binder_lock); - seq_puts(m, "binder proc state:\n"); - print_binder_proc(m, proc, 1); + binder_lock(__func__); + + hlist_for_each_entry(itr, pos, &binder_procs, proc_node) { + if (itr == proc) { + valid_proc = true; + break; + } + } + if (valid_proc) { + seq_puts(m, "binder proc state:\n"); + print_binder_proc(m, proc, 1); + } if (do_lock) mutex_unlock(&binder_lock); return 0; |