14 Dec, 2020

1 commit


27 Aug, 2020

2 commits

  • Move all the MDIO drivers and multiplexers into drivers/net/mdio. The
    mdio core is however left in the phy directory, due to mutual
    dependencies between the MDIO core and the PHY core.

    Take this opportunity to sort the Kconfig based on the menuconfig
    strings, and move the multiplexers to the end with a separating
    comment.

    v2:
    Fix typo in commit message

    Acked-by: Florian Fainelli
    Signed-off-by: Andrew Lunn
    Signed-off-by: David S. Miller

    Andrew Lunn
     
  • Create drivers/net/pcs and move the Synopsys DesignWare XPCS into the
    new directory. Move the header file into a subdirectory
    include/linux/pcs

    Start a naming convention of all PCS files use the prefix pcs-, and
    rename the XPCS files to fit.

    v2:
    Add include/linux/pcs

    v4:
    Fix include path in stmmac.
    Remove PCS_DEVICES to avoid new prompts

    Cc: Jose Abreu
    Reviewed-by: Florian Fainelli
    Signed-off-by: Andrew Lunn
    Signed-off-by: David S. Miller

    Andrew Lunn
     

09 Mar, 2020

1 commit


25 Feb, 2020

1 commit


30 Jan, 2020

1 commit

  • Pull USB/Thunderbolt/PHY driver updates from Greg KH:
    "Here is the big USB and Thunderbolt and PHY driver updates for
    5.6-rc1.

    With the advent of USB4, "Thunderbolt" has really become USB4, so the
    renaming of the Kconfig option and starting to share subsystem code
    has begun, hence both subsystems coming in through the same tree here.

    PHY driver updates also touched USB drivers, so that is coming in
    through here as well.

    Major stuff included in here are:
    - USB 4 initial support added (i.e. Thunderbolt)
    - musb driver updates
    - USB gadget driver updates
    - PHY driver updates
    - USB PHY driver updates
    - lots of USB serial stuff fixed up
    - USB typec updates
    - USB-IP fixes
    - lots of other smaller USB driver updates

    All of these have been in linux-next for a while now (the usb-serial
    tree is already tested in linux-next on its own before merged into
    here), with no reported issues"

    [ Removed an incorrect compile test enablement for PHY_EXYNOS5250_SATA
    that causes configuration warnings - Linus ]

    * tag 'usb-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (207 commits)
    Doc: ABI: add usb charger uevent
    usb: phy: show USB charger type for user
    usb: cdns3: fix spelling mistake and rework grammar in text
    usb: phy: phy-gpio-vbus-usb: Convert to GPIO descriptors
    USB: serial: cyberjack: fix spelling mistake "To" -> "Too"
    USB: serial: ir-usb: simplify endpoint check
    USB: serial: ir-usb: make set_termios synchronous
    USB: serial: ir-usb: fix IrLAP framing
    USB: serial: ir-usb: fix link-speed handling
    USB: serial: ir-usb: add missing endpoint sanity check
    usb: typec: fusb302: fix "op-sink-microwatt" default that was in mW
    usb: typec: wcove: fix "op-sink-microwatt" default that was in mW
    usb: dwc3: pci: add ID for the Intel Comet Lake -V variant
    usb: typec: tcpci: mask event interrupts when remove driver
    usb: host: xhci-tegra: set MODULE_FIRMWARE for tegra186
    usb: chipidea: add inline for ci_hdrc_host_driver_init if host is not defined
    usb: chipidea: handle single role for usb role class
    usb: musb: fix spelling mistake: "periperal" -> "peripheral"
    phy: ti: j721e-wiz: Fix build error without CONFIG_OF_ADDRESS
    USB: usbfs: Always unlink URBs in reverse order
    ...

    Linus Torvalds
     

18 Dec, 2019

1 commit

  • Since the driver now supports USB4 which is the standard going forward,
    update the Kconfig entry to mention this and rename the entry from
    CONFIG_THUNDERBOLT to CONFIG_USB4 instead to help people to find the
    correct option if they want to enable USB4.

    Also do the same for Thunderbolt network driver.

    Signed-off-by: Mika Westerberg
    Cc: David S. Miller
    Link: https://lore.kernel.org/r/20191217123345.31850-6-mika.westerberg@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman

    Mika Westerberg
     

09 Dec, 2019

1 commit

  • WireGuard is a layer 3 secure networking tunnel made specifically for
    the kernel, that aims to be much simpler and easier to audit than IPsec.
    Extensive documentation and description of the protocol and
    considerations, along with formal proofs of the cryptography, are
    available at:

    * https://www.wireguard.com/
    * https://www.wireguard.com/papers/wireguard.pdf

    This commit implements WireGuard as a simple network device driver,
    accessible in the usual RTNL way used by virtual network drivers. It
    makes use of the udp_tunnel APIs, GRO, GSO, NAPI, and the usual set of
    networking subsystem APIs. It has a somewhat novel multicore queueing
    system designed for maximum throughput and minimal latency of encryption
    operations, but it is implemented modestly using workqueues and NAPI.
    Configuration is done via generic Netlink, and following a review from
    the Netlink maintainer a year ago, several high profile userspace tools
    have already implemented the API.

    This commit also comes with several different tests, both in-kernel
    tests and out-of-kernel tests based on network namespaces, taking profit
    of the fact that sockets used by WireGuard intentionally stay in the
    namespace the WireGuard interface was originally created, exactly like
    the semantics of userspace tun devices. See wireguard.com/netns/ for
    pictures and examples.

    The source code is fairly short, but rather than combining everything
    into a single file, WireGuard is developed as cleanly separable files,
    making auditing and comprehension easier. Things are laid out as
    follows:

    * noise.[ch], cookie.[ch], messages.h: These implement the bulk of the
    cryptographic aspects of the protocol, and are mostly data-only in
    nature, taking in buffers of bytes and spitting out buffers of
    bytes. They also handle reference counting for their various shared
    pieces of data, like keys and key lists.

    * ratelimiter.[ch]: Used as an integral part of cookie.[ch] for
    ratelimiting certain types of cryptographic operations in accordance
    with particular WireGuard semantics.

    * allowedips.[ch], peerlookup.[ch]: The main lookup structures of
    WireGuard, the former being trie-like with particular semantics, an
    integral part of the design of the protocol, and the latter just
    being nice helper functions around the various hashtables we use.

    * device.[ch]: Implementation of functions for the netdevice and for
    rtnl, responsible for maintaining the life of a given interface and
    wiring it up to the rest of WireGuard.

    * peer.[ch]: Each interface has a list of peers, with helper functions
    available here for creation, destruction, and reference counting.

    * socket.[ch]: Implementation of functions related to udp_socket and
    the general set of kernel socket APIs, for sending and receiving
    ciphertext UDP packets, and taking care of WireGuard-specific sticky
    socket routing semantics for the automatic roaming.

    * netlink.[ch]: Userspace API entry point for configuring WireGuard
    peers and devices. The API has been implemented by several userspace
    tools and network management utility, and the WireGuard project
    distributes the basic wg(8) tool.

    * queueing.[ch]: Shared function on the rx and tx path for handling
    the various queues used in the multicore algorithms.

    * send.c: Handles encrypting outgoing packets in parallel on
    multiple cores, before sending them in order on a single core, via
    workqueues and ring buffers. Also handles sending handshake and cookie
    messages as part of the protocol, in parallel.

    * receive.c: Handles decrypting incoming packets in parallel on
    multiple cores, before passing them off in order to be ingested via
    the rest of the networking subsystem with GRO via the typical NAPI
    poll function. Also handles receiving handshake and cookie messages
    as part of the protocol, in parallel.

    * timers.[ch]: Uses the timer wheel to implement protocol particular
    event timeouts, and gives a set of very simple event-driven entry
    point functions for callers.

    * main.c, version.h: Initialization and deinitialization of the module.

    * selftest/*.h: Runtime unit tests for some of the most security
    sensitive functions.

    * tools/testing/selftests/wireguard/netns.sh: Aforementioned testing
    script using network namespaces.

    This commit aims to be as self-contained as possible, implementing
    WireGuard as a standalone module not needing much special handling or
    coordination from the network subsystem. I expect for future
    optimizations to the network stack to positively improve WireGuard, and
    vice-versa, but for the time being, this exists as intentionally
    standalone.

    We introduce a menu option for CONFIG_WIREGUARD, as well as providing a
    verbose debug log and self-tests via CONFIG_WIREGUARD_DEBUG.

    Signed-off-by: Jason A. Donenfeld
    Cc: David Miller
    Cc: Greg KH
    Cc: Linus Torvalds
    Cc: Herbert Xu
    Cc: linux-crypto@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Signed-off-by: David S. Miller

    Jason A. Donenfeld
     

15 May, 2019

1 commit

  • Jiri reported that with a kernel built with CONFIG_FIXED_PHY=y,
    CONFIG_NET_DSA=m and CONFIG_NET_DSA_LOOP=m, we would not get to a
    functional state where the mock-up driver is registered. Turns out that
    we are not descending into drivers/net/dsa/ unconditionally, and we
    won't be able to link-in dsa_loop_bdinfo.o which does the actual mock-up
    mdio device registration.

    Reported-by: Jiri Pirko
    Fixes: 40013ff20b1b ("net: dsa: Fix functional dsa-loop dependency on FIXED_PHY")
    Signed-off-by: Florian Fainelli
    Reviewed-by: Vivien Didelot
    Tested-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Florian Fainelli
     

29 May, 2018

1 commit

  • The net_failover driver provides an automated failover mechanism via APIs
    to create and destroy a failover master netdev and manages a primary and
    standby slave netdevs that get registered via the generic failover
    infrastructure.

    The failover netdev acts a master device and controls 2 slave devices. The
    original paravirtual interface gets registered as 'standby' slave netdev and
    a passthru/vf device with the same MAC gets registered as 'primary' slave
    netdev. Both 'standby' and 'failover' netdevs are associated with the same
    'pci' device. The user accesses the network interface via 'failover' netdev.
    The 'failover' netdev chooses 'primary' netdev as default for transmits when
    it is available with link up and running.

    This can be used by paravirtual drivers to enable an alternate low latency
    datapath. It also enables hypervisor controlled live migration of a VM with
    direct attached VF by failing over to the paravirtual datapath when the VF
    is unplugged.

    Signed-off-by: Sridhar Samudrala
    Signed-off-by: David S. Miller

    Sridhar Samudrala
     

26 Mar, 2018

1 commit


03 Dec, 2017

1 commit

  • To be able to run selftests without any hardware required we
    need a software model. The model can also serve as an example
    implementation for those implementing actual HW offloads.
    The dummy driver have previously been extended to test SR-IOV,
    but the general consensus seems to be against adding further
    features to it.

    Add a new driver for purposes of software modelling only.
    eBPF and SR-IOV will be added here shortly, others are invited
    to further extend the driver with their offload models.

    Signed-off-by: Jakub Kicinski
    Reviewed-by: Simon Horman
    Reviewed-by: Quentin Monnet
    Signed-off-by: Daniel Borkmann

    Jakub Kicinski
     

04 Nov, 2017

1 commit


02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

03 Oct, 2017

1 commit

  • ThunderboltIP is a protocol created by Apple to tunnel IP/ethernet
    traffic over a Thunderbolt cable. The protocol consists of configuration
    phase where each side sends ThunderboltIP login packets (the protocol is
    determined by UUID in the XDomain packet header) over the configuration
    channel. Once both sides get positive acknowledgment to their login
    packet, they configure high-speed DMA path accordingly. This DMA path is
    then used to transmit and receive networking traffic.

    This patch creates a virtual ethernet interface the host software can
    use in the same way as any other networking interface. Once the
    interface is brought up successfully network packets get tunneled over
    the Thunderbolt cable to the remote host and back.

    The connection is terminated by sending a ThunderboltIP logout packet
    over the configuration channel. We do this when the network interface is
    brought down by user or the driver is unloaded.

    Signed-off-by: Amir Levy
    Signed-off-by: Michael Jamet
    Signed-off-by: Mika Westerberg
    Reviewed-by: Yehezkel Bernat
    Reviewed-by: Andy Shevchenko
    Signed-off-by: David S. Miller

    Amir Levy
     

29 Aug, 2017

1 commit


25 Apr, 2017

1 commit

  • Add vsockmon virtual network device that receives packets from the vsock
    transports and exposes them to user space.

    Based on the nlmon device.

    Signed-off-by: Gerard Garcia
    Signed-off-by: Stefan Hajnoczi
    Signed-off-by: David S. Miller

    Gerard Garcia
     

30 Mar, 2017

1 commit

  • mdio-boardinfo contains code that is helpful for platforms to register
    specific MDIO bus devices independent of how CONFIG_MDIO_DEVICE or
    CONFIG_PHYLIB will be selected (modular or built-in). In order to make
    that possible, let's do the following:

    - descend into drivers/net/phy/ unconditionally

    - make mdiobus_setup_mdiodev_from_board_info() take a callback argument
    which allows us not to expose the internal MDIO board info list and
    mutex, yet maintain the logic within the same file

    - relocate the code that creates a MDIO device into
    drivers/net/phy/mdio_bus.c

    - build mdio-boardinfo.o into the kernel as soon as MDIO_DEVICE is
    defined (y or m)

    Fixes: 90eff9096c01 ("net: phy: Allow splitting MDIO bus/device support from PHYs")
    Fixes: 648ea0134069 ("net: phy: Allow pre-declaration of MDIO devices")
    Signed-off-by: Florian Fainelli
    Tested-by: Arnd Bergmann
    Signed-off-by: David S. Miller

    Florian Fainelli
     

25 Mar, 2017

1 commit

  • Introduce a new configuration symbol: MDIO_DEVICE which allows building
    the MDIO devices and bus code, without pulling in the entire Ethernet
    PHY library and devices code.

    PHYLIB nows select MDIO_DEVICE and the relevant Makefile files are
    updated to reflect that.

    When MDIO_DEVICE (MDIO bus/device only) is selected, but not PHYLIB, we
    have mdio-bus.ko as a loadable module, and it does not have a
    module_exit() function because the safety of removing a bus class is
    unclear.

    When both MDIO_DEVICE and PHYLIB are enabled, we need to assemble
    everything into a common loadable module: libphy.ko because of nasty
    circular dependencies between phy.c, phy_device.c and mdio_bus.c which
    are really tough to untangle.

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

    Florian Fainelli
     

12 Feb, 2017

3 commits

  • This patch adds a tap character device driver that is based on the
    IP-VLAN network interface, called ipvtap. An ipvtap device can be created
    in the same way as an ipvlan device, using 'type ipvtap', and then accessed
    using the tap user space interface.

    Signed-off-by: Sainath Grandhi
    Signed-off-by: David S. Miller

    Sainath Grandhi
     
  • This patch makes tap a separate module for other types of virtual interfaces, for example,
    ipvlan to use.

    Signed-off-by: Sainath Grandhi
    Signed-off-by: David S. Miller

    Sainath Grandhi
     
  • macvtap module has code for tap/queue management and link management. This patch splits
    the code into macvtap_main.c for link management and tap.c for tap/queue management.
    Functionality in tap.c can be re-used for implementing tap on other virtual interfaces.

    Signed-off-by: Sainath Grandhi
    Signed-off-by: David S. Miller

    Sainath Grandhi
     

11 May, 2016

1 commit

  • This is an initial implementation of a netdev driver for GTP datapath
    (GTP-U) v0 and v1, according to the GSM TS 09.60 and 3GPP TS 29.060
    standards. This tunneling protocol is used to prevent subscribers from
    accessing mobile carrier core network infrastructure.

    This implementation requires a GGSN userspace daemon that implements the
    signaling protocol (GTP-C), such as OpenGGSN [1]. This userspace daemon
    updates the PDP context database that represents active subscriber
    sessions through a genetlink interface.

    For more context on this tunneling protocol, you can check the slides
    that were presented during the NetDev 1.1 [2].

    Only IPv4 is supported at this time.

    [1] http://git.osmocom.org/openggsn/
    [2] http://www.netdevconf.org/1.1/proceedings/slides/schultz-welte-osmocom-gtp.pdf

    Signed-off-by: Pablo Neira Ayuso
    Signed-off-by: David S. Miller

    Pablo Neira
     

14 Mar, 2016

1 commit

  • This is an implementation of MACsec/IEEE 802.1AE. This driver
    provides authentication and encryption of traffic in a LAN, typically
    with GCM-AES-128, and optional replay protection.

    http://standards.ieee.org/getieee802/download/802.1AE-2006.pdf

    Signed-off-by: Sabrina Dubroca
    Reviewed-by: Hannes Frederic Sowa
    Signed-off-by: David S. Miller

    Sabrina Dubroca
     

25 Aug, 2015

1 commit

  • This patch adds the basic code of FUJITSU Extended Socket
    Network Device driver.

    When "PNP0C02" is found in ACPI DSDT, it evaluates "_STR"
    to check if "PNP0C02" is for Extended Socket device driver
    and retrieves ACPI resource information. Then creates
    platform_device.

    Signed-off-by: Taku Izumi
    Signed-off-by: David S. Miller

    Taku Izumi
     

14 Aug, 2015

1 commit

  • This driver borrows heavily from IPvlan and teaming drivers.

    Routing domains (VRF-lite) are created by instantiating a VRF master
    device with an associated table and enslaving all routed interfaces that
    participate in the domain. As part of the enslavement, all connected
    routes for the enslaved devices are moved to the table associated with
    the VRF device. Outgoing sockets must bind to the VRF device to function.

    Standard FIB rules bind the VRF device to tables and regular fib rule
    processing is followed. Routed traffic through the box, is forwarded by
    using the VRF device as the IIF and following the IIF rule to a table
    that is mated with the VRF.

    Example:

    Create vrf 1:
    ip link add vrf1 type vrf table 5
    ip rule add iif vrf1 table 5
    ip rule add oif vrf1 table 5
    ip route add table 5 prohibit default
    ip link set vrf1 up

    Add interface to vrf 1:
    ip link set eth1 master vrf1

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

    David Ahern
     

14 May, 2015

1 commit


25 Nov, 2014

1 commit

  • This driver is very similar to the macvlan driver except that it
    uses L3 on the frame to determine the logical interface while
    functioning as packet dispatcher. It inherits L2 of the master
    device hence the packets on wire will have the same L2 for all
    the packets originating from all virtual devices off of the same
    master device.

    This driver was developed keeping the namespace use-case in
    mind. Hence most of the examples given here take that as the
    base setup where main-device belongs to the default-ns and
    virtual devices are assigned to the additional namespaces.

    The device operates in two different modes and the difference
    in these two modes in primarily in the TX side.

    (a) L2 mode : In this mode, the device behaves as a L2 device.
    TX processing upto L2 happens on the stack of the virtual device
    associated with (namespace). Packets are switched after that
    into the main device (default-ns) and queued for xmit.

    RX processing is simple and all multicast, broadcast (if
    applicable), and unicast belonging to the address(es) are
    delivered to the virtual devices.

    (b) L3 mode : In this mode, the device behaves like a L3 device.
    TX processing upto L3 happens on the stack of the virtual device
    associated with (namespace). Packets are switched to the
    main-device (default-ns) for the L2 processing. Hence the routing
    table of the default-ns will be used in this mode.

    RX processins is somewhat similar to the L2 mode except that in
    this mode only Unicast packets are delivered to the virtual device
    while main-dev will handle all other packets.

    The devices can be added using the "ip" command from the iproute2
    package -

    ip link add link type ipvlan mode [ l2 | l3 ]

    Signed-off-by: Mahesh Bandewar
    Cc: Eric Dumazet
    Cc: Maciej Żenczykowski
    Cc: Laurent Chavey
    Cc: Tim Hockin
    Cc: Brandon Philips
    Cc: Pavel Emelianov
    Signed-off-by: David S. Miller

    Mahesh Bandewar
     

06 Aug, 2014

1 commit

  • USB network drivers are already handled in drivers/net/usb/Kconfig.
    Let's save the maintenance burden of dependencies in drivers/net/Makefile.

    The newly introduced USB_NET_DRIVERS umbrella config option defaults
    to 'y' so as to minimize the changes of behavior.

    Signed-off-by: Francois Romieu
    Signed-off-by: David S. Miller

    Francois Romieu
     

05 Aug, 2014

1 commit


25 Jun, 2013

1 commit

  • Currently, there is no good possibility to debug netlink traffic that
    is being exchanged between kernel and user space. Therefore, this patch
    implements a netlink virtual device, so that netlink messages will be
    made visible to PF_PACKET sockets. Once there was an approach with a
    similar idea [1], but it got forgotten somehow.

    I think it makes most sense to accept the "overhead" of an extra netlink
    net device over implementing the same functionality from PF_PACKET
    sockets once again into netlink sockets. We have BPF filters that can
    already be easily applied which even have netlink extensions, we have
    RX_RING zero-copy between kernel- and user space that can be reused,
    and much more features. So instead of re-implementing all of this, we
    simply pass the skb to a given PF_PACKET socket for further analysis.

    Another nice benefit that comes from that is that no code needs to be
    changed in user space packet analyzers (maybe adding a dissector, but
    not more), thus out of the box, we can already capture pcap files of
    netlink traffic to debug/troubleshoot netlink problems.

    Also thanks goes to Thomas Graf, Flavio Leitner, Jesper Dangaard Brouer.

    [1] http://marc.info/?l=linux-netdev&m=113813401516110

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

    Daniel Borkmann
     

18 Jan, 2013

1 commit


02 Oct, 2012

1 commit

  • This is an implementation of Virtual eXtensible Local Area Network
    as described in draft RFC:
    http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-02

    The driver integrates a Virtual Tunnel Endpoint (VTEP) functionality
    that learns MAC to IP address mapping.

    This implementation has not been tested only against the Linux
    userspace implementation using TAP, not against other vendor's
    equipment.

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

    stephen hemminger
     

31 Aug, 2012

1 commit

  • The IEEE 802.15.4 standard represents a networking protocol. I don't
    exactly know why drivers for this protocol are stored into the root
    'driver' folder, but better will be to store them with other
    networking stuff. Currently there are only 3 drivers available for
    IEEE 802.15.4 stack, so lets do it now with the smallest overhead.

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

    alex.bluesman.smirnov@gmail.com
     

16 May, 2012

1 commit

  • This represents the mass deletion of the of the tokenring support.

    It gets rid of:
    - the net/tr.c which the drivers depended on
    - the drivers/net component
    - the Kbuild infrastructure around it
    - any tokenring related CONFIG_ settings in any defconfigs
    - the tokenring headers in the include/linux dir
    - the firmware associated with the tokenring drivers.
    - any associated token ring documentation.

    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     

10 Jan, 2012

1 commit

  • * 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (466 commits)
    net/hyperv: Add support for jumbo frame up to 64KB
    net/hyperv: Add NETVSP protocol version negotiation
    net/hyperv: Remove unnecessary kmap_atomic in netvsc driver
    staging/rtl8192e: Register against lib80211
    staging/rtl8192e: Convert to lib80211_crypt_info
    staging/rtl8192e: Convert to lib80211_crypt_data and lib80211_crypt_ops
    staging/rtl8192e: Add lib80211.h to rtllib.h
    staging/mei: add watchdog device registration wrappers
    drm/omap: GEM, deal with cache
    staging: vt6656: int.c, int.h: Change return of function to void
    staging: usbip: removed unused definitions from header
    staging: usbip: removed dead code from receive function
    staging:iio: Drop {mark,unmark}_in_use callbacks
    staging:iio: Drop buffer mark_param_change callback
    staging:iio: Drop the unused buffer enable() and is_enabled() callbacks
    staging:iio: Drop buffer busy flag
    staging:iio: Make sure a device is only opened once at a time
    staging:iio: Disallow modifying buffer size when buffer is enabled
    staging:iio: Disallow changing scan elements in all buffered modes
    staging:iio: Use iio_buffer_enabled instead of open coding it
    ...

    Fix up conflict in drivers/staging/iio/adc/ad799x_core.c (removal of
    module_init due to using module_i2c_driver() helper, next to removal of
    MODULE_ALIAS due to using MODULE_DEVICE_TABLE instead).

    Linus Torvalds
     

29 Nov, 2011

2 commits


14 Nov, 2011

1 commit

  • This patch introduces new network device called team. It supposes to be
    very fast, simple, userspace-driven alternative to existing bonding
    driver.

    Userspace library called libteam with couple of demo apps is available
    here:
    https://github.com/jpirko/libteam
    Note it's still in its dipers atm.

    teamlibteam use generic netlink for communication. That and rtnl
    suppose to be the only way to configure team device, no sysfs etc.

    Python binding of libteam was recently introduced.
    Daemon providing arpmon/miimon active-backup functionality will be
    introduced shortly. All what's necessary is already implemented in
    kernel team driver.

    v7->v8:
    - check ndo_ndo_vlan_rx_[add/kill]_vid functions before calling
    them.
    - use dev_kfree_skb_any() instead of dev_kfree_skb()

    v6->v7:
    - transmit and receive functions are not checked in hot paths.
    That also resolves memory leak on transmit when no port is
    present

    v5->v6:
    - changed couple of _rcu calls to non _rcu ones in non-readers

    v4->v5:
    - team_change_mtu() uses team->lock while travesing though port
    list
    - mac address changes are moved completely to jurisdiction of
    userspace daemon. This way the daemon can do FOM1, FOM2 and
    possibly other weird things with mac addresses.
    Only round-robin mode sets up all ports to bond's address then
    enslaved.
    - Extended Kconfig text

    v3->v4:
    - remove redundant synchronize_rcu from __team_change_mode()
    - revert "set and clear of mode_ops happens per pointer, not per
    byte"
    - extend comment of function __team_change_mode()

    v2->v3:
    - team_change_mtu() uses rcu version of list traversal to unwind
    - set and clear of mode_ops happens per pointer, not per byte
    - port hashlist changed to be embedded into team structure
    - error branch in team_port_enter() does cleanup now
    - fixed rtln->rtnl

    v1->v2:
    - modes are made as modules. Makes team more modular and
    extendable.
    - several commenters' nitpicks found on v1 were fixed
    - several other bugs were fixed.
    - note I ignored Eric's comment about roundrobin port selector
    as Eric's way may be easily implemented as another mode (mode
    "random") in future.

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

    Jiri Pirko
     

30 Aug, 2011

1 commit