07 Dec, 2011

13 commits


06 Dec, 2011

11 commits


05 Dec, 2011

6 commits

  • Signed-off-by: Greg Rose
    Tested-by: Sibai Li
    Signed-off-by: Jeff Kirsher

    Greg Rose
     
  • 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
    Tested-by: Ross Brattain
    Signed-off-by: Jeff Kirsher

    John Fastabend
     
  • 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
    Tested-by: Ross Brattain
    Signed-off-by: Jeff Kirsher

    John Fastabend
     
  • 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
    Tested-by: Aaron Brown
    Signed-off-by: Jeff Kirsher

    Matthew Vick
     
  • 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
    Cc: Mike McElroy
    Tested-by: Aaron Brown
    Signed-off-by: Jeff Kirsher

    Bruce Allan
     
  • Based on the original patch submitted my Michael Wang
    .
    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
    CC: Flavio Leitner
    Acked-by: Jesse Brandeburg
    Tested-by: Aaron Brown
    Signed-off-by: Jeff Kirsher

    Jeff Kirsher
     

04 Dec, 2011

4 commits

  • The advantage of kcalloc is, that will prevent integer overflows which could
    result from the multiplication of number of elements and size and it is also
    a bit nicer to read.

    The semantic patch that makes this change is available
    in https://lkml.org/lkml/2011/11/25/107

    Signed-off-by: Thomas Meyer
    Signed-off-by: David S. Miller

    Thomas Meyer
     
  • The advantage of kcalloc is, that will prevent integer overflows which could
    result from the multiplication of number of elements and size and it is also
    a bit nicer to read.

    The semantic patch that makes this change is available
    in https://lkml.org/lkml/2011/11/25/107

    Signed-off-by: Thomas Meyer
    Signed-off-by: David S. Miller

    Thomas Meyer
     
  • The advantage of kcalloc is, that will prevent integer overflows which could
    result from the multiplication of number of elements and size and it is also
    a bit nicer to read.

    The semantic patch that makes this change is available
    in https://lkml.org/lkml/2011/11/25/107

    Signed-off-by: Thomas Meyer
    Signed-off-by: David S. Miller

    Thomas Meyer
     
  • The advantage of kcalloc is, that will prevent integer overflows which could
    result from the multiplication of number of elements and size and it is also
    a bit nicer to read.

    The semantic patch that makes this change is available
    in https://lkml.org/lkml/2011/11/25/107

    Signed-off-by: Thomas Meyer
    Signed-off-by: David S. Miller

    Thomas Meyer
     

03 Dec, 2011

6 commits

  • Conflicts:
    drivers/net/wireless/iwlwifi/iwl-agn.c
    drivers/net/wireless/libertas/cfg.c

    John W. Linville
     
  • The current default watchdog timer is enabled, but we are seeing issues on
    legacy devices. So change the default setting of watchdog timer to per
    device based. But user still can use the "wd_disable" module parameter
    to overwrite the system setting

    Cc: stable@vger.kernel.org #3.0+
    Signed-off-by: Wey-Yi Guy
    Signed-off-by: John W. Linville

    Wey-Yi Guy
     
  • The ht40 setting should not change after association unless channel switch

    This fix a problem we are seeing which cause uCode assert because driver
    sending invalid information and make uCode confuse

    Here is the firmware assert message:
    kernel: iwlagn 0000:03:00.0: Microcode SW error detected. Restarting 0x82000000.
    kernel: iwlagn 0000:03:00.0: Loaded firmware version: 17.168.5.3 build 42301
    kernel: iwlagn 0000:03:00.0: Start IWL Error Log Dump:
    kernel: iwlagn 0000:03:00.0: Status: 0x000512E4, count: 6
    kernel: iwlagn 0000:03:00.0: 0x00002078 | ADVANCED_SYSASSERT
    kernel: iwlagn 0000:03:00.0: 0x00009514 | uPc
    kernel: iwlagn 0000:03:00.0: 0x00009496 | branchlink1
    kernel: iwlagn 0000:03:00.0: 0x00009496 | branchlink2
    kernel: iwlagn 0000:03:00.0: 0x0000D1F2 | interruptlink1
    kernel: iwlagn 0000:03:00.0: 0x00000000 | interruptlink2
    kernel: iwlagn 0000:03:00.0: 0x01008035 | data1
    kernel: iwlagn 0000:03:00.0: 0x0000C90F | data2
    kernel: iwlagn 0000:03:00.0: 0x000005A7 | line
    kernel: iwlagn 0000:03:00.0: 0x5080B520 | beacon time
    kernel: iwlagn 0000:03:00.0: 0xCC515AE0 | tsf low
    kernel: iwlagn 0000:03:00.0: 0x00000003 | tsf hi
    kernel: iwlagn 0000:03:00.0: 0x00000000 | time gp1
    kernel: iwlagn 0000:03:00.0: 0x29703BF0 | time gp2
    kernel: iwlagn 0000:03:00.0: 0x00000000 | time gp3
    kernel: iwlagn 0000:03:00.0: 0x000111A8 | uCode version
    kernel: iwlagn 0000:03:00.0: 0x000000B0 | hw version
    kernel: iwlagn 0000:03:00.0: 0x00480303 | board version
    kernel: iwlagn 0000:03:00.0: 0x09E8004E | hcmd
    kernel: iwlagn 0000:03:00.0: CSR values:
    kernel: iwlagn 0000:03:00.0: (2nd byte of CSR_INT_COALESCING is CSR_INT_PERIODIC_REG)
    kernel: iwlagn 0000:03:00.0: CSR_HW_IF_CONFIG_REG: 0X00480303
    kernel: iwlagn 0000:03:00.0: CSR_INT_COALESCING: 0X0000ff40
    kernel: iwlagn 0000:03:00.0: CSR_INT: 0X00000000
    kernel: iwlagn 0000:03:00.0: CSR_INT_MASK: 0X00000000
    kernel: iwlagn 0000:03:00.0: CSR_FH_INT_STATUS: 0X00000000
    kernel: iwlagn 0000:03:00.0: CSR_GPIO_IN: 0X00000030
    kernel: iwlagn 0000:03:00.0: CSR_RESET: 0X00000000
    kernel: iwlagn 0000:03:00.0: CSR_GP_CNTRL: 0X080403c5
    kernel: iwlagn 0000:03:00.0: CSR_HW_REV: 0X000000b0
    kernel: iwlagn 0000:03:00.0: CSR_EEPROM_REG: 0X07d60ffd
    kernel: iwlagn 0000:03:00.0: CSR_EEPROM_GP: 0X90000001
    kernel: iwlagn 0000:03:00.0: CSR_OTP_GP_REG: 0X00030001
    kernel: iwlagn 0000:03:00.0: CSR_GIO_REG: 0X00080044
    kernel: iwlagn 0000:03:00.0: CSR_GP_UCODE_REG: 0X000093bb
    kernel: iwlagn 0000:03:00.0: CSR_GP_DRIVER_REG: 0X00000000
    kernel: iwlagn 0000:03:00.0: CSR_UCODE_DRV_GP1: 0X00000000
    kernel: iwlagn 0000:03:00.0: CSR_UCODE_DRV_GP2: 0X00000000
    kernel: iwlagn 0000:03:00.0: CSR_LED_REG: 0X00000078
    kernel: iwlagn 0000:03:00.0: CSR_DRAM_INT_TBL_REG: 0X88214dd2
    kernel: iwlagn 0000:03:00.0: CSR_GIO_CHICKEN_BITS: 0X27800200
    kernel: iwlagn 0000:03:00.0: CSR_ANA_PLL_CFG: 0X00000000
    kernel: iwlagn 0000:03:00.0: CSR_HW_REV_WA_REG: 0X0001001a
    kernel: iwlagn 0000:03:00.0: CSR_DBG_HPET_MEM_REG: 0Xffff0010
    kernel: iwlagn 0000:03:00.0: FH register values:
    kernel: iwlagn 0000:03:00.0: FH_RSCSR_CHNL0_STTS_WPTR_REG: 0X21316d00
    kernel: iwlagn 0000:03:00.0: FH_RSCSR_CHNL0_RBDCB_BASE_REG: 0X021479c0
    kernel: iwlagn 0000:03:00.0: FH_RSCSR_CHNL0_WPTR: 0X00000060
    kernel: iwlagn 0000:03:00.0: FH_MEM_RCSR_CHNL0_CONFIG_REG: 0X80819104
    kernel: iwlagn 0000:03:00.0: FH_MEM_RSSR_SHARED_CTRL_REG: 0X000000fc
    kernel: iwlagn 0000:03:00.0: FH_MEM_RSSR_RX_STATUS_REG: 0X07030000
    kernel: iwlagn 0000:03:00.0: FH_MEM_RSSR_RX_ENABLE_ERR_IRQ2DRV: 0X00000000
    kernel: iwlagn 0000:03:00.0: FH_TSSR_TX_STATUS_REG: 0X07ff0001
    kernel: iwlagn 0000:03:00.0: FH_TSSR_TX_ERROR_REG: 0X00000000
    kernel: iwlagn 0000:03:00.0: Start IWL Event Log Dump: display last 20 entries
    kernel: ------------[ cut here ]------------
    WARNING: at net/mac80211/util.c:1208 ieee80211_reconfig+0x1f1/0x407()
    kernel: Hardware name: 4290W4H
    kernel: Pid: 1896, comm: kworker/0:0 Not tainted 3.1.0 #2
    kernel: Call Trace:
    kernel: [] ? warn_slowpath_common+0x73/0x87
    kernel: [] ? ieee80211_reconfig+0x1f1/0x407
    kernel: [] ? ieee80211_recalc_smps_work+0x32/0x32
    kernel: [] ? ieee80211_restart_work+0x7e/0x87
    kernel: [] ? process_one_work+0x1c8/0x2e3
    kernel: [] ? worker_thread+0x17a/0x23a
    kernel: [] ? manage_workers.clone.18+0x15b/0x15b
    kernel: [] ? manage_workers.clone.18+0x15b/0x15b
    kernel: [] ? kthread+0x7a/0x82
    kernel: [] ? kernel_thread_helper+0x4/0x10
    kernel: [] ? kthread_flush_work_fn+0x11/0x11
    kernel: [] ? gs_change+0xb/0xb

    Cc: 3.1+
    Reported-by: Udo Steinberg
    Signed-off-by: Wey-Yi Guy
    Signed-off-by: John W. Linville

    Wey-Yi Guy
     
  • Group keys in IBSS or AP mode are not programmed
    into the device since we give the key to it with
    every TX packet. However, we do need mac80211 to
    create the MMIC & PN in all cases. Move the code
    around to set the key flags all the time. We set
    them even when the key is removed again but that
    is obviously harmless.

    Cc: stable@vger.kernel.org
    Reported-by: Reinette Chatre
    Signed-off-by: Johannes Berg
    Signed-off-by: Wey-Yi Guy
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • David S. Miller
     
  • Moved netdev_completed_queue() out of while loop in function nv_tx_done_optimized().
    Because this function was in while loop,
    BUG_ON(count > dql->num_queued - dql->num_completed)
    was hit in dql_completed().

    Signed-off-by: Igor Maravic
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Igor Maravic