From: Dima Ruinskiy <dima.ruins...@intel.com> Currently, when writing GPY PHY registers, semaphor is acquired before writing. However, if writing fails, semaphor is not released, causing a deadlock down the line. Fix the issue by removing premature return.
Signed-off-by: Dima Ruinskiy <dima.ruins...@intel.com> Signed-off-by: Anatoly Burakov <anatoly.bura...@intel.com> --- drivers/net/intel/e1000/base/e1000_phy.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/net/intel/e1000/base/e1000_phy.c b/drivers/net/intel/e1000/base/e1000_phy.c index eb0c6d7c53..1b5fd76ada 100644 --- a/drivers/net/intel/e1000/base/e1000_phy.c +++ b/drivers/net/intel/e1000/base/e1000_phy.c @@ -4193,8 +4193,6 @@ s32 e1000_write_phy_reg_gpy(struct e1000_hw *hw, u32 offset, u16 data) if (ret_val) return ret_val; ret_val = e1000_write_phy_reg_mdic(hw, offset, data); - if (ret_val) - return ret_val; hw->phy.ops.release(hw); } else { ret_val = e1000_write_xmdio_reg(hw, (u16)offset, dev_addr, @@ -4227,8 +4225,6 @@ s32 e1000_read_phy_reg_gpy(struct e1000_hw *hw, u32 offset, u16 *data) if (ret_val) return ret_val; ret_val = e1000_read_phy_reg_mdic(hw, offset, data); - if (ret_val) - return ret_val; hw->phy.ops.release(hw); } else { ret_val = e1000_read_xmdio_reg(hw, (u16)offset, dev_addr, -- 2.43.5