Merge commit 'v2.6.31-rc8' into core/locking
[linux-2.6.git] / kernel / lockdep_proc.c
index 2bbe25f..d4b3dbc 100644 (file)
@@ -199,16 +199,10 @@ static void lockdep_stats_debug_show(struct seq_file *m)
                debug_atomic_read(&chain_lookup_hits));
        seq_printf(m, " cyclic checks:                 %11u\n",
                debug_atomic_read(&nr_cyclic_checks));
-       seq_printf(m, " cyclic-check recursions:       %11u\n",
-               debug_atomic_read(&nr_cyclic_check_recursions));
        seq_printf(m, " find-mask forwards checks:     %11u\n",
                debug_atomic_read(&nr_find_usage_forwards_checks));
-       seq_printf(m, " find-mask forwards recursions: %11u\n",
-               debug_atomic_read(&nr_find_usage_forwards_recursions));
        seq_printf(m, " find-mask backwards checks:    %11u\n",
                debug_atomic_read(&nr_find_usage_backwards_checks));
-       seq_printf(m, " find-mask backwards recursions:%11u\n",
-               debug_atomic_read(&nr_find_usage_backwards_recursions));
 
        seq_printf(m, " hardirq on events:             %11u\n", hi1);
        seq_printf(m, " hardirq off events:            %11u\n", hi2);
@@ -350,8 +344,6 @@ static int lockdep_stats_show(struct seq_file *m, void *v)
                        nr_unused);
        seq_printf(m, " max locking depth:             %11u\n",
                        max_lockdep_depth);
-       seq_printf(m, " max recursion depth:           %11u\n",
-                       max_recursion_depth);
 #ifdef CONFIG_PROVE_LOCKING
        seq_printf(m, " max bfs queue depth:           %11u\n",
                        max_bfs_queue_depth);
@@ -383,7 +375,6 @@ struct lock_stat_data {
 };
 
 struct lock_stat_seq {
-       struct lock_stat_data *iter;
        struct lock_stat_data *iter_end;
        struct lock_stat_data stats[MAX_LOCKDEP_KEYS];
 };
@@ -571,34 +562,22 @@ static void seq_header(struct seq_file *m)
 static void *ls_start(struct seq_file *m, loff_t *pos)
 {
        struct lock_stat_seq *data = m->private;
+       struct lock_stat_data *iter;
 
        if (*pos == 0)
                return SEQ_START_TOKEN;
 
-       data->iter = data->stats + (*pos - 1);
-       if (data->iter >= data->iter_end)
-               data->iter = NULL;
+       iter = data->stats + (*pos - 1);
+       if (iter >= data->iter_end)
+               iter = NULL;
 
-       return data->iter;
+       return iter;
 }
 
 static void *ls_next(struct seq_file *m, void *v, loff_t *pos)
 {
-       struct lock_stat_seq *data = m->private;
-
        (*pos)++;
-
-       if (v == SEQ_START_TOKEN)
-               data->iter = data->stats;
-       else {
-               data->iter = v;
-               data->iter++;
-       }
-
-       if (data->iter == data->iter_end)
-               data->iter = NULL;
-
-       return data->iter;
+       return ls_start(m, pos);
 }
 
 static void ls_stop(struct seq_file *m, void *v)
@@ -636,7 +615,6 @@ static int lock_stat_open(struct inode *inode, struct file *file)
                struct lock_stat_data *iter = data->stats;
                struct seq_file *m = file->private_data;
 
-               data->iter = iter;
                list_for_each_entry(class, &all_lock_classes, lock_entry) {
                        iter->class = class;
                        iter->stats = lock_stats(class);
@@ -644,7 +622,7 @@ static int lock_stat_open(struct inode *inode, struct file *file)
                }
                data->iter_end = iter;
 
-               sort(data->stats, data->iter_end - data->iter,
+               sort(data->stats, data->iter_end - data->stats,
                                sizeof(struct lock_stat_data),
                                lock_stat_cmp, NULL);
 
@@ -679,7 +657,6 @@ static int lock_stat_release(struct inode *inode, struct file *file)
        struct seq_file *seq = file->private_data;
 
        vfree(seq->private);
-       seq->private = NULL;
        return seq_release(inode, file);
 }
 
@@ -703,7 +680,8 @@ static int __init lockdep_proc_init(void)
                    &proc_lockdep_stats_operations);
 
 #ifdef CONFIG_LOCK_STAT
-       proc_create("lock_stat", S_IRUSR, NULL, &proc_lock_stat_operations);
+       proc_create("lock_stat", S_IRUSR | S_IWUSR, NULL,
+                   &proc_lock_stat_operations);
 #endif
 
        return 0;