summaryrefslogtreecommitdiffstats
path: root/drivers/nfc
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2015-04-06 00:58:51 +0200
committerSamuel Ortiz <sameo@linux.intel.com>2015-04-06 00:58:51 +0200
commit9421ce10ad87f799263bddad74b91e2166f020a1 (patch)
tree8809982d98f5ef2490e240e5ad2ff4a992238381 /drivers/nfc
parentNFC: nxp-nxi: Remove useless fw pointer check (diff)
downloadlinux-9421ce10ad87f799263bddad74b91e2166f020a1.tar.xz
linux-9421ce10ad87f799263bddad74b91e2166f020a1.zip
NFC: nxp-nci: Release firmware when switching to FW mode fails
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>
Diffstat (limited to 'drivers/nfc')
-rw-r--r--drivers/nfc/nxp-nci/firmware.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/nfc/nxp-nci/firmware.c b/drivers/nfc/nxp-nci/firmware.c
index 74f98209ea82..5291797324ba 100644
--- a/drivers/nfc/nxp-nci/firmware.c
+++ b/drivers/nfc/nxp-nci/firmware.c
@@ -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);
goto fw_download_exit;
+ }
info->mode = NXP_NCI_MODE_FW;