1. 16 Dec, 2020 40 commits
    • Joe Perches's avatar
      checkpatch: prefer static const declarations · 73169765
      Joe Perches authored
      There are about 100,000 uses of 'static const <type>' but about 400 uses
      of 'static <type> const' in the kernel where type is not a pointer.
      
      The kernel almost always uses "static const" over "const static" as there
      is a compiler warning for that declaration style.
      
      But there is no compiler warning for "static <type> const".
      
      So add a checkpatch warning for the atypical declaration uses of.
      
      	const static <type> <foo>
      and
      	static <type> const <foo>
      
      For example:
      
        $ ./scripts/checkpatch.pl -f --emacs --quiet --nosummary -types=static_const arch/arm/crypto/aes-ce-glue.c
        arch/arm/crypto/aes-ce-glue.c:75: WARNING: Move const after static - use 'static const u8'
        #75: FILE: arch/arm/crypto/aes-ce-glue.c:75:
        +	static u8 const rcon[] = {
      
      Link: https://lkml.kernel.org/r/4b863be68e679546b40d50b97a4a806c03056a1c.camel@perches.comSigned-off-by: default avatarJoe Perches <joe@perches.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      73169765
    • Łukasz Stelmach's avatar
      checkpatch: ignore generated CamelCase defines and enum values · 4104a206
      Łukasz Stelmach authored
      Ignore autogenerated CamelCase-like defines and enum values like
      DRM_MODE_CONNECTOR_Unknown or ETHTOOL_LINK_MODE_Asym_Pause_BIT.
      
      Link: https://lkml.kernel.org/r/20201022184916.7904-1-l.stelmach@samsung.comSigned-off-by: default avatarŁukasz Stelmach <l.stelmach@samsung.com>
      Suggested-by: default avatarJoe Perches <joe@perches.com>
      Acked-by: default avatarJoe Perches <joe@perches.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4104a206
    • Aditya Srivastava's avatar
      checkpatch: fix false positives in REPEATED_WORD warning · 8d0325cc
      Aditya Srivastava authored
      Presence of hexadecimal address or symbol results in false warning
      message by checkpatch.pl.
      
      For example, running checkpatch on commit b8ad540d ("mptcp: fix
      memory leak in mptcp_subflow_create_socket()") results in warning:
      
        WARNING:REPEATED_WORD: Possible repeated word: 'ff'
            00 00 00 00 00 00 00 00 00 2f 30 0a 81 88 ff ff  ........./0.....
      
      Similarly, the presence of list command output in commit results in
      an unnecessary warning.
      
      For example, running checkpatch on commit 899e5ffb ("perf record:
      Introduce --switch-output-event") gives:
      
        WARNING:REPEATED_WORD: Possible repeated word: 'root'
          dr-xr-x---. 12 root root    4096 Apr 27 17:46 ..
      
      Here, it reports 'ff' and 'root' to be repeated, but it is in fact part
      of some address or code, where it has to be repeated.
      
      In these cases, the intent of the warning to find stylistic issues in
      commit messages is not met and the warning is just completely wrong in
      this case.
      
      To avoid these warnings, add an additional regex check for the directory
      permission pattern and avoid checking the line for this class of
      warning.  Similarly, to avoid hex pattern, check if the word consists of
      hex symbols and skip this warning if it is not among the common english
      words formed using hex letters.
      
      A quick evaluation on v5.6..v5.8 showed that this fix reduces
      REPEATED_WORD warnings by the frequency of 1890.
      
      A quick manual check found all cases are related to hex output or list
      command outputs in commit messages.
      
      Link: https://lkml.kernel.org/r/20201024102253.13614-1-yashsri421@gmail.comSigned-off-by: default avatarAditya Srivastava <yashsri421@gmail.com>
      Acked-by: default avatarJoe Perches <joe@perches.com>
      Cc: Dwaipayan Ray <dwaipayanray1@gmail.com>
      Cc: Lukas Bulwahn <lukas.bulwahn@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8d0325cc
    • Dwaipayan Ray's avatar
      checkpatch: add new exception to repeated word check · 1db81a68
      Dwaipayan Ray authored
      Recently, commit 4f6ad8aa1eac ("checkpatch: move repeated word test")
      moved the repeated word test to check for more file types. But after
      this, if checkpatch.pl is run on MAINTAINERS, it generates several
      new warnings of the type:
      
        WARNING: Possible repeated word: 'git'
      
      For example:
      
        WARNING: Possible repeated word: 'git'
        +T:	git git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml.git
      
      So, the pattern "git git://..." is a false positive in this case.
      
      There are several other combinations which may produce a wrong warning
      message, such as "@size size", ":Begin begin", etc.
      
      Extend repeated word check to compare the characters before and after
      the word matches.
      
      If there is a non whitespace character before the first word or a non
      whitespace character excluding punctuation characters after the second
      word, then the check is skipped and the warning is avoided.
      
      Also add case insensitive word matching to the repeated word check.
      
      Link: https://lore.kernel.org/linux-kernel-mentees/81b6a0bb2c7b9256361573f7a13201ebcd4876f1.camel@perches.com/
      Link: https://lkml.kernel.org/r/20201017162732.152351-1-dwaipayanray1@gmail.comSigned-off-by: default avatarDwaipayan Ray <dwaipayanray1@gmail.com>
      Suggested-by: default avatarJoe Perches <joe@perches.com>
      Suggested-by: default avatarLukas Bulwahn <lukas.bulwahn@gmail.com>
      Acked-by: default avatarJoe Perches <joe@perches.com>
      Cc: Aditya Srivastava <yashsri421@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1db81a68
    • Gao Xiang's avatar
      lib/lz4: explicitly support in-place decompression · 89b15863
      Gao Xiang authored
      LZ4 final literal copy could be overlapped when doing
      in-place decompression, so it's unsafe to just use memcpy()
      on an optimized memcpy approach but memmove() instead.
      
      Upstream LZ4 has updated this years ago [1] (and the impact
      is non-sensible [2] plus only a few bytes remain), this commit
      just synchronizes LZ4 upstream code to the kernel side as well.
      
      It can be observed as EROFS in-place decompression failure
      on specific files when X86_FEATURE_ERMS is unsupported,
      memcpy() optimization of commit 59daa706 ("x86, mem:
      Optimize memcpy by avoiding memory false dependece") will
      be enabled then.
      
      Currently most modern x86-CPUs support ERMS, these CPUs just
      use "rep movsb" approach so no problem at all. However, it can
      still be verified with forcely disabling ERMS feature...
      
      arch/x86/lib/memcpy_64.S:
              ALTERNATIVE_2 "jmp memcpy_orig", "", X86_FEATURE_REP_GOOD, \
      -                     "jmp memcpy_erms", X86_FEATURE_ERMS
      +                     "jmp memcpy_orig", X86_FEATURE_ERMS
      
      We didn't observe any strange on arm64/arm/x86 platform before
      since most memcpy() would behave in an increasing address order
      ("copy upwards" [3]) and it's the correct order of in-place
      decompression but it really needs an update to memmove() for sure
      considering it's an undefined behavior according to the standard
      and some unique optimization already exists in the kernel.
      
      [1] https://github.com/lz4/lz4/commit/33cb8518ac385835cc17be9a770b27b40cd0e15b
      [2] https://github.com/lz4/lz4/pull/717#issuecomment-497818921
      [3] https://sourceware.org/bugzilla/show_bug.cgi?id=12518
      
      Link: https://lkml.kernel.org/r/20201122030749.2698994-1-hsiangkao@redhat.comSigned-off-by: default avatarGao Xiang <hsiangkao@redhat.com>
      Reviewed-by: default avatarNick Terrell <terrelln@fb.com>
      Cc: Yann Collet <yann.collet.73@gmail.com>
      Cc: Miao Xie <miaoxie@huawei.com>
      Cc: Chao Yu <yuchao0@huawei.com>
      Cc: Li Guifu <bluce.liguifu@huawei.com>
      Cc: Guo Xuenan <guoxuenan@huawei.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      89b15863
    • Alexey Dobriyan's avatar
      lib: cleanup kstrto*() usage · 506dfc99
      Alexey Dobriyan authored
      Use proper conversion functions.  kstrto*() variants exist for all
      standard types.
      
      Link: https://lkml.kernel.org/r/20201122123410.GB92364@localhost.localdomainSigned-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      506dfc99
    • Francis Laniel's avatar
      drivers/misc/lkdtm/lkdtm.h: correct wrong filenames in comment · d58b0b1a
      Francis Laniel authored
      In lkdtm.h, files targeted in comments are named "lkdtm_file.c" while
      there are named "file.c" in directory.
      
      Link: https://lkml.kernel.org/r/20201122162451.27551-6-laniel_francis@privacyrequired.comSigned-off-by: default avatarFrancis Laniel <laniel_francis@privacyrequired.com>
      Acked-by: default avatarKees Cook <keescook@chromium.org>
      Cc: Daniel Axtens <dja@axtens.net>
      Cc: Daniel Micay <danielmicay@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d58b0b1a
    • Francis Laniel's avatar
      drivers/misc/lkdtm: add new file in LKDTM to test fortified strscpy · febebaf3
      Francis Laniel authored
      This new test ensures that fortified strscpy has the same behavior than
      vanilla strscpy (e.g.  returning -E2BIG when src content is truncated).
      Finally, it generates a crash at runtime because there is a write overflow
      in destination string.
      
      Link: https://lkml.kernel.org/r/20201122162451.27551-5-laniel_francis@privacyrequired.comSigned-off-by: default avatarFrancis Laniel <laniel_francis@privacyrequired.com>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Cc: Daniel Axtens <dja@axtens.net>
      Cc: Daniel Micay <danielmicay@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      febebaf3
    • Francis Laniel's avatar
      string.h: add FORTIFY coverage for strscpy() · 33e56a59
      Francis Laniel authored
      The fortified version of strscpy ensures the following before vanilla strscpy
      is called:
      
      1. There is no read overflow because we either size is smaller than
         src length or we shrink size to src length by calling fortified
         strnlen.
      
      2. There is no write overflow because we either failed during
         compilation or at runtime by checking that size is smaller than dest
         size.
      
      Link: https://lkml.kernel.org/r/20201122162451.27551-4-laniel_francis@privacyrequired.comSigned-off-by: default avatarFrancis Laniel <laniel_francis@privacyrequired.com>
      Acked-by: default avatarKees Cook <keescook@chromium.org>
      Cc: Daniel Axtens <dja@axtens.net>
      Cc: Daniel Micay <danielmicay@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      33e56a59
    • Daniel Axtens's avatar
      lkdtm: tests for FORTIFY_SOURCE · d96938da
      Daniel Axtens authored
      Add code to test both:
      
       - runtime detection of the overrun of a structure. This covers the
         __builtin_object_size(x, 0) case. This test is called FORTIFY_OBJECT.
      
       - runtime detection of the overrun of a char array within a structure.
         This covers the __builtin_object_size(x, 1) case which can be used
         for some string functions. This test is called FORTIFY_SUBOBJECT.
      
      Link: https://lkml.kernel.org/r/20201122162451.27551-3-laniel_francis@privacyrequired.comSigned-off-by: default avatarDaniel Axtens <dja@axtens.net>
      Signed-off-by: default avatarFrancis Laniel <laniel_francis@privacyrequired.com>
      Suggested-by: default avatarKees Cook <keescook@chromium.org>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Cc: Daniel Micay <danielmicay@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d96938da
    • Daniel Axtens's avatar
      lib: string.h: detect intra-object overflow in fortified string functions · 6a39e62a
      Daniel Axtens authored
      Patch series "Fortify strscpy()", v7.
      
      This patch implements a fortified version of strscpy() enabled by setting
      CONFIG_FORTIFY_SOURCE=y.  The new version ensures the following before
      calling vanilla strscpy():
      
      1. There is no read overflow because either size is smaller than src
         length or we shrink size to src length by calling fortified strnlen().
      
      2. There is no write overflow because we either failed during
         compilation or at runtime by checking that size is smaller than dest
         size.  Note that, if src and dst size cannot be got, the patch defaults
         to call vanilla strscpy().
      
      The patches adds the following:
      
      1. Implement the fortified version of strscpy().
      
      2. Add a new LKDTM test to ensures the fortified version still returns
         the same value as the vanilla one while panic'ing when there is a write
         overflow.
      
      3. Correct some typos in LKDTM related file.
      
      I based my modifications on top of two patches from Daniel Axtens which
      modify calls to __builtin_object_size, in fortified string functions, to
      ensure the true size of char * are returned and not the surrounding
      structure size.
      
      About performance, I measured the slow down of fortified strscpy(), using
      the vanilla one as baseline.  The hardware I used is an Intel i3 2130 CPU
      clocked at 3.4 GHz.  I ran "Linux 5.10.0-rc4+ SMP PREEMPT" inside qemu
      3.10 with 4 CPU cores.  The following code, called through LKDTM, was used
      as a benchmark:
      
      #define TIMES 10000
      	char *src;
      	char dst[7];
      	int i;
      	ktime_t begin;
      
      	src = kstrdup("foobar", GFP_KERNEL);
      
      	if (src == NULL)
      		return;
      
      	begin = ktime_get();
      	for (i = 0; i < TIMES; i++)
      		strscpy(dst, src, strlen(src));
      	pr_info("%d fortified strscpy() tooks %lld", TIMES, ktime_get() - begin);
      
      	begin = ktime_get();
      	for (i = 0; i < TIMES; i++)
      		__real_strscpy(dst, src, strlen(src));
      	pr_info("%d vanilla strscpy() tooks %lld", TIMES, ktime_get() - begin);
      
      	kfree(src);
      
      I called the above code 30 times to compute stats for each version (in ns,
      round to int):
      
      | version   | mean    | std    | median  | 95th    |
      | --------- | ------- | ------ | ------- | ------- |
      | fortified | 245_069 | 54_657 | 216_230 | 331_122 |
      | vanilla   | 172_501 | 70_281 | 143_539 | 219_553 |
      
      On average, fortified strscpy() is approximately 1.42 times slower than
      vanilla strscpy().  For the 95th percentile, the fortified version is
      about 1.50 times slower.
      
      So, clearly the stats are not in favor of fortified strscpy().  But, the
      fortified version loops the string twice (one in strnlen() and another in
      vanilla strscpy()) while the vanilla one only loops once.  This can
      explain why fortified strscpy() is slower than the vanilla one.
      
      This patch (of 5):
      
      When the fortify feature was first introduced in commit 6974f0c4
      ("include/linux/string.h: add the option of fortified string.h
      functions"), Daniel Micay observed:
      
        * It should be possible to optionally use __builtin_object_size(x, 1) for
          some functions (C strings) to detect intra-object overflows (like
          glibc's _FORTIFY_SOURCE=2), but for now this takes the conservative
          approach to avoid likely compatibility issues.
      
      This is a case that often cannot be caught by KASAN. Consider:
      
      struct foo {
          char a[10];
          char b[10];
      }
      
      void test() {
          char *msg;
          struct foo foo;
      
          msg = kmalloc(16, GFP_KERNEL);
          strcpy(msg, "Hello world!!");
          // this copy overwrites foo.b
          strcpy(foo.a, msg);
      }
      
      The questionable copy overflows foo.a and writes to foo.b as well.  It
      cannot be detected by KASAN.  Currently it is also not detected by
      fortify, because strcpy considers __builtin_object_size(x, 0), which
      considers the size of the surrounding object (here, struct foo).  However,
      if we switch the string functions over to use __builtin_object_size(x, 1),
      the compiler will measure the size of the closest surrounding subobject
      (here, foo.a), rather than the size of the surrounding object as a whole.
      See https://gcc.gnu.org/onlinedocs/gcc/Object-Size-Checking.html for more
      info.
      
      Only do this for string functions: we cannot use it on things like memcpy,
      memmove, memcmp and memchr_inv due to code like this which purposefully
      operates on multiple structure members: (arch/x86/kernel/traps.c)
      
      	/*
      	 * regs->sp points to the failing IRET frame on the
      	 * ESPFIX64 stack.  Copy it to the entry stack.  This fills
      	 * in gpregs->ss through gpregs->ip.
      	 *
      	 */
      	memmove(&gpregs->ip, (void *)regs->sp, 5*8);
      
      This change passes an allyesconfig on powerpc and x86, and an x86 kernel
      built with it survives running with syz-stress from syzkaller, so it seems
      safe so far.
      
      Link: https://lkml.kernel.org/r/20201122162451.27551-1-laniel_francis@privacyrequired.com
      Link: https://lkml.kernel.org/r/20201122162451.27551-2-laniel_francis@privacyrequired.comSigned-off-by: default avatarDaniel Axtens <dja@axtens.net>
      Signed-off-by: default avatarFrancis Laniel <laniel_francis@privacyrequired.com>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Cc: Daniel Micay <danielmicay@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6a39e62a
    • Nick Desaulniers's avatar
      lib/string: remove unnecessary #undefs · ff72daa3
      Nick Desaulniers authored
      A few architecture specific string.h functions used to be implemented in
      terms of preprocessor defines to the corresponding compiler builtins.
      Since this is no longer the case, remove unused #undefs.
      
      Only memcmp is still defined in terms of builtins for a few arches.
      
      Link: https://github.com/ClangBuiltLinux/linux/issues/428
      Link: https://lkml.kernel.org/r/20201120041113.89382-1-ndesaulniers@google.com
      Fixes: 5f074f3e ("lib/string.c: implement a basic bcmp")
      Signed-off-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Yury Norov <yury.norov@gmail.com>
      Cc: Alexandru Ardelean <alexandru.ardelean@analog.com>
      Cc: Nathan Chancellor <natechancellor@gmail.com>
      Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ff72daa3
    • Jakub Jelinek's avatar
      ilog2: improve ilog2 for constant arguments · 2f78788b
      Jakub Jelinek authored
      As discussed in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97445 the
      const_ilog2 macro generates a lot of code which interferes badly with GCC
      inlining heuristics, until it can be proven that the ilog2 argument can or
      can't be simplified into a constant.
      
      It can be expressed using __builtin_clzll builtin which is supported by
      GCC 3.4 and later and when used only in the __builtin_constant_p guarded
      code it ought to always fold back to a constant.  Other compilers support
      the same builtin for many years too.
      
      Other option would be to change the const_ilog2 macro, though as the
      description says it is meant to be used also in C constant expressions,
      and while GCC will fold it to constant with constant argument even in
      those, perhaps it is better to avoid using extensions in that case.
      
      [akpm@linux-foundation.org: coding style fixes]
      
      Link: https://lkml.kernel.org/r/20201120125154.GB3040@hirez.programming.kicks-ass.net
      Link: https://lkml.kernel.org/r/20201021132718.GB2176@tucnakSigned-off-by: default avatarJakub Jelinek <jakub@redhat.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2f78788b
    • Andy Shevchenko's avatar
      lib/cmdline_kunit: add a new test suite for cmdline API · 7546861a
      Andy Shevchenko authored
      Test get_option() for a starter which is provided by cmdline.c.
      
      [akpm@linux-foundation.org: fix warning by constifying cmdline_test_values]
      [andriy.shevchenko@linux.intel.com: type of expected returned values should be int]
        Link: https://lkml.kernel.org/r/20201116104244.15472-1-andriy.shevchenko@linux.intel.com
      [andriy.shevchenko@linux.intel.com: provide meaningful MODULE_LICENSE()]
        Link: https://lkml.kernel.org/r/20201116104257.15527-1-andriy.shevchenko@linux.intel.com
      
      Link: https://lkml.kernel.org/r/20201112180732.75589-6-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Shuah Khan <skhan@linuxfoundation.org>
      Cc: Vitor Massaru Iha <vitor@massaru.org>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: Brendan Higgins <brendanhiggins@google.com>
      Cc: David Gow <davidgow@google.com>
      Cc: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7546861a
    • Andy Shevchenko's avatar
      lib/cmdline: allow NULL to be an output for get_option() · 6b2b6b86
      Andy Shevchenko authored
      In the future we would like to use get_option() to only validate the
      string and parse it separately.  To achieve this, allow NULL to be an
      output for get_option().
      
      Link: https://lkml.kernel.org/r/20201112180732.75589-5-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Brendan Higgins <brendanhiggins@google.com>
      Cc: David Gow <davidgow@google.com>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
      Cc: Shuah Khan <skhan@linuxfoundation.org>
      Cc: Vitor Massaru Iha <vitor@massaru.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6b2b6b86
    • Andy Shevchenko's avatar
      lib/cmdline: fix get_option() for strings starting with hyphen · e291851d
      Andy Shevchenko authored
      When string doesn't have an integer and starts from hyphen get_option()
      may return interesting results.  Fix it to return 0.
      
      The simple_strtoull() is used due to absence of simple_strtoul() in a boot
      code on some architectures.
      
      Note, the Fixes tag below is rather for anthropological curiosity.
      
      Link: https://lkml.kernel.org/r/20201112180732.75589-4-andriy.shevchenko@linux.intel.com
      Fixes: f6856583 ("Import 2.4.0-test2pre3")
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Brendan Higgins <brendanhiggins@google.com>
      Cc: David Gow <davidgow@google.com>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
      Cc: Shuah Khan <skhan@linuxfoundation.org>
      Cc: Vitor Massaru Iha <vitor@massaru.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e291851d
    • Sebastian Andrzej Siewior's avatar
      lib/test_lockup.c: minimum fix to get it compiled on PREEMPT_RT · 45e3d5a2
      Sebastian Andrzej Siewior authored
      On PREEMPT_RT the locks are quite different so they can't be tested as it
      is done below.  The alternative is to test for the waitlock within
      rtmutex.
      
      This is the bare minimun to get it compiled.  Problems which exist on
      PREEMP_RT:
      
       - none of the locks (spinlock_t, rwlock_t, mutex_t, rw_semaphore) may
         be acquired with disabled preemption or interrupts.
      
         If I read the code correct the it is possible to acquire a mutex_t
         with disabled interrupts.
      
         I don't know how to obtain a lock pointer. Technically they are not
         exported to userland.
      
       - memory can not be allocated with disabled preemption or interrupts
         even with GFP_ATOMIC.
      
      Link: https://lkml.kernel.org/r/20201028181041.xyeothhkouc3p4md@linutronix.deSigned-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      45e3d5a2
    • Gustavo A. R. Silva's avatar
      lib/stackdepot.c: use array_size() helper in jhash2() · 180644f8
      Gustavo A. R. Silva authored
      Use array_size() helper instead of the open-coded version in jhash2().
      These sorts of multiplication factors need to be wrapped in array_size().
      
      Also, use the preferred form for passing the size of an object type.
      
      Link: https://lkml.kernel.org/r/cb8a682e4bba4dbddd2bd8aca7f8c02fea89639b.1601565471.git.gustavoars@kernel.orgSigned-off-by: default avatarGustavo A. R. Silva <gustavoars@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      180644f8
    • Gustavo A. R. Silva's avatar
      lib/stackdepot.c: use flex_array_size() helper in memcpy() · 47e684aa
      Gustavo A. R. Silva authored
      Make use of the flex_array_size() helper to calculate the size of a
      flexible array member within an enclosing structure.
      
      This helper offers defense-in-depth against potential integer overflows,
      while at the same time makes it explicitly clear that we are dealing with
      a flexible array member.
      
      Link: https://lkml.kernel.org/r/186e37fe07196ee41a0e562fa8a8cb7a01112ec5.1601565471.git.gustavoars@kernel.orgSigned-off-by: default avatarGustavo A. R. Silva <gustavoars@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      47e684aa
    • Gustavo A. R. Silva's avatar
      lib/stackdepot.c: replace one-element array with flexible-array member · 3a2b67e6
      Gustavo A. R. Silva authored
      Patch series "lib/stackdepot.c: Replace one-element array with flexible-array member".
      
      This series aims to replace a one-element array with a flexible-array
      member.  Also, make use of the struct_size(), flexible_array_size() and
      array_size() helpers.
      
      This patch (of 3):
      
      There is a regular need in the kernel to provide a way to declare having a
      dynamically sized set of trailing elements in a structure.  Kernel code
      should always use “flexible array members”[1] for these cases.  The
      older style of one-element or zero-length arrays should no longer be
      used[2].
      
      Refactor the code according to the use of a flexible-array member in
      struct stack_record, instead of a one-element array, and use the
      struct_size() helper to calculate the size for the allocation.
      
      [1] https://en.wikipedia.org/wiki/Flexible_array_member
      [2] https://www.kernel.org/doc/html/v5.9-rc1/process/deprecated.html#zero-length-and-one-element-arrays
      
      Link: https://lkml.kernel.org/r/cover.1601565471.git.gustavoars@kernel.org
      Link: https://lore.kernel.org/lkml/5f75876b.x9zdN10esiC0qLHV%25lkp@intel.com/
      Link: https://lkml.kernel.org/r/2f1e6a17aaa891ad9c58817cf0a10b8ab8894f59.1601565471.git.gustavoars@kernel.orgSigned-off-by: default avatarGustavo A. R. Silva <gustavoars@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3a2b67e6
    • Geert Uytterhoeven's avatar
      lib/test_free_pages.c: add basic progress indicators · 0ae446e4
      Geert Uytterhoeven authored
      The test module to check that free_pages() does not leak memory does not
      provide any feedback whatsoever its state or progress, but may take some
      time on slow machines.  Add the printing of messages upon starting each
      phase of the test, and upon completion.
      
      Link: https://lkml.kernel.org/r/20201018140445.20972-1-geert@linux-m68k.orgSigned-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Cc: Mike Rapoport <rppt@kernel.org>
      Cc: Matthew Wilcox <willy@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0ae446e4
    • Ma, Jianpeng's avatar
    • Andy Shevchenko's avatar
      include/linux/bitmap.h: convert bitmap_empty() / bitmap_full() to return boolean · 0bb86779
      Andy Shevchenko authored
      There is no need to return int type out of boolean expression.
      
      Link: https://lkml.kernel.org/r/20201027180936.20806-1-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Yury Norov <yury.norov@gmail.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0bb86779
    • Hui Su's avatar
      35189b8f
    • Andy Shevchenko's avatar
      kernel.h: split out mathematical helpers · aa6159ab
      Andy Shevchenko authored
      kernel.h is being used as a dump for all kinds of stuff for a long time.
      Here is the attempt to start cleaning it up by splitting out
      mathematical helpers.
      
      At the same time convert users in header and lib folder to use new
      header.  Though for time being include new header back to kernel.h to
      avoid twisted indirected includes for existing users.
      
      [sfr@canb.auug.org.au: fix powerpc build]
        Link: https://lkml.kernel.org/r/20201029150809.13059608@canb.auug.org.au
      
      Link: https://lkml.kernel.org/r/20201028173212.41768-1-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: "Paul E. McKenney" <paulmck@kernel.org>
      Cc: Trond Myklebust <trond.myklebust@hammerspace.com>
      Cc: Jeff Layton <jlayton@kernel.org>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      aa6159ab
    • Christophe Leroy's avatar
      asm-generic: force inlining of get_order() to work around gcc10 poor decision · 0a571b08
      Christophe Leroy authored
      When building mpc885_ads_defconfig with gcc 10.1,
      the function get_order() appears 50 times in vmlinux:
      
        [linux]# ppc-linux-objdump -x vmlinux | grep get_order | wc -l
        50
      
        [linux]# size vmlinux
           text	   data	    bss	    dec	    hex	filename
        3842620	 675624	 135160	4653404	 47015c	vmlinux
      
      In the old days, marking a function 'static inline' was forcing GCC to
      inline, but since commit ac7c3e4f ("compiler: enable
      CONFIG_OPTIMIZE_INLINING forcibly") GCC may decide to not inline a
      function.
      
      It looks like GCC 10 is taking poor decisions on this.
      
      get_order() compiles into the following tiny function, occupying 20
      bytes of text.
      
        0000007c <get_order>:
          7c:   38 63 ff ff     addi    r3,r3,-1
          80:   54 63 a3 3e     rlwinm  r3,r3,20,12,31
          84:   7c 63 00 34     cntlzw  r3,r3
          88:   20 63 00 20     subfic  r3,r3,32
          8c:   4e 80 00 20     blr
      
      By forcing get_order() to be __always_inline, the size of text is
      reduced by 1940 bytes, that is almost twice the space occupied by
      50 times get_order()
      
        [linux-powerpc]# size vmlinux
           text	   data	    bss	    dec	    hex	filename
        3840680	 675588	 135176	4651444	 46f9b4	vmlinux
      
      Link: https://lkml.kernel.org/r/96c6172d619c51acc5c1c4884b80785c59af4102.1602949927.git.christophe.leroy@csgroup.euSigned-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
      Reviewed-by: default avatarJoel Stanley <joel@jms.id.au>
      Cc: Segher Boessenkool <segher@kernel.crashing.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0a571b08
    • Hui Su's avatar
      fs/proc: make pde_get() return nothing · a9389683
      Hui Su authored
      We don't need pde_get()'s return value, so make pde_get() return nothing
      
      Link: https://lkml.kernel.org/r/20201211061944.GA2387571@rlkSigned-off-by: default avatarHui Su <sh_def@163.com>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Cc: Eric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a9389683
    • Alexey Dobriyan's avatar
      proc: fix lookup in /proc/net subdirectories after setns(2) · c6c75ded
      Alexey Dobriyan authored
      Commit 1fde6f21 ("proc: fix /proc/net/* after setns(2)") only forced
      revalidation of regular files under /proc/net/
      
      However, /proc/net/ is unusual in the sense of /proc/net/foo handlers
      take netns pointer from parent directory which is old netns.
      
      Steps to reproduce:
      
      	(void)open("/proc/net/sctp/snmp", O_RDONLY);
      	unshare(CLONE_NEWNET);
      
      	int fd = open("/proc/net/sctp/snmp", O_RDONLY);
      	read(fd, &c, 1);
      
      Read will read wrong data from original netns.
      
      Patch forces lookup on every directory under /proc/net .
      
      Link: https://lkml.kernel.org/r/20201205160916.GA109739@localhost.localdomain
      Fixes: 1da4d377 ("proc: revalidate misc dentries")
      Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Reported-by: default avatar"Rantala, Tommi T. (Nokia - FI/Espoo)" <tommi.t.rantala@nokia.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c6c75ded
    • Anand K Mistry's avatar
      proc: provide details on indirect branch speculation · fe719888
      Anand K Mistry authored
      Similar to speculation store bypass, show information about the indirect
      branch speculation mode of a task in /proc/$pid/status.
      
      For testing/benchmarking, I needed to see whether IB (Indirect Branch)
      speculation (see Spectre-v2) is enabled on a task, to see whether an
      IBPB instruction should be executed on an address space switch.
      Unfortunately, this information isn't available anywhere else and
      currently the only way to get it is to hack the kernel to expose it
      (like this change).  It also helped expose a bug with conditional IB
      speculation on certain CPUs.
      
      Another place this could be useful is to audit the system when using
      sanboxing.  With this change, I can confirm that seccomp-enabled
      process have IB speculation force disabled as expected when the kernel
      command line parameter `spectre_v2_user=seccomp`.
      
      Since there's already a 'Speculation_Store_Bypass' field, I used that
      as precedent for adding this one.
      
      [amistry@google.com: remove underscores from field name to workaround documentation issue]
        Link: https://lkml.kernel.org/r/20201106131015.v2.1.I7782b0cedb705384a634cfd8898eb7523562da99@changeid
      
      Link: https://lkml.kernel.org/r/20201030172731.1.I7782b0cedb705384a634cfd8898eb7523562da99@changeidSigned-off-by: default avatarAnand K Mistry <amistry@google.com>
      Cc: Anthony Steinhauser <asteinhauser@google.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Anand K Mistry <amistry@google.com>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Cc: Alexey Gladkov <gladkov.alexey@gmail.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
      Cc: Michal Hocko <mhocko@suse.com>
      Cc: Mike Rapoport <rppt@kernel.org>
      Cc: NeilBrown <neilb@suse.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      fe719888
    • Randy Dunlap's avatar
      procfs: delete duplicated words + other fixes · d2928e85
      Randy Dunlap authored
      Delete repeated words in fs/proc/.
      {the, which}
      where "which which" was changed to "with which".
      
      Link: https://lkml.kernel.org/r/20201028191525.13413-1-rdunlap@infradead.orgSigned-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d2928e85
    • Thomas Gleixner's avatar
      alpha: replace bogus in_interrupt() · 4083a281
      Thomas Gleixner authored
      in_interrupt() is true for a variety of things including bottom half
      disabled regions.  Deducing hard interrupt context from it is dubious at
      best.
      
      Use in_irq() which is true if called in hard interrupt context.  Otherwise
      calling irq_exit() would do more harm than good.
      
      Link: https://lkml.kernel.org/r/20201113135832.2202833-1-bigeasy@linutronix.deSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Tested-by: default avatarSerge Belyshev <belyshev@depni.sinp.msu.ru>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4083a281
    • Laurent Dufour's avatar
      mm/memory_hotplug: quieting offline operation · 7c33023a
      Laurent Dufour authored
      On PowerPC, when dymically removing memory from a system we can see in the
      console a lot of messages like this:
      
      [  186.575389] Offlined Pages 4096
      
      This message is displayed on each LMB (256MB) removed, which means that we
      removing 1TB of memory, this message is displayed 4096 times.
      
      Moving it to DEBUG to not flood the console.
      
      Link: https://lkml.kernel.org/r/20201211150157.91399-1-ldufour@linux.ibm.comSigned-off-by: default avatarLaurent Dufour <ldufour@linux.ibm.com>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Cc: Nathan Lynch <nathanl@linux.ibm.com>
      Cc: Scott Cheloha <cheloha@linux.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7c33023a
    • Zhaoyang Huang's avatar
      mm: fix a race on nr_swap_pages · b50da6e9
      Zhaoyang Huang authored
      The scenario on which "Free swap = -4kB" happens in my system, which is caused
      by several get_swap_pages racing with each other and show_swap_cache_info
      happens simutaniously. No need to add a lock on get_swap_page_of_type as we
      remove "Presub/PosAdd" here.
      
      ProcessA			ProcessB			ProcessC
      ngoals = 1			ngoals = 1
      avail = nr_swap_pages(1)	avail = nr_swap_pages(1)
      nr_swap_pages(1) -= ngoals
      				nr_swap_pages(0) -= ngoals
      								nr_swap_pages = -1
      
      Link: https://lkml.kernel.org/r/1607050340-4535-1-git-send-email-zhaoyang.huang@unisoc.comSigned-off-by: default avatarZhaoyang Huang <zhaoyang.huang@unisoc.com>
      Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b50da6e9
    • Linus Torvalds's avatar
      Merge tag 'pci-v5.11-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 489e9fea
      Linus Torvalds authored
      Pull PCI updates from Bjorn Helgaas:
       "Enumeration:
         - Decode PCIe 64 GT/s link speed (Gustavo Pimentel)
         - Remove unused HAVE_PCI_SET_MWI (Heiner Kallweit)
         - Reduce pci_set_cacheline_size() message to debug level (Heiner
           Kallweit)
         - Fix pci_slot_release() NULL pointer dereference (Jubin Zhong)
         - Unify ECAM constants in native PCI Express drivers (Krzysztof
           Wilczyński)
         - Return u8 from pci_find_capability() and similar (Puranjay Mohan)
         - Return u16 from pci_find_ext_capability() and similar (Bjorn
           Helgaas)
         - Fix ACPI companion lookup for device 0 on the root bus (Rafael J.
           Wysocki)
      
        Resource management:
         - Keep both device and resource name for config space remaps
           (Alexander Lobakin)
         - Bounds-check command-line resource alignment requests (Bjorn
           Helgaas)
         - Fix overflow in command-line resource alignment requests (Colin Ian
           King)
      
        Driver binding:
         - Avoid duplicate IDs in driver dynamic IDs list (Zhenzhong Duan)
      
        Power management:
         - Save/restore Precision Time Measurement Capability for
           suspend/resume (David E. Box)
         - Disable PTM during suspend to save power (David E. Box)
         - Add sysfs attribute for device power state (Maximilian Luz)
         - Rename pci_wakeup_bus() to pci_resume_bus() (Mika Westerberg)
         - Do not generate wakeup event when runtime resuming device (Mika
           Westerberg)
         - Save/restore ASPM L1SS Capability for suspend/resume (Vidya Sagar)
      
        Virtualization:
         - Mark AMD Raven iGPU ATS as broken in some platforms (Alex Deucher)
         - Add function 1 DMA alias quirk for Marvell 9215 SATA controller
           (Bjorn Helgaas)
      
        MSI:
         - Disable MSI for Pericom PCIe-USB adapter (Andy Shevchenko)
         - Improve warnings for 32-bit-limited MSI support (Vidya Sagar)
      
        Error handling:
         - Cache RCEC EA Capability offset in pci_init_capabilities() (Sean V
           Kelley)
         - Rename reset_link() to reset_subordinates() (Sean V Kelley)
         - Write AER Capability only when we control it (Sean V Kelley)
         - Clear AER status only when we control AER (Sean V Kelley)
         - Bind RCEC devices to the Root Port driver (Qiuxu Zhuo)
         - Recover from RCiEP AER errors (Qiuxu Zhuo)
         - Recover from RCEC AER errors (Sean V Kelley)
         - Add pcie_link_rcec() to associate RCiEPs (Sean V Kelley)
         - Add pcie_walk_rcec() to RCEC AER handling (Sean V Kelley)
         - Add pcie_walk_rcec() to RCEC PME handling (Sean V Kelley)
         - Add RCEC AER error injection support (Qiuxu Zhuo)
      
        Broadcom iProc PCIe controller driver:
         - Fix out-of-bound array accesses (Bharat Gooty)
         - Invalidate correct PAXB inbound windows (Roman Bacik)
         - Enhance PCIe Link information display (Srinath Mannam)
      
        Cadence PCIe controller driver:
         - Make "cdns,max-outbound-regions" property optional (Kishon Vijay
           Abraham I)
      
        Intel VMD host bridge driver:
         - Offset client MSI-X vectors (Jon Derrick)
         - Update type of __iomem pointers (Krzysztof Wilczyński)
      
        NVIDIA Tegra PCIe controller driver:
         - Move "dbi" accesses to post common DWC initialization (Vidya Sagar)
         - Read "dbi" base address to program in application logic (Vidya
           Sagar)
         - Fix ASPM-L1SS advertisement disable code (Vidya Sagar)
         - Set DesignWare IP version (Vidya Sagar)
         - Continue unconfig sequence even if parts fail (Vidya Sagar)
         - Check return value of tegra_pcie_init_controller() (Vidya Sagar)
         - Disable LTSSM during L2 entry (Vidya Sagar)
      
        Qualcomm PCIe controller driver:
         - Document PCIe bindings for SM8250 SoC (Manivannan Sadhasivam)
         - Add SM8250 SoC support (Manivannan Sadhasivam)
         - Add support for configuring BDF to SID mapping for SM8250
           (Manivannan Sadhasivam)
      
        Renesas R-Car PCIe controller driver:
         - rcar: Drop unused members from struct rcar_pcie_host (Lad
           Prabhakar)
         - PCI: rcar-pci-host: Document r8a774e1 bindings (Lad Prabhakar)
         - PCI: rcar-pci-host: Convert bindings to json-schema (Yoshihiro
           Shimoda)
         - PCI: rcar-pci-host: Document r8a77965 bindings (Yoshihiro Shimoda)
      
        Samsung Exynos PCIe controller driver:
         - Rework driver to support Exynos5433 PCIe PHY (Jaehoon Chung)
         - Rework driver to support Exynos5433 variant (Jaehoon Chung)
         - Drop samsung,exynos5440-pcie binding (Marek Szyprowski)
         - Add the samsung,exynos-pcie binding (Marek Szyprowski)
         - Add the samsung,exynos-pcie-phy binding (Marek Szyprowski)
      
        Synopsys DesignWare PCIe controller driver:
         - Support multiple ATU memory regions (Rob Herring)
         - Move intel-gw ATU offset out of driver match data (Rob Herring)
         - Move "dbi", "dbi2", and "addr_space" resource setup into common
           code (Rob Herring)
         - Remove intel-gw unneeded function wrappers (Rob Herring)
         - Ensure all outbound ATU windows are reset (Rob Herring)
         - Use the common MSI irq_chip in dra7xx (Rob Herring)
         - Drop the .set_num_vectors() host op (Rob Herring)
         - Move MSI interrupt setup into DWC common code (Rob Herring)
         - Rework MSI initialization (Rob Herring)
         - Move link handling into common code (Rob Herring)
         - Move dw_pcie_msi_init() into core (Rob Herring)
         - Move dw_pcie_setup_rc() to DWC common code (Rob Herring)
         - Remove unnecessary wrappers around dw_pcie_host_init() (Rob
           Herring)
         - Drop keystone duplicated 'num-viewport'" (Rob Herring)
         - Move inbound and outbound windows to common struct (Rob Herring)
         - Detect number of iATU windows (Rob Herring)
         - Warn if non-prefetchable memory aperture size is > 32-bit (Vidya
           Sagar)
         - Add support to program ATU for >4GB memory (Vidya Sagar)
         - Set 32-bit DMA mask for MSI target address allocation (Vidya Sagar)
      
        TI J721E PCIe driver:
         - Fix "ti,syscon-pcie-ctrl" to take argument (Kishon Vijay Abraham I)
         - Add host mode dt-bindings for TI's J7200 SoC (Kishon Vijay Abraham
           I)
         - Add EP mode dt-bindings for TI's J7200 SoC (Kishon Vijay Abraham I)
         - Get offset within "syscon" from "ti,syscon-pcie-ctrl" phandle arg
           (Kishon Vijay Abraham I)
      
        TI Keystone PCIe controller driver:
         - Enable compile-testing on !ARM (Alex Dewar)"
      
      * tag 'pci-v5.11-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (100 commits)
        PCI: Add function 1 DMA alias quirk for Marvell 9215 SATA controller
        PCI/ACPI: Fix companion lookup for device 0 on the root bus
        PCI: Keep both device and resource name for config space remaps
        PCI: xgene: Removed unused ".bus_shift" initialisers from pci-xgene.c
        PCI: vmd: Update type of the __iomem pointers
        PCI: iproc: Convert to use the new ECAM constants
        PCI: thunder-pem: Add constant for custom ".bus_shift" initialiser
        PCI: Unify ECAM constants in native PCI Express drivers
        PCI: Disable PTM during suspend to save power
        PCI/PTM: Save/restore Precision Time Measurement Capability for suspend/resume
        PCI: Mark AMD Raven iGPU ATS as broken in some platforms
        PCI: j721e: Get offset within "syscon" from "ti,syscon-pcie-ctrl" phandle arg
        dt-bindings: PCI: Add EP mode dt-bindings for TI's J7200 SoC
        dt-bindings: PCI: Add host mode dt-bindings for TI's J7200 SoC
        dt-bindings: pci: ti,j721e: Fix "ti,syscon-pcie-ctrl" to take argument
        PCI: dwc: Set 32-bit DMA mask for MSI target address allocation
        PCI: qcom: Add support for configuring BDF to SID mapping for SM8250
        PCI: Reduce pci_set_cacheline_size() message to debug level
        PCI: Remove unused HAVE_PCI_SET_MWI
        PCI: qcom: Add SM8250 SoC support
        ...
      489e9fea
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · aab7ce2b
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "These update the ACPICA code in the kernel to upstream revision
        20201113, fix and clean up some resources manipulation code, extend
        the enumeration and gpio-line-names property documentation, clean up
        the handling of _DEP during device enumeration, add a new backlight
        DMI quirk, clean up transaction handling in the EC driver and make
        some assorted janitorial changes.
      
        Specifics:
      
         - Update ACPICA code in the kernel to upstream revision 20201113 with
           changes as follows:
             * Add 5 new UUIDs to the known UUID table (Bob Moore)
             * Remove extreaneous "the" in comments (Colin Ian King)
             * Add function trace macros to improve debugging (Erik Kaneda)
             * Fix interpreter memory leak (Erik Kaneda)
             * Handle "orphan" _REG for GPIO OpRegions (Hans de Goede)
      
         - Introduce resource_union() and resource_intersection() helpers and
           clean up some resource-manipulation code with the help of them
           (Andy Shevchenko)
      
         - Revert problematic commit related to the handling of resources in
           the ACPI core (Daniel Scally)
      
         - Extend the ACPI device enumeration documentation and the
           gpio-line-names _DSD property documentation, clean up the latter
           (Flavio Suligoi)
      
         - Clean up _DEP handling during device enumeration, modify the list
           of _DEP exceptions and the handling of it and fix up terminology
           related to _DEP (Hans de Goede, Rafael Wysocki)
      
         - Eliminate in_interrupt() usage from the ACPI EC driver (Sebastian
           Andrzej Siewior)
      
         - Clean up the advance_transaction() routine and related code in the
           ACPI EC driver (Rafael Wysocki)
      
         - Add new backlight quirk for GIGABYTE GB-BXBT-2807 (Jasper St
           Pierre)
      
         - Make assorted janitorial changes in several ACPI-related pieces of
           code (Hanjun Guo, Jason Yan, Punit Agrawal)"
      
      * tag 'acpi-5.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (40 commits)
        ACPI: scan: Fix up _DEP-related terminology with supplier/consumer
        ACPI: scan: Drop INT3396 from acpi_ignore_dep_ids[]
        ACPI: video: Add DMI quirk for GIGABYTE GB-BXBT-2807
        Revert "ACPI / resources: Use AE_CTRL_TERMINATE to terminate resources walks"
        ACPI: scan: Add PNP0D80 to the _DEP exceptions list
        ACPI: scan: Call acpi_get_object_info() from acpi_add_single_object()
        ACPI: scan: Add acpi_info_matches_hids() helper
        ACPICA: Update version to 20201113
        ACPICA: Interpreter: fix memory leak by using existing buffer
        ACPICA: Add function trace macros to improve debugging
        ACPICA: Also handle "orphan" _REG methods for GPIO OpRegions
        ACPICA: Remove extreaneous "the" in comments
        ACPICA: Add 5 new UUIDs to the known UUID table
        resource: provide meaningful MODULE_LICENSE() in test suite
        ASoC: Intel: catpt: Replace open coded variant of resource_intersection()
        ACPI: processor: Drop duplicate setting of shared_cpu_map
        ACPI: EC: Clean up status flags checks in advance_transaction()
        ACPI: EC: Untangle error handling in advance_transaction()
        ACPI: EC: Simplify error handling in advance_transaction()
        ACPI: EC: Rename acpi_ec_is_gpe_raised()
        ...
      aab7ce2b
    • Linus Torvalds's avatar
      Merge tag 'pm-5.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · b4ec8054
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These update cpufreq (core and drivers), cpuidle (polling state
        implementation and the PSCI driver), the OPP (operating performance
        points) framework, devfreq (core and drivers), the power capping RAPL
        (Running Average Power Limit) driver, the Energy Model support, the
        generic power domains (genpd) framework, the ACPI device power
        management, the core system-wide suspend code and power management
        utilities.
      
        Specifics:
      
         - Use local_clock() instead of jiffies in the cpufreq statistics to
           improve accuracy (Viresh Kumar).
      
         - Fix up OPP usage in the cpufreq-dt and qcom-cpufreq-nvmem cpufreq
           drivers (Viresh Kumar).
      
         - Clean up the cpufreq core, the intel_pstate driver and the
           schedutil cpufreq governor (Rafael Wysocki).
      
         - Fix up error code paths in the sti-cpufreq and mediatek cpufreq
           drivers (Yangtao Li, Qinglang Miao).
      
         - Fix cpufreq_online() to return error codes instead of success (0)
           in all cases when it fails (Wang ShaoBo).
      
         - Add mt8167 support to the mediatek cpufreq driver and blacklist
           mt8516 in the cpufreq-dt-platdev driver (Fabien Parent).
      
         - Modify the tegra194 cpufreq driver to always return values from the
           frequency table as the current frequency and clean up that driver
           (Sumit Gupta, Jon Hunter).
      
         - Modify the arm_scmi cpufreq driver to allow it to discover the
           power scale present in the performance protocol and provide this
           information to the Energy Model (Lukasz Luba).
      
         - Add missing MODULE_DEVICE_TABLE to several cpufreq drivers (Pali
           Rohár).
      
         - Clean up the CPPC cpufreq driver (Ionela Voinescu).
      
         - Fix NVMEM_IMX_OCOTP dependency in the imx cpufreq driver (Arnd
           Bergmann).
      
         - Rework the poling interval selection for the polling state in
           cpuidle (Mel Gorman).
      
         - Enable suspend-to-idle for PSCI OSI mode in the PSCI cpuidle driver
           (Ulf Hansson).
      
         - Modify the OPP framework to support empty (node-less) OPP tables in
           DT for passing dependency information (Nicola Mazzucato).
      
         - Fix potential lockdep issue in the OPP core and clean up the OPP
           core (Viresh Kumar).
      
         - Modify dev_pm_opp_put_regulators() to accept a NULL argument and
           update its users accordingly (Viresh Kumar).
      
         - Add frequency changes tracepoint to devfreq (Matthias Kaehlcke).
      
         - Add support for governor feature flags to devfreq, make devfreq
           sysfs file permissions depend on the governor and clean up the
           devfreq core (Chanwoo Choi).
      
         - Clean up the tegra20 devfreq driver and deprecate it to allow
           another driver based on EMC_STAT to be used instead of it (Dmitry
           Osipenko).
      
         - Add interconnect support to the tegra30 devfreq driver, allow it to
           take the interconnect and OPP information from DT and clean it up
           (Dmitry Osipenko).
      
         - Add interconnect support to the exynos-bus devfreq driver along
           with interconnect properties documentation (Sylwester Nawrocki).
      
         - Add suport for AMD Fam17h and Fam19h processors to the RAPL power
           capping driver (Victor Ding, Kim Phillips).
      
         - Fix handling of overly long constraint names in the powercap
           framework (Lukasz Luba).
      
         - Fix the wakeup configuration handling for bridges in the ACPI
           device power management core (Rafael Wysocki).
      
         - Add support for using an abstract scale for power units in the
           Energy Model (EM) and document it (Lukasz Luba).
      
         - Add em_cpu_energy() micro-optimization to the EM (Pavankumar
           Kondeti).
      
         - Modify the generic power domains (genpd) framwework to support
           suspend-to-idle (Ulf Hansson).
      
         - Fix creation of debugfs nodes in genpd (Thierry Strudel).
      
         - Clean up genpd (Lina Iyer).
      
         - Clean up the core system-wide suspend code and make it print driver
           flags for devices with debug enabled (Alex Shi, Patrice Chotard,
           Chen Yu).
      
         - Modify the ACPI system reboot code to make it prepare for system
           power off to avoid confusing the platform firmware (Kai-Heng Feng).
      
         - Update the pm-graph (multiple changes, mostly usability-related)
           and cpupower (online and offline CPU information support) PM
           utilities (Todd Brandt, Brahadambal Srinivasan)"
      
      * tag 'pm-5.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (86 commits)
        cpufreq: Fix cpufreq_online() return value on errors
        cpufreq: Fix up several kerneldoc comments
        cpufreq: stats: Use local_clock() instead of jiffies
        cpufreq: schedutil: Simplify sugov_update_next_freq()
        cpufreq: intel_pstate: Simplify intel_cpufreq_update_pstate()
        PM: domains: create debugfs nodes when adding power domains
        opp: of: Allow empty opp-table with opp-shared
        dt-bindings: opp: Allow empty OPP tables
        media: venus: dev_pm_opp_put_*() accepts NULL argument
        drm/panfrost: dev_pm_opp_put_*() accepts NULL argument
        drm/lima: dev_pm_opp_put_*() accepts NULL argument
        PM / devfreq: exynos: dev_pm_opp_put_*() accepts NULL argument
        cpufreq: qcom-cpufreq-nvmem: dev_pm_opp_put_*() accepts NULL argument
        cpufreq: dt: dev_pm_opp_put_regulators() accepts NULL argument
        opp: Allow dev_pm_opp_put_*() APIs to accept NULL opp_table
        opp: Don't create an OPP table from dev_pm_opp_get_opp_table()
        cpufreq: dt: Don't (ab)use dev_pm_opp_get_opp_table() to create OPP table
        opp: Reduce the size of critical section in _opp_kref_release()
        PM / EM: Micro optimization in em_cpu_energy
        cpufreq: arm_scmi: Discover the power scale in performance protocol
        ...
      b4ec8054
    • Linus Torvalds's avatar
      Merge tag 'thermal-v5.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux · b109bc72
      Linus Torvalds authored
      Pull thermal updates from Daniel Lezcano:
      
       - Add upper and lower limits clamps for the cooling device state in the
         power allocator governor (Michael Kao)
      
       - Add upper and lower limits support for the power allocator governor
         (Lukasz Luba)
      
       - Optimize conditions testing for the trip points (Bernard Zhao)
      
       - Replace spin_lock_irqsave by spin_lock in hard IRQ on the rcar driver
         (Tian Tao)
      
       - Add MT8516 dt-bindings and device reset optional support (Fabien
         Parent)
      
       - Add a quiescent period to cool down the PCH when entering S0iX
         (Sumeet Pawnikar)
      
       - Use bitmap API instead of re-inventing the wheel on sun8i (Yangtao
         Li)
      
       - Remove useless NULL check in the hwmon driver (Bernard Zhao)
      
       - Update the current state in the cpufreq cooling device only if the
         frequency change is effective (Zhuguangqing)
      
       - Improve the schema validation for the rcar DT bindings (Geert
         Uytterhoeven)
      
       - Fix the user time unit in the documentation (Viresh Kumar)
      
       - Add PCI ids for Lewisburg PCH (Andres Freund)
      
       - Add hwmon support on amlogic (Martin Blumenstingl)
      
       - Fix build failure for PCH entering on in S0iX (Randy Dunlap)
      
       - Improve the k_* coefficient for the power allocator governor (Lukasz
         Luba)
      
       - Fix missing const on a sysfs attribute (Rikard Falkeborn)
      
       - Remove broken interrupt support on rcar to be replaced by a new one
         (Niklas Söderlund)
      
       - Improve the error code handling at init time on imx8mm (Fabio
         Estevam)
      
       - Compute interval validity once instead at each temperature reading
         iteration on acerhdf (Daniel Lezcano)
      
       - Add r8a779a0 support (Niklas Söderlund)
      
       - Add PCI ids for AlderLake PCH and mmio refactoring (Srinivas
         Pandruvada)
      
       - Add RFIM and mailbox support on int340x (Srinivas Pandruvada)
      
       - Use macro for temperature calculation on PCH (Sumeet Pawnikar)
      
       - Simplify return conditions at probe time on Broadcom (Zheng Yongjun)
      
       - Fix workload name on PCH (Srinivas Pandruvada)
      
       - Migrate the devfreq cooling device code to the energy model API
         (Lukasz Luba)
      
       - Emit a warning if the thermal_zone_device_update is called without
         the .get_temp() ops (Daniel Lezcano)
      
       - Add critical and hot ops for the thermal zone (Daniel Lezcano)
      
       - Remove notification usage when critical is reached on rcar (Daniel
         Lezcano)
      
       - Fix devfreq build when ENERGY_MODEL is not set (Lukasz Luba)
      
      * tag 'thermal-v5.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux: (45 commits)
        thermal/drivers/devfreq_cooling: Fix the build when !ENERGY_MODEL
        thermal/drivers/rcar: Remove notification usage
        thermal/core: Add critical and hot ops
        thermal/core: Emit a warning if the thermal zone is updated without ops
        drm/panfrost: Register devfreq cooling and attempt to add Energy Model
        thermal: devfreq_cooling: remove old power model and use EM
        thermal: devfreq_cooling: add new registration functions with Energy Model
        thermal: devfreq_cooling: use a copy of device status
        thermal: devfreq_cooling: change tracing function and arguments
        thermal: int340x: processor_thermal: Correct workload type name
        thermal: broadcom: simplify the return expression of bcm2711_thermal_probe()
        thermal: intel: pch: use macro for temperature calculation
        thermal: int340x: processor_thermal: Add mailbox driver
        thermal: int340x: processor_thermal: Add RFIM driver
        thermal: int340x: processor_thermal: Add AlderLake PCI device id
        thermal: int340x: processor_thermal: Refactor MMIO interface
        thermal: rcar_gen3_thermal: Add r8a779a0 support
        dt-bindings: thermal: rcar-gen3-thermal: Add r8a779a0 support
        platform/x86/drivers/acerhdf: Check the interval value when it is set
        platform/x86/drivers/acerhdf: Use module_param_cb to set/get polling interval
        ...
      b109bc72
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · ee249d30
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
      
       - support for inhibiting input devices at request from userspace. If a
         device implements open/close methods, it can also put device into low
         power state. This is needed, for example, to disable keyboard and
         touchpad on convertibles when they are transitioned into tablet mode
      
       - now that ordinary input devices can be configured for polling mode,
         dedicated input polling device implementation has been removed
      
       - GTCO tablet driver has been removed, as it used problematic custom
         HID parser, devices are EOL, and there is no interest from the
         manufacturer
      
       - a new driver for Dialog DA7280 haptic chips has been introduced
      
       - a new driver for power button on Dell Wyse 3020
      
       - support for eKTF2132 in ektf2127 driver
      
       - support for SC2721 and SC2730 in sc27xx-vibra driver
      
       - enhancements for Atmel touchscreens, AD7846 touchscreens, Elan
         touchpads, ADP5589, ST1232 touchscreen, TM2 touchkey drivers
      
       - fixes and cleanups to allow clean builds with W=1
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (86 commits)
        Input: da7280 - fix spelling mistake "sequemce" -> "sequence"
        Input: cyapa_gen6 - fix out-of-bounds stack access
        Input: sc27xx - add support for sc2730 and sc2721
        dt-bindings: input: Add compatible string for SC2721 and SC2730
        dt-bindings: input: Convert sc27xx-vibra.txt to json-schema
        Input: stmpe - add axis inversion and swapping capability
        Input: adp5589-keys - do not explicitly control IRQ for wakeup
        Input: adp5589-keys - do not unconditionally configure as wakeup source
        Input: ipx4xx-beeper - convert comma to semicolon
        Input: parkbd - convert comma to semicolon
        Input: new da7280 haptic driver
        dt-bindings: input: Add document bindings for DA7280
        MAINTAINERS: da7280 updates to the Dialog Semiconductor search terms
        Input: elantech - fix protocol errors for some trackpoints in SMBus mode
        Input: elan_i2c - add new trackpoint report type 0x5F
        Input: elants - document some registers and values
        Input: atmel_mxt_ts - simplify the return expression of mxt_send_bootloader_cmd()
        Input: imx_keypad - add COMPILE_TEST support
        Input: applespi - use new structure for SPI transfer delays
        Input: synaptics-rmi4 - use new structure for SPI transfer delays
        ...
      ee249d30
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v5.11-1' of... · 61f91425
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v5.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
      
      Pull x86 platform driver updates from Hans de Goede:
       "Highlights:
      
         - New driver for changing BIOS settings from within Linux on Dell
           devices. This introduces a new generic sysfs API for this. Lenovo
           is working on also supporting this API on their devices
      
         - New Intel PMT telemetry and crashlog drivers
      
         - Support for SW_TABLET_MODE reporting for the acer-wmi and intel-hid
           drivers
      
         - Preparation work for improving support for Microsoft Surface
           hardware
      
         - Various fixes / improvements / quirks for the panasonic-laptop and
           others"
      
      * tag 'platform-drivers-x86-v5.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (81 commits)
        platform/x86: ISST: Mark mmio_range_devid_0 and mmio_range_devid_1 with static keyword
        platform/x86: intel-hid: add Rocket Lake ACPI device ID
        x86/platform: classmate-laptop: add WiFi media button
        platform/x86: mlx-platform: Fix item counter assignment for MSN2700/ComEx system
        platform/x86: mlx-platform: Fix item counter assignment for MSN2700, MSN24xx systems
        tools/power/x86/intel-speed-select: Update version for v5.11
        tools/power/x86/intel-speed-select: Account for missing sysfs for die_id
        tools/power/x86/intel-speed-select: Read TRL from mailbox
        platform/x86: intel-hid: Do not create SW_TABLET_MODE input-dev when a KIOX010A ACPI dev is present
        platform/x86: intel-hid: Add alternative method to enable switches
        platform/x86: intel-hid: Add support for SW_TABLET_MODE
        platform/x86: intel-vbtn: Fix SW_TABLET_MODE always reporting 1 on some HP x360 models
        platform/x86: ISST: Change PCI device macros
        platform/x86: ISST: Allow configurable offset range
        platform/x86: ISST: Check for unaligned mmio address
        acer-wireless: send an EV_SYN/SYN_REPORT between state changes
        platform/x86: dell-wmi-sysman: work around for BIOS bug
        platform/x86: mlx-platform: remove an unused variable
        platform/x86: thinkpad_acpi: remove trailing semicolon in macro definition
        platform/x86: dell-smbios-base: Fix error return code in dell_smbios_init
        ...
      61f91425
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 0f974581
      Linus Torvalds authored
      Pull hwmon updates from Guenter Roeck:
       "New drivers:
         - SB-TSI sensors
         - Lineat Technology LTC2992
         - Delta power supplies Q54SJ108A2
         - Maxim MAX127
         - Corsair PSU
         - STMicroelectronics PM6764 Voltage Regulator
      
        New chip support:
         - P10 added to fsi/occ driver
         - NCT6687D added to nct6883 driver
         - Intel-based Xserves added to applesmc driver
         - AMD family 19h model 01h added to amd_energy driver
      
        And various minor bug fixes and improvements"
      
      * tag 'hwmon-for-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (41 commits)
        dt-bindings: (hwmon/sbtsi_temp) Add SB-TSI hwmon driver bindings
        hwmon: (sbtsi) Add documentation
        hwmon: (sbtsi) Add basic support for SB-TSI sensors
        hwmon: (iio_hwmon) Drop bogus __refdata annotation
        hwmon: (xgene) Drop bogus __refdata annotation
        dt-bindings: hwmon: convert AD ADM1275 bindings to dt-schema
        hwmon: (occ) Add new temperature sensor type
        fsi: occ: Add support for P10
        dt-bindings: fsi: Add P10 OCC device documentation
        dt-bindings: hwmon: convert TI ADS7828 bindings to dt-schema
        dt-bindings: hwmon: convert AD AD741x bindings to dt-schema
        dt-bindings: hwmon: convert TI INA2xx bindings to dt-schema
        hwmon: (ltc2992) Fix less than zero comparisons with an unsigned integer
        hwmon: (pmbus/q54sj108a2) Correct title underline length
        dt-bindings: hwmon: Add documentation for ltc2992
        hwmon: (ltc2992) Add support for GPIOs.
        hwmon: (ltc2992) Add support
        hwmon: (pmbus) Driver for Delta power supplies Q54SJ108A2
        hwmon: Add driver for STMicroelectronics PM6764 Voltage Regulator
        hwmon: (nct6683) Support NCT6687D.
        ...
      0f974581