reverts https://lore.kernel.org/all/iwlwifi.20211210110539.1f742f0eb58a.I1315f22f6aa632d94ae2069f85e1bca5e734dce0@changeid/

--- b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
+++ a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
@@ -130,9 +130,6 @@
 
 	for (i = 0; i < IWL_UCODE_TYPE_MAX; i++)
 		iwl_free_fw_img(drv, drv->fw.img + i);
-
-	/* clear the data for the aborted load case */
-	memset(&drv->fw, 0, sizeof(drv->fw));
 }
 
 static int iwl_alloc_fw_desc(struct iwl_drv *drv, struct fw_desc *desc,
@@ -1429,7 +1426,6 @@
 	int i;
 	bool load_module = false;
 	bool usniffer_images = false;
-	bool failure = true;
 
 	fw->ucode_capa.max_probe_length = IWL_DEFAULT_MAX_PROBE_LENGTH;
 	fw->ucode_capa.standard_phy_calibration_size =
@@ -1699,7 +1695,6 @@
 				op->name, err);
 #endif
 	}
-	failure = false;
 	goto free;
 
  try_again:
@@ -1715,9 +1710,6 @@
 	complete(&drv->request_firmware_complete);
 	device_release_driver(drv->trans->dev);
  free:
-	if (failure)
-		iwl_dealloc_ucode(drv);
-
 	if (pieces) {
 		for (i = 0; i < ARRAY_SIZE(pieces->img); i++)
 			kfree(pieces->img[i].sec);
