1. 10 2月, 2012 2 次提交
  2. 07 2月, 2012 5 次提交
  3. 27 1月, 2012 4 次提交
  4. 26 1月, 2012 7 次提交
  5. 20 12月, 2011 1 次提交
  6. 09 12月, 2011 1 次提交
  7. 05 12月, 2011 2 次提交
    • B
      e1000e: hitting BUG_ON() from napi_enable · 5f4a780d
      Bruce Allan 提交于
      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: NBruce Allan <bruce.w.allan@intel.com>
      Cc: Mike McElroy <mike.mcelroy@stratus.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      5f4a780d
    • J
      e1000e: Avoid wrong check on TX hang · 09357b00
      Jeff Kirsher 提交于
      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: NJesse Brandeburg <jesse.brandeburg@intel.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      09357b00
  8. 30 11月, 2011 1 次提交
  9. 17 11月, 2011 1 次提交
  10. 16 11月, 2011 2 次提交
  11. 19 10月, 2011 1 次提交
  12. 14 10月, 2011 1 次提交
  13. 31 8月, 2011 1 次提交
  14. 27 8月, 2011 1 次提交
  15. 19 8月, 2011 2 次提交
  16. 18 8月, 2011 1 次提交
  17. 11 8月, 2011 1 次提交
  18. 04 8月, 2011 1 次提交
  19. 13 7月, 2011 1 次提交
  20. 28 6月, 2011 1 次提交
  21. 10 6月, 2011 3 次提交
    • B
      b3ccf267
    • B
      e1000e: access multiple PHY registers on same page at the same time · 2b6b168d
      Bruce Allan 提交于
      Doing a PHY page select can take a long time, relatively speaking. This
      can cause a significant delay when updating a number of PHY registers on
      the same page by unnecessarily setting the page for each PHY access. For
      example when going to Sx, all the PHY wakeup registers (WUC, RAR[], MTA[],
      SHRAR[], IP4AT[], IP6AT[], etc.) on 82577/8/9 need to be updated which
      takes a long time which can cause issues when suspending.
      
      This patch introduces new PHY ops function pointers to allow callers to
      set the page directly and do any number of PHY accesses on that page.
      This feature is currently only implemented for 82577, 82578 and 82579
      PHYs for both the normally addressed registers as well as the special-
      case addressing of the PHY wakeup registers on page 800. For the latter
      registers, the existing function for accessing the wakeup registers has
      been divided up into three- 1) enable access to the wakeup register page,
      2) perform the register access and 3) disable access to the wakeup register
      page. The two functions that enable/disable access to the wakeup register
      page are necessarily available to the caller so that the caller can restore
      the value of the Port Control (a.k.a. Wakeup Enable) register after the
      wakeup register accesses are done.
      
      All instances of writing to multiple PHY registers on the same page are
      updated to use this new method and to acquire any PHY locking mechanism
      before setting the page and performing the register accesses, and release
      the locking mechanism afterward.
      
      Some affiliated magic number cleanup is done as well.
      Signed-off-by: NBruce Allan <bruce.w.allan@intel.com>
      Tested-by: NJeff Pieper <jeffrey.e.pieper@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      2b6b168d
    • B
      e1000e: do not schedule the Tx queue until ready · 400484fa
      Bruce Allan 提交于
      Start the Tx queue when the interface is brought up in e1000e_up() but do
      not schedule the queue until link is up as detected in the watchdog task
      which sets netif_carrier_on.
      
      Also flush the descriptors and clean the Tx and Rx rings before resetting
      the hardware when bringing the interface down otherwise there is a small
      window where the watchdog task can be triggered with netif_carrier_off
      and the Tx ring not yet empty which causes an additional and unnecessary
      reset.
      Signed-off-by: NBruce Allan <bruce.w.allan@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      400484fa