瀏覽代碼

Make /proc/misc use seq_list_xxx helpers

Simple and stupid - just use the helpers.

Signed-off-by: Pavel Emelianov <xemul@openvz.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Pavel Emelianov 18 年之前
父節點
當前提交
46c65b71e6
共有 1 個文件被更改,包括 3 次插入15 次删除
  1. 3 15
      drivers/char/misc.c

+ 3 - 15
drivers/char/misc.c

@@ -67,25 +67,13 @@ extern int pmu_device_init(void);
 #ifdef CONFIG_PROC_FS
 #ifdef CONFIG_PROC_FS
 static void *misc_seq_start(struct seq_file *seq, loff_t *pos)
 static void *misc_seq_start(struct seq_file *seq, loff_t *pos)
 {
 {
-	struct miscdevice *p;
-	loff_t off = 0;
-
 	mutex_lock(&misc_mtx);
 	mutex_lock(&misc_mtx);
-	list_for_each_entry(p, &misc_list, list) {
-		if (*pos == off++) 
-			return p;
-	}
-	return NULL;
+	return seq_list_start(&misc_list, *pos);
 }
 }
 
 
 static void *misc_seq_next(struct seq_file *seq, void *v, loff_t *pos)
 static void *misc_seq_next(struct seq_file *seq, void *v, loff_t *pos)
 {
 {
-	struct list_head *n = ((struct miscdevice *)v)->list.next;
-
-	++*pos;
-
-	return (n != &misc_list) ? list_entry(n, struct miscdevice, list)
-		 : NULL;
+	return seq_list_next(v, &misc_list, pos);
 }
 }
 
 
 static void misc_seq_stop(struct seq_file *seq, void *v)
 static void misc_seq_stop(struct seq_file *seq, void *v)
@@ -95,7 +83,7 @@ static void misc_seq_stop(struct seq_file *seq, void *v)
 
 
 static int misc_seq_show(struct seq_file *seq, void *v)
 static int misc_seq_show(struct seq_file *seq, void *v)
 {
 {
-	const struct miscdevice *p = v;
+	const struct miscdevice *p = list_entry(v, struct miscdevice, list);
 
 
 	seq_printf(seq, "%3i %s\n", p->minor, p->name ? p->name : "");
 	seq_printf(seq, "%3i %s\n", p->minor, p->name ? p->name : "");
 	return 0;
 	return 0;