01 Jul, 2016

1 commit

  • This patch introduces a new event - NETDEV_CHANGE_TX_QUEUE_LEN, this
    will be triggered when tx_queue_len. It could be used by net device
    who want to do some processing at that time. An example is tun who may
    want to resize tx array when tx_queue_len is changed.

    Cc: John Fastabend
    Signed-off-by: Jason Wang
    Acked-by: John Fastabend
    Signed-off-by: David S. Miller

    Jason Wang
     

08 Jun, 2016

1 commit

  • The of_find_net_device_by_node() function is defined in
    but not included in the .c file that
    implements it. Fix the following warning by including the
    header:

    net/core/net-sysfs.c:1494:19: warning: symbol 'of_find_net_device_by_node' was not declared. Should it be static?

    Signed-off-by: Ben Dooks
    Signed-off-by: David S. Miller

    Ben Dooks
     

26 Feb, 2016

1 commit


18 Feb, 2016

1 commit


06 Feb, 2016

1 commit

  • This adds an rx_nohandler stat counter, along with a sysfs statistics
    node, and copies the counter out via netlink as well.

    CC: "David S. Miller"
    CC: Eric Dumazet
    CC: Jiri Pirko
    CC: Daniel Borkmann
    CC: Tom Herbert
    CC: Jay Vosburgh
    CC: Veaceslav Falico
    CC: Andy Gospodarek
    CC: netdev@vger.kernel.org
    Signed-off-by: Jarod Wilson
    Signed-off-by: David S. Miller

    Jarod Wilson
     

23 Dec, 2015

1 commit


16 Dec, 2015

1 commit

  • switchdev drivers need to know the netdev on which the switchdev op was
    invoked. For example, the STP state of a VLAN interface configured on top
    of a port can change while being member in a bridge. In this case, the
    underlying driver should only change the STP state of that particular
    VLAN and not of all the VLANs configured on the port.

    However, current switchdev infrastructure only passes the port netdev down
    to the driver. Solve that by passing the original device down to the
    driver as part of the required switchdev object / attribute.

    This doesn't entail any change in current switchdev drivers. It simply
    enables those supporting stacked devices to know the originating device
    and act accordingly.

    Signed-off-by: Ido Schimmel
    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Ido Schimmel
     

03 Oct, 2015

1 commit


02 Oct, 2015

1 commit


30 Sep, 2015

1 commit

  • Otherwise 4294967295 (MBit/s) (-1) will be printed when there is no link.
    Documentation/ABI/testing/sysfs-class-net does not state if this shall be
    signed or unsigned.
    Also remove the now unused variable fmt_udec.

    Signed-off-by: Alexander Stein
    Signed-off-by: David S. Miller

    Alexander Stein
     

27 Sep, 2015

1 commit


25 Sep, 2015

1 commit

  • of_find_net_device_by_node() uses class_find_device() internally to
    lookup the corresponding network device. class_find_device() returns
    a reference to the embedded struct device, with its refcount
    incremented.

    Add a comment to the definition in net/core/net-sysfs.c indicating the
    need to drop this refcount, and fix the DSA code to drop this refcount
    when the OF-generated platform data is cleaned up and freed. Also
    arrange for the ref to be dropped when handling errors.

    Signed-off-by: Russell King
    Signed-off-by: David S. Miller

    Russell King
     

18 Sep, 2015

1 commit

  • Redo commit ed1acc8cd8c22efa919da8d300bab646e01c2dce.

    Commit 822b3b2ebfff8e9b3d006086c527738a7ca00cd0 ("net: Add max rate tx queue
    attribute") moved get_netdev_queue_index around, but kept the old version.
    Probably because of a reuse of the original patch from before Eric's change to
    that function.

    Remove one inline keyword, and no need for a loop to find
    an index into a table.

    Signed-off-by: Thadeu Lima de Souza Cascardo
    Fixes: 822b3b2ebfff ("net: Add max rate tx queue attribute")
    Acked-by: Or Gerlitz
    Acked-by: John Fastabend
    Cc: Eric Dumazet
    Signed-off-by: David S. Miller

    Thadeu Lima de Souza Cascardo
     

14 Aug, 2015

1 commit

  • Commit 10e4ea751 ("net: Fix race condition in store_rps_map") has moved the
    manipulation of the rps_needed jump label under a spinlock. Since changing
    the state of a jump label may sleep this is incorrect and causes warnings
    during runtime.

    Make rps_map_lock a mutex to allow sleeping under it.

    Fixes: 10e4ea751 ("net: Fix race condition in store_rps_map")
    Signed-off-by: Sasha Levin
    Acked-by: Tom Herbert
    Signed-off-by: David S. Miller

    Sasha Levin
     

08 Aug, 2015

1 commit

  • There is a race condition in store_rps_map that allows jump label
    count in rps_needed to go below zero. This can happen when
    concurrently attempting to set and a clear map.

    Scenario:

    1. rps_needed count is zero
    2. New map is assigned by setting thread, but rps_needed count _not_ yet
    incremented (rps_needed count still zero)
    2. Map is cleared by second thread, old_map set to that just assigned
    3. Second thread performs static_key_slow_dec, rps_needed count now goes
    negative

    Fix is to increment or decrement rps_needed under the spinlock.

    Signed-off-by: Tom Herbert
    Signed-off-by: David S. Miller

    Tom Herbert
     

16 Jul, 2015

1 commit

  • This patch introduces the proto_down flag that can be used by user space
    applications to notify switch drivers that errors have been detected on the
    device.

    The switch driver can react to protodown notification by doing a phys down
    on the associated switch port.

    Signed-off-by: Anuradha Karuppiah
    Signed-off-by: Andy Gospodarek
    Signed-off-by: Roopa Prabhu
    Signed-off-by: Wilson Kok
    Signed-off-by: David S. Miller

    Anuradha Karuppiah
     

14 May, 2015

1 commit


13 May, 2015

2 commits

  • Switch ID is just a gettable port attribute. Convert switchdev op
    switchdev_parent_id_get to a switchdev attr.

    Note: for sysfs and netlink interfaces, SWITCHDEV_ATTR_PORT_PARENT_ID is
    called with SWITCHDEV_F_NO_RECUSE to limit switch ID user-visiblity to only
    port netdevs. So when a port is stacked under bond/bridge, the user can
    only query switch id via the switch ports, but not via the upper devices

    Signed-off-by: Scott Feldman
    Acked-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Scott Feldman
     
  • Turned out that "switchdev" sticks. So just unify all related terms to use
    this prefix.

    Signed-off-by: Jiri Pirko
    Signed-off-by: Scott Feldman
    Acked-by: Roopa Prabhu
    Acked-by: Andy Gospodarek
    Signed-off-by: David S. Miller

    Jiri Pirko
     

03 Apr, 2015

1 commit

  • The goal of this patch is to prepare the removal of the iflink field. It
    introduces a new ndo function, which will be implemented by virtual interfaces.

    There is no functional change into this patch. All readers of iflink field
    now call dev_get_iflink().

    Signed-off-by: Nicolas Dichtel
    Signed-off-by: David S. Miller

    Nicolas Dichtel
     

19 Mar, 2015

2 commits

  • Similar to port id allow netdevices to specify port names and export
    the name via sysfs. Drivers can implement the netdevice operation to
    assist udev in having sane default names for the devices using the
    rule:

    $ cat /etc/udev/rules.d/80-net-setup-link.rules
    SUBSYSTEM=="net", ACTION=="add", ATTR{phys_port_name}!="",
    NAME="$attr{phys_port_name}"

    Use of phys_name versus phys_id was suggested-by Jiri Pirko.

    Signed-off-by: David Ahern
    Acked-by: Jiri Pirko
    Acked-by: Scott Feldman
    Signed-off-by: David S. Miller

    David Ahern
     
  • This adds a tx_maxrate attribute to the tx queue sysfs entry allowing
    for max-rate limiting. Along with DCB-ETS and BQL this provides another
    knob to tune queue performance. The limit units are Mbps.

    By default it is disabled. To disable the rate limitation after it
    has been set for a queue, it should be set to zero.

    Signed-off-by: John Fastabend
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    John Fastabend
     

10 Mar, 2015

1 commit

  • Add a helper function which allows getting the struct net_device pointer
    associated with a given struct device_node pointer. This is useful for
    instance for DSA Ethernet devices not backed by a platform_device, but a PCI
    device.

    Since we need to access net_class which is not accessible outside of
    net/core/net-sysfs.c, this helper function is also added here and gated
    with CONFIG_OF_NET.

    Network devices initialized with SET_NETDEV_DEV() are also taken into
    account by checking for dev->parent first and then falling back to
    checking the device pointer within struct net_device.

    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     

14 Feb, 2015

1 commit

  • printk and friends can now format bitmaps using '%*pb[l]'. cpumask
    and nodemask also provide cpumask_pr_args() and nodemask_pr_args()
    respectively which can be used to generate the two printf arguments
    necessary to format the specified cpu/nodemask.

    Signed-off-by: Tejun Heo
    Acked-by: David S. Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tejun Heo
     

03 Dec, 2014

2 commits


11 Nov, 2014

1 commit

  • Tuning coalescing parameters on NIC can be really hard.

    Servers can handle both bulk and RPC like traffic, with conflicting
    goals : bulk flows want as big GRO packets as possible, RPC want minimal
    latencies.

    To reach big GRO packets on 10Gbe NIC, one can use :

    ethtool -C eth0 rx-usecs 4 rx-frames 44

    But this penalizes rpc sessions, with an increase of latencies, up to
    50% in some cases, as NICs generally do not force an interrupt when
    a packet with TCP Push flag is received.

    Some NICs do not have an absolute timer, only a timer rearmed for every
    incoming packet.

    This patch uses a different strategy : Let GRO stack decides what do do,
    based on traffic pattern.

    Packets with Push flag wont be delayed.
    Packets without Push flag might be held in GRO engine, if we keep
    receiving data.

    This new mechanism is off by default, and shall be enabled by setting
    /sys/class/net/ethX/gro_flush_timeout to a value in nanosecond.

    To fully enable this mechanism, drivers should use napi_complete_done()
    instead of napi_complete().

    Tested:
    Ran 200 netperf TCP_STREAM from A to B (10Gbe mlx4 link, 8 RX queues)

    Without this feature, we send back about 305,000 ACK per second.

    GRO aggregation ratio is low (811/305 = 2.65 segments per GRO packet)

    Setting a timer of 2000 nsec is enough to increase GRO packet sizes
    and reduce number of ACK packets. (811/19.2 = 42)

    Receiver performs less calls to upper stacks, less wakes up.
    This also reduces cpu usage on the sender, as it receives less ACK
    packets.

    Note that reducing number of wakes up increases cpu efficiency, but can
    decrease QPS, as applications wont have the chance to warmup cpu caches
    doing a partial read of RPC requests/answers if they fit in one skb.

    B:~# sar -n DEV 1 10 | grep eth0 | tail -1
    Average: eth0 811269.80 305732.30 1199462.57 19705.72 0.00
    0.00 0.50

    B:~# echo 2000 >/sys/class/net/eth0/gro_flush_timeout

    B:~# sar -n DEV 1 10 | grep eth0 | tail -1
    Average: eth0 811577.30 19230.80 1199916.51 1239.80 0.00
    0.00 0.50

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

    Eric Dumazet
     

25 Jul, 2014

1 commit


16 Jul, 2014

1 commit

  • Based on a patch by David Herrmann.

    The name_assign_type attribute gives hints where the interface name of a
    given net-device comes from. These values are currently defined:
    NET_NAME_ENUM:
    The ifname is provided by the kernel with an enumerated
    suffix, typically based on order of discovery. Names may
    be reused and unpredictable.
    NET_NAME_PREDICTABLE:
    The ifname has been assigned by the kernel in a predictable way
    that is guaranteed to avoid reuse and always be the same for a
    given device. Examples include statically created devices like
    the loopback device and names deduced from hardware properties
    (including being given explicitly by the firmware). Names
    depending on the order of discovery, or in any other way on the
    existence of other devices, must not be marked as PREDICTABLE.
    NET_NAME_USER:
    The ifname was provided by user-space during net-device setup.
    NET_NAME_RENAMED:
    The net-device has been renamed from userspace. Once this type is set,
    it cannot change again.
    NET_NAME_UNKNOWN:
    This is an internal placeholder to indicate that we yet haven't yet
    categorized the name. It will not be exposed to userspace, rather
    -EINVAL is returned.

    The aim of these patches is to improve user-space renaming of interfaces. As
    a general rule, userspace must rename interfaces to guarantee that names stay
    the same every time a given piece of hardware appears (at boot, or when
    attaching it). However, there are several situations where userspace should
    not perform the renaming, and that depends on both the policy of the local
    admin, but crucially also on the nature of the current interface name.

    If an interface was created in repsonse to a userspace request, and userspace
    already provided a name, we most probably want to leave that name alone. The
    main instance of this is wifi-P2P devices created over nl80211, which currently
    have a long-standing bug where they are getting renamed by udev. We label such
    names NET_NAME_USER.

    If an interface, unbeknown to us, has already been renamed from userspace, we
    most probably want to leave also that alone. This will typically happen when
    third-party plugins (for instance to udev, but the interface is generic so could
    be from anywhere) renames the interface without informing udev about it. A
    typical situation is when you switch root from an installer or an initrd to the
    real system and the new instance of udev does not know what happened before
    the switch. These types of problems have caused repeated issues in the past. To
    solve this, once an interface has been renamed, its name is labelled
    NET_NAME_RENAMED.

    In many cases, the kernel is actually able to name interfaces in such a
    way that there is no need for userspace to rename them. This is the case when
    the enumeration order of devices, or in fact any other (non-parent) device on
    the system, can not influence the name of the interface. Examples include
    statically created devices, or any naming schemes based on hardware properties
    of the interface. In this case the admin may prefer to use the kernel-provided
    names, and to make that possible we label such names NET_NAME_PREDICTABLE.
    We want the kernel to have tho possibilty of performing predictable interface
    naming itself (and exposing to userspace that it has), as the information
    necessary for a proper naming scheme for a certain class of devices may not
    be exposed to userspace.

    The case where renaming is almost certainly desired, is when the kernel has
    given the interface a name using global device enumeration based on order of
    discovery (ethX, wlanY, etc). These naming schemes are labelled NET_NAME_ENUM.

    Lastly, a fallback is left as NET_NAME_UNKNOWN, to indicate that a driver has
    not yet been ported. This is mostly useful as a transitionary measure, allowing
    us to label the various naming schemes bit by bit.

    v8: minor documentation fixes
    v9: move comment to the right commit

    Signed-off-by: Tom Gundersen
    Reviewed-by: David Herrmann
    Reviewed-by: Kay Sievers
    Signed-off-by: David S. Miller

    Tom Gundersen
     

03 Apr, 2014

1 commit

  • Pull networking updates from David Miller:
    "Here is my initial pull request for the networking subsystem during
    this merge window:

    1) Support for ESN in AH (RFC 4302) from Fan Du.

    2) Add full kernel doc for ethtool command structures, from Ben
    Hutchings.

    3) Add BCM7xxx PHY driver, from Florian Fainelli.

    4) Export computed TCP rate information in netlink socket dumps, from
    Eric Dumazet.

    5) Allow IPSEC SA to be dumped partially using a filter, from Nicolas
    Dichtel.

    6) Convert many drivers to pci_enable_msix_range(), from Alexander
    Gordeev.

    7) Record SKB timestamps more efficiently, from Eric Dumazet.

    8) Switch to microsecond resolution for TCP round trip times, also
    from Eric Dumazet.

    9) Clean up and fix 6lowpan fragmentation handling by making use of
    the existing inet_frag api for it's implementation.

    10) Add TX grant mapping to xen-netback driver, from Zoltan Kiss.

    11) Auto size SKB lengths when composing netlink messages based upon
    past message sizes used, from Eric Dumazet.

    12) qdisc dumps can take a long time, add a cond_resched(), From Eric
    Dumazet.

    13) Sanitize netpoll core and drivers wrt. SKB handling semantics.
    Get rid of never-used-in-tree netpoll RX handling. From Eric W
    Biederman.

    14) Support inter-address-family and namespace changing in VTI tunnel
    driver(s). From Steffen Klassert.

    15) Add Altera TSE driver, from Vince Bridgers.

    16) Optimizing csum_replace2() so that it doesn't adjust the checksum
    by checksumming the entire header, from Eric Dumazet.

    17) Expand BPF internal implementation for faster interpreting, more
    direct translations into JIT'd code, and much cleaner uses of BPF
    filtering in non-socket ocntexts. From Daniel Borkmann and Alexei
    Starovoitov"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1976 commits)
    netpoll: Use skb_irq_freeable to make zap_completion_queue safe.
    net: Add a test to see if a skb is freeable in irq context
    qlcnic: Fix build failure due to undefined reference to `vxlan_get_rx_port'
    net: ptp: move PTP classifier in its own file
    net: sxgbe: make "core_ops" static
    net: sxgbe: fix logical vs bitwise operation
    net: sxgbe: sxgbe_mdio_register() frees the bus
    Call efx_set_channels() before efx->type->dimension_resources()
    xen-netback: disable rogue vif in kthread context
    net/mlx4: Set proper build dependancy with vxlan
    be2net: fix build dependency on VxLAN
    mac802154: make csma/cca parameters per-wpan
    mac802154: allow only one WPAN to be up at any given time
    net: filter: minor: fix kdoc in __sk_run_filter
    netlink: don't compare the nul-termination in nla_strcmp
    can: c_can: Avoid led toggling for every packet.
    can: c_can: Simplify TX interrupt cleanup
    can: c_can: Store dlc private
    can: c_can: Reduce register access
    can: c_can: Make the code readable
    ...

    Linus Torvalds
     

01 Apr, 2014

1 commit

  • This allows to monitor carrier on/off transitions and detect link
    flapping issues:
    - new /sys/class/net/X/carrier_changes
    - new rtnetlink IFLA_CARRIER_CHANGES (getlink)

    Tested:
    - grep . /sys/class/net/*/carrier_changes
    + ip link set dev X down/up
    + plug/unplug cable
    - updated iproute2: prints IFLA_CARRIER_CHANGES
    - iproute2 20121211-2 (debian): unchanged behavior

    Signed-off-by: David Decotigny
    Signed-off-by: David S. Miller

    david decotigny
     

27 Feb, 2014

1 commit

  • Add a sysfs file to enable user space to query the device
    port number used by a netdevice instance. This is needed for
    devices that have multiple ports on the same PCI function.

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

    Amir Vadai
     

20 Feb, 2014

1 commit


15 Feb, 2014

1 commit


20 Jan, 2014

1 commit

  • When I create a new namespace with 'ip netns add net0', or add/remove
    new links in a namespace with 'ip link add/delete type veth', rx/tx
    queues events can be got in all namespaces. That is because rx/tx queue
    ktypes do not have namespace support, and their kobj parents are setted to
    NULL. This patch is to fix it.

    Reported-by: Libo Chen
    Signed-off-by: Libo Chen
    Signed-off-by: Weilong Chen
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: David S. Miller

    Weilong Chen
     

17 Jan, 2014

1 commit


06 Jan, 2014

1 commit

  • netdev_kobject_init() is only being called from __init context,
    that is, net_dev_init(), so annotate it with __init as well, thus
    the kernel can take this as a hint that the function is used only
    during the initialization phase and free up used memory resources
    after its invocation.

    Signed-off-by: Daniel Borkmann
    Signed-off-by: David S. Miller

    Daniel Borkmann
     

11 Dec, 2013

1 commit


13 Nov, 2013

1 commit

  • Pull networking updates from David Miller:

    1) The addition of nftables. No longer will we need protocol aware
    firewall filtering modules, it can all live in userspace.

    At the core of nftables is a, for lack of a better term, virtual
    machine that executes byte codes to inspect packet or metadata
    (arriving interface index, etc.) and make verdict decisions.

    Besides support for loading packet contents and comparing them, the
    interpreter supports lookups in various datastructures as
    fundamental operations. For example sets are supports, and
    therefore one could create a set of whitelist IP address entries
    which have ACCEPT verdicts attached to them, and use the appropriate
    byte codes to do such lookups.

    Since the interpreted code is composed in userspace, userspace can
    do things like optimize things before giving it to the kernel.

    Another major improvement is the capability of atomically updating
    portions of the ruleset. In the existing netfilter implementation,
    one has to update the entire rule set in order to make a change and
    this is very expensive.

    Userspace tools exist to create nftables rules using existing
    netfilter rule sets, but both kernel implementations will need to
    co-exist for quite some time as we transition from the old to the
    new stuff.

    Kudos to Patrick McHardy, Pablo Neira Ayuso, and others who have
    worked so hard on this.

    2) Daniel Borkmann and Hannes Frederic Sowa made several improvements
    to our pseudo-random number generator, mostly used for things like
    UDP port randomization and netfitler, amongst other things.

    In particular the taus88 generater is updated to taus113, and test
    cases are added.

    3) Support 64-bit rates in HTB and TBF schedulers, from Eric Dumazet
    and Yang Yingliang.

    4) Add support for new 577xx tigon3 chips to tg3 driver, from Nithin
    Sujir.

    5) Fix two fatal flaws in TCP dynamic right sizing, from Eric Dumazet,
    Neal Cardwell, and Yuchung Cheng.

    6) Allow IP_TOS and IP_TTL to be specified in sendmsg() ancillary
    control message data, much like other socket option attributes.
    From Francesco Fusco.

    7) Allow applications to specify a cap on the rate computed
    automatically by the kernel for pacing flows, via a new
    SO_MAX_PACING_RATE socket option. From Eric Dumazet.

    8) Make the initial autotuned send buffer sizing in TCP more closely
    reflect actual needs, from Eric Dumazet.

    9) Currently early socket demux only happens for TCP sockets, but we
    can do it for connected UDP sockets too. Implementation from Shawn
    Bohrer.

    10) Refactor inet socket demux with the goal of improving hash demux
    performance for listening sockets. With the main goals being able
    to use RCU lookups on even request sockets, and eliminating the
    listening lock contention. From Eric Dumazet.

    11) The bonding layer has many demuxes in it's fast path, and an RCU
    conversion was started back in 3.11, several changes here extend the
    RCU usage to even more locations. From Ding Tianhong and Wang
    Yufen, based upon suggestions by Nikolay Aleksandrov and Veaceslav
    Falico.

    12) Allow stackability of segmentation offloads to, in particular, allow
    segmentation offloading over tunnels. From Eric Dumazet.

    13) Significantly improve the handling of secret keys we input into the
    various hash functions in the inet hashtables, TCP fast open, as
    well as syncookies. From Hannes Frederic Sowa. The key fundamental
    operation is "net_get_random_once()" which uses static keys.

    Hannes even extended this to ipv4/ipv6 fragmentation handling and
    our generic flow dissector.

    14) The generic driver layer takes care now to set the driver data to
    NULL on device removal, so it's no longer necessary for drivers to
    explicitly set it to NULL any more. Many drivers have been cleaned
    up in this way, from Jingoo Han.

    15) Add a BPF based packet scheduler classifier, from Daniel Borkmann.

    16) Improve CRC32 interfaces and generic SKB checksum iterators so that
    SCTP's checksumming can more cleanly be handled. Also from Daniel
    Borkmann.

    17) Add a new PMTU discovery mode, IP_PMTUDISC_INTERFACE, which forces
    using the interface MTU value. This helps avoid PMTU attacks,
    particularly on DNS servers. From Hannes Frederic Sowa.

    18) Use generic XPS for transmit queue steering rather than internal
    (re-)implementation in virtio-net. From Jason Wang.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1622 commits)
    random32: add test cases for taus113 implementation
    random32: upgrade taus88 generator to taus113 from errata paper
    random32: move rnd_state to linux/random.h
    random32: add prandom_reseed_late() and call when nonblocking pool becomes initialized
    random32: add periodic reseeding
    random32: fix off-by-one in seeding requirement
    PHY: Add RTL8201CP phy_driver to realtek
    xtsonic: add missing platform_set_drvdata() in xtsonic_probe()
    macmace: add missing platform_set_drvdata() in mace_probe()
    ethernet/arc/arc_emac: add missing platform_set_drvdata() in arc_emac_probe()
    ipv6: protect for_each_sk_fl_rcu in mem_check with rcu_read_lock_bh
    vlan: Implement vlan_dev_get_egress_qos_mask as an inline.
    ixgbe: add warning when max_vfs is out of range.
    igb: Update link modes display in ethtool
    netfilter: push reasm skb through instead of original frag skbs
    ip6_output: fragment outgoing reassembled skb properly
    MAINTAINERS: mv643xx_eth: take over maintainership from Lennart
    net_sched: tbf: support of 64bit rates
    ixgbe: deleting dfwd stations out of order can cause null ptr deref
    ixgbe: fix build err, num_rx_queues is only available with CONFIG_RPS
    ...

    Linus Torvalds
     

04 Nov, 2013

1 commit

  • Joby Poriyath provided a xen-netback patch to reduce the size of
    xenvif structure as some netdev allocation could fail under
    memory pressure/fragmentation.

    This patch is handling the problem at the core level, allowing
    any netdev structures to use vmalloc() if kmalloc() failed.

    As vmalloc() adds overhead on a critical network path, add __GFP_REPEAT
    to kzalloc() flags to do this fallback only when really needed.

    Signed-off-by: Eric Dumazet
    Reported-by: Joby Poriyath
    Cc: Ben Hutchings
    Signed-off-by: David S. Miller

    Eric Dumazet