ixgbe: fix read-modify-write in x550 phy setup
Replaced an assignment operation with an OR operation. The variable assignment was overwriting the value read from the PHY register. The OR operation sets only the intended register bits. The bits that were being overwritten are reserved, so the assignment had no functional impact. Reported by: Shannon Nelson <shannon.nelson@oracle.com> Signed-off-by: Paul Greenwalt <paul.greenwalt@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
1aa37845f7
commit
9bf1e20f65
|
@ -1847,9 +1847,9 @@ ixgbe_setup_mac_link_sfp_x550a(struct ixgbe_hw *hw, ixgbe_link_speed speed,
|
||||||
(IXGBE_CS4227_EDC_MODE_SR << 1));
|
(IXGBE_CS4227_EDC_MODE_SR << 1));
|
||||||
|
|
||||||
if (setup_linear)
|
if (setup_linear)
|
||||||
reg_phy_ext = (IXGBE_CS4227_EDC_MODE_CX1 << 1) | 1;
|
reg_phy_ext |= (IXGBE_CS4227_EDC_MODE_CX1 << 1) | 1;
|
||||||
else
|
else
|
||||||
reg_phy_ext = (IXGBE_CS4227_EDC_MODE_SR << 1) | 1;
|
reg_phy_ext |= (IXGBE_CS4227_EDC_MODE_SR << 1) | 1;
|
||||||
|
|
||||||
ret_val = hw->phy.ops.write_reg(hw, reg_slice,
|
ret_val = hw->phy.ops.write_reg(hw, reg_slice,
|
||||||
IXGBE_MDIO_ZERO_DEV_TYPE, reg_phy_ext);
|
IXGBE_MDIO_ZERO_DEV_TYPE, reg_phy_ext);
|
||||||
|
|
Loading…
Reference in New Issue