diff --git a/net/sched/act_api.c b/net/sched/act_api.c
index 599423cc9d0d67796c4936f1d15c08fe979d1e0e..0972247a839c7b239a7202de5d3293970eae7bd1 100644
--- a/net/sched/act_api.c
+++ b/net/sched/act_api.c
@@ -602,8 +602,8 @@ static int tca_action_flush(struct rtattr *rta, struct nlmsghdr *n, u32 pid)
 	return err;
 
 rtattr_failure:
-	module_put(a->ops->owner);
 nlmsg_failure:
+	module_put(a->ops->owner);
 err_out:
 	kfree_skb(skb);
 	kfree(a);