summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2012-06-22 11:31:14 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-10-07 08:32:29 -0700
commitb4d4dc33a372aaee2205d4506b4c7ead6275067d (patch)
tree7344920381bae14a99dafcc5e0c42b77c04e3044
parent22fb582405002812d8fb89d0ed1264e97d3d25ad (diff)
downloadlinux-3.10-b4d4dc33a372aaee2205d4506b4c7ead6275067d.tar.gz
linux-3.10-b4d4dc33a372aaee2205d4506b4c7ead6275067d.tar.bz2
linux-3.10-b4d4dc33a372aaee2205d4506b4c7ead6275067d.zip
isci: fix isci_pci_probe() generates warning on efi failure path
commit 6d70a74ffd616073a68ae0974d98819bfa8e6da6 upstream. The oem parameter image embedded in the efi variable is at an offset from the start of the variable. However, in the failure path we try to free the 'orom' pointer which is only valid when the paramaters are being read from the legacy option-rom space. Since failure to load the oem parameters is unlikely and we keep the memory around in the success case just defer all de-allocation to devm. Reported-by: Don Morris <don.morris@hp.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/scsi/isci/init.c1
-rw-r--r--drivers/scsi/isci/probe_roms.c1
2 files changed, 0 insertions, 2 deletions
diff --git a/drivers/scsi/isci/init.c b/drivers/scsi/isci/init.c
index bc6cf888631..4c150dffb1a 100644
--- a/drivers/scsi/isci/init.c
+++ b/drivers/scsi/isci/init.c
@@ -481,7 +481,6 @@ static int __devinit isci_pci_probe(struct pci_dev *pdev, const struct pci_devic
orom->hdr.version)) {
dev_warn(&pdev->dev,
"[%d]: invalid oem parameters detected, falling back to firmware\n", i);
- devm_kfree(&pdev->dev, orom);
orom = NULL;
break;
}
diff --git a/drivers/scsi/isci/probe_roms.c b/drivers/scsi/isci/probe_roms.c
index 9b8117b9d75..4c66f4682fd 100644
--- a/drivers/scsi/isci/probe_roms.c
+++ b/drivers/scsi/isci/probe_roms.c
@@ -104,7 +104,6 @@ struct isci_orom *isci_request_oprom(struct pci_dev *pdev)
if (i >= len) {
dev_err(&pdev->dev, "oprom parse error\n");
- devm_kfree(&pdev->dev, rom);
rom = NULL;
}
pci_unmap_biosrom(oprom);