diff options
author | Dean Luick | 2016-02-03 23:31:40 +0100 |
---|---|---|
committer | Doug Ledford | 2016-03-11 02:37:47 +0100 |
commit | 6b14e0ea48890e633ac69caa3ae13beccdd497be (patch) | |
tree | f7b3ad4e089568bb036d3c34378f2a6949f0383a /drivers/staging/rdma/hfi1/pcie.c | |
parent | staging/rdma/hfi1: Support external device configuration requests from 8051 (diff) | |
download | kernel-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.c | 5 |
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__); |