lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 14 Oct 2008 12:56:05 -0700 From: Jeff Kirsher <jeffrey.t.kirsher@...el.com> To: davem@...emloft.net, jeff@...zik.org Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org, Alexander Duyck <alexander.h.duyck@...el.com>, Jeff Kirsher <jeffrey.t.kirsher@...el.com>, Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@...el.com> Subject: [PATCH 6/6] DCB: setting pg will cause tx unit hangs From: Alexander Duyck <alexander.h.duyck@...el.com> This patch fixes a hang in the ixgbe driver that occured when setting the Data Center Bridging (DCB) settings. Signed-off-by: Alexander Duyck <alexander.h.duyck@...el.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@...el.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@...el.com> --- drivers/net/ixgbe/ixgbe_dcb_nl.c | 16 ++++++++++------ 1 files changed, 10 insertions(+), 6 deletions(-) diff --git a/drivers/net/ixgbe/ixgbe_dcb_nl.c b/drivers/net/ixgbe/ixgbe_dcb_nl.c index 51d162d..615c280 100644 --- a/drivers/net/ixgbe/ixgbe_dcb_nl.c +++ b/drivers/net/ixgbe/ixgbe_dcb_nl.c @@ -135,7 +135,7 @@ static void ixgbe_dcbnl_set_state(struct net_device *netdev, u8 state) if (adapter->flags & IXGBE_FLAG_DCB_ENABLED) { return; } else { - if (netdev->flags & IFF_UP) + if (netif_running(netdev)) netdev->stop(netdev); ixgbe_reset_interrupt_capability(adapter); ixgbe_napi_del_all(adapter); @@ -149,13 +149,13 @@ static void ixgbe_dcbnl_set_state(struct net_device *netdev, u8 state) adapter->flags |= IXGBE_FLAG_DCB_ENABLED; ixgbe_init_interrupt_scheme(adapter); ixgbe_napi_add_all(adapter); - if (netdev->flags & IFF_UP) + if (netif_running(netdev)) netdev->open(netdev); } } else { /* Turn off DCB */ if (adapter->flags & IXGBE_FLAG_DCB_ENABLED) { - if (netdev->flags & IFF_UP) + if (netif_running(netdev)) netdev->stop(netdev); ixgbe_reset_interrupt_capability(adapter); ixgbe_napi_del_all(adapter); @@ -169,7 +169,7 @@ static void ixgbe_dcbnl_set_state(struct net_device *netdev, u8 state) adapter->flags |= IXGBE_FLAG_RSS_ENABLED; ixgbe_init_interrupt_scheme(adapter); ixgbe_napi_add_all(adapter); - if (netdev->flags & IFF_UP) + if (netif_running(netdev)) netdev->open(netdev); } else { return; @@ -338,6 +338,9 @@ static u8 ixgbe_dcbnl_set_all(struct net_device *netdev) while (test_and_set_bit(__IXGBE_RESETTING, &adapter->state)) msleep(1); + if (netif_running(netdev)) + ixgbe_down(adapter); + ret = ixgbe_copy_dcb_cfg(&adapter->temp_dcb_cfg, &adapter->dcb_cfg, adapter->ring_feature[RING_F_DCB].indices); if (ret) { @@ -345,8 +348,9 @@ static u8 ixgbe_dcbnl_set_all(struct net_device *netdev) return ret; } - ixgbe_down(adapter); - ixgbe_up(adapter); + if (netif_running(netdev)) + ixgbe_up(adapter); + adapter->dcb_set_bitmap = 0x00; clear_bit(__IXGBE_RESETTING, &adapter->state); return ret; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists