aboutsummaryrefslogtreecommitdiffstats
path: root/patches.android/android-0011-staging-android-binder-Move-debugging-information-from-procf.patch
blob: 961982ec39ea5cb9bad0fe844682c3603383f900 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
From 16b665543864904714f028b1d349f5d905f39afb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Arve=20Hj=C3=B8nnev=C3=A5g?= <arve@android.com>
Date: Tue, 28 Apr 2009 20:57:50 -0700
Subject: staging: android: binder: Move debugging information from
 procfs to debugfs
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Patch-mainline: HEAD
Git-commit: 16b665543864904714f028b1d349f5d905f39afb

Signed-off-by: Arve Hjønnevåg <arve@android.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

diff --git a/drivers/staging/android/binder.c b/drivers/staging/android/binder.c
index 371232b..669e2a6 100644
--- a/drivers/staging/android/binder.c
+++ b/drivers/staging/android/binder.c
@@ -26,7 +26,7 @@
 #include <linux/mutex.h>
 #include <linux/nsproxy.h>
 #include <linux/poll.h>
-#include <linux/proc_fs.h>
+#include <linux/debugfs.h>
 #include <linux/rbtree.h>
 #include <linux/sched.h>
 #include <linux/seq_file.h>
@@ -43,8 +43,8 @@ static HLIST_HEAD(binder_procs);
 static HLIST_HEAD(binder_deferred_list);
 static HLIST_HEAD(binder_dead_nodes);
 
-static struct proc_dir_entry *binder_proc_dir_entry_root;
-static struct proc_dir_entry *binder_proc_dir_entry_proc;
+static struct dentry *binder_debugfs_dir_entry_root;
+static struct dentry *binder_debugfs_dir_entry_proc;
 static struct binder_node *binder_context_mgr_node;
 static uid_t binder_context_mgr_uid = -1;
 static int binder_last_id;
@@ -52,7 +52,7 @@ static int binder_last_id;
 #define BINDER_DEBUG_ENTRY(name) \
 static int binder_##name##_open(struct inode *inode, struct file *file) \
 { \
-	return single_open(file, binder_##name##_show, PDE(inode)->data); \
+	return single_open(file, binder_##name##_show, inode->i_private); \
 } \
 \
 static const struct file_operations binder_##name##_fops = { \
@@ -310,6 +310,7 @@ struct binder_proc {
 	int requested_threads_started;
 	int ready_threads;
 	long default_priority;
+	struct dentry *debugfs_entry;
 };
 
 enum {
@@ -2891,13 +2892,11 @@ static int binder_open(struct inode *nodp, struct file *filp)
 	filp->private_data = proc;
 	mutex_unlock(&binder_lock);
 
-	if (binder_proc_dir_entry_proc) {
+	if (binder_debugfs_dir_entry_proc) {
 		char strbuf[11];
 		snprintf(strbuf, sizeof(strbuf), "%u", proc->pid);
-		remove_proc_entry(strbuf, binder_proc_dir_entry_proc);
-		proc_create_data(strbuf, S_IRUGO,
-				 binder_proc_dir_entry_proc,
-				 &binder_proc_fops, proc);
+		proc->debugfs_entry = debugfs_create_file(strbuf, S_IRUGO,
+			binder_debugfs_dir_entry_proc, proc, &binder_proc_fops);
 	}
 
 	return 0;
@@ -2934,12 +2933,7 @@ static void binder_deferred_flush(struct binder_proc *proc)
 static int binder_release(struct inode *nodp, struct file *filp)
 {
 	struct binder_proc *proc = filp->private_data;
-	if (binder_proc_dir_entry_proc) {
-		char strbuf[11];
-		snprintf(strbuf, sizeof(strbuf), "%u", proc->pid);
-		remove_proc_entry(strbuf, binder_proc_dir_entry_proc);
-	}
-
+	debugfs_remove(proc->debugfs_entry);
 	binder_defer_work(proc, BINDER_DEFERRED_RELEASE);
 
 	return 0;
@@ -3558,34 +3552,37 @@ static int __init binder_init(void)
 {
 	int ret;
 
-	binder_proc_dir_entry_root = proc_mkdir("binder", NULL);
-	if (binder_proc_dir_entry_root)
-		binder_proc_dir_entry_proc = proc_mkdir("proc",
-						binder_proc_dir_entry_root);
+	binder_debugfs_dir_entry_root = debugfs_create_dir("binder", NULL);
+	if (binder_debugfs_dir_entry_root)
+		binder_debugfs_dir_entry_proc = debugfs_create_dir("proc",
+						 binder_debugfs_dir_entry_root);
 	ret = misc_register(&binder_miscdev);
-	if (binder_proc_dir_entry_root) {
-		proc_create("state",
-			    S_IRUGO,
-			    binder_proc_dir_entry_root,
-			    &binder_state_fops);
-		proc_create("stats",
-			    S_IRUGO,
-			    binder_proc_dir_entry_root,
-			    &binder_stats_fops);
-		proc_create("transactions",
-			    S_IRUGO,
-			    binder_proc_dir_entry_root,
-			    &binder_transactions_fops);
-		proc_create_data("transaction_log",
-				 S_IRUGO,
-				 binder_proc_dir_entry_root,
-				 &binder_transaction_log_fops,
-				 &binder_transaction_log);
-		proc_create_data("failed_transaction_log",
-				 S_IRUGO,
-				 binder_proc_dir_entry_root,
-				 &binder_transaction_log_fops,
-				 &binder_transaction_log_failed);
+	if (binder_debugfs_dir_entry_root) {
+		debugfs_create_file("state",
+				    S_IRUGO,
+				    binder_debugfs_dir_entry_root,
+				    NULL,
+				    &binder_state_fops);
+		debugfs_create_file("stats",
+				    S_IRUGO,
+				    binder_debugfs_dir_entry_root,
+				    NULL,
+				    &binder_stats_fops);
+		debugfs_create_file("transactions",
+				    S_IRUGO,
+				    binder_debugfs_dir_entry_root,
+				    NULL,
+				    &binder_transactions_fops);
+		debugfs_create_file("transaction_log",
+				    S_IRUGO,
+				    binder_debugfs_dir_entry_root,
+				    &binder_transaction_log,
+				    &binder_transaction_log_fops);
+		debugfs_create_file("failed_transaction_log",
+				    S_IRUGO,
+				    binder_debugfs_dir_entry_root,
+				    &binder_transaction_log_failed,
+				    &binder_transaction_log_fops);
 	}
 	return ret;
 }