X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=crypto%2Fproc.c;h=02ff5670c1583e4d454dfc37028b427e92d7d342;hb=da6e88f4963385b1b649b043691d206fbb951913;hp=102c751a124c1d0368b9c7e9d8b1c421181e7667;hpb=7baca6ad0ef09c8a78d798c93a3ce25336e8f50f;p=pandora-kernel.git diff --git a/crypto/proc.c b/crypto/proc.c index 102c751a124c..02ff5670c158 100644 --- a/crypto/proc.c +++ b/crypto/proc.c @@ -23,24 +23,13 @@ static void *c_start(struct seq_file *m, loff_t *pos) { - struct list_head *v; - loff_t n = *pos; - down_read(&crypto_alg_sem); - list_for_each(v, &crypto_alg_list) - if (!n--) - return list_entry(v, struct crypto_alg, cra_list); - return NULL; + return seq_list_start(&crypto_alg_list, *pos); } static void *c_next(struct seq_file *m, void *p, loff_t *pos) { - struct list_head *v = p; - - (*pos)++; - v = v->next; - return (v == &crypto_alg_list) ? - NULL : list_entry(v, struct crypto_alg, cra_list); + return seq_list_next(p, &crypto_alg_list, pos); } static void c_stop(struct seq_file *m, void *p) @@ -50,7 +39,7 @@ static void c_stop(struct seq_file *m, void *p) static int c_show(struct seq_file *m, void *p) { - struct crypto_alg *alg = (struct crypto_alg *)p; + struct crypto_alg *alg = list_entry(p, struct crypto_alg, cra_list); seq_printf(m, "name : %s\n", alg->cra_name); seq_printf(m, "driver : %s\n", alg->cra_driver_name); @@ -89,7 +78,7 @@ static int c_show(struct seq_file *m, void *p) return 0; } -static struct seq_operations crypto_seq_ops = { +static const struct seq_operations crypto_seq_ops = { .start = c_start, .next = c_next, .stop = c_stop, @@ -110,11 +99,7 @@ static const struct file_operations proc_crypto_ops = { void __init crypto_init_proc(void) { - struct proc_dir_entry *proc; - - proc = create_proc_entry("crypto", 0, NULL); - if (proc) - proc->proc_fops = &proc_crypto_ops; + proc_create("crypto", 0, NULL, &proc_crypto_ops); } void __exit crypto_exit_proc(void)