Skip to content
  1. Feb 24, 2021
    • Takeshi Misawa's avatar
      net: qrtr: Fix memory leak in qrtr_tun_open · fc0494ea
      Takeshi Misawa authored
      
      
      If qrtr_endpoint_register() failed, tun is leaked.
      Fix this, by freeing tun in error path.
      
      syzbot report:
      BUG: memory leak
      unreferenced object 0xffff88811848d680 (size 64):
        comm "syz-executor684", pid 10171, jiffies 4294951561 (age 26.070s)
        hex dump (first 32 bytes):
          80 dd 0a 84 ff ff ff ff 00 00 00 00 00 00 00 00  ................
          90 d6 48 18 81 88 ff ff 90 d6 48 18 81 88 ff ff  ..H.......H.....
        backtrace:
          [<0000000018992a50>] kmalloc include/linux/slab.h:552 [inline]
          [<0000000018992a50>] kzalloc include/linux/slab.h:682 [inline]
          [<0000000018992a50>] qrtr_tun_open+0x22/0x90 net/qrtr/tun.c:35
          [<0000000003a453ef>] misc_open+0x19c/0x1e0 drivers/char/misc.c:141
          [<00000000dec38ac8>] chrdev_open+0x10d/0x340 fs/char_dev.c:414
          [<0000000079094996>] do_dentry_open+0x1e6/0x620 fs/open.c:817
          [<000000004096d290>] do_open fs/namei.c:3252 [inline]
          [<000000004096d290>] path_openat+0x74a/0x1b00 fs/namei.c:3369
          [<00000000b8e64241>] do_filp_open+0xa0/0x190 fs/namei.c:3396
          [<00000000a3299422>] do_sys_openat2+0xed/0x230 fs/open.c:1172
          [<000000002c1bdcef>] do_sys_open fs/open.c:1188 [inline]
          [<000000002c1bdcef>] __do_sys_openat fs/open.c:1204 [inline]
          [<000000002c1bdcef>] __se_sys_openat fs/open.c:1199 [inline]
          [<000000002c1bdcef>] __x64_sys_openat+0x7f/0xe0 fs/open.c:1199
          [<00000000f3a5728f>] do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
          [<000000004b38b7ec>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
      
      Fixes: 28fb4e59 ("net: qrtr: Expose tunneling endpoint to user space")
      Reported-by: default avatar <syzbot+5d6e4af21385f5cfc56a@syzkaller.appspotmail.com>
      Signed-off-by: default avatarTakeshi Misawa <jeliantsurux@gmail.com>
      Link: https://lore.kernel.org/r/20210221234427.GA2140@DESKTOP
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      fc0494ea
    • Taehee Yoo's avatar
      vxlan: move debug check after netdev unregister · 92584ddf
      Taehee Yoo authored
      
      
      The debug check must be done after unregister_netdevice_many() call --
      the hlist_del_rcu() for this is done inside .ndo_stop.
      
      This is the same with commit 0fda7600 ("geneve: move debug check after
      netdev unregister")
      
      Test commands:
          ip netns del A
          ip netns add A
          ip netns add B
      
          ip netns exec B ip link add vxlan0 type vxlan vni 100 local 10.0.0.1 \
      	    remote 10.0.0.2 dstport 4789 srcport 4789 4789
          ip netns exec B ip link set vxlan0 netns A
          ip netns exec A ip link set vxlan0 up
          ip netns del B
      
      Splat looks like:
      [   73.176249][    T7] ------------[ cut here ]------------
      [   73.178662][    T7] WARNING: CPU: 4 PID: 7 at drivers/net/vxlan.c:4743 vxlan_exit_batch_net+0x52e/0x720 [vxlan]
      [   73.182597][    T7] Modules linked in: vxlan openvswitch nsh nf_conncount nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 mlx5_core nfp mlxfw ixgbevf tls sch_fq_codel nf_tables nfnetlink ip_tables x_tables unix
      [   73.190113][    T7] CPU: 4 PID: 7 Comm: kworker/u16:0 Not tainted 5.11.0-rc7+ #838
      [   73.193037][    T7] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
      [   73.196986][    T7] Workqueue: netns cleanup_net
      [   73.198946][    T7] RIP: 0010:vxlan_exit_batch_net+0x52e/0x720 [vxlan]
      [   73.201509][    T7] Code: 00 01 00 00 0f 84 39 fd ff ff 48 89 ca 48 c1 ea 03 80 3c 1a 00 0f 85 a6 00 00 00 89 c2 48 83 c2 02 49 8b 14 d4 48 85 d2 74 ce <0f> 0b eb ca e8 b9 51 db dd 84 c0 0f 85 4a fe ff ff 48 c7 c2 80 bc
      [   73.208813][    T7] RSP: 0018:ffff888100907c10 EFLAGS: 00010286
      [   73.211027][    T7] RAX: 000000000000003c RBX: dffffc0000000000 RCX: ffff88800ec411f0
      [   73.213702][    T7] RDX: ffff88800a278000 RSI: ffff88800fc78c70 RDI: ffff88800fc78070
      [   73.216169][    T7] RBP: ffff88800b5cbdc0 R08: fffffbfff424de61 R09: fffffbfff424de61
      [   73.218463][    T7] R10: ffffffffa126f307 R11: fffffbfff424de60 R12: ffff88800ec41000
      [   73.220794][    T7] R13: ffff888100907d08 R14: ffff888100907c50 R15: ffff88800fc78c40
      [   73.223337][    T7] FS:  0000000000000000(0000) GS:ffff888114800000(0000) knlGS:0000000000000000
      [   73.225814][    T7] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [   73.227616][    T7] CR2: 0000562b5cb4f4d0 CR3: 0000000105fbe001 CR4: 00000000003706e0
      [   73.229700][    T7] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [   73.231820][    T7] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      [   73.233844][    T7] Call Trace:
      [   73.234698][    T7]  ? vxlan_err_lookup+0x3c0/0x3c0 [vxlan]
      [   73.235962][    T7]  ? ops_exit_list.isra.11+0x93/0x140
      [   73.237134][    T7]  cleanup_net+0x45e/0x8a0
      [ ... ]
      
      Fixes: 57b61127 ("vxlan: speedup vxlan tunnels dismantle")
      Signed-off-by: default avatarTaehee Yoo <ap420073@gmail.com>
      Link: https://lore.kernel.org/r/20210221154552.11749-1-ap420073@gmail.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      92584ddf
    • Jakub Kicinski's avatar
      Merge branch 'r8152-minor-adjustments' · 2c8396de
      Jakub Kicinski authored
      Hayes Wang says:
      
      ====================
      r8152: minor adjustments
      
      These patches are used to adjust the code.
      ====================
      
      Link: https://lore.kernel.org/r/1394712342-15778-341-Taiwan-albertk@realtek.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      2c8396de
    • Hayes Wang's avatar
      r8152: spilt rtl_set_eee_plus and r8153b_green_en · 40fa7568
      Hayes Wang authored
      
      
      Add rtl_eee_plus_en() and rtl_green_en().
      
      Signed-off-by: default avatarHayes Wang <hayeswang@realtek.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      40fa7568
    • Hayes Wang's avatar
      r8152: replace netif_err with dev_err · 156c3207
      Hayes Wang authored
      
      
      Some messages are before calling register_netdev(), so replace
      netif_err() with dev_err().
      
      Signed-off-by: default avatarHayes Wang <hayeswang@realtek.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      156c3207
    • Hayes Wang's avatar
      r8152: check if the pointer of the function exists · c79515e4
      Hayes Wang authored
      
      
      Return error code if autosuspend_en, eee_get, or eee_set don't exist.
      
      Signed-off-by: default avatarHayes Wang <hayeswang@realtek.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      c79515e4
    • Hayes Wang's avatar
      r8152: enable U1/U2 for USB_SPEED_SUPER · 7a0ae61a
      Hayes Wang authored
      
      
      U1/U2 shoued be enabled for USB 3.0 or later. The USB 2.0 doesn't
      support it.
      
      Signed-off-by: default avatarHayes Wang <hayeswang@realtek.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      7a0ae61a
    • wenxu's avatar
      net/sched: cls_flower: validate ct_state for invalid and reply flags · 3aed8b63
      wenxu authored
      
      
      Add invalid and reply flags validate in the fl_validate_ct_state.
      This makes the checking complete if compared to ovs'
      validate_ct_state().
      
      Signed-off-by: default avatarwenxu <wenxu@ucloud.cn>
      Reviewed-by: default avatarMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Link: https://lore.kernel.org/r/1614064315-364-1-git-send-email-wenxu@ucloud.cn
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      3aed8b63
    • Jakub Kicinski's avatar
      Merge branch 'net-dsa-learning-fixes-for-b53-bcm_sf2' · f3f9be9c
      Jakub Kicinski authored
      Florian Fainelli says:
      
      ====================
      net: dsa: Learning fixes for b53/bcm_sf2
      
      This patch series contains a couple of fixes for the b53/bcm_sf2 drivers
      with respect to configuring learning.
      
      The first patch is wiring-up the necessary dsa_switch_ops operations in
      order to support the offloading of bridge flags.
      
      The second patch corrects the switch driver's default learning behavior
      which was unfortunately wrong from day one.
      
      This is submitted against "net" because this is technically a bug fix
      since ports should not have had learning enabled by default but given
      this is dependent upon Vladimir's recent br_flags series, there is no
      Fixes tag provided.
      
      I will be providing targeted stable backports that look a bit
      different.
      
      Changes in v2:
      
      - added first patch
      - updated second patch to include BR_LEARNING check in br_flags_pre as
        a support bridge flag to offload
      ====================
      
      Link: https://lore.kernel.org/r/20210222223010.2907234-1-f.fainelli@gmail.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      f3f9be9c
    • Florian Fainelli's avatar
      net: dsa: b53: Support setting learning on port · f9b3827e
      Florian Fainelli authored
      
      
      Add support for being able to set the learning attribute on port, and
      make sure that the standalone ports start up with learning disabled.
      
      We can remove the code in bcm_sf2 that configured the ports learning
      attribute because we want the standalone ports to have learning disabled
      by default and port 7 cannot be bridged, so its learning attribute will
      not change past its initial configuration.
      
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Reviewed-by: default avatarVladimir Oltean <olteanv@gmail.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      f9b3827e
    • Florian Fainelli's avatar
      net: dsa: bcm_sf2: Wire-up br_flags_pre, br_flags and set_mrouter · e6dd86ed
      Florian Fainelli authored
      
      
      Because bcm_sf2 implements its own dsa_switch_ops we need to export the
      b53_br_flags_pre(), b53_br_flags() and b53_set_mrouter so we can wire-up
      them up like they used to be with the former b53_br_egress_floods().
      
      Fixes: a8b659e7 ("net: dsa: act as passthrough for bridge port flags")
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Reviewed-by: default avatarVladimir Oltean <olteanv@gmail.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      e6dd86ed
    • Krzysztof Halasa's avatar
      Marvell Sky2 Ethernet adapter: fix warning messages. · 18755e27
      Krzysztof Halasa authored
      
      
      sky2.c driver uses netdev_warn() before the net device is initialized.
      Fix it by using dev_warn() instead.
      
      Signed-off-by: default avatarKrzysztof Halasa <khalasa@piap.pl>
      
      Link: https://lore.kernel.org/r/m3a6s1r1ul.fsf@t19.piap.pl
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      18755e27
    • Sieng Piaw Liew's avatar
      bcm63xx_enet: fix sporadic kernel panic · 9bc1ef64
      Sieng Piaw Liew authored
      
      
      In ndo_stop functions, netdev_completed_queue() is called during forced
      tx reclaim, after netdev_reset_queue(). This may trigger kernel panic if
      there is any tx skb left.
      
      This patch moves netdev_reset_queue() to after tx reclaim, so BQL can
      complete successfully then reset.
      
      Signed-off-by: default avatarSieng Piaw Liew <liew.s.piaw@gmail.com>
      Fixes: 4c59b0f5 ("bcm63xx_enet: add BQL support")
      Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Link: https://lore.kernel.org/r/20210222013530.1356-1-liew.s.piaw@gmail.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      9bc1ef64
    • Jason A. Donenfeld's avatar
      net: icmp: pass zeroed opts from icmp{,v6}_ndo_send before sending · ee576c47
      Jason A. Donenfeld authored
      
      
      The icmp{,v6}_send functions make all sorts of use of skb->cb, casting
      it with IPCB or IP6CB, assuming the skb to have come directly from the
      inet layer. But when the packet comes from the ndo layer, especially
      when forwarded, there's no telling what might be in skb->cb at that
      point. As a result, the icmp sending code risks reading bogus memory
      contents, which can result in nasty stack overflows such as this one
      reported by a user:
      
          panic+0x108/0x2ea
          __stack_chk_fail+0x14/0x20
          __icmp_send+0x5bd/0x5c0
          icmp_ndo_send+0x148/0x160
      
      In icmp_send, skb->cb is cast with IPCB and an ip_options struct is read
      from it. The optlen parameter there is of particular note, as it can
      induce writes beyond bounds. There are quite a few ways that can happen
      in __ip_options_echo. For example:
      
          // sptr/skb are attacker-controlled skb bytes
          sptr = skb_network_header(skb);
          // dptr/dopt points to stack memory allocated by __icmp_send
          dptr = dopt->__data;
          // sopt is the corrupt skb->cb in question
          if (sopt->rr) {
              optlen  = sptr[sopt->rr+1]; // corrupt skb->cb + skb->data
              soffset = sptr[sopt->rr+2]; // corrupt skb->cb + skb->data
      	// this now writes potentially attacker-controlled data, over
      	// flowing the stack:
              memcpy(dptr, sptr+sopt->rr, optlen);
          }
      
      In the icmpv6_send case, the story is similar, but not as dire, as only
      IP6CB(skb)->iif and IP6CB(skb)->dsthao are used. The dsthao case is
      worse than the iif case, but it is passed to ipv6_find_tlv, which does
      a bit of bounds checking on the value.
      
      This is easy to simulate by doing a `memset(skb->cb, 0x41,
      sizeof(skb->cb));` before calling icmp{,v6}_ndo_send, and it's only by
      good fortune and the rarity of icmp sending from that context that we've
      avoided reports like this until now. For example, in KASAN:
      
          BUG: KASAN: stack-out-of-bounds in __ip_options_echo+0xa0e/0x12b0
          Write of size 38 at addr ffff888006f1f80e by task ping/89
          CPU: 2 PID: 89 Comm: ping Not tainted 5.10.0-rc7-debug+ #5
          Call Trace:
           dump_stack+0x9a/0xcc
           print_address_description.constprop.0+0x1a/0x160
           __kasan_report.cold+0x20/0x38
           kasan_report+0x32/0x40
           check_memory_region+0x145/0x1a0
           memcpy+0x39/0x60
           __ip_options_echo+0xa0e/0x12b0
           __icmp_send+0x744/0x1700
      
      Actually, out of the 4 drivers that do this, only gtp zeroed the cb for
      the v4 case, while the rest did not. So this commit actually removes the
      gtp-specific zeroing, while putting the code where it belongs in the
      shared infrastructure of icmp{,v6}_ndo_send.
      
      This commit fixes the issue by passing an empty IPCB or IP6CB along to
      the functions that actually do the work. For the icmp_send, this was
      already trivial, thanks to __icmp_send providing the plumbing function.
      For icmpv6_send, this required a tiny bit of refactoring to make it
      behave like the v4 case, after which it was straight forward.
      
      Fixes: a2b78e9b ("sunvnet: generate ICMP PTMUD messages for smaller port MTUs")
      Reported-by: default avatarSinYu <liuxyon@gmail.com>
      Reviewed-by: default avatarWillem de Bruijn <willemb@google.com>
      Link: https://lore.kernel.org/netdev/CAF=yD-LOF116aHub6RMe8vB8ZpnrrnoTdqhobEx+bvoA8AsP0w@mail.gmail.com/T/
      
      
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      Link: https://lore.kernel.org/r/20210223131858.72082-1-Jason@zx2c4.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      ee576c47
  2. Feb 23, 2021
  3. Feb 22, 2021
    • Dan Carpenter's avatar
      octeontx2-af: Fix an off by one in rvu_dbg_qsize_write() · 3a2eb515
      Dan Carpenter authored
      
      
      This code does not allocate enough memory for the NUL terminator so it
      ends up putting it one character beyond the end of the buffer.
      
      Fixes: 8756828a ("octeontx2-af: Add NPA aura and pool contexts to debugfs")
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3a2eb515
    • Linus Torvalds's avatar
      Merge tag 'perf-core-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d310ec03
      Linus Torvalds authored
      Pull performance event updates from Ingo Molnar:
      
       - Add CPU-PMU support for Intel Sapphire Rapids CPUs
      
       - Extend the perf ABI with PERF_SAMPLE_WEIGHT_STRUCT, to offer
         two-parameter sampling event feedback. Not used yet, but is intended
         for Golden Cove CPU-PMU, which can provide both the instruction
         latency and the cache latency information for memory profiling
         events.
      
       - Remove experimental, default-disabled perfmon-v4 counter_freezing
         support that could only be enabled via a boot option. The hardware is
         hopelessly broken, we'd like to make sure nobody starts relying on
         this, as it would only end in tears.
      
       - Fix energy/power events on Intel SPR platforms
      
       - Simplify the uprobes resume_execution() logic
      
       - Misc smaller fixes.
      
      * tag 'perf-core-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/rapl: Fix psys-energy event on Intel SPR platform
        perf/x86/rapl: Only check lower 32bits for RAPL energy counters
        perf/x86/rapl: Add msr mask support
        perf/x86/kvm: Add Cascade Lake Xeon steppings to isolation_ucodes[]
        perf/x86/intel: Support CPUID 10.ECX to disable fixed counters
        perf/x86/intel: Add perf core PMU support for Sapphire Rapids
        perf/x86/intel: Filter unsupported Topdown metrics event
        perf/x86/intel: Factor out intel_update_topdown_event()
        perf/core: Add PERF_SAMPLE_WEIGHT_STRUCT
        perf/intel: Remove Perfmon-v4 counter_freezing support
        x86/perf: Use static_call for x86_pmu.guest_get_msrs
        perf/x86/intel/uncore: With > 8 nodes, get pci bus die id from NUMA info
        perf/x86/intel/uncore: Store the logical die id instead of the physical die id.
        x86/kprobes: Do not decode opcode in resume_execution()
      d310ec03
    • Linus Torvalds's avatar
      Merge tag 'sched-core-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 657bd90c
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
       "Core scheduler updates:
      
         - Add CONFIG_PREEMPT_DYNAMIC: this in its current form adds the
           preempt=none/voluntary/full boot options (default: full), to allow
           distros to build a PREEMPT kernel but fall back to close to
           PREEMPT_VOLUNTARY (or PREEMPT_NONE) runtime scheduling behavior via
           a boot time selection.
      
           There's also the /debug/sched_debug switch to do this runtime.
      
           This feature is implemented via runtime patching (a new variant of
           static calls).
      
           The scope of the runtime patching can be best reviewed by looking
           at the sched_dynamic_update() function in kernel/sched/core.c.
      
           ( Note that the dynamic none/voluntary mode isn't 100% identical,
             for example preempt-RCU is available in all cases, plus the
             preempt count is maintained in all models, which has runtime
             overhead even with the code patching. )
      
           The PREEMPT_VOLUNTARY/PREEMPT_NONE models, used by the vast
           majority of distributions, are supposed to be unaffected.
      
         - Fix ignored rescheduling after rcu_eqs_enter(). This is a bug that
           was found via rcutorture triggering a hang. The bug is that
           rcu_idle_enter() may wake up a NOCB kthread, but this happens after
           the last generic need_resched() check. Some cpuidle drivers fix it
           by chance but many others don't.
      
           In true 2020 fashion the original bug fix has grown into a 5-patch
           scheduler/RCU fix series plus another 16 RCU patches to address the
           underlying issue of missed preemption events. These are the initial
           fixes that should fix current incarnations of the bug.
      
         - Clean up rbtree usage in the scheduler, by providing & using the
           following consistent set of rbtree APIs:
      
             partial-order; less() based:
               - rb_add(): add a new entry to the rbtree
               - rb_add_cached(): like rb_add(), but for a rb_root_cached
      
             total-order; cmp() based:
               - rb_find(): find an entry in an rbtree
               - rb_find_add(): find an entry, and add if not found
      
               - rb_find_first(): find the first (leftmost) matching entry
               - rb_next_match(): continue from rb_find_first()
               - rb_for_each(): iterate a sub-tree using the previous two
      
         - Improve the SMP/NUMA load-balancer: scan for an idle sibling in a
           single pass. This is a 4-commit series where each commit improves
           one aspect of the idle sibling scan logic.
      
         - Improve the cpufreq cooling driver by getting the effective CPU
           utilization metrics from the scheduler
      
         - Improve the fair scheduler's active load-balancing logic by
           reducing the number of active LB attempts & lengthen the
           load-balancing interval. This improves stress-ng mmapfork
           performance.
      
         - Fix CFS's estimated utilization (util_est) calculation bug that can
           result in too high utilization values
      
        Misc updates & fixes:
      
         - Fix the HRTICK reprogramming & optimization feature
      
         - Fix SCHED_SOFTIRQ raising race & warning in the CPU offlining code
      
         - Reduce dl_add_task_root_domain() overhead
      
         - Fix uprobes refcount bug
      
         - Process pending softirqs in flush_smp_call_function_from_idle()
      
         - Clean up task priority related defines, remove *USER_*PRIO and
           USER_PRIO()
      
         - Simplify the sched_init_numa() deduplication sort
      
         - Documentation updates
      
         - Fix EAS bug in update_misfit_status(), which degraded the quality
           of energy-balancing
      
         - Smaller cleanups"
      
      * tag 'sched-core-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (51 commits)
        sched,x86: Allow !PREEMPT_DYNAMIC
        entry/kvm: Explicitly flush pending rcuog wakeup before last rescheduling point
        entry: Explicitly flush pending rcuog wakeup before last rescheduling point
        rcu/nocb: Trigger self-IPI on late deferred wake up before user resume
        rcu/nocb: Perform deferred wake up before last idle's need_resched() check
        rcu: Pull deferred rcuog wake up to rcu_eqs_enter() callers
        sched/features: Distinguish between NORMAL and DEADLINE hrtick
        sched/features: Fix hrtick reprogramming
        sched/deadline: Reduce rq lock contention in dl_add_task_root_domain()
        uprobes: (Re)add missing get_uprobe() in __find_uprobe()
        smp: Process pending softirqs in flush_smp_call_function_from_idle()
        sched: Harden PREEMPT_DYNAMIC
        static_call: Allow module use without exposing static_call_key
        sched: Add /debug/sched_preempt
        preempt/dynamic: Support dynamic preempt with preempt= boot option
        preempt/dynamic: Provide irqentry_exit_cond_resched() static call
        preempt/dynamic: Provide preempt_schedule[_notrace]() static calls
        preempt/dynamic: Provide cond_resched() and might_resched() static calls
        preempt: Introduce CONFIG_PREEMPT_DYNAMIC
        static_call: Provide DEFINE_STATIC_CALL_RET0()
        ...
      657bd90c
    • Linus Torvalds's avatar
      Merge tag 'core-mm-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7b15c27e
      Linus Torvalds authored
      Pull tlb gather updates from Ingo Molnar:
       "Theses fix MM (soft-)dirty bit management in the procfs code & clean
        up the TLB gather API"
      
      * tag 'core-mm-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/ldt: Use tlb_gather_mmu_fullmm() when freeing LDT page-tables
        tlb: arch: Remove empty __tlb_remove_tlb_entry() stubs
        tlb: mmu_gather: Remove start/end arguments from tlb_gather_mmu()
        tlb: mmu_gather: Introduce tlb_gather_mmu_fullmm()
        tlb: mmu_gather: Remove unused start/end arguments from tlb_finish_mmu()
        mm: proc: Invalidate TLB after clearing soft-dirty page state
      7b15c27e
    • Linus Torvalds's avatar
      Merge tag 'locking-core-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9eef0233
      Linus Torvalds authored
      Pull locking updates from Ingo Molnar:
       "Core locking primitives updates:
          - Remove mutex_trylock_recursive() from the API - no users left
          - Simplify + constify the futex code a bit
      
        Lockdep updates:
          - Teach lockdep about local_lock_t
          - Add CONFIG_DEBUG_IRQFLAGS=y debug config option to check for
            potentially unsafe IRQ mask restoration patterns. (I.e.
            calling raw_local_irq_restore() with IRQs enabled.)
          - Add wait context self-tests
          - Fix graph lock corner case corrupting internal data structures
          - Fix noinstr annotations
      
        LKMM updates:
          - Simplify the litmus tests
          - Documentation fixes
      
        KCSAN updates:
          - Re-enable KCSAN instrumentation in lib/random32.c
      
        Misc fixes:
          - Don't branch-trace static label APIs
          - DocBook fix
          - Remove stale leftover empty file"
      
      * tag 'locking-core-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
        checkpatch: Don't check for mutex_trylock_recursive()
        locking/mutex: Kill mutex_trylock_recursive()
        s390: Use arch_local_irq_{save,restore}() in early boot code
        lockdep: Noinstr annotate warn_bogus_irq_restore()
        locking/lockdep: Avoid unmatched unlock
        locking/rwsem: Remove empty rwsem.h
        locking/rtmutex: Add missing kernel-doc markup
        futex: Remove unneeded gotos
        futex: Change utime parameter to be 'const ... *'
        lockdep: report broken irq restoration
        jump_label: Do not profile branch annotations
        locking: Add Reviewers
        locking/selftests: Add local_lock inversion tests
        locking/lockdep: Exclude local_lock_t from IRQ inversions
        locking/lockdep: Clean up check_redundant() a bit
        locking/lockdep: Add a skip() function to __bfs()
        locking/lockdep: Mark local_lock_t
        locking/selftests: More granular debug_locks_verbose
        lockdep/selftest: Add wait context selftests
        tools/memory-model: Fix typo in klitmus7 compatibility table
        ...
      9eef0233
    • Linus Torvalds's avatar
      Merge tag 'core-rcu-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d089f48f
      Linus Torvalds authored
      Pull RCU updates from Ingo Molnar:
       "These are the latest RCU updates for v5.12:
      
         - Documentation updates.
      
         - Miscellaneous fixes.
      
         - kfree_rcu() updates: Addition of mem_dump_obj() to provide
           allocator return addresses to more easily locate bugs. This has a
           couple of RCU-related commits, but is mostly MM. Was pulled in with
           akpm's agreement.
      
         - Per-callback-batch tracking of numbers of callbacks, which enables
           better debugging information and smarter reactions to large numbers
           of callbacks.
      
         - The first round of changes to allow CPUs to be runtime switched
           from and to callback-offloaded state.
      
         - CONFIG_PREEMPT_RT-related changes.
      
         - RCU CPU stall warning updates.
      
         - Addition of polling grace-period APIs for SRCU.
      
         - Torture-test and torture-test scripting updates, including a
           "torture everything" script that runs rcutorture, locktorture,
           scftorture, rcuscale, and refscale. Plus does an allmodconfig
           build.
      
         - nolibc fixes for the torture tests"
      
      * tag 'core-rcu-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (130 commits)
        percpu_ref: Dump mem_dump_obj() info upon reference-count underflow
        rcu: Make call_rcu() print mem_dump_obj() info for double-freed callback
        mm: Make mem_obj_dump() vmalloc() dumps include start and length
        mm: Make mem_dump_obj() handle vmalloc() memory
        mm: Make mem_dump_obj() handle NULL and zero-sized pointers
        mm: Add mem_dump_obj() to print source of memory block
        tools/rcutorture: Fix position of -lgcc in mkinitrd.sh
        tools/nolibc: Fix position of -lgcc in the documented example
        tools/nolibc: Emit detailed error for missing alternate syscall number definitions
        tools/nolibc: Remove incorrect definitions of __ARCH_WANT_*
        tools/nolibc: Get timeval, timespec and timezone from linux/time.h
        tools/nolibc: Implement poll() based on ppoll()
        tools/nolibc: Implement fork() based on clone()
        tools/nolibc: Make getpgrp() fall back to getpgid(0)
        tools/nolibc: Make dup2() rely on dup3() when available
        tools/nolibc: Add the definition for dup()
        rcutorture: Add rcutree.use_softirq=0 to RUDE01 and TASKS01
        torture: Maintain torture-specific set of CPUs-online books
        torture: Clean up after torture-test CPU hotplugging
        rcutorture: Make object_debug also double call_rcu() heap object
        ...
      d089f48f
    • Linus Torvalds's avatar
      Merge tag 'timers-core-2021-02-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3f6ec19f
      Linus Torvalds authored
      Pull timer updates from Thomas Gleixner:
       "Time and timer updates:
      
         - Instead of new drivers remove tango, sirf, u300 and atlas drivers
      
         - Add suspend/resume support for microchip pit64b
      
         - The usual fixes, improvements and cleanups here and there"
      
      * tag 'timers-core-2021-02-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        timens: Delete no-op time_ns_init()
        alarmtimer: Update kerneldoc
        clocksource/drivers/timer-microchip-pit64b: Add clocksource suspend/resume
        clocksource/drivers/prima: Remove sirf prima driver
        clocksource/drivers/atlas: Remove sirf atlas driver
        clocksource/drivers/tango: Remove tango driver
        clocksource/drivers/u300: Remove the u300 driver
        dt-bindings: timer: nuvoton: Clarify that interrupt of timer 0 should be specified
        clocksource/drivers/davinci: Move pr_fmt() before the includes
        clocksource/drivers/efm32: Drop unused timer code
      3f6ec19f
    • Linus Torvalds's avatar
      Merge tag 'irq-core-2021-02-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b5183bc9
      Linus Torvalds authored
      Pull irq updates from Thomas Gleixner:
       "Updates for the irq subsystem:
      
         - The usual new irq chip driver (Realtek RTL83xx)
      
         - Removal of sirfsoc and tango irq chip drivers
      
         - Conversion of the sun6i chip support to hierarchical irq domains
      
         - The usual fixes, improvements and cleanups all over the place"
      
      * tag 'irq-core-2021-02-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/imx: IMX_INTMUX should not default to y, unconditionally
        irqchip/loongson-pch-msi: Use bitmap_zalloc() to allocate bitmap
        irqchip/csky-mpintc: Prevent selection on unsupported platforms
        irqchip: Add support for Realtek RTL838x/RTL839x interrupt controller
        dt-bindings: interrupt-controller: Add Realtek RTL838x/RTL839x support
        irqchip/ls-extirq: add IRQCHIP_SKIP_SET_WAKE to the irqchip flags
        genirq: Use new tasklet API for resend_tasklet
        dt-bindings: qcom,pdc: Add compatible for SM8350
        dt-bindings: qcom,pdc: Add compatible for SM8250
        irqchip/sun6i-r: Add wakeup support
        irqchip/sun6i-r: Use a stacked irqchip driver
        dt-bindings: irq: sun6i-r: Add a compatible for the H3
        dt-bindings: irq: sun6i-r: Split the binding from sun7i-nmi
        irqchip/gic-v3: Fix typos in PMR/RPR SCR_EL3.FIQ handling explanation
        irqchip: Remove sirfsoc driver
        irqchip: Remove sigma tango driver
      b5183bc9
    • Linus Torvalds's avatar
      Merge tag 'for-5.12/io_uring-2021-02-17' of git://git.kernel.dk/linux-block · 5bbb336b
      Linus Torvalds authored
      Pull io_uring updates from Jens Axboe:
       "Highlights from this cycles are things like request recycling and
        task_work optimizations, which net us anywhere from 10-20% of speedups
        on workloads that mostly are inline.
      
        This work was originally done to put io_uring under memcg, which adds
        considerable overhead. But it's a really nice win as well. Also worth
        highlighting is the LOOKUP_CACHED work in the VFS, and using it in
        io_uring. Greatly speeds up the fast path for file opens.
      
        Summary:
      
         - Put io_uring under memcg protection. We accounted just the rings
           themselves under rlimit memlock before, now we account everything.
      
         - Request cache recycling, persistent across invocations (Pavel, me)
      
         - First part of a cleanup/improvement to buffer registration (Bijan)
      
         - SQPOLL fixes (Hao)
      
         - File registration NULL pointer fixup (Dan)
      
         - LOOKUP_CACHED support for io_uring
      
         - Disable /proc/thread-self/ for io_uring, like we do for /proc/self
      
         - Add Pavel to the io_uring MAINTAINERS entry
      
         - Tons of code cleanups and optimizations (Pavel)
      
         - Support for skip entries in file registration (Noah)"
      
      * tag 'for-5.12/io_uring-2021-02-17' of git://git.kernel.dk/linux-block: (103 commits)
        io_uring: tctx->task_lock should be IRQ safe
        proc: don't allow async path resolution of /proc/thread-self components
        io_uring: kill cached requests from exiting task closing the ring
        io_uring: add helper to free all request caches
        io_uring: allow task match to be passed to io_req_cache_free()
        io-wq: clear out worker ->fs and ->files
        io_uring: optimise io_init_req() flags setting
        io_uring: clean io_req_find_next() fast check
        io_uring: don't check PF_EXITING from syscall
        io_uring: don't split out consume out of SQE get
        io_uring: save ctx put/get for task_work submit
        io_uring: don't duplicate io_req_task_queue()
        io_uring: optimise SQPOLL mm/files grabbing
        io_uring: optimise out unlikely link queue
        io_uring: take compl state from submit state
        io_uring: inline io_complete_rw_common()
        io_uring: move res check out of io_rw_reissue()
        io_uring: simplify iopoll reissuing
        io_uring: clean up io_req_free_batch_finish()
        io_uring: move submit side state closer in the ring
        ...
      5bbb336b
    • Linus Torvalds's avatar
      Merge tag 'for-5.12/drivers-2021-02-17' of git://git.kernel.dk/linux-block · 9820b4dc
      Linus Torvalds authored
      Pull block driver updates from Jens Axboe:
      
       - Remove the skd driver. It's been EOL for a long time (Damien)
      
       - NVMe pull requests
            - fix multipath handling of ->queue_rq errors (Chao Leng)
            - nvmet cleanups (Chaitanya Kulkarni)
            - add a quirk for buggy Amazon controller (Filippo Sironi)
            - avoid devm allocations in nvme-hwmon that don't interact well
              with fabrics (Hannes Reinecke)
            - sysfs cleanups (Jiapeng Chong)
            - fix nr_zones for multipath (Keith Busch)
            - nvme-tcp crash fix for no-data commands (Sagi Grimberg)
            - nvmet-tcp fixes (Sagi Grimberg)
            - add a missing __rcu annotation (Christoph)
            - failed reconnect fixes (Chao Leng)
            - various tracing improvements (Michal Krakowiak, Johannes
              Thumshirn)
            - switch the nvmet-fc assoc_list to use RCU protection (Leonid
              Ravich)
            - resync the status codes with the latest spec (Max Gurtovoy)
            - minor nvme-tcp improvements (Sagi Grimberg)
            - various cleanups (Rikard Falkeborn, Minwoo Im, Chaitanya
              Kulkarni, Israel Rukshin)
      
       - Floppy O_NDELAY fix (Denis)
      
       - MD pull request
            - raid5 chunk_sectors fix (Guoqing)
      
       - Use lore links (Kees)
      
       - Use DEFINE_SHOW_ATTRIBUTE for nbd (Liao)
      
       - loop lock scaling (Pavel)
      
       - mtip32xx PCI fixes (Bjorn)
      
       - bcache fixes (Kai, Dongdong)
      
       - Misc fixes (Tian, Yang, Guoqing, Joe, Andy)
      
      * tag 'for-5.12/drivers-2021-02-17' of git://git.kernel.dk/linux-block: (64 commits)
        lightnvm: pblk: Replace guid_copy() with export_guid()/import_guid()
        lightnvm: fix unnecessary NULL check warnings
        nvme-tcp: fix crash triggered with a dataless request submission
        block: Replace lkml.org links with lore
        nbd: Convert to DEFINE_SHOW_ATTRIBUTE
        nvme: add 48-bit DMA address quirk for Amazon NVMe controllers
        nvme-hwmon: rework to avoid devm allocation
        nvmet: remove else at the end of the function
        nvmet: add nvmet_req_subsys() helper
        nvmet: use min of device_path and disk len
        nvmet: use invalid cmd opcode helper
        nvmet: use invalid cmd opcode helper
        nvmet: add helper to report invalid opcode
        nvmet: remove extra variable in id-ns handler
        nvmet: make nvmet_find_namespace() req based
        nvmet: return uniform error for invalid ns
        nvmet: set status to 0 in case for invalid nsid
        nvmet-fc: add a missing __rcu annotation to nvmet_fc_tgt_assoc.queues
        nvme-multipath: set nr_zones for zoned namespaces
        nvmet-tcp: fix potential race of tcp socket closing accept_work
        ...
      9820b4dc
    • Linus Torvalds's avatar
      Merge tag 'for-5.12/block-2021-02-17' of git://git.kernel.dk/linux-block · 582cd91f
      Linus Torvalds authored
      Pull core block updates from Jens Axboe:
       "Another nice round of removing more code than what is added, mostly
        due to Christoph's relentless pursuit of tech debt removal/cleanups.
        This pull request contains:
      
         - Two series of BFQ improvements (Paolo, Jan, Jia)
      
         - Block iov_iter improvements (Pavel)
      
         - bsg error path fix (Pan)
      
         - blk-mq scheduler improvements (Jan)
      
         - -EBUSY discard fix (Jan)
      
         - bvec allocation improvements (Ming, Christoph)
      
         - bio allocation and init improvements (Christoph)
      
         - Store bdev pointer in bio instead of gendisk + partno (Christoph)
      
         - Block trace point cleanups (Christoph)
      
         - hard read-only vs read-only split (Christoph)
      
         - Block based swap cleanups (Christoph)
      
         - Zoned write granularity support (Damien)
      
         - Various fixes/tweaks (Chunguang, Guoqing, Lei, Lukas, Huhai)"
      
      * tag 'for-5.12/block-2021-02-17' of git://git.kernel.dk/linux-block: (104 commits)
        mm: simplify swapdev_block
        sd_zbc: clear zone resources for non-zoned case
        block: introduce blk_queue_clear_zone_settings()
        zonefs: use zone write granularity as block size
        block: introduce zone_write_granularity limit
        block: use blk_queue_set_zoned in add_partition()
        nullb: use blk_queue_set_zoned() to setup zoned devices
        nvme: cleanup zone information initialization
        block: document zone_append_max_bytes attribute
        block: use bi_max_vecs to find the bvec pool
        md/raid10: remove dead code in reshape_request
        block: mark the bio as cloned in bio_iov_bvec_set
        block: set BIO_NO_PAGE_REF in bio_iov_bvec_set
        block: remove a layer of indentation in bio_iov_iter_get_pages
        block: turn the nr_iovecs argument to bio_alloc* into an unsigned short
        block: remove the 1 and 4 vec bvec_slabs entries
        block: streamline bvec_alloc
        block: factor out a bvec_alloc_gfp helper
        block: move struct biovec_slab to bio.c
        block: reuse BIO_INLINE_VECS for integrity bvecs
        ...
      582cd91f
    • Linus Torvalds's avatar
      Merge tag 'for-5.12/libata-2021-02-17' of git://git.kernel.dk/linux-block · bd018bba
      Linus Torvalds authored
      Pull libata updates from Jens Axboe:
       "Regulartors management addition from Florian, and a trivial change to
        avoid comma separated statements from Joe"
      
      * tag 'for-5.12/libata-2021-02-17' of git://git.kernel.dk/linux-block:
        ata: Avoid comma separated statements
        ata: ahci_brcm: Add back regulators management
      bd018bba
    • Linus Torvalds's avatar
      Merge tag 'oprofile-removal-5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/linux · 24880bef
      Linus Torvalds authored
      Pull oprofile and dcookies removal from Viresh Kumar:
       "Remove oprofile and dcookies support
      
        The 'oprofile' user-space tools don't use the kernel OPROFILE support
        any more, and haven't in a long time. User-space has been converted to
        the perf interfaces.
      
        The dcookies stuff is only used by the oprofile code. Now that
        oprofile's support is getting removed from the kernel, there is no
        need for dcookies as well.
      
        Remove kernel's old oprofile and dcookies support"
      
      * tag 'oprofile-removal-5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/linux:
        fs: Remove dcookies support
        drivers: Remove CONFIG_OPROFILE support
        arch: xtensa: Remove CONFIG_OPROFILE support
        arch: x86: Remove CONFIG_OPROFILE support
        arch: sparc: Remove CONFIG_OPROFILE support
        arch: sh: Remove CONFIG_OPROFILE support
        arch: s390: Remove CONFIG_OPROFILE support
        arch: powerpc: Remove oprofile
        arch: powerpc: Stop building and using oprofile
        arch: parisc: Remove CONFIG_OPROFILE support
        arch: mips: Remove CONFIG_OPROFILE support
        arch: microblaze: Remove CONFIG_OPROFILE support
        arch: ia64: Remove rest of perfmon support
        arch: ia64: Remove CONFIG_OPROFILE support
        arch: hexagon: Don't select HAVE_OPROFILE
        arch: arc: Remove CONFIG_OPROFILE support
        arch: arm: Remove CONFIG_OPROFILE support
        arch: alpha: Remove CONFIG_OPROFILE support
      24880bef