# DF-3725 — Dropped write/return statuses across X550 link/FC setup: failed hardware writes reported as success

**File:** `sys/dev/netif/ix/ixgbe_x550.c` (five instances) **Severity:** Info **Confidence:** certain (DF-3671 family)

| Line | Function | Dropped status |
|---|---|---|
| 4207-4212 | `ixgbe_setup_fc_backplane_x550em_a` | AN-cntl **write** result overwritten by `ixgbe_restart_an_internal_phy_x550em()` → a failed flow-control advertisement write is returned as success |
| 2697-2702 | `ixgbe_setup_sfi_x550a` | FLX_MASK_ST20 write result overwritten by the restart call |
| 2802-2806 | `ixgbe_setup_mac_link_sfp_x550a` | CS4227 LINE mode **write** result masked by the "flush" read |
| 1812-1814 | `ixgbe_setup_sgmii_fw` | `rc = ixgbe_restart_an_internal_phy_x550em()` computed and ignored; setup_link_speed result returned instead |
| 2644 | `ixgbe_setup_mac_link_sfp_x550em` | `ixgbe_setup_kr_speed_x550em()` return fully ignored |

Effect: a write that failed (semaphore timeout, IOSF completion error, MDIO
fault) is invisible to the caller — the driver proceeds believing the link/FC
config was programmed. No kernel memory unsafety; misconfiguration/DoS-grade
at most, physical-trigger (link event, cable insert). Upstream-identical code
(Linux master, FreeBSD head).

`fix.diff` propagates the four droppable statuses (compile-validated on guest
`/usr/src`, `-Werror`, `DF-3725_make_rc=0` — see ../DF-3724/fix_build.log).
Not runtime-verifiable: guest has no X550 (../DF-3723/env.txt).
