diff options
Diffstat (limited to 'kernel/rcutree_trace.c')
| -rw-r--r-- | kernel/rcutree_trace.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/kernel/rcutree_trace.c b/kernel/rcutree_trace.c index cae417de4b94..c90d2a917def 100644 --- a/kernel/rcutree_trace.c +++ b/kernel/rcutree_trace.c | |||
| @@ -360,6 +360,26 @@ static const struct file_operations rcugp_fops = { | |||
| 360 | .release = single_release, | 360 | .release = single_release, |
| 361 | }; | 361 | }; |
| 362 | 362 | ||
| 363 | static int new_show_rcugp(struct seq_file *m, void *v) | ||
| 364 | { | ||
| 365 | struct rcu_state *rsp = (struct rcu_state *)m->private; | ||
| 366 | show_one_rcugp(m, rsp); | ||
| 367 | return 0; | ||
| 368 | } | ||
| 369 | |||
| 370 | static int new_rcugp_open(struct inode *inode, struct file *file) | ||
| 371 | { | ||
| 372 | return single_open(file, new_show_rcugp, inode->i_private); | ||
| 373 | } | ||
| 374 | |||
| 375 | static const struct file_operations new_rcugp_fops = { | ||
| 376 | .owner = THIS_MODULE, | ||
| 377 | .open = new_rcugp_open, | ||
| 378 | .read = seq_read, | ||
| 379 | .llseek = no_llseek, | ||
| 380 | .release = seq_release, | ||
| 381 | }; | ||
| 382 | |||
| 363 | static void print_one_rcu_pending(struct seq_file *m, struct rcu_data *rdp) | 383 | static void print_one_rcu_pending(struct seq_file *m, struct rcu_data *rdp) |
| 364 | { | 384 | { |
| 365 | if (!rdp->beenonline) | 385 | if (!rdp->beenonline) |
| @@ -468,6 +488,12 @@ static int __init rcutree_trace_init(void) | |||
| 468 | goto free_out; | 488 | goto free_out; |
| 469 | } | 489 | } |
| 470 | #endif | 490 | #endif |
| 491 | |||
| 492 | retval = debugfs_create_file("rcugp", 0444, | ||
| 493 | rspdir, rsp, &new_rcugp_fops); | ||
| 494 | if (!retval) | ||
| 495 | goto free_out; | ||
| 496 | |||
| 471 | } | 497 | } |
| 472 | 498 | ||
| 473 | retval = debugfs_create_file("rcubarrier", 0444, rcudir, | 499 | retval = debugfs_create_file("rcubarrier", 0444, rcudir, |
