28 Apr, 2016

16 commits

  • Rename ICMP_INC_STATS_BH() to __ICMP_INC_STATS()

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

    Eric Dumazet
     
  • Rename DCCP_INC_STATS_BH() to __DCCP_INC_STATS()

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

    Eric Dumazet
     
  • In the old days (before linux-3.0), SNMP counters were duplicated,
    one for user context, and one for BH context.

    After commit 8f0ea0fe3a03 ("snmp: reduce percpu needs by 50%")
    we have a single copy, and what really matters is preemption being
    enabled or disabled, since we use this_cpu_inc() or __this_cpu_inc()
    respectively.

    We therefore kill SNMP_INC_STATS_USER(), SNMP_ADD_STATS_USER(),
    NET_INC_STATS_USER(), NET_ADD_STATS_USER(), SCTP_INC_STATS_USER(),
    SNMP_INC_STATS64_USER(), SNMP_ADD_STATS64_USER(), TCP_ADD_STATS_USER(),
    UDP_INC_STATS_USER(), UDP6_INC_STATS_USER(), and XFRM_INC_STATS_USER()

    Following patches will rename __BH helpers to make clear their
    usage is not tied to BH being disabled.

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

    Eric Dumazet
     
  • Jeff Kirsher says:

    ====================
    40GbE Intel Wired LAN Driver Updates 2016-04-27

    This series contains updates to i40e and i40evf.

    Alex Duyck cleans up the feature flags since they are becoming pretty
    "massive", the primary change being that we now build our features list
    around hw_encap_features. Added support for IPIP and SIT offloads,
    which should improvement in throughput for IPIP and SIT tunnels with
    the offload enabled.

    Mitch adds support for configuring RSS on behalf of the VFs, which removes
    the burden of dealing with different hardware interfaces from the VF
    drivers and improves future compatibility. Fix to ensure that we do not
    panic by checking that the vsi_res pointer is valid before dereferencing
    it, after which we can drink beer and eat peanuts.

    Shannon does come housekeeping in i40e_add_fdir_ethtool() in preparation
    for more cloud filter work. Added flexibility to the nvmupdate
    facility by adding the ability to specify an AQ event opcode to wait on
    after Exec_AQ request.

    Michal adds device capability which defines if an update is available and
    if a security check is needed during the update process.

    Kamil just adds a device id to support X722 QSFP+ device.

    Greg fixes an issue where a mirror rule ID may be zero, so do not return
    invalid parameter when the user passes in a zero for a rule ID. Adds
    support to steer packets to VSIs by VLAN tag alone while being in
    promiscuous mode for multicast and unicast MAC addresses.

    Jesse fixes the driver from offloading the VLAN tag into the skb any
    time there was a VLAN tag and the hardware stripping was enabled, to
    making sure it is enabled before put_tag.

    v2: Dropped patch 8 ("i40e: Allow user to change input set mask for flow
    director") while Kiran reworks a more generalized solution based
    on feedback from David Miller.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • sd->input_queue_head is incremented for each processed packet
    in process_backlog(), and read from other cpus performing
    Out Of Order avoidance in get_rps_cpu()

    Moving this field in a separate cache line keeps it mostly
    hot for the cpu in process_backlog(), as other cpus will
    only read it.

    In a stress test, process_backlog() was consuming 6.80 % of cpu cycles,
    and the patch reduced the cost to 0.65 %

    Signed-off-by: Eric Dumazet
    Acked-by: Tom Herbert
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • This adds support for W5500 chip.

    W5500 has similar register and memory organization with W5100 and W5200.
    There are a few important differences listed below but it is still
    possible to share common code with W5100 and W5200.

    * W5500 register and memory are organized by multiple blocks. Each one
    is selected by 16bits offset address and 5bits block select bits.

    But the existing register access operations take u16 address. This change
    extends the addess by u32 address and put offset address to lower 16bits
    and block select bits to upper 16bits.

    This change also adds the offset addresses for socket register and TX/RX
    memory blocks to the driver private data structure in order to reduce
    conditional switches for each chip.

    * W5500 has the different register offset for socket interrupt mask
    register. Newly added internal functions w5100_enable_intr() and
    w5100_disable_intr() take care of the diffrence.

    * W5500 has the different register offset for retry time-value register.
    But this register is only used to verify that the reset value is correctly
    read at initialization. So move the verification to w5100_hw_reset()
    which already does different things for different chips.

    Signed-off-by: Akinobu Mita
    Cc: Mike Sinkovsky
    Cc: David S. Miller
    Signed-off-by: David S. Miller

    Akinobu Mita
     
  • Add necessary Linux Ethernet driver support for promiscuous mode
    operation. Add a flag so the VF knows it is in promiscuous mode
    and two state flags to discreetly track multicast and unicast
    promiscuous states.

    Change-Id: Ib2f2dc7a7582304fec90fc917ebb7ded21ba1de4
    Signed-off-by: Anjali Singhai Jain
    Signed-off-by: Greg Rose
    Signed-off-by: Jesse Brandeburg
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Anjali Singhai Jain
     
  • Add infrastructure for Network Function Virtualization VLAN tagged
    packet steering feature.

    Change-Id: I9b873d8fcc253858e6baba65ac68ec5b9363944e
    Signed-off-by: Anjali Singhai Jain
    Signed-off-by: Greg Rose
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Anjali Singhai Jain
     
  • NFV use cases require the ability to steer packets to VSIs by VLAN tag
    alone while being in promiscuous mode for multicast and unicast MAC
    addresses. These two new functions support that ability.

    Signed-off-by: Greg Rose
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Greg Rose
     
  • The driver was offloading the VLAN tag into the skb
    any time there was a VLAN tag and the hardware stripping was
    enabled. Just check to make sure it's enabled before put_tag.

    Change-Id: Ife95290c06edd9a616393b38679923938b382241
    Signed-off-by: Jesse Brandeburg
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Jesse Brandeburg
     
  • A mirror rule ID may be zero so do not return invalid parameter when the
    user passes in a zero value for a rule ID.

    Change-ID: I261b8c24725ce2c6ed32f859da81093dfcbe2970
    Signed-off-by: Greg Rose
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Greg Rose
     
  • Change-ID: I1370fbc7774e815ac1ad56561e97488e829592fc
    Signed-off-by: Kamil Krawczyk
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Kamil Krawczyk
     
  • Add device capability which defines if update is available and security
    check is needed during update process.

    Change-ID: I380787c878275e1df18b39198df3ee3666342282
    Signed-off-by: Michal Kosiarz
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Michal Kosiarz
     
  • Minor overlapping changes in the conflicts.

    In the macsec case, the change of the default ID macro
    name overlapped with the 64-bit netlink attribute alignment
    fixes in net-next.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Similar to 3bfd847203c6 ("net: Use passed in table for nexthop lookups")
    for IPv4, if the route spec contains a table id use that to lookup the
    next hop first and fall back to a full lookup if it fails (per the fix
    4c9bcd117918b ("net: Fix nexthop lookups")).

    Example:

    root@kenny:~# ip -6 ro ls table red
    local 2100:1::1 dev lo proto none metric 0 pref medium
    2100:1::/120 dev eth1 proto kernel metric 256 pref medium
    local 2100:2::1 dev lo proto none metric 0 pref medium
    2100:2::/120 dev eth2 proto kernel metric 256 pref medium
    local fe80::e0:f9ff:fe09:3cac dev lo proto none metric 0 pref medium
    local fe80::e0:f9ff:fe1c:b974 dev lo proto none metric 0 pref medium
    fe80::/64 dev eth1 proto kernel metric 256 pref medium
    fe80::/64 dev eth2 proto kernel metric 256 pref medium
    ff00::/8 dev red metric 256 pref medium
    ff00::/8 dev eth1 metric 256 pref medium
    ff00::/8 dev eth2 metric 256 pref medium
    unreachable default dev lo metric 240 error -113 pref medium

    root@kenny:~# ip -6 ro add table red 2100:3::/64 via 2100:1::64
    RTNETLINK answers: No route to host

    Route add fails even though 2100:1::64 is a reachable next hop:
    root@kenny:~# ping6 -I red 2100:1::64
    ping6: Warning: source address might be selected on device other than red.
    PING 2100:1::64(2100:1::64) from 2100:1::1 red: 56 data bytes
    64 bytes from 2100:1::64: icmp_seq=1 ttl=64 time=1.33 ms

    With this patch:
    root@kenny:~# ip -6 ro add table red 2100:3::/64 via 2100:1::64
    root@kenny:~# ip -6 ro ls table red
    local 2100:1::1 dev lo proto none metric 0 pref medium
    2100:1::/120 dev eth1 proto kernel metric 256 pref medium
    local 2100:2::1 dev lo proto none metric 0 pref medium
    2100:2::/120 dev eth2 proto kernel metric 256 pref medium
    2100:3::/64 via 2100:1::64 dev eth1 metric 1024 pref medium
    local fe80::e0:f9ff:fe09:3cac dev lo proto none metric 0 pref medium
    local fe80::e0:f9ff:fe1c:b974 dev lo proto none metric 0 pref medium
    fe80::/64 dev eth1 proto kernel metric 256 pref medium
    fe80::/64 dev eth2 proto kernel metric 256 pref medium
    ff00::/8 dev red metric 256 pref medium
    ff00::/8 dev eth1 metric 256 pref medium
    ff00::/8 dev eth2 metric 256 pref medium
    unreachable default dev lo metric 240 error -113 pref medium

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

    David Ahern
     
  • The type TASKSTATS_TYPE_NULL should always be ignored.

    When jumping to the next attribute, only the length of the current
    attribute should be added, not the length of all nested attributes.
    This last bug was not visible before commit 80df554275c2, because the
    kernel didn't put more than two nested attributes.

    Fixes: a3baf649ca9c ("[PATCH] per-task-delay-accounting: documentation")
    Fixes: 80df554275c2 ("taskstats: use the libnl API to align nlattr on 64-bit")
    Signed-off-by: Nicolas Dichtel
    Signed-off-by: David S. Miller

    Nicolas Dichtel
     

27 Apr, 2016

24 commits

  • Pull networking fixes from David Miller:

    1) Handle v4/v6 mixed sockets properly in soreuseport, from Craig
    Gallak.

    2) Bug fixes for the new macsec facility (missing kmalloc NULL checks,
    missing locking around netdev list traversal, etc.) from Sabrina
    Dubroca.

    3) Fix handling of host routes on ifdown in ipv6, from David Ahern.

    4) Fix double-fdput in bpf verifier. From Jann Horn.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (31 commits)
    bpf: fix double-fdput in replace_map_fd_with_map_ptr()
    net: ipv6: Delete host routes on an ifdown
    Revert "ipv6: Revert optional address flusing on ifdown."
    net/mlx4_en: fix spurious timestamping callbacks
    net: dummy: remove note about being Y by default
    cxgbi: fix uninitialized flowi6
    ipv6: Revert optional address flusing on ifdown.
    ipv4/fib: don't warn when primary address is missing if in_dev is dead
    net/mlx5: Add pci shutdown callback
    net/mlx5_core: Remove static from local variable
    net/mlx5e: Use vport MTU rather than physical port MTU
    net/mlx5e: Fix minimum MTU
    net/mlx5e: Device's mtu field is u16 and not int
    net/mlx5_core: Add ConnectX-5 to list of supported devices
    net/mlx5e: Fix MLX5E_100BASE_T define
    net/mlx5_core: Fix soft lockup in steering error flow
    qlcnic: Update version to 5.3.64
    net: stmmac: socfpga: Remove re-registration of reset controller
    macsec: fix netlink attribute validation
    macsec: add missing macsec prefix in uapi
    ...

    Linus Torvalds
     
  • Pull ARM SoC fixes from Arnd Bergmann:
    "Here are the latest bug fixes for ARM SoCs, mostly addressing recent
    regressions. Changes are across several platforms, so I'm listing
    every change separately here.

    Regressions since 4.5:

    - A correction of the psci firmware DT binding, to prevent users from
    relying on unintended semantics

    - Actually getting the newly merged clock driver for some OMAP
    platforms to work

    - A revert of patches for the Qualcomm BAM, these need to be reworked
    for 4.7 to avoid breaking boards other than the one they were
    intended for

    - A correction for the I2C device nodes on the Socionext Uniphier
    platform

    - i.MX SDHCI was broken for non-DT platforms due to a change with the
    setting of the DMA mask

    - A revert of a patch that accidentally added a nonexisting clock on
    the Rensas "Porter" board

    - A couple of OMAP fixes that are all related to suspend after the
    power domain changes for dra7

    - On Mediatek, revert part of the power domain initialization changes
    that broke mt8173-evb

    Fixes for older bugs:

    - Workaround for an "external abort" in the omap34xx suspend/resume
    code.

    - The USB1/eSATA should not be listed as an excon device on
    am57xx-beagle-x15 (broken since v4.0)

    - A v4.5 regression in the TI AM33xx and AM43XX DT specifying
    incorrect DMA request lines for the GPMC

    - The jiffies calibration on Renesas platforms was incorrect for some
    modern CPU cores.

    - A hardware errata woraround for clockdomains on TI DRA7"

    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    drivers: firmware: psci: unify enable-method binding on ARM {64,32}-bit systems
    arm64: dts: uniphier: fix I2C nodes of PH1-LD20
    ARM: shmobile: timer: Fix preset_lpj leading to too short delays
    Revert "ARM: dts: porter: Enable SCIF_CLK frequency and pins"
    ARM: dts: r8a7791: Don't disable referenced optional clocks
    Revert "ARM: OMAP: Catch callers of revision information prior to it being populated"
    ARM: OMAP3: Fix external abort on 36xx waking from off mode idle
    ARM: dts: am57xx-beagle-x15: remove extcon_usb1
    ARM: dts: am437x: Fix GPMC dma properties
    ARM: dts: am33xx: Fix GPMC dma properties
    Revert "soc: mediatek: SCPSYS: Fix double enabling of regulators"
    ARM: mach-imx: sdhci-esdhc-imx: initialize DMA mask
    ARM: DRA7: clockdomain: Implement timer workaround for errata i874
    ARM: OMAP: Catch callers of revision information prior to it being populated
    ARM: dts: dra7: Correct clock tree for sys_32k_ck
    ARM: OMAP: DRA7: Provide proper class to omap2_set_globals_tap
    ARM: OMAP: DRA7: wakeupgen: Skip SAR save for wakeupgen
    Revert "dts: msm8974: Add dma channels for blsp2_i2c1 node"
    Revert "dts: msm8974: Add blsp2_bam dma node"
    ARM: dts: Add clocks for dm814x ADPLL

    Linus Torvalds
     
  • This is more prep-work for the upcoming pty changes. Still just code
    cleanup with no actual semantic changes.

    This removes a bunch pointless complexity by just having the slave pty
    side remember the dentry associated with the devpts slave rather than
    the inode. That allows us to remove all the "look up the dentry" code
    for when we want to remove it again.

    Together with moving the tty pointer from "inode->i_private" to
    "dentry->d_fsdata" and getting rid of pointless inode locking, this
    removes about 30 lines of code. Not only is the end result smaller,
    it's simpler and easier to understand.

    The old code, for example, depended on the d_find_alias() to not just
    find the dentry, but also to check that it is still hashed, which in
    turn validated the tty pointer in the inode.

    That is a _very_ roundabout way to say "invalidate the cached tty
    pointer when the dentry is removed".

    The new code just does

    dentry->d_fsdata = NULL;

    in devpts_pty_kill() instead, invalidating the tty pointer rather more
    directly and obviously. Don't do something complex and subtle when the
    obvious straightforward approach will do.

    The rest of the patch (ie apart from code deletion and the above tty
    pointer clearing) is just switching the calling convention to pass the
    dentry or file pointer around instead of the inode.

    Cc: Eric Biederman
    Cc: Peter Anvin
    Cc: Andy Lutomirski
    Cc: Al Viro
    Cc: Peter Hurley
    Cc: Serge Hallyn
    Cc: Willy Tarreau
    Cc: Aurelien Jarno
    Cc: Alan Cox
    Cc: Jann Horn
    Cc: Greg KH
    Cc: Jiri Slaby
    Cc: Florian Weimer
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • When bpf(BPF_PROG_LOAD, ...) was invoked with a BPF program whose bytecode
    references a non-map file descriptor as a map file descriptor, the error
    handling code called fdput() twice instead of once (in __bpf_map_get() and
    in replace_map_fd_with_map_ptr()). If the file descriptor table of the
    current task is shared, this causes f_count to be decremented too much,
    allowing the struct file to be freed while it is still in use
    (use-after-free). This can be exploited to gain root privileges by an
    unprivileged user.

    This bug was introduced in
    commit 0246e64d9a5f ("bpf: handle pseudo BPF_LD_IMM64 insn"), but is only
    exploitable since
    commit 1be7f75d1668 ("bpf: enable non-root eBPF programs") because
    previously, CAP_SYS_ADMIN was required to reach the vulnerable code.

    (posted publicly according to request by maintainer)

    Signed-off-by: Jann Horn
    Signed-off-by: Linus Torvalds
    Acked-by: Alexei Starovoitov
    Acked-by: Daniel Borkmann
    Signed-off-by: David S. Miller

    Jann Horn
     
  • Should have converted 'if (trylock)' to 'lock'.

    Fixes: a6086a893718db ("drivers: net: remove NETDEV_TX_LOCKED")
    Signed-off-by: Florian Westphal
    Signed-off-by: David S. Miller

    Florian Westphal
     
  • Sergei Shtylyov says:

    ====================
    sh_eth: couple of software reset bit cleanups

    Here's a set of 2 patches against DaveM's 'net-next.git' repo. We clean up
    the use of the software reset bits...
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • The Renesas RZ/A1H manual names the software reset bit in the software reset
    register (ARSTR) ARST which makes a bit more sense than the ARSTR_ARSTR name
    used now by the driver -- rename the latter to ARSTR_ARST.

    Signed-off-by: Sergei Shtylyov
    Reviewed-by: Simon Horman
    Signed-off-by: David S. Miller

    Sergei Shtylyov
     
  • sh_eth_check_reset() uses a bare number where EDMR_SRST_GETHER would fit,
    i.e. the receive/trasmit software reset bits that comprise EDMR_SRST_GETHER
    read as 1 while the corresponding reset is in progress and thus, when both
    are 0, the reset is complete.

    Signed-off-by: Sergei Shtylyov
    Reviewed-by: Simon Horman
    Signed-off-by: David S. Miller

    Sergei Shtylyov
     
  • Saeed Mahameed says:

    ====================
    Mellanox 100G extending mlx5 ethtool support

    Changes from V0:
    - Dropped: net/mlx5e: Disable link up on INIT HCA command
    Due to Ido's and Or's requests we will submit this patch to net and will need it for -stable.
    - Rebased to: 11afbff86168 ("Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next")

    This series is centralized around extending and improving mlx5 ethernet driver ethtool
    support. We've done some code refactoring for ethtool statistics reporting, making it
    more scalable and robust, now each reported ethtool counter belongs to a group and has
    its own descriptor within that group, the descriptor holds the counter name and offset
    in memory in that group memory block.

    Added new counters:
    - Reporting more error and drop counter in ifconig/ip tool.
    - Per priority pause and traffic counter in ethtool.
    - link down events counter in ethtool.

    Set features handling was also refactored a little bit to be more resilient and generic,
    now setting more than one feature will not stop on the first failed one, but instead
    it will try to continue setting others. We made it generic to make it simpler for adding
    more features support, it is now done easily by only introducing a handler function of
    the new supported netdev feature, and let the generic handler do the job.

    New netdev features and ethtool support:
    - Netdev feature RXALL, set on/off FCS check offload.
    - Netdev feature HW_VLAN_CTAG_RX, set on/off rx-vlan stripping offload.
    - Ethtool interface identify.
    - Ethtool dump module EEPROM.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Now as rx-vlan offload can be disabled, packets can be received
    with vlan tag not stripped, which means is_first_ethertype_ip will
    return false, for that we need to check if the hardware reported
    csum OK so we will report CHECKSUM_UNNECESSARY for those packets.

    Signed-off-by: Saeed Mahameed
    Signed-off-by: David S. Miller

    Saeed Mahameed
     
  • Use ethtool -K rxvlan to enable/disable
    C-TAG vlan stripping by hardware.

    Signed-off-by: Gal Pressman
    Signed-off-by: Saeed Mahameed
    Signed-off-by: David S. Miller

    Gal Pressman
     
  • Add query MCIA, PMLP registers infrastructure and commands.
    Add ethtool support for get_module_info() and get_module_eeprom()
    callbacks.

    Signed-off-by: Gal Pressman
    Signed-off-by: Saeed Mahameed
    Signed-off-by: David S. Miller

    Gal Pressman
     
  • Add the needed hardware command and mlx5_ifc structs for managing LED
    control.
    Add set_phys_id ethtool callback to support ethtool -p flag.

    Signed-off-by: Gal Pressman
    Signed-off-by: Eugenia Emantayev
    Signed-off-by: Saeed Mahameed
    Signed-off-by: David S. Miller

    Gal Pressman
     
  • Introduce new access register named Ports Check Mask Register (PCMR) to
    control all HW checks on port. With this register, the driver can
    enable/disable Hardware FCS validation.

    When RXALL is enabled/disabled using ndo_set_features, enable/disable
    fcs check at HW.
    User can change HW configuration using rx-all flag at ethtool.

    Signed-off-by: Eran Ben Elisha
    Signed-off-by: Gal Pressman
    Signed-off-by: Saeed Mahameed
    Signed-off-by: David S. Miller

    Eran Ben Elisha
     
  • In current mlx5e ndo_set_features implementation, setting some features
    can success while others can fail. Today, we return one error code which
    doesn't reflect the current features status of the netdev at the end of
    the ndo callback.

    Set netdev->features with features which were successfully set in order
    to keep the current status in case of failure. For this purpose, define
    new Macro to set/unset specific feature in netdev->features.

    This patch introduces a mechanism that uses feature handlers for each
    feature.
    Set features will call a generic handler, which will then call a specific
    handler in his turn and update netdev->features according to it's return
    value. Each specific handler is responsible to perform driver specific
    actions, and updating params if needed.

    Signed-off-by: Gal Pressman
    Signed-off-by: Saeed Mahameed
    Signed-off-by: David S. Miller

    Gal Pressman
     
  • Expose link_down_events counter through ethtool -S.
    This counter is read from PPort statistics, then proccessed and stored as
    a special handling software counter.
    This counter is stored along software counters since it is the only PPort
    counter that it's size is not 64 bits.

    Signed-off-by: Gal Pressman
    Signed-off-by: Saeed Mahameed
    Signed-off-by: David S. Miller

    Gal Pressman
     
  • Expose counters providing information for each priority level (PCP) through
    ethtool -S option and DCBNL.
    This includes rx/tx bytes, frames, and pause counters.

    Signed-off-by: Gal Pressman
    Signed-off-by: Saeed Mahameed
    Signed-off-by: David S. Miller

    Gal Pressman
     
  • VPort and software counters names are confusing and may be unclear, all
    VPort counters now have a prefix of rx/tx_vport_*.

    Signed-off-by: Gal Pressman
    Signed-off-by: Saeed Mahameed
    Signed-off-by: David S. Miller

    Gal Pressman
     
  • Redesign ethtool statistics handling and reporting in the driver:
    1. Move counters to a separate file (en_stats.h).
    2. Remove unnecessary dependencies between stats and strings.
    3. Use counter descriptors which hold a name and offset for each counter,
    and will be used to decide which counters will be exposed.

    For example when adding a new software counter to ethtool, instead of:
    1. Add to stats struct.
    2. Add to strings struct in the same order.
    3. Change macro defining number of software counters.
    The only thing needed is to link the new counter to a counter descriptor.

    VPort counters are a set of hardware traffic counters created automatically
    for each virtual port opened.
    PPort counters are a set of counters describing per physical port
    performance statistics.
    These counters are gathered from hardware register and divided to groups
    according to different protocols.

    Signed-off-by: Gal Pressman
    Signed-off-by: Saeed Mahameed
    Signed-off-by: David S. Miller

    Gal Pressman
     
  • Provide rtnl_link_stats64 with information regarding physical errors to be
    seen in ifconfig and ip tool.

    Signed-off-by: Gal Pressman
    Signed-off-by: Saeed Mahameed
    Signed-off-by: David S. Miller

    Gal Pressman
     
  • Signed-off-by: David S. Miller

    David S. Miller
     
  • Florian Westphal says:

    ====================
    net: core: remove TX_LOCKED support

    Not that many users left, lets kill it.

    TX_LOCKED was meant to be used by LLTX drivers when spin_trylock()
    failed. Stack then re-queued if collisions happened on different
    cpus or free'd the skb to prevent deadlocks.

    Most of the driver removal patches fall into one of three categories:
    1. remove the driver-private tx lock (and LLTX flag), or...
    2. convert spin_trylock to plain spin_lock, or...
    3. convert TX_LOCKED to free+TX_OK

    Patches are grouped by these categories, last patch is the actual removal.
    All driver changes were compile tested only with exception of atl1e.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • No more users in the tree, remove NETDEV_TX_LOCKED support.
    Adds another hole in softnet_stats struct, but better than keeping
    the unused collision counter around.

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

    Florian Westphal
     
  • replace the trylock by a full spin_lock and remove TX_LOCKED return value.
    Followup patch will remove TX_LOCKED from the kernel.

    Cc: Jon Mason
    Cc: Andy Gospodarek
    Signed-off-by: Florian Westphal
    Signed-off-by: David S. Miller

    Florian Westphal