diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac.h b/drivers/net/ethernet/stmicro/stmmac/stmmac.h index f9d80fc00cb8..2bb3f1adbb61 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac.h +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac.h @@ -329,6 +329,7 @@ struct stmmac_priv { char int_name_mac[IFNAMSIZ + 9]; char int_name_wol[IFNAMSIZ + 9]; char int_name_lpi[IFNAMSIZ + 9]; + char int_name_sfty[IFNAMSIZ + 10]; char int_name_sfty_ce[IFNAMSIZ + 10]; char int_name_sfty_ue[IFNAMSIZ + 10]; char int_name_rx_irq[MTL_MAX_TX_QUEUES][IFNAMSIZ + 14]; diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index e49b1306b338..93439a14378f 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -3539,11 +3539,13 @@ static int stmmac_request_irq_multi_msi(struct net_device *dev) * Error line in case of another line is used */ if (priv->sfty_irq > 0 && priv->sfty_irq != dev->irq) { + int_name = priv->int_name_sfty; + sprintf(int_name, "%s:%s", dev->name, "safety"); ret = request_irq(priv->sfty_irq, stmmac_safety_interrupt, - 0, dev->name, dev); + 0, int_name, dev); if (unlikely(ret < 0)) { netdev_err(priv->dev, - "%s: alloc safety failed %d (error: %d)\n", + "%s: alloc sfty MSI %d (error: %d)\n", __func__, priv->sfty_irq, ret); irq_err = REQ_IRQ_ERR_SFTY; goto irq_error; @@ -3692,10 +3694,10 @@ static int stmmac_request_irq_single(struct net_device *dev) */ if (priv->sfty_irq > 0 && priv->sfty_irq != dev->irq) { ret = request_irq(priv->sfty_irq, stmmac_safety_interrupt, - 0, dev->name, dev); + IRQF_SHARED, dev->name, dev); if (unlikely(ret < 0)) { netdev_err(priv->dev, - "%s: alloc safety failed %d (error: %d)\n", + "%s: ERROR: allocating the sfty IRQ %d (%d)\n", __func__, priv->sfty_irq, ret); irq_err = REQ_IRQ_ERR_SFTY; goto irq_error;