I see two issues with parameter new_link: 1. It's not needed. See also phy_interrupt(), works w/o this parameter. phy_mac_interrupt sets the state to PHY_CHANGELINK and triggers the state machine which then calls phy_read_status. And phy_read_status updates the link state.
2. phy_mac_interrupt is used in interrupt context and getting the link state may sleep (at least when having to access the PHY registers via MDIO bus). bcmgenet driver so far is the only user, therefore changing the API has minimal impact. Heiner Kallweit (2): net: phy: remove parameter new_link from phy_mac_interrupt() net: bcmgenet: remove parameter new_link from phy_mac_interrupt() drivers/net/ethernet/broadcom/genet/bcmgenet.c | 7 ++++--- drivers/net/phy/phy.c | 10 +++------- include/linux/phy.h | 2 +- 3 files changed, 8 insertions(+), 11 deletions(-) -- 2.15.1