03 Nov, 2009

12 commits

  • When a 50610 or 50610M is paired against particular remote partners,
    link is slow to come up. This patch works around the problem.

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

    Matt Carlson
     
  • This patch consolidates the code that requires the SMDSP clock to be
    enabled into a single function that (hopefully) makes the dependency
    obvious.

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

    Matt Carlson
     
  • This patch extends the loopback test timeout from 250 usec to 350 usec.
    When the 5785 is paired against an AC131 phy, the older timeout is
    just a little too close to the expected performance based on timings.

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

    Matt Carlson
     
  • This patch sets the port mode to MII when the link is down for the 5785.
    Setting the port mode to MII instead of GMII saves power.

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

    Matt Carlson
     
  • The AC131 does not respect the power down bit (bit 11) of the MII
    Control Register (reg 0x0). Instead, software is required to put the
    phy into standby power down mode through the shadow register set. This
    patch implements support for the AC131 standby power down mode.

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

    Matt Carlson
     
  • This patch improves 5785 performance by allowing the write DMA engine to
    request larger DMA burst sizes than it otherwise would.

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

    Matt Carlson
     
  • This patch adds code to check the status of pci_map_single() before
    allowing rx buffers to be used. It also converts the pci_map_single()
    call in tg3_run_loopback() to use skb_dma_map() instead.

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

    Matt Carlson
     
  • This patch prevents a PCIe tx glitch by allowing the transmitter to go
    to a low power state.

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

    Matt Carlson
     
  • This patch renames the PHY_ADDR preprocessor definition. The following
    patch will identify a new member on the MDIO bus, so we want this
    preprocessor definition to be a little more descriptive.

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

    Matt Carlson
     
  • Under certain power saving conditions, 57780 asic rev devices might
    disappear from the system. The fix is to disallow the PCIe PLL from
    powering down.

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

    Matt Carlson
     
  • The 5906 has trouble with fragments that are less than 8 bytes in size.
    This patch works around the problem by pivoting the 5906's transmit
    routine to tg3_start_xmit_dma_bug() and introducing a new SHORT_DMA_BUG
    flag that enables code to detect and react to the problematic condition.

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

    Matt Carlson
     
  • This patch adds a flag for each bug workaround in
    tg3_start_xmit_dma_bug(). This is prep work for the following patch.

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

    Matt Carlson
     

02 Nov, 2009

14 commits


31 Oct, 2009

12 commits

  • Move receive processing from event handler to a tasklet.
    This should help prevent hangcheck timer from going off
    when RDS is under heavy load.

    Signed-off-by: Andy Grover
    Signed-off-by: David S. Miller

    Andy Grover
     
  • This issue was discovered by HP's Pradeep and fixed in OFED
    1.3, but not fixed in later versions, since the fix's implementation
    was not immediately applyable to the later code. This patch should
    do the trick for 1.4+ codebases.

    Signed-off-by: Andy Grover
    Signed-off-by: David S. Miller

    Andy Grover
     
  • Remove explicit destruction of passive connection when destroying
    active end of the connection. The passive end is also on the
    device's connection list, and will thus be cleaned up properly.
    Panic was caused by trying to clean it up twice.

    Signed-off-by: Andy Grover
    Signed-off-by: David S. Miller

    Andy Grover
     
  • "At rds_ib_recv_refill_one(), it first executes atomic_read(&rds_ib_allocation)
    for if-condition checking,

    and then executes atomic_inc(&rds_ib_allocation) if the condition was
    not satisfied.

    However, if any other code which updates rds_ib_allocation executes
    between these two atomic operation executions,
    it seems that it may result race condition. (especially when
    rds_ib_allocation + 1 == rds_ib_sysctl_max_recv_allocation)"

    This patch fixes this by using atomic_inc_unless to eliminate the
    possibility of allocating more than rds_ib_sysctl_max_recv_allocation
    and then decrementing the count if the allocation fails. It also
    makes an identical change to the iwarp transport.

    Reported-by: Shin Hong
    Signed-off-by: Andy Grover
    Signed-off-by: David S. Miller

    Andy Grover
     
  • RDS currently supports a GET_MR sockopt to establish a
    memory region (MR) for a chunk of memory. However, the fastreg
    method ties a MR to a particular destination. The GET_MR_FOR_DEST
    sockopt allows the remote machine to be specified, and thus
    support for fastreg (aka FRWRs).

    Note that this patch does *not* do all of this - it simply
    implements the new sockopt in terms of the old one, so applications
    can begin to use the new sockopt in preparation for cutover to
    FRWRs.

    Signed-off-by: Andy Grover
    Signed-off-by: David S. Miller

    Andy Grover
     
  • - Don't call rtnl_link_unregister if rtnl_link_register fails
    - Set .priv_size so we aren't stomping on uninitialized memory
    when we use netdev_priv, on bond devices created with
    ip link add type bond.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • This implements a basic set of rtnl link ops and takes advantage of
    the fact that rtnl_link_unregister kills all of the surviving
    devices to all us to kill bond_free_all. A module alias
    is added so ip link add can pull in the bonding module.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • Manually inline the code from bond_deinit to bond_uninit. bond_uninit
    is the only caller and it is short.

    Move the call of bond_release_all from the netdev notifier into
    bond_uninit. The call site is effectively the same and performing
    the call explicitly allows all the paths for destroying a
    bonding device to behave the same way.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • Stop calling dev_get_by_name to see if the bond device already
    exists. register_netdevice already does that.

    Stop calling bond_deinit if register_netdevice fails as bond_uninit
    is guaranteed to be called if bond_init succeeds.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • This patch delegates the work of creating the sysfs groups
    to the netdev layer and ultimately to the device layer. This
    closes races between uevents.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • This isn't beautifully abstracted, but it is simple,
    simplifies uses and so far is only needed for the bonding driver.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     

30 Oct, 2009

2 commits

  • Small cleanup of __dev_get_by_name() and __dev_get_by_index()
    to use hlist_for_each_entry() : They'll look like their _rcu variant.

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • In commit 23289a37e2b127dfc4de1313fba15bb4c9f0cd5b
    (net: add a list_head parameter to dellink() method),
    I forgot to actually use this parameter in veth_dellink.

    I remember feeling a bit uncomfortable about veth_close(),
    because it does :

    netif_carrier_off(dev);
    netif_carrier_off(priv->peer);

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet