02 Nov, 2021

1 commit

  • This patch provids netlink method to configure the TSN protocols hardwares.
    TSN guaranteed packet transport with bounded low latency, low packet delay
    variation, and low packet loss by hardware and software methods.

    The three basic components of TSN are:

    1. Time synchronization: This was implement by 8021AS which base on the
    IEEE1588 precision Time Protocol. This is configured by the other way
    in kernel.
    8021AS not included in this patch.

    2. Scheduling and traffic shaping and per-stream filter policing:
    This patch support Qbv/Qci/Qbu/8021CB/Qav etc.

    3. Selection of communication paths:
    This patch not support the pure software only TSN protocols(like Qcc)
    but hardware related configuration.

    TSN Protocols supports by this patch: Qbv/Qci/Qbu/Credit-base Shaper(Qav).
    This patch verified on NXP ls1028ardb board.

    Signed-off-by: Po Liu

    Po Liu
     

29 Jul, 2021

1 commit

  • Add basic Kconfig, an initial (empty) af_mctp source object, and
    {AF,PF}_MCTP definitions, and the required definitions for a new
    protocol type.

    Signed-off-by: Jeremy Kerr
    Signed-off-by: David S. Miller

    Jeremy Kerr
     

12 May, 2021

1 commit

  • Right now, all core BPF related options are scattered in different Kconfig
    locations mainly due to historic reasons. Moving forward, lets add a proper
    subsystem entry under ...

    General setup --->
    BPF subsystem --->

    ... in order to have all knobs in a single location and thus ease BPF related
    configuration. Networking related bits such as sockmap are out of scope for
    the general setup and therefore better suited to remain in net/Kconfig.

    Signed-off-by: Daniel Borkmann
    Signed-off-by: Alexei Starovoitov
    Link: https://lore.kernel.org/bpf/f23f58765a4d59244ebd8037da7b6a6b2fb58446.1620765074.git.daniel@iogearbox.net

    Daniel Borkmann
     

29 Apr, 2021

1 commit

  • In case ethernet driver is enabled and INET is disabled, selftest will
    fail to build.

    Reported-by: Randy Dunlap
    Fixes: 3e1e58d64c3d ("net: add generic selftest support")
    Signed-off-by: Oleksij Rempel
    Acked-by: Randy Dunlap # build-tested
    Reviewed-by: Florian Fainelli
    Link: https://lore.kernel.org/r/20210428130947.29649-1-o.rempel@pengutronix.de
    Signed-off-by: Jakub Kicinski

    Oleksij Rempel
     

21 Apr, 2021

1 commit

  • Port some parts of the stmmac selftest and reuse it as basic generic selftest
    library. This patch was tested with following combinations:
    - iMX6DL FEC -> AT8035
    - iMX6DL FEC -> SJA1105Q switch -> KSZ8081
    - iMX6DL FEC -> SJA1105Q switch -> KSZ9031
    - AR9331 ag71xx -> AR9331 PHY
    - AR9331 ag71xx -> AR9331 switch -> AR9331 PHY

    Signed-off-by: Oleksij Rempel
    Signed-off-by: David S. Miller

    Oleksij Rempel
     

20 Mar, 2021

1 commit

  • I was working on a syzbot issue, claiming one device could not be
    dismantled because its refcount was -1

    unregister_netdevice: waiting for sit0 to become free. Usage count = -1

    It would be nice if syzbot could trigger a warning at the time
    this reference count became negative.

    This patch adds CONFIG_PCPU_DEV_REFCNT options which defaults
    to per cpu variables (as before this patch) on SMP builds.

    v2: free_dev label in alloc_netdev_mqs() is moved to avoid
    a compiler warning (-Wunused-label), as reported
    by kernel test robot

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

    Eric Dumazet
     

27 Feb, 2021

1 commit

  • As suggested by John, clean up sockmap related Kconfigs:

    Reduce the scope of CONFIG_BPF_STREAM_PARSER down to TCP stream
    parser, to reflect its name.

    Make the rest sockmap code simply depend on CONFIG_BPF_SYSCALL
    and CONFIG_INET, the latter is still needed at this point because
    of TCP/UDP proto update. And leave CONFIG_NET_SOCK_MSG untouched,
    as it is used by non-sockmap cases.

    Signed-off-by: Cong Wang
    Signed-off-by: Alexei Starovoitov
    Reviewed-by: Lorenz Bauer
    Acked-by: John Fastabend
    Acked-by: Jakub Sitnicki
    Link: https://lore.kernel.org/bpf/20210223184934.6054-2-xiyou.wangcong@gmail.com

    Cong Wang
     

12 Feb, 2021

1 commit

  • Use a new config SOCK_RX_QUEUE_MAPPING to compile-in the socket
    RX queue field and logic, instead of the XPS config.
    This breaks dependency in XPS, and allows selecting it from non-XPS
    use cases, as we do in the next patch.

    In addition, use the new flag to wrap the logic in sk_rx_queue_get()
    and protect access to the sk_rx_queue_mapping field, while keeping
    the function exposed unconditionally, just like sk_rx_queue_set()
    and sk_rx_queue_clear().

    Signed-off-by: Tariq Toukan
    Reviewed-by: Maxim Mikityanskiy
    Signed-off-by: David S. Miller

    Tariq Toukan
     

30 Oct, 2020

1 commit

  • There are no known users of this driver as of October 2020, and it will
    be removed unless someone turns out to still need it in future releases.

    According to https://en.wikipedia.org/wiki/List_of_WiMAX_networks, there
    have been many public wimax networks, but it appears that many of these
    have migrated to LTE or discontinued their service altogether.
    As most PCs and phones lack WiMAX hardware support, the remaining
    networks tend to use standalone routers. These almost certainly
    run Linux, but not a modern kernel or the mainline wimax driver stack.

    NetworkManager appears to have dropped userspace support in 2015
    https://bugzilla.gnome.org/show_bug.cgi?id=747846, the
    www.linuxwimax.org
    site had already shut down earlier.

    WiMax is apparently still being deployed on airport campus networks
    ("AeroMACS"), but in a frequency band that was not supported by the old
    Intel 2400m (used in Sandy Bridge laptops and earlier), which is the
    only driver using the kernel's wimax stack.

    Move all files into drivers/staging/wimax, including the uapi header
    files and documentation, to make it easier to remove it when it gets
    to that. Only minimal changes are made to the source files, in order
    to make it possible to port patches across the move.

    Also remove the MAINTAINERS entry that refers to a broken mailing
    list and website.

    Acked-by: Jakub Kicinski
    Acked-by: Greg Kroah-Hartman
    Acked-By: Inaky Perez-Gonzalez
    Acked-by: Johannes Berg
    Suggested-by: Inaky Perez-Gonzalez
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

01 Oct, 2020

1 commit

  • Convert drop monitor to use the recently introduced
    'devlink_trap_report' tracepoint instead of having devlink call into
    drop monitor.

    This is both consistent with software originated drops ('kfree_skb'
    tracepoint) and also allows drop monitor to be built as a module and
    still report hardware originated drops.

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

    Ido Schimmel
     

08 Jul, 2020

1 commit


14 Jun, 2020

1 commit

  • Since commit 84af7a6194e4 ("checkpatch: kconfig: prefer 'help' over
    '---help---'"), the number of '---help---' has been gradually
    decreasing, but there are still more than 2400 instances.

    This commit finishes the conversion. While I touched the lines,
    I also fixed the indentation.

    There are a variety of indentation styles found.

    a) 4 spaces + '---help---'
    b) 7 spaces + '---help---'
    c) 8 spaces + '---help---'
    d) 1 space + 1 tab + '---help---'
    e) 1 tab + '---help---' (correct indentation)
    f) 1 tab + 1 space + '---help---'
    g) 1 tab + 2 spaces + '---help---'

    In order to convert all of them to 1 tab + 'help', I ran the
    following commend:

    $ find . -name 'Kconfig*' | xargs sed -i 's/^[[:space:]]*---help---/\thelp/'

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

11 May, 2020

1 commit

  • Add new ethtool netlink calls to trigger the starting of a PHY cable
    test.

    Add Kconfig'ury to ETHTOOL_NETLINK so that PHYLIB is not a module when
    ETHTOOL_NETLINK is builtin, which would result in kernel linking errors.

    v2:
    Remove unwanted white space change
    Remove ethnl_cable_test_act_ops and use doit handler
    Rename cable_test_set_policy cable_test_act_policy
    Remove ETHTOOL_MSG_CABLE_TEST_ACT_REPLY

    v3:
    Remove ETHTOOL_MSG_CABLE_TEST_ACT_REPLY from documentation
    Remove unused cable_test_get_policy
    Add Reviewed-by tags

    v4:
    Remove unwanted blank line

    Signed-off-by: Andrew Lunn
    Reviewed-by: Michal Kubecek
    Reviewed-by: Florian Fainelli
    Signed-off-by: Jakub Kicinski

    Andrew Lunn
     

01 May, 2020

1 commit


29 Apr, 2020

1 commit

  • - add SPDX header;
    - adjust titles and chapters, adding proper markups;
    - mark code blocks and literals as such;
    - mark lists as such;
    - mark tables as such;
    - use footnote markup;
    - adjust identation, whitespaces and blank lines;
    - add to networking/index.rst.

    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: David S. Miller

    Mauro Carvalho Chehab
     

26 Mar, 2020

1 commit

  • net/netfilter/nft_fwd_netdev.c: In function ‘nft_fwd_netdev_eval’:
    net/netfilter/nft_fwd_netdev.c:32:10: error: ‘struct sk_buff’ has no member named ‘tc_redirected’
    pkt->skb->tc_redirected = 1;
    ^~
    net/netfilter/nft_fwd_netdev.c:33:10: error: ‘struct sk_buff’ has no member named ‘tc_from_ingress’
    pkt->skb->tc_from_ingress = 1;
    ^~

    To avoid a direct dependency with tc actions from netfilter, wrap the
    redirect bits around CONFIG_NET_REDIRECT and move helpers to
    include/linux/skbuff.h. Turn on this toggle from the ifb driver, the
    only existing client of these bits in the tree.

    This patch adds skb_set_redirected() that sets on the redirected bit
    on the skbuff, it specifies if the packet was redirect from ingress
    and resets the timestamp (timestamp reset was originally missing in the
    netfilter bugfix).

    Fixes: bcfabee1afd99484 ("netfilter: nft_fwd_netdev: allow to redirect to ifb via ingress")
    Reported-by: noreply@ellerman.id.au
    Reported-by: Geert Uytterhoeven
    Signed-off-by: Pablo Neira Ayuso
    Signed-off-by: David S. Miller

    Pablo Neira Ayuso
     

21 Feb, 2020

1 commit

  • The description says 'If unsure, say N.' but
    the module is built as M by default (once
    the dependencies are satisfied).

    When the module is selected (Y or M), it enables
    NETFILTER_FAMILY_BRIDGE and SKB_EXTENSIONS
    which alter kernel internal structures.

    We (Android Studio Emulator) currently do not
    use this module and think this it is more consistent
    to have it disabled by default as opposite to
    disabling it explicitly to prevent enabling
    NETFILTER_FAMILY_BRIDGE and SKB_EXTENSIONS.

    Signed-off-by: Roman Kiryanov
    Acked-by: Florian Westphal
    Signed-off-by: David S. Miller

    Roman Kiryanov
     

24 Jan, 2020

1 commit

  • Implements the infrastructure for MPTCP sockets.

    MPTCP sockets open one in-kernel TCP socket per subflow. These subflow
    sockets are only managed by the MPTCP socket that owns them and are not
    visible from userspace. This commit allows a userspace program to open
    an MPTCP socket with:

    sock = socket(AF_INET, SOCK_STREAM, IPPROTO_MPTCP);

    The resulting socket is simply a wrapper around a single regular TCP
    socket, without any of the MPTCP protocol implemented over the wire.

    Co-developed-by: Florian Westphal
    Signed-off-by: Florian Westphal
    Co-developed-by: Peter Krystad
    Signed-off-by: Peter Krystad
    Co-developed-by: Matthieu Baerts
    Signed-off-by: Matthieu Baerts
    Co-developed-by: Paolo Abeni
    Signed-off-by: Paolo Abeni
    Signed-off-by: Mat Martineau
    Signed-off-by: Christoph Paasch
    Signed-off-by: David S. Miller

    Mat Martineau
     

28 Dec, 2019

1 commit

  • Basic genetlink and init infrastructure for the netlink interface, register
    genetlink family "ethtool". Add CONFIG_ETHTOOL_NETLINK Kconfig option to
    make the build optional. Add initial overall interface description into
    Documentation/networking/ethtool-netlink.rst, further patches will add more
    detailed information.

    Signed-off-by: Michal Kubecek
    Reviewed-by: Florian Fainelli
    Reviewed-by: Andrew Lunn
    Signed-off-by: David S. Miller

    Michal Kubecek
     

26 Dec, 2019

1 commit

  • While PHY time stamping drivers can simply attach their interface
    directly to the PHY instance, stand alone drivers require support in
    order to manage their services. Non-PHY MII time stamping drivers
    have a control interface over another bus like I2C, SPI, UART, or via
    a memory mapped peripheral. The controller device will be associated
    with one or more time stamping channels, each of which sits snoops in
    on a MII bus.

    This patch provides a glue layer that will enable time stamping
    channels to find their controlling device.

    Signed-off-by: Richard Cochran
    Reviewed-by: Andrew Lunn
    Signed-off-by: David S. Miller

    Richard Cochran
     

22 Nov, 2019

1 commit


18 Aug, 2019

1 commit

  • Add the basic packet trap infrastructure that allows device drivers to
    register their supported packet traps and trap groups with devlink.

    Each driver is expected to provide basic information about each
    supported trap, such as name and ID, but also the supported metadata
    types that will accompany each packet trapped via the trap. The
    currently supported metadata type is just the input port, but more will
    be added in the future. For example, output port and traffic class.

    Trap groups allow users to set the action of all member traps. In
    addition, users can retrieve per-group statistics in case per-trap
    statistics are too narrow. In the future, the trap group object can be
    extended with more attributes, such as policer settings which will limit
    the amount of traffic generated by member traps towards the CPU.

    Beside registering their packet traps with devlink, drivers are also
    expected to report trapped packets to devlink along with relevant
    metadata. devlink will maintain packets and bytes statistics for each
    packet trap and will potentially report the trapped packet with its
    metadata to user space via drop monitor netlink channel.

    The interface towards the drivers is simple and allows devlink to set
    the action of the trap. Currently, only two actions are supported:
    'trap' and 'drop'. When set to 'trap', the device is expected to provide
    the sole copy of the packet to the driver which will pass it to devlink.
    When set to 'drop', the device is expected to drop the packet and not
    send a copy to the driver. In the future, more actions can be added,
    such as 'mirror'.

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

    Ido Schimmel
     

18 Jun, 2019

1 commit

  • Using a bare block cipher in non-crypto code is almost always a bad idea,
    not only for security reasons (and we've seen some examples of this in
    the kernel in the past), but also for performance reasons.

    In the TCP fastopen case, we call into the bare AES block cipher one or
    two times (depending on whether the connection is IPv4 or IPv6). On most
    systems, this results in a call chain such as

    crypto_cipher_encrypt_one(ctx, dst, src)
    crypto_cipher_crt(tfm)->cit_encrypt_one(crypto_cipher_tfm(tfm), ...);
    aesni_encrypt
    kernel_fpu_begin();
    aesni_enc(ctx, dst, src); // asm routine
    kernel_fpu_end();

    It is highly unlikely that the use of special AES instructions has a
    benefit in this case, especially since we are doing the above twice
    for IPv6 connections, instead of using a transform which can process
    the entire input in one go.

    We could switch to the cbcmac(aes) shash, which would at least get
    rid of the duplicated overhead in *some* cases (i.e., today, only
    arm64 has an accelerated implementation of cbcmac(aes), while x86 will
    end up using the generic cbcmac template wrapping the AES-NI cipher,
    which basically ends up doing exactly the above). However, in the given
    context, it makes more sense to use a light-weight MAC algorithm that
    is more suitable for the purpose at hand, such as SipHash.

    Since the output size of SipHash already matches our chosen value for
    TCP_FASTOPEN_COOKIE_SIZE, and given that it accepts arbitrary input
    sizes, this greatly simplifies the code as well.

    NOTE: Server farms backing a single server IP for load balancing purposes
    and sharing a single fastopen key will be adversely affected by
    this change unless all systems in the pool receive their kernel
    upgrades at the same time.

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

    Ard Biesheuvel
     

21 May, 2019

1 commit


25 Mar, 2019

1 commit

  • Some drivers are becoming more dependent on NET_DEVLINK being selected
    in configuration. With upcoming compat functions, the behavior would be
    wrong in case devlink was not compiled in. So make the drivers select
    NET_DEVLINK and rely on the functions being there, not just stubs.

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

    Jiri Pirko
     

27 Feb, 2019

1 commit

  • Being able to build devlink as a module causes growing pains.
    First all drivers had to add a meta dependency to make sure
    they are not built in when devlink is built as a module. Now
    we are struggling to invoke ethtool compat code reliably.

    Make devlink code built-in, users can still not build it at
    all but the dynamically loadable module option is removed.

    Signed-off-by: Jakub Kicinski
    Reviewed-by: Florian Fainelli
    Acked-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Jakub Kicinski
     

16 Feb, 2019

1 commit

  • Lightweight tunnels are L3 constructs that are used with IP/IP6.

    For example, lwtunnel_xmit is called from ip_output.c and
    ip6_output.c only.

    Make the dependency explicit at least for LWT-BPF, as now they
    call into IP routing.

    V2: added "Reported-by" below.

    Reported-by: Randy Dunlap
    Signed-off-by: Peter Oskolkov
    Acked-by: Randy Dunlap # build-tested
    Signed-off-by: Daniel Borkmann

    Peter Oskolkov
     

20 Dec, 2018

2 commits

  • This converts the bridge netfilter (calling iptables hooks from bridge)
    facility to use the extension infrastructure.

    The bridge_nf specific hooks in skb clone and free paths are removed, they
    have been replaced by the skb_ext hooks that do the same as the bridge nf
    allocations hooks did.

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

    Florian Westphal
     
  • This adds an optional extension infrastructure, with ispec (xfrm) and
    bridge netfilter as first users.
    objdiff shows no changes if kernel is built without xfrm and br_netfilter
    support.

    The third (planned future) user is Multipath TCP which is still
    out-of-tree.
    MPTCP needs to map logical mptcp sequence numbers to the tcp sequence
    numbers used by individual subflows.

    This DSS mapping is read/written from tcp option space on receive and
    written to tcp option space on transmitted tcp packets that are part of
    and MPTCP connection.

    Extending skb_shared_info or adding a private data field to skb fclones
    doesn't work for incoming skb, so a different DSS propagation method would
    be required for the receive side.

    mptcp has same requirements as secpath/bridge netfilter:

    1. extension memory is released when the sk_buff is free'd.
    2. data is shared after cloning an skb (clone inherits extension)
    3. adding extension to an skb will COW the extension buffer if needed.

    The "MPTCP upstreaming" effort adds SKB_EXT_MPTCP extension to store the
    mapping for tx and rx processing.

    Two new members are added to sk_buff:
    1. 'active_extensions' byte (filling a hole), telling which extensions
    are available for this skb.
    This has two purposes.
    a) avoids the need to initialize the pointer.
    b) allows to "delete" an extension by clearing its bit
    value in ->active_extensions.

    While it would be possible to store the active_extensions byte
    in the extension struct instead of sk_buff, there is one problem
    with this:
    When an extension has to be disabled, we can always clear the
    bit in skb->active_extensions. But in case it would be stored in the
    extension buffer itself, we might have to COW it first, if
    we are dealing with a cloned skb. On kmalloc failure we would
    be unable to turn an extension off.

    2. extension pointer, located at the end of the sk_buff.
    If the active_extensions byte is 0, the pointer is undefined,
    it is not initialized on skb allocation.

    This adds extra code to skb clone and free paths (to deal with
    refcount/free of extension area) but this replaces similar code that
    manages skb->nf_bridge and skb->sp structs in the followup patches of
    the series.

    It is possible to add support for extensions that are not preseved on
    clones/copies.

    To do this, it would be needed to define a bitmask of all extensions that
    need copy/cow semantics, and change __skb_ext_copy() to check
    ->active_extensions & SKB_EXT_PRESERVE_ON_CLONE, then just set
    ->active_extensions to 0 on the new clone.

    This isn't done here because all extensions that get added here
    need the copy/cow semantics.

    v2:
    Allocate entire extension space using kmem_cache.
    Upside is that this allows better tracking of used memory,
    downside is that we will allocate more space than strictly needed in
    most cases (its unlikely that all extensions are active/needed at same
    time for same skb).
    The allocated memory (except the small extension header) is not cleared,
    so no additonal overhead aside from memory usage.

    Avoid atomic_dec_and_test operation on skb_ext_put()
    by using similar trick as kfree_skbmem() does with fclone_ref:
    If recount is 1, there is no concurrent user and we can free right away.

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

    Florian Westphal
     

16 Oct, 2018

1 commit

  • Add a generic sk_msg layer, and convert current sockmap and later
    kTLS over to make use of it. While sk_buff handles network packet
    representation from netdevice up to socket, sk_msg handles data
    representation from application to socket layer.

    This means that sk_msg framework spans across ULP users in the
    kernel, and enables features such as introspection or filtering
    of data with the help of BPF programs that operate on this data
    structure.

    Latter becomes in particular useful for kTLS where data encryption
    is deferred into the kernel, and as such enabling the kernel to
    perform L7 introspection and policy based on BPF for TLS connections
    where the record is being encrypted after BPF has run and came to
    a verdict. In order to get there, first step is to transform open
    coding of scatter-gather list handling into a common core framework
    that subsystems can use.

    The code itself has been split and refactored into three bigger
    pieces: i) the generic sk_msg API which deals with managing the
    scatter gather ring, providing helpers for walking and mangling,
    transferring application data from user space into it, and preparing
    it for BPF pre/post-processing, ii) the plain sock map itself
    where sockets can be attached to or detached from; these bits
    are independent of i) which can now be used also without sock
    map, and iii) the integration with plain TCP as one protocol
    to be used for processing L7 application data (later this could
    e.g. also be extended to other protocols like UDP). The semantics
    are the same with the old sock map code and therefore no change
    of user facing behavior or APIs. While pursuing this work it
    also helped finding a number of bugs in the old sockmap code
    that we've fixed already in earlier commits. The test_sockmap
    kselftest suite passes through fine as well.

    Joint work with John.

    Signed-off-by: Daniel Borkmann
    Signed-off-by: John Fastabend
    Signed-off-by: Alexei Starovoitov

    Daniel Borkmann
     

25 Jul, 2018

1 commit


29 May, 2018

1 commit

  • The failover module provides a generic interface for paravirtual drivers
    to register a netdev and a set of ops with a failover instance. The ops
    are used as event handlers that get called to handle netdev register/
    unregister/link change/name change events on slave pci ethernet devices
    with the same mac address as the failover netdev.

    This enables paravirtual drivers to use a VF as an accelerated low latency
    datapath. It also allows migration of VMs with direct attached VFs 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
     

24 May, 2018

1 commit

  • bpfilter.ko consists of bpfilter_kern.c (normal kernel module code)
    and user mode helper code that is embedded into bpfilter.ko

    The steps to build bpfilter.ko are the following:
    - main.c is compiled by HOSTCC into the bpfilter_umh elf executable file
    - with quite a bit of objcopy and Makefile magic the bpfilter_umh elf file
    is converted into bpfilter_umh.o object file
    with _binary_net_bpfilter_bpfilter_umh_start and _end symbols
    Example:
    $ nm ./bld_x64/net/bpfilter/bpfilter_umh.o
    0000000000004cf8 T _binary_net_bpfilter_bpfilter_umh_end
    0000000000004cf8 A _binary_net_bpfilter_bpfilter_umh_size
    0000000000000000 T _binary_net_bpfilter_bpfilter_umh_start
    - bpfilter_umh.o and bpfilter_kern.o are linked together into bpfilter.ko

    bpfilter_kern.c is a normal kernel module code that calls
    the fork_usermode_blob() helper to execute part of its own data
    as a user mode process.

    Notice that _binary_net_bpfilter_bpfilter_umh_start - end
    is placed into .init.rodata section, so it's freed as soon as __init
    function of bpfilter.ko is finished.
    As part of __init the bpfilter.ko does first request/reply action
    via two unix pipe provided by fork_usermode_blob() helper to
    make sure that umh is healthy. If not it will kill it via pid.

    Later bpfilter_process_sockopt() will be called from bpfilter hooks
    in get/setsockopt() to pass iptable commands into umh via bpfilter.ko

    If admin does 'rmmod bpfilter' the __exit code bpfilter.ko will
    kill umh as well.

    Signed-off-by: Alexei Starovoitov
    Signed-off-by: David S. Miller

    Alexei Starovoitov
     

08 May, 2018

1 commit


04 May, 2018

1 commit


01 May, 2018

1 commit


17 Apr, 2018

1 commit

  • Need a fast page recycle mechanism for ndo_xdp_xmit API for returning
    pages on DMA-TX completion time, which have good cross CPU
    performance, given DMA-TX completion time can happen on a remote CPU.

    Refurbish my page_pool code, that was presented[1] at MM-summit 2016.
    Adapted page_pool code to not depend the page allocator and
    integration into struct page. The DMA mapping feature is kept,
    even-though it will not be activated/used in this patchset.

    [1] http://people.netfilter.org/hawk/presentations/MM-summit2016/generic_page_pool_mm_summit2016.pdf

    V2: Adjustments requested by Tariq
    - Changed page_pool_create return codes, don't return NULL, only
    ERR_PTR, as this simplifies err handling in drivers.

    V4: many small improvements and cleanups
    - Add DOC comment section, that can be used by kernel-doc
    - Improve fallback mode, to work better with refcnt based recycling
    e.g. remove a WARN as pointed out by Tariq
    e.g. quicker fallback if ptr_ring is empty.

    V5: Fixed SPDX license as pointed out by Alexei

    V6: Adjustments requested by Eric Dumazet
    - Adjust ____cacheline_aligned_in_smp usage/placement
    - Move rcu_head in struct page_pool
    - Free pages quicker on destroy, minimize resources delayed an RCU period
    - Remove code for forward/backward compat ABI interface

    V8: Issues found by kbuild test robot
    - Address sparse should be static warnings
    - Only compile+link when a driver use/select page_pool,
    mlx5 selects CONFIG_PAGE_POOL, although its first used in two patches

    Signed-off-by: Jesper Dangaard Brouer
    Signed-off-by: David S. Miller

    Jesper Dangaard Brouer
     

02 Feb, 2018

1 commit

  • Pull staging/IIO updates from Greg KH:
    "Here is the big Staging and IIO driver patches for 4.16-rc1.

    There is the normal amount of new IIO drivers added, like all
    releases.

    The networking IPX and the ncpfs filesystem are moved into the staging
    tree, as they are on their way out of the kernel due to lack of use
    anymore.

    The visorbus subsystem finall has started moving out of the staging
    tree to the "real" part of the kernel, and the most and fsl-mc
    codebases are almost ready to move out, that will probably happen for
    4.17-rc1 if all goes well.

    Other than that, there is a bunch of license header cleanups in the
    tree, along with the normal amount of coding style churn that we all
    know and love for this codebase. I also got frustrated at the
    Meltdown/Spectre mess and took it out on the dgnc tty driver, deleting
    huge chunks of it that were never even being used.

    Full details of everything is in the shortlog.

    All of these patches have been in linux-next for a while with no
    reported issues"

    * tag 'staging-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (627 commits)
    staging: rtlwifi: remove redundant initialization of 'cfg_cmd'
    staging: rtl8723bs: remove a couple of redundant initializations
    staging: comedi: reformat lines to 80 chars or less
    staging: lustre: separate a connection destroy from free struct kib_conn
    Staging: rtl8723bs: Use !x instead of NULL comparison
    Staging: rtl8723bs: Remove dead code
    Staging: rtl8723bs: Change names to conform to the kernel code
    staging: ccree: Fix missing blank line after declaration
    staging: rtl8188eu: remove redundant initialization of 'pwrcfgcmd'
    staging: rtlwifi: remove unused RTLHALMAC_ST and RTLPHYDM_ST
    staging: fbtft: remove unused FB_TFT_SSD1325 kconfig
    staging: comedi: dt2811: remove redundant initialization of 'ns'
    staging: wilc1000: fix alignments to match open parenthesis
    staging: wilc1000: removed unnecessary defined enums typedef
    staging: wilc1000: remove unnecessary use of parentheses
    staging: rtl8192u: remove redundant initialization of 'timeout'
    staging: sm750fb: fix CamelCase for dispSet var
    staging: lustre: lnet/selftest: fix compile error on UP build
    staging: rtl8723bs: hal_com_phycfg: Remove unneeded semicolons
    staging: rts5208: Fix "seg_no" calculation in reset_ms_card()
    ...

    Linus Torvalds
     

09 Jan, 2018

1 commit


03 Jan, 2018

1 commit