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

Reply via email to