1. 10 Aug, 2022 19 commits
    • Gavin Shan's avatar
      KVM: selftests: Make rseq compatible with glibc-2.35 · 66d42ac7
      Gavin Shan authored
      The rseq information is registered by TLS, starting from glibc-2.35.
      In this case, the test always fails due to syscall(__NR_rseq). For
      example, on RHEL9.1 where upstream glibc-2.35 features are enabled
      on downstream glibc-2.34, the test fails like below.
      
        # ./rseq_test
        ==== Test Assertion Failure ====
          rseq_test.c:60: !r
          pid=112043 tid=112043 errno=22 - Invalid argument
             1        0x0000000000401973: main at rseq_test.c:226
             2        0x0000ffff84b6c79b: ?? ??:0
             3        0x0000ffff84b6c86b: ?? ??:0
             4        0x0000000000401b6f: _start at ??:?
          rseq failed, errno = 22 (Invalid argument)
        # rpm -aq | grep glibc-2
        glibc-2.34-39.el9.aarch64
      
      Fix the issue by using "../rseq/rseq.c" to fetch the rseq information,
      registred by TLS if it exists. Otherwise, we're going to register our
      own rseq information as before.
      Reported-by: default avatarYihuang Yu <yihyu@redhat.com>
      Suggested-by: default avatarFlorian Weimer <fweimer@redhat.com>
      Suggested-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Suggested-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: default avatarGavin Shan <gshan@redhat.com>
      Message-Id: <20220810104114.6838-2-gshan@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      66d42ac7
    • Oliver Upton's avatar
      KVM: Actually create debugfs in kvm_create_vm() · b74ed7a6
      Oliver Upton authored
      Doing debugfs creation after vm creation leaves things in a
      quasi-initialized state for a while. This is further complicated by the
      fact that we tear down debugfs from kvm_destroy_vm(). Align debugfs and
      stats init/destroy with the vm init/destroy pattern to avoid any
      headaches.
      
      Note the fix for a benign mistake in error handling for calls to
      kvm_arch_create_vm_debugfs() rolled in. Since all implementations of
      the function return 0 unconditionally it isn't actually a bug at
      the moment.
      
      Lastly, tear down debugfs/stats data in the kvm_create_vm_debugfs()
      error path. Previously it was safe to assume that kvm_destroy_vm() would
      take out the garbage, that is no longer the case.
      Signed-off-by: default avatarOliver Upton <oupton@google.com>
      Message-Id: <20220720092259.3491733-6-oliver.upton@linux.dev>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      b74ed7a6
    • Oliver Upton's avatar
      KVM: Pass the name of the VM fd to kvm_create_vm_debugfs() · 59f82aad
      Oliver Upton authored
      At the time the VM fd is used in kvm_create_vm_debugfs(), the fd has
      been allocated but not yet installed. It is only really useful as an
      identifier in strings for the VM (such as debugfs).
      
      Treat it exactly as such by passing the string name of the fd to
      kvm_create_vm_debugfs(), futureproofing against possible misuse of the
      VM fd.
      Suggested-by: default avatarSean Christopherson <seanjc@google.com>
      Signed-off-by: default avatarOliver Upton <oupton@google.com>
      Message-Id: <20220720092259.3491733-5-oliver.upton@linux.dev>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      59f82aad
    • Oliver Upton's avatar
      KVM: Get an fd before creating the VM · 20020f4c
      Oliver Upton authored
      Allocate a VM's fd at the very beginning of kvm_dev_ioctl_create_vm() so
      that KVM can use the fd value to generate strigns, e.g. for debugfs,
      when creating and initializing the VM.
      Signed-off-by: default avatarOliver Upton <oupton@google.com>
      Message-Id: <20220720092259.3491733-4-oliver.upton@linux.dev>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      20020f4c
    • Oliver Upton's avatar
      KVM: Shove vcpu stats_id init into kvm_vcpu_init() · 58fc1166
      Oliver Upton authored
      Initialize stats_id alongside other kvm_vcpu fields to make it more
      difficult to unintentionally access stats_id before it's set.
      
      No functional change intended.
      Signed-off-by: default avatarOliver Upton <oupton@google.com>
      Message-Id: <20220720092259.3491733-3-oliver.upton@linux.dev>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      58fc1166
    • Oliver Upton's avatar
      KVM: Shove vm stats_id init into kvm_create_vm() · f2759c08
      Oliver Upton authored
      Initialize stats_id alongside other struct kvm fields to make it more
      difficult to unintentionally access stats_id before it's set.  While at
      it, move the format string to the first line of the call and fix the
      indentation of the second line.
      
      No functional change intended.
      Signed-off-by: default avatarOliver Upton <oupton@google.com>
      Message-Id: <20220720092259.3491733-2-oliver.upton@linux.dev>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      f2759c08
    • Sean Christopherson's avatar
      KVM: x86/mmu: Add sanity check that MMIO SPTE mask doesn't overlap gen · 8bad4606
      Sean Christopherson authored
      Add compile-time and init-time sanity checks to ensure that the MMIO SPTE
      mask doesn't overlap the MMIO SPTE generation or the MMU-present bit.
      The generation currently avoids using bit 63, but that's as much
      coincidence as it is strictly necessarly.  That will change in the future,
      as TDX support will require setting bit 63 (SUPPRESS_VE) in the mask.
      
      Explicitly carve out the bits that are allowed in the mask so that any
      future shuffling of SPTE bits doesn't silently break MMIO caching (KVM
      has broken MMIO caching more than once due to overlapping the generation
      with other things).
      Suggested-by: default avatarKai Huang <kai.huang@intel.com>
      Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
      Reviewed-by: default avatarKai Huang <kai.huang@intel.com>
      Message-Id: <20220805194133.86299-1-seanjc@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      8bad4606
    • Mingwei Zhang's avatar
      KVM: x86/mmu: rename trace function name for asynchronous page fault · 1685c0f3
      Mingwei Zhang authored
      Rename the tracepoint function from trace_kvm_async_pf_doublefault() to
      trace_kvm_async_pf_repeated_fault() to make it clear, since double fault
      has nothing to do with this trace function.
      
      Asynchronous Page Fault (APF) is an artifact generated by KVM when it
      cannot find a physical page to satisfy an EPT violation. KVM uses APF to
      tell the guest OS to do something else such as scheduling other guest
      processes to make forward progress. However, when another guest process
      also touches a previously APFed page, KVM halts the vCPU instead of
      generating a repeated APF to avoid wasting cycles.
      
      Double fault (#DF) clearly has a different meaning and a different
      consequence when triggered. #DF requires two nested contributory exceptions
      instead of two page faults faulting at the same address. A prevous bug on
      APF indicates that it may trigger a double fault in the guest [1] and
      clearly this trace function has nothing to do with it. So rename this
      function should be a valid choice.
      
      No functional change intended.
      
      [1] https://www.spinics.net/lists/kvm/msg214957.htmlSigned-off-by: default avatarMingwei Zhang <mizhang@google.com>
      Message-Id: <20220807052141.69186-1-mizhang@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      1685c0f3
    • Coleman Dietsch's avatar
      KVM: x86/xen: Stop Xen timer before changing IRQ · c0368991
      Coleman Dietsch authored
      Stop Xen timer (if it's running) prior to changing the IRQ vector and
      potentially (re)starting the timer. Changing the IRQ vector while the
      timer is still running can result in KVM injecting a garbage event, e.g.
      vm_xen_inject_timer_irqs() could see a non-zero xen.timer_pending from
      a previous timer but inject the new xen.timer_virq.
      
      Fixes: 53639526 ("KVM: x86/xen: handle PV timers oneshot mode")
      Cc: stable@vger.kernel.org
      Link: https://syzkaller.appspot.com/bug?id=8234a9dfd3aafbf092cc5a7cd9842e3ebc45fc42
      Reported-by: syzbot+e54f930ed78eb0f85281@syzkaller.appspotmail.com
      Signed-off-by: default avatarColeman Dietsch <dietschc@csp.edu>
      Reviewed-by: default avatarSean Christopherson <seanjc@google.com>
      Acked-by: default avatarDavid Woodhouse <dwmw@amazon.co.uk>
      Message-Id: <20220808190607.323899-3-dietschc@csp.edu>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      c0368991
    • Coleman Dietsch's avatar
      KVM: x86/xen: Initialize Xen timer only once · af735db3
      Coleman Dietsch authored
      Add a check for existing xen timers before initializing a new one.
      
      Currently kvm_xen_init_timer() is called on every
      KVM_XEN_VCPU_ATTR_TYPE_TIMER, which is causing the following ODEBUG
      crash when vcpu->arch.xen.timer is already set.
      
      ODEBUG: init active (active state 0)
      object type: hrtimer hint: xen_timer_callbac0
      RIP: 0010:debug_print_object+0x16e/0x250 lib/debugobjects.c:502
      Call Trace:
      __debug_object_init
      debug_hrtimer_init
      debug_init
      hrtimer_init
      kvm_xen_init_timer
      kvm_xen_vcpu_set_attr
      kvm_arch_vcpu_ioctl
      kvm_vcpu_ioctl
      vfs_ioctl
      
      Fixes: 53639526 ("KVM: x86/xen: handle PV timers oneshot mode")
      Cc: stable@vger.kernel.org
      Link: https://syzkaller.appspot.com/bug?id=8234a9dfd3aafbf092cc5a7cd9842e3ebc45fc42
      Reported-by: syzbot+e54f930ed78eb0f85281@syzkaller.appspotmail.com
      Signed-off-by: default avatarColeman Dietsch <dietschc@csp.edu>
      Reviewed-by: default avatarSean Christopherson <seanjc@google.com>
      Message-Id: <20220808190607.323899-2-dietschc@csp.edu>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      af735db3
    • Sean Christopherson's avatar
      KVM: SVM: Disable SEV-ES support if MMIO caching is disable · 0c29397a
      Sean Christopherson authored
      Disable SEV-ES if MMIO caching is disabled as SEV-ES relies on MMIO SPTEs
      generating #NPF(RSVD), which are reflected by the CPU into the guest as
      a #VC.  With SEV-ES, the untrusted host, a.k.a. KVM, doesn't have access
      to the guest instruction stream or register state and so can't directly
      emulate in response to a #NPF on an emulated MMIO GPA.  Disabling MMIO
      caching means guest accesses to emulated MMIO ranges cause #NPF(!PRESENT),
      and those flavors of #NPF cause automatic VM-Exits, not #VC.
      
      Adjust KVM's MMIO masks to account for the C-bit location prior to doing
      SEV(-ES) setup, and document that dependency between adjusting the MMIO
      SPTE mask and SEV(-ES) setup.
      
      Fixes: b09763da ("KVM: x86/mmu: Add module param to disable MMIO caching (for testing)")
      Reported-by: default avatarMichael Roth <michael.roth@amd.com>
      Tested-by: default avatarMichael Roth <michael.roth@amd.com>
      Cc: Tom Lendacky <thomas.lendacky@amd.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
      Message-Id: <20220803224957.1285926-4-seanjc@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      0c29397a
    • Sean Christopherson's avatar
      KVM: x86/mmu: Fully re-evaluate MMIO caching when SPTE masks change · c3e0c8c2
      Sean Christopherson authored
      Fully re-evaluate whether or not MMIO caching can be enabled when SPTE
      masks change; simply clearing enable_mmio_caching when a configuration
      isn't compatible with caching fails to handle the scenario where the
      masks are updated, e.g. by VMX for EPT or by SVM to account for the C-bit
      location, and toggle compatibility from false=>true.
      
      Snapshot the original module param so that re-evaluating MMIO caching
      preserves userspace's desire to allow caching.  Use a snapshot approach
      so that enable_mmio_caching still reflects KVM's actual behavior.
      
      Fixes: 8b9e74bf ("KVM: x86/mmu: Use enable_mmio_caching to track if MMIO caching is enabled")
      Reported-by: default avatarMichael Roth <michael.roth@amd.com>
      Cc: Tom Lendacky <thomas.lendacky@amd.com>
      Cc: stable@vger.kernel.org
      Tested-by: default avatarMichael Roth <michael.roth@amd.com>
      Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
      Reviewed-by: default avatarKai Huang <kai.huang@intel.com>
      Message-Id: <20220803224957.1285926-3-seanjc@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      c3e0c8c2
    • Sean Christopherson's avatar
      KVM: x86: Tag kvm_mmu_x86_module_init() with __init · 982bae43
      Sean Christopherson authored
      Mark kvm_mmu_x86_module_init() with __init, the entire reason it exists
      is to initialize variables when kvm.ko is loaded, i.e. it must never be
      called after module initialization.
      
      Fixes: 1d0e8480 ("KVM: x86/mmu: Resolve nx_huge_pages when kvm.ko is loaded")
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarKai Huang <kai.huang@intel.com>
      Tested-by: default avatarMichael Roth <michael.roth@amd.com>
      Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
      Message-Id: <20220803224957.1285926-2-seanjc@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      982bae43
    • Michal Luczaj's avatar
      KVM: x86: emulator: Fix illegal LEA handling · 4ac5b423
      Michal Luczaj authored
      The emulator mishandles LEA with register source operand. Even though such
      LEA is illegal, it can be encoded and fed to CPU. In which case real
      hardware throws #UD. The emulator, instead, returns address of
      x86_emulate_ctxt._regs. This info leak hurts host's kASLR.
      
      Tell the decoder that illegal LEA is not to be emulated.
      Signed-off-by: default avatarMichal Luczaj <mhal@rbox.co>
      Message-Id: <20220729134801.1120-1-mhal@rbox.co>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      4ac5b423
    • Yu Zhang's avatar
      KVM: X86: avoid uninitialized 'fault.async_page_fault' from fixed-up #PF · 2bc685e6
      Yu Zhang authored
      kvm_fixup_and_inject_pf_error() was introduced to fixup the error code(
      e.g., to add RSVD flag) and inject the #PF to the guest, when guest
      MAXPHYADDR is smaller than the host one.
      
      When it comes to nested, L0 is expected to intercept and fix up the #PF
      and then inject to L2 directly if
      - L2.MAXPHYADDR < L0.MAXPHYADDR and
      - L1 has no intention to intercept L2's #PF (e.g., L2 and L1 have the
        same MAXPHYADDR value && L1 is using EPT for L2),
      instead of constructing a #PF VM Exit to L1. Currently, with PFEC_MASK
      and PFEC_MATCH both set to 0 in vmcs02, the interception and injection
      may happen on all L2 #PFs.
      
      However, failing to initialize 'fault' in kvm_fixup_and_inject_pf_error()
      may cause the fault.async_page_fault being NOT zeroed, and later the #PF
      being treated as a nested async page fault, and then being injected to L1.
      Instead of zeroing 'fault' at the beginning of this function, we mannually
      set the value of 'fault.async_page_fault', because false is the value we
      really expect.
      
      Fixes: 89786147 ("KVM: x86: Add helper functions for illegal GPA checking and page fault injection")
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=216178Reported-by: default avatarYang Lixiao <lixiao.yang@intel.com>
      Signed-off-by: default avatarYu Zhang <yu.c.zhang@linux.intel.com>
      Reviewed-by: default avatarSean Christopherson <seanjc@google.com>
      Message-Id: <20220718074756.53788-1-yu.c.zhang@linux.intel.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      2bc685e6
    • Sean Christopherson's avatar
      KVM: x86: Bug the VM if an accelerated x2APIC trap occurs on a "bad" reg · 70c8327c
      Sean Christopherson authored
      Bug the VM if retrieving the x2APIC MSR/register while processing an
      accelerated vAPIC trap VM-Exit fails.  In theory it's impossible for the
      lookup to fail as hardware has already validated the register, but bugs
      happen, and not checking the result of kvm_lapic_msr_read() would result
      in consuming the uninitialized "val" if a KVM or hardware bug occurs.
      
      Fixes: 1bd9dfec ("KVM: x86: Do not block APIC write for non ICR registers")
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
      Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
      Message-Id: <20220804235028.1766253-1-seanjc@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      70c8327c
    • Paolo Bonzini's avatar
      KVM: x86: do not report preemption if the steal time cache is stale · c3c28d24
      Paolo Bonzini authored
      Commit 7e2175eb ("KVM: x86: Fix recording of guest steal time
      / preempted status", 2021-11-11) open coded the previous call to
      kvm_map_gfn, but in doing so it dropped the comparison between the cached
      guest physical address and the one in the MSR.  This cause an incorrect
      cache hit if the guest modifies the steal time address while the memslots
      remain the same.  This can happen with kexec, in which case the preempted
      bit is written at the address used by the old kernel instead of
      the old one.
      
      Cc: David Woodhouse <dwmw@amazon.co.uk>
      Cc: stable@vger.kernel.org
      Fixes: 7e2175eb ("KVM: x86: Fix recording of guest steal time / preempted status")
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      c3c28d24
    • Paolo Bonzini's avatar
      KVM: x86: revalidate steal time cache if MSR value changes · 901d3765
      Paolo Bonzini authored
      Commit 7e2175eb ("KVM: x86: Fix recording of guest steal time
      / preempted status", 2021-11-11) open coded the previous call to
      kvm_map_gfn, but in doing so it dropped the comparison between the cached
      guest physical address and the one in the MSR.  This cause an incorrect
      cache hit if the guest modifies the steal time address while the memslots
      remain the same.  This can happen with kexec, in which case the steal
      time data is written at the address used by the old kernel instead of
      the old one.
      
      While at it, rename the variable from gfn to gpa since it is a plain
      physical address and not a right-shifted one.
      Reported-by: default avatarDave Young <ruyang@redhat.com>
      Reported-by: default avatarXiaoying Yan  <yiyan@redhat.com>
      Analyzed-by: default avatarDr. David Alan Gilbert <dgilbert@redhat.com>
      Cc: David Woodhouse <dwmw@amazon.co.uk>
      Cc: stable@vger.kernel.org
      Fixes: 7e2175eb ("KVM: x86: Fix recording of guest steal time / preempted status")
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      901d3765
    • Paolo Bonzini's avatar
      selftests: kvm: fix compilation · baea2ce5
      Paolo Bonzini authored
      Commit  49de12ba ("selftests: drop KSFT_KHDR_INSTALL make target")
      dropped from tools/testing/selftests/lib.mk the code related to KSFT_KHDR_INSTALL,
      but in doing so it also dropped the definition of the ARCH variable.  The ARCH
      variable is used in several subdirectories, but kvm/ is the only one of these
      that was using KSFT_KHDR_INSTALL.
      
      As a result, kvm selftests cannot be built anymore:
      
      In file included from include/x86_64/vmx.h:12,
                       from x86_64/vmx_pmu_caps_test.c:18:
      include/x86_64/processor.h:15:10: fatal error: asm/msr-index.h: No such file or directory
         15 | #include <asm/msr-index.h>
            |          ^~~~~~~~~~~~~~~~~
      
      In file included from ../../../../tools/include/asm/atomic.h:6,
                       from ../../../../tools/include/linux/atomic.h:5,
                       from rseq_test.c:15:
      ../../../../tools/include/asm/../../arch/x86/include/asm/atomic.h:11:10: fatal error: asm/cmpxchg.h: No such file or directory
         11 | #include <asm/cmpxchg.h>
            |          ^~~~~~~~~~~~~~~
      
      Fix it by including the definition that was present in lib.mk.
      
      Fixes: 49de12ba ("selftests: drop KSFT_KHDR_INSTALL make target")
      Cc: Guillaume Tucker <guillaume.tucker@collabora.com>
      Cc: Anders Roxell <anders.roxell@linaro.org>
      Cc: Shuah Khan <skhan@linuxfoundation.org>
      Cc: linux-kselftest@vger.kernel.org
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      baea2ce5
  2. 05 Aug, 2022 21 commits
    • Linus Torvalds's avatar
      Merge tag 'mm-stable-2022-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm · 6614a3c3
      Linus Torvalds authored
      Pull MM updates from Andrew Morton:
       "Most of the MM queue. A few things are still pending.
      
        Liam's maple tree rework didn't make it. This has resulted in a few
        other minor patch series being held over for next time.
      
        Multi-gen LRU still isn't merged as we were waiting for mapletree to
        stabilize. The current plan is to merge MGLRU into -mm soon and to
        later reintroduce mapletree, with a view to hopefully getting both
        into 6.1-rc1.
      
        Summary:
      
         - The usual batches of cleanups from Baoquan He, Muchun Song, Miaohe
           Lin, Yang Shi, Anshuman Khandual and Mike Rapoport
      
         - Some kmemleak fixes from Patrick Wang and Waiman Long
      
         - DAMON updates from SeongJae Park
      
         - memcg debug/visibility work from Roman Gushchin
      
         - vmalloc speedup from Uladzislau Rezki
      
         - more folio conversion work from Matthew Wilcox
      
         - enhancements for coherent device memory mapping from Alex Sierra
      
         - addition of shared pages tracking and CoW support for fsdax, from
           Shiyang Ruan
      
         - hugetlb optimizations from Mike Kravetz
      
         - Mel Gorman has contributed some pagealloc changes to improve
           latency and realtime behaviour.
      
         - mprotect soft-dirty checking has been improved by Peter Xu
      
         - Many other singleton patches all over the place"
      
       [ XFS merge from hell as per Darrick Wong in
      
         https://lore.kernel.org/all/YshKnxb4VwXycPO8@magnolia/ ]
      
      * tag 'mm-stable-2022-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (282 commits)
        tools/testing/selftests/vm/hmm-tests.c: fix build
        mm: Kconfig: fix typo
        mm: memory-failure: convert to pr_fmt()
        mm: use is_zone_movable_page() helper
        hugetlbfs: fix inaccurate comment in hugetlbfs_statfs()
        hugetlbfs: cleanup some comments in inode.c
        hugetlbfs: remove unneeded header file
        hugetlbfs: remove unneeded hugetlbfs_ops forward declaration
        hugetlbfs: use helper macro SZ_1{K,M}
        mm: cleanup is_highmem()
        mm/hmm: add a test for cross device private faults
        selftests: add soft-dirty into run_vmtests.sh
        selftests: soft-dirty: add test for mprotect
        mm/mprotect: fix soft-dirty check in can_change_pte_writable()
        mm: memcontrol: fix potential oom_lock recursion deadlock
        mm/gup.c: fix formatting in check_and_migrate_movable_page()
        xfs: fail dax mount if reflink is enabled on a partition
        mm/memcontrol.c: remove the redundant updating of stats_flush_threshold
        userfaultfd: don't fail on unrecognized features
        hugetlb_cgroup: fix wrong hugetlb cgroup numa stat
        ...
      6614a3c3
    • Linus Torvalds's avatar
      Merge tag 'mtd/for-5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux · 74cae210
      Linus Torvalds authored
      Pull MTD updates from Richard Weinberger:
       "MTD core changes:
      
         - Dynamic partition support
      
         - Fix deadlock in sm_ftl
      
         - Various refcount fixes in maps, partitions and parser code
      
         - Integer overflow fixes in mtdchar
      
         - Support for Sercomm partitions
      
        NAND driver changes:
      
         - Clockrate fix for arasan
      
         - Add ATO25D1GA support
      
         - Double free fix for meson driver
      
         - Fix probe/remove methods in cafe NAND
      
         - Support unprotected spare data pages in qcom_nandc
      
        SPI NOR core changes:
      
         - move SECT_4K_PMC flag out of the core as it's a vendor specific
           flag
      
         - s/addr_width/addr_nbytes/g: address width means the number of IO
           lines used for the address, whereas in the code it is used as the
           number of address bytes.
      
         - do not change nor->addr_nbytes at SFDP parsing time. At the SFDP
           parsing time we should not change members of struct spi_nor, but
           instead fill members of struct spi_nor_flash_parameters which could
           later on be used by the callers.
      
         - track flash's internal address mode so that we can use 4B opcodes
           together with opcodes that don't have a 4B opcode correspondent.
      
        SPI NOR manufacturer drivers changes:
      
         - esmt: Rename "f25l32qa" flash name to "f25l32qa-2s".
      
         - micron-st: Skip FSR reading if SPI controller does not support it
           to allow flashes that support FSR to work even when attached to
           such SPI controllers.
      
         - spansion: Add s25hl-t/s25hs-t IDs and fixups"
      
      * tag 'mtd/for-5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (53 commits)
        mtd: core: check partition before dereference
        mtd: spi-nor: fix spi_nor_spimem_setup_op() call in spi_nor_erase_{sector,chip}()
        mtd: spi-nor: spansion: Add s25hl-t/s25hs-t IDs and fixups
        mtd: spi-nor: spansion: Add local function to discover page size
        mtd: spi-nor: core: Track flash's internal address mode
        mtd: spi-nor: core: Return error code from set_4byte_addr_mode()
        mtd: spi-nor: Do not change nor->addr_nbytes at SFDP parsing time
        mtd: spi-nor: core: Shrink the storage size of the flash_info's addr_nbytes
        mtd: spi-nor: s/addr_width/addr_nbytes
        mtd: spi-nor: esmt: Use correct name of f25l32qa
        mtd: spi-nor: micron-st: Skip FSR reading if SPI controller does not support it
        MAINTAINERS: Use my kernel.org email
        mtd: rawnand: arasan: Fix clock rate in NV-DDR
        mtd: rawnand: arasan: Update NAND bus clock instead of system clock
        mtd: core: introduce of support for dynamic partitions
        dt-bindings: mtd: partitions: add additional example for qcom,smem-part
        dt-bindings: mtd: partitions: support label/name only partition
        mtd: spi-nor: move SECT_4K_PMC special handling
        mtd: dataflash: Add SPI ID table
        mtd: hyperbus: rpc-if: Fix RPM imbalance in probe error path
        ...
      74cae210
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml · 79b7e67b
      Linus Torvalds authored
      Pull UML updates from Richard Weinberger:
      
       - KASAN support for x86_64
      
       - noreboot command line option, just like qemu's -no-reboot
      
       - Various fixes and cleanups
      
      * tag 'for-linus-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
        um: include sys/types.h for size_t
        um: Replace to_phys() and to_virt() with less generic function names
        um: Add missing apply_returns()
        um: add "noreboot" command line option for PANIC_TIMEOUT=-1 setups
        um: include linux/stddef.h for __always_inline
        UML: add support for KASAN under x86_64
        mm: Add PAGE_ALIGN_DOWN macro
        um: random: Don't initialise hwrng struct with zero
        um: remove unused mm_copy_segments
        um: remove unused variable
        um: Remove straying parenthesis
        um: x86: print RIP with symbol
        arch: um: Fix build for statically linked UML w/ constructors
        x86/um: Kconfig: Fix indentation
        um/drivers: Kconfig: Fix indentation
        um: Kconfig: Fix indentation
      79b7e67b
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of github.com:openrisc/linux · 4d5398a3
      Linus Torvalds authored
      Pull OpenRISC updates from Stafford Horne:
       "In this cycle we add PCI support to OpenRISC used in our new QEMU virt
        platform.
      
        The main updates from me include:
      
         - Kconfig updates to support OpenRISC PCI (just config now after the
           PCI cleanups I did on Bjorn's branch)
      
         - A new defconfig for the qemu virt platform.
      
         - Also there is one MAINTAINERS update. As I was working on the PCI
           series we kept getting bounces from Richard's old email address. I
           added this here; I am not sure how these are usually handled when
           the maintainer doesn't queue it themselves"
      
      * tag 'for-linus' of github.com:openrisc/linux:
        openrisc: io: Define iounmap argument as volatile
        MAINTAINERS: Update Richard Henderson's address
        openrisc: Add virt defconfig
        openrisc: Add pci bus support
      4d5398a3
    • Linus Torvalds's avatar
      Merge tag 'x86_sgx_for_v6.0-2022-08-03.1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9e2f4023
      Linus Torvalds authored
      Pull x86 SGX updates from Dave Hansen:
       "A set of x86/sgx changes focused on implementing the "SGX2" features,
        plus a minor cleanup:
      
         - SGX2 ISA support which makes enclave memory management much more
           dynamic. For instance, enclaves can now change enclave page
           permissions on the fly.
      
         - Removal of an unused structure member"
      
      * tag 'x86_sgx_for_v6.0-2022-08-03.1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits)
        x86/sgx: Drop 'page_index' from sgx_backing
        selftests/sgx: Page removal stress test
        selftests/sgx: Test reclaiming of untouched page
        selftests/sgx: Test invalid access to removed enclave page
        selftests/sgx: Test faulty enclave behavior
        selftests/sgx: Test complete changing of page type flow
        selftests/sgx: Introduce TCS initialization enclave operation
        selftests/sgx: Introduce dynamic entry point
        selftests/sgx: Test two different SGX2 EAUG flows
        selftests/sgx: Add test for TCS page permission changes
        selftests/sgx: Add test for EPCM permission changes
        Documentation/x86: Introduce enclave runtime management section
        x86/sgx: Free up EPC pages directly to support large page ranges
        x86/sgx: Support complete page removal
        x86/sgx: Support modifying SGX page type
        x86/sgx: Tighten accessible memory range after enclave initialization
        x86/sgx: Support adding of pages to an initialized enclave
        x86/sgx: Support restricting of enclave page permissions
        x86/sgx: Support VA page allocation without reclaiming
        x86/sgx: Export sgx_encl_page_alloc()
        ...
      9e2f4023
    • Linus Torvalds's avatar
      Merge tag 'asm-generic-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic · 3bd6e585
      Linus Torvalds authored
      Pull asm-generic updates from Arnd Bergmann:
       "There are three independent sets of changes:
      
         - Sai Prakash Ranjan adds tracing support to the asm-generic version
           of the MMIO accessors, which is intended to help understand
           problems with device drivers and has been part of Qualcomm's vendor
           kernels for many years
      
         - A patch from Sebastian Siewior to rework the handling of IRQ stacks
           in softirqs across architectures, which is needed for enabling
           PREEMPT_RT
      
         - The last patch to remove the CONFIG_VIRT_TO_BUS option and some of
           the code behind that, after the last users of this old interface
           made it in through the netdev, scsi, media and staging trees"
      
      * tag 'asm-generic-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
        uapi: asm-generic: fcntl: Fix typo 'the the' in comment
        arch/*/: remove CONFIG_VIRT_TO_BUS
        soc: qcom: geni: Disable MMIO tracing for GENI SE
        serial: qcom_geni_serial: Disable MMIO tracing for geni serial
        asm-generic/io: Add logging support for MMIO accessors
        KVM: arm64: Add a flag to disable MMIO trace for nVHE KVM
        lib: Add register read/write tracing support
        drm/meson: Fix overflow implicit truncation warnings
        irqchip/tegra: Fix overflow implicit truncation warnings
        coresight: etm4x: Use asm-generic IO memory barriers
        arm64: io: Use asm-generic high level MMIO accessors
        arch/*: Disable softirq stacks on PREEMPT_RT.
      3bd6e585
    • Linus Torvalds's avatar
      Merge tag 'arm-late-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · fad235ed
      Linus Torvalds authored
      Pull more ARM SoC updates from Arnd Bergmann:
       "These updates came in after I had already tagged the branches, but
        they still seem appropriate for 6.0 and most of them were part of
        linux-next through other trees.
      
         - The reset controller tree adds one new driver for the TI TPS380x
           power management chip and a few minor changes in other drivers
      
         - Apple M1 now has a DT entry for the NVMe controller after the
           driver was merged, and has a new mailing list in the MAINTAINERS
           file.
      
         - Fixes for USB on the Socionext Uniphier platforms and the network
           controller on Intel Cyclone5"
      
      * tag 'arm-late-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
        arm64: dts: uniphier: Fix USB interrupts for PXs3 SoC
        ARM: dts: uniphier: Fix USB interrupts for PXs2 SoC
        arm64: dts: apple: t8103: Add ANS2 NVMe nodes
        reset: tps380x: Fix spelling mistake "Voltags" -> "Voltage"
        reset: tps380x: Add TPS380x device driver supprt
        dt-bindings: reset: Add TPS380x documentation
        dt-bindings: reset: renesas,rzg2l-usbphy-ctrl: Document RZ/G2UL USBPHY Control bindings
        ARM: dts: add EMAC AXI settings for Cyclone5
        reset: reset-simple should depends on HAS_IOMEM
        Revert "reset: microchip-sparx5: allow building as a module"
        reset: a10sr: allow building under COMPILE_TEST
        reset: allow building of reset simple driver if expert config selected
        reset: microchip-sparx5: allow building as a module
        arm64: dts: apple: Re-parent ANS2 power domains
        MAINTAINERS: add ARM/APPLE MACHINE mailing list
      fad235ed
    • Linus Torvalds's avatar
      Merge tag 'for-5.20/parisc-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 8db4a029
      Linus Torvalds authored
      Pull parisc updates from Helge Deller:
       "One real bugfix to change the io_pgetevents_time64() syscall to use
        the compat implementation when running in compat mode, otherwise the
        signed int32 parameters min_nr and nr will be incorrectly handled as
        unsigned int64 values.
      
        Other than that just small cleanups:
      
         - hardware database housekeeping and proper /proc/iomem output
      
         - add proper function exit code if probe functions fail
      
         - drop stale variables (pa_swapper_pg_lock)
      
         - drop unneccessary zero-initializations
      
         - typo fixes in comments"
      
      * tag 'for-5.20/parisc-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        Input: gscps2 - check return value of ioremap() in gscps2_probe()
        parisc: io_pgetevents_time64() needs compat syscall in 32-bit compat mode
        parisc: Drop zero variable initialisations in mm/init.c
        parisc: Do not initialise statics to 0
        parisc: Check the return value of ioremap() in lba_driver_probe()
        parisc: Drop pa_swapper_pg_lock spinlock
        parisc: Fix comment typo in fault.c
        parisc: Fix device names in /proc/iomem
        parisc: Clean up names in hardware database
      8db4a029
    • Linus Torvalds's avatar
      Merge tag 'microblaze-v5.20' of git://git.monstr.eu/linux-2.6-microblaze · 98586bd6
      Linus Torvalds authored
      Pull microblaze updates from Michal Simek:
      
       - Trivial comment fix
      
       - Remove HANDLE_DOMAIN_IRQ selection
      
      * tag 'microblaze-v5.20' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze: Fix some typos in comment
        arch: microblaze: Remove unused "select HANDLE_DOMAIN_IRQ"
      98586bd6
    • Linus Torvalds's avatar
      Merge tag 'printk-for-5.20-sane' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux · a1b02751
      Linus Torvalds authored
      Pull printk updates from Petr Mladek:
      
       - Allow reading kernel log in gdb even on 32 bits systems
      
       - More granular check of the buffer usage in printf selftest
      
       - Clang warning fix
      
      * tag 'printk-for-5.20-sane' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux:
        lib/test_printf.c: fix clang -Wformat warnings
        scripts/gdb: fix 'lx-dmesg' on 32 bits arch
        lib/test_printf.c: split write-beyond-buffer check in two
      a1b02751
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 965a9d75
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
      
       - Runtime verification infrastructure
      
         This is the biggest change here. It introduces the runtime
         verification that is necessary for running Linux on safety critical
         systems.
      
         It allows for deterministic automata models to be inserted into the
         kernel that will attach to tracepoints, where the information on
         these tracepoints will move the model from state to state.
      
         If a state is encountered that does not belong to the model, it will
         then activate a given reactor, that could just inform the user or
         even panic the kernel (for which safety critical systems will detect
         and can recover from).
      
       - Two monitor models are also added: Wakeup In Preemptive (WIP - not to
         be confused with "work in progress"), and Wakeup While Not Running
         (WWNR).
      
       - Added __vstring() helper to the TRACE_EVENT() macro to replace
         several vsnprintf() usages that were all doing it wrong.
      
       - eprobes now can have their event autogenerated when the event name is
         left off.
      
       - The rest is various cleanups and fixes.
      
      * tag 'trace-v6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (50 commits)
        rv: Unlock on error path in rv_unregister_reactor()
        tracing: Use alignof__(struct {type b;}) instead of offsetof()
        tracing/eprobe: Show syntax error logs in error_log file
        scripts/tracing: Fix typo 'the the' in comment
        tracepoints: It is CONFIG_TRACEPOINTS not CONFIG_TRACEPOINT
        tracing: Use free_trace_buffer() in allocate_trace_buffers()
        tracing: Use a struct alignof to determine trace event field alignment
        rv/reactor: Add the panic reactor
        rv/reactor: Add the printk reactor
        rv/monitor: Add the wwnr monitor
        rv/monitor: Add the wip monitor
        rv/monitor: Add the wip monitor skeleton created by dot2k
        Documentation/rv: Add deterministic automata instrumentation documentation
        Documentation/rv: Add deterministic automata monitor synthesis documentation
        tools/rv: Add dot2k
        Documentation/rv: Add deterministic automaton documentation
        tools/rv: Add dot2c
        Documentation/rv: Add a basic documentation
        rv/include: Add instrumentation helper functions
        rv/include: Add deterministic automata monitor definition via C macros
        ...
      965a9d75
    • Linus Torvalds's avatar
      Merge tag 'trace-rtla-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 29b1d469
      Linus Torvalds authored
      Pull real time analysis tool (rtla) updates from Steven Rostedt:
      
       - Fix a double free
      
       - Define syscall numbers for RISCV
      
       - Fix Makefile when called from -C tools
      
       - Use calloc() to check for memory allocation failures
      
      * tag 'trace-rtla-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        rtla: Define syscall numbers for riscv
        rtla: Fix double free
        rtla: Fix Makefile when called from -C tools/
        rtla/utils: Use calloc and check the potential memory allocation failure
      29b1d469
    • Arnd Bergmann's avatar
      Merge branch 'arm/fixes' into arm/late · 1630eee2
      Arnd Bergmann authored
      Two bugfixes that came in to update the MAINTAINERS file
      and fix an issue with USB on the uniphier platform.
      
      * arm/fixes:
        arm64: dts: uniphier: Fix USB interrupts for PXs3 SoC
        ARM: dts: uniphier: Fix USB interrupts for PXs2 SoC
        MAINTAINERS: add ARM/APPLE MACHINE mailing list
      1630eee2
    • Linus Torvalds's avatar
      Merge tag 'xfs-5.20-merge-6' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · b2a88c21
      Linus Torvalds authored
      Pull xfs updates from Darrick Wong:
       "The biggest changes for this release are the log scalability
        improvements, lockless lookups for the buffer cache, and making the
        attr fork a permanent part of the incore inode in preparation for
        directory parent pointers.
      
        There's also a bunch of bug fixes that have accumulated since -rc5. I
        might send you a second pull request with some more bug fixes that I'm
        still working on.
      
        Once the merge window ends, I will hand maintainership back to Dave
        Chinner until the 6.1-rc1 release so that I can conduct the design
        review for the online fsck feature, and try to get it merged.
      
        Summary:
      
         - Improve scalability of the XFS log by removing spinlocks and global
           synchronization points.
      
         - Add security labels to whiteout inodes to match the other
           filesystems.
      
         - Clean up per-ag pointer passing to simplify call sites.
      
         - Reduce verifier overhead by precalculating more AG geometry.
      
         - Implement fast-path lockless lookups in the buffer cache to reduce
           spinlock hammering.
      
         - Make attr forks a permanent part of the inode structure to fix a
           UAF bug and because most files these days tend to have security
           labels and soon will have parent pointers too.
      
         - Clean up XFS_IFORK_Q usage and give it a better name.
      
         - Fix more UAF bugs in the xattr code.
      
         - SOB my tags.
      
         - Fix some typos in the timestamp range documentation.
      
         - Fix a few more memory leaks.
      
         - Code cleanups and typo fixes.
      
         - Fix an unlocked inode fork pointer access in getbmap"
      
      * tag 'xfs-5.20-merge-6' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (61 commits)
        xfs: delete extra space and tab in blank line
        xfs: fix NULL pointer dereference in xfs_getbmap()
        xfs: Fix typo 'the the' in comment
        xfs: Fix comment typo
        xfs: don't leak memory when attr fork loading fails
        xfs: fix for variable set but not used warning
        xfs: xfs_buf cache destroy isn't RCU safe
        xfs: delete unnecessary NULL checks
        xfs: fix comment for start time value of inode with bigtime enabled
        xfs: fix use-after-free in xattr node block inactivation
        xfs: lockless buffer lookup
        xfs: remove a superflous hash lookup when inserting new buffers
        xfs: reduce the number of atomic when locking a buffer after lookup
        xfs: merge xfs_buf_find() and xfs_buf_get_map()
        xfs: break up xfs_buf_find() into individual pieces
        xfs: add in-memory iunlink log item
        xfs: add log item precommit operation
        xfs: combine iunlink inode update functions
        xfs: clean up xfs_iunlink_update_inode()
        xfs: double link the unlinked inode list
        ...
      b2a88c21
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 9daee913
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "Add new ioctls to set and get the file system UUID in the ext4
        superblock and improved the performance of the online resizing of file
        systems with bigalloc enabled.
      
        Fixed a lot of bugs, in particular for the inline data feature,
        potential races when creating and deleting inodes with shared extended
        attribute blocks, and the handling of directory blocks which are
        corrupted"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (37 commits)
        ext4: add ioctls to get/set the ext4 superblock uuid
        ext4: avoid resizing to a partial cluster size
        ext4: reduce computation of overhead during resize
        jbd2: fix assertion 'jh->b_frozen_data == NULL' failure when journal aborted
        ext4: block range must be validated before use in ext4_mb_clear_bb()
        mbcache: automatically delete entries from cache on freeing
        mbcache: Remove mb_cache_entry_delete()
        ext2: avoid deleting xattr block that is being reused
        ext2: unindent codeblock in ext2_xattr_set()
        ext2: factor our freeing of xattr block reference
        ext4: fix race when reusing xattr blocks
        ext4: unindent codeblock in ext4_xattr_block_set()
        ext4: remove EA inode entry from mbcache on inode eviction
        mbcache: add functions to delete entry if unused
        mbcache: don't reclaim used entries
        ext4: make sure ext4_append() always allocates new block
        ext4: check if directory block is within i_size
        ext4: reflect mb_optimize_scan value in options file
        ext4: avoid remove directory when directory is corrupted
        ext4: aligned '*' in comments
        ...
      9daee913
    • Linus Torvalds's avatar
      Merge tag 'for-5.20/block-2022-08-04' of git://git.kernel.dk/linux-block · fa9db655
      Linus Torvalds authored
      Pull block driver updates from Jens Axboe:
      
       - NVMe pull requests via Christoph:
            - add support for In-Band authentication (Hannes Reinecke)
            - handle the persistent internal error AER (Michael Kelley)
            - use in-capsule data for TCP I/O queue connect (Caleb Sander)
            - remove timeout for getting RDMA-CM established event (Israel
              Rukshin)
            - misc cleanups (Joel Granados, Sagi Grimberg, Chaitanya Kulkarni,
              Guixin Liu, Xiang wangx)
            - use command_id instead of req->tag in trace_nvme_complete_rq()
              (Bean Huo)
            - various fixes for the new authentication code (Lukas Bulwahn,
              Dan Carpenter, Colin Ian King, Chaitanya Kulkarni, Hannes
              Reinecke)
            - small cleanups (Liu Song, Christoph Hellwig)
            - restore compat_ioctl support (Nick Bowler)
            - make a nvmet-tcp workqueue lockdep-safe (Sagi Grimberg)
            - enable generic interface (/dev/ngXnY) for unknown command sets
              (Joel Granados, Christoph Hellwig)
            - don't always build constants.o (Christoph Hellwig)
            - print the command name of aborted commands (Christoph Hellwig)
      
       - MD pull requests via Song:
            - Improve raid5 lock contention, by Logan Gunthorpe.
            - Misc fixes to raid5, by Logan Gunthorpe.
            - Fix race condition with md_reap_sync_thread(), by Guoqing Jiang.
            - Fix potential deadlock with raid5_quiesce and
              raid5_get_active_stripe, by Logan Gunthorpe.
            - Refactoring md_alloc(), by Christoph"
            - Fix md disk_name lifetime problems, by Christoph Hellwig
            - Convert prepare_to_wait() to wait_woken() api, by Logan
              Gunthorpe;
            - Fix sectors_to_do bitmap issue, by Logan Gunthorpe.
      
       - Work on unifying the null_blk module parameters and configfs API
         (Vincent)
      
       - drbd bitmap IO error fix (Lars)
      
       - Set of rnbd fixes (Guoqing, Md Haris)
      
       - Remove experimental marker on bcache async device registration (Coly)
      
       - Series from cleaning up the bio splitting (Christoph)
      
       - Removal of the sx8 block driver. This hardware never really
         widespread, and it didn't receive a lot of attention after the
         initial merge of it back in 2005 (Christoph)
      
       - A few fixes for s390 dasd (Eric, Jiang)
      
       - Followup set of fixes for ublk (Ming)
      
       - Support for UBLK_IO_NEED_GET_DATA for ublk (ZiyangZhang)
      
       - Fixes for the dio dma alignment (Keith)
      
       - Misc fixes and cleanups (Ming, Yu, Dan, Christophe
      
      * tag 'for-5.20/block-2022-08-04' of git://git.kernel.dk/linux-block: (136 commits)
        s390/dasd: Establish DMA alignment
        s390/dasd: drop unexpected word 'for' in comments
        ublk_drv: add support for UBLK_IO_NEED_GET_DATA
        ublk_cmd.h: add one new ublk command: UBLK_IO_NEED_GET_DATA
        ublk_drv: cleanup ublksrv_ctrl_dev_info
        ublk_drv: add SET_PARAMS/GET_PARAMS control command
        ublk_drv: fix ublk device leak in case that add_disk fails
        ublk_drv: cancel device even though disk isn't up
        block: fix leaking page ref on truncated direct io
        block: ensure bio_iov_add_page can't fail
        block: ensure iov_iter advances for added pages
        drivers:md:fix a potential use-after-free bug
        md/raid5: Ensure batch_last is released before sleeping for quiesce
        md/raid5: Move stripe_request_ctx up
        md/raid5: Drop unnecessary call to r5c_check_stripe_cache_usage()
        md/raid5: Make is_inactive_blocked() helper
        md/raid5: Refactor raid5_get_active_stripe()
        block: pass struct queue_limits to the bio splitting helpers
        block: move bio_allowed_max_sectors to blk-merge.c
        block: move the call to get_max_io_size out of blk_bio_segment_split
        ...
      fa9db655
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · e4952747
      Linus Torvalds authored
      Pull rdma updates from Jason Gunthorpe:
       "This cycle we got a new RDMA driver "ERDMA" for the Alibaba cloud
        environment. Otherwise the changes are dominated by rxe fixes.
      
        There is another RDMA driver on the list that might get merged next
        cycle, 'MANA' for the Azure cloud environment.
      
        Summary:
      
         - Bug fixes and small features for irdma, hns, siw, qedr, hfi1, mlx5
      
         - General spelling/grammer fixes
      
         - rdma cm can follow changes in neighbours for control packets
      
         - Significant amounts of rxe fixes and spec compliance changes
      
         - Use the modern NAPI API
      
         - Use the bitmap API instead of open coding
      
         - Performance improvements for rtrs
      
         - Add the ERDMA driver for Alibaba cloud
      
         - Fix a use after free bug in SRP"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (99 commits)
        RDMA/ib_srpt: Unify checking rdma_cm_id condition in srpt_cm_req_recv()
        RDMA/rxe: Fix error unwind in rxe_create_qp()
        RDMA/mlx5: Add missing check for return value in get namespace flow
        RDMA/rxe: Split qp state for requester and completer
        RDMA/rxe: Generate error completion for error requester QP state
        RDMA/rxe: Update wqe_index for each wqe error completion
        RDMA/srpt: Fix a use-after-free
        RDMA/srpt: Introduce a reference count in struct srpt_device
        RDMA/srpt: Duplicate port name members
        IB/qib: Fix repeated "in" within comments
        RDMA/erdma: Add driver to kernel build environment
        RDMA/erdma: Add the ABI definitions
        RDMA/erdma: Add the erdma module
        RDMA/erdma: Add connection management (CM) support
        RDMA/erdma: Add verbs implementation
        RDMA/erdma: Add verbs header file
        RDMA/erdma: Add event queue implementation
        RDMA/erdma: Add cmdq implementation
        RDMA/erdma: Add main include file
        RDMA/erdma: Add the hardware related definitions
        ...
      e4952747
    • Dan Carpenter's avatar
      rv: Unlock on error path in rv_unregister_reactor() · f1a15b97
      Dan Carpenter authored
      Unlock the "rv_interface_lock" mutex before returning.
      
      Link: https://lkml.kernel.org/r/YuvYzNfGMgV+PIhd@kili
      
      Fixes: 04acadcb ("rv: Add runtime reactors interface")
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      f1a15b97
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 746fc76b
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "Updates to the usual drivers (ufs, qla2xx, target, lpfc, smartpqi,
        mpi3mr).
      
        The main driver change that might cause issues on down the road is the
        conversion of some of our oldest surviving drivers to the DMA API
        (should only affect m68k).
      
        The only major core change is the rework of async resume; the rest are
        either completely trivial or for updating deprecated APIs"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (195 commits)
        scsi: target: Remove XDWRITEREAD emulated support
        scsi: megaraid: Remove the static variable initialisation
        scsi: ch: Do not initialise statics to 0
        scsi: ufs: core: Fix spelling mistake "Cannnot" -> "Cannot"
        scsi: target: iscsi: Do not require target authentication
        scsi: target: iscsi: Allow AuthMethod=None
        scsi: target: iscsi: Support base64 in CHAP
        scsi: target: iscsi: Add support for extended CDB AHS
        scsi: ufs: dt-bindings: Add SC8280XP binding
        scsi: target: iscsi: Fix clang -Wformat warnings
        scsi: ufs: core: Read device property for ref clock
        scsi: libsas: Resume SAS host for phy reset or enable via sysfs
        scsi: hisi_sas: Modify v3 HW SATA completion error processing
        scsi: hisi_sas: Relocate DMA unmap of SMP task
        scsi: hisi_sas: Remove unnecessary variable to hold DMA map elements
        scsi: hisi_sas: Call hisi_sas_slave_configure() from slave_configure_v3_hw()
        scsi: mpi3mr: Delete a stray tab
        scsi: mpi3mr: Unlock on error path
        scsi: mpi3mr: Reduce VD queue depth on detecting throttling
        scsi: mpi3mr: Resource Based Metering
        ...
      746fc76b
    • Linus Torvalds's avatar
      Merge tag 'mmc-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 328141e5
      Linus Torvalds authored
      Pull MMC updates from Ulf Hansson:
       "MMC core:
         - Add support for the asynchronous SDIO wakeup interrupts
         - Skip redundant evaluation of eMMC HS400 caps when no-MMC-cap
         - Add support to store error stats from host drivers
         - Extend debugfs to show error stats from host drivers
         - Add single I/O read support in the recovery path for 4k sector cards
      
        MMC host:
         - dw_mmc-exynos: Convert corresponding DT bindings to the dtschema
         - dw_mmc-rockchip: Add support for the Rockchip RV1126 variant
         - mmc_spi: Convert corresponding DT bindings to the dtschema
         - mtk-sd: Extend support for interrupts/pinctrls for SDIO low-power mode
         - mtk-sd: Add support for SDIO wake irqs
         - mtk-sd: Add support for the Mediatek MT8188 variant
         - renesas_sdhi: Drop redundant manual tap correction for newer SoCs
         - renesas_sdhi: Add support for the R-Car S4-8 and generic Gen4 variants
         - sdhci/cqhci: Add support to capture stats from host errors
         - sdhci-brcmstb: Add ability to increase max clock rate for SDIO on 72116b0
         - sdhci-msm: Add support for the MSM8998 and SM8450 variant
         - sdhci-of-at91: Fixup UHS-I mode by rewriting of MC1R
         - sdhci-of-dwcmshc: Add support for the Rockchip rk3588 variant
         - sdhci-of-dwcmshc: Enable reset support for the Rockchip variants
         - sdhci-pci-gli: Improve I/O read/write performance for GL9763E
         - sdhci-s3c: Convert corresponding DT bindings to the dtschema
         - tmio: Avoid glitches when resetting
      
        MEMSTICK core:
         - A couple of minor fixes and cleanups"
      
      * tag 'mmc-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (61 commits)
        mmc: mediatek: add support for SDIO eint wakup IRQ
        mmc: core: Add support for SDIO wakeup interrupt
        dt-bindings: mmc: mtk-sd: extend interrupts and pinctrls properties
        dt-bindings: mmc: rockchip-dw-mshc: Document Rockchip RV1126
        mmc: renesas_sdhi: newer SoCs don't need manual tap correction
        mmc: cavium-thunderx: Add of_node_put() when breaking out of loop
        mmc: cavium-octeon: Add of_node_put() when breaking out of loop
        mmc: core: quirks: Add of_node_put() when breaking out of loop
        mmc: sdhci-brcmstb: use clk_get_rate(base_clk) in PM resume
        dt-bindings: mmc: sdhci-msm: Document the SM8450 compatible
        mmc: sdhci-msm: drop redundant of_device_id entries
        dt-bindings: mmc: sdhci-msm: add MSM8998
        mmc: block: Add single read for 4k sector cards
        mmc: mxcmmc: Use mmc_card_sdio macro
        mmc: core: Use mmc_card_* macro and add a new for the sd_combo type
        dt-bindings: mmc: sdhci-msm: constrain reg-names per variants
        dt-bindings: mmc: sdhci-msm: fix reg-names entries
        dt-bindings: mmc: Add compatible for MediaTek MT8188
        dt-bindings: mmc: sdhci-msm: document resets
        mmc: sdhci-of-at91: fix set_uhs_signaling rewriting of MC1R
        ...
      328141e5
    • Linus Torvalds's avatar
      Merge tag 'pci-v5.20-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · eff0cb3d
      Linus Torvalds authored
      Pull pci updates from Bjorn Helgaas:
       "Enumeration:
      
         - Consolidate duplicated 'next function' scanning and extend to allow
           'isolated functions' on s390, similar to existing hypervisors
           (Niklas Schnelle)
      
        Resource management:
         - Implement pci_iobar_pfn() for sparc, which allows us to remove the
           sparc-specific pci_mmap_page_range() and pci_mmap_resource_range().
      
           This removes the ability to map the entire PCI I/O space using
           /proc/bus/pci, but we believe that's already been broken since
           v2.6.28 (Arnd Bergmann)
      
         - Move common PCI definitions to asm-generic/pci.h and rework others
           to be be more specific and more encapsulated in arches that need
           them (Stafford Horne)
      
        Power management:
      
         - Convert drivers to new *_PM_OPS macros to avoid need for '#ifdef
           CONFIG_PM_SLEEP' or '__maybe_unused' (Bjorn Helgaas)
      
        Virtualization:
      
         - Add ACS quirk for Broadcom BCM5750x multifunction NICs that isolate
           the functions but don't advertise an ACS capability (Pavan Chebbi)
      
        Error handling:
      
         - Clear PCI Status register during enumeration in case firmware left
           errors logged (Kai-Heng Feng)
      
         - When we have native control of AER, enable error reporting for all
           devices that support AER. Previously only a few drivers enabled
           this (Stefan Roese)
      
         - Keep AER error reporting enabled for switches. Previously we
           enabled this during enumeration but immediately disabled it (Stefan
           Roese)
      
         - Iterate over error counters instead of error strings to avoid
           printing junk in AER sysfs counters (Mohamed Khalfella)
      
        ASPM:
      
         - Remove pcie_aspm_pm_state_change() so ASPM config changes, e.g.,
           via sysfs, are not lost across power state changes (Kai-Heng Feng)
      
        Endpoint framework:
      
         - Don't stop an EPC when unbinding an EPF from it (Shunsuke Mie)
      
        Endpoint embedded DMA controller driver:
      
         - Simplify and clean up support for the DesignWare embedded DMA
           (eDMA) controller (Frank Li, Serge Semin)
      
        Broadcom STB PCIe controller driver:
      
         - Avoid config space accesses when link is down because we can't
           recover from the CPU aborts these cause (Jim Quinlan)
      
         - Look for power regulators described under Root Ports in DT and
           enable them before scanning the secondary bus (Jim Quinlan)
      
         - Disable/enable regulators in suspend/resume (Jim Quinlan)
      
        Freescale i.MX6 PCIe controller driver:
      
         - Simplify and clean up clock and PHY management (Richard Zhu)
      
         - Disable/enable regulators in suspend/resume (Richard Zhu)
      
         - Set PCIE_DBI_RO_WR_EN before writing DBI registers (Richard Zhu)
      
         - Allow speeds faster than Gen2 (Richard Zhu)
      
         - Make link being down a non-fatal error so controller probe doesn't
           fail if there are no Endpoints connected (Richard Zhu)
      
        Loongson PCIe controller driver:
      
         - Add ACPI and MCFG support for Loongson LS7A (Huacai Chen)
      
         - Avoid config reads to non-existent LS2K/LS7A devices because a
           hardware defect causes machine hangs (Huacai Chen)
      
         - Work around LS7A integrated devices that report incorrect Interrupt
           Pin values (Jianmin Lv)
      
        Marvell Aardvark PCIe controller driver:
      
         - Add support for AER and Slot capability on emulated bridge (Pali
           Rohár)
      
        MediaTek PCIe controller driver:
      
         - Add Airoha EN7532 to DT binding (John Crispin)
      
         - Allow building of driver for ARCH_AIROHA (Felix Fietkau)
      
        MediaTek PCIe Gen3 controller driver:
      
         - Print decoded LTSSM state when the link doesn't come up (Jianjun
           Wang)
      
        NVIDIA Tegra194 PCIe controller driver:
      
         - Convert DT binding to json-schema (Vidya Sagar)
      
         - Add DT bindings and driver support for Tegra234 Root Port and
           Endpoint mode (Vidya Sagar)
      
         - Fix some Root Port interrupt handling issues (Vidya Sagar)
      
         - Set default Max Payload Size to 256 bytes (Vidya Sagar)
      
         - Fix Data Link Feature capability programming (Vidya Sagar)
      
         - Extend Endpoint mode support to devices beyond Controller-5 (Vidya
           Sagar)
      
        Qualcomm PCIe controller driver:
      
         - Rework clock, reset, PHY power-on ordering to avoid hangs and
           improve consistency (Robert Marko, Christian Marangi)
      
         - Move pipe_clk handling to PHY drivers (Dmitry Baryshkov)
      
         - Add IPQ60xx support (Selvam Sathappan Periakaruppan)
      
         - Allow ASPM L1 and substates for 2.7.0 (Krishna chaitanya chundru)
      
         - Add support for more than 32 MSI interrupts (Dmitry Baryshkov)
      
        Renesas R-Car PCIe controller driver:
      
         - Convert DT binding to json-schema (Herve Codina)
      
         - Add Renesas RZ/N1D (R9A06G032) to rcar-gen2 DT binding and driver
           (Herve Codina)
      
        Samsung Exynos PCIe controller driver:
      
         - Fix phy-exynos-pcie driver so it follows the 'phy_init() before
           phy_power_on()' PHY programming model (Marek Szyprowski)
      
        Synopsys DesignWare PCIe controller driver:
      
         - Simplify and clean up the DWC core extensively (Serge Semin)
      
         - Fix an issue with programming the ATU for regions that cross a 4GB
           boundary (Serge Semin)
      
         - Enable the CDM check if 'snps,enable-cdm-check' exists; previously
           we skipped it if 'num-lanes' was absent (Serge Semin)
      
         - Allocate a 32-bit DMA-able page to be MSI target instead of using a
           driver data structure that may not be addressable with 32-bit
           address (Will McVicker)
      
         - Add DWC core support for more than 32 MSI interrupts (Dmitry
           Baryshkov)
      
        Xilinx Versal CPM PCIe controller driver:
      
         - Add DT binding and driver support for Versal CPM5 Gen5 Root Port
           (Bharat Kumar Gogada)"
      
      * tag 'pci-v5.20-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (150 commits)
        PCI: imx6: Support more than Gen2 speed link mode
        PCI: imx6: Set PCIE_DBI_RO_WR_EN before writing DBI registers
        PCI: imx6: Reformat suspend callback to keep symmetric with resume
        PCI: imx6: Move the imx6_pcie_ltssm_disable() earlier
        PCI: imx6: Disable clocks in reverse order of enable
        PCI: imx6: Do not hide PHY driver callbacks and refine the error handling
        PCI: imx6: Reduce resume time by only starting link if it was up before suspend
        PCI: imx6: Mark the link down as non-fatal error
        PCI: imx6: Move regulator enable out of imx6_pcie_deassert_core_reset()
        PCI: imx6: Turn off regulator when system is in suspend mode
        PCI: imx6: Call host init function directly in resume
        PCI: imx6: Disable i.MX6QDL clock when disabling ref clocks
        PCI: imx6: Propagate .host_init() errors to caller
        PCI: imx6: Collect clock enables in imx6_pcie_clk_enable()
        PCI: imx6: Factor out ref clock disable to match enable
        PCI: imx6: Move imx6_pcie_clk_disable() earlier
        PCI: imx6: Move imx6_pcie_enable_ref_clk() earlier
        PCI: imx6: Move PHY management functions together
        PCI: imx6: Move imx6_pcie_grp_offset(), imx6_pcie_configure_type() earlier
        PCI: imx6: Convert to NOIRQ_SYSTEM_SLEEP_PM_OPS()
        ...
      eff0cb3d