net: atm: use seq_list_foo() helpers
authorLi Zefan <lizf@cn.fujitsu.com>
Mon, 8 Feb 2010 23:21:51 +0000 (23:21 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 10 Feb 2010 20:31:10 +0000 (12:31 -0800)
Simplify seq_file code.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/atm/proc.c
net/atm/resources.c

index 476779d..7a96b23 100644 (file)
@@ -238,7 +238,7 @@ static int atm_dev_seq_show(struct seq_file *seq, void *v)
                "Itf Type    ESI/\"MAC\"addr "
                "AAL(TX,err,RX,err,drop) ...               [refcnt]\n";
 
-       if (v == SEQ_START_TOKEN)
+       if (v == &atm_devs)
                seq_puts(seq, atm_dev_banner);
        else {
                struct atm_dev *dev = list_entry(v, struct atm_dev, dev_list);
index 447ed89..9008290 100644 (file)
@@ -444,21 +444,10 @@ done:
        return error;
 }
 
-static inline void *dev_get_idx(loff_t left)
-{
-       struct list_head *p;
-
-       list_for_each(p, &atm_devs) {
-               if (!--left)
-                       break;
-       }
-       return (p != &atm_devs) ? p : NULL;
-}
-
 void *atm_dev_seq_start(struct seq_file *seq, loff_t *pos)
 {
        mutex_lock(&atm_dev_mutex);
-       return *pos ? dev_get_idx(*pos) : SEQ_START_TOKEN;
+       return seq_list_start_head(&atm_devs, *pos);
 }
 
 void atm_dev_seq_stop(struct seq_file *seq, void *v)
@@ -468,8 +457,5 @@ void atm_dev_seq_stop(struct seq_file *seq, void *v)
 
 void *atm_dev_seq_next(struct seq_file *seq, void *v, loff_t *pos)
 {
-       ++*pos;
-       v = (v == SEQ_START_TOKEN)
-               ? atm_devs.next : ((struct list_head *)v)->next;
-       return (v == &atm_devs) ? NULL : v;
+       return seq_list_next(v, &atm_devs, pos);
 }