1. 23 Jan, 2019 8 commits
    • Vinod Koul's avatar
      net: stmmac: Add driver for Qualcomm ethqos · a7c30e62
      Vinod Koul authored
      Add glue driver to support Qualcomm ETHQOS using stmmac driver.
      
      This is based on downstream driver written by Siddarth Gupta, Sunil
      Kumar Paidimarri, Rahul Ankushrao Kawadgave, Nisha Menon, Jagadeesh
      Babu Challagundla, Chaitanya Pratapa, Lakshit Tyagi, Suraj Jaiswal,
      Sneh Shah and Ventrapragada Ravi Kanth
      Co-developed-by: default avatarNiklas Cassel <niklas.cassel@linaro.org>
      Signed-off-by: default avatarNiklas Cassel <niklas.cassel@linaro.org>
      Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a7c30e62
    • Vinod Koul's avatar
      dt-bindings: net: Add Qualcomm ethqos binding · 00f1ee53
      Vinod Koul authored
      Add support for Qualcomm ethqos found in some SoCs like QCS404.
      Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      00f1ee53
    • Artem Panfilov's avatar
      net: stmmac: implement the SIOCGHWTSTAMP ioctl · d6228b7c
      Artem Panfilov authored
      This patch adds support for the SIOCGHWTSTAMP ioctl which enables user
      processes to read the current hwtstamp_config settings
      non-destructively.
      Signed-off-by: default avatarArtem Panfilov <panfilov.artyom@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d6228b7c
    • David S. Miller's avatar
      Merge branch 'bridge-mrd' · bbc318f6
      David S. Miller authored
      Linus Lüssing says:
      
      ====================
      bridge: implement Multicast Router Discovery (RFC4286)
      
      This patchset adds initial Multicast Router Discovery support to
      the Linux bridge (RFC4286). With MRD it is possible to detect multicast
      routers and mark bridge ports and forward multicast packets to such routers
      accordingly.
      
      So far, multicast routers are detected via IGMP/MLD queries and PIM
      messages in the Linux bridge. As there is only one active, selected
      querier at a time RFC4541 ("Considerations for Internet Group Management
      Protocol (IGMP) and Multicast Listener Discovery (MLD) Snooping
      Switches") section 2.1.1.a) recommends snooping Multicast Router
      Advertisements as provided by MRD (RFC4286).
      
      The first two patches are refactoring some existing code which is reused
      for parsing the Multicast Router Advertisements later in the fourth
      patch. The third patch lets the bridge join the all-snoopers multicast
      address to be able to reliably receive the Multicast Router
      Advertisements.
      
      What is not implemented yet from RFC4286 yet:
      
      * Sending Multicast Router Solicitations:
        -> RFC4286: "[...] may be sent when [...] an interface is
           (re-)initialized [or] MRD is enabled"
      * Snooping Multicast Router Terminations:
        -> currently this only relies on our own timeouts
      * Adjusting timeouts with the values provided in the announcements
      
      Changes in v2:
      
      * rebased to current net-next/master (no conflicts/changes)
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bbc318f6
    • Linus Lüssing's avatar
      bridge: Snoop Multicast Router Advertisements · 4b3087c7
      Linus Lüssing authored
      When multiple multicast routers are present in a broadcast domain then
      only one of them will be detectable via IGMP/MLD query snooping. The
      multicast router with the lowest IP address will become the selected and
      active querier while all other multicast routers will then refrain from
      sending queries.
      
      To detect such rather silent multicast routers, too, RFC4286
      ("Multicast Router Discovery") provides a standardized protocol to
      detect multicast routers for multicast snooping switches.
      
      This patch implements the necessary MRD Advertisement message parsing
      and after successful processing adds such routers to the internal
      multicast router list.
      Signed-off-by: default avatarLinus Lüssing <linus.luessing@c0d3.blue>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4b3087c7
    • Linus Lüssing's avatar
      bridge: join all-snoopers multicast address · 4effd28c
      Linus Lüssing authored
      Next to snooping IGMP/MLD queries RFC4541, section 2.1.1.a) recommends
      to snoop multicast router advertisements to detect multicast routers.
      
      Multicast router advertisements are sent to an "all-snoopers"
      multicast address. To be able to receive them reliably, we need to
      join this group.
      
      Otherwise other snooping switches might refrain from forwarding these
      advertisements to us.
      Signed-off-by: default avatarLinus Lüssing <linus.luessing@c0d3.blue>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4effd28c
    • Linus Lüssing's avatar
      bridge: simplify ip_mc_check_igmp() and ipv6_mc_check_mld() internals · a2e2ca3b
      Linus Lüssing authored
      With this patch the internal use of the skb_trimmed is reduced to
      the ICMPv6/IGMP checksum verification. And for the length checks
      the newly introduced helper functions are used instead of calculating
      and checking with skb->len directly.
      
      These changes should hopefully make it easier to verify that length
      checks are performed properly.
      Signed-off-by: default avatarLinus Lüssing <linus.luessing@c0d3.blue>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a2e2ca3b
    • Linus Lüssing's avatar
      bridge: simplify ip_mc_check_igmp() and ipv6_mc_check_mld() calls · ba5ea614
      Linus Lüssing authored
      This patch refactors ip_mc_check_igmp(), ipv6_mc_check_mld() and
      their callers (more precisely, the Linux bridge) to not rely on
      the skb_trimmed parameter anymore.
      
      An skb with its tail trimmed to the IP packet length was initially
      introduced for the following three reasons:
      
      1) To be able to verify the ICMPv6 checksum.
      2) To be able to distinguish the version of an IGMP or MLD query.
         They are distinguishable only by their size.
      3) To avoid parsing data for an IGMPv3 or MLDv2 report that is
         beyond the IP packet but still within the skb.
      
      The first case still uses a cloned and potentially trimmed skb to
      verfiy. However, there is no need to propagate it to the caller.
      For the second and third case explicit IP packet length checks were
      added.
      
      This hopefully makes ip_mc_check_igmp() and ipv6_mc_check_mld() easier
      to read and verfiy, as well as easier to use.
      Signed-off-by: default avatarLinus Lüssing <linus.luessing@c0d3.blue>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ba5ea614
  2. 22 Jan, 2019 25 commits
  3. 21 Jan, 2019 4 commits
  4. 20 Jan, 2019 3 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 7d0ae236
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix endless loop in nf_tables, from Phil Sutter.
      
       2) Fix cross namespace ip6_gre tunnel hash list corruption, from
          Olivier Matz.
      
       3) Don't be too strict in phy_start_aneg() otherwise we might not allow
          restarting auto negotiation. From Heiner Kallweit.
      
       4) Fix various KMSAN uninitialized value cases in tipc, from Ying Xue.
      
       5) Memory leak in act_tunnel_key, from Davide Caratti.
      
       6) Handle chip errata of mv88e6390 PHY, from Andrew Lunn.
      
       7) Remove linear SKB assumption in fou/fou6, from Eric Dumazet.
      
       8) Missing udplite rehash callbacks, from Alexey Kodanev.
      
       9) Log dirty pages properly in vhost, from Jason Wang.
      
      10) Use consume_skb() in neigh_probe() as this is a normal free not a
          drop, from Yang Wei. Likewise in macvlan_process_broadcast().
      
      11) Missing device_del() in mdiobus_register() error paths, from Thomas
          Petazzoni.
      
      12) Fix checksum handling of short packets in mlx5, from Cong Wang.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (96 commits)
        bpf: in __bpf_redirect_no_mac pull mac only if present
        virtio_net: bulk free tx skbs
        net: phy: phy driver features are mandatory
        isdn: avm: Fix string plus integer warning from Clang
        net/mlx5e: Fix cb_ident duplicate in indirect block register
        net/mlx5e: Fix wrong (zero) TX drop counter indication for representor
        net/mlx5e: Fix wrong error code return on FEC query failure
        net/mlx5e: Force CHECKSUM_UNNECESSARY for short ethernet frames
        tools: bpftool: Cleanup license mess
        bpf: fix inner map masking to prevent oob under speculation
        bpf: pull in pkt_sched.h header for tooling to fix bpftool build
        selftests: forwarding: Add a test case for externally learned FDB entries
        selftests: mlxsw: Test FDB offload indication
        mlxsw: spectrum_switchdev: Do not treat static FDB entries as sticky
        net: bridge: Mark FDB entries that were added by user as such
        mlxsw: spectrum_fid: Update dummy FID index
        mlxsw: pci: Return error on PCI reset timeout
        mlxsw: pci: Increase PCI SW reset timeout
        mlxsw: pci: Ring CQ's doorbell before RDQ's
        MAINTAINERS: update email addresses of liquidio driver maintainers
        ...
      7d0ae236
    • Kees Cook's avatar
      pstore/ram: Avoid allocation and leak of platform data · 5631e857
      Kees Cook authored
      Yue Hu noticed that when parsing device tree the allocated platform data
      was never freed. Since it's not used beyond the function scope, this
      switches to using a stack variable instead.
      Reported-by: default avatarYue Hu <huyue2@yulong.com>
      Fixes: 35da6094 ("pstore/ram: add Device Tree bindings")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      5631e857
    • Ard Biesheuvel's avatar
      gcc-plugins: arm_ssp_per_task_plugin: fix for GCC 9+ · 2c88c742
      Ard Biesheuvel authored
      GCC 9 reworks the way the references to the stack canary are
      emitted, to prevent the value from being spilled to the stack
      before the final comparison in the epilogue, defeating the
      purpose, given that the spill slot is under control of the
      attacker that we are protecting ourselves from.
      
      Since our canary value address is obtained without accessing
      memory (as opposed to pre-v7 code that will obtain it from a
      literal pool), it is unlikely (although not guaranteed) that
      the compiler will spill the canary value in the same way, so
      let's just disable this improvement when building with GCC9+.
      Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      2c88c742