1. 02 Oct, 2020 29 commits
  2. 01 Oct, 2020 11 commits
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next · 23a1f682
      David S. Miller authored
      Daniel Borkmann says:
      
      ====================
      pull-request: bpf-next 2020-10-01
      
      The following pull-request contains BPF updates for your *net-next* tree.
      
      We've added 90 non-merge commits during the last 8 day(s) which contain
      a total of 103 files changed, 7662 insertions(+), 1894 deletions(-).
      
      Note that once bpf(/net) tree gets merged into net-next, there will be a small
      merge conflict in tools/lib/bpf/btf.c between commit 12450081 ("libbpf: Fix
      native endian assumption when parsing BTF") from the bpf tree and the commit
      3289959b ("libbpf: Support BTF loading and raw data output in both endianness")
      from the bpf-next tree. Correct resolution would be to stick with bpf-next, it
      should look like:
      
        [...]
              /* check BTF magic */
              if (fread(&magic, 1, sizeof(magic), f) < sizeof(magic)) {
                      err = -EIO;
                      goto err_out;
              }
              if (magic != BTF_MAGIC && magic != bswap_16(BTF_MAGIC)) {
                      /* definitely not a raw BTF */
                      err = -EPROTO;
                      goto err_out;
              }
      
              /* get file size */
        [...]
      
      The main changes are:
      
      1) Add bpf_snprintf_btf() and bpf_seq_printf_btf() helpers to support displaying
         BTF-based kernel data structures out of BPF programs, from Alan Maguire.
      
      2) Speed up RCU tasks trace grace periods by a factor of 50 & fix a few race
         conditions exposed by it. It was discussed to take these via BPF and
         networking tree to get better testing exposure, from Paul E. McKenney.
      
      3) Support multi-attach for freplace programs, needed for incremental attachment
         of multiple XDP progs using libxdp dispatcher model, from Toke Høiland-Jørgensen.
      
      4) libbpf support for appending new BTF types at the end of BTF object, allowing
         intrusive changes of prog's BTF (useful for future linking), from Andrii Nakryiko.
      
      5) Several BPF helper improvements e.g. avoid atomic op in cookie generator and add
         a redirect helper into neighboring subsys, from Daniel Borkmann.
      
      6) Allow map updates on sockmaps from bpf_iter context in order to migrate sockmaps
         from one to another, from Lorenz Bauer.
      
      7) Fix 32 bit to 64 bit assignment from latest alu32 bounds tracking which caused
         a verifier issue due to type downgrade to scalar, from John Fastabend.
      
      8) Follow-up on tail-call support in BPF subprogs which optimizes x64 JIT prologue
         and epilogue sections, from Maciej Fijalkowski.
      
      9) Add an option to perf RB map to improve sharing of event entries by avoiding remove-
         on-close behavior. Also, add BPF_PROG_TEST_RUN for raw_tracepoint, from Song Liu.
      
      10) Fix a crash in AF_XDP's socket_release when memory allocation for UMEMs fails,
          from Magnus Karlsson.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      23a1f682
    • David S. Miller's avatar
      Merge branch 'net-ravb-Add-support-for-explicit-internal-clock-delay-c · 7c89d9d9
      David S. Miller authored
      onfiguration'
      
      Geert Uytterhoeven says:
      
      ====================
      net/ravb: Add support for explicit internal clock delay configuration
      
      Some Renesas EtherAVB variants support internal clock delay
      configuration, which can add larger delays than the delays that are
      typically supported by the PHY (using an "rgmii-*id" PHY mode, and/or
      "[rt]xc-skew-ps" properties).
      
      Historically, the EtherAVB driver configured these delays based on the
      "rgmii-*id" PHY mode.  This caused issues with PHY drivers that
      implement PHY internal delays properly[1].  Hence a backwards-compatible
      workaround was added by masking the PHY mode[2].
      
      This patch series implements the next step of the plan outlined in [3],
      and adds proper support for explicit configuration of the MAC internal
      clock delays using new "[rt]x-internal-delay-ps" properties.  If none of
      these properties is present, the driver falls back to the old handling.
      
      This can be considered the MAC counterpart of commit 9150069b
      ("dt-bindings: net: Add tx and rx internal delays"), which applies to
      the PHY.  Note that unlike commit 92252eec ("net: phy: Add a
      helper to return the index for of the internal delay"), no helpers are
      provided to parse the DT properties, as so far there is a single user
      only, which supports only zero or a single fixed value.  Of course such
      helpers can be added later, when the need arises, or when deemed useful
      otherwise.
      
      This series consists of 3 parts:
        1. DT binding updates documenting the new properties, for both the
           generic ethernet-controller and the EtherAVB-specific bindings,
        2. Conversion to json-schema of the Renesas EtherAVB DT bindings.
           Technically, the conversion is independent of all of the above.
           I included it in this series, as it shows how all sanity checks on
           "[rt]x-internal-delay-ps" values are implemented as DT binding
           checks,
        3. EtherAVB driver update implementing support for the new properties.
      
      Given Rob has provided his acks for the DT binding updates, all of this
      can be merged through net-next.
      
      Changes compared to v3[4]:
        - Add Reviewed-by,
        - Drop the DT updates, as they will be merged through renesas-devel and
          arm-soc, and have a hard dependency on this series.
      
      Changes compared to v2[5]:
        - Update recently added board DTS files,
        - Add Reviewed-by.
      
      Changes compared to v1[6]:
        - Added "[PATCH 1/7] dt-bindings: net: ethernet-controller: Add
          internal delay properties",
        - Replace "renesas,[rt]xc-delay-ps" by "[rt]x-internal-delay-ps",
        - Incorporated EtherAVB DT binding conversion to json-schema,
        - Add Reviewed-by.
      
      Impacted, tested:
        - Salvator-X(S) with R-Car H3 ES1.0 and ES2.0, M3-W, and M3-N.
      
      Not impacted, tested:
        - Ebisu with R-Car E3.
      
      Impacted, not tested:
        - Salvator-X(S) with other SoC variants,
        - ULCB with R-Car H3/M3-W/M3-N variants,
        - V3MSK and Eagle with R-Car V3M,
        - Draak with R-Car V3H,
        - HiHope RZ/G2[MN] with RZ/G2M or RZ/G2N,
        - Beacon EmbeddedWorks RZ/G2M Development Kit.
      
      To ease testing, I have pushed this series and the DT updates to the
      topic/ravb-internal-clock-delays-v4 branch of my renesas-drivers
      repository at
      git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git.
      
      Thanks for applying!
      
      References:
        [1] Commit bcf3440c ("net: phy: micrel: add phy-mode support
            for the KSZ9031 PHY")
        [2] Commit 9b23203c ("ravb: Mask PHY mode to avoid inserting
            delays twice").
            https://lore.kernel.org/r/20200529122540.31368-1-geert+renesas@glider.be/
        [3] https://lore.kernel.org/r/CAMuHMdU+MR-2tr3-pH55G0GqPG9HwH3XUd=8HZxprFDMGQeWUw@mail.gmail.com/
        [4] https://lore.kernel.org/linux-devicetree/20200819134344.27813-1-geert+renesas@glider.be/
        [5] https://lore.kernel.org/linux-devicetree/20200706143529.18306-1-geert+renesas@glider.be/
        [6] https://lore.kernel.org/linux-devicetree/20200619191554.24942-1-geert+renesas@glider.be/
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7c89d9d9
    • Geert Uytterhoeven's avatar
      ravb: Add support for explicit internal clock delay configuration · a6f51f2e
      Geert Uytterhoeven authored
      Some EtherAVB variants support internal clock delay configuration, which
      can add larger delays than the delays that are typically supported by
      the PHY (using an "rgmii-*id" PHY mode, and/or "[rt]xc-skew-ps"
      properties).
      
      Historically, the EtherAVB driver configured these delays based on the
      "rgmii-*id" PHY mode.  This caused issues with PHY drivers that
      implement PHY internal delays properly[1].  Hence a backwards-compatible
      workaround was added by masking the PHY mode[2].
      
      Add proper support for explicit configuration of the MAC internal clock
      delays using the new "[rt]x-internal-delay-ps" properties.
      Fall back to the old handling if none of these properties is present.
      
      [1] Commit bcf3440c ("net: phy: micrel: add phy-mode support for
          the KSZ9031 PHY")
      [2] Commit 9b23203c ("ravb: Mask PHY mode to avoid inserting
          delays twice").
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Reviewed-by: default avatarSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a6f51f2e
    • Geert Uytterhoeven's avatar
      ravb: Split delay handling in parsing and applying · ce19a9eb
      Geert Uytterhoeven authored
      Currently, full delay handling is done in both the probe and resume
      paths.  Split it in two parts, so the resume path doesn't have to redo
      the parsing part over and over again.
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Reviewed-by: default avatarSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ce19a9eb
    • Geert Uytterhoeven's avatar
      dt-bindings: net: renesas,etheravb: Convert to json-schema · d7adf633
      Geert Uytterhoeven authored
      Convert the Renesas Ethernet AVB (EthernetAVB-IF) Device Tree binding
      documentation to json-schema.
      
      Add missing properties.
      Update the example to match reality.
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Reviewed-by: default avatarSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d7adf633
    • Geert Uytterhoeven's avatar
      dt-bindings: net: renesas,ravb: Document internal clock delay properties · 57197b66
      Geert Uytterhoeven authored
      Some EtherAVB variants support internal clock delay configuration, which
      can add larger delays than the delays that are typically supported by
      the PHY (using an "rgmii-*id" PHY mode, and/or "[rt]xc-skew-ps"
      properties).
      
      Add properties for configuring the internal MAC delays.
      These properties are mandatory, even when specified as zero, to
      distinguish between old and new DTBs.
      
      Update the (bogus) example accordingly.
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Reviewed-by: default avatarSergei Shtylyov <sergei.shtylyov@gmail.com>
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      57197b66
    • Geert Uytterhoeven's avatar
      dt-bindings: net: ethernet-controller: Add internal delay properties · 0024bad1
      Geert Uytterhoeven authored
      Internal Receive and Transmit Clock Delays are a common setting for
      RGMII capable devices.
      
      While these delays are typically applied by the PHY, some MACs support
      configuring internal clock delay settings, too.  Hence add standardized
      properties to configure this.
      
      This is the MAC counterpart of commit 9150069b ("dt-bindings:
      net: Add tx and rx internal delays"), which applies to the PHY.
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0024bad1
    • David S. Miller's avatar
      Merge tag 'mlx5-updates-2020-09-30' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux · 87d5034d
      David S. Miller authored
      Saeed Mahameed says:
      
      ====================
      mlx5-updates-2020-09-30
      
      Updates and cleanups for mlx5 driver:
      
      1) From Ariel, Dan Carpenter and Gostavo, Fixes to the previous
         mlx5 Connection track series.
      
      2) From Yevgeny, trivial cleanups for Software steering
      
      3) From Hamdan, Support for Flow source hint in software steering and
         E-Switch
      
      4) From Parav and Sunil, Small and trivial E-Switch updates and
         cleanups in preparation for mlx5 Sub-functions support
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      87d5034d
    • Alexei Starovoitov's avatar
      Merge branch 'introduce BPF_F_PRESERVE_ELEMS' · 6208689f
      Alexei Starovoitov authored
      Song Liu says:
      
      ====================
      This set introduces BPF_F_PRESERVE_ELEMS to perf event array for better
      sharing of perf event. By default, perf event array removes the perf event
      when the map fd used to add the event is closed. With BPF_F_PRESERVE_ELEMS
      set, however, the perf event will stay in the array until it is removed, or
      the map is closed.
      ---
      Changes v3 => v5:
      1. Clean up in selftest. (Alexei)
      
      Changes v2 => v3:
      1. Move perf_event_fd_array_map_free() to avoid unnecessary forward
         declaration. (Daniel)
      
      Changes v1 => v2:
      1. Rename the flag as BPF_F_PRESERVE_ELEMS. (Alexei, Daniel)
      2. Simplify the code and selftest. (Daniel, Alexei)
      ====================
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      6208689f
    • Song Liu's avatar
      selftests/bpf: Add tests for BPF_F_PRESERVE_ELEMS · d6b42068
      Song Liu authored
      Add tests for perf event array with and without BPF_F_PRESERVE_ELEMS.
      
      Add a perf event to array via fd mfd. Without BPF_F_PRESERVE_ELEMS, the
      perf event is removed when mfd is closed. With BPF_F_PRESERVE_ELEMS, the
      perf event is removed when the map is freed.
      Signed-off-by: default avatarSong Liu <songliubraving@fb.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Link: https://lore.kernel.org/bpf/20200930224927.1936644-3-songliubraving@fb.com
      d6b42068
    • Song Liu's avatar
      bpf: Introduce BPF_F_PRESERVE_ELEMS for perf event array · 792caccc
      Song Liu authored
      Currently, perf event in perf event array is removed from the array when
      the map fd used to add the event is closed. This behavior makes it
      difficult to the share perf events with perf event array.
      
      Introduce perf event map that keeps the perf event open with a new flag
      BPF_F_PRESERVE_ELEMS. With this flag set, perf events in the array are not
      removed when the original map fd is closed. Instead, the perf event will
      stay in the map until 1) it is explicitly removed from the array; or 2)
      the array is freed.
      Signed-off-by: default avatarSong Liu <songliubraving@fb.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Link: https://lore.kernel.org/bpf/20200930224927.1936644-2-songliubraving@fb.com
      792caccc