* [net-next 0/6 v2][pull request] Intel Wired LAN Driver Updates @ 2011-12-05 8:20 Jeff Kirsher 2011-12-05 8:20 ` [net-next 1/6] e1000e: Avoid wrong check on TX hang Jeff Kirsher ` (6 more replies) 0 siblings, 7 replies; 19+ messages in thread From: Jeff Kirsher @ 2011-12-05 8:20 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann The following series contains updates to e1000e, igb and ixgbe. 5 of the patches are bug fixes and one patch is to cleanup a function prototype of a non-existent function. -v2 fix up patch 1 based on David Miller's suggestion fix up patch 5 so that the tested-by is in the correct place The following are changes since commit 340e8dc1fb4032b6c8334c9bff20b2aec42ecfd8: atm: clip: Remove code commented out since eternity. and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Bruce Allan (1): e1000e: hitting BUG_ON() from napi_enable Greg Rose (1): ixgbe: Remove function prototype for non-existent function Jeff Kirsher (1): e1000e: Avoid wrong check on TX hang John Fastabend (2): ixgbe: DCBnl set_all, order of operations fix ixgbe: DCB: IEEE transitions may fail to reprogram hardware. Matthew Vick (1): igb: Update DMA Coalescing threshold calculation. drivers/net/ethernet/intel/e1000e/e1000.h | 1 + drivers/net/ethernet/intel/e1000e/netdev.c | 27 +++++- drivers/net/ethernet/intel/igb/igb_main.c | 26 +++++-- drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 96 +++++++++-------------- drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h | 1 - 5 files changed, 80 insertions(+), 71 deletions(-) -- 1.7.6.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [net-next 1/6] e1000e: Avoid wrong check on TX hang 2011-12-05 8:20 [net-next 0/6 v2][pull request] Intel Wired LAN Driver Updates Jeff Kirsher @ 2011-12-05 8:20 ` Jeff Kirsher 2011-12-05 8:37 ` Michael Wang 2011-12-05 8:20 ` [net-next 2/6] e1000e: hitting BUG_ON() from napi_enable Jeff Kirsher ` (5 subsequent siblings) 6 siblings, 1 reply; 19+ messages in thread From: Jeff Kirsher @ 2011-12-05 8:20 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann, Michael Wang, Flavio Leitner Based on the original patch submitted my Michael Wang <wangyun@linux.vnet.ibm.com>. Descriptors may not be write-back while checking TX hang with flag FLAG2_DMA_BURST on. So when we detect hang, we just flush the descriptor and detect again for once. -v2 change 1 to true and 0 to false and remove extra () CC: Michael Wang <wangyun@linux.vnet.ibm.com> CC: Flavio Leitner <fbl@redhat.com> Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/e1000e/e1000.h | 1 + drivers/net/ethernet/intel/e1000e/netdev.c | 23 ++++++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/e1000.h b/drivers/net/ethernet/intel/e1000e/e1000.h index 9fe18d1..f478a22 100644 --- a/drivers/net/ethernet/intel/e1000e/e1000.h +++ b/drivers/net/ethernet/intel/e1000e/e1000.h @@ -309,6 +309,7 @@ struct e1000_adapter { u32 txd_cmd; bool detect_tx_hung; + bool tx_hang_recheck; u8 tx_timeout_factor; u32 tx_int_delay; diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index c6e9763..c12df69 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c @@ -1014,6 +1014,7 @@ static void e1000_print_hw_hang(struct work_struct *work) struct e1000_adapter *adapter = container_of(work, struct e1000_adapter, print_hang_task); + struct net_device *netdev = adapter->netdev; struct e1000_ring *tx_ring = adapter->tx_ring; unsigned int i = tx_ring->next_to_clean; unsigned int eop = tx_ring->buffer_info[i].next_to_watch; @@ -1025,6 +1026,21 @@ static void e1000_print_hw_hang(struct work_struct *work) if (test_bit(__E1000_DOWN, &adapter->state)) return; + if (!adapter->tx_hang_recheck && + (adapter->flags2 & FLAG2_DMA_BURST)) { + /* May be block on write-back, flush and detect again + * flush pending descriptor writebacks to memory + */ + ew32(TIDV, adapter->tx_int_delay | E1000_TIDV_FPD); + /* execute the writes immediately */ + e1e_flush(); + adapter->tx_hang_recheck = true; + return; + } + /* Real hang detected */ + adapter->tx_hang_recheck = false; + netif_stop_queue(netdev); + e1e_rphy(hw, PHY_STATUS, &phy_status); e1e_rphy(hw, PHY_1000T_STATUS, &phy_1000t_status); e1e_rphy(hw, PHY_EXT_STATUS, &phy_ext_status); @@ -1145,10 +1161,10 @@ static bool e1000_clean_tx_irq(struct e1000_adapter *adapter) if (tx_ring->buffer_info[i].time_stamp && time_after(jiffies, tx_ring->buffer_info[i].time_stamp + (adapter->tx_timeout_factor * HZ)) && - !(er32(STATUS) & E1000_STATUS_TXOFF)) { + !(er32(STATUS) & E1000_STATUS_TXOFF)) schedule_work(&adapter->print_hang_task); - netif_stop_queue(netdev); - } + else + adapter->tx_hang_recheck = false; } adapter->total_tx_bytes += total_tx_bytes; adapter->total_tx_packets += total_tx_packets; @@ -3838,6 +3854,7 @@ static int e1000_open(struct net_device *netdev) e1000_irq_enable(adapter); + adapter->tx_hang_recheck = false; netif_start_queue(netdev); adapter->idle_check = true; -- 1.7.6.4 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [net-next 1/6] e1000e: Avoid wrong check on TX hang 2011-12-05 8:20 ` [net-next 1/6] e1000e: Avoid wrong check on TX hang Jeff Kirsher @ 2011-12-05 8:37 ` Michael Wang 2011-12-05 13:49 ` Flavio Leitner 0 siblings, 1 reply; 19+ messages in thread From: Michael Wang @ 2011-12-05 8:37 UTC (permalink / raw) To: Jeff Kirsher; +Cc: davem, netdev, gospo, sassmann, Flavio Leitner Hi, Jeff Please reserve "From: Michael Wang <wangyun@linux.vnet.ibm.com>" in content. And because Flavio not respond these days, I add his name for him. Thanks, Michael Wang On 12/05/2011 04:20 PM, Jeff Kirsher wrote: > Based on the original patch submitted my Michael Wang > <wangyun@linux.vnet.ibm.com>. From: Michael Wang <wangyun@linux.vnet.ibm.com> > Descriptors may not be write-back while checking TX hang with flag > FLAG2_DMA_BURST on. > So when we detect hang, we just flush the descriptor and detect > again for once. > > -v2 change 1 to true and 0 to false and remove extra () > > CC: Michael Wang <wangyun@linux.vnet.ibm.com> > CC: Flavio Leitner <fbl@redhat.com> Signed-off-by: Michael Wang <wangyun@linux.vnet.ibm.com> Signed-off-by: Flavio Leitner <fbl@redhat.com> > Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com> > Tested-by: Aaron Brown <aaron.f.brown@intel.com> > Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> > --- > drivers/net/ethernet/intel/e1000e/e1000.h | 1 + > drivers/net/ethernet/intel/e1000e/netdev.c | 23 ++++++++++++++++++++--- > 2 files changed, 21 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/ethernet/intel/e1000e/e1000.h b/drivers/net/ethernet/intel/e1000e/e1000.h > index 9fe18d1..f478a22 100644 > --- a/drivers/net/ethernet/intel/e1000e/e1000.h > +++ b/drivers/net/ethernet/intel/e1000e/e1000.h > @@ -309,6 +309,7 @@ struct e1000_adapter { > u32 txd_cmd; > > bool detect_tx_hung; > + bool tx_hang_recheck; > u8 tx_timeout_factor; > > u32 tx_int_delay; > diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c > index c6e9763..c12df69 100644 > --- a/drivers/net/ethernet/intel/e1000e/netdev.c > +++ b/drivers/net/ethernet/intel/e1000e/netdev.c > @@ -1014,6 +1014,7 @@ static void e1000_print_hw_hang(struct work_struct *work) > struct e1000_adapter *adapter = container_of(work, > struct e1000_adapter, > print_hang_task); > + struct net_device *netdev = adapter->netdev; > struct e1000_ring *tx_ring = adapter->tx_ring; > unsigned int i = tx_ring->next_to_clean; > unsigned int eop = tx_ring->buffer_info[i].next_to_watch; > @@ -1025,6 +1026,21 @@ static void e1000_print_hw_hang(struct work_struct *work) > if (test_bit(__E1000_DOWN, &adapter->state)) > return; > > + if (!adapter->tx_hang_recheck && > + (adapter->flags2 & FLAG2_DMA_BURST)) { > + /* May be block on write-back, flush and detect again > + * flush pending descriptor writebacks to memory > + */ > + ew32(TIDV, adapter->tx_int_delay | E1000_TIDV_FPD); > + /* execute the writes immediately */ > + e1e_flush(); > + adapter->tx_hang_recheck = true; > + return; > + } > + /* Real hang detected */ > + adapter->tx_hang_recheck = false; > + netif_stop_queue(netdev); > + > e1e_rphy(hw, PHY_STATUS, &phy_status); > e1e_rphy(hw, PHY_1000T_STATUS, &phy_1000t_status); > e1e_rphy(hw, PHY_EXT_STATUS, &phy_ext_status); > @@ -1145,10 +1161,10 @@ static bool e1000_clean_tx_irq(struct e1000_adapter *adapter) > if (tx_ring->buffer_info[i].time_stamp && > time_after(jiffies, tx_ring->buffer_info[i].time_stamp > + (adapter->tx_timeout_factor * HZ)) && > - !(er32(STATUS) & E1000_STATUS_TXOFF)) { > + !(er32(STATUS) & E1000_STATUS_TXOFF)) > schedule_work(&adapter->print_hang_task); > - netif_stop_queue(netdev); > - } > + else > + adapter->tx_hang_recheck = false; > } > adapter->total_tx_bytes += total_tx_bytes; > adapter->total_tx_packets += total_tx_packets; > @@ -3838,6 +3854,7 @@ static int e1000_open(struct net_device *netdev) > > e1000_irq_enable(adapter); > > + adapter->tx_hang_recheck = false; > netif_start_queue(netdev); > > adapter->idle_check = true; ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [net-next 1/6] e1000e: Avoid wrong check on TX hang 2011-12-05 8:37 ` Michael Wang @ 2011-12-05 13:49 ` Flavio Leitner 0 siblings, 0 replies; 19+ messages in thread From: Flavio Leitner @ 2011-12-05 13:49 UTC (permalink / raw) To: Michael Wang; +Cc: Jeff Kirsher, davem, netdev, gospo, sassmann On Mon, 05 Dec 2011 16:37:02 +0800 Michael Wang <wangyun@linux.vnet.ibm.com> wrote: > Hi, Jeff > > Please reserve "From: Michael Wang <wangyun@linux.vnet.ibm.com>" in > content. And because Flavio not respond these days, I add his name > for him. > > Thanks, > Michael Wang > > On 12/05/2011 04:20 PM, Jeff Kirsher wrote: > > > Based on the original patch submitted my Michael Wang > > <wangyun@linux.vnet.ibm.com>. > > From: Michael Wang <wangyun@linux.vnet.ibm.com> > > > Descriptors may not be write-back while checking TX hang with flag > > FLAG2_DMA_BURST on. > > So when we detect hang, we just flush the descriptor and detect > > again for once. > > > > -v2 change 1 to true and 0 to false and remove extra () > > > > CC: Michael Wang <wangyun@linux.vnet.ibm.com> > > CC: Flavio Leitner <fbl@redhat.com> > > Signed-off-by: Michael Wang <wangyun@linux.vnet.ibm.com> Agree with the fixes. thanks, Signed-off-by: Flavio Leitner <fbl@redhat.com> ^ permalink raw reply [flat|nested] 19+ messages in thread
* [net-next 2/6] e1000e: hitting BUG_ON() from napi_enable 2011-12-05 8:20 [net-next 0/6 v2][pull request] Intel Wired LAN Driver Updates Jeff Kirsher 2011-12-05 8:20 ` [net-next 1/6] e1000e: Avoid wrong check on TX hang Jeff Kirsher @ 2011-12-05 8:20 ` Jeff Kirsher 2011-12-05 8:20 ` [net-next 3/6] igb: Update DMA Coalescing threshold calculation Jeff Kirsher ` (4 subsequent siblings) 6 siblings, 0 replies; 19+ messages in thread From: Jeff Kirsher @ 2011-12-05 8:20 UTC (permalink / raw) To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Mike McElroy, Jeff Kirsher From: Bruce Allan <bruce.w.allan@intel.com> Based on a patch from Mike McElroy created against the out-of-tree e1000e driver: Hitting the BUG_ON in napi_enable(). Code inspection shows that this can only be triggered by calling napi_enable() twice without an intervening napi_disable(). I saw the following sequence of events in the stack trace: 1) We simulated a cable pull using an Extreme switch. 2) e1000_tx_timeout() was entered. 3) e1000_reset_task() was called. Saw the message from e_err() in the console log. 4) e1000_reinit_locked was called. This function calls e1000_down() and e1000_up(). These functions call napi_disable() and napi_enable() respectively. 5) Then on another thread, a monitor task saw carrier was down and executed 'ip set link down' and 'ip set link up' commands. 6) Saw the '_E1000_RESETTING'warning fron the e1000_close function. 7) Either the e1000_open() executed between the e1000_down() and e1000_up() calls in step 4 or the e1000_open() call executed after the e1000_up() call. In either case, napi_enable() is called twice which triggers the BUG_ON. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Cc: Mike McElroy <mike.mcelroy@stratus.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/e1000e/netdev.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index c12df69..93ae0c2 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c @@ -3516,7 +3516,6 @@ int e1000e_up(struct e1000_adapter *adapter) clear_bit(__E1000_DOWN, &adapter->state); - napi_enable(&adapter->napi); if (adapter->msix_entries) e1000_configure_msix(adapter); e1000_irq_enable(adapter); @@ -3578,7 +3577,6 @@ void e1000e_down(struct e1000_adapter *adapter) e1e_flush(); usleep_range(10000, 20000); - napi_disable(&adapter->napi); e1000_irq_disable(adapter); del_timer_sync(&adapter->watchdog_timer); @@ -3901,6 +3899,8 @@ static int e1000_close(struct net_device *netdev) pm_runtime_get_sync(&pdev->dev); + napi_disable(&adapter->napi); + if (!test_bit(__E1000_DOWN, &adapter->state)) { e1000e_down(adapter); e1000_free_irq(adapter); -- 1.7.6.4 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [net-next 3/6] igb: Update DMA Coalescing threshold calculation. 2011-12-05 8:20 [net-next 0/6 v2][pull request] Intel Wired LAN Driver Updates Jeff Kirsher 2011-12-05 8:20 ` [net-next 1/6] e1000e: Avoid wrong check on TX hang Jeff Kirsher 2011-12-05 8:20 ` [net-next 2/6] e1000e: hitting BUG_ON() from napi_enable Jeff Kirsher @ 2011-12-05 8:20 ` Jeff Kirsher 2011-12-05 8:20 ` [net-next 4/6] ixgbe: DCBnl set_all, order of operations fix Jeff Kirsher ` (3 subsequent siblings) 6 siblings, 0 replies; 19+ messages in thread From: Jeff Kirsher @ 2011-12-05 8:20 UTC (permalink / raw) To: davem; +Cc: Matthew Vick, netdev, gospo, sassmann, Jeff Kirsher From: Matthew Vick <matthew.vick@intel.com> This patch updates the DMA Coalescing feature parameters to account for larger MTUs. Previously, sufficient space may not have been allocated in the receive buffer, causing packet drop. Signed-off-by: Matthew Vick <matthew.vick@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/igb/igb_main.c | 26 +++++++++++++++++++------- 1 files changed, 19 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index b66b8aa..143cfeb 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -7061,15 +7061,28 @@ static void igb_init_dmac(struct igb_adapter *adapter, u32 pba) wr32(E1000_DMCTXTH, 0); /* - * DMA Coalescing high water mark needs to be higher - * than the RX threshold. set hwm to PBA - 2 * max - * frame size + * DMA Coalescing high water mark needs to be greater + * than the Rx threshold. Set hwm to PBA - max frame + * size in 16B units, capping it at PBA - 6KB. */ - hwm = pba - (2 * adapter->max_frame_size); + hwm = 64 * pba - adapter->max_frame_size / 16; + if (hwm < 64 * (pba - 6)) + hwm = 64 * (pba - 6); + reg = rd32(E1000_FCRTC); + reg &= ~E1000_FCRTC_RTH_COAL_MASK; + reg |= ((hwm << E1000_FCRTC_RTH_COAL_SHIFT) + & E1000_FCRTC_RTH_COAL_MASK); + wr32(E1000_FCRTC, reg); + + /* + * Set the DMA Coalescing Rx threshold to PBA - 2 * max + * frame size, capping it at PBA - 10KB. + */ + dmac_thr = pba - adapter->max_frame_size / 512; + if (dmac_thr < pba - 10) + dmac_thr = pba - 10; reg = rd32(E1000_DMACR); reg &= ~E1000_DMACR_DMACTHR_MASK; - dmac_thr = pba - 4; - reg |= ((dmac_thr << E1000_DMACR_DMACTHR_SHIFT) & E1000_DMACR_DMACTHR_MASK); @@ -7085,7 +7098,6 @@ static void igb_init_dmac(struct igb_adapter *adapter, u32 pba) * coalescing(smart fifb)-UTRESH=0 */ wr32(E1000_DMCRTRH, 0); - wr32(E1000_FCRTC, hwm); reg = (IGB_DMCTLX_DCFLUSH_DIS | 0x4); -- 1.7.6.4 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [net-next 4/6] ixgbe: DCBnl set_all, order of operations fix 2011-12-05 8:20 [net-next 0/6 v2][pull request] Intel Wired LAN Driver Updates Jeff Kirsher ` (2 preceding siblings ...) 2011-12-05 8:20 ` [net-next 3/6] igb: Update DMA Coalescing threshold calculation Jeff Kirsher @ 2011-12-05 8:20 ` Jeff Kirsher 2011-12-05 8:20 ` [net-next 5/6] ixgbe: DCB: IEEE transitions may fail to reprogram hardware Jeff Kirsher ` (2 subsequent siblings) 6 siblings, 0 replies; 19+ messages in thread From: Jeff Kirsher @ 2011-12-05 8:20 UTC (permalink / raw) To: davem; +Cc: John Fastabend, netdev, gospo, sassmann, Jeff Kirsher From: John Fastabend <john.r.fastabend@intel.com> The order of operations is important in DCBnl set_all(). When FCoE is configured it uses the up2tc map to learn which queues to configure the hardware offloads on. Therefore we need to setup the map before configuring FCoE. This is only seen when the both up2tc mappings and APP info are configured simultaneously. Signed-off-by: John Fastabend <john.r.fastabend@intel.com> Tested-by: Ross Brattain <ross.b.brattain@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 77 +++++++++-------------- 1 files changed, 29 insertions(+), 48 deletions(-) diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c index 33b93ff..8c056c0 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c @@ -309,6 +309,27 @@ static void ixgbe_dcbnl_get_pfc_cfg(struct net_device *netdev, int priority, *setting = adapter->dcb_cfg.tc_config[priority].dcb_pfc; } +#ifdef IXGBE_FCOE +static void ixgbe_dcbnl_devreset(struct net_device *dev) +{ + struct ixgbe_adapter *adapter = netdev_priv(dev); + + while (test_and_set_bit(__IXGBE_RESETTING, &adapter->state)) + usleep_range(1000, 2000); + + if (netif_running(dev)) + dev->netdev_ops->ndo_stop(dev); + + ixgbe_clear_interrupt_scheme(adapter); + ixgbe_init_interrupt_scheme(adapter); + + if (netif_running(dev)) + dev->netdev_ops->ndo_open(dev); + + clear_bit(__IXGBE_RESETTING, &adapter->state); +} +#endif + static u8 ixgbe_dcbnl_set_all(struct net_device *netdev) { struct ixgbe_adapter *adapter = netdev_priv(netdev); @@ -338,27 +359,6 @@ static u8 ixgbe_dcbnl_set_all(struct net_device *netdev) if (ret) return DCB_NO_HW_CHG; -#ifdef IXGBE_FCOE - if (up && !(up & (1 << adapter->fcoe.up))) - adapter->dcb_set_bitmap |= BIT_APP_UPCHG; - - /* - * Only take down the adapter if an app change occurred. FCoE - * may shuffle tx rings in this case and this can not be done - * without a reset currently. - */ - if (adapter->dcb_set_bitmap & BIT_APP_UPCHG) { - while (test_and_set_bit(__IXGBE_RESETTING, &adapter->state)) - usleep_range(1000, 2000); - - adapter->fcoe.up = ffs(up) - 1; - - if (netif_running(netdev)) - netdev->netdev_ops->ndo_stop(netdev); - ixgbe_clear_interrupt_scheme(adapter); - } -#endif - if (adapter->dcb_cfg.pfc_mode_enable) { switch (adapter->hw.mac.type) { case ixgbe_mac_82599EB: @@ -385,15 +385,6 @@ static u8 ixgbe_dcbnl_set_all(struct net_device *netdev) } } -#ifdef IXGBE_FCOE - if (adapter->dcb_set_bitmap & BIT_APP_UPCHG) { - ixgbe_init_interrupt_scheme(adapter); - if (netif_running(netdev)) - netdev->netdev_ops->ndo_open(netdev); - ret = DCB_HW_CHG_RST; - } -#endif - if (adapter->dcb_set_bitmap & (BIT_PG_TX|BIT_PG_RX)) { u16 refill[MAX_TRAFFIC_CLASS], max[MAX_TRAFFIC_CLASS]; u8 bwg_id[MAX_TRAFFIC_CLASS], prio_type[MAX_TRAFFIC_CLASS]; @@ -442,8 +433,14 @@ static u8 ixgbe_dcbnl_set_all(struct net_device *netdev) if (adapter->dcb_cfg.pfc_mode_enable) adapter->hw.fc.current_mode = ixgbe_fc_pfc; - if (adapter->dcb_set_bitmap & BIT_APP_UPCHG) - clear_bit(__IXGBE_RESETTING, &adapter->state); +#ifdef IXGBE_FCOE + if (up && !(up & (1 << adapter->fcoe.up))) { + adapter->fcoe.up = ffs(up) - 1; + ixgbe_dcbnl_devreset(netdev); + ret = DCB_HW_CHG_RST; + } +#endif + adapter->dcb_set_bitmap = 0x00; return ret; } @@ -661,22 +658,6 @@ static int ixgbe_dcbnl_ieee_setpfc(struct net_device *dev, return ixgbe_dcb_hw_pfc_config(&adapter->hw, pfc->pfc_en, prio_tc); } -#ifdef IXGBE_FCOE -static void ixgbe_dcbnl_devreset(struct net_device *dev) -{ - struct ixgbe_adapter *adapter = netdev_priv(dev); - - if (netif_running(dev)) - dev->netdev_ops->ndo_stop(dev); - - ixgbe_clear_interrupt_scheme(adapter); - ixgbe_init_interrupt_scheme(adapter); - - if (netif_running(dev)) - dev->netdev_ops->ndo_open(dev); -} -#endif - static int ixgbe_dcbnl_ieee_setapp(struct net_device *dev, struct dcb_app *app) { -- 1.7.6.4 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [net-next 5/6] ixgbe: DCB: IEEE transitions may fail to reprogram hardware. 2011-12-05 8:20 [net-next 0/6 v2][pull request] Intel Wired LAN Driver Updates Jeff Kirsher ` (3 preceding siblings ...) 2011-12-05 8:20 ` [net-next 4/6] ixgbe: DCBnl set_all, order of operations fix Jeff Kirsher @ 2011-12-05 8:20 ` Jeff Kirsher 2011-12-05 8:20 ` [net-next 6/6] ixgbe: Remove function prototype for non-existent function Jeff Kirsher 2011-12-05 23:45 ` [net-next 0/6 v2][pull request] Intel Wired LAN Driver Updates David Miller 6 siblings, 0 replies; 19+ messages in thread From: Jeff Kirsher @ 2011-12-05 8:20 UTC (permalink / raw) To: davem; +Cc: John Fastabend, netdev, gospo, sassmann, Jeff Kirsher From: John Fastabend <john.r.fastabend@intel.com> Transitioning through an IEEE DCBX version from a CEE DCBX and back (CEE->IEEE->CEE) may leave IEEE attributes programmed in the hardware. DCB uses a bit field in the set routines to determine which attributes PG, PFC, APP need to be reprogrammed. This is needed because user flow allows queueing a series of changes and then reprogramming the hardware with the entire set in one operation. When transitioning from IEEE DCBX mode back into CEE DCBX mode the PG and PFC bits need to be set so the possibly different CEE attributes get programmed into the device. This patch fixes broken logic that was evaluating to 0 and never setting any bits. Further this removes some checks for num_tc in set routines. This logic only worked when the number of traffic classes and user priorities were equal. This is no longer the case for X540 devices. Besides we can trust user input in this case if the device is incorrectly configured the DCB bandwidths will be incorrectly mapped but no OOPs, BUG, or hardware failure will occur. Signed-off-by: John Fastabend <john.r.fastabend@intel.com> Tested-by: Ross Brattain <ross.b.brattain@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 21 ++++++++++----------- 1 files changed, 10 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c index 8c056c0..da31735 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c @@ -158,10 +158,6 @@ static void ixgbe_dcbnl_set_pg_tc_cfg_tx(struct net_device *netdev, int tc, { struct ixgbe_adapter *adapter = netdev_priv(netdev); - /* Abort a bad configuration */ - if (ffs(up_map) > adapter->dcb_cfg.num_tcs.pg_tcs) - return; - if (prio != DCB_ATTR_VALUE_UNDEFINED) adapter->temp_dcb_cfg.tc_config[tc].path[0].prio_type = prio; if (bwg_id != DCB_ATTR_VALUE_UNDEFINED) @@ -185,7 +181,7 @@ static void ixgbe_dcbnl_set_pg_tc_cfg_tx(struct net_device *netdev, int tc, if (adapter->temp_dcb_cfg.tc_config[tc].path[0].up_to_tc_bitmap != adapter->dcb_cfg.tc_config[tc].path[0].up_to_tc_bitmap) - adapter->dcb_set_bitmap |= BIT_PFC; + adapter->dcb_set_bitmap |= BIT_PFC | BIT_APP_UPCHG; } static void ixgbe_dcbnl_set_pg_bwg_cfg_tx(struct net_device *netdev, int bwg_id, @@ -206,10 +202,6 @@ static void ixgbe_dcbnl_set_pg_tc_cfg_rx(struct net_device *netdev, int tc, { struct ixgbe_adapter *adapter = netdev_priv(netdev); - /* Abort bad configurations */ - if (ffs(up_map) > adapter->dcb_cfg.num_tcs.pg_tcs) - return; - if (prio != DCB_ATTR_VALUE_UNDEFINED) adapter->temp_dcb_cfg.tc_config[tc].path[1].prio_type = prio; if (bwg_id != DCB_ATTR_VALUE_UNDEFINED) @@ -434,7 +426,12 @@ static u8 ixgbe_dcbnl_set_all(struct net_device *netdev) adapter->hw.fc.current_mode = ixgbe_fc_pfc; #ifdef IXGBE_FCOE - if (up && !(up & (1 << adapter->fcoe.up))) { + /* Reprogam FCoE hardware offloads when the traffic class + * FCoE is using changes. This happens if the APP info + * changes or the up2tc mapping is updated. + */ + if ((up && !(up & (1 << adapter->fcoe.up))) || + (adapter->dcb_set_bitmap & BIT_APP_UPCHG)) { adapter->fcoe.up = ffs(up) - 1; ixgbe_dcbnl_devreset(netdev); ret = DCB_HW_CHG_RST; @@ -742,7 +739,9 @@ static u8 ixgbe_dcbnl_setdcbx(struct net_device *dev, u8 mode) ixgbe_dcbnl_ieee_setets(dev, &ets); ixgbe_dcbnl_ieee_setpfc(dev, &pfc); } else if (mode & DCB_CAP_DCBX_VER_CEE) { - adapter->dcb_set_bitmap |= (BIT_PFC & BIT_PG_TX & BIT_PG_RX); + u8 mask = BIT_PFC | BIT_PG_TX | BIT_PG_RX | BIT_APP_UPCHG; + + adapter->dcb_set_bitmap |= mask; ixgbe_dcbnl_set_all(dev); } else { /* Drop into single TC mode strict priority as this -- 1.7.6.4 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [net-next 6/6] ixgbe: Remove function prototype for non-existent function 2011-12-05 8:20 [net-next 0/6 v2][pull request] Intel Wired LAN Driver Updates Jeff Kirsher ` (4 preceding siblings ...) 2011-12-05 8:20 ` [net-next 5/6] ixgbe: DCB: IEEE transitions may fail to reprogram hardware Jeff Kirsher @ 2011-12-05 8:20 ` Jeff Kirsher 2011-12-05 23:45 ` [net-next 0/6 v2][pull request] Intel Wired LAN Driver Updates David Miller 6 siblings, 0 replies; 19+ messages in thread From: Jeff Kirsher @ 2011-12-05 8:20 UTC (permalink / raw) To: davem; +Cc: Greg Rose, netdev, gospo, sassmann, Jeff Kirsher From: Greg Rose <gregory.v.rose@intel.com> Signed-off-by: Greg Rose <gregory.v.rose@intel.com> Tested-by: Sibai Li <sibai.li@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h index df04f1a..e8badab 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h @@ -33,7 +33,6 @@ void ixgbe_msg_task(struct ixgbe_adapter *adapter); int ixgbe_vf_configuration(struct pci_dev *pdev, unsigned int event_mask); void ixgbe_disable_tx_rx(struct ixgbe_adapter *adapter); void ixgbe_ping_all_vfs(struct ixgbe_adapter *adapter); -void ixgbe_dump_registers(struct ixgbe_adapter *adapter); int ixgbe_ndo_set_vf_mac(struct net_device *netdev, int queue, u8 *mac); int ixgbe_ndo_set_vf_vlan(struct net_device *netdev, int queue, u16 vlan, u8 qos); -- 1.7.6.4 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [net-next 0/6 v2][pull request] Intel Wired LAN Driver Updates 2011-12-05 8:20 [net-next 0/6 v2][pull request] Intel Wired LAN Driver Updates Jeff Kirsher ` (5 preceding siblings ...) 2011-12-05 8:20 ` [net-next 6/6] ixgbe: Remove function prototype for non-existent function Jeff Kirsher @ 2011-12-05 23:45 ` David Miller 6 siblings, 0 replies; 19+ messages in thread From: David Miller @ 2011-12-05 23:45 UTC (permalink / raw) To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Mon, 5 Dec 2011 00:20:35 -0800 > The following series contains updates to e1000e, igb and ixgbe. 5 of > the patches are bug fixes and one patch is to cleanup a function > prototype of a non-existent function. > > -v2 fix up patch 1 based on David Miller's suggestion > fix up patch 5 so that the tested-by is in the correct place > > The following are changes since commit 340e8dc1fb4032b6c8334c9bff20b2aec42ecfd8: > atm: clip: Remove code commented out since eternity. > and are available in the git repository at: > git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Pulled, thanks. ^ permalink raw reply [flat|nested] 19+ messages in thread
* [net-next 0/6][pull request] Intel Wired LAN Driver Updates @ 2011-12-03 11:44 Jeff Kirsher 2011-12-03 11:44 ` [net-next 1/6] e1000e: Avoid wrong check on TX hang Jeff Kirsher 0 siblings, 1 reply; 19+ messages in thread From: Jeff Kirsher @ 2011-12-03 11:44 UTC (permalink / raw) To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann The following series contains updates to e1000e, igb and ixgbe. 5 of the patches are bug fixes and one patch is to cleanup a function prototype of a non-existent function. The following are changes since commit 340e8dc1fb4032b6c8334c9bff20b2aec42ecfd8: atm: clip: Remove code commented out since eternity. and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master Bruce Allan (1): e1000e: hitting BUG_ON() from napi_enable Greg Rose (1): ixgbe: Remove function prototype for non-existent function John Fastabend (2): ixgbe: DCBnl set_all, order of operations fix ixgbe: DCB: IEEE transitions may fail to reprogram hardware. Matthew Vick (1): igb: Update DMA Coalescing threshold calculation. Michael Wang (1): e1000e: Avoid wrong check on TX hang drivers/net/ethernet/intel/e1000e/e1000.h | 1 + drivers/net/ethernet/intel/e1000e/netdev.c | 27 +++++- drivers/net/ethernet/intel/igb/igb_main.c | 26 +++++-- drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 96 +++++++++-------------- drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h | 1 - 5 files changed, 80 insertions(+), 71 deletions(-) -- 1.7.6.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [net-next 1/6] e1000e: Avoid wrong check on TX hang 2011-12-03 11:44 [net-next 0/6][pull " Jeff Kirsher @ 2011-12-03 11:44 ` Jeff Kirsher 2011-12-04 3:26 ` David Miller 0 siblings, 1 reply; 19+ messages in thread From: Jeff Kirsher @ 2011-12-03 11:44 UTC (permalink / raw) To: davem; +Cc: Michael Wang, netdev, gospo, sassmann, Flavio Leitner, Jeff Kirsher From: Michael Wang <wangyun@linux.vnet.ibm.com> Descriptors may not be write-back while checking TX hang with flag FLAG2_DMA_BURST on. So when we detect hang, we just flush the descriptor and detect again for once. Signed-off-by: Michael Wang <wangyun@linux.vnet.ibm.com> Signed-off-by: Flavio Leitner <fbl@redhat.com> Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- drivers/net/ethernet/intel/e1000e/e1000.h | 1 + drivers/net/ethernet/intel/e1000e/netdev.c | 23 ++++++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/e1000.h b/drivers/net/ethernet/intel/e1000e/e1000.h index 9fe18d1..f478a22 100644 --- a/drivers/net/ethernet/intel/e1000e/e1000.h +++ b/drivers/net/ethernet/intel/e1000e/e1000.h @@ -309,6 +309,7 @@ struct e1000_adapter { u32 txd_cmd; bool detect_tx_hung; + bool tx_hang_recheck; u8 tx_timeout_factor; u32 tx_int_delay; diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index c6e9763..3c12e6a 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c @@ -1014,6 +1014,7 @@ static void e1000_print_hw_hang(struct work_struct *work) struct e1000_adapter *adapter = container_of(work, struct e1000_adapter, print_hang_task); + struct net_device *netdev = adapter->netdev; struct e1000_ring *tx_ring = adapter->tx_ring; unsigned int i = tx_ring->next_to_clean; unsigned int eop = tx_ring->buffer_info[i].next_to_watch; @@ -1025,6 +1026,21 @@ static void e1000_print_hw_hang(struct work_struct *work) if (test_bit(__E1000_DOWN, &adapter->state)) return; + if ((!adapter->tx_hang_recheck) && + (adapter->flags2 & FLAG2_DMA_BURST)) { + /* May be block on write-back, flush and detect again + * flush pending descriptor writebacks to memory + */ + ew32(TIDV, adapter->tx_int_delay | E1000_TIDV_FPD); + /* execute the writes immediately */ + e1e_flush(); + adapter->tx_hang_recheck = 1; + return; + } + /* Real hang detected */ + adapter->tx_hang_recheck = 0; + netif_stop_queue(netdev); + e1e_rphy(hw, PHY_STATUS, &phy_status); e1e_rphy(hw, PHY_1000T_STATUS, &phy_1000t_status); e1e_rphy(hw, PHY_EXT_STATUS, &phy_ext_status); @@ -1145,10 +1161,10 @@ static bool e1000_clean_tx_irq(struct e1000_adapter *adapter) if (tx_ring->buffer_info[i].time_stamp && time_after(jiffies, tx_ring->buffer_info[i].time_stamp + (adapter->tx_timeout_factor * HZ)) && - !(er32(STATUS) & E1000_STATUS_TXOFF)) { + !(er32(STATUS) & E1000_STATUS_TXOFF)) schedule_work(&adapter->print_hang_task); - netif_stop_queue(netdev); - } + else + adapter->tx_hang_recheck = 0; } adapter->total_tx_bytes += total_tx_bytes; adapter->total_tx_packets += total_tx_packets; @@ -3838,6 +3854,7 @@ static int e1000_open(struct net_device *netdev) e1000_irq_enable(adapter); + adapter->tx_hang_recheck = 0; netif_start_queue(netdev); adapter->idle_check = true; -- 1.7.6.4 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [net-next 1/6] e1000e: Avoid wrong check on TX hang 2011-12-03 11:44 ` [net-next 1/6] e1000e: Avoid wrong check on TX hang Jeff Kirsher @ 2011-12-04 3:26 ` David Miller 2011-12-04 7:28 ` Jeff Kirsher 0 siblings, 1 reply; 19+ messages in thread From: David Miller @ 2011-12-04 3:26 UTC (permalink / raw) To: jeffrey.t.kirsher; +Cc: wangyun, netdev, gospo, sassmann, fbl From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Sat, 3 Dec 2011 03:44:26 -0800 > + if ((!adapter->tx_hang_recheck) && Excessive parenthesis, please remove. > + adapter->tx_hang_recheck = 1; This variable is a bool, set it to true or false. > + adapter->tx_hang_recheck = 0; Likewise. > + adapter->tx_hang_recheck = 0; Likewise. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [net-next 1/6] e1000e: Avoid wrong check on TX hang 2011-12-04 3:26 ` David Miller @ 2011-12-04 7:28 ` Jeff Kirsher 2011-12-05 1:05 ` Michael Wang 0 siblings, 1 reply; 19+ messages in thread From: Jeff Kirsher @ 2011-12-04 7:28 UTC (permalink / raw) To: Michael Wang, Flavio Leitner Cc: David Miller, netdev@vger.kernel.org, gospo@redhat.com, sassmann@redhat.com [-- Attachment #1: Type: text/plain, Size: 616 bytes --] On Sat, 2011-12-03 at 19:26 -0800, David Miller wrote: > From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> > Date: Sat, 3 Dec 2011 03:44:26 -0800 > > > + if ((!adapter->tx_hang_recheck) && > > Excessive parenthesis, please remove. > > > + adapter->tx_hang_recheck = 1; > > This variable is a bool, set it to true or false. > > > + adapter->tx_hang_recheck = 0; > > Likewise. > > > + adapter->tx_hang_recheck = 0; > > Likewise. Michael/Flavio - To expedite this patch, I can make the changes that Dave is requesting and re-submit v2 of the patch, if that is ok with you. -Jeff [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [net-next 1/6] e1000e: Avoid wrong check on TX hang 2011-12-04 7:28 ` Jeff Kirsher @ 2011-12-05 1:05 ` Michael Wang 2011-12-05 6:25 ` Jeff Kirsher 0 siblings, 1 reply; 19+ messages in thread From: Michael Wang @ 2011-12-05 1:05 UTC (permalink / raw) To: jeffrey.t.kirsher Cc: Flavio Leitner, David Miller, netdev@vger.kernel.org, gospo@redhat.com, sassmann@redhat.com On 12/04/2011 03:28 PM, Jeff Kirsher wrote: > On Sat, 2011-12-03 at 19:26 -0800, David Miller wrote: >> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> >> Date: Sat, 3 Dec 2011 03:44:26 -0800 >> >>> + if ((!adapter->tx_hang_recheck) && >> >> Excessive parenthesis, please remove. >> >>> + adapter->tx_hang_recheck = 1; >> >> This variable is a bool, set it to true or false. >> >>> + adapter->tx_hang_recheck = 0; >> >> Likewise. >> >>> + adapter->tx_hang_recheck = 0; >> >> Likewise. > > Michael/Flavio - > > To expedite this patch, I can make the changes that Dave is requesting > and re-submit v2 of the patch, if that is ok with you. > Hi, Jeff That's ok for me, I think it's good if you can work with Dave and make out a final version for us, if you want my help, please mail me at any time, I'm glad to work with you. Flavio: What's your opinion? Thanks, Michael Wang > -Jeff ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [net-next 1/6] e1000e: Avoid wrong check on TX hang 2011-12-05 1:05 ` Michael Wang @ 2011-12-05 6:25 ` Jeff Kirsher 2011-12-05 7:15 ` Michael Wang 0 siblings, 1 reply; 19+ messages in thread From: Jeff Kirsher @ 2011-12-05 6:25 UTC (permalink / raw) To: Michael Wang Cc: Flavio Leitner, David Miller, netdev@vger.kernel.org, gospo@redhat.com, sassmann@redhat.com [-- Attachment #1: Type: text/plain, Size: 1358 bytes --] On Sun, 2011-12-04 at 17:05 -0800, Michael Wang wrote: > On 12/04/2011 03:28 PM, Jeff Kirsher wrote: > > > On Sat, 2011-12-03 at 19:26 -0800, David Miller wrote: > >> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> > >> Date: Sat, 3 Dec 2011 03:44:26 -0800 > >> > >>> + if ((!adapter->tx_hang_recheck) && > >> > >> Excessive parenthesis, please remove. > >> > >>> + adapter->tx_hang_recheck = 1; > >> > >> This variable is a bool, set it to true or false. > >> > >>> + adapter->tx_hang_recheck = 0; > >> > >> Likewise. > >> > >>> + adapter->tx_hang_recheck = 0; > >> > >> Likewise. > > > > Michael/Flavio - > > > > To expedite this patch, I can make the changes that Dave is requesting > > and re-submit v2 of the patch, if that is ok with you. > > > > Hi, Jeff > > That's ok for me, I think it's good if you can work with Dave and make > out a final version for us, if you want my help, please mail me at any > time, I'm glad to work with you. > > Flavio: > What's your opinion? > > Thanks, > Michael Wang I have the patch read to push, so I will go ahead an push v2 out tonight. Since I am making changes to your patch, I will be removing your signed-off-by (and Flavio's) and keep you as a CC: so that you can verify the changes I have made to resolve the issues that Dave saw. Cheers, Jeff [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [net-next 1/6] e1000e: Avoid wrong check on TX hang 2011-12-05 6:25 ` Jeff Kirsher @ 2011-12-05 7:15 ` Michael Wang 2011-12-05 8:02 ` Jeff Kirsher 0 siblings, 1 reply; 19+ messages in thread From: Michael Wang @ 2011-12-05 7:15 UTC (permalink / raw) To: jeffrey.t.kirsher Cc: Flavio Leitner, David Miller, netdev@vger.kernel.org, gospo@redhat.com, sassmann@redhat.com On 12/05/2011 02:25 PM, Jeff Kirsher wrote: > On Sun, 2011-12-04 at 17:05 -0800, Michael Wang wrote: >> On 12/04/2011 03:28 PM, Jeff Kirsher wrote: >> >>> On Sat, 2011-12-03 at 19:26 -0800, David Miller wrote: >>>> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> >>>> Date: Sat, 3 Dec 2011 03:44:26 -0800 >>>> >>>>> + if ((!adapter->tx_hang_recheck) && >>>> >>>> Excessive parenthesis, please remove. >>>> >>>>> + adapter->tx_hang_recheck = 1; >>>> >>>> This variable is a bool, set it to true or false. >>>> >>>>> + adapter->tx_hang_recheck = 0; >>>> >>>> Likewise. >>>> >>>>> + adapter->tx_hang_recheck = 0; >>>> >>>> Likewise. >>> >>> Michael/Flavio - >>> >>> To expedite this patch, I can make the changes that Dave is requesting >>> and re-submit v2 of the patch, if that is ok with you. >>> >> >> Hi, Jeff >> >> That's ok for me, I think it's good if you can work with Dave and make >> out a final version for us, if you want my help, please mail me at any >> time, I'm glad to work with you. >> >> Flavio: >> What's your opinion? >> >> Thanks, >> Michael Wang > > I have the patch read to push, so I will go ahead an push v2 out > tonight. Since I am making changes to your patch, I will be removing > your signed-off-by (and Flavio's) and keep you as a CC: so that you can > verify the changes I have made to resolve the issues that Dave saw. > Hi, Jeff Is that means you have a better patch which different from ours, and you will use your patch to instead of ours? Because David is just ask for some small change, I think your time zone may be better to work with him, so I ask for your help. I was just confused that why our signed-off-by should be removed? Thanks, Michael Wang > Cheers, > Jeff ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [net-next 1/6] e1000e: Avoid wrong check on TX hang 2011-12-05 7:15 ` Michael Wang @ 2011-12-05 8:02 ` Jeff Kirsher 2011-12-05 8:18 ` Michael Wang 0 siblings, 1 reply; 19+ messages in thread From: Jeff Kirsher @ 2011-12-05 8:02 UTC (permalink / raw) To: Michael Wang Cc: Flavio Leitner, David Miller, netdev@vger.kernel.org, gospo@redhat.com, sassmann@redhat.com [-- Attachment #1: Type: text/plain, Size: 3212 bytes --] On Sun, 2011-12-04 at 23:15 -0800, Michael Wang wrote: > On 12/05/2011 02:25 PM, Jeff Kirsher wrote: > > > On Sun, 2011-12-04 at 17:05 -0800, Michael Wang wrote: > >> On 12/04/2011 03:28 PM, Jeff Kirsher wrote: > >> > >>> On Sat, 2011-12-03 at 19:26 -0800, David Miller wrote: > >>>> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> > >>>> Date: Sat, 3 Dec 2011 03:44:26 -0800 > >>>> > >>>>> + if ((!adapter->tx_hang_recheck) && > >>>> > >>>> Excessive parenthesis, please remove. > >>>> > >>>>> + adapter->tx_hang_recheck = 1; > >>>> > >>>> This variable is a bool, set it to true or false. > >>>> > >>>>> + adapter->tx_hang_recheck = 0; > >>>> > >>>> Likewise. > >>>> > >>>>> + adapter->tx_hang_recheck = 0; > >>>> > >>>> Likewise. > >>> > >>> Michael/Flavio - > >>> > >>> To expedite this patch, I can make the changes that Dave is requesting > >>> and re-submit v2 of the patch, if that is ok with you. > >>> > >> > >> Hi, Jeff > >> > >> That's ok for me, I think it's good if you can work with Dave and make > >> out a final version for us, if you want my help, please mail me at any > >> time, I'm glad to work with you. > >> > >> Flavio: > >> What's your opinion? > >> > >> Thanks, > >> Michael Wang > > > > I have the patch read to push, so I will go ahead an push v2 out > > tonight. Since I am making changes to your patch, I will be removing > > your signed-off-by (and Flavio's) and keep you as a CC: so that you can > > verify the changes I have made to resolve the issues that Dave saw. > > > > Hi, Jeff > > Is that means you have a better patch which different from ours, and you > will use your patch to instead of ours? > > Because David is just ask for some small change, I think your time zone > may be better to work with him, so I ask for your help. > > I was just confused that why our signed-off-by should be removed? > > Thanks, > Michael Wang > > > Cheers, > > Jeff It is your patch (your original work) but since I have made changes to your patch, I (or anyone for that matter) should not assume that you as the owner would signed off on the changes that I have made based on feedback. It would not be right for me to send out a patch with your signed-off-by which is different from what you originally submitted, without your ok. Once I send out the v2 of the patch, please feel free to add your signed-off-by OR acked-by to the patch. While I personally do not have a problem keeping you as the owner and your signed-off-by, I believe that takes in several assumptions which only you as the owner should speak for. I am not trying to take ownership for stats purposes, I care less about the number of patches I create and own and would rather make sure that the original owners get the credit due for the work they did. So with that, when I send out my next series of patches please feel free to ACK or Sign-off on the changes made. I just wanted to make sure that we get these changes in soon (with out delay). I can wait if you want to keep ownership of the patch, I just wanted to ensure that we get your patch included as soon as possible based on the problem it fixes. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [net-next 1/6] e1000e: Avoid wrong check on TX hang 2011-12-05 8:02 ` Jeff Kirsher @ 2011-12-05 8:18 ` Michael Wang 2011-12-05 8:24 ` Jeff Kirsher 0 siblings, 1 reply; 19+ messages in thread From: Michael Wang @ 2011-12-05 8:18 UTC (permalink / raw) To: jeffrey.t.kirsher Cc: Flavio Leitner, David Miller, netdev@vger.kernel.org, gospo@redhat.com, sassmann@redhat.com On 12/05/2011 04:02 PM, Jeff Kirsher wrote: > On Sun, 2011-12-04 at 23:15 -0800, Michael Wang wrote: >> On 12/05/2011 02:25 PM, Jeff Kirsher wrote: >> >>> On Sun, 2011-12-04 at 17:05 -0800, Michael Wang wrote: >>>> On 12/04/2011 03:28 PM, Jeff Kirsher wrote: >>>> >>>>> On Sat, 2011-12-03 at 19:26 -0800, David Miller wrote: >>>>>> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> >>>>>> Date: Sat, 3 Dec 2011 03:44:26 -0800 >>>>>> >>>>>>> + if ((!adapter->tx_hang_recheck) && >>>>>> >>>>>> Excessive parenthesis, please remove. >>>>>> >>>>>>> + adapter->tx_hang_recheck = 1; >>>>>> >>>>>> This variable is a bool, set it to true or false. >>>>>> >>>>>>> + adapter->tx_hang_recheck = 0; >>>>>> >>>>>> Likewise. >>>>>> >>>>>>> + adapter->tx_hang_recheck = 0; >>>>>> >>>>>> Likewise. >>>>> >>>>> Michael/Flavio - >>>>> >>>>> To expedite this patch, I can make the changes that Dave is requesting >>>>> and re-submit v2 of the patch, if that is ok with you. >>>>> >>>> >>>> Hi, Jeff >>>> >>>> That's ok for me, I think it's good if you can work with Dave and make >>>> out a final version for us, if you want my help, please mail me at any >>>> time, I'm glad to work with you. >>>> >>>> Flavio: >>>> What's your opinion? >>>> >>>> Thanks, >>>> Michael Wang >>> >>> I have the patch read to push, so I will go ahead an push v2 out >>> tonight. Since I am making changes to your patch, I will be removing >>> your signed-off-by (and Flavio's) and keep you as a CC: so that you can >>> verify the changes I have made to resolve the issues that Dave saw. >>> >> >> Hi, Jeff >> >> Is that means you have a better patch which different from ours, and you >> will use your patch to instead of ours? >> >> Because David is just ask for some small change, I think your time zone >> may be better to work with him, so I ask for your help. >> >> I was just confused that why our signed-off-by should be removed? >> >> Thanks, >> Michael Wang >> >>> Cheers, >>> Jeff > > It is your patch (your original work) but since I have made changes to > your patch, I (or anyone for that matter) should not assume that you as > the owner would signed off on the changes that I have made based on > feedback. It would not be right for me to send out a patch with your > signed-off-by which is different from what you originally submitted, > without your ok. Once I send out the v2 of the patch, please feel free > to add your signed-off-by OR acked-by to the patch. > Hi, Jeff That make sense, I'm sorry but because I'm new to the community, and I just want to make every thing clear so I can do better in the future. > While I personally do not have a problem keeping you as the owner and > your signed-off-by, I believe that takes in several assumptions which > only you as the owner should speak for. I am not trying to take > ownership for stats purposes, I care less about the number of patches I > create and own and would rather make sure that the original owners get > the credit due for the work they did. > I'm so sorry and I regret if I make you unhappy by some wrong word, please forgive me. > So with that, when I send out my next series of patches please feel free > to ACK or Sign-off on the changes made. I just wanted to make sure that > we get these changes in soon (with out delay). > > I can wait if you want to keep ownership of the patch, I just wanted to > ensure that we get your patch included as soon as possible based on the > problem it fixes. Please help us to make the patch perfect, and I'm very glad if I can have the opportunity to work with you. Thanks & Best regards Michael Wang ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [net-next 1/6] e1000e: Avoid wrong check on TX hang 2011-12-05 8:18 ` Michael Wang @ 2011-12-05 8:24 ` Jeff Kirsher 0 siblings, 0 replies; 19+ messages in thread From: Jeff Kirsher @ 2011-12-05 8:24 UTC (permalink / raw) To: Michael Wang Cc: Flavio Leitner, David Miller, netdev@vger.kernel.org, gospo@redhat.com, sassmann@redhat.com [-- Attachment #1: Type: text/plain, Size: 4322 bytes --] On Mon, 2011-12-05 at 00:18 -0800, Michael Wang wrote: > On 12/05/2011 04:02 PM, Jeff Kirsher wrote: > > > On Sun, 2011-12-04 at 23:15 -0800, Michael Wang wrote: > >> On 12/05/2011 02:25 PM, Jeff Kirsher wrote: > >> > >>> On Sun, 2011-12-04 at 17:05 -0800, Michael Wang wrote: > >>>> On 12/04/2011 03:28 PM, Jeff Kirsher wrote: > >>>> > >>>>> On Sat, 2011-12-03 at 19:26 -0800, David Miller wrote: > >>>>>> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> > >>>>>> Date: Sat, 3 Dec 2011 03:44:26 -0800 > >>>>>> > >>>>>>> + if ((!adapter->tx_hang_recheck) && > >>>>>> > >>>>>> Excessive parenthesis, please remove. > >>>>>> > >>>>>>> + adapter->tx_hang_recheck = 1; > >>>>>> > >>>>>> This variable is a bool, set it to true or false. > >>>>>> > >>>>>>> + adapter->tx_hang_recheck = 0; > >>>>>> > >>>>>> Likewise. > >>>>>> > >>>>>>> + adapter->tx_hang_recheck = 0; > >>>>>> > >>>>>> Likewise. > >>>>> > >>>>> Michael/Flavio - > >>>>> > >>>>> To expedite this patch, I can make the changes that Dave is requesting > >>>>> and re-submit v2 of the patch, if that is ok with you. > >>>>> > >>>> > >>>> Hi, Jeff > >>>> > >>>> That's ok for me, I think it's good if you can work with Dave and make > >>>> out a final version for us, if you want my help, please mail me at any > >>>> time, I'm glad to work with you. > >>>> > >>>> Flavio: > >>>> What's your opinion? > >>>> > >>>> Thanks, > >>>> Michael Wang > >>> > >>> I have the patch read to push, so I will go ahead an push v2 out > >>> tonight. Since I am making changes to your patch, I will be removing > >>> your signed-off-by (and Flavio's) and keep you as a CC: so that you can > >>> verify the changes I have made to resolve the issues that Dave saw. > >>> > >> > >> Hi, Jeff > >> > >> Is that means you have a better patch which different from ours, and you > >> will use your patch to instead of ours? > >> > >> Because David is just ask for some small change, I think your time zone > >> may be better to work with him, so I ask for your help. > >> > >> I was just confused that why our signed-off-by should be removed? > >> > >> Thanks, > >> Michael Wang > >> > >>> Cheers, > >>> Jeff > > > > It is your patch (your original work) but since I have made changes to > > your patch, I (or anyone for that matter) should not assume that you as > > the owner would signed off on the changes that I have made based on > > feedback. It would not be right for me to send out a patch with your > > signed-off-by which is different from what you originally submitted, > > without your ok. Once I send out the v2 of the patch, please feel free > > to add your signed-off-by OR acked-by to the patch. > > > > Hi, Jeff > > That make sense, I'm sorry but because I'm new to the community, and I > just want to make every thing clear so I can do better in the future. No problem, just trying to help get your work/fix upstream. > > > While I personally do not have a problem keeping you as the owner and > > your signed-off-by, I believe that takes in several assumptions which > > only you as the owner should speak for. I am not trying to take > > ownership for stats purposes, I care less about the number of patches I > > create and own and would rather make sure that the original owners get > > the credit due for the work they did. > > > > > I'm so sorry and I regret if I make you unhappy by some wrong word, > please forgive me. Not at all, you have not made me unhappy, so no need to apologize. I am just sorry if my email came across frustrated or unhappy. > > > So with that, when I send out my next series of patches please feel free > > to ACK or Sign-off on the changes made. I just wanted to make sure that > > we get these changes in soon (with out delay). > > > > I can wait if you want to keep ownership of the patch, I just wanted to > > ensure that we get your patch included as soon as possible based on the > > problem it fixes. > > Please help us to make the patch perfect, and I'm very glad if I can > have the opportunity to work with you. I am always here to help and welcome any submissions you want to provide to make our Intel drivers better. Thank you! > > Thanks & Best regards > Michael Wang > [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2011-12-05 23:45 UTC | newest] Thread overview: 19+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-12-05 8:20 [net-next 0/6 v2][pull request] Intel Wired LAN Driver Updates Jeff Kirsher 2011-12-05 8:20 ` [net-next 1/6] e1000e: Avoid wrong check on TX hang Jeff Kirsher 2011-12-05 8:37 ` Michael Wang 2011-12-05 13:49 ` Flavio Leitner 2011-12-05 8:20 ` [net-next 2/6] e1000e: hitting BUG_ON() from napi_enable Jeff Kirsher 2011-12-05 8:20 ` [net-next 3/6] igb: Update DMA Coalescing threshold calculation Jeff Kirsher 2011-12-05 8:20 ` [net-next 4/6] ixgbe: DCBnl set_all, order of operations fix Jeff Kirsher 2011-12-05 8:20 ` [net-next 5/6] ixgbe: DCB: IEEE transitions may fail to reprogram hardware Jeff Kirsher 2011-12-05 8:20 ` [net-next 6/6] ixgbe: Remove function prototype for non-existent function Jeff Kirsher 2011-12-05 23:45 ` [net-next 0/6 v2][pull request] Intel Wired LAN Driver Updates David Miller -- strict thread matches above, loose matches on Subject: below -- 2011-12-03 11:44 [net-next 0/6][pull " Jeff Kirsher 2011-12-03 11:44 ` [net-next 1/6] e1000e: Avoid wrong check on TX hang Jeff Kirsher 2011-12-04 3:26 ` David Miller 2011-12-04 7:28 ` Jeff Kirsher 2011-12-05 1:05 ` Michael Wang 2011-12-05 6:25 ` Jeff Kirsher 2011-12-05 7:15 ` Michael Wang 2011-12-05 8:02 ` Jeff Kirsher 2011-12-05 8:18 ` Michael Wang 2011-12-05 8:24 ` Jeff Kirsher
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).