diff --git a/net/key/af_key.c b/net/key/af_key.c
index b3ac85e808acf288dc91a1c12d7a9c92323cdf1d..1c853927810add38d862838c702de91bb687e4f0 100644
--- a/net/key/af_key.c
+++ b/net/key/af_key.c
@@ -2291,6 +2291,7 @@ static int pfkey_spdadd(struct sock *sk, struct sk_buff *skb, struct sadb_msg *h
 	return 0;
 
 out:
+	xp->dead = 1;
 	xfrm_policy_destroy(xp);
 	return err;
 }