Skip to content
  1. Feb 02, 2021
    • Dongseok Yi's avatar
      udp: ipv4: manipulate network header of NATed UDP GRO fraglist · c3df39ac
      Dongseok Yi authored
      UDP/IP header of UDP GROed frag_skbs are not updated even after NAT
      forwarding. Only the header of head_skb from ip_finish_output_gso ->
      skb_gso_segment is updated but following frag_skbs are not updated.
      
      A call path skb_mac_gso_segment -> inet_gso_segment ->
      udp4_ufo_fragment -> __udp_gso_segment -> __udp_gso_segment_list
      does not try to update UDP/IP header of the segment list but copy
      only the MAC header.
      
      Update port, addr and check of each skb of the segment list in
      __udp_gso_segment_list. It covers both SNAT and DNAT.
      
      Fixes: 9fd1ff5d
      
       (udp: Support UDP fraglist GRO/GSO.)
      Signed-off-by: default avatarDongseok Yi <dseok.yi@samsung.com>
      Acked-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
      Link: https://lore.kernel.org/r/1611962007-80092-1-git-send-email-dseok.yi@samsung.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      c3df39ac
    • Vadim Fedorenko's avatar
      net: ip_tunnel: fix mtu calculation · 28e104d0
      Vadim Fedorenko authored
      dev->hard_header_len for tunnel interface is set only when header_ops
      are set too and already contains full overhead of any tunnel encapsulation.
      That's why there is not need to use this overhead twice in mtu calc.
      
      Fixes: fdafed45
      
       ("ip_gre: set dev->hard_header_len and dev->needed_headroom properly")
      Reported-by: default avatarSlava Bacherikov <mail@slava.cc>
      Signed-off-by: default avatarVadim Fedorenko <vfedorenko@novek.ru>
      Link: https://lore.kernel.org/r/1611959267-20536-1-git-send-email-vfedorenko@novek.ru
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      28e104d0
    • Alexander Popov's avatar
      vsock: fix the race conditions in multi-transport support · c518adaf
      Alexander Popov authored
      There are multiple similar bugs implicitly introduced by the
      commit c0cfa2d8 ("vsock: add multi-transports support") and
      commit 6a2c0962 ("vsock: prevent transport modules unloading").
      
      The bug pattern:
       [1] vsock_sock.transport pointer is copied to a local variable,
       [2] lock_sock() is called,
       [3] the local variable is used.
      VSOCK multi-transport support introduced the race condition:
      vsock_sock.transport value may change between [1] and [2].
      
      Let's copy vsock_sock.transport pointer to local variables after
      the lock_sock() call.
      
      Fixes: c0cfa2d8
      
       ("vsock: add multi-transports support")
      Signed-off-by: default avatarAlexander Popov <alex.popov@linux.com>
      Reviewed-by: default avatarStefano Garzarella <sgarzare@redhat.com>
      Reviewed-by: default avatarJorgen Hansen <jhansen@vmware.com>
      Link: https://lore.kernel.org/r/20210201084719.2257066-1-alex.popov@linux.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      c518adaf
    • Alexander Ovechkin's avatar
      net: sched: replaced invalid qdisc tree flush helper in qdisc_replace · 938e0fcd
      Alexander Ovechkin authored
      Commit e5f0e8f8 ("net: sched: introduce and use qdisc tree flush/purge helpers")
      introduced qdisc tree flush/purge helpers, but erroneously used flush helper
      instead of purge helper in qdisc_replace function.
      This issue was found in our CI, that tests various qdisc setups by configuring
      qdisc and sending data through it. Call of invalid helper sporadically leads
      to corruption of vt_tree/cf_tree of hfsc_class that causes kernel oops:
      
       Oops: 0000 [#1] SMP PTI
       CPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.11.0-8f6859df #1
       Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.10.2-0-g5f4c7b1-prebuilt.qemu-project.org 04/01/2014
       RIP: 0010:rb_insert_color+0x18/0x190
       Code: c3 31 c0 c3 0f 1f 40 00 66 2e 0f 1f 84 00 00 00 00 00 48 8b 07 48 85 c0 0f 84 05 01 00 00 48 8b 10 f6 c2 01 0f 85 34 01 00 00 <48> 8b 4a 08 49 89 d0 48 39 c1 74 7d 48 85 c9 74 32 f6 01 01 75 2d
       RSP: 0018:ffffc900000b8bb0 EFLAGS: 00010246
       RAX: ffff8881ef4c38b0 RBX: ffff8881d956e400 RCX: ffff8881ef4c38b0
       RDX: 0000000000000000 RSI: ffff8881d956f0a8 RDI: ffff8881d956e4b0
       RBP: 0000000000000000 R08: 000000d5c4e249da R09: 1600000000000000
       R10: ffffc900000b8be0 R11: ffffc900000b8b28 R12: 0000000000000001
       R13: 000000000000005a R14: ffff8881f0905000 R15: ffff8881f0387d00
       FS:  0000000000000000(0000) GS:ffff8881f8b00000(0000) knlGS:0000000000000000
       CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
       CR2: 0000000000000008 CR3: 00000001f4796004 CR4: 0000000000060ee0
       Call Trace:
        <IRQ>
        init_vf.isra.19+0xec/0x250 [sch_hfsc]
        hfsc_enqueue+0x245/0x300 [sch_hfsc]
        ? fib_rules_lookup+0x12a/0x1d0
        ? __dev_queue_xmit+0x4b6/0x930
        ? hfsc_delete_class+0x250/0x250 [sch_hfsc]
        __dev_queue_xmit+0x4b6/0x930
        ? ip6_finish_output2+0x24d/0x590
        ip6_finish_output2+0x24d/0x590
        ? ip6_output+0x6c/0x130
        ip6_output+0x6c/0x130
        ? __ip6_finish_output+0x110/0x110
        mld_sendpack+0x224/0x230
        mld_ifc_timer_expire+0x186/0x2c0
        ? igmp6_group_dropped+0x200/0x200
        call_timer_fn+0x2d/0x150
        run_timer_softirq+0x20c/0x480
        ? tick_sched_do_timer+0x60/0x60
        ? tick_sched_timer+0x37/0x70
        __do_softirq+0xf7/0x2cb
        irq_exit+0xa0/0xb0
        smp_apic_timer_interrupt+0x74/0x150
        apic_timer_interrupt+0xf/0x20
        </IRQ>
      
      Fixes: e5f0e8f8
      
       ("net: sched: introduce and use qdisc tree flush/purge helpers")
      Signed-off-by: default avatarAlexander Ovechkin <ovov@yandex-team.ru>
      Reported-by: default avatarAlexander Kuznetsov <wwfq@yandex-team.ru>
      Acked-by: default avatarDmitry Monakhov <dmtrmonakhov@yandex-team.ru>
      Acked-by: default avatarDmitry Yakunin <zeil@yandex-team.ru>
      Acked-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      Link: https://lore.kernel.org/r/20210201200049.299153-1-ovov@yandex-team.ru
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      938e0fcd
    • Lijun Pan's avatar
      ibmvnic: device remove has higher precedence over reset · 5e9eff5d
      Lijun Pan authored
      
      
      Returning -EBUSY in ibmvnic_remove() does not actually hold the
      removal procedure since driver core doesn't care for the return
      value (see __device_release_driver() in drivers/base/dd.c
      calling dev->bus->remove()) though vio_bus_remove
      (in arch/powerpc/platforms/pseries/vio.c) records the
      return value and passes it on. [1]
      
      During the device removal precedure, checking for resetting
      bit is dropped so that we can continue executing all the
      cleanup calls in the rest of the remove function. Otherwise,
      it can cause latent memory leaks and kernel crashes.
      
      [1] https://lore.kernel.org/linuxppc-dev/20210117101242.dpwayq6wdgfdzirl@pengutronix.de/T/#m48f5befd96bc9842ece2a3ad14f4c27747206a53
      Reported-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Fixes: 7d7195a0
      
       ("ibmvnic: Do not process device remove during device reset")
      Signed-off-by: default avatarLijun Pan <ljp@linux.ibm.com>
      Link: https://lore.kernel.org/r/20210129043402.95744-1-ljp@linux.ibm.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      5e9eff5d
    • DENG Qingfang's avatar
      net: dsa: mv88e6xxx: override existent unicast portvec in port_fdb_add · f72f2fb8
      DENG Qingfang authored
      Having multiple destination ports for a unicast address does not make
      sense.
      Make port_db_load_purge override existent unicast portvec instead of
      adding a new port bit.
      
      Fixes: 88472939
      
       ("net: dsa: mv88e6xxx: handle multiple ports in ATU")
      Signed-off-by: default avatarDENG Qingfang <dqfext@gmail.com>
      Reviewed-by: default avatarVladimir Oltean <olteanv@gmail.com>
      Link: https://lore.kernel.org/r/20210130134334.10243-1-dqfext@gmail.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      f72f2fb8
  2. Jan 31, 2021
    • Chinmay Agarwal's avatar
      neighbour: Prevent a dead entry from updating gc_list · eb4e8fac
      Chinmay Agarwal authored
      Following race condition was detected:
      <CPU A, t0> - neigh_flush_dev() is under execution and calls
      neigh_mark_dead(n) marking the neighbour entry 'n' as dead.
      
      <CPU B, t1> - Executing: __netif_receive_skb() ->
      __netif_receive_skb_core() -> arp_rcv() -> arp_process().arp_process()
      calls __neigh_lookup() which takes a reference on neighbour entry 'n'.
      
      <CPU A, t2> - Moves further along neigh_flush_dev() and calls
      neigh_cleanup_and_release(n), but since reference count increased in t2,
      'n' couldn't be destroyed.
      
      <CPU B, t3> - Moves further along, arp_process() and calls
      neigh_update()-> __neigh_update() -> neigh_update_gc_list(), which adds
      the neighbour entry back in gc_list(neigh_mark_dead(), removed it
      earlier in t0 from gc_list)
      
      <CPU B, t4> - arp_process() finally calls neigh_release(n), destroying
      the neighbour entry.
      
      This leads to 'n' still being part of gc_list, but the actual
      neighbour structure has been freed.
      
      The situation can be prevented from happening if we disallow a dead
      entry to have any possibility of updating gc_list. This is what the
      patch intends to achieve.
      
      Fixes: 9c29a2f5
      
       ("neighbor: Fix locking order for gc_list changes")
      Signed-off-by: default avatarChinmay Agarwal <chinagar@codeaurora.org>
      Reviewed-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
      Link: https://lore.kernel.org/r/20210127165453.GA20514@chinagar-linux.qualcomm.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      eb4e8fac
  3. Jan 30, 2021
    • David Howells's avatar
      rxrpc: Fix deadlock around release of dst cached on udp tunnel · 5399d522
      David Howells authored
      
      
      AF_RXRPC sockets use UDP ports in encap mode.  This causes socket and dst
      from an incoming packet to get stolen and attached to the UDP socket from
      whence it is leaked when that socket is closed.
      
      When a network namespace is removed, the wait for dst records to be cleaned
      up happens before the cleanup of the rxrpc and UDP socket, meaning that the
      wait never finishes.
      
      Fix this by moving the rxrpc (and, by dependence, the afs) private
      per-network namespace registrations to the device group rather than subsys
      group.  This allows cached rxrpc local endpoints to be cleared and their
      UDP sockets closed before we try waiting for the dst records.
      
      The symptom is that lines looking like the following:
      
      	unregister_netdevice: waiting for lo to become free
      
      get emitted at regular intervals after running something like the
      referenced syzbot test.
      
      Thanks to Vadim for tracking this down and work out the fix.
      
      Reported-by: default avatar <syzbot+df400f2f24a1677cd7e0@syzkaller.appspotmail.com>
      Reported-by: default avatarVadim Fedorenko <vfedorenko@novek.ru>
      Fixes: 5271953c
      
       ("rxrpc: Use the UDP encap_rcv hook")
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Acked-by: default avatarVadim Fedorenko <vfedorenko@novek.ru>
      Link: https://lore.kernel.org/r/161196443016.3868642.5577440140646403533.stgit@warthog.procyon.org.uk
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      5399d522
    • Heiner Kallweit's avatar
      r8169: work around RTL8125 UDP hw bug · 8d520b4d
      Heiner Kallweit authored
      It was reported that on RTL8125 network breaks under heavy UDP load,
      e.g. torrent traffic ([0], from comment 27). Realtek confirmed a hw bug
      and provided me with a test version of the r8125 driver including a
      workaround. Tests confirmed that the workaround fixes the issue.
      I modified the original version of the workaround to meet mainline
      code style.
      
      [0] https://bugzilla.kernel.org/show_bug.cgi?id=209839
      
      v2:
      - rebased to net
      v3:
      - make rtl_skb_is_udp() more robust and use skb_header_pointer()
        to access the ip(v6) header
      v4:
      - remove dependency on ptp_classify.h
      - replace magic number with offsetof(struct udphdr, len)
      
      Fixes: f1bce4ad
      
       ("r8169: add support for RTL8125")
      Tested-by: default avatarxplo <xplo.bn@gmail.com>
      Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
      Acked-by: default avatarWillem de Bruijn <willemb@google.com>
      Link: https://lore.kernel.org/r/6e453d49-1801-e6de-d5f7-d7e6c7526c8f@gmail.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      8d520b4d
    • Ahmed S. Darwish's avatar
      net: arcnet: Fix RESET flag handling · 01365633
      Ahmed S. Darwish authored
      
      
      The main arcnet interrupt handler calls arcnet_close() then
      arcnet_open(), if the RESET status flag is encountered.
      
      This is invalid:
      
        1) In general, interrupt handlers should never call ->ndo_stop() and
           ->ndo_open() functions. They are usually full of blocking calls and
           other methods that are expected to be called only from drivers
           init and exit code paths.
      
        2) arcnet_close() contains a del_timer_sync(). If the irq handler
           interrupts the to-be-deleted timer, del_timer_sync() will just loop
           forever.
      
        3) arcnet_close() also calls tasklet_kill(), which has a warning if
           called from irq context.
      
        4) For device reset, the sequence "arcnet_close(); arcnet_open();" is
           not complete.  Some children arcnet drivers have special init/exit
           code sequences, which then embed a call to arcnet_open() and
           arcnet_close() accordingly. Check drivers/net/arcnet/com20020.c.
      
      Run the device RESET sequence from a scheduled workqueue instead.
      
      Signed-off-by: default avatarAhmed S. Darwish <a.darwish@linutronix.de>
      Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Link: https://lore.kernel.org/r/20210128194802.727770-1-a.darwish@linutronix.de
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      01365633
  4. Jan 29, 2021
    • Jakub Kicinski's avatar
      Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf · 06cc6e5d
      Jakub Kicinski authored
      
      
      Daniel Borkmann says:
      
      ====================
      pull-request: bpf 2021-01-29
      
      1) Fix two copy_{from,to}_user() warn_on_once splats for BPF cgroup getsockopt
         infra when user space is trying to race against optlen, from Loris Reiff.
      
      2) Fix a missing fput() in BPF inode storage map update helper, from Pan Bian.
      
      3) Fix a build error on unresolved symbols on disabled networking / keys LSM
         hooks, from Mikko Ylinen.
      
      4) Fix preload BPF prog build when the output directory from make points to a
         relative path, from Quentin Monnet.
      
      * https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf:
        bpf, preload: Fix build when $(O) points to a relative path
        bpf: Drop disabled LSM hooks from the sleepable set
        bpf, inode_storage: Put file handler if no storage was found
        bpf, cgroup: Fix problematic bounds check
        bpf, cgroup: Fix optlen WARN_ON_ONCE toctou
      ====================
      
      Link: https://lore.kernel.org/r/20210129001556.6648-1-daniel@iogearbox.net
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      06cc6e5d
    • Linus Torvalds's avatar
      Merge tag 'net-5.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 909b447d
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Networking fixes including fixes from can, xfrm, wireless,
        wireless-drivers and netfilter trees. Nothing scary, Intel
        WiFi-related fixes seemed most notable to the users.
      
        Current release - regressions:
      
         - dsa: microchip: ksz8795: fix KSZ8794 port map again to program the
           CPU port correctly
      
        Current release - new code bugs:
      
         - iwlwifi: pcie: reschedule in long-running memory reads
      
        Previous releases - regressions:
      
         - iwlwifi: dbg: don't try to overwrite read-only FW data
      
         - iwlwifi: provide gso_type to GSO packets
      
         - octeontx2: make sure the buffer is 128 byte aligned
      
         - tcp: make TCP_USER_TIMEOUT accurate for zero window probes
      
         - xfrm: fix wraparound in xfrm_policy_addr_delta()
      
         - xfrm: fix oops in xfrm_replay_advance_bmp due to a race between
           CPUs in presence of packet reorder
      
         - tcp: fix TLP timer not set when CA_STATE changes from DISORDER to
           OPEN
      
         - wext: fix NULL-ptr-dereference with cfg80211's lack of commit()
      
        Previous releases - always broken:
      
         - igc: fix link speed advertising
      
         - stmmac: configure EHL PSE0 GbE and PSE1 GbE to 32 bits DMA
           addressing
      
         - team: protect features update by RCU to avoid deadlock
      
         - xfrm: fix disable_xfrm sysctl when used on xfrm interfaces
           themselves
      
         - fec: fix temporary RMII clock reset on link up
      
         - can: dev: prevent potential information leak in can_fill_info()
      
        Misc:
      
         - mrp: fix bad packing of MRP test packet structures
      
         - uapi: fix big endian definition of ipv6_rpl_sr_hdr
      
         - add David Ahern to IPv4/IPv6 maintainers"
      
      * tag 'net-5.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (86 commits)
        rxrpc: Fix memory leak in rxrpc_lookup_local
        mlxsw: spectrum_span: Do not overwrite policer configuration
        selftests: forwarding: Specify interface when invoking mausezahn
        stmmac: intel: Configure EHL PSE0 GbE and PSE1 GbE to 32 bits DMA addressing
        net: usb: cdc_ether: added support for Thales Cinterion PLSx3 modem family.
        ibmvnic: Ensure that CRQ entry read are correctly ordered
        MAINTAINERS: add missing header for bonding
        net: decnet: fix netdev refcount leaking on error path
        net: switchdev: don't set port_obj_info->handled true when -EOPNOTSUPP
        can: dev: prevent potential information leak in can_fill_info()
        net: fec: Fix temporary RMII clock reset on link up
        net: lapb: Add locking to the lapb module
        team: protect features update by RCU to avoid deadlock
        MAINTAINERS: add David Ahern to IPv4/IPv6 maintainers
        net/mlx5: CT: Fix incorrect removal of tuple_nat_node from nat rhashtable
        net/mlx5e: Revert parameters on errors when changing MTU and LRO state without reset
        net/mlx5e: Revert parameters on errors when changing trust state without reset
        net/mlx5e: Correctly handle changing the number of queues when the interface is down
        net/mlx5e: Fix CT rule + encap slow path offload and deletion
        net/mlx5e: Disable hw-tc-offload when MLX5_CLS_ACT config is disabled
        ...
      909b447d
    • Takeshi Misawa's avatar
      rxrpc: Fix memory leak in rxrpc_lookup_local · b8323f72
      Takeshi Misawa authored
      Commit 9ebeddef ("rxrpc: rxrpc_peer needs to hold a ref on the rxrpc_local record")
      Then release ref in __rxrpc_put_peer and rxrpc_put_peer_locked.
      
      	struct rxrpc_peer *rxrpc_alloc_peer(struct rxrpc_local *local, gfp_t gfp)
      	-               peer->local = local;
      	+               peer->local = rxrpc_get_local(local);
      
      rxrpc_discard_prealloc also need ref release in discarding.
      
      syzbot report:
      BUG: memory leak
      unreferenced object 0xffff8881080ddc00 (size 256):
        comm "syz-executor339", pid 8462, jiffies 4294942238 (age 12.350s)
        hex dump (first 32 bytes):
          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          00 00 00 00 0a 00 00 00 00 c0 00 08 81 88 ff ff  ................
        backtrace:
          [<000000002b6e495f>] kmalloc include/linux/slab.h:552 [inline]
          [<000000002b6e495f>] kzalloc include/linux/slab.h:682 [inline]
          [<000000002b6e495f>] rxrpc_alloc_local net/rxrpc/local_object.c:79 [inline]
          [<000000002b6e495f>] rxrpc_lookup_local+0x1c1/0x760 net/rxrpc/local_object.c:244
          [<000000006b43a77b>] rxrpc_bind+0x174/0x240 net/rxrpc/af_rxrpc.c:149
          [<00000000fd447a55>] afs_open_socket+0xdb/0x200 fs/afs/rxrpc.c:64
          [<000000007fd8867c>] afs_net_init+0x2b4/0x340 fs/afs/main.c:126
          [<0000000063d80ec1>] ops_init+0x4e/0x190 net/core/net_namespace.c:152
          [<00000000073c5efa>] setup_net+0xde/0x2d0 net/core/net_namespace.c:342
          [<00000000a6744d5b>] copy_net_ns+0x19f/0x3e0 net/core/net_namespace.c:483
          [<0000000017d3aec3>] create_new_namespaces+0x199/0x4f0 kernel/nsproxy.c:110
          [<00000000186271ef>] unshare_nsproxy_namespaces+0x9b/0x120 kernel/nsproxy.c:226
          [<000000002de7bac4>] ksys_unshare+0x2fe/0x5c0 kernel/fork.c:2957
          [<00000000349b12ba>] __do_sys_unshare kernel/fork.c:3025 [inline]
          [<00000000349b12ba>] __se_sys_unshare kernel/fork.c:3023 [inline]
          [<00000000349b12ba>] __x64_sys_unshare+0x12/0x20 kernel/fork.c:3023
          [<000000006d178ef7>] do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
          [<00000000637076d4>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
      
      Fixes: 9ebeddef
      
       ("rxrpc: rxrpc_peer needs to hold a ref on the rxrpc_local record")
      Signed-off-by: default avatarTakeshi Misawa <jeliantsurux@gmail.com>
      Reported-and-tested-by: default avatar <syzbot+305326672fed51b205f7@syzkaller.appspotmail.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Link: https://lore.kernel.org/r/161183091692.3506637.3206605651502458810.stgit@warthog.procyon.org.uk
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b8323f72
    • Jakub Kicinski's avatar
      Merge branch 'mlxsw-various-fixes' · 924b171c
      Jakub Kicinski authored
      
      
      Ido Schimmel says:
      
      ====================
      mlxsw: Various fixes
      
      Patch #1 fixes wrong invocation of mausezahn in a couple of selftests.
      The tests started failing after Fedora updated their libnet package from
      version 1.1.6 to 1.2.1. With the fix the tests pass regardless of libnet
      version.
      
      Patch #2 fixes an issue in the mirroring to CPU code that results in
      policer configuration being overwritten.
      ====================
      
      Link: https://lore.kernel.org/r/20210128144820.3280295-1-idosch@idosch.org
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      924b171c
    • Ido Schimmel's avatar
      mlxsw: spectrum_span: Do not overwrite policer configuration · b6f6881a
      Ido Schimmel authored
      The purpose of the delayed work in the SPAN module is to potentially
      update the destination port and various encapsulation parameters of SPAN
      agents that point to a VLAN device or a GRE tap. The destination port
      can change following the insertion of a new route, for example.
      
      SPAN agents that point to a physical port or the CPU port are static and
      never change throughout the lifetime of the SPAN agent. Therefore, skip
      over them in the delayed work.
      
      This fixes an issue where the delayed work overwrites the policer
      that was set on a SPAN agent pointing to the CPU. Modifying the delayed
      work to inherit the original policer configuration is error-prone, as
      the same will be needed for any new parameter.
      
      Fixes: 4039504e
      
       ("mlxsw: spectrum_span: Allow setting policer on a SPAN agent")
      Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b6f6881a
    • Danielle Ratson's avatar
      selftests: forwarding: Specify interface when invoking mausezahn · 11df27f7
      Danielle Ratson authored
      Specify the interface through which packets should be transmitted so
      that the test will pass regardless of the libnet version against which
      mausezahn is linked.
      
      Fixes: cab14d10 ("selftests: Add version of router_multipath.sh using nexthop objects")
      Fixes: 3d578d87
      
       ("selftests: forwarding: Test IPv4 weighted nexthops")
      Signed-off-by: default avatarDanielle Ratson <danieller@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      11df27f7
    • Voon Weifeng's avatar
      stmmac: intel: Configure EHL PSE0 GbE and PSE1 GbE to 32 bits DMA addressing · 7cfc4486
      Voon Weifeng authored
      Fix an issue where dump stack is printed and Reset Adapter occurs when
      PSE0 GbE or/and PSE1 GbE is/are enabled. EHL PSE0 GbE and PSE1 GbE use
      32 bits DMA addressing whereas EHL PCH GbE uses 64 bits DMA addressing.
      
      [   25.535095] ------------[ cut here ]------------
      [   25.540276] NETDEV WATCHDOG: enp0s29f2 (intel-eth-pci): transmit queue 2 timed out
      [   25.548749] WARNING: CPU: 2 PID: 0 at net/sched/sch_generic.c:443 dev_watchdog+0x259/0x260
      [   25.558004] Modules linked in: 8021q bnep bluetooth ecryptfs snd_hda_codec_hdmi intel_gpy marvell intel_ishtp_loader intel_ishtp_hid iTCO_wdt mei_hdcp iTCO_vendor_support x86_pkg_temp_thermal kvm_intel dwmac_intel stmmac kvm igb pcs_xpcs irqbypass phylink snd_hda_intel intel_rapl_msr pcspkr dca snd_hda_codec i915 i2c_i801 i2c_smbus libphy intel_ish_ipc snd_hda_core mei_me intel_ishtp mei spi_dw_pci 8250_lpss spi_dw thermal dw_dmac_core parport_pc tpm_crb tpm_tis parport tpm_tis_core tpm intel_pmc_core sch_fq_codel uhid fuse configfs snd_sof_pci snd_sof_intel_byt snd_sof_intel_ipc snd_sof_intel_hda_common snd_sof_xtensa_dsp snd_sof snd_soc_acpi_intel_match snd_soc_acpi snd_intel_dspcfg ledtrig_audio snd_soc_core snd_compress ac97_bus snd_pcm snd_timer snd soundcore
      [   25.633795] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G     U            5.11.0-rc4-intel-lts-MISMAIL5+ #5
      [   25.644306] Hardware name: Intel Corporation Elkhart Lake Embedded Platform/ElkhartLake LPDDR4x T4 RVP1, BIOS EHLSFWI1.R00.2434.A00.2010231402 10/23/2020
      [   25.659674] RIP: 0010:dev_watchdog+0x259/0x260
      [   25.664650] Code: e8 3b 6b 60 ff eb 98 4c 89 ef c6 05 ec e7 bf 00 01 e8 fb e5 fa ff 89 d9 4c 89 ee 48 c7 c7 78 31 d2 9e 48 89 c2 e8 79 1b 18 00 <0f> 0b e9 77 ff ff ff 0f 1f 44 00 00 48 c7 47 08 00 00 00 00 48 c7
      [   25.685647] RSP: 0018:ffffb7ca80160eb8 EFLAGS: 00010286
      [   25.691498] RAX: 0000000000000000 RBX: 0000000000000002 RCX: 0000000000000103
      [   25.699483] RDX: 0000000080000103 RSI: 00000000000000f6 RDI: 00000000ffffffff
      [   25.707465] RBP: ffff985709ce0440 R08: 0000000000000000 R09: c0000000ffffefff
      [   25.715455] R10: ffffb7ca80160cf0 R11: ffffb7ca80160ce8 R12: ffff985709ce039c
      [   25.723438] R13: ffff985709ce0000 R14: 0000000000000008 R15: ffff9857068af940
      [   25.731425] FS:  0000000000000000(0000) GS:ffff985864300000(0000) knlGS:0000000000000000
      [   25.740481] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [   25.746913] CR2: 00005567f8bb76b8 CR3: 00000001f8e0a000 CR4: 0000000000350ee0
      [   25.754900] Call Trace:
      [   25.757631]  <IRQ>
      [   25.759891]  ? qdisc_put_unlocked+0x30/0x30
      [   25.764565]  ? qdisc_put_unlocked+0x30/0x30
      [   25.769245]  call_timer_fn+0x2e/0x140
      [   25.773346]  run_timer_softirq+0x1f3/0x430
      [   25.777932]  ? __hrtimer_run_queues+0x12c/0x2c0
      [   25.783005]  ? ktime_get+0x3e/0xa0
      [   25.786812]  __do_softirq+0xa6/0x2ef
      [   25.790816]  asm_call_irq_on_stack+0xf/0x20
      [   25.795501]  </IRQ>
      [   25.797852]  do_softirq_own_stack+0x5d/0x80
      [   25.802538]  irq_exit_rcu+0x94/0xb0
      [   25.806475]  sysvec_apic_timer_interrupt+0x42/0xc0
      [   25.811836]  asm_sysvec_apic_timer_interrupt+0x12/0x20
      [   25.817586] RIP: 0010:cpuidle_enter_state+0xd9/0x370
      [   25.823142] Code: 85 c0 0f 8f 0a 02 00 00 31 ff e8 22 d5 7e ff 45 84 ff 74 12 9c 58 f6 c4 02 0f 85 47 02 00 00 31 ff e8 7b a0 84 ff fb 45 85 f6 <0f> 88 ab 00 00 00 49 63 ce 48 2b 2c 24 48 89 c8 48 6b d1 68 48 c1
      [   25.844140] RSP: 0018:ffffb7ca800f7e80 EFLAGS: 00000206
      [   25.849996] RAX: ffff985864300000 RBX: 0000000000000003 RCX: 000000000000001f
      [   25.857975] RDX: 00000005f2028ea8 RSI: ffffffff9ec5907f RDI: ffffffff9ec62a5d
      [   25.865961] RBP: 00000005f2028ea8 R08: 0000000000000000 R09: 0000000000029d00
      [   25.873947] R10: 000000137b0e0508 R11: ffff9858643294e4 R12: ffff9858643336d0
      [   25.881935] R13: ffffffff9ef74b00 R14: 0000000000000003 R15: 0000000000000000
      [   25.889918]  cpuidle_enter+0x29/0x40
      [   25.893922]  do_idle+0x24a/0x290
      [   25.897536]  cpu_startup_entry+0x19/0x20
      [   25.901930]  start_secondary+0x128/0x160
      [   25.906326]  secondary_startup_64_no_verify+0xb0/0xbb
      [   25.911983] ---[ end trace b4c0c8195d0ba61f ]---
      [   25.917193] intel-eth-pci 0000:00:1d.2 enp0s29f2: Reset adapter.
      
      Fixes: 67c08ac4
      
       ("net: stmmac: add EHL PSE0 & PSE1 1Gbps PCI info and PCI ID")
      Signed-off-by: default avatarVoon Weifeng <weifeng.voon@intel.com>
      Co-developed-by: default avatarMohammad Athari Bin Ismail <mohammad.athari.ismail@intel.com>
      Signed-off-by: default avatarMohammad Athari Bin Ismail <mohammad.athari.ismail@intel.com>
      Link: https://lore.kernel.org/r/20210126100844.30326-1-mohammad.athari.ismail@intel.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      7cfc4486
    • Giacinto Cifelli's avatar
      net: usb: cdc_ether: added support for Thales Cinterion PLSx3 modem family. · dad3a72f
      Giacinto Cifelli authored
      
      
      lsusb -v for this device:
      
      Bus 003 Device 007: ID 1e2d:0069
      Device Descriptor:
        bLength                18
        bDescriptorType         1
        bcdUSB               2.00
        bDeviceClass          239 Miscellaneous Device
        bDeviceSubClass         2 ?
        bDeviceProtocol         1 Interface Association
        bMaxPacketSize0        64
        idVendor           0x1e2d
        idProduct          0x0069
        bcdDevice            0.00
        iManufacturer           4 Cinterion Wireless Modules
        iProduct                3 PLSx3
        iSerial                 5 fa3c1419
        bNumConfigurations      1
        Configuration Descriptor:
          bLength                 9
          bDescriptorType         2
          wTotalLength          352
          bNumInterfaces         10
          bConfigurationValue     1
          iConfiguration          2 Cinterion Configuration
          bmAttributes         0xe0
            Self Powered
            Remote Wakeup
          MaxPower              500mA
          Interface Association:
            bLength                 8
            bDescriptorType        11
            bFirstInterface         0
            bInterfaceCount         2
            bFunctionClass          2 Communications
            bFunctionSubClass       2 Abstract (modem)
            bFunctionProtocol       1 AT-commands (v.25ter)
            iFunction               0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        0
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         2 Communications
            bInterfaceSubClass      2 Abstract (modem)
            bInterfaceProtocol      1 AT-commands (v.25ter)
            iInterface              0
            CDC Header:
              bcdCDC               1.10
            CDC ACM:
              bmCapabilities       0x02
                line coding and serial state
            CDC Call Management:
              bmCapabilities       0x03
                call management
                use DataInterface
              bDataInterface          1
            CDC Union:
              bMasterInterface        0
              bSlaveInterface         1
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x81  EP 1 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0040  1x 64 bytes
              bInterval               5
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        1
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass        10 CDC Data
            bInterfaceSubClass      0 Unused
            bInterfaceProtocol      0
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x82  EP 2 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x01  EP 1 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
          Interface Association:
            bLength                 8
            bDescriptorType        11
            bFirstInterface         2
            bInterfaceCount         2
            bFunctionClass          2 Communications
            bFunctionSubClass       2 Abstract (modem)
            bFunctionProtocol       1 AT-commands (v.25ter)
            iFunction               0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        2
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         2 Communications
            bInterfaceSubClass      2 Abstract (modem)
            bInterfaceProtocol      1 AT-commands (v.25ter)
            iInterface              0
            CDC Header:
              bcdCDC               1.10
            CDC ACM:
              bmCapabilities       0x02
                line coding and serial state
            CDC Call Management:
              bmCapabilities       0x03
                call management
                use DataInterface
              bDataInterface          3
            CDC Union:
              bMasterInterface        2
              bSlaveInterface         3
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x83  EP 3 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0040  1x 64 bytes
              bInterval               5
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        3
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass        10 CDC Data
            bInterfaceSubClass      0 Unused
            bInterfaceProtocol      0
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x84  EP 4 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x02  EP 2 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
          Interface Association:
            bLength                 8
            bDescriptorType        11
            bFirstInterface         4
            bInterfaceCount         2
            bFunctionClass          2 Communications
            bFunctionSubClass       2 Abstract (modem)
            bFunctionProtocol       1 AT-commands (v.25ter)
            iFunction               0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        4
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         2 Communications
            bInterfaceSubClass      2 Abstract (modem)
            bInterfaceProtocol      1 AT-commands (v.25ter)
            iInterface              0
            CDC Header:
              bcdCDC               1.10
            CDC ACM:
              bmCapabilities       0x02
                line coding and serial state
            CDC Call Management:
              bmCapabilities       0x03
                call management
                use DataInterface
              bDataInterface          5
            CDC Union:
              bMasterInterface        4
              bSlaveInterface         5
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x85  EP 5 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0040  1x 64 bytes
              bInterval               5
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        5
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass        10 CDC Data
            bInterfaceSubClass      0 Unused
            bInterfaceProtocol      0
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x86  EP 6 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x03  EP 3 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
          Interface Association:
            bLength                 8
            bDescriptorType        11
            bFirstInterface         6
            bInterfaceCount         2
            bFunctionClass          2 Communications
            bFunctionSubClass       2 Abstract (modem)
            bFunctionProtocol       1 AT-commands (v.25ter)
            iFunction               0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        6
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         2 Communications
            bInterfaceSubClass      2 Abstract (modem)
            bInterfaceProtocol      1 AT-commands (v.25ter)
            iInterface              0
            CDC Header:
              bcdCDC               1.10
            CDC ACM:
              bmCapabilities       0x02
                line coding and serial state
            CDC Call Management:
              bmCapabilities       0x03
                call management
                use DataInterface
              bDataInterface          7
            CDC Union:
              bMasterInterface        6
              bSlaveInterface         7
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x87  EP 7 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0040  1x 64 bytes
              bInterval               5
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        7
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass        10 CDC Data
            bInterfaceSubClass      0 Unused
            bInterfaceProtocol      0
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x88  EP 8 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x04  EP 4 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
          Interface Association:
            bLength                 8
            bDescriptorType        11
            bFirstInterface         8
            bInterfaceCount         2
            bFunctionClass          2 Communications
            bFunctionSubClass       0
            bFunctionProtocol       0
            iFunction               0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        8
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         2 Communications
            bInterfaceSubClass      6 Ethernet Networking
            bInterfaceProtocol      0
            iInterface              0
            CDC Header:
              bcdCDC               1.10
            CDC Ethernet:
              iMacAddress                      1 00A0C6C14190
              bmEthernetStatistics    0x00000000
              wMaxSegmentSize              16384
              wNumberMCFilters            0x0001
              bNumberPowerFilters              0
            CDC Union:
              bMasterInterface        8
              bSlaveInterface         9
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x89  EP 9 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0040  1x 64 bytes
              bInterval               5
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        9
            bAlternateSetting       0
            bNumEndpoints           0
            bInterfaceClass        10 CDC Data
            bInterfaceSubClass      0 Unused
            bInterfaceProtocol      0
            iInterface              0
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        9
            bAlternateSetting       1
            bNumEndpoints           2
            bInterfaceClass        10 CDC Data
            bInterfaceSubClass      0 Unused
            bInterfaceProtocol      0
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x8a  EP 10 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x05  EP 5 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
      Device Qualifier (for other device speed):
        bLength                10
        bDescriptorType         6
        bcdUSB               2.00
        bDeviceClass          239 Miscellaneous Device
        bDeviceSubClass         2 ?
        bDeviceProtocol         1 Interface Association
        bMaxPacketSize0        64
        bNumConfigurations      1
      Device Status:     0x0000
        (Bus Powered)
      
      Signed-off-by: default avatarGiacinto Cifelli <gciofono@gmail.com>
      Link: https://lore.kernel.org/r/20210126044245.8455-1-gciofono@gmail.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      dad3a72f
    • Linus Torvalds's avatar
      Merge tag 'locking-urgent-2021-01-28' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c64396cc
      Linus Torvalds authored
      Pull locking fixes from Thomas Gleixner:
       "A set of PI futex fixes:
      
         - Address a longstanding issue where the user space part of the PI
           futex is not writeable. The kernel returns with inconsistent state
           which can in the worst case result in a UAF of a tasks kernel
           stack.
      
           The solution is to establish consistent kernel state which makes
           future operations on the futex fail because user space and kernel
           space state are inconsistent. Not a problem as PI futexes
           fundamentaly require a functional RW mapping and if user space
           pulls the rug under it, then it can keep the pieces it asked for.
      
         - Address an issue where the return value is incorrect in case that
           the futex was acquired after a timeout/signal made the waiter drop
           out of the rtmutex wait.
      
           In one of the corner cases the kernel returned an error code
           despite having successfully acquired the futex"
      
      * tag 'locking-urgent-2021-01-28' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        futex: Handle faults correctly for PI futexes
        futex: Simplify fixup_pi_state_owner()
        futex: Use pi_state_update_owner() in put_pi_state()
        rtmutex: Remove unused argument from rt_mutex_proxy_unlock()
        futex: Provide and use pi_state_update_owner()
        futex: Replace pointless printk in fixup_owner()
        futex: Ensure the correct return value from futex_lock_pi()
      c64396cc
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.11-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · e5ff2cb9
      Linus Torvalds authored
      Pull xen fixes from Juergen Gross:
      
       - A fix for a regression introduced in 5.11 resulting in Xen dom0
         having problems to correctly initialize Xenstore.
      
       - A fix for avoiding WARN splats when booting as Xen dom0 with
         CONFIG_AMD_MEM_ENCRYPT enabled due to a missing trap handler for the
         #VC exception (even if the handler should never be called).
      
       - A fix for the Xen bklfront driver adapting to the correct but
         unexpected behavior of new qemu.
      
      * tag 'for-linus-5.11-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        x86/xen: avoid warning in Xen pv guest with CONFIG_AMD_MEM_ENCRYPT enabled
        xen: Fix XenStore initialisation for XS_LOCAL
        xen-blkfront: allow discard-* nodes to be optional
      e5ff2cb9
    • Linus Torvalds's avatar
      Merge tag 'asm-generic-fixes-v5.11' of... · 228345bf
      Linus Torvalds authored
      Merge tag 'asm-generic-fixes-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic
      
      Pull ia64 fixes from Arnd Bergmann:
       "asm-generic/ia64 fixes, and mark as orphaned
      
        Commit 2b49ddce ("ia64: convert to legacy_timer_tick") from my
        timer series I merged through the asm-generic tree caused a regression
        on all ia64 machines, as bisected by Adrian Glaubitz.
      
        Tony Luck is no longer really working on ia64, so instead of merging
        the fix through his tree, we ended up deciding that I'd merge the fix
        myself along a patch to mark the architecture as Orphaned and a
        compile time warning fix I made while working on the regression"
      
      [ HPE no longer accepts orders for new Itanium hardware, and Intel
        stopped accepting orders a year ago. While intel is still officially
        shipping chips until July 29, 2021, it's unlikely that any such orders
        actually exist.
      
        It's dead, Jim.
                           - Linus ]
      
      * tag 'asm-generic-fixes-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
        ia64: Mark architecture as orphaned
        ia64: fix xchg() warning
        ia64: fix timer cleanup regression
      228345bf
    • Linus Torvalds's avatar
      Merge tag 'arm-soc-fixes-v5.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 7485e08e
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "These are the current arm-soc bug fixes for linux-5.11. I already
        merged a larger set that just came in during the past three days but
        has not had much exposure in linux-next, but this is the subset I
        merged last week.
      
        Most of these are for the NXP i.MX platform (descriptions from their
        pull request):
      
         - Fix pcf2127 reset for imx7d-flex-concentrator board.
         - Fix i.MX6 suspend with Thumb-2 kernel.
         - Fix ethernet-phy address issue on imx6qdl-sr-som board.
         - Fix GPIO3 `gpio-ranges` on i.MX8MP.
         - Select SOC_BUS for IMX_SCU driver to fix build issue.
         - Fix backlight pwm on imx6qdl-kontron-samx6i which is lost from
           #pwm-cells conversion.
         - Fix duplicated bus node name for i.MX8MN SoC.
         - Fix reset register offset on LS1028A SoC.
         - Rename MMC node aliases for imx6q-tbs2910 to keep the MMC device
           index consistent with previous kernel version.
         - Selecting ARM_GIC_V3 on non-CP15 processors to fix one build
           failure with i.MX8M SoC driver.
         - Fix typos with status property on imx6qdl-kontron-samx6i board.
         - Fix duplicated regulator-name on imx6qdl-gw52xx board.
      
        Aside from i.MX, the bugfixes are all over the place:
      
         - Coccinelle found a refcount imbalance on integrator
         - defconfig fix for TI K3
         - A boot regression fix for ST ux500
         - A code preemption fix for the optee driver
         - USB DMA regression on Broadcom Stingray
         - A bogus boot time warning fix for at91 code"
      
      * tag 'arm-soc-fixes-v5.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
        MAINTAINERS: Include bcm2835 subsequents into search
        arm64: dts: broadcom: Fix USB DMA address translation for Stingray
        drivers: soc: atmel: add null entry at the end of at91_soc_allowed_list[]
        drivers: soc: atmel: Avoid calling at91_soc_init on non AT91 SoCs
        tee: optee: replace might_sleep with cond_resched
        firmware: imx: select SOC_BUS to fix firmware build
        arm64: dts: imx8mp: Correct the gpio ranges of gpio3
        ARM: dts: imx6qdl-sr-som: fix some cubox-i platforms
        ARM: imx: build suspend-imx6.S with arm instruction set
        ARM: dts: imx7d-flex-concentrator: fix pcf2127 reset
        ARM: dts: ux500: Reserve memory carveouts
        arm64: defconfig: Drop unused K3 SoC specific options
        bus: arm-integrator-lm: Add of_node_put() before return statement
        ARM: dts: imx6qdl-gw52xx: fix duplicate regulator naming
        ARM: dts: imx6qdl-kontron-samx6i: fix i2c_lcd/cam default status
        ARM: imx: fix imx8m dependencies
        ARM: dts: tbs2910: rename MMC node aliases
        arm64: dts: ls1028a: fix the offset of the reset register
        arm64: dts: imx8mn: Fix duplicate node name
        ARM: dts: imx6qdl-kontron-samx6i: fix pwms for lcd-backlight
      7485e08e
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · b0dfa64d
      Linus Torvalds authored
      Pull rdma fixes from Jason Gunthorpe:
       "Several recent regressions and some bug fixes:
      
         - Typo corrupting the max_recv_sge for cxgb4
      
         - Regression from re-using kernel enums as a HW AbI in vmw_pvrdma
      
         - Sleeping inside a spinlock in hns
      
         - Revert the attempt to fix devlink deadlocks as the fix is more buggy
      
         - Typo in sysfs_emit_at conversions
      
         - Revert the removal of VLAN support in rxe"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        Revert "RDMA/rxe: Remove VLAN code leftovers from RXE"
        RDMA/usnic: Fix misuse of sysfs_emit_at
        Revert "RDMA/mlx5: Fix devlink deadlock on net namespace deletion"
        RDMA/hns: Use mutex instead of spinlock for ida allocation
        RDMA/vmw_pvrdma: Fix network_hdr_type reported in WC
        RDMA/cxgb4: Fix the reported max_recv_sge value
      b0dfa64d
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · 25221c99
      Linus Torvalds authored
      Pull HID fixes from Jiri Kosina:
      
       - NULL pointer dereference regression fix for Wacom driver (Jason
         Gerecke)
      
       - functional regression fix for pam handling on some Elan and Synaptics
         touchpads (Kai-Heng Feng)
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
        HID: wacom: Correct NULL dereference on AES pen proximity
        HID: multitouch: Apply MT_QUIRK_CONFIDENCE quirk for multi-input devices
      25221c99
    • Linus Torvalds's avatar
      Merge tag 'media/v5.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · fc856f1d
      Linus Torvalds authored
      Pull media fixes from Mauro Carvalho Chehab:
      
       - a V4L2 core regression at videobuf2 when checking for single-plane
         dmabuf
      
       - a change at uAPI header v4l2-subdev.h, fixing a breakage as BIT()
         macro is not available in userspace
      
       - fix some regressions at RC core due to the usage of microseconds
         everywhere on it
      
       - a fix for a race condition at RC core
      
       - a rename on a newly-introduced kAPI symbol (v4l2_get_link_rate),
         currently used only by a single driver
      
       - Regression fixes for rcar-vin, cedrus, ite-cir, hantro, css, venus,
         and cec drivers.
      
      * tag 'media/v5.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
        media: hantro: Fix reset_raw_fmt initialization
        media: cec: add stm32 driver
        media: cedrus: Fix H264 decoding
        media: v4l2-subdev.h: BIT() is not available in userspace
        media: Revert "media: videobuf2: Fix length check for single plane dmabuf queueing"
        media: rc: ite-cir: fix min_timeout calculation
        media: venus: core: Fix platform driver shutdown
        media: rc: fix timeout handling after switch to microsecond durations
        media: v4l: common: Fix naming of v4l2_get_link_rate
        media: rcar-vin: fix return, use ret instead of zero
        media: ccs: Get static data version minor correctly
        media: ccs-pll: Fix link frequency for C-PHY
        media: rc: ensure that uevent can be read directly after rc device register
      fc856f1d
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · a467b073
      Linus Torvalds authored
      Pull clk fixes from Stephen Boyd:
       "A handful of clk driver fixes:
      
         - Build fix for CONFIG_PM=n in the mmp2 driver
      
         - Kconfig warning for unmet dependencies in the i.MX driver
      
         - Make the camera AHB clk always be enabled on qcom sc7180
      
         - Use rate round down semantics for qcom sm8250 SD clks"
      
      * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
        clk: mmp2: fix build without CONFIG_PM
        clk: qcom: gcc-sm250: Use floor ops for sdcc clks
        clk: imx: fix Kconfig warning for i.MX SCU clk
        clk: qcom: gcc-sc7180: Mark the camera abh clock always ON
      a467b073
    • Linus Torvalds's avatar
      Merge tag 'sound-5.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · be4a3385
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Although the incoming fixes haven't settled down yet, all changes here
        are small and mostly device-specific fixes, so nothing look worrisome.
      
         - Yet another USB-audio regression fixes
      
         - HD-audio ID fix and device-specific quirks
      
         - SOF Intel / SoundWire fixes including topology
      
         - ASoC Qualcomm and Mediatek fixes"
      
      * tag 'sound-5.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (24 commits)
        ALSA: hda/via: Apply the workaround generically for Clevo machines
        ASoC: Intel: sof_sdw: set proper flags for Dell TGL-H SKU 0A5E
        ASoC: qcom: lpass: Fix out-of-bounds DAI ID lookup
        ASoC: mediatek: mt8192-mt6359: add format constraints for RT5682
        ASoC: ak4458: correct reset polarity
        ASoC: SOF: SND_INTEL_DSP_CONFIG dependency
        ASoC: SOF: Intel: soundwire: fix select/depend unmet dependencies
        ALSA: hda: intel-dsp-config: add PCI id for TGL-H
        ALSA: usb-audio: workaround for iface reset issue
        ALSA: pcm: One more dependency for hw constraints
        ALSA: hda/realtek: Enable headset of ASUS B1400CEPE with ALC256
        ASoC: Intel: Skylake: Zero snd_ctl_elem_value
        ASoC: Intel: Skylake: skl-topology: Fix OOPs ib skl_tplg_complete
        ASoC: qcom: Fix number of HDMI RDMA channels on sc7180
        ASoC: mediatek: mt8183-da7219: ignore TDM DAI link by default
        ASoC: mediatek: mt8183-mt6358: ignore TDM DAI link by default
        ASoC: topology: Properly unregister DAI on removal
        ASoC: topology: Fix memory corruption in soc_tplg_denum_create_values()
        ASoC: qcom: lpass-ipq806x: fix bitwidth regmap field
        ASoC: AMD Renoir - refine DMI entries for some Lenovo products
        ...
      be4a3385
    • Wang Hai's avatar
      Revert "mm/slub: fix a memory leak in sysfs_slab_add()" · 757fed1d
      Wang Hai authored
      This reverts commit dde3c6b7.
      
      syzbot report a double-free bug. The following case can cause this bug.
      
       - mm/slab_common.c: create_cache(): if the __kmem_cache_create() fails,
         it does:
      
      	out_free_cache:
      		kmem_cache_free(kmem_cache, s);
      
       - but __kmem_cache_create() - at least for slub() - will have done
      
      	sysfs_slab_add(s)
      		-> sysfs_create_group() .. fails ..
      		-> kobject_del(&s->kobj); .. which frees s ...
      
      We can't remove the kmem_cache_free() in create_cache(), because other
      error cases of __kmem_cache_create() do not free this.
      
      So, revert the commit dde3c6b7
      
       ("mm/slub: fix a memory leak in
      sysfs_slab_add()") to fix this.
      
      Reported-by: default avatar <syzbot+d0bd96b4696c1ef67991@syzkaller.appspotmail.com>
      Fixes: dde3c6b7
      
       ("mm/slub: fix a memory leak in sysfs_slab_add()")
      Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Signed-off-by: default avatarWang Hai <wanghai38@huawei.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      757fed1d
  5. Jan 28, 2021
    • Jakub Kicinski's avatar
      Merge tag 'mlx5-fixes-2021-01-26' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux · 44a674d6
      Jakub Kicinski authored
      
      
      Saeed Mahameed says:
      
      ====================
      mlx5 fixes 2021-01-26
      
      This series introduces some fixes to mlx5 driver.
      
      * tag 'mlx5-fixes-2021-01-26' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux:
        net/mlx5: CT: Fix incorrect removal of tuple_nat_node from nat rhashtable
        net/mlx5e: Revert parameters on errors when changing MTU and LRO state without reset
        net/mlx5e: Revert parameters on errors when changing trust state without reset
        net/mlx5e: Correctly handle changing the number of queues when the interface is down
        net/mlx5e: Fix CT rule + encap slow path offload and deletion
        net/mlx5e: Disable hw-tc-offload when MLX5_CLS_ACT config is disabled
        net/mlx5: Maintain separate page trees for ECPF and PF functions
        net/mlx5e: Fix IPSEC stats
        net/mlx5e: Reduce tc unsupported key print level
        net/mlx5e: free page before return
        net/mlx5e: E-switch, Fix rate calculation for overflow
        net/mlx5: Fix memory leak on flow table creation error flow
      ====================
      
      Link: https://lore.kernel.org/r/20210126234345.202096-1-saeedm@nvidia.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      44a674d6
    • Lijun Pan's avatar
      ibmvnic: Ensure that CRQ entry read are correctly ordered · e41aec79
      Lijun Pan authored
      Ensure that received Command-Response Queue (CRQ) entries are
      properly read in order by the driver. dma_rmb barrier has
      been added before accessing the CRQ descriptor to ensure
      the entire descriptor is read before processing.
      
      Fixes: 032c5e82
      
       ("Driver for IBM System i/p VNIC protocol")
      Signed-off-by: default avatarLijun Pan <ljp@linux.ibm.com>
      Link: https://lore.kernel.org/r/20210128013442.88319-1-ljp@linux.ibm.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      e41aec79
    • Jakub Kicinski's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf · 0f764eec
      Jakub Kicinski authored
      
      
      Pablo Neira Ayuso says:
      
      ====================
      Netfilter fixes for net
      
      1) Honor stateful expressions defined in the set from the dynset
         extension. The set definition provides a stateful expression
         that must be used by the dynset expression in case it is specified.
      
      2) Missing timeout extension in the set element in the dynset
         extension leads to inconsistent ruleset listing, not allowing
         the user to restore timeout and expiration on ruleset reload.
      
      3) Do not dump the stateful expression from the dynset extension
         if it coming from the set definition.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf:
        netfilter: nft_dynset: dump expressions when set definition contains no expressions
        netfilter: nft_dynset: add timeout extension to template
        netfilter: nft_dynset: honor stateful expressions in set definition
      ====================
      
      Link: https://lore.kernel.org/r/20210127132512.5472-1-pablo@netfilter.org
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      0f764eec
    • Jakub Kicinski's avatar
      Merge tag 'linux-can-fixes-for-5.11-20210127' of... · 45a81464
      Jakub Kicinski authored
      Merge tag 'linux-can-fixes-for-5.11-20210127' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can
      
      Marc Kleine-Budde says:
      
      ====================
      pull-request: can 2021-01-27
      
      The patch is by Dan Carpenter and fixes a potential information leak in
      can_fill_info().
      
      * tag 'linux-can-fixes-for-5.11-20210127' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can:
        can: dev: prevent potential information leak in can_fill_info()
      ====================
      
      Link: https://lore.kernel.org/r/20210127094028.27787930
      
      -1-mkl@pengutronix.de
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      45a81464
    • Jakub Kicinski's avatar
      MAINTAINERS: add missing header for bonding · b770753c
      Jakub Kicinski authored
      
      
      include/net/bonding.h is missing from bonding entry.
      
      Link: https://lore.kernel.org/r/20210127021844.4071706-1-kuba@kernel.org
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b770753c
    • Jakub Kicinski's avatar
      Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue · 5ae3a25b
      Jakub Kicinski authored
      
      
      Anthony Nguyen says:
      
      ====================
      Intel Wired LAN Driver Updates 2021-01-26
      
      This series contains updates to the ice, i40e, and igc driver.
      
      Henry corrects setting an unspecified protocol to IPPROTO_NONE instead of
      0 for IPv6 flexbytes filters for ice.
      
      Nick fixes the IPv6 extension header being processed incorrectly and
      updates the netdev->dev_addr if it exists in hardware as it may have been
      modified outside the ice driver.
      
      Brett ensures a user cannot request more channels than available LAN MSI-X
      and fixes the minimum allocation logic as it was incorrectly trying to use
      more MSI-X than allocated for ice.
      
      Stefan Assmann minimizes the delay between getting and using the VSI
      pointer to prevent a possible crash for i40e.
      
      Corinna Vinschen fixes link speed advertising for igc.
      
      * '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue:
        igc: fix link speed advertising
        i40e: acquire VSI pointer only after VF is initialized
        ice: Fix MSI-X vector fallback logic
        ice: Don't allow more channels than LAN MSI-X available
        ice: update dev_addr in ice_set_mac_address even if HW filter exists
        ice: Implement flow for IPv6 next header (extension header)
        ice: fix FDir IPv6 flexbyte
      ====================
      
      Link: https://lore.kernel.org/r/20210126221035.658124-1-anthony.l.nguyen@intel.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      5ae3a25b
    • Vadim Fedorenko's avatar
      net: decnet: fix netdev refcount leaking on error path · 3f96d644
      Vadim Fedorenko authored
      
      
      On building the route there is an assumption that the destination
      could be local. In this case loopback_dev is used to get the address.
      If the address is still cannot be retrieved dn_route_output_slow
      returns EADDRNOTAVAIL with loopback_dev reference taken.
      
      Cannot find hash for the fixes tag because this code was introduced
      long time ago. I don't think that this bug has ever fired but the
      patch is done just to have a consistent code base.
      
      Signed-off-by: default avatarVadim Fedorenko <vfedorenko@novek.ru>
      Link: https://lore.kernel.org/r/1611619334-20955-1-git-send-email-vfedorenko@novek.ru
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      3f96d644
    • Rasmus Villemoes's avatar
      net: switchdev: don't set port_obj_info->handled true when -EOPNOTSUPP · 20776b46
      Rasmus Villemoes authored
      It's not true that switchdev_port_obj_notify() only inspects the
      ->handled field of "struct switchdev_notifier_port_obj_info" if
      call_switchdev_blocking_notifiers() returns 0 - there's a WARN_ON()
      triggering for a non-zero return combined with ->handled not being
      true. But the real problem here is that -EOPNOTSUPP is not being
      properly handled.
      
      The wrapper functions switchdev_handle_port_obj_add() et al change a
      return value of -EOPNOTSUPP to 0, and the treatment of ->handled in
      switchdev_port_obj_notify() seems to be designed to change that back
      to -EOPNOTSUPP in case nobody actually acted on the notifier (i.e.,
      everybody returned -EOPNOTSUPP).
      
      Currently, as soon as some device down the stack passes the check_cb()
      check, ->handled gets set to true, which means that
      switchdev_port_obj_notify() cannot actually ever return -EOPNOTSUPP.
      
      This, for example, means that the detection of hardware offload
      support in the MRP code is broken: switchdev_port_obj_add() used by
      br_mrp_switchdev_send_ring_test() always returns 0, so since the MRP
      code thinks the generation of MRP test frames has been offloaded, no
      such frames are actually put on the wire. Similarly,
      br_mrp_switchdev_set_ring_role() also always returns 0, causing
      mrp->ring_role_offloaded to be set to 1.
      
      To fix this, continue to set ->handled true if any callback returns
      success or any error distinct from -EOPNOTSUPP. But if all the
      callbacks return -EOPNOTSUPP, make sure that ->handled stays false, so
      the logic in switchdev_port_obj_notify() can propagate that
      information.
      
      Fixes: 9a9f26e8 ("bridge: mrp: Connect MRP API with the switchdev API")
      Fixes: f30f0601
      
       ("switchdev: Add helpers to aid traversal through lower devices")
      Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarRasmus Villemoes <rasmus.villemoes@prevas.dk>
      Link: https://lore.kernel.org/r/20210125124116.102928-1-rasmus.villemoes@prevas.dk
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      20776b46
    • Linus Torvalds's avatar
      Merge branch 'parisc-5.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 76c057c8
      Linus Torvalds authored
      Pull parisc fixes from Helge Deller:
       "Two small fixes:
      
         - Fix linking error with 64-bit kernel when modules are disabled,
           reported by kernel test robot
      
         - Remove leftover reference to power_tasklet, by Davidlohr Bueso"
      
      * 'parisc-5.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: Enable -mlong-calls gcc option by default when !CONFIG_MODULES
        parisc: Remove leftover reference to the power_tasklet
      76c057c8
  6. Jan 27, 2021
    • Juergen Gross's avatar
      x86/xen: avoid warning in Xen pv guest with CONFIG_AMD_MEM_ENCRYPT enabled · 2e924936
      Juergen Gross authored
      When booting a kernel which has been built with CONFIG_AMD_MEM_ENCRYPT
      enabled as a Xen pv guest a warning is issued for each processor:
      
      [    5.964347] ------------[ cut here ]------------
      [    5.968314] WARNING: CPU: 0 PID: 1 at /home/gross/linux/head/arch/x86/xen/enlighten_pv.c:660 get_trap_addr+0x59/0x90
      [    5.972321] Modules linked in:
      [    5.976313] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W         5.11.0-rc5-default #75
      [    5.980313] Hardware name: Dell Inc. OptiPlex 9020/0PC5F7, BIOS A05 12/05/2013
      [    5.984313] RIP: e030:get_trap_addr+0x59/0x90
      [    5.988313] Code: 42 10 83 f0 01 85 f6 74 04 84 c0 75 1d b8 01 00 00 00 c3 48 3d 00 80 83 82 72 08 48 3d 20 81 83 82 72 0c b8 01 00 00 00 eb db <0f> 0b 31 c0 c3 48 2d 00 80 83 82 48 ba 72 1c c7 71 1c c7 71 1c 48
      [    5.992313] RSP: e02b:ffffc90040033d38 EFLAGS: 00010202
      [    5.996313] RAX: 0000000000000001 RBX: ffffffff82a141d0 RCX: ffffffff8222ec38
      [    6.000312] RDX: ffffffff8222ec38 RSI: 0000000000000005 RDI: ffffc90040033d40
      [    6.004313] RBP: ffff8881003984a0 R08: 0000000000000007 R09: ffff888100398000
      [    6.008312] R10: 0000000000000007 R11: ffffc90040246000 R12: ffff8884082182a8
      [    6.012313] R13: 0000000000000100 R14: 000000000000001d R15: ffff8881003982d0
      [    6.016316] FS:  0000000000000000(0000) GS:ffff888408200000(0000) knlGS:0000000000000000
      [    6.020313] CS:  e030 DS: 0000 ES: 0000 CR0: 0000000080050033
      [    6.024313] CR2: ffffc900020ef000 CR3: 000000000220a000 CR4: 0000000000050660
      [    6.028314] Call Trace:
      [    6.032313]  cvt_gate_to_trap.part.7+0x3f/0x90
      [    6.036313]  ? asm_exc_double_fault+0x30/0x30
      [    6.040313]  xen_convert_trap_info+0x87/0xd0
      [    6.044313]  xen_pv_cpu_up+0x17a/0x450
      [    6.048313]  bringup_cpu+0x2b/0xc0
      [    6.052313]  ? cpus_read_trylock+0x50/0x50
      [    6.056313]  cpuhp_invoke_callback+0x80/0x4c0
      [    6.060313]  _cpu_up+0xa7/0x140
      [    6.064313]  cpu_up+0x98/0xd0
      [    6.068313]  bringup_nonboot_cpus+0x4f/0x60
      [    6.072313]  smp_init+0x26/0x79
      [    6.076313]  kernel_init_freeable+0x103/0x258
      [    6.080313]  ? rest_init+0xd0/0xd0
      [    6.084313]  kernel_init+0xa/0x110
      [    6.088313]  ret_from_fork+0x1f/0x30
      [    6.092313] ---[ end trace be9ecf17dceeb4f3 ]---
      
      Reason is that there is no Xen pv trap entry for X86_TRAP_VC.
      
      Fix that by adding a generic trap handler for unknown traps and wire all
      unknown bare metal handlers to this generic handler, which will just
      crash the system in case such a trap will ever happen.
      
      Fixes: 0786138c
      
       ("x86/sev-es: Add a Runtime #VC Exception Handler")
      Cc: <stable@vger.kernel.org> # v5.10
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Reviewed-by: default avatarAndrew Cooper <andrew.cooper3@citrix.com>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      2e924936
    • Dan Carpenter's avatar
      can: dev: prevent potential information leak in can_fill_info() · b552766c
      Dan Carpenter authored
      The "bec" struct isn't necessarily always initialized. For example, the
      mcp251xfd_get_berr_counter() function doesn't initialize anything if the
      interface is down.
      
      Fixes: 52c793f2
      
       ("can: netlink support for bus-error reporting and counters")
      Link: https://lore.kernel.org/r/YAkaRdRJncsJO8Ve@mwanda
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
      b552766c
    • David Woodhouse's avatar
      xen: Fix XenStore initialisation for XS_LOCAL · 5f46400f
      David Woodhouse authored
      In commit 3499ba81 ("xen: Fix event channel callback via INTX/GSI")
      I reworked the triggering of xenbus_probe().
      
      I tried to simplify things by taking out the workqueue based startup
      triggered from wake_waiting(); the somewhat poorly named xenbus IRQ
      handler.
      
      I missed the fact that in the XS_LOCAL case (Dom0 starting its own
      xenstored or xenstore-stubdom, which happens after the kernel is booted
      completely), that IRQ-based trigger is still actually needed.
      
      So... put it back, except more cleanly. By just spawning a xenbus_probe
      thread which waits on xb_waitq and runs the probe the first time it
      gets woken, just as the workqueue-based hack did.
      
      This is actually a nicer approach for *all* the back ends with different
      interrupt methods, and we can switch them all over to that without the
      complex conditions for when to trigger it. But not in -rc6. This is
      the minimal fix for the regression, although it's a step in the right
      direction instead of doing a partial revert and actually putting the
      workqueue back. It's also simpler than the workqueue.
      
      Fixes: 3499ba81
      
       ("xen: Fix event channel callback via INTX/GSI")
      Reported-by: default avatarJuergen Gross <jgross@suse.com>
      Signed-off-by: default avatarDavid Woodhouse <dwmw@amazon.co.uk>
      Reviewed-by: default avatarJuergen Gross <jgross@suse.com>
      Link: https://lore.kernel.org/r/4c9af052a6e0f6485d1de43f2c38b1461996db99.camel@infradead.org
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      5f46400f