diff --git a/net/wireless/core.c b/net/wireless/core.c
index 4e83892f1ac2584e452c9da9d6cc234a489e4414..c58acca093012efe6b55c1f73224eded9fdc5caf 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -513,7 +513,7 @@ struct wiphy *wiphy_new_nm(const struct cfg80211_ops *ops, int sizeof_priv,
 				   &rdev->rfkill_ops, rdev);
 
 	if (!rdev->rfkill) {
-		kfree(rdev);
+		wiphy_free(&rdev->wiphy);
 		return NULL;
 	}