From: Pavel Emelianov Here there is not need even in .show callback altering. The original code passes list_head in *v. Signed-off-by: Pavel Emelianov Signed-off-by: Andrew Morton --- kernel/module.c | 17 ++--------------- 1 files changed, 2 insertions(+), 15 deletions(-) diff -puN kernel/module.c~make-proc-modules-use-seq_list_xxx-helpers kernel/module.c --- a/kernel/module.c~make-proc-modules-use-seq_list_xxx-helpers +++ a/kernel/module.c @@ -2232,26 +2232,13 @@ unsigned long module_kallsyms_lookup_nam /* Called by the /proc file system to return a list of modules. */ static void *m_start(struct seq_file *m, loff_t *pos) { - struct list_head *i; - loff_t n = 0; - mutex_lock(&module_mutex); - list_for_each(i, &modules) { - if (n++ == *pos) - break; - } - if (i == &modules) - return NULL; - return i; + return seq_list_start(&modules, *pos); } static void *m_next(struct seq_file *m, void *p, loff_t *pos) { - struct list_head *i = p; - (*pos)++; - if (i->next == &modules) - return NULL; - return i->next; + return seq_list_next(p, &modules, pos); } static void m_stop(struct seq_file *m, void *p) _