From: Pavel Emelianov Simple and stupid like some previous ones. Just use new API. Signed-off-by: Pavel Emelianov Cc: Alan Cox Signed-off-by: Andrew Morton --- fs/proc/proc_tty.c | 15 +++------------ 1 files changed, 3 insertions(+), 12 deletions(-) diff -puN fs/proc/proc_tty.c~make-proc-tty-drivers-use-seq_list_xxx-helpers fs/proc/proc_tty.c --- a/fs/proc/proc_tty.c~make-proc-tty-drivers-use-seq_list_xxx-helpers +++ a/fs/proc/proc_tty.c @@ -69,7 +69,7 @@ static void show_tty_range(struct seq_fi static int show_tty_driver(struct seq_file *m, void *v) { - struct tty_driver *p = v; + struct tty_driver *p = list_entry(v, struct tty_driver, tty_drivers); dev_t from = MKDEV(p->major, p->minor_start); dev_t to = from + p->num; @@ -106,22 +106,13 @@ static int show_tty_driver(struct seq_fi /* iterator */ static void *t_start(struct seq_file *m, loff_t *pos) { - struct list_head *p; - loff_t l = *pos; - mutex_lock(&tty_mutex); - list_for_each(p, &tty_drivers) - if (!l--) - return list_entry(p, struct tty_driver, tty_drivers); - return NULL; + return seq_list_start(&tty_drivers, *pos); } static void *t_next(struct seq_file *m, void *v, loff_t *pos) { - struct list_head *p = ((struct tty_driver *)v)->tty_drivers.next; - (*pos)++; - return p==&tty_drivers ? NULL : - list_entry(p, struct tty_driver, tty_drivers); + return seq_list_next(v, &tty_drivers, pos); } static void t_stop(struct seq_file *m, void *v) _