diff options
author | Alexey Dobriyan <adobriyan@gmail.com> | 2008-11-16 23:01:49 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-11-16 23:01:49 -0800 |
commit | 4d24b52ac5085ef8a264d044f1b302b7c029887a (patch) | |
tree | 3842c484d49f97bc441ef9e6a31de09fa2f683f5 | |
parent | 6eba6a372b501aa3cdfb7df21a8364099125b9c4 (diff) | |
download | kernel-common-4d24b52ac5085ef8a264d044f1b302b7c029887a.tar.gz kernel-common-4d24b52ac5085ef8a264d044f1b302b7c029887a.tar.bz2 kernel-common-4d24b52ac5085ef8a264d044f1b302b7c029887a.zip |
ematch: simpler tcf_em_unregister()
Simply delete ops from list and let list debugging do the job.
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | include/net/pkt_cls.h | 2 | ||||
-rw-r--r-- | net/sched/ematch.c | 18 |
2 files changed, 4 insertions, 16 deletions
diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h index aa9e282db485..d1ca31444644 100644 --- a/include/net/pkt_cls.h +++ b/include/net/pkt_cls.h @@ -246,7 +246,7 @@ struct tcf_ematch_ops }; extern int tcf_em_register(struct tcf_ematch_ops *); -extern int tcf_em_unregister(struct tcf_ematch_ops *); +extern void tcf_em_unregister(struct tcf_ematch_ops *); extern int tcf_em_tree_validate(struct tcf_proto *, struct nlattr *, struct tcf_ematch_tree *); extern void tcf_em_tree_destroy(struct tcf_proto *, struct tcf_ematch_tree *); diff --git a/net/sched/ematch.c b/net/sched/ematch.c index e82519e548d7..aab59409728b 100644 --- a/net/sched/ematch.c +++ b/net/sched/ematch.c @@ -71,7 +71,7 @@ * * static void __exit exit_my_ematch(void) * { - * return tcf_em_unregister(&my_ops); + * tcf_em_unregister(&my_ops); * } * * module_init(init_my_ematch); @@ -154,23 +154,11 @@ EXPORT_SYMBOL(tcf_em_register); * * Returns -ENOENT if no matching ematch was found. */ -int tcf_em_unregister(struct tcf_ematch_ops *ops) +void tcf_em_unregister(struct tcf_ematch_ops *ops) { - int err = 0; - struct tcf_ematch_ops *e; - write_lock(&ematch_mod_lock); - list_for_each_entry(e, &ematch_ops, link) { - if (e == ops) { - list_del(&e->link); - goto out; - } - } - - err = -ENOENT; -out: + list_del(&ops->link); write_unlock(&ematch_mod_lock); - return err; } EXPORT_SYMBOL(tcf_em_unregister); |