1. 05 Dec, 2011 5 commits
    • John Fastabend's avatar
      ixgbe: DCB: IEEE transitions may fail to reprogram hardware. · 43497cc2
      John Fastabend authored
      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: default avatarJohn Fastabend <john.r.fastabend@intel.com>
      Tested-by: default avatarRoss Brattain <ross.b.brattain@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      43497cc2
    • John Fastabend's avatar
      ixgbe: DCBnl set_all, order of operations fix · 4909fe97
      John Fastabend authored
      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: default avatarJohn Fastabend <john.r.fastabend@intel.com>
      Tested-by: default avatarRoss Brattain <ross.b.brattain@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      4909fe97
    • Matthew Vick's avatar
      igb: Update DMA Coalescing threshold calculation. · e8c626e9
      Matthew Vick authored
      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: default avatarMatthew Vick <matthew.vick@intel.com>
      Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      e8c626e9
    • Bruce Allan's avatar
      e1000e: hitting BUG_ON() from napi_enable · 5f4a780d
      Bruce Allan authored
      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: default avatarBruce Allan <bruce.w.allan@intel.com>
      Cc: Mike McElroy <mike.mcelroy@stratus.com>
      Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      5f4a780d
    • Jeff Kirsher's avatar
      e1000e: Avoid wrong check on TX hang · 09357b00
      Jeff Kirsher authored
      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: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
      Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      09357b00
  2. 02 Dec, 2011 10 commits
  3. 01 Dec, 2011 25 commits