22 Jan, 2009

2 commits


21 Jan, 2009

3 commits


20 Jan, 2009

27 commits

  • Roel Kluin reported a bug in two error paths where skbs were wrongly
    being freed using kfree(). He provided a fix where it was replaced to
    kfree_skb(), as it should be.

    However, in i2400mu_rx(), the error path was missing returning an
    indication of the failure. Changed to reset rx_skb to NULL and return
    it to the caller, i2400mu_rxd(). It will be treated as a transient
    error and just ignore the packet.

    Depending on the buffering conditions inside the device, the data
    packet might be dropped or the device will signal the host again for
    data-ready-to-read and the host will retry.

    Signed-off-by: Inaky Perez-Gonzalez
    Signed-off-by: David S. Miller

    Inaky Perez-Gonzalez
     
  • Contrary to what the docs say, the 'extended interrupt cause' bit in
    the interrupt cause register (bit 1) appears to not be maskable on at
    least some of the mv643xx_eth platforms, making writing zeroes to the
    interrupt mask register but not the extended interrupt mask register
    insufficient to stop interrupts from occuring. Therefore, also write
    zeroes to the extended interrupt mask register when shutting down the
    port.

    This fixes the interrupt storm seen on the Pegasos board when shutting
    down the interface.

    Signed-off-by: Lennert Buytenhek
    Signed-off-by: David S. Miller

    Gabriel Paubert
     
  • Commit 66e63ffbc04706568d8789cbb00eaa8ddbcae648 ("mv643xx_eth:
    implement ->set_rx_mode()") cleaned up mv643xx_eth's multicast filter
    programming, but broke it as well.

    The non-special multicast filter table (for multicast addresses that
    are not of the form 01:00:5e:00:00:xx) consists of 256 hash table
    buckets organised as 64 32-bit words, where the 'accept' bits are
    in the LSB of each byte, so in bits 24 16 8 0 of each 32-bit word.
    The old code got this right, but the referenced commit broke this by
    using bits 3 2 1 0 instead. This commit fixes this up.

    Signed-off-by: Lennert Buytenhek
    Signed-off-by: David S. Miller

    Lennert Buytenhek
     
  • This reverts commit cd4ccf76bfd2c36d351e68be7e6a597268f98a1a.

    On the Pegasos board, we can't do DMA burst that are longer than
    one cache line. For now, go back to using 32 byte DMA bursts for
    all mv643xx_eth platforms -- we can switch the ARM-based platforms
    back to doing long 128 byte bursts in the next development cycle.

    Signed-off-by: Lennert Buytenhek
    Reported-by: Alan Curry
    Reported-by: Gabriel Paubert
    Signed-off-by: David S. Miller

    Lennert Buytenhek
     
  • This patch modifies how the tg3 driver handles device firmware.

    The patch starts by consolidating David Woodhouse's earlier patch under
    the same name. Specifically, the patch moves the request_firmware call
    into a separate tg3_request_firmware() function and calls that function
    from tg3_open() rather than tg3_init_one().

    The patch then goes on to limit the number of devices that will make
    request_firmware calls. The original firmware patch unnecessarily
    requested TSO firmware for devices that did not need it. This patch
    reduces the set of devices making TSO firmware patches to approximately
    the following device set : 5703, 5704, and 5705.

    Finally, the patch reduces the effects of a request_firmware() failure.
    For those devices that are requesting TSO firmware, the driver will turn
    off the TSO capability. If TSO firmware becomes available at a later
    time, the device can be closed and then opened again to reacquire the
    TSO capability.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     
  • netif_carrier_off() is sufficient to stop Tx into the driver. Stopping the Tx
    queues is redundant and unnecessary. By the same token, netif_carrier_on()
    will be sufficient to re-enable Tx, so waking the queues is unnecessary.

    Signed-off-by: Peter P Waskiewicz Jr
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Peter P Waskiewicz Jr
     
  • Register VLAN ID 0 so that frames with VLAN ID 0 are received and get
    their tag stripped when ixgbe is not in DCB mode. VLAN ID 0 means
    that the frame is 'priority tagged' only - it is not a VLAN, but the
    priority value is the tag in valid. The functions
    ixgbe_vlan_rx_register() and ixgbe_vlan_rx_kill_vid() were moved up a
    couple functions to correct compiling issues with this change.

    Signed-off-by: Don Skidmore
    Signed-off-by: Peter P Waskiewicz Jr
    Signed-off-by: Eric W Multanen
    Signed-off-by: David S. Miller

    Don Skidmore
     
  • The is an issue where setting Relaxed Ordering (RO) bit
    (in a PCI-E write transaction) on 82598 causing the chipset
    to drop DCA hints. This patch forces RO not to be set for
    descriptors as well as payload. This will only be in effect
    while DCA is enabled and no performance difference was
    noticed in testing.

    Signed-off-by: Don Skidmore
    Signed-off-by: Peter P Waskiewicz Jr
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Don Skidmore
     
  • As the assigned value is being overwritten shortly after, it can be
    dropped and so the whole variable definition moved to the start of the
    function.

    Signed-off-by: Phil Sutter
    Acked-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Phil Sutter
     
  • This is copy and paste from the original driver. As skb_reserve() is
    also called within korina_alloc_ring() when initially allocating the
    receive descriptors, the same should be done when allocating new space
    after passing an skb to upper layers.

    Signed-off-by: Phil Sutter
    Acked-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Phil Sutter
     
  • After the last loop iteration, i has the value RC32434_NUM_RDS and
    therefore leads to an index overflow when used afterwards to address the
    last element. This is yet another another bug introduced when rewriting
    parts of the driver for upstream preparation, as the original driver
    used 'RC32434_NUM_RDS - 1' instead.

    Signed-off-by: Phil Sutter
    Acked-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Phil Sutter
     
  • The lro manager's frag_align_pad setting was missing,
    leading to misaligned access to the skb passed up
    to the stack.

    Tested-by: Rick Jones
    Signed-off-by: Divy Le Ray
    Signed-off-by: David S. Miller

    Divy Le Ray
     
  • In rare cases when an underrun occur, all macb buffers where consumed
    and the netif_queue was stopped infinitely. This happens then the TGO
    (transfer ongoing) bit in the TSR is set (and UND). It seems like
    clening up after the underrun makes the driver and the macb hardware
    end up in an inconsistent state. The result of this is that in the
    following calls to macb_tx no TX buffers are released -> the
    netif_queue was stopped, and never woken up again.

    The solution is to disable the transmitter, if TGO is set, before
    clening up after the underrun, and re-enable the transmitter when the
    cleaning up is done.

    Signed-off-by: Richard Röjfors
    Signed-off-by: David S. Miller

    Richard Röjfors
     
  • Updating the version and the year of updated files

    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Eilon Greenstein
     
  • To make sure no swapping are made by the compiler, changed HAS_WORK to inline
    functions and added all the necessary barriers

    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Eilon Greenstein
     
  • The Driver supports the 57711 and 57711E as well but the description was out of
    date

    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Eilon Greenstein
     
  • If the default PHY version (0x4321) is read - the PHY FW load failed

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Eilon Greenstein
     
  • 10M/100M autoneg was not establishing link.

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Eilon Greenstein
     
  • Setting loopback requires time to take effect

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Eilon Greenstein
     
  • The HW should be configured so fast toggling between 1G and 10G will not be
    missed. Make sure that the HW is re-configured in full

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Eilon Greenstein
     
  • If the page size is > 8KB this violation happens

    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Eilon Greenstein
     
  • Don't dump eeprom when bnx2x adapter is down. Running ethtool -e causes an eeh
    without it when the device is down

    Signed-off-by: Paul Larson
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Eilon Greenstein
     
  • Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Eilon Greenstein
     
  • Has a negative side effect when sending MAC update with no content (as done in
    the self-test)

    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Eilon Greenstein
     
  • The lock was release too soon. Make sure the HW is marked as locked until the
    boot driver was unloaded from FW perspective

    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Eilon Greenstein
     
  • Failures in the probe not handled correctly - separate the flow to handle

    different failures

    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Eilon Greenstein
     
  • Error check could result with not freeing the IRQ

    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Eilon Greenstein
     

18 Jan, 2009

3 commits


17 Jan, 2009

5 commits