1. 09 Apr, 2022 21 commits
    • Arnaldo Carvalho de Melo's avatar
      perf build: Don't use -ffat-lto-objects in the python feature test when building with clang-13 · 3a8a0475
      Arnaldo Carvalho de Melo authored
      Using -ffat-lto-objects in the python feature test when building with
      clang-13 results in:
      
        clang-13: error: optimization flag '-ffat-lto-objects' is not supported [-Werror,-Wignored-optimization-argument]
        error: command '/usr/sbin/clang' failed with exit code 1
        cp: cannot stat '/tmp/build/perf/python_ext_build/lib/perf*.so': No such file or directory
        make[2]: *** [Makefile.perf:639: /tmp/build/perf/python/perf.so] Error 1
      
      Noticed when building on a docker.io/library/archlinux:base container.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Fangrui Song <maskray@google.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Keeping <john@metanate.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Michael Petlan <mpetlan@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Nathan Chancellor <nathan@kernel.org>
      Cc: Nick Desaulniers <ndesaulniers@google.com>
      Cc: Sedat Dilek <sedat.dilek@gmail.com>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      3a8a0475
    • Arnaldo Carvalho de Melo's avatar
      perf python: Fix probing for some clang command line options · dd6e1fe9
      Arnaldo Carvalho de Melo authored
      The clang compiler complains about some options even without a source
      file being available, while others require one, so use the simple
      tools/build/feature/test-hello.c file.
      
      Then check for the "is not supported" string in its output, in addition
      to the "unknown argument" already being looked for.
      
      This was noticed when building with clang-13 where -ffat-lto-objects
      isn't supported and since we were looking just for "unknown argument"
      and not providing a source code to clang, was mistakenly assumed as
      being available and not being filtered to set of command line options
      provided to clang, leading to a build failure.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Fangrui Song <maskray@google.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Keeping <john@metanate.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Michael Petlan <mpetlan@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Nathan Chancellor <nathan@kernel.org>
      Cc: Nick Desaulniers <ndesaulniers@google.com>
      Cc: Sedat Dilek <sedat.dilek@gmail.com>
      Link: http://lore.kernel.org/lkml/Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      dd6e1fe9
    • Arnaldo Carvalho de Melo's avatar
      tools build: Filter out options and warnings not supported by clang · 41caff45
      Arnaldo Carvalho de Melo authored
      These make the feature check fail when using clang, so remove them just
      like is done in tools/perf/Makefile.config to build perf itself.
      
      Adding -Wno-compound-token-split-by-macro to tools/perf/Makefile.config
      when building with clang is also necessary to avoid these warnings
      turned into errors (-Werror):
      
          CC      /tmp/build/perf/util/scripting-engines/trace-event-perl.o
        In file included from util/scripting-engines/trace-event-perl.c:35:
        In file included from /usr/lib64/perl5/CORE/perl.h:4085:
        In file included from /usr/lib64/perl5/CORE/hv.h:659:
        In file included from /usr/lib64/perl5/CORE/hv_func.h:34:
        In file included from /usr/lib64/perl5/CORE/sbox32_hash.h:4:
        /usr/lib64/perl5/CORE/zaphod32_hash.h:150:5: error: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
            ZAPHOD32_SCRAMBLE32(state[0],0x9fade23b);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        /usr/lib64/perl5/CORE/zaphod32_hash.h:80:38: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
        #define ZAPHOD32_SCRAMBLE32(v,prime) STMT_START {  \
                                             ^~~~~~~~~~
        /usr/lib64/perl5/CORE/perl.h:737:29: note: expanded from macro 'STMT_START'
        #   define STMT_START   (void)( /* gcc supports "({ STATEMENTS; })" */
                                      ^
        /usr/lib64/perl5/CORE/zaphod32_hash.h:150:5: note: '{' token is here
            ZAPHOD32_SCRAMBLE32(state[0],0x9fade23b);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        /usr/lib64/perl5/CORE/zaphod32_hash.h:80:49: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
        #define ZAPHOD32_SCRAMBLE32(v,prime) STMT_START {  \
                                                        ^
        /usr/lib64/perl5/CORE/zaphod32_hash.h:150:5: error: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Werror,-Wcompound-token-split-by-macro]
            ZAPHOD32_SCRAMBLE32(state[0],0x9fade23b);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        /usr/lib64/perl5/CORE/zaphod32_hash.h:87:41: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
            v ^= (v>>23);                       \
                                                ^
        /usr/lib64/perl5/CORE/zaphod32_hash.h:150:5: note: ')' token is here
            ZAPHOD32_SCRAMBLE32(state[0],0x9fade23b);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        /usr/lib64/perl5/CORE/zaphod32_hash.h:88:3: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
        } STMT_END
          ^~~~~~~~
        /usr/lib64/perl5/CORE/perl.h:738:21: note: expanded from macro 'STMT_END'
        #   define STMT_END     )
                                ^
      
      Please refer to the discussion on the Link: tag below, where Nathan
      clarifies the situation:
      
      <quote>
      acme> And then get to the problems at the end of this message, which seem
      acme> similar to the problem described here:
      acme>
      acme> From  Nathan Chancellor <>
      acme> Subject	[PATCH] mwifiex: Remove unnecessary braces from HostCmd_SET_SEQ_NO_BSS_INFO
      acme>
      acme> https://lkml.org/lkml/2020/9/1/135
      acme>
      acme> So perhaps in this case its better to disable that
      acme> -Werror,-Wcompound-token-split-by-macro when building with clang?
      
      Yes, I think that is probably the best solution. As far as I can tell,
      at least in this file and context, the warning appears harmless, as the
      "create a GNU C statement expression from two different macros" is very
      much intentional, based on the presence of PERL_USE_GCC_BRACE_GROUPS.
      The warning is fixed in upstream Perl by just avoiding creating GNU C
      statement expressions using STMT_START and STMT_END:
      
        https://github.com/Perl/perl5/issues/18780
        https://github.com/Perl/perl5/pull/18984
      
      If I am reading the source code correctly, an alternative to disabling
      the warning would be specifying -DPERL_GCC_BRACE_GROUPS_FORBIDDEN but it
      seems like that might end up impacting more than just this site,
      according to the issue discussion above.
      </quote>
      Based-on-a-patch-by: default avatarSedat Dilek <sedat.dilek@gmail.com>
      Tested-by: Sedat Dilek <sedat.dilek@gmail.com> # Debian/Selfmade LLVM-14 (x86-64)
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Fangrui Song <maskray@google.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Keeping <john@metanate.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Michael Petlan <mpetlan@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Nathan Chancellor <nathan@kernel.org>
      Cc: Nick Desaulniers <ndesaulniers@google.com>
      Link: http://lore.kernel.org/lkml/YkxWcYzph5pC1EK8@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      41caff45
    • Arnaldo Carvalho de Melo's avatar
      tools build: Use $(shell ) instead of `` to get embedded libperl's ccopts · 541f695c
      Arnaldo Carvalho de Melo authored
      Just like its done for ldopts and for both in tools/perf/Makefile.config.
      
      Using `` to initialize PERL_EMBED_CCOPTS somehow precludes using:
      
        $(filter-out SOMETHING_TO_FILTER,$(PERL_EMBED_CCOPTS))
      
      And we need to do it to allow for building with versions of clang where
      some gcc options selected by distros are not available.
      
      Tested-by: Sedat Dilek <sedat.dilek@gmail.com> # Debian/Selfmade LLVM-14 (x86-64)
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Fangrui Song <maskray@google.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Keeping <john@metanate.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Michael Petlan <mpetlan@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Nathan Chancellor <nathan@kernel.org>
      Cc: Nick Desaulniers <ndesaulniers@google.com>
      Link: http://lore.kernel.org/lkml/YktYX2OnLtyobRYD@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      541f695c
    • Arnaldo Carvalho de Melo's avatar
      tools include UAPI: Sync linux/vhost.h with the kernel sources · 940442de
      Arnaldo Carvalho de Melo authored
      To get the changes in:
      
        b04d910a ("vdpa: support exposing the count of vqs to userspace")
        a61280dd ("vdpa: support exposing the config size to userspace")
      
      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
      
        $ diff -u tools/include/uapi/linux/vhost.h include/uapi/linux/vhost.h
        --- tools/include/uapi/linux/vhost.h	2021-07-15 16:17:01.840818309 -0300
        +++ include/uapi/linux/vhost.h	2022-04-02 18:55:05.702522387 -0300
        @@ -150,4 +150,11 @@
         /* Get the valid iova range */
         #define VHOST_VDPA_GET_IOVA_RANGE	_IOR(VHOST_VIRTIO, 0x78, \
         					     struct vhost_vdpa_iova_range)
        +
        +/* Get the config size */
        +#define VHOST_VDPA_GET_CONFIG_SIZE	_IOR(VHOST_VIRTIO, 0x79, __u32)
        +
        +/* Get the count of all virtqueues */
        +#define VHOST_VDPA_GET_VQS_COUNT	_IOR(VHOST_VIRTIO, 0x80, __u32)
        +
         #endif
        $ 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-04-04 14:52:25.036375145 -0300
        +++ after	2022-04-04 14:52:31.906549976 -0300
        @@ -38,4 +38,6 @@
         	[0x73] = "VDPA_GET_CONFIG",
         	[0x76] = "VDPA_GET_VRING_NUM",
         	[0x78] = "VDPA_GET_IOVA_RANGE",
        +	[0x79] = "VDPA_GET_CONFIG_SIZE",
        +	[0x80] = "VDPA_GET_VQS_COUNT",
         };
        $
      
      Cc: Longpeng <longpeng2@huawei.com>
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Link: https://lore.kernel.org/lkml/YksxoFcOARk%2Fldev@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      940442de
    • Linus Torvalds's avatar
      Merge tag 'block-5.18-2022-04-08' of git://git.kernel.dk/linux-block · f1b45d8c
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "Nothing major in here, just a few small fixes:
      
         - Small series of neglected drbd patches (Christoph, Lv, Xiaomeng)
      
         - Remove dead variable in cdrom (Enze)"
      
      * tag 'block-5.18-2022-04-08' of git://git.kernel.dk/linux-block:
        drbd: set QUEUE_FLAG_STABLE_WRITES
        drbd: fix an invalid memory access caused by incorrect use of list iterator
        drbd: Fix five use after free bugs in get_initial_state
        cdrom: remove unused variable
      f1b45d8c
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.18-2022-04-08' of git://git.kernel.dk/linux-block · 4d6f9f24
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "A bit bigger than usual post merge window, largely due to a revert and
        a fix of at what point files are assigned for requests.
      
        The latter fixing a linked request use case where a dependent link can
        rely on what file is assigned consistently.
      
        Summary:
      
         - 32-bit compat fix for IORING_REGISTER_IOWQ_AFF (Eugene)
      
         - File assignment fixes (me)
      
         - Revert of the NAPI poll addition from this merge window. The author
           isn't available right now to engage on this, so let's revert it and
           we can retry for the 5.19 release (me, Jakub)
      
         - Fix a timeout removal race (me)
      
         - File update and SCM fixes (Pavel)"
      
      * tag 'io_uring-5.18-2022-04-08' of git://git.kernel.dk/linux-block:
        io_uring: fix race between timeout flush and removal
        io_uring: use nospec annotation for more indexes
        io_uring: zero tag on rsrc removal
        io_uring: don't touch scm_fp_list after queueing skb
        io_uring: nospec index for tags on files update
        io_uring: implement compat handling for IORING_REGISTER_IOWQ_AFF
        Revert "io_uring: Add support for napi_busy_poll"
        io_uring: drop the old style inflight file tracking
        io_uring: defer file assignment
        io_uring: propagate issue_flags state down to file assignment
        io_uring: move read/write file prep state into actual opcode handler
        io_uring: defer splice/tee file validity check until command issue
        io_uring: don't check req->file in io_fsync_prep()
      4d6f9f24
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · f335af10
      Linus Torvalds authored
      Pull rdma fixes from Jason Gunthorpe:
       "Several bug fixes for old bugs:
      
         - Welcome Leon as co-maintainer for RDMA so we are back to having two
           people
      
         - Some corner cases are fixed in mlx5's MR code
      
         - Long standing CM bug where a DREQ at the wrong time can result in a
           long timeout
      
         - Missing locking and refcounting in hf1"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        RDMA/hfi1: Fix use-after-free bug for mm struct
        IB/rdmavt: add lock to call to rvt_error_qp to prevent a race condition
        IB/cm: Cancel mad on the DREQ event when the state is MRA_REP_RCVD
        RDMA/mlx5: Add a missing update of cache->last_add
        RDMA/mlx5: Don't remove cache MRs when a delay is needed
        MAINTAINERS: Update qib and hfi1 related drivers
        MAINTAINERS: Add Leon Romanovsky to RDMA maintainers
      f335af10
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · d017a316
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "These revert a problematic commit from the 5.17 development cycle and
        finalize the elimination of acpi_bus_get_device() that mostly took
        place during the recent merge window.
      
        Specifics:
      
         - Revert an ACPI processor driver change related to cache
           invalidation in acpi_idle_play_dead() that clearly was a mistake
           and introduced user-visible regressions (Akihiko Odaki).
      
         - Replace the last instance of acpi_bus_get_device() added during the
           recent merge window and drop the function to prevent more users of
           it from being added (Rafael Wysocki)"
      
      * tag 'acpi-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: bus: Eliminate acpi_bus_get_device()
        Revert "ACPI: processor: idle: Only flush cache on entering C3"
      d017a316
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-kunit-fixes-5.18-rc2' of... · 6c7376da
      Linus Torvalds authored
      Merge tag 'linux-kselftest-kunit-fixes-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull KUnit fix from Shuah Khan:
       "A single documentation fix to incorrect and outdated usage
        information"
      
      * tag 'linux-kselftest-kunit-fixes-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        Documentation: kunit: fix path to .kunitconfig in start.rst
      6c7376da
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-fixes-5.18-rc2' of... · 9abb16ba
      Linus Torvalds authored
      Merge tag 'linux-kselftest-fixes-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull Kselftest fixes from Shuah Khan:
       "Build and run-times fixes to tests:
      
         - header dependencies
      
         - missing tear-downs to release allocated resources in assert paths
      
         - missing error messages when build fails
      
         - coccicheck and unused variable warnings"
      
      * tag 'linux-kselftest-fixes-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests/harness: Pass variant to teardown
        selftests/harness: Run TEARDOWN for ASSERT failures
        selftests: fix an unused variable warning in pidfd selftest
        selftests: fix header dependency for pid_namespace selftests
        selftests: x86: add 32bit build warnings for SUSE
        selftests/proc: fix array_size.cocci warning
        selftests/vDSO: fix array_size.cocci warning
      9abb16ba
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 911b2b95
      Linus Torvalds authored
      Merge fixes from Andrew Morton:
       "9 patches.
      
        Subsystems affected by this patch series: mm (migration, highmem,
        sparsemem, mremap, mempolicy, and memcg), lz4, mailmap, and
        MAINTAINERS"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        MAINTAINERS: add Tom as clang reviewer
        mm/list_lru.c: revert "mm/list_lru: optimize memcg_reparent_list_lru_node()"
        mailmap: update Vasily Averin's email address
        mm/mempolicy: fix mpol_new leak in shared_policy_replace
        mmmremap.c: avoid pointless invalidate_range_start/end on mremap(old_size=0)
        mm/sparsemem: fix 'mem_section' will never be NULL gcc 12 warning
        lz4: fix LZ4_decompress_safe_partial read out of bound
        highmem: fix checks in __kmap_local_sched_{in,out}
        mm: migrate: use thp_order instead of HPAGE_PMD_ORDER for new page allocation.
      911b2b95
    • Tom Rix's avatar
      MAINTAINERS: add Tom as clang reviewer · 4071a1b9
      Tom Rix authored
      I have been helping with build breaks and other clang things and would
      like to help with the reviews.
      
      Link: https://lkml.kernel.org/r/20220407175715.3378998-1-trix@redhat.comSigned-off-by: default avatarTom Rix <trix@redhat.com>
      Acked-by: default avatarNathan Chancellor <nathan@kernel.org>
      Acked-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4071a1b9
    • Andrew Morton's avatar
      mm/list_lru.c: revert "mm/list_lru: optimize memcg_reparent_list_lru_node()" · b33e1044
      Andrew Morton authored
      Commit 405cc51f ("mm/list_lru: optimize memcg_reparent_list_lru_node()")
      has subtle races which are proving ugly to fix.  Revert the original
      optimization.  If quantitative testing indicates that we have a
      significant problem here then other implementations can be looked at.
      
      Fixes: 405cc51f ("mm/list_lru: optimize memcg_reparent_list_lru_node()")
      Acked-by: default avatarShakeel Butt <shakeelb@google.com>
      Reviewed-by: default avatarMuchun Song <songmuchun@bytedance.com>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Cc: Waiman Long <longman@redhat.com>
      Cc: Roman Gushchin <roman.gushchin@linux.dev>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b33e1044
    • Vasily Averin's avatar
      0347b2b9
    • Miaohe Lin's avatar
      mm/mempolicy: fix mpol_new leak in shared_policy_replace · 4ad09955
      Miaohe Lin authored
      If mpol_new is allocated but not used in restart loop, mpol_new will be
      freed via mpol_put before returning to the caller.  But refcnt is not
      initialized yet, so mpol_put could not do the right things and might
      leak the unused mpol_new.  This would happen if mempolicy was updated on
      the shared shmem file while the sp->lock has been dropped during the
      memory allocation.
      
      This issue could be triggered easily with the below code snippet if
      there are many processes doing the below work at the same time:
      
        shmid = shmget((key_t)5566, 1024 * PAGE_SIZE, 0666|IPC_CREAT);
        shm = shmat(shmid, 0, 0);
        loop many times {
          mbind(shm, 1024 * PAGE_SIZE, MPOL_LOCAL, mask, maxnode, 0);
          mbind(shm + 128 * PAGE_SIZE, 128 * PAGE_SIZE, MPOL_DEFAULT, mask,
                maxnode, 0);
        }
      
      Link: https://lkml.kernel.org/r/20220329111416.27954-1-linmiaohe@huawei.com
      Fixes: 42288fe3 ("mm: mempolicy: Convert shared_policy mutex to spinlock")
      Signed-off-by: default avatarMiaohe Lin <linmiaohe@huawei.com>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: <stable@vger.kernel.org>	[3.8]
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4ad09955
    • Paolo Bonzini's avatar
      mmmremap.c: avoid pointless invalidate_range_start/end on mremap(old_size=0) · 01e67e04
      Paolo Bonzini authored
      If an mremap() syscall with old_size=0 ends up in move_page_tables(), it
      will call invalidate_range_start()/invalidate_range_end() unnecessarily,
      i.e.  with an empty range.
      
      This causes a WARN in KVM's mmu_notifier.  In the past, empty ranges
      have been diagnosed to be off-by-one bugs, hence the WARNing.  Given the
      low (so far) number of unique reports, the benefits of detecting more
      buggy callers seem to outweigh the cost of having to fix cases such as
      this one, where userspace is doing something silly.  In this particular
      case, an early return from move_page_tables() is enough to fix the
      issue.
      
      Link: https://lkml.kernel.org/r/20220329173155.172439-1-pbonzini@redhat.com
      Reported-by: syzbot+6bde52d89cfdf9f61425@syzkaller.appspotmail.com
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      Cc: Sean Christopherson <seanjc@google.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      01e67e04
    • Waiman Long's avatar
      mm/sparsemem: fix 'mem_section' will never be NULL gcc 12 warning · a431dbbc
      Waiman Long authored
      The gcc 12 compiler reports a "'mem_section' will never be NULL" warning
      on the following code:
      
          static inline struct mem_section *__nr_to_section(unsigned long nr)
          {
          #ifdef CONFIG_SPARSEMEM_EXTREME
              if (!mem_section)
                      return NULL;
          #endif
              if (!mem_section[SECTION_NR_TO_ROOT(nr)])
                      return NULL;
             :
      
      It happens with CONFIG_SPARSEMEM_EXTREME off.  The mem_section definition
      is
      
          #ifdef CONFIG_SPARSEMEM_EXTREME
          extern struct mem_section **mem_section;
          #else
          extern struct mem_section mem_section[NR_SECTION_ROOTS][SECTIONS_PER_ROOT];
          #endif
      
      In the !CONFIG_SPARSEMEM_EXTREME case, mem_section is a static
      2-dimensional array and so the check "!mem_section[SECTION_NR_TO_ROOT(nr)]"
      doesn't make sense.
      
      Fix this warning by moving the "!mem_section[SECTION_NR_TO_ROOT(nr)]"
      check up inside the CONFIG_SPARSEMEM_EXTREME block and adding an
      explicit NR_SECTION_ROOTS check to make sure that there is no
      out-of-bound array access.
      
      Link: https://lkml.kernel.org/r/20220331180246.2746210-1-longman@redhat.com
      Fixes: 3e347261 ("sparsemem extreme implementation")
      Signed-off-by: default avatarWaiman Long <longman@redhat.com>
      Reported-by: default avatarJustin Forbes <jforbes@redhat.com>
      Cc: "Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Rafael Aquini <aquini@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a431dbbc
    • Guo Xuenan's avatar
      lz4: fix LZ4_decompress_safe_partial read out of bound · eafc0a02
      Guo Xuenan authored
      When partialDecoding, it is EOF if we've either filled the output buffer
      or can't proceed with reading an offset for following match.
      
      In some extreme corner cases when compressed data is suitably corrupted,
      UAF will occur.  As reported by KASAN [1], LZ4_decompress_safe_partial
      may lead to read out of bound problem during decoding.  lz4 upstream has
      fixed it [2] and this issue has been disscussed here [3] before.
      
      current decompression routine was ported from lz4 v1.8.3, bumping
      lib/lz4 to v1.9.+ is certainly a huge work to be done later, so, we'd
      better fix it first.
      
      [1] https://lore.kernel.org/all/000000000000830d1205cf7f0477@google.com/
      [2] https://github.com/lz4/lz4/commit/c5d6f8a8be3927c0bec91bcc58667a6cfad244ad#
      [3] https://lore.kernel.org/all/CC666AE8-4CA4-4951-B6FB-A2EFDE3AC03B@fb.com/
      
      Link: https://lkml.kernel.org/r/20211111105048.2006070-1-guoxuenan@huawei.com
      Reported-by: syzbot+63d688f1d899c588fb71@syzkaller.appspotmail.com
      Signed-off-by: default avatarGuo Xuenan <guoxuenan@huawei.com>
      Reviewed-by: default avatarNick Terrell <terrelln@fb.com>
      Acked-by: default avatarGao Xiang <hsiangkao@linux.alibaba.com>
      Cc: Yann Collet <cyan@fb.com>
      Cc: Chengyang Fan <cy.fan@huawei.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      eafc0a02
    • Max Filippov's avatar
      highmem: fix checks in __kmap_local_sched_{in,out} · 66f133ce
      Max Filippov authored
      When CONFIG_DEBUG_KMAP_LOCAL is enabled __kmap_local_sched_{in,out} check
      that even slots in the tsk->kmap_ctrl.pteval are unmapped.  The slots are
      initialized with 0 value, but the check is done with pte_none.  0 pte
      however does not necessarily mean that pte_none will return true.  e.g.
      on xtensa it returns false, resulting in the following runtime warnings:
      
       WARNING: CPU: 0 PID: 101 at mm/highmem.c:627 __kmap_local_sched_out+0x51/0x108
       CPU: 0 PID: 101 Comm: touch Not tainted 5.17.0-rc7-00010-gd3a1cdde80d2-dirty #13
       Call Trace:
         dump_stack+0xc/0x40
         __warn+0x8f/0x174
         warn_slowpath_fmt+0x48/0xac
         __kmap_local_sched_out+0x51/0x108
         __schedule+0x71a/0x9c4
         preempt_schedule_irq+0xa0/0xe0
         common_exception_return+0x5c/0x93
         do_wp_page+0x30e/0x330
         handle_mm_fault+0xa70/0xc3c
         do_page_fault+0x1d8/0x3c4
         common_exception+0x7f/0x7f
      
       WARNING: CPU: 0 PID: 101 at mm/highmem.c:664 __kmap_local_sched_in+0x50/0xe0
       CPU: 0 PID: 101 Comm: touch Tainted: G        W         5.17.0-rc7-00010-gd3a1cdde80d2-dirty #13
       Call Trace:
         dump_stack+0xc/0x40
         __warn+0x8f/0x174
         warn_slowpath_fmt+0x48/0xac
         __kmap_local_sched_in+0x50/0xe0
         finish_task_switch$isra$0+0x1ce/0x2f8
         __schedule+0x86e/0x9c4
         preempt_schedule_irq+0xa0/0xe0
         common_exception_return+0x5c/0x93
         do_wp_page+0x30e/0x330
         handle_mm_fault+0xa70/0xc3c
         do_page_fault+0x1d8/0x3c4
         common_exception+0x7f/0x7f
      
      Fix it by replacing !pte_none(pteval) with pte_val(pteval) != 0.
      
      Link: https://lkml.kernel.org/r/20220403235159.3498065-1-jcmvbkbc@gmail.com
      Fixes: 5fbda3ec ("sched: highmem: Store local kmaps in task struct")
      Signed-off-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
      Reviewed-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      66f133ce
    • Zi Yan's avatar
      mm: migrate: use thp_order instead of HPAGE_PMD_ORDER for new page allocation. · a04cd160
      Zi Yan authored
      Fix a VM_BUG_ON_FOLIO(folio_nr_pages(old) != nr_pages) crash.
      
      With folios support, it is possible to have other than HPAGE_PMD_ORDER
      THPs, in the form of folios, in the system.  Use thp_order() to correctly
      determine the source page order during migration.
      
      Link: https://lkml.kernel.org/r/20220404165325.1883267-1-zi.yan@sent.com
      Link: https://lore.kernel.org/linux-mm/20220404132908.GA785673@u2004/
      Fixes: d68eccad ("mm/filemap: Allow large folios to be added to the page cache")
      Reported-by: default avatarNaoya Horiguchi <naoya.horiguchi@linux.dev>
      Signed-off-by: default avatarZi Yan <ziy@nvidia.com>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: Michal Hocko <mhocko@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a04cd160
  2. 08 Apr, 2022 19 commits
    • Jens Axboe's avatar
      io_uring: fix race between timeout flush and removal · e677edbc
      Jens Axboe authored
      io_flush_timeouts() assumes the timeout isn't in progress of triggering
      or being removed/canceled, so it unconditionally removes it from the
      timeout list and attempts to cancel it.
      
      Leave it on the list and let the normal timeout cancelation take care
      of it.
      
      Cc: stable@vger.kernel.org # 5.5+
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      e677edbc
    • Douglas Miller's avatar
      RDMA/hfi1: Fix use-after-free bug for mm struct · 2bbac98d
      Douglas Miller authored
      Under certain conditions, such as MPI_Abort, the hfi1 cleanup code may
      represent the last reference held on the task mm.
      hfi1_mmu_rb_unregister() then drops the last reference and the mm is freed
      before the final use in hfi1_release_user_pages().  A new task may
      allocate the mm structure while it is still being used, resulting in
      problems. One manifestation is corruption of the mmap_sem counter leading
      to a hang in down_write().  Another is corruption of an mm struct that is
      in use by another task.
      
      Fixes: 3d2a9d64 ("IB/hfi1: Ensure correct mm is used at all times")
      Link: https://lore.kernel.org/r/20220408133523.122165.72975.stgit@awfm-01.cornelisnetworks.com
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarDouglas Miller <doug.miller@cornelisnetworks.com>
      Signed-off-by: default avatarDennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
      Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      2bbac98d
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-bus' · 87ad2360
      Rafael J. Wysocki authored
      * acpi-bus:
        ACPI: bus: Eliminate acpi_bus_get_device()
      87ad2360
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-5.18-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 1a3b1bba
      Linus Torvalds authored
      Pull NFS client fixes from Trond Myklebust:
       "Stable fixes:
      
         - SUNRPC: Ensure we flush any closed sockets before xs_xprt_free()
      
        Bugfixes:
      
         - Fix an Oopsable condition due to SLAB_ACCOUNT setting in the
           NFSv4.2 xattr code.
      
         - Fix for open() using an file open mode of '3' in NFSv4
      
         - Replace readdir's use of xxhash() with hash_64()
      
         - Several patches to handle malloc() failure in SUNRPC"
      
      * tag 'nfs-for-5.18-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        SUNRPC: Move the call to xprt_send_pagedata() out of xprt_sock_sendmsg()
        SUNRPC: svc_tcp_sendmsg() should handle errors from xdr_alloc_bvec()
        SUNRPC: Handle allocation failure in rpc_new_task()
        NFS: Ensure rpc_run_task() cannot fail in nfs_async_rename()
        NFSv4/pnfs: Handle RPC allocation errors in nfs4_proc_layoutget
        SUNRPC: Handle low memory situations in call_status()
        SUNRPC: Handle ENOMEM in call_transmit_status()
        NFSv4.2: Fix missing removal of SLAB_ACCOUNT on kmem_cache allocation
        SUNRPC: Ensure we flush any closed sockets before xs_xprt_free()
        NFS: Replace readdir's use of xxhash() with hash_64()
        SUNRPC: handle malloc failure in ->request_prepare
        NFSv4: fix open failure with O_ACCMODE flag
        Revert "NFSv4: Handle the special Linux file open access mode"
      1a3b1bba
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · c0aa5338
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "The two main things to note are:
      
         (1) The bulk of the diffstat is us reverting a horrible bodge we had
             in place to ease the merging of maple tree during the merge
             window (which turned out not to be needed, but anyway)
      
         (2) The TLB invalidation fix is done in core code, as suggested by
             (and Acked-by) Peter.
      
        Summary:
      
         - Revert temporary bodge in MTE coredumping to ease maple tree integration
      
         - Fix stack frame size warning reported with 64k pages
      
         - Fix stop_machine() race with instruction text patching
      
         - Ensure alternatives patching routines are not instrumented
      
         - Enable Spectre-BHB mitigation for Cortex-A78AE
      
         - Fix hugetlb TLB invalidation when contiguous hint is used
      
         - Minor perf driver fixes
      
         - Fix some typos"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        perf/imx_ddr: Fix undefined behavior due to shift overflowing the constant
        arm64: Add part number for Arm Cortex-A78AE
        arm64: patch_text: Fixup last cpu should be master
        tlb: hugetlb: Add more sizes to tlb_remove_huge_tlb_entry
        arm64: alternatives: mark patch_alternative() as `noinstr`
        perf: MARVELL_CN10K_DDR_PMU should depend on ARCH_THUNDER
        perf: qcom_l2_pmu: fix an incorrect NULL check on list iterator
        arm64: Fix comments in macro __init_el2_gicv3
        arm64: fix typos in comments
        arch/arm64: Fix topology initialization for core scheduling
        arm64: mte: Fix the stack frame size warning in mte_dump_tag_range()
        Revert "arm64: Change elfcore for_each_mte_vma() to use VMA iterator"
      c0aa5338
    • Linus Torvalds's avatar
      Merge tag 'folio-5.18e' of git://git.infradead.org/users/willy/pagecache · d66b6985
      Linus Torvalds authored
      Pull folio fixes from Matthew Wilcox:
       "Fewer bug reports than I was expecting from enabling large folios.
      
        One that doesn't show up on x86 but does on arm64, one that shows up
        with hugetlbfs memory failure testing and one that shows up with page
        migration, which it turns out I wasn't testing because my last NUMA
        machine died. Need to set up a qemu fake NUMA machine so I don't skip
        testing that in future.
      
        Summary:
      
         - Remove the migration code's assumptions about large pages being PMD
           sized
      
         - Don't call pmd_page() on a non-leaf PMD
      
         - Fix handling of hugetlbfs pages in page_vma_mapped_walk"
      
      * tag 'folio-5.18e' of git://git.infradead.org/users/willy/pagecache:
        mm/rmap: Fix handling of hugetlbfs pages in page_vma_mapped_walk
        mm/mempolicy: Use vma_alloc_folio() in new_page()
        mm: Add vma_alloc_folio()
        mm/migrate: Use a folio in migrate_misplaced_transhuge_page()
        mm/migrate: Use a folio in alloc_migration_target()
        mm/huge_memory: Avoid calling pmd_page() on a non-leaf PMD
      d66b6985
    • Linus Torvalds's avatar
      Merge tag 'spi-fix-v5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · d00c50b3
      Linus Torvalds authored
      Pull spi fixes from Mark Brown:
       "A small collection of fixes that have arrived since the merge window,
        the most noticable one is a fix for unmapping messages when the
        mapping was done with the struct device supplied to do the mapping
        overridden"
      
      * tag 'spi-fix-v5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: bcm-qspi: fix MSPI only access with bcm_qspi_exec_mem_op()
        spi: cadence-quadspi: fix protocol setup for non-1-1-X operations
        spi: core: add dma_map_dev for __spi_unmap_msg()
        spi: mxic: Fix an error handling path in mxic_spi_probe()
        spi: rpc-if: Fix RPM imbalance in probe error path
      d00c50b3
    • Linus Torvalds's avatar
      Merge tag 'regulator-fix-v5.18-rc1' of... · 98849765
      Linus Torvalds authored
      Merge tag 'regulator-fix-v5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
      
      Pull regulator fixes from Mark Brown:
       "A few small driver specific fixes for v5.18, plus an update to the
        MAINTAINERS file"
      
      * tag 'regulator-fix-v5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        MAINTAINERS: Fix reviewer info for a few ROHM ICs
        regulator: atc260x: Fix missing active_discharge_on setting
        regulator: rtq2134: Fix missing active_discharge_on setting
        regulator: wm8994: Add an off-on delay for WM8994 variant
      98849765
    • Linus Torvalds's avatar
      Merge tag 'mmc-v5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 0ccab014
      Linus Torvalds authored
      Pull MMC updates from Ulf Hansson:
       "MMC core:
         - Improve API to make it clear that mmc_hw_reset() is for cards
         - Fixup support for writeback-cache for eMMC and SD
         - Check for errors after writes on SPI
      
        MMC host:
         - renesas_sdhi: A couple of fixes of TAP settings for eMMC HS400 mode
         - mmci_stm32: Fixup check of all elements in sg list
         - sdhci-xenon: Revert unnecessary fix for annoying 1.8V regulator warning"
      
      * tag 'mmc-v5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: core: improve API to make clear mmc_hw_reset is for cards
        mmc: renesas_sdhi: don't overwrite TAP settings when HS400 tuning is complete
        mmc: renesas_sdhi: special 4tap settings only apply to HS400
        mmc: core: Fixup support for writeback-cache for eMMC and SD
        mmc: block: Check for errors after write on SPI
        mmc: mmci: stm32: correctly check all elements of sg list
        Revert "mmc: sdhci-xenon: fix annoying 1.8V regulator warning"
      0ccab014
    • Linus Torvalds's avatar
      Merge tag 'iommu-fix-v5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 02994fd2
      Linus Torvalds authored
      Pull iommu fix from Joerg Roedel:
      
       - Fix boot regression due to a NULL-ptr dereference on OMAP machines
      
      * tag 'iommu-fix-v5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu/omap: Fix regression in probe for NULL pointer dereference
      02994fd2
    • Borislav Petkov's avatar
      perf/imx_ddr: Fix undefined behavior due to shift overflowing the constant · d02b4dd8
      Borislav Petkov authored
      Fix:
      
        In file included from <command-line>:0:0:
        In function ‘ddr_perf_counter_enable’,
            inlined from ‘ddr_perf_irq_handler’ at drivers/perf/fsl_imx8_ddr_perf.c:651:2:
        ././include/linux/compiler_types.h:352:38: error: call to ‘__compiletime_assert_729’ \
      	declared with attribute error: FIELD_PREP: mask is not constant
          _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
      ...
      
      See https://lore.kernel.org/r/YkwQ6%2BtIH8GQpuct@zn.tnic for the gory
      details as to why it triggers with older gccs only.
      Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
      Cc: Frank Li <Frank.li@nxp.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Shawn Guo <shawnguo@kernel.org>
      Cc: Sascha Hauer <s.hauer@pengutronix.de>
      Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
      Cc: Fabio Estevam <festevam@gmail.com>
      Cc: NXP Linux Team <linux-imx@nxp.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Acked-by: default avatarWill Deacon <will@kernel.org>
      Link: https://lore.kernel.org/r/20220405151517.29753-10-bp@alien8.deSigned-off-by: default avatarWill Deacon <will@kernel.org>
      d02b4dd8
    • Matti Vaittinen's avatar
      MAINTAINERS: Fix reviewer info for a few ROHM ICs · 908b768f
      Matti Vaittinen authored
      The email backend used by ROHM keeps labeling patches as spam.
      Additionally, there have been reports of some emails been completely
      dropped. Finally also the email list (or shared inbox)
      linux-power@fi.rohmeurope.com inadvertly stopped working and has not
      been reviwed during the past few weeks.
      
      Remove no longer working list 'linux-power' list-entry and switch my
      email to use the personal gmail account instead of the company account.
      Signed-off-by: default avatarMatti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
      Link: https://lore.kernel.org/r/Yk/zAHusOdf4+h06@dc73szyh141qn5ck3nwqy-3.rev.dnainternet.fiSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      908b768f
    • Chanho Park's avatar
      arm64: Add part number for Arm Cortex-A78AE · 83bea32a
      Chanho Park authored
      Add the MIDR part number info for the Arm Cortex-A78AE[1] and add it to
      spectre-BHB affected list[2].
      
      [1]: https://developer.arm.com/Processors/Cortex-A78AE
      [2]: https://developer.arm.com/Arm%20Security%20Center/Spectre-BHB
      
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: James Morse <james.morse@arm.com>
      Signed-off-by: default avatarChanho Park <chanho61.park@samsung.com>
      Link: https://lore.kernel.org/r/20220407091128.8700-1-chanho61.park@samsung.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      83bea32a
    • Guo Ren's avatar
      arm64: patch_text: Fixup last cpu should be master · 31a099db
      Guo Ren authored
      These patch_text implementations are using stop_machine_cpuslocked
      infrastructure with atomic cpu_count. The original idea: When the
      master CPU patch_text, the others should wait for it. But current
      implementation is using the first CPU as master, which couldn't
      guarantee the remaining CPUs are waiting. This patch changes the
      last CPU as the master to solve the potential risk.
      
      Fixes: ae164807 ("arm64: introduce interfaces to hotpatch kernel and module code")
      Signed-off-by: default avatarGuo Ren <guoren@linux.alibaba.com>
      Signed-off-by: default avatarGuo Ren <guoren@kernel.org>
      Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Reviewed-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
      Cc: <stable@vger.kernel.org>
      Link: https://lore.kernel.org/r/20220407073323.743224-2-guoren@kernel.orgSigned-off-by: default avatarWill Deacon <will@kernel.org>
      31a099db
    • Tony Lindgren's avatar
      iommu/omap: Fix regression in probe for NULL pointer dereference · 71ff461c
      Tony Lindgren authored
      Commit 3f6634d9 ("iommu: Use right way to retrieve iommu_ops") started
      triggering a NULL pointer dereference for some omap variants:
      
      __iommu_probe_device from probe_iommu_group+0x2c/0x38
      probe_iommu_group from bus_for_each_dev+0x74/0xbc
      bus_for_each_dev from bus_iommu_probe+0x34/0x2e8
      bus_iommu_probe from bus_set_iommu+0x80/0xc8
      bus_set_iommu from omap_iommu_init+0x88/0xcc
      omap_iommu_init from do_one_initcall+0x44/0x24
      
      This is caused by omap iommu probe returning 0 instead of ERR_PTR(-ENODEV)
      as noted by Jason Gunthorpe <jgg@ziepe.ca>.
      
      Looks like the regression already happened with an earlier commit
      6785eb91 ("iommu/omap: Convert to probe/release_device() call-backs")
      that changed the function return type and missed converting one place.
      
      Cc: Drew Fustini <dfustini@baylibre.com>
      Cc: Lu Baolu <baolu.lu@linux.intel.com>
      Cc: Suman Anna <s-anna@ti.com>
      Suggested-by: default avatarJason Gunthorpe <jgg@ziepe.ca>
      Fixes: 6785eb91 ("iommu/omap: Convert to probe/release_device() call-backs")
      Fixes: 3f6634d9 ("iommu: Use right way to retrieve iommu_ops")
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      Tested-by: default avatarDrew Fustini <dfustini@baylibre.com>
      Reviewed-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      Link: https://lore.kernel.org/r/20220331062301.24269-1-tony@atomide.comSigned-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      71ff461c
    • Wolfram Sang's avatar
      mmc: core: improve API to make clear mmc_hw_reset is for cards · b71597ed
      Wolfram Sang authored
      To make it unambiguous that mmc_hw_reset() is for cards and not for
      controllers, we make the function argument mmc_card instead of mmc_host.
      Also, all users are converted.
      Suggested-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarWolfram Sang <wsa+renesas@sang-engineering.com>
      Acked-by: default avatarKalle Valo <kvalo@kernel.org>
      Link: https://lore.kernel.org/r/20220408080045.6497-2-wsa+renesas@sang-engineering.comSigned-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      b71597ed
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2022-04-08' of git://anongit.freedesktop.org/drm/drm · 1831fed5
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Main set of fixes for rc2, mostly amdgpu, but some dma-fence fixups as
        well, along with some other misc ones.
      
        dma-fence:
         - fix warning about fence containers
         - fix logic error in new fence merge code
         - handle empty dma_fence_arrays gracefully
      
        bridge:
         - Try all possible cases for bridge/panel detection.
      
        bindings:
         - Don't require input port for MIPI-DSI, and make width/height mandatory.
      
        fbdev:
         - Fix unregistering of framebuffers without device.
      
        nouveau:
         - Fix a crash when booting with nouveau on tegra.
      
        amdgpu:
         - GFX 10.3.7 fixes
         - noretry updates
         - VCN fixes
         - TMDS fix
         - zstate fix for freesync video
         - DCN 3.1.5 fix
         - Display stack size fix
         - Audio fix
         - DCN 3.1 pstate fix
         - TMZ VCN fix
         - APU passthrough fix
         - Misc other fixes
         - VCN 3.0 fixes
         - Misc display fixes
         - GC 10.3 golden register fix
         - Suspend fix
         - SMU 10 fix
      
        amdkfd:
         - Error handling fix
         - xgmi p2p fix
         - HWS VMIDs fix
         - Event fix
      
        panel:
         - ili9341: Fix optional regulator handling
      
        imx:
         - Catch an EDID allocation failure in imx-ldb
         - fix a leaked drm display mode on DT parsing error in parallel-display
         - properly remove the dw_hdmi bridge in case the component_add fails in dw_hdmi-imx
         - fix the IPU clock frequency debug printout in ipu-di"
      
      * tag 'drm-fixes-2022-04-08' of git://anongit.freedesktop.org/drm/drm: (61 commits)
        dt-bindings: display: panel: mipi-dbi-spi: Make width-mm/height-mm mandatory
        fbdev: Fix unregistering of framebuffers without device
        drm/amdgpu/smu10: fix SoC/fclk units in auto mode
        drm/amd/display: update dcn315 clock table read
        drm/amdgpu/display: change pipe policy for DCN 2.1
        drm/amd/display: Add configuration options for AUX wake work around.
        drm/amd/display: remove assert for odm transition case
        drm/amdgpu: don't use BACO for reset in S3
        drm/amd/display: Fix by adding FPU protection for dcn30_internal_validate_bw
        drm/amdkfd: Create file descriptor after client is added to smi_clients list
        drm/amdgpu: Sync up header and implementation to use the same parameter names
        drm/amdgpu: fix incorrect GCR_GENERAL_CNTL address
        amd/display: set backlight only if required
        drm/amd/display: Fix allocate_mst_payload assert on resume
        drm/amd/display: Revert FEC check in validation
        drm/amd/display: Add work around for AUX failure on wake.
        drm/amd/display: Clear optc false state when disable otg
        drm/amd/display: Enable power gating before init_pipes
        drm/amd/display: Remove redundant dsc power gating from init_hw
        drm/amd/display: Correct Slice reset calculation
        ...
      1831fed5
    • Linus Torvalds's avatar
      Merge tag '5.18-rc1-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6 · 5a5dcfd1
      Linus Torvalds authored
      Pull cifs client fixes from Steve French:
      
       - reconnect fixes: one for DFS and one to avoid a reconnect race
      
       - small change to deal with upcoming behavior change of list iterators
      
      * tag '5.18-rc1-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: update internal module number
        cifs: force new session setup and tcon for dfs
        cifs: remove check of list iterator against head past the loop body
        cifs: fix potential race with cifsd thread
      5a5dcfd1
    • Linus Torvalds's avatar
      Merge tag 'net-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 73b193f2
      Linus Torvalds authored
      Pull networking fixes from Paolo Abeni:
       "Including fixes from bpf and netfilter.
      
        Current release - new code bugs:
      
         - mctp: correct mctp_i2c_header_create result
      
         - eth: fungible: fix reference to __udivdi3 on 32b builds
      
         - eth: micrel: remove latencies support lan8814
      
        Previous releases - regressions:
      
         - bpf: resolve to prog->aux->dst_prog->type only for BPF_PROG_TYPE_EXT
      
         - vrf: fix packet sniffing for traffic originating from ip tunnels
      
         - rxrpc: fix a race in rxrpc_exit_net()
      
         - dsa: revert "net: dsa: stop updating master MTU from master.c"
      
         - eth: ice: fix MAC address setting
      
        Previous releases - always broken:
      
         - tls: fix slab-out-of-bounds bug in decrypt_internal
      
         - bpf: support dual-stack sockets in bpf_tcp_check_syncookie
      
         - xdp: fix coalescing for page_pool fragment recycling
      
         - ovs: fix leak of nested actions
      
         - eth: sfc:
            - add missing xdp queue reinitialization
            - fix using uninitialized xdp tx_queue
      
         - eth: ice:
            - clear default forwarding VSI during VSI release
            - fix broken IFF_ALLMULTI handling
            - synchronize_rcu() when terminating rings
      
         - eth: qede: confirm skb is allocated before using
      
         - eth: aqc111: fix out-of-bounds accesses in RX fixup
      
         - eth: slip: fix NPD bug in sl_tx_timeout()"
      
      * tag 'net-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (61 commits)
        drivers: net: slip: fix NPD bug in sl_tx_timeout()
        bpf: Adjust bpf_tcp_check_syncookie selftest to test dual-stack sockets
        bpf: Support dual-stack sockets in bpf_tcp_check_syncookie
        myri10ge: fix an incorrect free for skb in myri10ge_sw_tso
        net: usb: aqc111: Fix out-of-bounds accesses in RX fixup
        qede: confirm skb is allocated before using
        net: ipv6mr: fix unused variable warning with CONFIG_IPV6_PIMSM_V2=n
        net: phy: mscc-miim: reject clause 45 register accesses
        net: axiemac: use a phandle to reference pcs_phy
        dt-bindings: net: add pcs-handle attribute
        net: axienet: factor out phy_node in struct axienet_local
        net: axienet: setup mdio unconditionally
        net: sfc: fix using uninitialized xdp tx_queue
        rxrpc: fix a race in rxrpc_exit_net()
        net: openvswitch: fix leak of nested actions
        net: ethernet: mv643xx: Fix over zealous checking of_get_mac_address()
        net: openvswitch: don't send internal clone attribute to the userspace.
        net: micrel: Fix KS8851 Kconfig
        ice: clear cmd_type_offset_bsz for TX rings
        ice: xsk: fix VSI state check in ice_xsk_wakeup()
        ...
      73b193f2