⬢ DragonFlyBSD Kernel Audit
DF-3725 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/netif/ix/ixgbe_x550.c
+++ b/sys/dev/netif/ix/ixgbe_x550.c
@@ -1810,6 +1810,8 @@
 		return rc;
 
 	rc = ixgbe_restart_an_internal_phy_x550em(hw);
+	if (rc)
+		return rc;
 
 	return hw->phy.ops.setup_link_speed(hw, speed, autoneg_wait);
 }
@@ -2697,6 +2699,8 @@
 	status = mac->ops.write_iosf_sb_reg(hw,
 				IXGBE_KRM_PMD_FLX_MASK_ST20(hw->bus.lan_id),
 				IXGBE_SB_IOSF_TARGET_KR_PHY, reg_val);
+	if (status != IXGBE_SUCCESS)
+		return status;
 
 	/* Toggle port SW reset by AN reset. */
 	status = ixgbe_restart_an_internal_phy_x550em(hw);
@@ -2801,6 +2805,8 @@
 			reg_phy_ext |= (IXGBE_CS4227_EDC_MODE_SR << 1) | 0x1;
 		ret_val = hw->phy.ops.write_reg(hw, reg_slice,
 					 IXGBE_MDIO_ZERO_DEV_TYPE, reg_phy_ext);
+		if (ret_val != IXGBE_SUCCESS)
+			return ret_val;
 
 		/* Flush previous write with a read */
 		ret_val = hw->phy.ops.read_reg(hw, reg_slice,
@@ -4207,6 +4213,8 @@
 	status = hw->mac.ops.write_iosf_sb_reg(hw,
 					IXGBE_KRM_AN_CNTL_1(hw->bus.lan_id),
 					IXGBE_SB_IOSF_TARGET_KR_PHY, an_cntl);
+	if (status != IXGBE_SUCCESS)
+		return status;
 
 	/* Restart auto-negotiation. */
 	status = ixgbe_restart_an_internal_phy_x550em(hw);