lkml.org 
[lkml]   [2021]   [Sep]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 031/103] e1000e: Do not take care about recovery NVM checksum
    Date
    From: Sasha Neftin <sasha.neftin@intel.com>

    [ Upstream commit 4051f68318ca9f3d3becef3b54e70ad2c146df97 ]

    On new platforms, the NVM is read-only. Attempting to update the NVM
    is causing a lockup to occur. Do not attempt to write to the NVM
    on platforms where it's not supported.
    Emit an error message when the NVM checksum is invalid.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=213667
    Fixes: fb776f5d57ee ("e1000e: Add support for Tiger Lake")
    Suggested-by: Dima Ruinskiy <dima.ruinskiy@intel.com>
    Suggested-by: Vitaly Lifshits <vitaly.lifshits@intel.com>
    Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
    Tested-by: Dvora Fuxbrumer <dvorax.fuxbrumer@linux.intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/intel/e1000e/ich8lan.c | 18 +++++++++++-------
    1 file changed, 11 insertions(+), 7 deletions(-)

    diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
    index 5f0f1bd522f0..854c585de2e1 100644
    --- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
    +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
    @@ -4134,13 +4134,17 @@ static s32 e1000_validate_nvm_checksum_ich8lan(struct e1000_hw *hw)
    return ret_val;

    if (!(data & valid_csum_mask)) {
    - data |= valid_csum_mask;
    - ret_val = e1000_write_nvm(hw, word, 1, &data);
    - if (ret_val)
    - return ret_val;
    - ret_val = e1000e_update_nvm_checksum(hw);
    - if (ret_val)
    - return ret_val;
    + e_dbg("NVM Checksum Invalid\n");
    +
    + if (hw->mac.type < e1000_pch_cnp) {
    + data |= valid_csum_mask;
    + ret_val = e1000_write_nvm(hw, word, 1, &data);
    + if (ret_val)
    + return ret_val;
    + ret_val = e1000e_update_nvm_checksum(hw);
    + if (ret_val)
    + return ret_val;
    + }
    }

    return e1000e_validate_nvm_checksum_generic(hw);
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-09-01 14:44    [W:5.179 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site