net: atm: use seq_list_foo() helpers
Simplify seq_file code. Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
a2b79b414d
Коммит
67de792420
|
@ -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 @@ 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);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче