19 Nov, 2009

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (42 commits)
    cxgb3: fix premature page unmap
    ibm_newemac: Fix EMACx_TRTR[TRT] bit shifts
    vlan: Fix register_vlan_dev() error path
    gro: Fix illegal merging of trailer trash
    sungem: Fix Serdes detection.
    net: fix mdio section mismatch warning
    ppp: fix BUG on non-linear SKB (multilink receive)
    ixgbe: Fixing EEH handler to handle more than one error
    net: Fix the rollback test in dev_change_name()
    Revert "isdn: isdn_ppp: Use SKB list facilities instead of home-grown implementation."
    TI Davinci EMAC : Fix Console Hang when bringing the interface down
    smsc911x: Fix Console Hang when bringing the interface down.
    mISDN: fix error return in HFCmulti_init()
    forcedeth: mac address fix
    r6040: fix version printing
    Bluetooth: Fix regression with L2CAP configuration in Basic Mode
    Bluetooth: Select Basic Mode as default for SOCK_SEQPACKET
    Bluetooth: Set general bonding security for ACL by default
    r8169: Fix receive buffer length when MTU is between 1515 and 1536
    can: add the missing netlink get_xstats_size callback
    ...

    Linus Torvalds
     

16 Nov, 2009

1 commit


12 Oct, 2009

1 commit


01 Sep, 2009

1 commit


06 Jul, 2009

1 commit

  • Eric Dumazet a écrit :
    > Ingo Molnar a écrit :
    >>> The following changes since commit 52989765629e7d182b4f146050ebba0abf2cb0b7:
    >>> Linus Torvalds (1):
    >>> Merge git://git.kernel.org/.../davem/net-2.6
    >>>
    >>> are available in the git repository at:
    >>>
    >>> master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6.git master
    >> Hm, something in this lot quickly wrecked networking here - see the
    >> tx timeout dump below. It starts with:
    >>
    >> [ 351.004596] WARNING: at net/sched/sch_generic.c:246 dev_watchdog+0x10b/0x19c()
    >> [ 351.011815] Hardware name: System Product Name
    >> [ 351.016220] NETDEV WATCHDOG: eth0 (forcedeth): transmit queue 0 timed out
    >>
    >> Config attached. Unfortunately i've got no time to do bisection
    >> today.
    >
    >
    >
    > forcedeth might have a problem, in its netif_wake_queue() logic, but
    > I could not see why a recent patch could make this problem visible now.
    >
    > CPU0/1: AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ stepping 02
    > is not a new cpu either :)
    >
    > forcedeth uses an internal tx_stop without appropriate barrier.
    >
    > Could you try following patch ?
    >
    > (random guess as I dont have much time right now)

    We might have a race in napi_schedule(), leaving interrupts disabled forever.
    I cannot test this patch, I dont have the hardware...

    Tested-by: Ingo Molnar

    Signed-off-by: David S. Miller

    Eric Dumazet
     

18 Jun, 2009

1 commit

  • forcedeth doesnt use properly dma api in its tx completion path
    and in nv_loopback_test()

    pci_map_single() should be paired with pci_unmap_single()
    pci_map_page() should be paired with pci_unmap_page()

    forcedeth xmit path uses pci_map_single() & pci_map_page(),
    but tx completion path only uses pci_unmap_single()

    nv_loopback_test() uses pci_map_single() & pci_unmap_page()

    Add a dma_single field in struct nv_skb_map, and
    define a helper function nv_unmap_txskb

    Signed-off-by: Eric Dumazet
    CC: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Eric Dumazet
     

07 Jun, 2009

2 commits


03 Jun, 2009

1 commit


02 Jun, 2009

1 commit

  • Add a phy_power_down parameter to forcedeth: set to 1 to power down the
    phy and disable the link when an interface goes down; set to 0 to always
    leave the phy powered up.

    The phy power state persists across reboots; Windows, some BIOSes, and
    older versions of Linux don't bother to power up the phy again, forcing
    users to remove all power to get the interface working (see
    http://bugzilla.kernel.org/show_bug.cgi?id=13072). Leaving the phy
    powered on is the safest default behavior. Users accustomed to seeing
    the link state reflect the interface state and/or wanting to minimize
    power consumption can set phy_power_down=1 if compatibility with other
    OSes is not an issue.

    Signed-off-by: Ed Swierk
    Signed-off-by: David S. Miller

    Ed Swierk
     

02 May, 2009

1 commit

  • This patch adds new logic to support a clock gating feature found on the
    latest set of chipsets. The clock gating is performed on the tx/rx
    engines when the link is disconnected. Clock gating helps in reducing
    power consumption.

    * modified based on comments from netdev

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     

27 Apr, 2009

1 commit

  • This patch fixes the tx_timeout() to properly handle the clean up of the
    tx ring. It also sets the tx put pointer back to the correct position to
    be in sync with HW.

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     

09 Apr, 2009

1 commit

  • It's not enough that forcedeth's interrupts are disabled,
    local cpu interrupts have to unconditionally be off
    when we remove the device from the poll list.

    Based upon a crash report from
    Alexander Beregalov :

    WARNING: at lib/list_debug.c:30 __list_add+0x89/0x90()
    Hardware name:
    list_add corruption. prev->next should be next (c06ea834), but was
    f70244c8. (prev=c06ea834).
    Modules linked in: w83627hf hwmon_vid i2c_nforce2
    Pid: 1436, comm: portageq Not tainted 2.6.30-rc1 #1
    Call Trace:
    [] warn_slowpath+0x73/0xd0
    [] ? __kfree_skb+0x38/0x90
    [] ? tcp_data_snd_check+0x26/0xe0
    [] ? tcp_rcv_established+0x2bf/0x5e0
    [] ? tcp_v4_rcv+0x47a/0x610
    [] ? print_lock_contention_bug+0x1d/0x110
    [] ? _spin_unlock+0x27/0x50
    [] ? tcp_v4_rcv+0x54b/0x610
    [] __list_add+0x89/0x90
    [] __napi_schedule+0x29/0x60
    [] e1000_intr+0xbd/0x1a0
    [] handle_IRQ_event+0x3e/0x120
    [] handle_fasteoi_irq+0x60/0xd0
    [] handle_irq+0x34/0x60
    [] ? rcu_irq_enter+0x8/0x40
    [] do_IRQ+0x39/0xa0
    [] ? skb_release_head_state+0x2c/0x60
    [] common_interrupt+0x2e/0x34
    [] ? list_del+0x21/0x90
    [] ? trace_hardirqs_on+0xb/0x10
    [] __napi_complete+0x1a/0x30
    [] nv_napi_poll+0xd1/0x5c0
    [] ? trace_hardirqs_on+0xb/0x10
    [] net_rx_action+0x106/0x1b0
    [] __do_softirq+0x6f/0x100
    [] ? _spin_unlock+0x27/0x50
    [] ? handle_fasteoi_irq+0x88/0xd0
    [] do_softirq+0x5d/0x70
    [] irq_exit+0x7d/0xa0
    [] do_IRQ+0x42/0xa0
    [] ? do_softirq+0x47/0x70
    [] common_interrupt+0x2e/0x34

    Signed-off-by: David S. Miller

    David S. Miller
     

07 Apr, 2009

2 commits


10 Mar, 2009

13 commits

  • This patch bumps up the version to 0.64

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     
  • This patch clears the irqstatus register with the exact same events it
    has read from it. Since the read-write operation is not atomic, a new
    irqstatus bit could have been set in between these operations and would
    then be cleared accidentally.

    Secondly, we now don't need any spin lock protection when
    scheduling/completing napi poll as the isr will not execute anymore (as
    we turn off all interrupts now).

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     
  • This patch modifies the throughput mode poll settings to reduce the
    number of interrupts. This is only used by older hardware that need a
    timer irq in throughput mode.

    Secondly, this patch increases the default rx ring from 128 to 512. This
    drastically improves bandwidth utilization for small packets sizes i.e
    512 bytes.

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     
  • This patch adds the logic to moderate the interrupts by changing the
    mode between throughput and poll. If there has been a large amount of
    time without any burst of network load, the code will transition to pure
    throughput mode (where each tx/rx/other will cause an interrupt). If
    bursts of network load occurs, it will transition to poll based mode to
    help reduce cpu utilization (it will not interrupt on each packet) while
    maintaining the optimum network bandwidth utilization.

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     
  • This patch is only a subset of changes so that it is easier to see the
    modifications. This patch removes the isr 'for' loop and shifts all the
    logic to account for new tab spacing.

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     
  • A new optimization mode called Dynamic has been added. This will be mode
    where interrupt moderation logic will dynamically switch between pure
    throughput mode and poll based (called 'cpu') mode.

    Also, for newer chipsets, the timer irq is not needed for throughput
    mode. Secondly, since we are modifying the irqmask to change between
    modes, msix is not supported.

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     
  • The napi poll routine has been modified to handle all interrupt events
    and process them accordingly. Therefore, the ISR will now only schedule
    the napi poll and disable all interrupts instead of just disabling rx
    interrupt.

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     
  • There are two tx_done routines to handle tx completion processing. Both
    these functions now take in a limit value and return the amount of tx
    completions. This will be used by a future patch to determine the total
    amount of work done.

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     
  • This patch removes unnecessary overhead code. Firstly, there is no nead
    to mask off unwanted interrupts as we will be checking against the
    irqmask field anyways. Secondly, there has been no value in last few
    years from detecting error or unknown interrupts.

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     
  • This patch will save the irq events in the driver's context so that the
    napi routine knows which interrupts have occurred. Subsequent changes
    will be moving all interrupt processing into the napi poll routine.

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     
  • This patch removes support for msix running in conjunction with napi.
    There has been reported issues regarding the behaviour of irqmask and
    generation of interrupts by the HW when in MSIX mode. When running napi,
    the driver is constantly turning off/on the irqmask. For the time being,
    I am going to disable it until I can root cause the issue.

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     
  • This patch adds missing napi enable/disable calls.

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     
  • Newer versions of the stats feature would not encompass all older
    versions. This would result in only retreiving a subset of all available
    stats in HW.

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     

27 Feb, 2009

1 commit


24 Feb, 2009

1 commit


16 Feb, 2009

1 commit

  • Commit f55c21fd9a92a444e55ad1ca4e4732d56661bf2e ("forcedeth: call
    restore mac addr in nv_shutdown path"), which was introduced to fix
    the regression tracked at
    http://bugzilla.kernel.org/show_bug.cgi?id=11358 causes the
    wake-on-lan mac to be reversed in the shutdown path. Apparently the
    forcedeth situation is rather messy in that the mac we need to
    writeback for a subsequent modprobe to work is exactly the reverse of
    what is needed for proper wake-on-lan.

    The following patch explains the situation in the comments and
    makes the call to nv_restore_mac_addr() conditional (only called if
    we are not really going for poweroff).

    Tobias Diedrich wrote:
    > Hmm, I had not tried WOL for some time.
    > With 2.6.29-rc3 is see the following behaviour:
    >
    > State WOL Behaviour
    > ------------------------------
    > shutdown reversed MAC
    > disk/shutdown reversed MAC
    > disk/platform OK
    >
    > Apparently nv_restore_mac_addr() restores the MAC in the wrong order
    > for WOL (at least for my PCI_DEVICE_ID_NVIDIA_NVENET_15). platform
    > works, because the MAC is not touched in the nv_suspend() path.
    >
    > A possible fix might be to only call nv_restore_mac_addr() if
    > system_state != SYSTEM_POWER_OFF.

    With the following patch:
    shutdown OK
    disk/shutdown OK
    disk/platform OK
    kexec OK

    Signed-off-by: Tobias Diedrich
    Tested-by: Philipp Matthias Hahn
    Signed-off-by: David S. Miller

    Tobias Diedrich
     

07 Feb, 2009

5 commits

  • This patch bumps the version up to 63

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     
  • This patch adds another type of recoverable error to the driver. It also
    modifies the sequence for recovery to include a mac reset and clearing
    of interrupts.

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     
  • This patch fixes the ethtool tx csum "set" command. A recent patch was
    submitted to remove HW_CSUM and use IP_CSUM instead. Therefore, the
    corresponding ethtool command should also be modified.

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     
  • This patch fixes an issue with the suspend/resume cycle with msi
    interrupts. See bugzilla number 10487 for more details. The fix is to
    re-setup a private msi pci config offset field.

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     
  • This patch updates the logic used to communicate with the mgmt unit. It
    also adds a version check for a newer mgmt unit firmware.

    * Fixed udelay to schedule_timeout_uninterruptible

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Ayaz Abdulla
     

06 Feb, 2009

4 commits