20 Jul, 2012

11 commits

  • Update the references to bridge utilities and web pages
    to current locations

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    stephen hemminger
     
  • commit 9ac32e1b firmware: convert e100 driver to request_firmware()

    did a straight conversion of the in-driver ucode to external
    files. This introduced the possibility of the driver failing
    to enable an interface due to missing ucode. There was no
    evaluation of the importance of the ucode at the time.

    Based on comments in earlier versions of this driver, and in
    the source code for the FreeBSD fxp driver, we can assume that
    the ucode implements the "CPU Cycle Saver" feature on supported
    adapters. Although generally wanted, this is an optional
    feature. The ucode source is not available, preventing it from
    being included in free distributions. This creates unnecessary
    problems for the end users. Doing a network install based on a
    free distribution installer requires the user to download and
    insert the ucode into the installer.

    Making the ucode optional when possible improves the user
    experience and driver usability.

    The ucode for some adapters include a bugfix, making it
    essential. We continue to fail for these adapters unless the
    ucode is available.

    Signed-off-by: Bjørn Mork
    Signed-off-by: David S. Miller

    Bjørn Mork
     
  • Since commit 16626b0cc3d5afe250850f96759b241f8a403b52 the asix
    driver depends on the phylib. Select phylib when the asix driver is
    selected.

    Reported-by: Fengguang Wu
    Cc: kernel-janitors@vger.kernel.org
    Signed-off-by: Christian Riesch
    Tested-by: Fengguang Wu
    Signed-off-by: David S. Miller

    Christian Riesch
     
  • This patch adds the asix_set_eeprom() function to provide support for
    programming the configuration EEPROM via ethtool.

    Signed-off-by: Christian Riesch
    Signed-off-by: David S. Miller

    Christian Riesch
     
  • The current code for reading the EEPROM via ethtool in the asix
    driver has a few issues. It cannot handle odd length values
    (accesses must be aligned at 16 bit boundaries) and interprets the
    offset provided by ethtool as 16 bit word offset instead as byte offset.

    The new code for asix_get_eeprom() introduced by this patch is
    modeled after the code in
    drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c
    and provides read access to the entire EEPROM with arbitrary
    offsets and lengths.

    Signed-off-by: Christian Riesch
    Signed-off-by: David S. Miller

    Christian Riesch
     
  • Because there are multiple variants to the stmmac/dwmac driver, the
    dts bindings should be updated to include version of the IP used.

    Signed-off-by: Dinh Nguyen
    Acked-by: Stefan Roese
    Signed-off-by: David S. Miller

    Dinh Nguyen
     
  • cxgb3 interface has a bad performance when VLAN is set. On my current
    setup, a PowerLinux 7R2, I am able to get around 7 Gbps on a TCP_STREAM
    (8 instances, 4k message).
    With this patch, I am able to reach 9.5 Gbps.

    Signed-off-by: Breno Leitao
    Signed-off-by: David S. Miller

    brenohl@br.ibm.com
     
  • The Ethernet II wrapper is only used by IPX protocol, may have once
    been used by Appletalk but not currently. Therefore it makes sense to
    move it to the IPX dust bin and drop the exports.

    Build tested only.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    stephen hemminger
     
  • include/net/dst_ops.h:28:20: warning: ‘struct sock’ declared inside parameter list

    Signed-off-by: David S. Miller

    David S. Miller
     
  • tcp_v4_send_reset() and tcp_v4_send_ack() use a single socket
    per network namespace.

    This leads to bad behavior on multiqueue NICS, because many cpus
    contend for the socket lock and once socket lock is acquired, extra
    false sharing on various socket fields slow down the operations.

    To better resist to attacks, we use a percpu socket. Each cpu can
    run without contention, using appropriate memory (local node)

    Additional features :

    1) We also mirror the queue_mapping of the incoming skb, so that
    answers use the same queue if possible.

    2) Setting SOCK_USE_WRITE_QUEUE socket flag speedup sock_wfree()

    3) We now limit the number of in-flight RST/ACK [1] packets
    per cpu, instead of per namespace, and we honor the sysctl_wmem_default
    limit dynamically. (Prior to this patch, sysctl_wmem_default value was
    copied at boot time, so any further change would not affect tcp_sock
    limit)

    [1] These packets are only generated when no socket was matched for
    the incoming packet.

    Reported-by: Bill Sommerfeld
    Signed-off-by: Eric Dumazet
    Cc: Tom Herbert
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Use global seqlock for the nh_exceptions. Call
    fnhe_oldest with the right hash chain. Correct the diff
    value for dst_set_expires.

    v2: after suggestions from Eric Dumazet:
    * get rid of spin lock fnhe_lock, rearrange update_or_create_fnhe
    * continue daddr search in rt_bind_exception

    v3:
    * remove the daddr check before seqlock in rt_bind_exception
    * restart lookup in rt_bind_exception on detected seqlock change,
    as suggested by David Miller

    Signed-off-by: Julian Anastasov
    Signed-off-by: David S. Miller

    Julian Anastasov
     

19 Jul, 2012

29 commits

  • Reported-by: Steffen Klassert
    Signed-off-by: David S. Miller

    David S. Miller
     
  • Use RFS infrastructure and flow steering in HW to keep CPU
    affinity of rx interrupts and application per TCP stream.

    A flow steering filter is added to the HW whenever the RFS
    ndo callback is invoked by core networking code.

    Because the invocation takes place in interrupt context, the
    actual setup of HW is done using workqueue. Whenever new filter
    is added, the driver checks for expiry of existing filters.

    Since there's window in time between the point where the core
    RFS code invoked the ndo callback, to the point where the HW
    is configured from the workqueue context, the 2nd, 3rd etc
    packets from that stream will cause the net core to invoke
    the callback again and again.

    To prevent inefficient/double configuration of the HW, the filters
    are kept in a database which is indexed using hash function to enable
    fast access.

    Signed-off-by: Amir Vadai
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Amir Vadai
     
  • Enable callers of mlx4_assign_eq to supply a pointer to cpu_rmap.
    If supplied, the assigned IRQ is tracked using rmap infrastructure.

    Signed-off-by: Amir Vadai
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Amir Vadai
     
  • Signed-off-by: Amir Vadai
    Signed-off-by: Or Gerlitz
    Acked-by: Ben Hutchings
    Signed-off-by: David S. Miller

    Amir Vadai
     
  • Define this macro is one common place instead of duplicating it over the code

    Signed-off-by: Amir Vadai
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Amir Vadai
     
  • ip_options_compile can be called for forwarded packets,
    make sure the specific-destionation address is a local one as
    specified in RFC 1812, 4.2.2.2 Addresses in Options

    Signed-off-by: Julian Anastasov
    Signed-off-by: David S. Miller

    Julian Anastasov
     
  • Move fib_compute_spec_dst at the only place where it
    is needed.

    Signed-off-by: Julian Anastasov
    Signed-off-by: David S. Miller

    Julian Anastasov
     
  • This change is just meant to defragment the flags as there are several hole
    that have been introduced since several features, or the flags for them,
    have been removed.

    Signed-off-by: Alexander Duyck
    Tested-by: Phil Schmitt
    Signed-off-by: Jeff Kirsher

    Alexander Duyck
     
  • All of our hardware supports RSS even if it is only for a single queue. So
    instead of toting around the RSS enable flag I am updating the code so that
    all devices are enabled and if we want to disable RSS it is indicated via
    the RSS mask.

    Signed-off-by: Alexander Duyck
    Tested-by: Phil Schmitt
    Signed-off-by: Jeff Kirsher

    Alexander Duyck
     
  • This change essentially makes it so that we can enable almost all of the
    features all at once. This patch allows for the combination of SR-IOV,
    DCB, and FCoE in the case of the x540. It also beefs up the SR-IOV by
    adding support for RSS to the PF.

    The testing matrix gets to be very complex for this patch as there are a
    number of different features and subsets for queueing options. I tried to
    narrow these down a bit by restricting the PF to only supporting 4TC DCB
    when it is enabled in addition to SR-IOV.

    Cc: Greg Rose
    Cc: John Fastabend
    Signed-off-by: Alexander Duyck
    Tested-by: Phil Schmitt
    Tested-by: Ross Brattain
    Signed-off-by: Jeff Kirsher

    Alexander Duyck
     
  • This change allows all pools from the default pool forward to be enabled vi
    ixgbe_configure_virtualization. This is needed as we are planning to use
    queues belonging to adjacent pools for FCoE when SR-IOV and FCoE are both
    enabled.

    In addition this patch contains some minor formatting changes as there were
    a few spots that seemed to be in need of some cleanup.

    Signed-off-by: Alexander Duyck
    Tested-by: Stephen Ko
    Signed-off-by: Jeff Kirsher

    Alexander Duyck
     
  • In ixgbevf_get_ringparam we could run into a NULL pointer dereference
    if the rings were not allocated when we attempted the call. To prevent
    that we can just access the tx/rx_ring_count values instead of attempting
    to access the rings to get the count.

    This change corrects a memory leak and memory corruption in
    ixgbevf_set_ringparam.

    The memory leak was due to us not freeing the resources from the ring
    before overwriting them. This change corrects the memory leak by making
    certain to call ixgbe_free_tx/rx_resources on the rings prior to freeing
    them.

    The memory corruption was because we were replacing the rings but not
    updating the q_vectors. It addresses the memory corruption by leaving the
    rings in place and instead just copying the contents of the new rings into
    the existing rings.

    Signed-off-by: Alexander Duyck
    Acked-by: Greg Rose
    Tested-by: Sibai Li
    Signed-off-by: Jeff Kirsher

    Alexander Duyck
     
  • There is a good bit of redundancy between the Tx checksum and segmentation
    offloads. In order to reduce some of this I am moving the code for
    creating a context descriptor into a separate function.

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

    Alexander Duyck
     
  • This change adds the netdev to the ring structure. This allows for a
    quicker transition from ring to netdev without having to go from ring to
    adapter to netdev.

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

    Alexander Duyck
     
  • The driver is going back one step from its' previous location before
    bumping tail. This is incorrect. We should just be writing the value of
    next_to_use into the tail register.

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

    Alexander Duyck
     
  • We have had an issue when using ixgbe+ixgbevf and 802.1 VLAN tagging.

    When attaching a VLAN to a VF, frames with a 802.1q priority appeared
    untagged on the VF hence not reaching the VLAN, where frames with
    priority 0 where tagged as expected and seen by the VLAN device.

    This seems due to the way ixgbevf is looking up the full tag
    (prio+cfi+vlan) against the adapter active_vlans, as a condition to mark
    the skb tagged.

    Signed-off-by: Pascal Bouchareine
    Tested-by: Sibai Li
    Signed-off-by: Jeff Kirsher

    Pascal Bouchareine
     
  • Introduce ipv6_addr_hash() helper doing a XOR on all bits
    of an IPv6 address, with an optimized x86_64 version.

    Use it in flow dissector, as suggested by Andrew McGregor,
    to reduce hash collision probabilities in fq_codel (and other
    users of flow dissector)

    Use it in ip6_tunnel.c and use more bit shuffling, as suggested
    by David Laight, as existing hash was ignoring most of them.

    Use it in sunrpc and use more bit shuffling, using hash_32().

    Use it in net/ipv6/addrconf.c, using hash_32() as well.

    As a cleanup, use it in net/ipv4/tcp_metrics.c

    Signed-off-by: Eric Dumazet
    Reported-by: Andrew McGregor
    Cc: Dave Taht
    Cc: Tom Herbert
    Cc: David Laight
    Cc: Joe Perches
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Cloned patch of Eric Dumazet for bonding.

    Some workloads greatly benefit of IFF_XMIT_DST_RELEASE capability
    on output net device, avoiding dirtying dst refcount.

    team currently disables IFF_XMIT_DST_RELEASE unconditionally.

    If all ports have the IFF_XMIT_DST_RELEASE bit set, then
    team dev can also have it in its priv_flags.

    Signed-off-by: Jiri Pirko
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • Enabling runtime PM support for cpsw driver

    Signed-off-by: Mugunthan V N
    Signed-off-by: David S. Miller

    Mugunthan V N
     
  • Enabling runtime PM support for davinci mdio driver

    Signed-off-by: Mugunthan V N
    Signed-off-by: David S. Miller

    Mugunthan V N
     
  • This patch adds the netpoll function to support netconsole. Tested and works
    fine on my "JMC250 PCI Express Gigabit Ethernet Controller" (PCI ID 0250).

    Signed-off-by: Peter Wu
    Signed-off-by: David S. Miller

    Peter Wu
     
  • Use correct allocation flags during copy of user space fragments
    to the kernel. Also "improve" couple of for loops.

    Signed-off-by: Krishna Kumar
    Signed-off-by: David S. Miller

    Krishna Kumar
     
  • add OF support for the davinci_emac driver.

    Signed-off-by: Heiko Schocher
    Acked-by: Sekhar Nori
    Signed-off-by: Anatolij Gustschin
    Cc: netdev@vger.kernel.org
    Cc: davinci-linux-open-source@linux.davincidsp.com
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: devicetree-discuss@lists.ozlabs.org
    Cc: Grant Likely
    Cc: Sekhar Nori
    Cc: Wolfgang Denk
    Cc: Anatoly Sivov
    Cc: David Miller
    Signed-off-by: David S. Miller

    Heiko Schocher
     
  • usb_alloc_urb() return value needs to be checked to avoid
    later NULL pointer access.
    Reported by rucsoftsec@gmail.com via bugzilla.kernel.org #44601.

    Signed-off-by: Karsten Keil
    Signed-off-by: David S. Miller

    Karsten Keil
     
  • pnp_activate_dev() return value needs to be checked to make sure that
    following calls calls to the PNP functions do work correctly.
    Fix for report #44491 on bugzilla.kernel.org.

    Signed-off-by: Karsten Keil
    Signed-off-by: David S. Miller

    Karsten Keil
     
  • The condition is always true so WOL will never work.

    Signed-off-by: Dan Carpenter
    Acked-by: Jitendra Kalsaria
    Signed-off-by: David S. Miller

    Dan Carpenter
     
  • Drivers should pull only ethernet header from page frag
    to skb->head.

    Pulling 64 bytes is too much for TCP (without options) on IPv4.

    However, it makes sense to pull all the frame if it fits the
    128 bytes bloc allocated for skb->head, to free one page per
    small incoming frame.

    Signed-off-by: Eric Dumazet
    Cc: Po-Yu Chuang
    Acked-by: Yan-Pai Chen
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Sold by O2 (telefonica germany) under the name "LTE4G"

    Tested-by: Thomas Schäfer
    Signed-off-by: Bjørn Mork
    Signed-off-by: David S. Miller

    Bjørn Mork
     
  • New VTI tunnel kernel module, Kconfig and Makefile changes.

    Signed-off-by: Saurabh Mohan
    Reviewed-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Saurabh