1. 05 Dec, 2019 8 commits
  2. 04 Dec, 2019 3 commits
  3. 03 Dec, 2019 14 commits
    • Yoshiki Komachi's avatar
      cls_flower: Fix the behavior using port ranges with hw-offload · 8ffb055b
      Yoshiki Komachi authored
      The recent commit 5c72299f ("net: sched: cls_flower: Classify
      packets using port ranges") had added filtering based on port ranges
      to tc flower. However the commit missed necessary changes in hw-offload
      code, so the feature gave rise to generating incorrect offloaded flow
      keys in NIC.
      
      One more detailed example is below:
      
      $ tc qdisc add dev eth0 ingress
      $ tc filter add dev eth0 ingress protocol ip flower ip_proto tcp \
        dst_port 100-200 action drop
      
      With the setup above, an exact match filter with dst_port == 0 will be
      installed in NIC by hw-offload. IOW, the NIC will have a rule which is
      equivalent to the following one.
      
      $ tc qdisc add dev eth0 ingress
      $ tc filter add dev eth0 ingress protocol ip flower ip_proto tcp \
        dst_port 0 action drop
      
      The behavior was caused by the flow dissector which extracts packet
      data into the flow key in the tc flower. More specifically, regardless
      of exact match or specified port ranges, fl_init_dissector() set the
      FLOW_DISSECTOR_KEY_PORTS flag in struct flow_dissector to extract port
      numbers from skb in skb_flow_dissect() called by fl_classify(). Note
      that device drivers received the same struct flow_dissector object as
      used in skb_flow_dissect(). Thus, offloaded drivers could not identify
      which of these is used because the FLOW_DISSECTOR_KEY_PORTS flag was
      set to struct flow_dissector in either case.
      
      This patch adds the new FLOW_DISSECTOR_KEY_PORTS_RANGE flag and the new
      tp_range field in struct fl_flow_key to recognize which filters are applied
      to offloaded drivers. At this point, when filters based on port ranges
      passed to drivers, drivers return the EOPNOTSUPP error because they do
      not support the feature (the newly created FLOW_DISSECTOR_KEY_PORTS_RANGE
      flag).
      
      Fixes: 5c72299f ("net: sched: cls_flower: Classify packets using port ranges")
      Signed-off-by: default avatarYoshiki Komachi <komachi.yoshiki@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8ffb055b
    • Dust Li's avatar
      net: sched: fix dump qlen for sch_mq/sch_mqprio with NOLOCK subqueues · 2f23cd42
      Dust Li authored
      sch->q.len hasn't been set if the subqueue is a NOLOCK qdisc
       in mq_dump() and mqprio_dump().
      
      Fixes: ce679e8d ("net: sched: add support for TCQ_F_NOLOCK subqueues to sch_mqprio")
      Signed-off-by: default avatarDust Li <dust.li@linux.alibaba.com>
      Signed-off-by: default avatarTony Lu <tonylu@linux.alibaba.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2f23cd42
    • Eric Dumazet's avatar
      tcp: refactor tcp_retransmit_timer() · 0d580fbd
      Eric Dumazet authored
      It appears linux-4.14 stable needs a backport of commit
      88f8598d ("tcp: exit if nothing to retransmit on RTO timeout")
      
      Since tcp_rtx_queue_empty() is not in pre 4.15 kernels,
      let's refactor tcp_retransmit_timer() to only use tcp_rtx_queue_head()
      
      I will provide to stable teams the squashed patches.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Willem de Bruijn <willemb@google.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Acked-by: default avatarSoheil Hassas Yeganeh <soheil@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0d580fbd
    • Vladimir Oltean's avatar
      net: mscc: ocelot: unregister the PTP clock on deinit · 9385973f
      Vladimir Oltean authored
      Currently a switch driver deinit frees the regmaps, but the PTP clock is
      still out there, available to user space via /dev/ptpN. Any PTP
      operation is a ticking time bomb, since it will attempt to use the freed
      regmaps and thus trigger kernel panics:
      
      [    4.291746] fsl_enetc 0000:00:00.2 eth1: error -22 setting up slave phy
      [    4.291871] mscc_felix 0000:00:00.5: Failed to register DSA switch: -22
      [    4.308666] mscc_felix: probe of 0000:00:00.5 failed with error -22
      [    6.358270] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000088
      [    6.367090] Mem abort info:
      [    6.369888]   ESR = 0x96000046
      [    6.369891]   EC = 0x25: DABT (current EL), IL = 32 bits
      [    6.369892]   SET = 0, FnV = 0
      [    6.369894]   EA = 0, S1PTW = 0
      [    6.369895] Data abort info:
      [    6.369897]   ISV = 0, ISS = 0x00000046
      [    6.369899]   CM = 0, WnR = 1
      [    6.369902] user pgtable: 4k pages, 48-bit VAs, pgdp=00000020d58c7000
      [    6.369904] [0000000000000088] pgd=00000020d5912003, pud=00000020d5915003, pmd=0000000000000000
      [    6.369914] Internal error: Oops: 96000046 [#1] PREEMPT SMP
      [    6.420443] Modules linked in:
      [    6.423506] CPU: 1 PID: 262 Comm: phc_ctl Not tainted 5.4.0-03625-gb7b2a5dadd7f #204
      [    6.431273] Hardware name: LS1028A RDB Board (DT)
      [    6.435989] pstate: 40000085 (nZcv daIf -PAN -UAO)
      [    6.440802] pc : css_release+0x24/0x58
      [    6.444561] lr : regmap_read+0x40/0x78
      [    6.448316] sp : ffff800010513cc0
      [    6.451636] x29: ffff800010513cc0 x28: ffff002055873040
      [    6.456963] x27: 0000000000000000 x26: 0000000000000000
      [    6.462289] x25: 0000000000000000 x24: 0000000000000000
      [    6.467617] x23: 0000000000000000 x22: 0000000000000080
      [    6.472944] x21: ffff800010513d44 x20: 0000000000000080
      [    6.478270] x19: 0000000000000000 x18: 0000000000000000
      [    6.483596] x17: 0000000000000000 x16: 0000000000000000
      [    6.488921] x15: 0000000000000000 x14: 0000000000000000
      [    6.494247] x13: 0000000000000000 x12: 0000000000000000
      [    6.499573] x11: 0000000000000000 x10: 0000000000000000
      [    6.504899] x9 : 0000000000000000 x8 : 0000000000000000
      [    6.510225] x7 : 0000000000000000 x6 : ffff800010513cf0
      [    6.515550] x5 : 0000000000000000 x4 : 0000000fffffffe0
      [    6.520876] x3 : 0000000000000088 x2 : ffff800010513d44
      [    6.526202] x1 : ffffcada668ea000 x0 : ffffcada64d8b0c0
      [    6.531528] Call trace:
      [    6.533977]  css_release+0x24/0x58
      [    6.537385]  regmap_read+0x40/0x78
      [    6.540795]  __ocelot_read_ix+0x6c/0xa0
      [    6.544641]  ocelot_ptp_gettime64+0x4c/0x110
      [    6.548921]  ptp_clock_gettime+0x4c/0x58
      [    6.552853]  pc_clock_gettime+0x5c/0xa8
      [    6.556699]  __arm64_sys_clock_gettime+0x68/0xc8
      [    6.561331]  el0_svc_common.constprop.2+0x7c/0x178
      [    6.566133]  el0_svc_handler+0x34/0xa0
      [    6.569891]  el0_sync_handler+0x114/0x1d0
      [    6.573908]  el0_sync+0x140/0x180
      [    6.577232] Code: d503201f b00119a1 91022263 b27b7be4 (f9004663)
      [    6.583349] ---[ end trace d196b9b14cdae2da ]---
      [    6.587977] Kernel panic - not syncing: Fatal exception
      [    6.593216] SMP: stopping secondary CPUs
      [    6.597151] Kernel Offset: 0x4ada54400000 from 0xffff800010000000
      [    6.603261] PHYS_OFFSET: 0xffffd0a7c0000000
      [    6.607454] CPU features: 0x10002,21806008
      [    6.611558] Memory Limit: none
      
      And now that ocelot->ptp_clock is checked at exit, prevent a potential
      error where ptp_clock_register returned a pointer-encoded error, which
      we are keeping in the ocelot private data structure. So now,
      ocelot->ptp_clock is now either NULL or a valid pointer.
      
      Fixes: 4e3b0468 ("net: mscc: PTP Hardware Clock (PHC) support")
      Cc: Antoine Tenart <antoine.tenart@bootlin.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9385973f
    • Danit Goldberg's avatar
      net/core: Populate VF index in struct ifla_vf_guid · 9aed6ae0
      Danit Goldberg authored
      In addition to filling the node_guid and port_guid attributes,
      there is a need to populate VF index too, otherwise users of netlink
      interface will see same VF index for all VFs.
      
      Fixes: 30aad417 ("net/core: Add support for getting VF GUIDs")
      Signed-off-by: default avatarDanit Goldberg <danitg@mellanox.com>
      Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9aed6ae0
    • Nikolay Aleksandrov's avatar
      net: bridge: deny dev_set_mac_address() when unregistering · c4b4c421
      Nikolay Aleksandrov authored
      We have an interesting memory leak in the bridge when it is being
      unregistered and is a slave to a master device which would change the
      mac of its slaves on unregister (e.g. bond, team). This is a very
      unusual setup but we do end up leaking 1 fdb entry because
      dev_set_mac_address() would cause the bridge to insert the new mac address
      into its table after all fdbs are flushed, i.e. after dellink() on the
      bridge has finished and we call NETDEV_UNREGISTER the bond/team would
      release it and will call dev_set_mac_address() to restore its original
      address and that in turn will add an fdb in the bridge.
      One fix is to check for the bridge dev's reg_state in its
      ndo_set_mac_address callback and return an error if the bridge is not in
      NETREG_REGISTERED.
      
      Easy steps to reproduce:
       1. add bond in mode != A/B
       2. add any slave to the bond
       3. add bridge dev as a slave to the bond
       4. destroy the bridge device
      
      Trace:
       unreferenced object 0xffff888035c4d080 (size 128):
         comm "ip", pid 4068, jiffies 4296209429 (age 1413.753s)
         hex dump (first 32 bytes):
           41 1d c9 36 80 88 ff ff 00 00 00 00 00 00 00 00  A..6............
           d2 19 c9 5e 3f d7 00 00 00 00 00 00 00 00 00 00  ...^?...........
         backtrace:
           [<00000000ddb525dc>] kmem_cache_alloc+0x155/0x26f
           [<00000000633ff1e0>] fdb_create+0x21/0x486 [bridge]
           [<0000000092b17e9c>] fdb_insert+0x91/0xdc [bridge]
           [<00000000f2a0f0ff>] br_fdb_change_mac_address+0xb3/0x175 [bridge]
           [<000000001de02dbd>] br_stp_change_bridge_id+0xf/0xff [bridge]
           [<00000000ac0e32b1>] br_set_mac_address+0x76/0x99 [bridge]
           [<000000006846a77f>] dev_set_mac_address+0x63/0x9b
           [<00000000d30738fc>] __bond_release_one+0x3f6/0x455 [bonding]
           [<00000000fc7ec01d>] bond_netdev_event+0x2f2/0x400 [bonding]
           [<00000000305d7795>] notifier_call_chain+0x38/0x56
           [<0000000028885d4a>] call_netdevice_notifiers+0x1e/0x23
           [<000000008279477b>] rollback_registered_many+0x353/0x6a4
           [<0000000018ef753a>] unregister_netdevice_many+0x17/0x6f
           [<00000000ba854b7a>] rtnl_delete_link+0x3c/0x43
           [<00000000adf8618d>] rtnl_dellink+0x1dc/0x20a
           [<000000009b6395fd>] rtnetlink_rcv_msg+0x23d/0x268
      
      Fixes: 43598813 ("bridge: add local MAC address to forwarding table (v2)")
      Reported-by: syzbot+2add91c08eb181fea1bf@syzkaller.appspotmail.com
      Signed-off-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c4b4c421
    • Dan Carpenter's avatar
      net: fix a leak in register_netdevice() · 42c17fa6
      Dan Carpenter authored
      We have to free "dev->name_node" on this error path.
      
      Fixes: ff927412 ("net: introduce name_node struct to be used in hashlist")
      Reported-by: syzbot+6e13e65ffbaa33757bcb@syzkaller.appspotmail.com
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      42c17fa6
    • David S. Miller's avatar
      Merge tag 'linux-can-fixes-for-5.5-20191203' of... · 56e7a2f8
      David S. Miller authored
      Merge tag 'linux-can-fixes-for-5.5-20191203' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can
      
      Marc Kleine-Budde says:
      
      ====================
      pull-request: can 2019-12-03
      
      this is a pull request of 6 patches for net/master.
      
      The first two patches are against the MAINTAINERS file and adds Appana
      Durga Kedareswara rao as maintainer for the xilinx-can driver and Sriram
      Dash for the m_can (mmio) driver.
      
      The next patch is by Jouni Hogander and fixes a use-after-free in the
      slcan driver.
      
      Johan Hovold's patch for the ucan driver fixes the non-atomic allocation
      in the completion handler.
      
      The last two patches target the xilinx-can driver. The first one is by
      Venkatesh Yadav Abbarapu and skips the error message on deferred probe,
      the second one is by Srinivas Neeli and fixes the usage of the skb after
      can_put_echo_skb().
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      56e7a2f8
    • Srinivas Neeli's avatar
      can: xilinx_can: Fix usage of skb memory · 3d3c817c
      Srinivas Neeli authored
      As per linux can framework, driver not allowed to touch the skb memory
      after can_put_echo_skb() call.
      This patch fixes the same.
      https://www.spinics.net/lists/linux-can/msg02199.htmlSigned-off-by: default avatarSrinivas Neeli <srinivas.neeli@xilinx.com>
      Reviewed-by: default avatarAppana Durga Kedareswara Rao <appana.durga.rao@xilinx.com>
      Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
      3d3c817c
    • Venkatesh Yadav Abbarapu's avatar
      can: xilinx_can: skip error message on deferred probe · b848238d
      Venkatesh Yadav Abbarapu authored
      When the CAN bus clock is provided from the clock wizard, clock wizard
      driver may not be available when can driver probes resulting to the
      error message "bus clock not found error".
      
      As this error message is not very useful to the end user, skip printing
      in the case of deferred probe.
      Signed-off-by: default avatarVenkatesh Yadav Abbarapu <venkatesh.abbarapu@xilinx.com>
      Signed-off-by: default avatarSrinivas Neeli <srinivas.neeli@xilinx.com>
      Signed-off-by: default avatarMichal Simek <michal.simek@xilinx.com>
      Reviewed-by: default avatarAppana Durga Kedareswara Rao <appana.durga.rao@xilinx.com>
      Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
      b848238d
    • Johan Hovold's avatar
      can: ucan: fix non-atomic allocation in completion handler · 870db5d1
      Johan Hovold authored
      USB completion handlers are called in atomic context and must
      specifically not allocate memory using GFP_KERNEL.
      
      Fixes: 9f2d3eae ("can: ucan: add driver for Theobroma Systems UCAN devices")
      Cc: stable <stable@vger.kernel.org>     # 4.19
      Cc: Jakob Unterwurzacher <jakob.unterwurzacher@theobroma-systems.com>
      Cc: Martin Elshuber <martin.elshuber@theobroma-systems.com>
      Cc: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
      870db5d1
    • Jouni Hogander's avatar
      can: slcan: Fix use-after-free Read in slcan_open · 9ebd796e
      Jouni Hogander authored
      Slcan_open doesn't clean-up device which registration failed from the
      slcan_devs device list. On next open this list is iterated and freed
      device is accessed. Fix this by calling slc_free_netdev in error path.
      
      Driver/net/can/slcan.c is derived from slip.c. Use-after-free error was
      identified in slip_open by syzboz. Same bug is in slcan.c. Here is the
      trace from the Syzbot slip report:
      
      __dump_stack lib/dump_stack.c:77 [inline]
      dump_stack+0x197/0x210 lib/dump_stack.c:118
      print_address_description.constprop.0.cold+0xd4/0x30b mm/kasan/report.c:374
      __kasan_report.cold+0x1b/0x41 mm/kasan/report.c:506
      kasan_report+0x12/0x20 mm/kasan/common.c:634
      __asan_report_load8_noabort+0x14/0x20 mm/kasan/generic_report.c:132
      sl_sync drivers/net/slip/slip.c:725 [inline]
      slip_open+0xecd/0x11b7 drivers/net/slip/slip.c:801
      tty_ldisc_open.isra.0+0xa3/0x110 drivers/tty/tty_ldisc.c:469
      tty_set_ldisc+0x30e/0x6b0 drivers/tty/tty_ldisc.c:596
      tiocsetd drivers/tty/tty_io.c:2334 [inline]
      tty_ioctl+0xe8d/0x14f0 drivers/tty/tty_io.c:2594
      vfs_ioctl fs/ioctl.c:46 [inline]
      file_ioctl fs/ioctl.c:509 [inline]
      do_vfs_ioctl+0xdb6/0x13e0 fs/ioctl.c:696
      ksys_ioctl+0xab/0xd0 fs/ioctl.c:713
      __do_sys_ioctl fs/ioctl.c:720 [inline]
      __se_sys_ioctl fs/ioctl.c:718 [inline]
      __x64_sys_ioctl+0x73/0xb0 fs/ioctl.c:718
      do_syscall_64+0xfa/0x760 arch/x86/entry/common.c:290
      entry_SYSCALL_64_after_hwframe+0x49/0xbe
      
      Fixes: ed50e160 ("slcan: Fix memory leak in error path")
      Cc: Wolfgang Grandegger <wg@grandegger.com>
      Cc: Marc Kleine-Budde <mkl@pengutronix.de>
      Cc: David Miller <davem@davemloft.net>
      Cc: Oliver Hartkopp <socketcan@hartkopp.net>
      Cc: Lukas Bulwahn <lukas.bulwahn@gmail.com>
      Signed-off-by: default avatarJouni Hogander <jouni.hogander@unikie.com>
      Cc: linux-stable <stable@vger.kernel.org> # >= v5.4
      Acked-by: default avatarOliver Hartkopp <socketcan@hartkopp.net>
      Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
      9ebd796e
    • Sriram Dash's avatar
      MAINTAINERS: add myself as maintainer of MCAN MMIO device driver · 8c2a5856
      Sriram Dash authored
      Since we are actively working on MMIO MCAN device driver,
      as discussed with Marc, I am adding myself as a maintainer.
      Signed-off-by: default avatarSriram Dash <sriram.dash@samsung.com>
      Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
      8c2a5856
    • Appana Durga Kedareswara rao's avatar
      MAINTAINERS: add fragment for xilinx CAN driver · 825e5601
      Appana Durga Kedareswara rao authored
      Added entry for xilinx CAN driver.
      Signed-off-by: default avatarAppana Durga Kedareswara rao <appana.durga.rao@xilinx.com>
      Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
      825e5601
  4. 02 Dec, 2019 15 commits
    • Martin Varghese's avatar
      Fixed updating of ethertype in function skb_mpls_pop · 040b5cfb
      Martin Varghese authored
      The skb_mpls_pop was not updating ethertype of an ethernet packet if the
      packet was originally received from a non ARPHRD_ETHER device.
      
      In the below OVS data path flow, since the device corresponding to port 7
      is an l3 device (ARPHRD_NONE) the skb_mpls_pop function does not update
      the ethertype of the packet even though the previous push_eth action had
      added an ethernet header to the packet.
      
      recirc_id(0),in_port(7),eth_type(0x8847),
      mpls(label=12/0xfffff,tc=0/0,ttl=0/0x0,bos=1/1),
      actions:push_eth(src=00:00:00:00:00:00,dst=00:00:00:00:00:00),
      pop_mpls(eth_type=0x800),4
      
      Fixes: ed246cee ("net: core: move pop MPLS functionality from OvS to core helper")
      Signed-off-by: default avatarMartin Varghese <martin.varghese@nokia.com>
      Acked-by: default avatarPravin B Shelar <pshelar@ovn.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      040b5cfb
    • Victorien Molle's avatar
      sch_cake: Add missing NLA policy entry TCA_CAKE_SPLIT_GSO · b3c424eb
      Victorien Molle authored
      This field has never been checked since introduction in mainline kernel
      Signed-off-by: default avatarVictorien Molle <victorien.molle@wifirst.fr>
      Signed-off-by: default avatarFlorent Fourcot <florent.fourcot@wifirst.fr>
      Fixes: 2db6dc26 "sch_cake: Make gso-splitting configurable from userspace"
      Acked-by: default avatarToke Høiland-Jørgensen <toke@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b3c424eb
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf · 734c7022
      David S. Miller authored
      Daniel Borkmann says:
      
      ====================
      pull-request: bpf 2019-12-02
      
      The following pull-request contains BPF updates for your *net* tree.
      
      We've added 10 non-merge commits during the last 6 day(s) which contain
      a total of 10 files changed, 60 insertions(+), 51 deletions(-).
      
      The main changes are:
      
      1) Fix vmlinux BTF generation for binutils pre v2.25, from Stanislav Fomichev.
      
      2) Fix libbpf global variable relocation to take symbol's st_value offset
         into account, from Andrii Nakryiko.
      
      3) Fix libbpf build on powerpc where check_abi target fails due to different
         readelf output format, from Aurelien Jarno.
      
      4) Don't set BPF insns RO for the case when they are JITed in order to avoid
         fragmenting the direct map, from Daniel Borkmann.
      
      5) Fix static checker warning in btf_distill_func_proto() as well as a build
         error due to empty enum when BPF is compiled out, from Alexei Starovoitov.
      
      6) Fix up generation of bpf_helper_defs.h for perf, from Arnaldo Carvalho de Melo.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      734c7022
    • Aurelien Jarno's avatar
      libbpf: Fix readelf output parsing on powerpc with recent binutils · 3464afdf
      Aurelien Jarno authored
      On powerpc with recent versions of binutils, readelf outputs an extra
      field when dumping the symbols of an object file. For example:
      
          35: 0000000000000838    96 FUNC    LOCAL  DEFAULT [<localentry>: 8]     1 btf_is_struct
      
      The extra "[<localentry>: 8]" prevents the GLOBAL_SYM_COUNT variable to
      be computed correctly and causes the check_abi target to fail.
      
      Fix that by looking for the symbol name in the last field instead of the
      8th one. This way it should also cope with future extra fields.
      Signed-off-by: default avatarAurelien Jarno <aurelien@aurel32.net>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Tested-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Link: https://lore.kernel.org/bpf/20191201195728.4161537-1-aurelien@aurel32.net
      3464afdf
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 596cf45c
      Linus Torvalds authored
      Merge updates from Andrew Morton:
       "Incoming:
      
         - a small number of updates to scripts/, ocfs2 and fs/buffer.c
      
         - most of MM
      
        I still have quite a lot of material (mostly not MM) staged after
        linux-next due to -next dependencies. I'll send those across next week
        as the preprequisites get merged up"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (135 commits)
        mm/page_io.c: annotate refault stalls from swap_readpage
        mm/Kconfig: fix trivial help text punctuation
        mm/Kconfig: fix indentation
        mm/memory_hotplug.c: remove __online_page_set_limits()
        mm: fix typos in comments when calling __SetPageUptodate()
        mm: fix struct member name in function comments
        mm/shmem.c: cast the type of unmap_start to u64
        mm: shmem: use proper gfp flags for shmem_writepage()
        mm/shmem.c: make array 'values' static const, makes object smaller
        userfaultfd: require CAP_SYS_PTRACE for UFFD_FEATURE_EVENT_FORK
        fs/userfaultfd.c: wp: clear VM_UFFD_MISSING or VM_UFFD_WP during userfaultfd_register()
        userfaultfd: wrap the common dst_vma check into an inlined function
        userfaultfd: remove unnecessary WARN_ON() in __mcopy_atomic_hugetlb()
        userfaultfd: use vma_pagesize for all huge page size calculation
        mm/madvise.c: use PAGE_ALIGN[ED] for range checking
        mm/madvise.c: replace with page_size() in madvise_inject_error()
        mm/mmap.c: make vma_merge() comment more easy to understand
        mm/hwpoison-inject: use DEFINE_DEBUGFS_ATTRIBUTE to define debugfs fops
        autonuma: reduce cache footprint when scanning page tables
        autonuma: fix watermark checking in migrate_balanced_pgdat()
        ...
      596cf45c
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · c3bfc5dd
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix several scatter gather list issues in kTLS code, from Jakub
          Kicinski.
      
       2) macb driver device remove has to kill the hresp_err_tasklet. From
          Chuhong Yuan.
      
       3) Several memory leak and reference count bug fixes in tipc, from Tung
          Nguyen.
      
       4) Fix mlx5 build error w/o ipv6, from Yue Haibing.
      
       5) Fix jumbo frame and other regressions in r8169, from Heiner
          Kallweit.
      
       6) Undo some BUG_ON()'s and replace them with WARN_ON_ONCE and proper
          error propagation/handling. From Paolo Abeni.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (24 commits)
        openvswitch: remove another BUG_ON()
        openvswitch: drop unneeded BUG_ON() in ovs_flow_cmd_build_info()
        net: phy: realtek: fix using paged operations with RTL8105e / RTL8208
        r8169: fix resume on cable plug-in
        r8169: fix jumbo configuration for RTL8168evl
        net: emulex: benet: indent a Kconfig depends continuation line
        selftests: forwarding: fix race between packet receive and tc check
        net: sched: fix `tc -s class show` no bstats on class with nolock subqueues
        net: ethernet: ti: ale: ensure vlan/mdb deleted when no members
        net/mlx5e: Fix build error without IPV6
        selftests: pmtu: use -oneline for ip route list cache
        tipc: fix duplicate SYN messages under link congestion
        tipc: fix wrong timeout input for tipc_wait_for_cond()
        tipc: fix wrong socket reference counter after tipc_sk_timeout() returns
        tipc: fix potential memory leak in __tipc_sendmsg()
        net: macb: add missed tasklet_kill
        selftests: bpf: correct perror strings
        selftests: bpf: test_sockmap: handle file creation failures gracefully
        net/tls: use sg_next() to walk sg entries
        net/tls: remove the dead inplace_crypto code
        ...
      c3bfc5dd
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e5b3fc12
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "Various fixes:
      
         - Fix the PAT performance regression that downgraded write-combining
           device memory regions to uncached.
      
         - There's been a number of bugs in 32-bit double fault handling -
           hopefully all fixed now.
      
         - Fix an LDT crash
      
         - Fix an FPU over-optimization that broke with GCC9 code
           optimizations.
      
         - Misc cleanups"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm/pat: Fix off-by-one bugs in interval tree search
        x86/ioperm: Save an indentation level in tss_update_io_bitmap()
        x86/fpu: Don't cache access to fpu_fpregs_owner_ctx
        x86/entry/32: Remove unused 'restore_all_notrace' local label
        x86/ptrace: Document FSBASE and GSBASE ABI oddities
        x86/ptrace: Remove set_segment_reg() implementations for current
        x86/traps: die() instead of panicking on a double fault
        x86/doublefault/32: Rewrite the x86_32 #DF handler and unify with 64-bit
        x86/doublefault/32: Move #DF stack and TSS to cpu_entry_area
        x86/doublefault/32: Rename doublefault.c to doublefault_32.c
        x86/traps: Disentangle the 32-bit and 64-bit doublefault code
        lkdtm: Add a DOUBLE_FAULT crash type on x86
        selftests/x86/single_step_syscall: Check SYSENTER directly
        x86/mm/32: Sync only to VMALLOC_END in vmalloc_sync_all()
      e5b3fc12
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b7fcf31f
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
      
       - Make /sys/devices/cpu/rdpmc based RDPMC enforcement more
         instantaneous
      
       - decoder: Update the Intel opcode map
      
       - Various tooling fixes, including a few late optimizations and
         cleanups.
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)
        perf script: Fix invalid LBR/binary mismatch error
        perf script: Fix brstackinsn for AUXTRACE
        perf affinity: Add infrastructure to save/restore affinity
        perf pmu: Use file system cache to optimize sysfs access
        perf regs: Make perf_reg_name() return "unknown" instead of NULL
        perf diff: Use llabs() with 64-bit values
        perf diff: Use llabs() with 64-bit values
        perf/x86: Implement immediate enforcement of /sys/devices/cpu/rdpmc value of 0
        perf tools: Allow to link with libbpf dynamicaly
        perf tests: Rename tests/map_groups.c to tests/maps.c
        perf tests: Rename thread-mg-share to thread-maps-share
        perf maps: Rename map_groups.h to maps.h
        perf maps: Rename 'mg' variables to 'maps'
        perf map_symbol: Rename ms->mg to ms->maps
        perf addr_location: Rename al->mg to al->maps
        perf thread: Rename thread->mg to thread->maps
        perf maps: Merge 'struct maps' with 'struct map_groups'
        x86/insn: perf tools: Add some more instructions to the new instructions test
        x86/insn: Add some more Intel instructions to the opcode map
        perf map: Remove unused functions
        ...
      b7fcf31f
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 72c0870e
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
      
       - updates to Ilitech driver to support ILI2117
      
       - face lift of st1232 driver to support MT-B protocol
      
       - a new driver for i.MX system controller keys
      
       - mpr121 driver now supports polling mode
      
       - various input drivers have been switched away from input_polled_dev
         to use polled mode of regular input devices
      
       - other assorted cleanups and fixes
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (70 commits)
        Input: synaptics-rmi4 - fix various V4L2 compliance problems in F54
        Input: synaptics - switch another X1 Carbon 6 to RMI/SMbus
        Input: fix Kconfig indentation
        Input: imx_sc_key - correct SCU message structure to avoid stack corruption
        Input: ili210x - optionally show calibrate sysfs attribute
        Input: ili210x - add resolution to chip operations structure
        Input: ili210x - do not retrieve/print chip firmware version
        Input: mms114 - use device_get_match_data
        Input: ili210x - remove unneeded suspend and resume handlers
        Input: ili210x - do not unconditionally mark touchscreen as wakeup source
        Input: ili210x - define and use chip operations structure
        Input: ili210x - do not set parent device explicitly
        Input: ili210x - handle errors from input_mt_init_slots()
        Input: ili210x - switch to using threaded IRQ
        Input: ili210x - add ILI2117 support
        dt-bindings: input: touchscreen: ad7879: generic node names in example
        Input: ar1021 - fix typo in preprocessor macro name
        Input: synaptics-rmi4 - simplify data read in rmi_f54_work
        Input: kxtj9 - switch to using polled mode of input devices
        Input: kxtj9 - switch to using managed resources
        ...
      72c0870e
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · d10032dd
      Linus Torvalds authored
      Pull libnvdimm updates from Dan Williams:
       "The highlight this cycle is continuing integration fixes for PowerPC
        and some resulting optimizations.
      
        Summary:
      
         - Updates to better support vmalloc space restrictions on PowerPC
           platforms.
      
         - Cleanups to move common sysfs attributes to core 'struct
           device_type' objects.
      
         - Export the 'target_node' attribute (the effective numa node if pmem
           is marked online) for regions and namespaces.
      
         - Miscellaneous fixups and optimizations"
      
      * tag 'libnvdimm-for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (21 commits)
        MAINTAINERS: Remove Keith from NVDIMM maintainers
        libnvdimm: Export the target_node attribute for regions and namespaces
        dax: Add numa_node to the default device-dax attributes
        libnvdimm: Simplify root read-only definition for the 'resource' attribute
        dax: Simplify root read-only definition for the 'resource' attribute
        dax: Create a dax device_type
        libnvdimm: Move nvdimm_bus_attribute_group to device_type
        libnvdimm: Move nvdimm_attribute_group to device_type
        libnvdimm: Move nd_mapping_attribute_group to device_type
        libnvdimm: Move nd_region_attribute_group to device_type
        libnvdimm: Move nd_numa_attribute_group to device_type
        libnvdimm: Move nd_device_attribute_group to device_type
        libnvdimm: Move region attribute group definition
        libnvdimm: Move attribute groups to device type
        libnvdimm: Remove prototypes for nonexistent functions
        libnvdimm/btt: fix variable 'rc' set but not used
        libnvdimm/pmem: Delete include of nd-core.h
        libnvdimm/namespace: Differentiate between probe mapping and runtime mapping
        libnvdimm/pfn_dev: Don't clear device memmap area during generic namespace probe
        libnvdimm: Trivial comment fix
        ...
      d10032dd
    • Linus Torvalds's avatar
      Merge tag 'mailbox-v5.5' of git://git.linaro.org/landing-teams/working/fujitsu/integration · 43fd4bd7
      Linus Torvalds authored
      Pull mailbox updates from Jassi Brar:
      
       - omap : misc - catch error returned from pm_runtime_put_sync
      
       - hisi : misc - drop .owner from platform_driver
      
       - stm : change how wakeup is handled
      
       - imx : fix - bailout on error and nuke correct irq
      
       - imx : add support for imx7ulp platform
      
      * tag 'mailbox-v5.5' of git://git.linaro.org/landing-teams/working/fujitsu/integration:
        mailbox: imx: add support for imx v1 mu
        dt-bindings: mailbox: imx-mu: add imx7ulp MU support
        mailbox: imx: Clear the right interrupts at shutdown
        mailbox: imx: Fix Tx doorbell shutdown path
        mailbox: stm32-ipcc: Update wakeup management
        mailbox: no need to set .owner platform_driver_register
        mailbox/omap: Handle if CONFIG_PM is disabled
      43fd4bd7
    • Linus Torvalds's avatar
      Merge tag 'hwlock-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc · 454d9c4a
      Linus Torvalds authored
      Pull hwspinlock updates from Bjorn Andersson:
       "This contains a number of cleanups to the core and several drivers, in
        particular removing the requirement for drivers to implement
        pm_runtime.
      
        It also udpates the location of the git tree in MAINTAINERS"
      
      * tag 'hwlock-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc:
        hwspinlock: u8500_hsem: Remove redundant PM runtime implementation
        hwspinlock: sprd: Remove redundant PM runtime implementation
        hwspinlock: Let the PM runtime can be optional
        hwspinlock: Remove BUG_ON() from the hwspinlock core
        hwspinlock: sprd: Use devm_hwspin_lock_register() to register hwlock controller
        hwspinlock: sprd: Use devm_add_action_or_reset() for calls to clk_disable_unprepare()
        hwspinlock: sprd: Check the return value of clk_prepare_enable()
        hwspinlock: sprd: Change to use devm_platform_ioremap_resource()
        hwspinlock: u8500_hsem: Use devm_hwspin_lock_register() to register hwlock controller
        hwspinlock: u8500_hsem: Use devm_kzalloc() to allocate memory
        hwspinlock: u8500_hsem: Change to use devm_platform_ioremap_resource()
        MAINTAINERS: hwspinlock: update git tree location
      454d9c4a
    • Linus Torvalds's avatar
      Merge tag 'rpmsg-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc · 687fcad8
      Linus Torvalds authored
      Pull rpmsg updates from Bjorn Andersson:
       "This contains a number of bug fixes to the GLINK transport driver, an
        off-by-one in the GLINK smem driver and a memory leak fix in the rpmsg
        char driver"
      
      * tag 'rpmsg-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc:
        rpmsg: Fix Kconfig indentation
        rpmsg: char: Simplify 'rpmsg_eptdev_release()'
        rpmsg: glink: Free pending deferred work on remove
        rpmsg: glink: Don't send pending rx_done during remove
        rpmsg: glink: Fix rpmsg_register_device err handling
        rpmsg: glink: Put an extra reference during cleanup
        rpmsg: glink: Fix use after free in open_ack TIMEOUT case
        rpmsg: glink: Fix reuse intents memory leak issue
        rpmsg: glink: Set tail pointer to 0 at end of FIFO
        rpmsg: char: release allocated memory
      687fcad8
    • Linus Torvalds's avatar
      Merge tag 'rproc-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc · 5e3b06d3
      Linus Torvalds authored
      Pull remoteproc updates from Bjorn Andersson:
       "This adds support for booting the modem processor on Qualcomm MSM8998
        and carries some cleanup up and bug fixes to the framework and the
        stm32 driver"
      
      * tag 'rproc-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc:
        Revert "dt-bindings: remoteproc: stm32: add wakeup-source"
        remoteproc: stm32: fix probe error case
        remoteproc: stm32: wakeup the system by wdg irq
        dt-bindings: remoteproc: stm32: add wakeup-source
        remoteproc: Fix wrong rvring index computation
        remoteproc: stm32: use workqueue to treat mailbox callback
        remoteproc: fix argument 2 of rproc_mem_entry_init
        remoteproc: qcom_q6v5_mss: Add support for MSM8998
        dt-bindings: remoteproc: qcom: Add Q6v5 Modem PIL binding for MSM8998
        remoteproc: debug: Remove unneeded NULL check
        remoteproc: remove useless typedef
      5e3b06d3
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 3265568d
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
       "I2C has mostly driver updates this time.
      
        The few noteworthy changes are: the core has now support for analog
        and digital filters with at91 being the first user, a core addition to
        replace the NULL returning i2c_new_probed_device() with an ERR_PTR
        variant, and the pxa driver has finally being moved to use the generic
        I2C slave interface. We have quite a significant number of reviews per
        patch this time, so thank you to all involved!"
      
      * 'i2c/for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (37 commits)
        video: fbdev: matrox: convert to i2c_new_scanned_device
        i2c: icy: convert to i2c_new_scanned_device
        i2c: replace i2c_new_probed_device with an ERR_PTR variant
        i2c: Fix Kconfig indentation
        i2c: smbus: Don't filter out duplicate alerts
        i2c: i801: Correct Intel Jasper Lake SOC naming
        i2c: i2c-stm32f7: fix 10-bits check in slave free id search loop
        i2c: iproc: Add i2c repeated start capability
        i2c: remove helpers for ref-counting clients
        i2c: tegra: Use dma_request_chan() directly for channel request
        i2c: sh_mobile: Use dma_request_chan() directly for channel request
        i2c: qup: Use dma_request_chan() directly for channel request
        i2c: at91: Use dma_request_chan() directly for channel request
        i2c: rcar: Remove superfluous call to clk_get_rate()
        i2c: pxa: remove unused i2c-slave APIs
        i2c: pxa: migrate to new i2c_slave APIs
        i2c: cros-ec-tunnel: Make the device acpi compatible
        i2c: stm32f7: report dma error during probe
        i2c: icy: no need to populate address for scanned device
        i2c: xiic: Fix kerneldoc warnings
        ...
      3265568d