In that case, the firmware work will never be scheduled, will never complete and thus the firmware will never be released. Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
@@ -234,8 +234,10 @@ int nxp_nci_fw_download(struct nci_dev *ndev, const char *firmware_name)
goto fw_download_exit;
r = info->phy_ops->set_mode(info->phy_id, NXP_NCI_MODE_FW);
- if (r < 0)
+ if (r < 0) {
+ release_firmware(fw_info->fw);
+ }
info->mode = NXP_NCI_MODE_FW;