提交 67de7924 编写于 作者: L Li Zefan 提交者: David S. Miller

net: atm: use seq_list_foo() helpers

Simplify seq_file code.
Signed-off-by: NLi Zefan <lizf@cn.fujitsu.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 a2b79b41
......@@ -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);
......
......@@ -444,21 +444,10 @@ int atm_dev_ioctl(unsigned int cmd, void __user *arg, int compat)
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);
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册