diff --git a/kernel/taskstats.c b/kernel/taskstats.c
index 8adfb8069c6d52be1893b8bd26175d7da9aac838..f3c3e9d43d2cdb41374afb7a2e941ef57a945c84 100644
--- a/kernel/taskstats.c
+++ b/kernel/taskstats.c
@@ -411,7 +411,7 @@ static int taskstats_user_cmd(struct sk_buff *skb, struct genl_info *info)
 	return send_reply(rep_skb, info->snd_pid);
 
 nla_put_failure:
-	return genlmsg_cancel(rep_skb, reply);
+	rc = genlmsg_cancel(rep_skb, reply);
 err:
 	nlmsg_free(rep_skb);
 	return rc;
@@ -507,7 +507,6 @@ void taskstats_exit_send(struct task_struct *tsk, struct taskstats *tidstats,
 
 nla_put_failure:
 	genlmsg_cancel(rep_skb, reply);
-	goto ret;
 err_skb:
 	nlmsg_free(rep_skb);
 ret: