Skip to content
  1. Jul 18, 2022
    • Sander Vanheule's avatar
      lib/test: introduce cpumask KUnit test suite · c41e8866
      Sander Vanheule authored
      
      
      Add a basic suite of tests for cpumask, providing some tests for empty and
      completely filled cpumasks.
      
      Link: https://lkml.kernel.org/r/c96980ec35c3bd23f17c3374bf42c22971545e85.1656777646.git.sander@svanheule.net
      Signed-off-by: default avatarSander Vanheule <sander@svanheule.net>
      Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Suggested-by: default avatarYury Norov <yury.norov@gmail.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Marco Elver <elver@google.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Valentin Schneider <vschneid@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      c41e8866
    • Sander Vanheule's avatar
      cpumask: Fix invalid uniprocessor mask assumption · b81dce77
      Sander Vanheule authored
      
      
      On uniprocessor builds, any CPU mask is assumed to contain exactly one CPU
      (cpu0).  This assumption ignores the existence of empty masks, resulting
      in incorrect behaviour.
      
      cpumask_first_zero(), cpumask_next_zero(), and for_each_cpu_not() don't
      provide behaviour matching the assumption that a UP mask is always "1",
      and instead provide behaviour matching the empty mask.
      
      Drop the incorrectly optimised code and use the generic implementations in
      all cases.
      
      Link: https://lkml.kernel.org/r/86bf3f005abba2d92120ddd0809235cab4f759a6.1656777646.git.sander@svanheule.net
      Signed-off-by: default avatarSander Vanheule <sander@svanheule.net>
      Suggested-by: default avatarYury Norov <yury.norov@gmail.com>
      Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Marco Elver <elver@google.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Valentin Schneider <vschneid@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      b81dce77
    • Sander Vanheule's avatar
      cpumask: add UP optimised for_each_*_cpu versions · 4f099030
      Sander Vanheule authored
      
      
      On uniprocessor builds, the following loops will always run over a mask
      that contains one enabled CPU (cpu0):
      
          - for_each_possible_cpu
          - for_each_online_cpu
          - for_each_present_cpu
      
      Provide uniprocessor-specific macros for these loops, that always run
      exactly once.
      
      Link: https://lkml.kernel.org/r/3a92869b902a075b97be5d1452c9c6badbbff0df.1656777646.git.sander@svanheule.net
      Signed-off-by: default avatarSander Vanheule <sander@svanheule.net>
      Acked-by: default avatarYury Norov <yury.norov@gmail.com>
      Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Marco Elver <elver@google.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Valentin Schneider <vschneid@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      4f099030
    • Sander Vanheule's avatar
      x86/cacheinfo: move shared cache map definitions · adbcaef8
      Sander Vanheule authored
      
      
      Patch series "cpumask: Fix invalid uniprocessor assumptions", v4.
      
      On uniprocessor builds, it is currently assumed that any cpumask will
      contain the single CPU: cpu0.  This assumption is used to provide
      optimised implementations.
      
      The current assumption also appears to be wrong, by ignoring the fact that
      users can provide empty cpumasks.  This can result in bugs as explained in
      [1] - for_each_cpu() will run one iteration of the loop even when passed
      an empty cpumask.
      
      This series introduces some basic tests, and updates the optimisations for
      uniprocessor builds.
      
      The x86 patch was written after the kernel test robot [2] ran into a
      failed build.  I have tried to list the files potentially affected by the
      changes to cpumask.h, in an attempt to find any other cases that fail on
      !SMP.  I've gone through some of the files manually, and ran a few cross
      builds, but nothing else popped up.  I (build) checked about half of the
      potientally affected files, but I do not have the resources to do them
      all.  I hope we can fix other issues if/when they pop up later.
      
      [1] https://lore.kernel.org/all/20220530082552.46113-1-sander@svanheule.net/
      [2] https://lore.kernel.org/all/202206060858.wA0FOzRy-lkp@intel.com/
      
      
      This patch (of 5):
      
      The maps to keep track of shared caches between CPUs on SMP systems are
      declared in asm/smp.h, among them specifically cpu_llc_shared_map.  These
      maps are externally defined in cpu/smpboot.c.  The latter is only compiled
      on CONFIG_SMP=y, which means the declared extern symbols from asm/smp.h do
      not have a corresponding definition on uniprocessor builds.
      
      The inline cpu_llc_shared_mask() function from asm/smp.h refers to the map
      declaration mentioned above.  This function is referenced in cacheinfo.c
      inside for_each_cpu() loop macros, to provide cpumask for the loop.  On
      uniprocessor builds, the symbol for the cpu_llc_shared_map does not exist.
      However, the current implementation of for_each_cpu() also (wrongly)
      ignores the provided mask.
      
      By sheer luck, the compiler thus optimises out this unused reference to
      cpu_llc_shared_map, and the linker therefore does not require the
      cpu_llc_shared_mask to actually exist on uniprocessor builds.  Only on SMP
      bulids does smpboot.o exist to provide the required symbols.
      
      To no longer rely on compiler optimisations for successful uniprocessor
      builds, move the definitions of cpu_llc_shared_map and cpu_l2c_shared_map
      from smpboot.c to cacheinfo.c.
      
      Link: https://lkml.kernel.org/r/cover.1656777646.git.sander@svanheule.net
      Link: https://lkml.kernel.org/r/e8167ddb570f56744a3dc12c2149a660a324d969.1656777646.git.sander@svanheule.net
      Signed-off-by: default avatarSander Vanheule <sander@svanheule.net>
      Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Marco Elver <elver@google.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Valentin Schneider <vschneid@redhat.com>
      Cc: Yury Norov <yury.norov@gmail.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      adbcaef8
    • Nikolay Borisov's avatar
      scripts/bloat-o-meter: add -p argument · 8b5db667
      Nikolay Borisov authored
      
      
      When doing cross platform development on a machine sometimes it might be
      useful to invoke bloat-o-meter for files which haven't been build with the
      native toolchain.  In cases when the host nm doesn't support the target
      one then a toolchain-specific nm could be used.  Add this ability by
      adding the -p allowing invocations as:
      
      ./scripts/bloat-o-meter -p riscv64-unknown-linux-gnu- file1.o file2.o
      
      Link: https://lkml.kernel.org/r/20220701113513.1938008-2-nborisov@suse.com
      Signed-off-by: default avatarNikolay Borisov <nborisov@suse.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      8b5db667
    • Nikolay Borisov's avatar
      scripts/bloat-o-meter: switch argument parsing to using argparse · b62eb273
      Nikolay Borisov authored
      
      
      This will facilitate further extension to the arguments the script takes. 
      As an added benefit it also produces saner usage output, where mutual
      exclusivity of the c|d|t parameters is clearly visible:
      
      ./scripts/bloat-o-meter  -h
      usage: bloat-o-meter [-h] [-c | -d | -t] file1 file2
      
      Simple script used to compare the symbol sizes of 2 object files
      
      positional arguments:
        file1       First file to compare
        file2       Second file to compare
      
      optional arguments:
        -h, --help  show this help message and exit
        -c          categorize output based on symbol type
        -d          Show delta of Data Section
        -t          Show delta of text Section
      
      Link: https://lkml.kernel.org/r/20220701113513.1938008-1-nborisov@suse.com
      Signed-off-by: default avatarNikolay Borisov <nborisov@suse.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      b62eb273
    • Benjamin Segall's avatar
      epoll: autoremove wakers even more aggressively · a16ceb13
      Benjamin Segall authored
      
      
      If a process is killed or otherwise exits while having active network
      connections and many threads waiting on epoll_wait, the threads will all
      be woken immediately, but not removed from ep->wq.  Then when network
      traffic scans ep->wq in wake_up, every wakeup attempt will fail, and will
      not remove the entries from the list.
      
      This means that the cost of the wakeup attempt is far higher than usual,
      does not decrease, and this also competes with the dying threads trying to
      actually make progress and remove themselves from the wq.
      
      Handle this by removing visited epoll wq entries unconditionally, rather
      than only when the wakeup succeeds - the structure of ep_poll means that
      the only potential loss is the timed_out->eavail heuristic, which now can
      race and result in a redundant ep_send_events attempt.  (But only when
      incoming data and a timeout actually race, not on every timeout)
      
      Shakeel added:
      
      : We are seeing this issue in production with real workloads and it has
      : caused hard lockups.  Particularly network heavy workloads with a lot
      : of threads in epoll_wait() can easily trigger this issue if they get
      : killed (oom-killed in our case).
      
      Link: https://lkml.kernel.org/r/xm26fsjotqda.fsf@google.com
      Signed-off-by: default avatarBen Segall <bsegall@google.com>
      Tested-by: default avatarShakeel Butt <shakeelb@google.com>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Shakeel Butt <shakeelb@google.com>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: Roman Penyaev <rpenyaev@suse.de>
      Cc: Jason Baron <jbaron@akamai.com>
      Cc: Khazhismel Kumykov <khazhy@google.com>
      Cc: Heiher <r@hev.cc>
      Cc: <stable@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      a16ceb13
    • Yu Zhe's avatar
      ipc/mqueue: remove unnecessary (void*) conversion · 2c795fb0
      Yu Zhe authored
      
      
      Remove unnecessary void* type casting.
      
      Link: https://lkml.kernel.org/r/20220628021251.17197-1-yuzhe@nfschina.com
      Signed-off-by: default avatarYu Zhe <yuzhe@nfschina.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      2c795fb0
    • Tao Liu's avatar
      kdump: round up the total memory size to 128M for crashkernel reservation · 46d36b1b
      Tao Liu authored
      
      
      The total memory size we get in kernel is usually slightly less than the
      actual memory size because BIOS/firmware will reserve some memory region. 
      So it won't export all memory as usable.
      
      E.g, on my x86_64 kvm guest with 1G memory, the total_mem value shows:
      UEFI boot with ovmf: 0x3faef000 Legacy boot kvm guest: 0x3ff7ec00
      
      When specifying crashkernel=1G-2G:128M, if we have a 1G memory machine, we
      get total size 1023M from firmware.  Then it will not fall into 1G-2G,
      thus no memory reserved.  User will never know this, it is hard to let
      user know the exact total value in kernel.
      
      One way is to use dmi/smbios to get physical memory size, but it's not
      reliable as well.  According to Prarit hardware vendors sometimes screw
      this up.  Thus round up total size to 128M to work around this problem.
      
      This patch is a resend of [1] and rebased onto v5.19-rc2, and the
      original credit goes to Dave Young.
      
      [1]: http://lists.infradead.org/pipermail/kexec/2018-April/020568.html
      
      Link: https://lkml.kernel.org/r/20220627074440.187222-1-ltao@redhat.com
      Signed-off-by: default avatarTao Liu <ltao@redhat.com>
      Acked-by: default avatarBaoquan He <bhe@redhat.com>
      Cc: Dave Young <dyoung@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      46d36b1b
    • Alexey Dobriyan's avatar
      proc: delete unused <linux/uaccess.h> includes · 376b0c26
      Alexey Dobriyan authored
      
      
      Those aren't necessary after seq files won.
      
      Link: https://lkml.kernel.org/r/YqnA3mS7KBt8Z4If@localhost.localdomain
      Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      376b0c26
    • Stephen Brennan's avatar
      vmcoreinfo: include kallsyms symbols · 5fd8fea9
      Stephen Brennan authored
      
      
      The internal kallsyms tables contain information which could be quite
      useful to a debugging tool in the absence of other debuginfo.  If kallsyms
      is enabled, then a debugging tool could parse it and use it as a fallback
      symbol table.  Combined with BTF data, live & post-mortem debuggers can
      support basic operations without needing a large DWARF debuginfo file
      available.  As many as five symbols are necessary to properly parse
      kallsyms names and addresses.  Add these to the vmcoreinfo note.
      
      CONFIG_KALLSYMS_ABSOLUTE_PERCPU does impact the computation of symbol
      addresses.  However, a debugger can infer this configuration value by
      comparing the address of _stext in the vmcoreinfo with the address
      computed via kallsyms.  So there's no need to include information about
      this config value in the vmcoreinfo note.
      
      To verify that we're still well below the maximum of 4096 bytes, I created
      a script[1] to compute a rough upper bound on the possible size of
      vmcoreinfo.  On v5.18-rc7, the script reports 3106 bytes, and with this
      patch, the maximum become 3370 bytes.
      
      [1]: https://github.com/brenns10/kernel_stuff/blob/master/vmcoreinfosize/
      
      Link: https://lkml.kernel.org/r/20220517000508.777145-3-stephen.s.brennan@oracle.com
      Signed-off-by: default avatarStephen Brennan <stephen.s.brennan@oracle.com>
      Acked-by: default avatarBaoquan He <bhe@redhat.com>
      Cc: Bixuan Cui <cuibixuan@huawei.com>
      Cc: Dave Young <dyoung@redhat.com>
      Cc: David Vernet <void@manifault.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Nick Desaulniers <ndesaulniers@google.com>
      Cc: Sami Tolvanen <samitolvanen@google.com>
      Cc: Stephen Boyd <swboyd@chromium.org>
      Cc: Vivek Goyal <vgoyal@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      5fd8fea9
    • Stephen Brennan's avatar
      kallsyms: move declarations to internal header · 71f8c155
      Stephen Brennan authored
      
      
      Patch series "Expose kallsyms data in vmcoreinfo note".
      
      The kernel can be configured to contain a lot of introspection or
      debugging information built-in, such as ORC for unwinding stack traces,
      BTF for type information, and of course kallsyms.  Debuggers could use
      this information to navigate a core dump or live system, but they need to
      be able to find it.
      
      This patch series adds the necessary symbols into vmcoreinfo, which would
      allow a debugger to find and interpret the kallsyms table.  Using the
      kallsyms data, the debugger can then lookup any symbol, allowing it to
      find ORC, BTF, or any other useful data.
      
      This would allow a live kernel, or core dump, to be debugged without any
      DWARF debuginfo.  This is useful for many cases: the debuginfo may not
      have been generated, or you may not want to deploy the large files
      everywhere you need them.
      
      I've demonstrated a proof of concept for this at LSF/MM+BPF during a
      lighting talk.  Using a work-in-progress branch of the drgn debugger, and
      an extended set of BTF generated by a patched version of dwarves, I've
      been able to open a core dump without any DWARF info and do basic tasks
      such as enumerating slab caches, block devices, tasks, and doing
      backtraces.  I hope this series can be a first step toward a new
      possibility of "DWARFless debugging".
      
      Related discussion around the BTF side of this:
      https://lore.kernel.org/bpf/586a6288-704a-f7a7-b256-e18a675927df@oracle.com/T/#u
      
      Some work-in-progress branches using this feature:
      https://github.com/brenns10/dwarves/tree/remove_percpu_restriction_1
      https://github.com/brenns10/drgn/tree/kallsyms_plus_btf
      
      
      This patch (of 2):
      
      To include kallsyms data in the vmcoreinfo note, we must make the symbol
      declarations visible outside of kallsyms.c.  Move these to a new internal
      header file.
      
      Link: https://lkml.kernel.org/r/20220517000508.777145-1-stephen.s.brennan@oracle.com
      Link: https://lkml.kernel.org/r/20220517000508.777145-2-stephen.s.brennan@oracle.com
      Signed-off-by: default avatarStephen Brennan <stephen.s.brennan@oracle.com>
      Acked-by: default avatarBaoquan He <bhe@redhat.com>
      Cc: Nick Desaulniers <ndesaulniers@google.com>
      Cc: Dave Young <dyoung@redhat.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Stephen Boyd <swboyd@chromium.org>
      Cc: Bixuan Cui <cuibixuan@huawei.com>
      Cc: David Vernet <void@manifault.com>
      Cc: Vivek Goyal <vgoyal@redhat.com>
      Cc: Sami Tolvanen <samitolvanen@google.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      71f8c155
    • Colin Ian King's avatar
      lib/ts_bm.c: remove redundant store to variable consumed after addition · 4a70ce5f
      Colin Ian King authored
      
      
      There is no need to store the result of the addition back to variable
      consumed after the addition.  The store is redundant, replace += with just
      +
      
      Cleans up clang scan build warning: lib/ts_bm.c:83:11: warning: Although
      the value stored to 'consumed' is used in the enclosing expression, the
      value is never actually read from 'consumed' [deadcode.DeadStores]
      
      Link: https://lkml.kernel.org/r/20220704215325.600993-1-colin.i.king@gmail.com
      Signed-off-by: default avatarColin Ian King <colin.i.king@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      4a70ce5f
    • wuchi's avatar
      lib/scatterlist: use matched parameter type when calling __sg_free_table() · 6d529ea8
      wuchi authored
      commit 4635873c
      
       ("scsi: lib/sg_pool.c: improve APIs for allocating sg
      pool") changeed @(bool)skip_first_chunk of __sg_free_table() to @(unsigned
      int)nents_first_chunk, so use unsigend int type instead of bool type
      (false -> 0) when calling the function in sg_free_append_table() and
      sg_free_table().
      
      Link: https://lkml.kernel.org/r/20220629030241.84559-1-wuchi.zero@gmail.com
      Signed-off-by: default avatarwuchi <wuchi.zero@gmail.com>
      Reviewed-by: default avatarMing Lei <ming.lei@redhat.com>
      Cc: Maor Gottlieb <maorg@nvidia.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      6d529ea8
    • Tiezhu Yang's avatar
      lib: make LZ4_decompress_safe_forceExtDict() static · 2d8867f3
      Tiezhu Yang authored
      
      
      LZ4_decompress_safe_forceExtDict() is only used in
      lib/lz4/lz4_decompress.c, make it static to fix the build warning about
      "no previous prototype" [1].
      
      [1] https://lore.kernel.org/lkml/202206260948.akgsho1q-lkp@intel.com/
      
      Link: https://lkml.kernel.org/r/1656298965-8698-1-git-send-email-yangtiezhu@loongson.cn
      Signed-off-by: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      2d8867f3
    • wuchi's avatar
      lib/radix-tree: remove unused argument of insert_entries · cda83bb8
      wuchi authored
      insert_entries() doesn't use the 'bool replace' argument, and the function
      is only used locally, remove the argument.
      
      The historical context of the unused argument is as follow:
      
      2: commit <3a08cd52> (radix tree: Remove multiorder support)
        Remove the code related to macro CONFIG_RADIX_TREE_MULTIORDER
      to convert to the xArray.
        Without the macro, there is no need to retain the argument.
      
      1: commit <175542f5
      
      > (radix-tree: add radix_tree_join)
        Add insert_entries(..., bool replace) function, depending on the
      macro CONFIG_RADIX_TREE_MULTIORDER definition, the implementation
      is different. Notice that the implementation without the macro doesn't
      use the argument.
      
      [Matthew Wilcox: add historical context for argument]
      
      Link: https://lkml.kernel.org/r/20220625135324.72574-1-wuchi.zero@gmail.com
      Signed-off-by: default avatarwuchi <wuchi.zero@gmail.com>
      Cc: Matthew Wilcox <willy@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      cda83bb8
    • Dan Carpenter's avatar
      kfifo: fix kfifo_to_user() return type · 045ed31e
      Dan Carpenter authored
      The kfifo_to_user() macro is supposed to return zero for success or
      negative error codes.  Unfortunately, there is a signedness bug so it
      returns unsigned int.  This only affects callers which try to save the
      result in ssize_t and as far as I can see the only place which does that
      is line6_hwdep_read().
      
      TL;DR: s/_uint/_int/.
      
      Link: https://lkml.kernel.org/r/YrVL3OJVLlNhIMFs@kili
      Fixes: 144ecf31
      
       ("kfifo: fix kfifo_alloc() to return a signed int value")
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Cc: Stefani Seibold <stefani@seibold.net>
      Cc: Randy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      045ed31e
    • Uros Bizjak's avatar
      compiler-gcc.h: remove ancient workaround for gcc PR 58670 · 43c249ea
      Uros Bizjak authored
      
      
      The workaround for 'asm goto' miscompilation introduces a compiler barrier
      quirk that inhibits many useful compiler optimizations.  For example,
      __try_cmpxchg_user compiles to:
      
         11375:	41 8b 4d 00          	mov    0x0(%r13),%ecx
         11379:	41 8b 02             	mov    (%r10),%eax
         1137c:	f0 0f b1 0a          	lock cmpxchg %ecx,(%rdx)
         11380:	0f 94 c2             	sete   %dl
         11383:	84 d2                	test   %dl,%dl
         11385:	75 c4                	jne    1134b <...>
         11387:	41 89 02             	mov    %eax,(%r10)
      
      where the barrier inhibits flags propagation from asm when compiled with
      gcc-12.
      
      When the mentioned quirk is removed, the following code is generated:
      
         11553:	41 8b 4d 00          	mov    0x0(%r13),%ecx
         11557:	41 8b 02             	mov    (%r10),%eax
         1155a:	f0 0f b1 0a          	lock cmpxchg %ecx,(%rdx)
         1155e:	74 c9                	je     11529 <...>
         11560:	41 89 02             	mov    %eax,(%r10)
      
      The refered compiler bug:
      
      http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
      
      was fixed for gcc-4.8.2.
      
      Current minimum required version of GCC is version 5.1 which has the above
      'asm goto' miscompilation fixed, so remove the workaround.
      
      Link: https://lkml.kernel.org/r/20220624141412.72274-1-ubizjak@gmail.com
      Signed-off-by: default avatarUros Bizjak <ubizjak@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      43c249ea
    • wuchi's avatar
      lib/error-inject: traverse list with mutex · 86e5908e
      wuchi authored
      
      
      Traversing list without mutex in get_injectable_error_type will
      race with the following code:
          list_del_init(&ent->list)
          kfree(ent)
      in module_unload_ei_list. So fix that.
      
      Link: https://lkml.kernel.org/r/20220620100244.82896-1-wuchi.zero@gmail.com
      Signed-off-by: default avatarwuchi <wuchi.zero@gmail.com>
      Cc: Masami Hiramatsu (Google) <mhiramat@kernel.org>
      Cc: Martin KaFai Lau <kafai@fb.com>
      Cc: Song Liu <songliubraving@fb.com>
      Cc: Yonghong Song <yhs@fb.com>
      Cc: John Fastabend <john.fastabend@gmail.com>
      Cc: KP Singh <kpsingh@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      86e5908e
    • Vlastimil Babka's avatar
      lib/stackdepot: replace CONFIG_STACK_HASH_ORDER with automatic sizing · f9987921
      Vlastimil Babka authored
      
      
      As Linus explained [1], setting the stackdepot hash table size as a config
      option is suboptimal, especially as stackdepot becomes a dependency of
      less "expert" subsystems than initially (e.g.  DRM, networking,
      SLUB_DEBUG):
      
      : (a) it introduces a new compile-time question that isn't sane to ask
      : a regular user, but is now exposed to regular users.
      
      : (b) this by default uses 1MB of memory for a feature that didn't in
      : the past, so now if you have small machines you need to make sure you
      : make a special kernel config for them.
      
      Ideally we would employ rhashtable for fully automatic resizing, which
      should be feasible for many of the new users, but problematic for the
      original users with restricted context that call __stack_depot_save() with
      can_alloc == false, i.e.  KASAN.
      
      However we can easily remove the config option and scale the hash table
      automatically with system memory.  The STACK_HASH_MASK constant becomes
      stack_hash_mask variable and is used only in one mask operation, so the
      overhead should be negligible to none.  For early allocation we can employ
      the existing alloc_large_system_hash() function and perform similar
      scaling for the late allocation.
      
      The existing limits of the config option (between 4k and 1M buckets) are
      preserved, and scaling factor is set to one bucket per 16kB memory so on
      64bit the max 1M buckets (8MB memory) is achieved with 16GB system, while
      a 1GB system will use 512kB.
      
      Because KASAN is reported to need the maximum number of buckets even with
      smaller amounts of memory [2], set it as such when kasan_enabled().
      
      If needed, the automatic scaling could be complemented with a boot-time
      kernel parameter, but it feels pointless to add it without a specific use
      case.
      
      [1] https://lore.kernel.org/all/CAHk-=wjC5nS+fnf6EzRD9yQRJApAhxx7gRB87ZV+pAWo9oVrTg@mail.gmail.com/
      [2] https://lore.kernel.org/all/CACT4Y+Y4GZfXOru2z5tFPzFdaSUd+GFc6KVL=bsa0+1m197cQQ@mail.gmail.com/
      
      Link: https://lkml.kernel.org/r/20220620150249.16814-1-vbabka@suse.cz
      Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Acked-by: default avatarDmitry Vyukov <dvyukov@google.com>
      Cc: Marco Elver <elver@google.com>
      Cc: Alexander Potapenko <glider@google.com>
      Cc: Andrey Konovalov <andreyknvl@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      f9987921
    • wuchi's avatar
      net, lib/once: remove {net_}get_random_once_wait macro · 62df90b5
      wuchi authored
      
      
      DO_ONCE(func, ...) will call func with spinlock which acquired by
      spin_lock_irqsave in __do_once_start.  But the get_random_once_wait will
      sleep in get_random_bytes_wait -> wait_for_random_bytes.
      
      Fortunately, there is no place to use {net_}get_random_once_wait, so we
      could remove them simply.
      
      Link: https://lkml.kernel.org/r/20220619074641.40916-1-wuchi.zero@gmail.com
      Signed-off-by: default avatarwuchi <wuchi.zero@gmail.com>
      Acked-by: default avatarJakub Kicinski <kuba@kernel.org>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: Paolo Abeni <pabeni@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      62df90b5
    • wuchi's avatar
      lib/lru_cache: fix error free handing in lc_create · 5a66fce9
      wuchi authored
      
      
      When kmem_cache_alloc in function lc_create returns null, we will
      free the memory already allocated. The loop of kmem_cache_free
      is wrong, especially:
        i = 0  ==> do wrong loop
        i > 0  ==> do not free element[0]
      
      Link: https://lkml.kernel.org/r/20220618082521.7082-1-wuchi.zero@gmail.com
      Signed-off-by: default avatarwuchi <wuchi.zero@gmail.com>
      Cc: Philipp Reisner <philipp.reisner@linbit.com>
      Cc: Lars Ellenberg <lars.ellenberg@linbit.com>
      Cc: Christoph Bhmwalder <christoph.boehmwalder@linbit.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      5a66fce9
    • Dan Moulding's avatar
      init: add "hostname" kernel parameter · 5a704629
      Dan Moulding authored
      
      
      The gethostname system call returns the hostname for the current machine. 
      However, the kernel has no mechanism to initially set the current
      machine's name in such a way as to guarantee that the first userspace
      process to call gethostname will receive a meaningful result.  It relies
      on some unspecified userspace process to first call sethostname before
      gethostname can produce a meaningful name.
      
      Traditionally the machine's hostname is set from userspace by the init
      system.  The init system, in turn, often relies on a configuration file
      (say, /etc/hostname) to provide the value that it will supply in the call
      to sethostname.  Consequently, the file system containing /etc/hostname
      usually must be available before the hostname will be set.  There may,
      however, be earlier userspace processes that could call gethostname before
      the file system containing /etc/hostname is mounted.  Such a process will
      get some other, likely meaningless, name from gethostname (such as
      "(none)", "localhost", or "darkstar").
      
      A real-world example where this can happen, and lead to undesirable
      results, is with mdadm.  When assembling arrays, mdadm distinguishes
      between "local" arrays and "foreign" arrays.  A local array is one that
      properly belongs to the current machine, and a foreign array is one that
      is (possibly temporarily) attached to the current machine, but properly
      belongs to some other machine.  To determine if an array is local or
      foreign, mdadm may compare the "homehost" recorded on the array with the
      current hostname.  If mdadm is run before the root file system is mounted,
      perhaps because the root file system itself resides on an md-raid array,
      then /etc/hostname isn't yet available and the init system will not yet
      have called sethostname, causing mdadm to incorrectly conclude that all of
      the local arrays are foreign.
      
      Solving this problem *could* be delegated to the init system.  It could be
      left up to the init system (including any init system that starts within
      an initramfs, if one is in use) to ensure that sethostname is called
      before any other userspace process could possibly call gethostname. 
      However, it may not always be obvious which processes could call
      gethostname (for example, udev itself might not call gethostname, but it
      could via udev rules invoke processes that do).  Additionally, the init
      system has to ensure that the hostname configuration value is stored in
      some place where it will be readily accessible during early boot. 
      Unfortunately, every init system will attempt to (or has already attempted
      to) solve this problem in a different, possibly incorrect, way.  This
      makes getting consistently working configurations harder for users.
      
      I believe it is better for the kernel to provide the means by which the
      hostname may be set early, rather than making this a problem for the init
      system to solve.  The option to set the hostname during early startup, via
      a kernel parameter, provides a simple, reliable way to solve this problem.
      It also could make system configuration easier for some embedded systems.
      
      [dmoulding@me.com: v2]
        Link: https://lkml.kernel.org/r/20220506060310.7495-2-dmoulding@me.com
      Link: https://lkml.kernel.org/r/20220505180651.22849-2-dmoulding@me.com
      Signed-off-by: default avatarDan Moulding <dmoulding@me.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      5a704629
  2. Jun 28, 2022
  3. Jun 27, 2022
    • Linus Torvalds's avatar
      Linux 5.19-rc4 · 03c765b0
      Linus Torvalds authored
      03c765b0
    • Linus Torvalds's avatar
      Merge tag 'soc-fixes-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 1709b887
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "A number of fixes have accumulated, but they are largely for harmless
        issues:
      
         - Several OF node leak fixes
      
         - A fix to the Exynos7885 UART clock description
      
         - DTS fixes to prevent boot failures on TI AM64 and J721s2
      
         - Bus probe error handling fixes for Baikal-T1
      
         - A fixup to the way STM32 SoCs use separate dts files for different
           firmware stacks
      
         - Multiple code fixes for Arm SCMI firmware, all dealing with
           robustness of the implementation
      
         - Multiple NXP i.MX devicetree fixes, addressing incorrect data in DT
           nodes
      
         - Three updates to the MAINTAINERS file, including Florian Fainelli
           taking over BCM283x/BCM2711 (Raspberry Pi) from Nicolas Saenz
           Julienne"
      
      * tag 'soc-fixes-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (29 commits)
        ARM: dts: aspeed: nuvia: rename vendor nuvia to qcom
        arm: mach-spear: Add missing of_node_put() in time.c
        ARM: cns3xxx: Fix refcount leak in cns3xxx_init
        MAINTAINERS: Update email address
        arm64: dts: ti: k3-am64-main: Remove support for HS400 speed mode
        arm64: dts: ti: k3-j721s2: Fix overlapping GICD memory region
        ARM: dts: bcm2711-rpi-400: Fix GPIO line names
        bus: bt1-axi: Don't print error on -EPROBE_DEFER
        bus: bt1-apb: Don't print error on -EPROBE_DEFER
        ARM: Fix refcount leak in axxia_boot_secondary
        ARM: dts: stm32: move SCMI related nodes in a dedicated file for stm32mp15
        soc: imx: imx8m-blk-ctrl: fix display clock for LCDIF2 power domain
        ARM: dts: imx6qdl-colibri: Fix capacitive touch reset polarity
        ARM: dts: imx6qdl: correct PU regulator ramp delay
        firmware: arm_scmi: Fix incorrect error propagation in scmi_voltage_descriptors_get
        firmware: arm_scmi: Avoid using extended string-buffers sizes if not necessary
        firmware: arm_scmi: Fix SENSOR_AXIS_NAME_GET behaviour when unsupported
        ARM: dts: imx7: Move hsic_phy power domain to HSIC PHY node
        soc: bcm: brcmstb: pm: pm-arm: Fix refcount leak in brcmstb_pm_probe
        MAINTAINERS: Update BCM2711/BCM2835 maintainer
        ...
      1709b887
    • Linus Torvalds's avatar
      Merge tag 'mm-hotfixes-stable-2022-06-26' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm · 413c1f14
      Linus Torvalds authored
      Pull hotfixes from Andrew Morton:
       "Minor things, mainly - mailmap updates, MAINTAINERS updates, etc.
      
        Fixes for this merge window:
      
         - fix for a damon boot hang, from SeongJae
      
         - fix for a kfence warning splat, from Jason Donenfeld
      
         - fix for zero-pfn pinning, from Alex Williamson
      
         - fix for fallocate hole punch clearing, from Mike Kravetz
      
        Fixes for previous releases:
      
         - fix for a performance regression, from Marcelo
      
         - fix for a hwpoisining BUG from zhenwei pi"
      
      * tag 'mm-hotfixes-stable-2022-06-26' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
        mailmap: add entry for Christian Marangi
        mm/memory-failure: disable unpoison once hw error happens
        hugetlbfs: zero partial pages during fallocate hole punch
        mm: memcontrol: reference to tools/cgroup/memcg_slabinfo.py
        mm: re-allow pinning of zero pfns
        mm/kfence: select random number before taking raw lock
        MAINTAINERS: add maillist information for LoongArch
        MAINTAINERS: update MM tree references
        MAINTAINERS: update Abel Vesa's email
        MAINTAINERS: add MEMORY HOT(UN)PLUG section and add David as reviewer
        MAINTAINERS: add Miaohe Lin as a memory-failure reviewer
        mailmap: add alias for jarkko@profian.com
        mm/damon/reclaim: schedule 'damon_reclaim_timer' only after 'system_wq' is initialized
        kthread: make it clear that kthread_create_on_node() might be terminated by any fatal signal
        mm: lru_cache_disable: use synchronize_rcu_expedited
        mm/page_isolation.c: fix one kernel-doc comment
      413c1f14
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v5.19-2022-06-26' of... · 893d1eaa
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v5.19-2022-06-26' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tools fixes from Arnaldo Carvalho de Melo:
      
       - Enable ignore_missing_thread in 'perf stat', enabling counting with
         '--pid' when threads disappear during counting session setup
      
       - Adjust output data offset for backward compatibility in 'perf inject'
      
       - Fix missing free in copy_kcore_dir() in 'perf inject'
      
       - Fix caching files with a wrong build ID
      
       - Sync drm, cpufeatures, vhost and svn headers with the kernel
      
      * tag 'perf-tools-fixes-for-v5.19-2022-06-26' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
        tools headers UAPI: Synch KVM's svm.h header with the kernel
        tools include UAPI: Sync linux/vhost.h with the kernel sources
        perf stat: Enable ignore_missing_thread
        perf inject: Adjust output data offset for backward compatibility
        perf trace beauty: Fix generation of errno id->str table on ALT Linux
        perf build-id: Fix caching files with a wrong build ID
        tools headers cpufeatures: Sync with the kernel sources
        tools headers UAPI: Sync drm/i915_drm.h with the kernel sources
        perf inject: Fix missing free in copy_kcore_dir()
      893d1eaa
    • Linus Torvalds's avatar
      Merge tag 'for-5.19-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 82708bb1
      Linus Torvalds authored
      Pull btrfs fixes from David Sterba:
      
       - zoned relocation fixes:
            - fix critical section end for extent writeback, this could lead
              to out of order write
            - prevent writing to previous data relocation block group if space
              gets low
      
       - reflink fixes:
            - fix race between reflinking and ordered extent completion
            - proper error handling when block reserve migration fails
            - add missing inode iversion/mtime/ctime updates on each iteration
              when replacing extents
      
       - fix deadlock when running fsync/fiemap/commit at the same time
      
       - fix false-positive KCSAN report regarding pid tracking for read locks
         and data race
      
       - minor documentation update and link to new site
      
      * tag 'for-5.19-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        Documentation: update btrfs list of features and link to readthedocs.io
        btrfs: fix deadlock with fsync+fiemap+transaction commit
        btrfs: don't set lock_owner when locking extent buffer for reading
        btrfs: zoned: fix critical section of relocation inode writeback
        btrfs: zoned: prevent allocation from previous data relocation BG
        btrfs: do not BUG_ON() on failure to migrate space when replacing extents
        btrfs: add missing inode updates on each iteration when replacing extents
        btrfs: fix race between reflinking and ordered extent completion
      82708bb1
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-5.19-2022-06-26' of git://git.infradead.org/users/hch/dma-mapping · c898c67d
      Linus Torvalds authored
      Pull dma-mapping fix from Christoph Hellwig:
      
       - pass the correct size to dma_set_encrypted() when freeing memory
         (Dexuan Cui)
      
      * tag 'dma-mapping-5.19-2022-06-26' of git://git.infradead.org/users/hch/dma-mapping:
        dma-direct: use the correct size for dma_set_encrypted()
      c898c67d
    • Linus Torvalds's avatar
      Merge tag 'for-5.19/fbdev-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev · be129fab
      Linus Torvalds authored
      Pull fbdev fixes from Helge Deller:
       "Two bug fixes for the pxa3xx and intelfb drivers:
      
         - pxa3xx-gcu: Fix integer overflow in pxa3xx_gcu_write
      
         - intelfb: Initialize value of stolen size
      
        The other changes are small cleanups, simplifications and
        documentation updates to the cirrusfb, skeletonfb, omapfb,
        intelfb, au1100fb and simplefb drivers"
      
      * tag 'for-5.19/fbdev-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev:
        video: fbdev: omap: Remove duplicate 'the' in comment
        video: fbdev: omapfb: Align '*' in comment
        video: fbdev: simplefb: Check before clk_put() not needed
        video: fbdev: au1100fb: Drop unnecessary NULL ptr check
        video: fbdev: pxa3xx-gcu: Fix integer overflow in pxa3xx_gcu_write
        video: fbdev: skeletonfb: Convert to generic power management
        video: fbdev: cirrusfb: Remove useless reference to PCI power management
        video: fbdev: intelfb: Initialize value of stolen size
        video: fbdev: intelfb: Use aperture size from pci_resource_len
        video: fbdev: skeletonfb: Fix syntax errors in comments
      be129fab
    • Linus Torvalds's avatar
      Merge tag 'for-5.19/parisc-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · c0c6a7bd
      Linus Torvalds authored
      Pull parisc architecture fixes from Helge Deller:
      
       - enable ARCH_HAS_STRICT_MODULE_RWX to prevent a boot crash on c8000
         machines
      
       - flush all mappings of a shared anonymous page on PA8800/8900 machines
         via flushing the whole data cache. This may slow down such machines
         but makes sure that the cache is consistent
      
       - Fix duplicate definition build error regarding fb_is_primary_device()
      
      * tag 'for-5.19/parisc-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: Enable ARCH_HAS_STRICT_MODULE_RWX
        parisc: Fix flush_anon_page on PA8800/PA8900
        parisc: align '*' in comment in math-emu code
        parisc/stifb: Fix fb_is_primary_device() only available with CONFIG_FB_STI
      c0c6a7bd
  4. Jun 26, 2022
    • Linus Torvalds's avatar
      Merge tag 'xtensa-20220626' of https://github.com/jcmvbkbc/linux-xtensa · e963d685
      Linus Torvalds authored
      Pull xtensa fixes from Max Filippov:
      
       - fix OF reference leaks in xtensa arch code
      
       - replace '.bss' with '.section .bss' to fix entry.S build with old
         assembler
      
      * tag 'xtensa-20220626' of https://github.com/jcmvbkbc/linux-xtensa:
        xtensa: change '.bss' to '.section .bss'
        xtensa: xtfpga: Fix refcount leak bug in setup
        xtensa: Fix refcount leak bug in time.c
      e963d685
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.19-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 8100775d
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - A fix for a CMA change that broke booting guests with > 2G RAM on
         Power8 hosts.
      
       - Fix the RTAS call filter to allow a special case that applications
         rely on.
      
       - A change to our execve path, to make the execve syscall exit
         tracepoint work.
      
       - Three fixes to wire up our various RNGs earlier in boot so they're
         available for use in the initial seeding in random_init().
      
       - A build fix for when KASAN is enabled along with
         STRUCTLEAK_BYREF_ALL.
      
      Thanks to Andrew Donnellan, Aneesh Kumar K.V, Christophe Leroy, Jason
      Donenfeld, Nathan Lynch, Naveen N. Rao, Sathvika Vasireddy, Sumit
      Dubey2, Tyrel Datwyler, and Zi Yan.
      
      * tag 'powerpc-5.19-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/powernv: wire up rng during setup_arch
        powerpc/prom_init: Fix build failure with GCC_PLUGIN_STRUCTLEAK_BYREF_ALL and KASAN
        powerpc/rtas: Allow ibm,platform-dump RTAS call with null buffer address
        powerpc: Enable execve syscall exit tracepoint
        powerpc/pseries: wire up rng during setup_arch()
        powerpc/microwatt: wire up rng during setup_arch()
        powerpc/mm: Move CMA reservations after initmem_init()
      8100775d
    • Linus Torvalds's avatar
      Merge tag 'kbuild-fixes-v5.19-2' of... · 393ed5d8
      Linus Torvalds authored
      Merge tag 'kbuild-fixes-v5.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild fixes from Masahiro Yamada:
      
       - Fix modpost to detect EXPORT_SYMBOL marked as __init or__exit
      
       - Update the supported arch list in the LLVM document
      
       - Avoid the second link of vmlinux for CONFIG_TRIM_UNUSED_KSYMS
      
       - Avoid false __KSYM___this_module define in include/generated/autoksyms.h
      
      * tag 'kbuild-fixes-v5.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        kbuild: Ignore __this_module in gen_autoksyms.sh
        kbuild: link vmlinux only once for CONFIG_TRIM_UNUSED_KSYMS (2nd attempt)
        Documentation/llvm: Update Supported Arch table
        modpost: fix section mismatch check for exported init/exit sections
      393ed5d8
    • Linus Torvalds's avatar
      Merge tag 'exfat-for-5.19-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat · 97d4d026
      Linus Torvalds authored
      Pull exfat fix from Namjae Jeon:
      
       - Use updated exfat_chain directly instead of snapshot values in
         rename.
      
      * tag 'exfat-for-5.19-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat:
        exfat: use updated exfat_chain directly during renaming
      97d4d026
    • Linus Torvalds's avatar
      Merge tag '5.19-rc3-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6 · 918c30df
      Linus Torvalds authored
      Pull cifs client fixes from Steve French:
       "Fixes addressing important multichannel, and reconnect issues.
      
        Multichannel mounts when the server network interfaces changed, or ip
        addresses changed, uncovered problems, especially in reconnect, but
        the patches for this were held up until recently due to some lock
        conflicts that are now addressed.
      
        Included in this set of fixes:
      
         - three fixes relating to multichannel reconnect, dynamically
           adjusting the list of server interfaces to avoid problems during
           reconnect
      
         - a lock conflict fix related to the above
      
         - two important fixes for negotiate on secondary channels (null
           netname can unintentionally cause multichannel to be disabled to
           some servers)
      
         - a reconnect fix (reporting incorrect IP address in some cases)"
      
      * tag '5.19-rc3-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: update cifs_ses::ip_addr after failover
        cifs: avoid deadlocks while updating iface
        cifs: periodically query network interfaces from server
        cifs: during reconnect, update interface if necessary
        cifs: change iface_list from array to sorted linked list
        smb3: use netname when available on secondary channels
        smb3: fix empty netname context on secondary channels
      918c30df
    • Arnaldo Carvalho de Melo's avatar
      tools headers UAPI: Synch KVM's svm.h header with the kernel · f8d86619
      Arnaldo Carvalho de Melo authored
      To pick up the changes from:
      
        d5af44dd ("x86/sev: Provide support for SNP guest request NAEs")
        0afb6b66 ("x86/sev: Use SEV-SNP AP creation to start secondary CPUs")
        dc3f3d24 ("x86/mm: Validate memory when changing the C-bit")
        cbd3d4f7
      
       ("x86/sev: Check SEV-SNP features support")
      
      That gets these new SVM exit reasons:
      
      +       { SVM_VMGEXIT_PSC,              "vmgexit_page_state_change" }, \
      +       { SVM_VMGEXIT_GUEST_REQUEST,    "vmgexit_guest_request" }, \
      +       { SVM_VMGEXIT_EXT_GUEST_REQUEST, "vmgexit_ext_guest_request" }, \
      +       { SVM_VMGEXIT_AP_CREATION,      "vmgexit_ap_creation" }, \
      +       { SVM_VMGEXIT_HV_FEATURES,      "vmgexit_hypervisor_feature" }, \
      
      Addressing this perf build warning:
      
        Warning: Kernel ABI header at 'tools/arch/x86/include/uapi/asm/svm.h' differs from latest version at 'arch/x86/include/uapi/asm/svm.h'
        diff -u tools/arch/x86/include/uapi/asm/svm.h arch/x86/include/uapi/asm/svm.h
      
      This causes these changes:
      
        CC      /tmp/build/perf-urgent/arch/x86/util/kvm-stat.o
        LD      /tmp/build/perf-urgent/arch/x86/util/perf-in.o
        LD      /tmp/build/perf-urgent/arch/x86/perf-in.o
        LD      /tmp/build/perf-urgent/arch/perf-in.o
        LD      /tmp/build/perf-urgent/perf-in.o
        LINK    /tmp/build/perf-urgent/perf
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Brijesh Singh <brijesh.singh@amd.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Tom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      f8d86619
    • Arnaldo Carvalho de Melo's avatar
      tools include UAPI: Sync linux/vhost.h with the kernel sources · e2213a2d
      Arnaldo Carvalho de Melo authored
      To get the changes in:
      
        84d7c8fd ("vhost-vdpa: introduce uAPI to set group ASID")
        2d1fcb77 ("vhost-vdpa: uAPI to get virtqueue group id")
        a0c95f20 ("vhost-vdpa: introduce uAPI to get the number of address spaces")
        3ace88bd ("vhost-vdpa: introduce uAPI to get the number of virtqueue groups")
        175d493c
      
       ("vhost: move the backend feature bits to vhost_types.h")
      
      Silencing this perf build warning:
      
        Warning: Kernel ABI header at 'tools/include/uapi/linux/vhost.h' differs from latest version at 'include/uapi/linux/vhost.h'
        diff -u tools/include/uapi/linux/vhost.h include/uapi/linux/vhost.h
      
      To pick up these changes and support them:
      
        $ tools/perf/trace/beauty/vhost_virtio_ioctl.sh > before
        $ cp include/uapi/linux/vhost.h tools/include/uapi/linux/vhost.h
        $ tools/perf/trace/beauty/vhost_virtio_ioctl.sh > after
        $ diff -u before after
        --- before	2022-06-26 12:04:35.982003781 -0300
        +++ after	2022-06-26 12:04:43.819972476 -0300
        @@ -28,6 +28,7 @@
         	[0x74] = "VDPA_SET_CONFIG",
         	[0x75] = "VDPA_SET_VRING_ENABLE",
         	[0x77] = "VDPA_SET_CONFIG_CALL",
        +	[0x7C] = "VDPA_SET_GROUP_ASID",
         };
         static const char *vhost_virtio_ioctl_read_cmds[] = {
         	[0x00] = "GET_FEATURES",
        @@ -39,5 +40,8 @@
         	[0x76] = "VDPA_GET_VRING_NUM",
         	[0x78] = "VDPA_GET_IOVA_RANGE",
         	[0x79] = "VDPA_GET_CONFIG_SIZE",
        +	[0x7A] = "VDPA_GET_AS_NUM",
        +	[0x7B] = "VDPA_GET_VRING_GROUP",
         	[0x80] = "VDPA_GET_VQS_COUNT",
        +	[0x81] = "VDPA_GET_GROUP_NUM",
         };
        $
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Gautam Dawar <gautam.dawar@xilinx.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/lkml/Yrh3xMYbfeAD0MFL@kernel.org
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      e2213a2d
    • Gang Li's avatar
      perf stat: Enable ignore_missing_thread · 448ce0e6
      Gang Li authored
      perf already support ignore_missing_thread for -p, but not yet
      applied to `perf stat -p <pid>`. This patch enables ignore_missing_thread
      for `perf stat -p <pid>`.
      
      Committer notes:
      
      And here is a refresher about the 'ignore_missing_thread' knob, from a
      previous patch using it:
      
        ca800068
      
       ("perf evsel: Enable ignore_missing_thread for pid option")
      
        ---
          While monitoring a multithread process with pid option, perf sometimes
          may return sys_perf_event_open failure with 3(No such process) if any of
          the process's threads die before we open the event. However, we want
          perf continue monitoring the remaining threads and do not exit with
          error.
        ---
      
      Signed-off-by: default avatarGang Li <ligang.bdlg@bytedance.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220622030037.15005-1-ligang.bdlg@bytedance.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      448ce0e6