.. | .. |
---|
152 | 152 | DEFINE_DEBUGFS_ATTRIBUTE(fei_retval_ops, fei_retval_get, fei_retval_set, |
---|
153 | 153 | "%llx\n"); |
---|
154 | 154 | |
---|
155 | | -static int fei_debugfs_add_attr(struct fei_attr *attr) |
---|
| 155 | +static void fei_debugfs_add_attr(struct fei_attr *attr) |
---|
156 | 156 | { |
---|
157 | 157 | struct dentry *dir; |
---|
158 | 158 | |
---|
159 | 159 | dir = debugfs_create_dir(attr->kp.symbol_name, fei_debugfs_dir); |
---|
160 | | - if (!dir) |
---|
161 | | - return -ENOMEM; |
---|
162 | 160 | |
---|
163 | | - if (!debugfs_create_file("retval", 0600, dir, attr, &fei_retval_ops)) { |
---|
164 | | - debugfs_remove_recursive(dir); |
---|
165 | | - return -ENOMEM; |
---|
166 | | - } |
---|
167 | | - |
---|
168 | | - return 0; |
---|
| 161 | + debugfs_create_file("retval", 0600, dir, attr, &fei_retval_ops); |
---|
169 | 162 | } |
---|
170 | 163 | |
---|
171 | 164 | static void fei_debugfs_remove_attr(struct fei_attr *attr) |
---|
.. | .. |
---|
173 | 166 | struct dentry *dir; |
---|
174 | 167 | |
---|
175 | 168 | dir = debugfs_lookup(attr->kp.symbol_name, fei_debugfs_dir); |
---|
176 | | - if (dir) |
---|
177 | | - debugfs_remove_recursive(dir); |
---|
| 169 | + debugfs_remove_recursive(dir); |
---|
178 | 170 | } |
---|
179 | 171 | |
---|
180 | 172 | static int fei_kprobe_handler(struct kprobe *kp, struct pt_regs *regs) |
---|
.. | .. |
---|
211 | 203 | { |
---|
212 | 204 | struct fei_attr *attr = list_entry(v, struct fei_attr, list); |
---|
213 | 205 | |
---|
214 | | - seq_printf(m, "%pf\n", attr->kp.addr); |
---|
| 206 | + seq_printf(m, "%ps\n", attr->kp.addr); |
---|
215 | 207 | return 0; |
---|
216 | 208 | } |
---|
217 | 209 | |
---|
.. | .. |
---|
307 | 299 | |
---|
308 | 300 | ret = register_kprobe(&attr->kp); |
---|
309 | 301 | if (!ret) |
---|
310 | | - ret = fei_debugfs_add_attr(attr); |
---|
| 302 | + fei_debugfs_add_attr(attr); |
---|
311 | 303 | if (ret < 0) |
---|
312 | 304 | fei_attr_remove(attr); |
---|
313 | 305 | else { |
---|
.. | .. |
---|
339 | 331 | return PTR_ERR(dir); |
---|
340 | 332 | |
---|
341 | 333 | /* injectable attribute is just a symlink of error_inject/list */ |
---|
342 | | - if (!debugfs_create_symlink("injectable", dir, |
---|
343 | | - "../error_injection/list")) |
---|
344 | | - goto error; |
---|
| 334 | + debugfs_create_symlink("injectable", dir, "../error_injection/list"); |
---|
345 | 335 | |
---|
346 | | - if (!debugfs_create_file("inject", 0600, dir, NULL, &fei_ops)) |
---|
347 | | - goto error; |
---|
| 336 | + debugfs_create_file("inject", 0600, dir, NULL, &fei_ops); |
---|
348 | 337 | |
---|
349 | 338 | fei_debugfs_dir = dir; |
---|
350 | 339 | |
---|
351 | 340 | return 0; |
---|
352 | | -error: |
---|
353 | | - debugfs_remove_recursive(dir); |
---|
354 | | - return -ENOMEM; |
---|
355 | 341 | } |
---|
356 | 342 | |
---|
357 | 343 | late_initcall(fei_debugfs_init); |
---|