ematch: Fix auto-loading of ematch modules.

[ Upstream commit 34eea79e26 ]

In tcf_em_validate(), after calling request_module() to load the
kind-specific module, set em->ops to NULL before returning -EAGAIN, so
that module_put() is not called again by tcf_em_tree_destroy().

Signed-off-by: Ignacy Gawędzki <ignacy.gawedzki@green-communications.fr>
Acked-by: Cong Wang <cwang@twopensource.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
(cherry picked from commit 9405be7326)

Signed-off-by: Willy Tarreau <w@1wt.eu>
This commit is contained in:
Ignacy Gawędzki 2015-02-17 20:15:20 +01:00 committed by Willy Tarreau
parent 221956a27c
commit 20914ec48a

View File

@ -222,6 +222,7 @@ static int tcf_em_validate(struct tcf_proto *tp,
* perform the module load. Tell the caller
* to replay the request. */
module_put(em->ops->owner);
em->ops = NULL;
err = -EAGAIN;
}
#endif