提交 ed199fac 编写于 作者: M Matt Carlson 提交者: David S. Miller

tg3: Restrict phy ioctl access

If management firmware is present and the device is down, the firmware
will assume control of the phy.  If a phy access were allowed from the
host, it will collide with firmware phy accesses, resulting in
unpredictable behavior.  This patch fixes the problem by disallowing phy
accesses during the problematic condition.
Signed-off-by: NMatt Carlson <mcarlson@broadcom.com>
Reviewed-by: NMichael Chan <mchan@broadcom.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 0d672e9f
......@@ -11158,7 +11158,9 @@ static int tg3_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
if (tp->phy_flags & TG3_PHYFLG_PHY_SERDES)
break; /* We have no PHY */
if (tp->phy_flags & TG3_PHYFLG_IS_LOW_POWER)
if ((tp->phy_flags & TG3_PHYFLG_IS_LOW_POWER) ||
((tp->tg3_flags & TG3_FLAG_ENABLE_ASF) &&
!netif_running(dev)))
return -EAGAIN;
spin_lock_bh(&tp->lock);
......@@ -11174,7 +11176,9 @@ static int tg3_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
if (tp->phy_flags & TG3_PHYFLG_PHY_SERDES)
break; /* We have no PHY */
if (tp->phy_flags & TG3_PHYFLG_IS_LOW_POWER)
if ((tp->phy_flags & TG3_PHYFLG_IS_LOW_POWER) ||
((tp->tg3_flags & TG3_FLAG_ENABLE_ASF) &&
!netif_running(dev)))
return -EAGAIN;
spin_lock_bh(&tp->lock);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册