24 Aug, 2018

3 commits

  • [ Upstream commit 02a2f000a3629274bfad60bfc4de9edec49e63e7 ]

    test_task_rename() and test_urandom_read()
    can be failed during write() and read(),
    So check the result of them.

    Reviewed-by: David Laight
    Signed-off-by: Taeung Song
    Acked-by: David S. Miller
    Signed-off-by: Daniel Borkmann
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Taeung Song
     
  • [ Upstream commit 492b7e894587c151be681f86d4d1d086375f7b45 ]

    To avoid the below build warning message,
    use new generate_load() checking the return value.

    ignoring return value of ‘system’, declared with attribute warn_unused_result

    And it also refactors the duplicate code of both
    test_perf_event_all_cpu() and test_perf_event_task()

    Cc: Teng Qin
    Signed-off-by: Taeung Song
    Acked-by: David S. Miller
    Signed-off-by: Daniel Borkmann
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Taeung Song
     
  • [ Upstream commit 4d5d33a085335ef469c9a87792bcaaaa8e64d8c4 ]

    This fixes build error regarding redefinition:

    CLANG-bpf samples/bpf/parse_varlen.o
    samples/bpf/parse_varlen.c:111:8: error: redefinition of 'vlan_hdr'
    struct vlan_hdr {
    ^
    ./include/linux/if_vlan.h:38:8: note: previous definition is here

    So remove duplicate 'struct vlan_hdr' in sample code and include if_vlan.h

    Signed-off-by: Taeung Song
    Acked-by: David S. Miller
    Signed-off-by: Daniel Borkmann
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Taeung Song
     

26 Apr, 2018

1 commit

  • [ Upstream commit c25ef6a5e62fa212d298ce24995ce239f29b5f96 ]

    Do not build lib/bpf/bpf.o with this Makefile but use the one from the
    library directory. This avoid making a buggy bpf.o file (e.g. missing
    symbols).

    This patch is useful if some code (e.g. Landlock tests) needs both the
    bpf.o (from tools/lib/bpf) and the bpf_load.o (from samples/bpf).

    Signed-off-by: Mickaël Salaün
    Cc: Alexei Starovoitov
    Cc: Daniel Borkmann
    Signed-off-by: Daniel Borkmann
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Mickaël Salaün
     

20 Dec, 2017

1 commit


03 Nov, 2017

1 commit

  • …el/git/gregkh/driver-core

    Pull initial SPDX identifiers from Greg KH:
    "License cleanup: add SPDX license identifiers to some files

    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 <5
    lines).

    All documentation files were explicitly excluded.

    The following heuristics were used to determine which SPDX license
    identifiers to apply.

    - when both scanners couldn't find any license traces, file was
    considered to have no license information in it, and the top level
    COPYING file license applied.

    For non */uapi/* files that summary was:

    SPDX license identifier # files
    ---------------------------------------------------|-------
    GPL-2.0 11139

    and resulted in the first patch in this series.

    If that file was a */uapi/* path one, it was "GPL-2.0 WITH
    Linux-syscall-note" otherwise it was "GPL-2.0". Results of that
    was:

    SPDX license identifier # files
    ---------------------------------------------------|-------
    GPL-2.0 WITH Linux-syscall-note 930

    and resulted in the second patch in this series.

    - if a file had some form of licensing information in it, and was one
    of the */uapi/* ones, it was denoted with the Linux-syscall-note if
    any GPL family license was found in the file or had no licensing in
    it (per prior point). Results summary:

    SPDX license identifier # files
    ---------------------------------------------------|------
    GPL-2.0 WITH Linux-syscall-note 270
    GPL-2.0+ WITH Linux-syscall-note 169
    ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) 21
    ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) 17
    LGPL-2.1+ WITH Linux-syscall-note 15
    GPL-1.0+ WITH Linux-syscall-note 14
    ((GPL-2.0+ WITH Linux-syscall-note) OR BSD-3-Clause) 5
    LGPL-2.0+ WITH Linux-syscall-note 4
    LGPL-2.1 WITH Linux-syscall-note 3
    ((GPL-2.0 WITH Linux-syscall-note) OR MIT) 3
    ((GPL-2.0 WITH Linux-syscall-note) AND MIT) 1

    and that resulted in the third patch in this series.

    - when the two scanners agreed on the detected license(s), that
    became the concluded license(s).

    - when there was disagreement between the two scanners (one detected
    a license but the other didn't, or they both detected different
    licenses) a manual inspection of the file occurred.

    - In most cases a manual inspection of the information in the file
    resulted in a clear resolution of the license that should apply
    (and which scanner probably needed to revisit its heuristics).

    - When it was not immediately clear, the license identifier was
    confirmed with lawyers working with the Linux Foundation.

    - If there was any question as to the appropriate license identifier,
    the file was flagged for further research and to be revisited later
    in time.

    In total, over 70 hours of logged manual review was done on the
    spreadsheet to determine the SPDX license identifiers to apply to the
    source files by Kate, Philippe, Thomas and, in some cases,
    confirmation by lawyers working with the Linux Foundation.

    Kate also obtained a third independent scan of the 4.13 code base from
    FOSSology, and compared selected files where the other two scanners
    disagreed against that SPDX file, to see if there was new insights.
    The Windriver scanner is based on an older version of FOSSology in
    part, so they are related.

    Thomas did random spot checks in about 500 files from the spreadsheets
    for the uapi headers and agreed with SPDX license identifier in the
    files he inspected. For the non-uapi files Thomas did random spot
    checks in about 15000 files.

    In initial set of patches against 4.14-rc6, 3 files were found to have
    copy/paste license identifier errors, and have been fixed to reflect
    the correct identifier.

    Additionally Philippe spent 10 hours this week doing a detailed manual
    inspection and review of the 12,461 patched files from the initial
    patch version early this week with:

    - a full scancode scan run, collecting the matched texts, detected
    license ids and scores

    - reviewing anything where there was a license detected (about 500+
    files) to ensure that the applied SPDX license was correct

    - reviewing anything where there was no detection but the patch
    license was not GPL-2.0 WITH Linux-syscall-note to ensure that the
    applied SPDX license was correct

    This produced a worksheet with 20 files needing minor correction. This
    worksheet was then exported into 3 different .csv files for the
    different types of files to be modified.

    These .csv files were then reviewed by Greg. Thomas wrote a script to
    parse the csv files and add the proper SPDX tag to the file, in the
    format that the file expected. This script was further refined by Greg
    based on the output to detect more types of files automatically and to
    distinguish between header and source .c files (which need different
    comment types.) Finally Greg ran the script using the .csv files to
    generate the patches.

    Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org>
    Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>"

    * tag 'spdx_identifiers-4.14-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    License cleanup: add SPDX license identifier to uapi header files with a license
    License cleanup: add SPDX license identifier to uapi header files with no license
    License cleanup: add SPDX GPL-2.0 license identifier to files with no license

    Linus Torvalds
     

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
     

28 Oct, 2017

1 commit

  • Commit 6575257c60e1 ("tracing/samples: Fix creation and deletion of
    simple_thread_fn creation") introduced a new warning due to using a
    boolean as a counter.

    Just make it "int".

    Fixes: 6575257c60e1 ("tracing/samples: Fix creation and deletion of simple_thread_fn creation")
    Cc: Steven Rostedt
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

22 Oct, 2017

1 commit

  • Pull networking fixes from David Miller:
    "A little more than usual this time around. Been travelling, so that is
    part of it.

    Anyways, here are the highlights:

    1) Deal with memcontrol races wrt. listener dismantle, from Eric
    Dumazet.

    2) Handle page allocation failures properly in nfp driver, from Jaku
    Kicinski.

    3) Fix memory leaks in macsec, from Sabrina Dubroca.

    4) Fix crashes in pppol2tp_session_ioctl(), from Guillaume Nault.

    5) Several fixes in bnxt_en driver, including preventing potential
    NVRAM parameter corruption from Michael Chan.

    6) Fix for KRACK attacks in wireless, from Johannes Berg.

    7) rtnetlink event generation fixes from Xin Long.

    8) Deadlock in mlxsw driver, from Ido Schimmel.

    9) Disallow arithmetic operations on context pointers in bpf, from
    Jakub Kicinski.

    10) Missing sock_owned_by_user() check in sctp_icmp_redirect(), from
    Xin Long.

    11) Only TCP is supported for sockmap, make that explicit with a
    check, from John Fastabend.

    12) Fix IP options state races in DCCP and TCP, from Eric Dumazet.

    13) Fix panic in packet_getsockopt(), also from Eric Dumazet.

    14) Add missing locked in hv_sock layer, from Dexuan Cui.

    15) Various aquantia bug fixes, including several statistics handling
    cures. From Igor Russkikh et al.

    16) Fix arithmetic overflow in devmap code, from John Fastabend.

    17) Fix busted socket memory accounting when we get a fault in the tcp
    zero copy paths. From Willem de Bruijn.

    18) Don't leave opt->tot_len uninitialized in ipv6, from Eric Dumazet"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (106 commits)
    stmmac: Don't access tx_q->dirty_tx before netif_tx_lock
    ipv6: flowlabel: do not leave opt->tot_len with garbage
    of_mdio: Fix broken PHY IRQ in case of probe deferral
    textsearch: fix typos in library helpers
    rxrpc: Don't release call mutex on error pointer
    net: stmmac: Prevent infinite loop in get_rx_timestamp_status()
    net: stmmac: Fix stmmac_get_rx_hwtstamp()
    net: stmmac: Add missing call to dev_kfree_skb()
    mlxsw: spectrum_router: Configure TIGCR on init
    mlxsw: reg: Add Tunneling IPinIP General Configuration Register
    net: ethtool: remove error check for legacy setting transceiver type
    soreuseport: fix initialization race
    net: bridge: fix returning of vlan range op errors
    sock: correct sk_wmem_queued accounting on efault in tcp zerocopy
    bpf: add test cases to bpf selftests to cover all access tests
    bpf: fix pattern matches for direct packet access
    bpf: fix off by one for range markings with L{T, E} patterns
    bpf: devmap fix arithmetic overflow in bitmap_size calculation
    net: aquantia: Bad udp rate on default interrupt coalescing
    net: aquantia: Enable coalescing management via ethtool interface
    ...

    Linus Torvalds
     

20 Oct, 2017

1 commit

  • SK_SKB BPF programs are run from the socket/tcp context but early in
    the stack before much of the TCP metadata is needed in tcp_skb_cb. So
    we can use some unused fields to place BPF metadata needed for SK_SKB
    programs when implementing the redirect function.

    This allows us to drop the preempt disable logic. It does however
    require an API change so sk_redirect_map() has been updated to
    additionally provide ctx_ptr to skb. Note, we do however continue to
    disable/enable preemption around actual BPF program running to account
    for map updates.

    Signed-off-by: John Fastabend
    Acked-by: Daniel Borkmann
    Acked-by: Alexei Starovoitov
    Signed-off-by: David S. Miller

    John Fastabend
     

18 Oct, 2017

2 commits

  • Pull tracing fix from Steven Rostedt:
    "Testing a new trace event format, I triggered a bug by doing:

    # modprobe trace-events-sample
    # echo 1 > /sys/kernel/debug/tracing/events/sample-trace/enable
    # rmmod trace-events-sample

    This would cause an oops. The issue is that I added another trace
    event sample that reused a reg function of another trace event to
    create a thread to call the tracepoints. The problem was that the reg
    function couldn't handle nested calls (reg; reg; unreg; unreg;) and
    created two threads (instead of one) and only removed one on exit.

    This isn't a critical bug as the bug is only in sample code. But
    sample code should be free of known bugs to prevent others from
    copying it. This is why this is also marked for stable"

    * tag 'trace-v4.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    tracing/samples: Fix creation and deletion of simple_thread_fn creation

    Linus Torvalds
     
  • Commit 7496946a8 ("tracing: Add samples of DECLARE_EVENT_CLASS() and
    DEFINE_EVENT()") added template examples for all the events. It created a
    DEFINE_EVENT_FN() example which reused the foo_bar_reg and foo_bar_unreg
    functions.

    Enabling both the TRACE_EVENT_FN() and DEFINE_EVENT_FN() example trace
    events caused the foo_bar_reg to be called twice, creating the test thread
    twice. The foo_bar_unreg would remove it only once, even if it was called
    multiple times, leaving a thread existing when the module is unloaded,
    causing an oops.

    Add a ref count and allow foo_bar_reg() and foo_bar_unreg() be called by
    multiple trace events.

    Cc: stable@vger.kernel.org
    Fixes: 7496946a8 ("tracing: Add samples of DECLARE_EVENT_CLASS() and DEFINE_EVENT()")
    Signed-off-by: Steven Rostedt (VMware)

    Steven Rostedt (VMware)
     

08 Sep, 2017

1 commit

  • Pull media updates from Mauro Carvalho Chehab:
    "Brazil's Independence Day pull request :-)

    This is one of the biggest media pull requests, with 625 patches
    affecting almost all parts of media (RC, DVB, V4L2, CEC, docs).

    This contains:

    - A lot of new drivers:
    * DVB frontends: mxl5xx, stv0910, stv6111;
    * camera flash: as3645a led driver;
    * HDMI receiver: adv748X;
    * camera sensor: Omnivision 6650 5M driver (ov6650);
    * HDMI CEC: ao-cec meson driver;
    * V4L2: Qualcom camss driver;
    * Remote controller: gpio-ir-tx, pwm-ir-tx and zx-irdec drivers.

    - The DDbridge DVB driver got a massive update, with makes it in sync
    with modern hardware from that vendor;

    - There's an important milestone on this series: the DVB
    documentation was written in 2003, but only started to be updated
    in 2007. It also used to contain several gaps from the time it was
    kept out of tree, mentioning error codes and device nodes that
    never existed upstream. On this series, it received a massive
    update: all non-deprecated digital TV APIs are now in sync with the
    current implementation;

    - Some DVB APIs that aren't used by any upstream driver got removed;

    - Other parts of the media documentation algo got updated, fixing
    some bugs on its PDF output and making it compatible with Sphinx
    version 1.6.

    As the number of hacks required to build PDF output reduced, I hope
    we'll have less troubles as newer versions of our documentation
    toolchain are released (famous last words);

    - As usual, lots of driver cleanups and improvements"

    * tag 'media/v4.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (624 commits)
    media: leds: as3645a: add V4L2_FLASH_LED_CLASS dependency
    media: get rid of removed DMX_GET_CAPS and DMX_SET_SOURCE leftovers
    media: Revert "[media] v4l: async: make v4l2 coexist with devicetree nodes in a dt overlay"
    media: staging: atomisp: sh_css_calloc shall return a pointer to the allocated space
    media: Revert "[media] lirc_dev: remove superfluous get/put_device() calls"
    media: add qcom_camss.rst to v4l-drivers rst file
    media: dvb headers: make checkpatch happier
    media: dvb uapi: move frontend legacy API to another part of the book
    media: pixfmt-srggb12p.rst: better format the table for PDF output
    media: docs-rst: media: Don't use \small for V4L2_PIX_FMT_SRGGB10 documentation
    media: index.rst: don't write "Contents:" on PDF output
    media: pixfmt*.rst: replace a two dots by a comma
    media: vidioc-g-fmt.rst: adjust table format
    media: vivid.rst: add a blank line to correct ReST format
    media: v4l2 uapi book: get rid of driver programming's chapter
    media: format.rst: use the right markup for important notes
    media: docs-rst: cardlists: change their format to flat-tables
    media: em28xx-cardlist.rst: update to reflect last changes
    media: v4l2-event.rst: adjust table to fit on PDF output
    media: docs: don't show ToC for each part on PDF output
    ...

    Linus Torvalds
     

02 Sep, 2017

1 commit

  • Create a new case to test the LRU lookup performance.

    At the beginning, the LRU map is fully loaded (i.e. the number of keys
    is equal to map->max_entries). The lookup is done through key 0
    to num_map_entries and then repeats from 0 again.

    This patch also creates an anonymous struct to properly
    name the test params in stress_lru_hmap_alloc() in map_perf_test_kern.c.

    Signed-off-by: Martin KaFai Lau
    Acked-by: Daniel Borkmann
    Acked-by: Alexei Starovoitov
    Signed-off-by: David S. Miller

    Martin KaFai Lau
     

01 Sep, 2017

6 commits


30 Aug, 2017

2 commits

  • This tool xdp_monitor demonstrate how to use the different xdp_redirect
    tracepoints xdp_redirect{,_map}{,_err} from a BPF program.

    The default mode is to only monitor the error counters, to avoid
    affecting the per packet performance. Tracepoints comes with a base
    overhead of 25 nanosec for an attached bpf_prog, and 48 nanosec for
    using a full perf record (with non-matching filter). Thus, default
    loading the --stats mode could affect the maximum performance.

    This version of the tool is very simple and count all types of errors
    as one. It will be natural to extend this later with the different
    types of errors that can occur, which should help users quickly
    identify common mistakes.

    Because the TP_STRUCT was kept in sync all the tracepoints loads the
    same BPF code. It would also be natural to extend the map version to
    demonstrate how the map information could be used.

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

    Jesper Dangaard Brouer
     
  • For supporting XDP_REDIRECT, a device driver must (obviously)
    implement the "TX" function ndo_xdp_xmit(). An additional requirement
    is you cannot TX out a device, unless it also have a xdp bpf program
    attached. This dependency is caused by the driver code need to setup
    XDP resources before it can ndo_xdp_xmit.

    Update bpf samples xdp_redirect and xdp_redirect_map to automatically
    attach a dummy XDP program to the configured ifindex_out device. Use
    the XDP flag XDP_FLAGS_UPDATE_IF_NOEXIST on the dummy load, to avoid
    overriding an existing XDP prog on the device.

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

    Jesper Dangaard Brouer
     

29 Aug, 2017

2 commits

  • Extend existing tests for vxlan, gre, geneve, ipip to
    include ERSPAN tunnel.

    Signed-off-by: William Tu
    Acked-by: Alexei Starovoitov
    Signed-off-by: David S. Miller

    William Tu
     
  • In the initial sockmap API we provided strparser and verdict programs
    using a single attach command by extending the attach API with a the
    attach_bpf_fd2 field.

    However, if we add other programs in the future we will be adding a
    field for every new possible type, attach_bpf_fd(3,4,..). This
    seems a bit clumsy for an API. So lets push the programs using two
    new type fields.

    BPF_SK_SKB_STREAM_PARSER
    BPF_SK_SKB_STREAM_VERDICT

    This has the advantage of having a readable name and can easily be
    extended in the future.

    Updates to samples and sockmap included here also generalize tests
    slightly to support upcoming patch for multiple map support.

    Signed-off-by: John Fastabend
    Fixes: 174a79ff9515 ("bpf: sockmap with sk redirect support")
    Suggested-by: Alexei Starovoitov
    Acked-by: Alexei Starovoitov
    Signed-off-by: David S. Miller

    John Fastabend
     

20 Aug, 2017

2 commits

  • These vb2_ops structures are only stored in the ops field of a
    vb2_queue structure, which is declared as const. Thus the vb2_ops
    structures themselves can be const.

    Done with the help of Coccinelle.

    //
    @r disable optional_qualifier@
    identifier i;
    position p;
    @@
    static struct vb2_ops i@p = { ... };

    @ok@
    identifier r.i;
    struct vb2_queue e;
    position p;
    @@
    e.ops = &i@p;

    @bad@
    position p != {r.p,ok.p};
    identifier r.i;
    struct vb2_ops e;
    @@
    e@i@p

    @depends on !bad disable optional_qualifier@
    identifier r.i;
    @@
    static
    +const
    struct vb2_ops i = { ... };
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Julia Lawall
     
  • This patch makes the needed changes to allow each process of
    the INNER_LRU_HASH_PREALLOC test to provide its numa node id
    when creating the lru map.

    Signed-off-by: Martin KaFai Lau
    Acked-by: Daniel Borkmann
    Acked-by: Alexei Starovoitov
    Signed-off-by: David S. Miller

    Martin KaFai Lau
     

17 Aug, 2017

1 commit

  • This program binds a program to a cgroup and then matches hard
    coded IP addresses and adds these to a sockmap.

    This will receive messages from the backend and send them to
    the client.

    client:X frontend:10000 client:X backend:10001

    To keep things simple this is only designed for 1:1 connections
    using hard coded values. A more complete example would allow many
    backends and clients.

    To run,

    # sockmap

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

    John Fastabend
     

08 Aug, 2017

1 commit


02 Aug, 2017

1 commit


01 Aug, 2017

1 commit

  • test_tunnel_bpf.sh fails to remove the vxlan11 tunnel device, causing the
    next geneve tunnelling test case fails. In addition, the geneve reserved bit
    in tcbpf2_kern.c should be zero, according to the RFC.

    Signed-off-by: William Tu
    Signed-off-by: David S. Miller

    William Tu
     

21 Jul, 2017

1 commit


18 Jul, 2017

3 commits

  • When testing with a driver that has both native and generic redirect support:

    $ sudo ./samples/bpf/xdp_redirect -N 5 6
    input: 5 output: 6
    ifindex 6: 4961879 pkt/s
    ifindex 6: 6391319 pkt/s
    ifindex 6: 6419468 pkt/s

    $ sudo ./samples/bpf/xdp_redirect -S 5 6
    input: 5 output: 6
    ifindex 6: 1845435 pkt/s
    ifindex 6: 3882850 pkt/s
    ifindex 6: 3893974 pkt/s

    $ sudo ./samples/bpf/xdp_redirect_map -N 5 6
    input: 5 output: 6
    map[0] (vports) = 4, map[1] (map) = 5, map[2] (count) = 0
    ifindex 6: 2207374 pkt/s
    ifindex 6: 6212869 pkt/s
    ifindex 6: 6286515 pkt/s

    $ sudo ./samples/bpf/xdp_redirect_map -S 5 6
    input: 5 output: 6
    map[0] (vports) = 4, map[1] (map) = 5, map[2] (count) = 0
    ifindex 6: 5052528 pkt/s
    ifindex 6: 5736631 pkt/s
    ifindex 6: 5739962 pkt/s

    Signed-off-by: Andy Gospodarek
    Acked-by: John Fastabend
    Acked-by: Daniel Borkmann
    Signed-off-by: David S. Miller

    Andy Gospodarek
     
  • Signed-off-by: John Fastabend
    Tested-by: Andy Gospodarek
    Acked-by: Daniel Borkmann
    Acked-by: Jesper Dangaard Brouer
    Signed-off-by: David S. Miller

    John Fastabend
     
  • This implements a sample program for testing bpf_redirect. It reports
    the number of packets redirected per second and as input takes the
    ifindex of the device to run the xdp program on and the ifindex of the
    interface to redirect packets to.

    Signed-off-by: John Fastabend
    Tested-by: Andy Gospodarek
    Acked-by: Daniel Borkmann
    Acked-by: Jesper Dangaard Brouer
    Signed-off-by: David S. Miller

    John Fastabend
     

14 Jul, 2017

1 commit

  • Merge yet more updates from Andrew Morton:

    - various misc things

    - kexec updates

    - sysctl core updates

    - scripts/gdb udpates

    - checkpoint-restart updates

    - ipc updates

    - kernel/watchdog updates

    - Kees's "rough equivalent to the glibc _FORTIFY_SOURCE=1 feature"

    - "stackprotector: ascii armor the stack canary"

    - more MM bits

    - checkpatch updates

    * emailed patches from Andrew Morton : (96 commits)
    writeback: rework wb_[dec|inc]_stat family of functions
    ARM: samsung: usb-ohci: move inline before return type
    video: fbdev: omap: move inline before return type
    video: fbdev: intelfb: move inline before return type
    USB: serial: safe_serial: move __inline__ before return type
    drivers: tty: serial: move inline before return type
    drivers: s390: move static and inline before return type
    x86/efi: move asmlinkage before return type
    sh: move inline before return type
    MIPS: SMP: move asmlinkage before return type
    m68k: coldfire: move inline before return type
    ia64: sn: pci: move inline before type
    ia64: move inline before return type
    FRV: tlbflush: move asmlinkage before return type
    CRIS: gpio: move inline before return type
    ARM: HP Jornada 7XX: move inline before return type
    ARM: KVM: move asmlinkage before type
    checkpatch: improve the STORAGE_CLASS test
    mm, migration: do not trigger OOM killer when migrating memory
    drm/i915: use __GFP_RETRY_MAYFAIL
    ...

    Linus Torvalds
     

13 Jul, 2017

1 commit

  • This is a layering violation so we replace the uses with calls to
    sg_page(). This is a prep patch for replacing page_link and this is one
    of the very few uses outside of scatterlist.h.

    Link: http://lkml.kernel.org/r/1495663199-22234-1-git-send-email-logang@deltatee.com
    Signed-off-by: Logan Gunthorpe
    Signed-off-by: Stephen Bates
    Acked-by: Stefani Seibold
    Cc: Stefani Seibold
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Logan Gunthorpe
     

12 Jul, 2017

1 commit

  • With latest net-next:

    ====
    clang -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/6.3.1/include -I./arch/x86/include -I./arch/x86/include/generated/uapi -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -Isamples/bpf \
    -D__KERNEL__ -D__ASM_SYSREG_H -Wno-unused-value -Wno-pointer-sign \
    -Wno-compare-distinct-pointer-types \
    -Wno-gnu-variable-sized-type-not-at-end \
    -Wno-address-of-packed-member -Wno-tautological-compare \
    -Wno-unknown-warning-option \
    -O2 -emit-llvm -c samples/bpf/tcp_synrto_kern.c -o -| llc -march=bpf -filetype=obj -o samples/bpf/tcp_synrto_kern.o
    samples/bpf/tcp_synrto_kern.c:20:10: fatal error: 'bpf_endian.h' file not found
    ^~~~~~~~~~~~~~
    1 error generated.
    ====

    net has the same issue.

    Add support for ntohl and htonl in tools/testing/selftests/bpf/bpf_endian.h.
    Also move bpf_helpers.h from samples/bpf to selftests/bpf and change
    compiler include logic so that programs in samples/bpf can access the headers
    in selftests/bpf, but not the other way around.

    Signed-off-by: Yonghong Song
    Acked-by: Daniel Borkmann
    Acked-by: Lawrence Brakmo
    Signed-off-by: David S. Miller

    Yonghong Song
     

05 Jul, 2017

1 commit

  • The function load_bpf_file ignores the return value of
    load_and_attach(), so even if load_and_attach() returns an error,
    load_bpf_file() will return 0.

    Now, load_bpf_file() can call load_and_attach() multiple times and some
    can succeed and some could fail. I think the correct behavor is to
    return error on the first failed load_and_attach().

    v2: Added missing SOB

    Signed-off-by: Lawrence Brakmo
    Signed-off-by: David S. Miller

    Lawrence Brakmo
     

02 Jul, 2017

2 commits

  • Sample BPF program, tcp_clamp_kern.c, to demostrate the use
    of setting the sndcwnd clamp. This program assumes that if the
    first 5.5 bytes of the host's IPv6 addresses are the same, then
    the hosts are in the same datacenter and sets sndcwnd clamp to
    100 packets, SYN and SYN-ACK RTOs to 10ms and send/receive buffer
    sizes to 150KB.

    Signed-off-by: Lawrence Brakmo
    Signed-off-by: David S. Miller

    Lawrence Brakmo
     
  • Sample BPF program that assumes hosts are far away (i.e. large RTTs)
    and sets initial cwnd and initial receive window to 40 packets,
    send and receive buffers to 1.5MB.

    In practice there would be a test to insure the hosts are actually
    far enough away.

    Signed-off-by: Lawrence Brakmo
    Signed-off-by: David S. Miller

    Lawrence Brakmo