summaryrefslogtreecommitdiffstats
path: root/drivers/staging/rdma/hfi1/pcie.c
diff options
context:
space:
mode:
authorDean Luick2016-02-03 23:31:40 +0100
committerDoug Ledford2016-03-11 02:37:47 +0100
commit6b14e0ea48890e633ac69caa3ae13beccdd497be (patch)
treef7b3ad4e089568bb036d3c34378f2a6949f0383a /drivers/staging/rdma/hfi1/pcie.c
parentstaging/rdma/hfi1: Support external device configuration requests from 8051 (diff)
downloadkernel-qcow2-linux-6b14e0ea48890e633ac69caa3ae13beccdd497be.tar.gz
kernel-qcow2-linux-6b14e0ea48890e633ac69caa3ae13beccdd497be.tar.xz
kernel-qcow2-linux-6b14e0ea48890e633ac69caa3ae13beccdd497be.zip
staging/rdma/hfi1: Fix missing firmware NULL dereference
The gen3 bump code must mark a firmware download failure as fatal. Otherwise a later load attempt will fail with a NULL dereference. Also: o Only do a firmware back-off for RTL. There are no alternates for FPGA or simulation. o Rearrange OS firmware request order to match what is actually loaded. This results in more coherent informational messages in the case of missing firmware. Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Dean Luick <dean.luick@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/staging/rdma/hfi1/pcie.c')
-rw-r--r--drivers/staging/rdma/hfi1/pcie.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/staging/rdma/hfi1/pcie.c b/drivers/staging/rdma/hfi1/pcie.c
index b2f553d86042..3cdc8047f16b 100644
--- a/drivers/staging/rdma/hfi1/pcie.c
+++ b/drivers/staging/rdma/hfi1/pcie.c
@@ -1032,8 +1032,11 @@ retry:
/* step 4: download PCIe Gen3 SerDes firmware */
dd_dev_info(dd, "%s: downloading firmware\n", __func__);
ret = load_pcie_firmware(dd);
- if (ret)
+ if (ret) {
+ /* do not proceed if the firmware cannot be downloaded */
+ return_error = 1;
goto done;
+ }
/* step 5: set up device parameter settings */
dd_dev_info(dd, "%s: setting PCIe registers\n", __func__);