Commit Graph

1169580 Commits

Author SHA1 Message Date
Mark Rutland
89720e9e1b BACKPORT: KVM: arm64: Mark some header functions as inline
[ Upstream commit f9dd00de1e53a47763dfad601635d18542c3836d ]

The shared hyp switch header has a number of static functions which
might not be used by all files that include the header, and when unused
they will provoke compiler warnings, e.g.

| In file included from arch/arm64/kvm/hyp/nvhe/hyp-main.c:8:
| ./arch/arm64/kvm/hyp/include/hyp/switch.h:703:13: warning: 'kvm_hyp_handle_dabt_low' defined but not used [-Wunused-function]
|   703 | static bool kvm_hyp_handle_dabt_low(struct kvm_vcpu *vcpu, u64 *exit_code)
|       |             ^~~~~~~~~~~~~~~~~~~~~~~
| ./arch/arm64/kvm/hyp/include/hyp/switch.h:682:13: warning: 'kvm_hyp_handle_cp15_32' defined but not used [-Wunused-function]
|   682 | static bool kvm_hyp_handle_cp15_32(struct kvm_vcpu *vcpu, u64 *exit_code)
|       |             ^~~~~~~~~~~~~~~~~~~~~~
| ./arch/arm64/kvm/hyp/include/hyp/switch.h:662:13: warning: 'kvm_hyp_handle_sysreg' defined but not used [-Wunused-function]
|   662 | static bool kvm_hyp_handle_sysreg(struct kvm_vcpu *vcpu, u64 *exit_code)
|       |             ^~~~~~~~~~~~~~~~~~~~~
| ./arch/arm64/kvm/hyp/include/hyp/switch.h:458:13: warning: 'kvm_hyp_handle_fpsimd' defined but not used [-Wunused-function]
|   458 | static bool kvm_hyp_handle_fpsimd(struct kvm_vcpu *vcpu, u64 *exit_code)
|       |             ^~~~~~~~~~~~~~~~~~~~~
| ./arch/arm64/kvm/hyp/include/hyp/switch.h:329:13: warning: 'kvm_hyp_handle_mops' defined but not used [-Wunused-function]
|   329 | static bool kvm_hyp_handle_mops(struct kvm_vcpu *vcpu, u64 *exit_code)
|       |             ^~~~~~~~~~~~~~~~~~~

Mark these functions as 'inline' to suppress this warning. This
shouldn't result in any functional change.

At the same time, avoid the use of __alias() in the header and alias
kvm_hyp_handle_iabt_low() and kvm_hyp_handle_watchpt_low() to
kvm_hyp_handle_memory_fault() using CPP, matching the style in the rest
of the kernel. For consistency, kvm_hyp_handle_memory_fault() is also
marked as 'inline'.

Bug: 411040189
Change-Id: I5766401542afda440f737c1fee1810a73e89e86d
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Tested-by: Mark Brown <broonie@kernel.org>
Acked-by: Will Deacon <will@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Fuad Tabba <tabba@google.com>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Oliver Upton <oliver.upton@linux.dev>
Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20250210195226.1215254-8-mark.rutland@arm.com
Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Fuad Tabba <tabba@google.com>
2025-05-20 06:56:53 -07:00
Mark Rutland
b9b8d84f6c BACKPORT: KVM: arm64: Refactor exit handlers
[ Upstream commit 9b66195063c5a145843547b1d692bd189be85287 ]

The hyp exit handling logic is largely shared between VHE and nVHE/hVHE,
with common logic in arch/arm64/kvm/hyp/include/hyp/switch.h. The code
in the header depends on function definitions provided by
arch/arm64/kvm/hyp/vhe/switch.c and arch/arm64/kvm/hyp/nvhe/switch.c
when they include the header.

This is an unusual header dependency, and prevents the use of
arch/arm64/kvm/hyp/include/hyp/switch.h in other files as this would
result in compiler warnings regarding missing definitions, e.g.

| In file included from arch/arm64/kvm/hyp/nvhe/hyp-main.c:8:
| ./arch/arm64/kvm/hyp/include/hyp/switch.h:733:31: warning: 'kvm_get_exit_handler_array' used but never defined
|   733 | static const exit_handler_fn *kvm_get_exit_handler_array(struct kvm_vcpu *vcpu);
|       |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~
| ./arch/arm64/kvm/hyp/include/hyp/switch.h:735:13: warning: 'early_exit_filter' used but never defined
|   735 | static void early_exit_filter(struct kvm_vcpu *vcpu, u64 *exit_code);
|       |             ^~~~~~~~~~~~~~~~~

Refactor the logic such that the header doesn't depend on anything from
the C files. There should be no functional change as a result of this
patch.

Bug: 411040189
Change-Id: I4e58bad80763afd73fd03f9653ed4e66dfe97255
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Tested-by: Mark Brown <broonie@kernel.org>
Acked-by: Will Deacon <will@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Fuad Tabba <tabba@google.com>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Oliver Upton <oliver.upton@linux.dev>
Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20250210195226.1215254-7-mark.rutland@arm.com
Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Fuad Tabba <tabba@google.com>
2025-05-20 06:56:53 -07:00
Mark Rutland
c00c44bea2 BACKPORT: KVM: arm64: Remove VHE host restore of CPACR_EL1.SMEN
[ Upstream commit 407a99c4654e8ea65393f412c421a55cac539f5b ]

When KVM is in VHE mode, the host kernel tries to save and restore the
configuration of CPACR_EL1.SMEN (i.e. CPTR_EL2.SMEN when HCR_EL2.E2H=1)
across kvm_arch_vcpu_load_fp() and kvm_arch_vcpu_put_fp(), since the
configuration may be clobbered by hyp when running a vCPU. This logic
has historically been broken, and is currently redundant.

This logic was originally introduced in commit:

  861262ab86 ("KVM: arm64: Handle SME host state when running guests")

At the time, the VHE hyp code would reset CPTR_EL2.SMEN to 0b00 when
returning to the host, trapping host access to SME state. Unfortunately,
this was unsafe as the host could take a softirq before calling
kvm_arch_vcpu_put_fp(), and if a softirq handler were to use kernel mode
NEON the resulting attempt to save the live FPSIMD/SVE/SME state would
result in a fatal trap.

That issue was limited to VHE mode. For nVHE/hVHE modes, KVM always
saved/restored the host kernel's CPACR_EL1 value, and configured
CPTR_EL2.TSM to 0b0, ensuring that host usage of SME would not be
trapped.

The issue above was incidentally fixed by commit:

  375110ab51 ("KVM: arm64: Fix resetting SME trap values on reset for (h)VHE")

That commit changed the VHE hyp code to configure CPTR_EL2.SMEN to 0b01
when returning to the host, permitting host kernel usage of SME,
avoiding the issue described above. At the time, this was not identified
as a fix for commit 861262ab86.

Now that the host eagerly saves and unbinds its own FPSIMD/SVE/SME
state, there's no need to save/restore the state of the EL0 SME trap.
The kernel can safely save/restore state without trapping, as described
above, and will restore userspace state (including trap controls) before
returning to userspace.

Remove the redundant logic.

Bug: 411040189
Change-Id: Ia2fbb22a21da8e63f0a3b9a76d47ee2c987e2fa5
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Tested-by: Mark Brown <broonie@kernel.org>
Acked-by: Will Deacon <will@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Fuad Tabba <tabba@google.com>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Oliver Upton <oliver.upton@linux.dev>
Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20250210195226.1215254-5-mark.rutland@arm.com
Signed-off-by: Marc Zyngier <maz@kernel.org>
[Update for rework of flags storage -- broonie]
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Fuad Tabba <tabba@google.com>
2025-05-20 06:56:53 -07:00
Mark Rutland
c952e23cf8 BACKPORT: KVM: arm64: Remove VHE host restore of CPACR_EL1.ZEN
[ Upstream commit 459f059be702056d91537b99a129994aa6ccdd35 ]

When KVM is in VHE mode, the host kernel tries to save and restore the
configuration of CPACR_EL1.ZEN (i.e. CPTR_EL2.ZEN when HCR_EL2.E2H=1)
across kvm_arch_vcpu_load_fp() and kvm_arch_vcpu_put_fp(), since the
configuration may be clobbered by hyp when running a vCPU. This logic is
currently redundant.

The VHE hyp code unconditionally configures CPTR_EL2.ZEN to 0b01 when
returning to the host, permitting host kernel usage of SVE.

Now that the host eagerly saves and unbinds its own FPSIMD/SVE/SME
state, there's no need to save/restore the state of the EL0 SVE trap.
The kernel can safely save/restore state without trapping, as described
above, and will restore userspace state (including trap controls) before
returning to userspace.

Remove the redundant logic.

Bug: 411040189
Change-Id: I43bf5587223aae54caf9389eb3de17f155043d96
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Tested-by: Mark Brown <broonie@kernel.org>
Acked-by: Will Deacon <will@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Fuad Tabba <tabba@google.com>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Oliver Upton <oliver.upton@linux.dev>
Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20250210195226.1215254-4-mark.rutland@arm.com
Signed-off-by: Marc Zyngier <maz@kernel.org>
[Rework for refactoring of where the flags are stored -- broonie]
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Fuad Tabba <tabba@google.com>
2025-05-20 06:56:53 -07:00
Mark Rutland
a08391468f BACKPORT: KVM: arm64: Remove host FPSIMD saving for non-protected KVM
[ Upstream commit 8eca7f6d5100b6997df4f532090bc3f7e0203bef ]

Now that the host eagerly saves its own FPSIMD/SVE/SME state,
non-protected KVM never needs to save the host FPSIMD/SVE/SME state,
and the code to do this is never used. Protected KVM still needs to
save/restore the host FPSIMD/SVE state to avoid leaking guest state to
the host (and to avoid revealing to the host whether the guest used
FPSIMD/SVE/SME), and that code needs to be retained.

Remove the unused code and data structures.

To avoid the need for a stub copy of kvm_hyp_save_fpsimd_host() in the
VHE hyp code, the nVHE/hVHE version is moved into the shared switch
header, where it is only invoked when KVM is in protected mode.

[tabba@ Kept user_fpsimd_state as to not break the KMI.]

Bug: 411040189
Change-Id: I0088db7c5f75c9331956867040b8eb69976aabf8
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Tested-by: Mark Brown <broonie@kernel.org>
Acked-by: Will Deacon <will@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Fuad Tabba <tabba@google.com>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Oliver Upton <oliver.upton@linux.dev>
Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20250210195226.1215254-3-mark.rutland@arm.com
Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Fuad Tabba <tabba@google.com>
2025-05-20 06:56:53 -07:00
Mark Rutland
12921b6e23 BACKPORT: KVM: arm64: Unconditionally save+flush host FPSIMD/SVE/SME state
[ Upstream commit fbc7e61195e23f744814e78524b73b59faa54ab4 ]

There are several problems with the way hyp code lazily saves the host's
FPSIMD/SVE state, including:

* Host SVE being discarded unexpectedly due to inconsistent
  configuration of TIF_SVE and CPACR_ELx.ZEN. This has been seen to
  result in QEMU crashes where SVE is used by memmove(), as reported by
  Eric Auger:

  https://issues.redhat.com/browse/RHEL-68997

* Host SVE state is discarded *after* modification by ptrace, which was an
  unintentional ptrace ABI change introduced with lazy discarding of SVE state.

* The host FPMR value can be discarded when running a non-protected VM,
  where FPMR support is not exposed to a VM, and that VM uses
  FPSIMD/SVE. In these cases the hyp code does not save the host's FPMR
  before unbinding the host's FPSIMD/SVE/SME state, leaving a stale
  value in memory.

Avoid these by eagerly saving and "flushing" the host's FPSIMD/SVE/SME
state when loading a vCPU such that KVM does not need to save any of the
host's FPSIMD/SVE/SME state. For clarity, fpsimd_kvm_prepare() is
removed and the necessary call to fpsimd_save_and_flush_cpu_state() is
placed in kvm_arch_vcpu_load_fp(). As 'fpsimd_state' and 'fpmr_ptr'
should not be used, they are set to NULL; all uses of these will be
removed in subsequent patches.

Historical problems go back at least as far as v5.17, e.g. erroneous
assumptions about TIF_SVE being clear in commit:

  8383741ab2 ("KVM: arm64: Get rid of host SVE tracking/saving")

... and so this eager save+flush probably needs to be backported to ALL
stable trees.

Bug: 411040189
Fixes: 93ae6b01ba ("KVM: arm64: Discard any SVE state when entering KVM guests")
Fixes: 8c845e2731 ("arm64/sve: Leave SVE enabled on syscall if we don't context switch")
Fixes: ef3be86021c3bdf3 ("KVM: arm64: Add save/restore support for FPMR")
Reported-by: Eric Auger <eauger@redhat.com>
Reported-by: Wilco Dijkstra <wilco.dijkstra@arm.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Tested-by: Mark Brown <broonie@kernel.org>
Tested-by: Eric Auger <eric.auger@redhat.com>
Acked-by: Will Deacon <will@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Florian Weimer <fweimer@redhat.com>
Cc: Fuad Tabba <tabba@google.com>
Cc: Jeremy Linton <jeremy.linton@arm.com>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Oliver Upton <oliver.upton@linux.dev>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Change-Id: I2c230b8db86f5c68ebf24f06d1e4787da284c80d
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20250210195226.1215254-2-mark.rutland@arm.com
Signed-off-by: Marc Zyngier <maz@kernel.org>
[ Mark: Handle vcpu/host flag conflict, remove host_data_ptr() ]
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Fuad Tabba <tabba@google.com>
2025-05-20 06:56:53 -07:00
Mark Brown
f1df93017e BACKPORT: KVM: arm64: Discard any SVE state when entering KVM guests
[ Upstream commit 93ae6b01ba ]

Since 8383741ab2 (KVM: arm64: Get rid of host SVE tracking/saving)
KVM has not tracked the host SVE state, relying on the fact that we
currently disable SVE whenever we perform a syscall. This may not be true
in future since performance optimisation may result in us keeping SVE
enabled in order to avoid needing to take access traps to reenable it.
Handle this by clearing TIF_SVE and converting the stored task state to
FPSIMD format when preparing to run the guest.  This is done with a new
call fpsimd_kvm_prepare() to keep the direct state manipulation
functions internal to fpsimd.c.

Change-Id: Ie011c8f17dfebd82f796aaaa62d1502a3207c7db
Signed-off-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221115094640.112848-2-broonie@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
[ Mark: trivial backport to v6.1 ]
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Fuad Tabba <tabba@google.com>
2025-05-20 06:56:53 -07:00
Fuad Tabba
21c687a8c5 ANDROID: KVM: arm64: Eagerly restore host FPSIMD/SVE state in pKVM
Eagerly restore the host fpsimd/sve state after every vcpu run in
protected mode if the fpsimd/sve unit was used by the guest, instead of
setting fpsimd/simd traps and restoring if the host triggers them.

Note that the behavior with this patch is the existing behavior in
Android 16 (except for restoring ZCL_EL2, which is being fixed in
conjunction with this patch there as well).

Bug: 411040189
Change-Id: I5702590331093937c1cd0d08ac754c634054c7f7
Signed-off-by: Fuad Tabba <tabba@google.com>
2025-05-20 06:56:53 -07:00
Fuad Tabba
d871a6444c ANDROID: KVM: arm64: Move __deactivate_fpsimd_traps() to switch.h
Move __deactivate_fpsimd_traps() to the shared switch header, instead of
having separate implementations in the vhe/nvhe switch.c files.
Subsequent patches will remove all specific implementations from
switch.c and include switch.h in other files.

Bug: 411040189
Change-Id: I42c545e939b230366fbd9ad8e41a614193169bce
Signed-off-by: Fuad Tabba <tabba@google.com>
2025-05-20 06:56:53 -07:00
Fuad Tabba
1b3dfc7c38 ANDROID: KVM: arm64: Move kvm_hyp_handle_fpsimd_host() to switch.h
Move kvm_hyp_handle_fpsimd_host() to the shared switch header, instead
of having separate implementations in the vhe/nvhe switch.c files.
Subsequent patches will remove all specific implementations from
switch.c and include switch.h in other files.

Bug: 411040189
Change-Id: I07f1d92f96b072435ded5f0b84a446df4e6a81ab
Signed-off-by: Fuad Tabba <tabba@google.com>
2025-05-20 06:56:53 -07:00
Fuad Tabba
c3b505e78c ANDROID: KVM: arm64: Remove pkvm_set_max_sve_vq()
This function doesn't encapsulate that much code, and removing it makes
backporting SVE-fix patches easier and cleaner.

No functional change intended.

Bug: 411040189
Change-Id: I27b3fe467b1896a393751349b86771ddbb1bd62b
Signed-off-by: Fuad Tabba <tabba@google.com>
2025-05-20 06:56:53 -07:00
Fuad Tabba
d653b32842 Revert "ANDROID: KVM: arm64: Use enum instead of helper for fp state"
This reverts commit 26d24625b3, which
didn't introduce any functional change. This is reverted because
backported commits rely on the helpers that the commit has removed.
Reverting it makes it easier and cleaner to apply the backports.

No functional change intended.

Bug: 411040189
Change-Id: Ie29ece274cfc970cf116f8781b841b9ac2c5aa56
Signed-off-by: Fuad Tabba <tabba@google.com>
2025-05-20 06:56:53 -07:00
Marcus Ma
b07be5e511 ANDROID: GKI: update symbol list file for xiaomi
add 2 function:
	trace_android_vh_drain_all_pages_bypass()
	trace_android_vh_pageset_update()

Bug: 418695654

Change-Id: Id1bbb269b7650528dcb2dfac29e7a611154954b3
Signed-off-by: Marcus Ma <maminghui5@xiaomi.corp-partner.google.com>
2025-05-19 21:55:22 -07:00
Marcus Ma
58b3f63bc6 ANDROID: vendor_hooks: Add hooks for pcp related optimization.
We want to make some optimizations to the pcp buffer. First, when directly recycling, we skip drain_all_pages when it is known that the pcp buffer is small to reduce zone->lock contention. In addition, the default pcp buffer size is still relatively small for mobile phones with large memory. We want to increase the pcp buffer area to reduce zone->lock contention.

Bug: 418695654

Change-Id: I38c7a3715500918d839e4363bbcc41cdbf4bd643
Signed-off-by: Marcus Ma <maminghui5@xiaomi.corp-partner.google.com>
2025-05-19 21:55:22 -07:00
Barry Song
ad7902a401 BACKPORT: mm: userfaultfd: correct dirty flags set for both present and swap pte
As David pointed out, what truly matters for mremap and userfaultfd move
operations is the soft dirty bit.  The current comment and
implementation—which always sets the dirty bit for present PTEs and
fails to set the soft dirty bit for swap PTEs—are incorrect.  This could
break features like Checkpoint-Restore in Userspace (CRIU).

This patch updates the behavior to correctly set the soft dirty bit for
both present and swap PTEs in accordance with mremap.

Link: https://lkml.kernel.org/r/20250508220912.7275-1-21cnbao@gmail.com
Fixes: adef440691ba ("userfaultfd: UFFDIO_MOVE uABI")
Signed-off-by: Barry Song <v-songbaohua@oppo.com>
Reported-by: David Hildenbrand <david@redhat.com>
Closes: https://lore.kernel.org/linux-mm/02f14ee1-923f-47e3-a994-4950afb9afcc@redhat.com/
Acked-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Suren Baghdasaryan <surenb@google.com>
Cc: Lokesh Gidra <lokeshgidra@google.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit 75cb1cca2c880179a11c7dd9380b6f14e41a06a4)

Merge Conflicts:
1. pte_mkwrite() doesn't take vma as second argument, so removed it.

Change-Id: I5fc25f9028ad7972ea1b6d873f072fd15f9c7214
Signed-off-by: Lokesh Gidra <lokeshgidra@google.com>
2025-05-19 16:49:00 -07:00
Kalesh Singh
e30317e116 ANDROID: 16K: Remove ELF padding entry from map_file ranges
Symbolization techniques use address ranges as reported in /proc/*/maps
to infer the corresponding /proc/*/map_files/ entry.

Per Daniel, this is done because the path in /proc/*/maps is problematic
for at least two reasons:

    1. The file could have been deleted from the file system (this is
       indicated with the  (deleted) suffix), meaning that you can't
       actually open it through the "regular" file system. However,
       while the mapping is alive, the kernel keeps the inode accessible
       via the corresponding /proc/*/map_files entry, allowing for
       access after all.

    2. It makes dealing with changed root and file system namespaces
       much more painful. The /proc/*/maps path is relative, and so now
       you need to concatenate paths etc. Accessing file through
       /proc/*/map_files just works (assuming necessary permissions), as
       the kernel redirects the request to the proper inode,
       irrespective of how it is exposed through the non-proc
       filesystem.

Android extends ELF padding regions to be contiguously mapped in memory
to mitigate increase in unreclaimable VMA slab memory usage.

Commit 8c2a805a857914324b077708b45c31c2f20d02da [1] emulates the padding
region of such extended mappings to be outputted as PROT_NONE
[page size compat] entries from /proc/*/[s]maps. This breaks the use
case of /proc/*/maps_files/, as the ranges in /proc/*/map_files/ are
the true ranges of the actual underlying VMA layout; while those in
/proc/*/[s]maps are the emulated (shortened) ranges.

Remove the padding (extended) ranges from /proc/*/maps_files entries.

====== Example Output ======

=== maps ===

❯ adb shell cat /proc/1/maps | grep -A1 libdl_android.so | sed '$d'

7f76663df000-7f76663e0000 r--p 00000000 fe:09 1911                       /system/lib64/bootstrap/libdl_android.so
7f76663e0000-7f76663e3000 ---p 00000000 00:00 0                          [page size compat]
7f76663e3000-7f76663e4000 r-xp 00004000 fe:09 1911                       /system/lib64/bootstrap/libdl_android.so
7f76663e4000-7f76663e7000 ---p 00000000 00:00 0                          [page size compat]
7f76663e7000-7f76663e8000 r--p 00008000 fe:09 1911                       /system/lib64/bootstrap/libdl_android.s

=== map_files - Before patch ===

❯ adb shell ls /proc/1/map_files | grep -A2 7f76663df000

7f76663df000-7f76663e3000
7f76663e3000-7f76663e7000
7f76663e7000-7f76663e8000

=== map_files - After patch ===

❯ adb shell ls /proc/1/map_files | grep -A2 7f76663df000

7f76663df000-7f76663e0000
7f76663e3000-7f76663e4000
7f76663e7000-7f76663e8000

[1] 8c2a805a85

Bug: 418042003
Change-Id: I0f6d703715a0e709fa1d4bd52241b5fd913dd55e
Reported-by: Daniel Müller <deso@posteo.net>
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
2025-05-19 13:26:15 -07:00
Octavian Purdila
228e0f23bd UPSTREAM: net_sched: sch_sfq: move the limit validation
[ Upstream commit b3bf8f63e6179076b57c9de660c9f80b5abefe70 ]

It is not sufficient to directly validate the limit on the data that
the user passes as it can be updated based on how the other parameters
are changed.

Move the check at the end of the configuration update process to also
catch scenarios where the limit is indirectly updated, for example
with the following configurations:

tc qdisc add dev dummy0 handle 1: root sfq limit 2 flows 1 depth 1
tc qdisc add dev dummy0 handle 1: root sfq limit 2 flows 1 divisor 1

This fixes the following syzkaller reported crash:

------------[ cut here ]------------
UBSAN: array-index-out-of-bounds in net/sched/sch_sfq.c:203:6
index 65535 is out of range for type 'struct sfq_head[128]'
CPU: 1 UID: 0 PID: 3037 Comm: syz.2.16 Not tainted 6.14.0-rc2-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x201/0x300 lib/dump_stack.c:120
 ubsan_epilogue lib/ubsan.c:231 [inline]
 __ubsan_handle_out_of_bounds+0xf5/0x120 lib/ubsan.c:429
 sfq_link net/sched/sch_sfq.c:203 [inline]
 sfq_dec+0x53c/0x610 net/sched/sch_sfq.c:231
 sfq_dequeue+0x34e/0x8c0 net/sched/sch_sfq.c:493
 sfq_reset+0x17/0x60 net/sched/sch_sfq.c:518
 qdisc_reset+0x12e/0x600 net/sched/sch_generic.c:1035
 tbf_reset+0x41/0x110 net/sched/sch_tbf.c:339
 qdisc_reset+0x12e/0x600 net/sched/sch_generic.c:1035
 dev_reset_queue+0x100/0x1b0 net/sched/sch_generic.c:1311
 netdev_for_each_tx_queue include/linux/netdevice.h:2590 [inline]
 dev_deactivate_many+0x7e5/0xe70 net/sched/sch_generic.c:1375

Bug: 413623519
Reported-by: syzbot <syzkaller@googlegroups.com>
Fixes: 10685681bafc ("net_sched: sch_sfq: don't allow 1 packet limit")
Signed-off-by: Octavian Purdila <tavip@google.com>
Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit f86293adce0c201cfabb283ef9d6f21292089bb8)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ie5fc222b52c59eaa1070cc03402f8a624af60cd9
2025-05-19 15:20:05 +01:00
Octavian Purdila
3e7cb920f1 UPSTREAM: net_sched: sch_sfq: use a temporary work area for validating configuration
[ Upstream commit 8c0cea59d40cf6dd13c2950437631dd614fbade6 ]

Many configuration parameters have influence on others (e.g. divisor
-> flows -> limit, depth -> limit) and so it is difficult to correctly
do all of the validation before applying the configuration. And if a
validation error is detected late it is difficult to roll back a
partially applied configuration.

To avoid these issues use a temporary work area to update and validate
the configuration and only then apply the configuration to the
internal state.

Bug: 413623519
Signed-off-by: Octavian Purdila <tavip@google.com>
Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Stable-dep-of: b3bf8f63e617 ("net_sched: sch_sfq: move the limit validation")
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit 70449ca40609ec77f58b93ed154d54e1fdb197b6)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Icab9dc62eddd23f6a2c5d06dd1f8457294716fb8
2025-05-19 15:19:58 +01:00
Yabin Cui
a0fa2316cc ANDROID: ABI: Update pixel symbol list
Adding the following symbols:
  - irq_check_status_bit
  - irq_get_percpu_devid_partition
  - irq_work_run
  - perf_aux_output_skip
  - this_cpu_has_cap

Bug: 393467632
Change-Id: I8e9f34b6b40ec078586d175efb835a6898cbc4f1
Signed-off-by: Yabin Cui <yabinc@google.com>
2025-05-15 15:05:50 -07:00
Yabin Cui
218e2bd245 FROMGIT: perf/aux: Allocate non-contiguous AUX pages by default
perf always allocates contiguous AUX pages based on aux_watermark.
However, this contiguous allocation doesn't benefit all PMUs. For
instance, ARM SPE and TRBE operate with virtual pages, and Coresight
ETR allocates a separate buffer. For these PMUs, allocating contiguous
AUX pages unnecessarily exacerbates memory fragmentation. This
fragmentation can prevent their use on long-running devices.

This patch modifies the perf driver to be memory-friendly by default,
by allocating non-contiguous AUX pages. For PMUs requiring contiguous
pages (Intel BTS and some Intel PT), the existing
PERF_PMU_CAP_AUX_NO_SG capability can be used. For PMUs that don't
require but can benefit from contiguous pages (some Intel PT), a new
capability, PERF_PMU_CAP_AUX_PREFER_LARGE, is added to maintain their
existing behavior.

Bug: 393467632
(cherry picked from commit 18049c8cff9cc89daadc4df6975f7d9069638926
 git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf/core)
Change-Id: Iaff554201726bf271c7625a6df59fb35c6cfbc5d
Signed-off-by: Yabin Cui <yabinc@google.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: James Clark <james.clark@linaro.org>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20250508232642.148767-1-yabinc@google.com
2025-05-15 11:01:13 -07:00
Alex Williamson
3cd01bb5bd UPSTREAM: mm: Fix is_zero_page() usage in try_grab_page()
The backport of upstream commit c8070b7875 ("mm: Don't pin ZERO_PAGE
in pin_user_pages()") into v6.1.130 noted below in Fixes does not
account for commit 0f0892356f ("mm: allow multiple error returns in
try_grab_page()"), which changed the return value of try_grab_page()
from bool to int.  Therefore returning 0, success in the upstream
version, becomes an error here.  Fix the return value.

Bug: 411256892
Fixes: 476c1dfefa ("mm: Don't pin ZERO_PAGE in pin_user_pages()")
Link: https://lore.kernel.org/all/Z_6uhLQjJ7SSzI13@eldamar.lan
Reported-by: Salvatore Bonaccorso <carnil@debian.org>
Reported-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Cc: stable@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org
Cc: Sasha Levin <sashal@kernel.org>
Change-Id: I1a124e70161e48c9b3374aa3fc541c6a13ea1ff0
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit edde34b792)
Signed-off-by: Will McVicker <willmcvicker@google.com>
2025-05-13 15:49:24 -07:00
Norihiko Hama
53b26534cc UPSTREAM: usb-storage: Optimize scan delay more precisely
Current storage scan delay is reduced by the following old commit.

a4a47bc03f ("Lower USB storage settling delay to something more reasonable")

It means that delay is at least 'one second', or zero with delay_use=0.
'one second' is still long delay especially for embedded system but
when delay_use is set to 0 (no delay), still error observed on some USB drives.

So delay_use should not be set to 0 but 'one second' is quite long.
Especially for embedded system, it's important for end user
how quickly access to USB drive when it's connected.
That's why we have a chance to minimize such a constant long delay.

This patch optimizes scan delay more precisely
to minimize delay time but not to have any problems on USB drives
by extending module parameter 'delay_use' in milliseconds internally.
The parameter 'delay_use' optionally supports in milliseconds
if it ends with 'ms'.
It makes the range of value to 1 / 1000 in internal 32-bit value
but it's still enough to set the delay time.
By default, delay time is 'one second' for backward compatibility.

For example, it seems to be good by changing delay_use=100ms,
that is 100 millisecond delay without issues for most USB pen drives.

Bug: 408977963
Change-Id: I77521bc01a7dadaa5bb94aecd361f2507892928c
(cherry picked from commit 804da867ad016d53bf33373cfeaae041775455f1)
Signed-off-by: Norihiko Hama <Norihiko.Hama@alpsalpine.com>
Link: https://lore.kernel.org/r/20240515004339.29892-1-Norihiko.Hama@alpsalpine.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-05-13 08:25:30 -07:00
Selvarasu Ganesan
646380b087 UPSTREAM: usb: gadget: f_midi: Fixing wMaxPacketSize exceeded issue during MIDI bind retries
The current implementation sets the wMaxPacketSize of bulk in/out
endpoints to 1024 bytes at the end of the f_midi_bind function. However,
in cases where there is a failure in the first midi bind attempt,
consider rebinding. This scenario may encounter an f_midi_bind issue due
to the previous bind setting the bulk endpoint's wMaxPacketSize to 1024
bytes, which exceeds the ep->maxpacket_limit where configured dwc3 TX/RX
FIFO's maxpacket size of 512 bytes for IN/OUT endpoints in support HS
speed only.

Here the term "rebind" in this context refers to attempting to bind the
MIDI function a second time in certain scenarios. The situations where
rebinding is considered include:

 * When there is a failure in the first UDC write attempt, which may be
   caused by other functions bind along with MIDI.
 * Runtime composition change : Example : MIDI,ADB to MIDI. Or MIDI to
   MIDI,ADB.

This commit addresses this issue by resetting the wMaxPacketSize before
endpoint claim. And here there is no need to reset all values in the usb
endpoint descriptor structure, as all members except wMaxPacketSize and
bEndpointAddress have predefined values.

This ensures that restores the endpoint to its expected configuration,
and preventing conflicts with value of ep->maxpacket_limit. It also
aligns with the approach used in other function drivers, which treat
endpoint descriptors as if they were full speed before endpoint claim.

Bug: 254441685
Fixes: 46decc82ff ("usb: gadget: unconditionally allocate hs/ss descriptor in bind operation")
Cc: stable@vger.kernel.org
Signed-off-by: Selvarasu Ganesan <selvarasu.g@samsung.com>
Link: https://lore.kernel.org/r/20250118060134.927-1-selvarasu.g@samsung.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 9e8b21410f310c50733f6e1730bae5a8e30d3570)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I300e3f5aa42555faf1e3c97b716396a6f8c77770
2025-05-07 09:04:08 -07:00
Lorenzo Stoakes
1cc1e93172 UPSTREAM: fork: avoid inappropriate uprobe access to invalid mm
If dup_mmap() encounters an issue, currently uprobe is able to access the
relevant mm via the reverse mapping (in build_map_info()), and if we are
very unlucky with a race window, observe invalid XA_ZERO_ENTRY state which
we establish as part of the fork error path.

This occurs because uprobe_write_opcode() invokes anon_vma_prepare() which
in turn invokes find_mergeable_anon_vma() that uses a VMA iterator,
invoking vma_iter_load() which uses the advanced maple tree API and thus
is able to observe XA_ZERO_ENTRY entries added to dup_mmap() in commit
d24062914837 ("fork: use __mt_dup() to duplicate maple tree in
dup_mmap()").

This change was made on the assumption that only process tear-down code
would actually observe (and make use of) these values.  However this very
unlikely but still possible edge case with uprobes exists and
unfortunately does make these observable.

The uprobe operation prevents races against the dup_mmap() operation via
the dup_mmap_sem semaphore, which is acquired via uprobe_start_dup_mmap()
and dropped via uprobe_end_dup_mmap(), and held across
register_for_each_vma() prior to invoking build_map_info() which does the
reverse mapping lookup.

Currently these are acquired and dropped within dup_mmap(), which exposes
the race window prior to error handling in the invoking dup_mm() which
tears down the mm.

We can avoid all this by just moving the invocation of
uprobe_start_dup_mmap() and uprobe_end_dup_mmap() up a level to dup_mm()
and only release this lock once the dup_mmap() operation succeeds or clean
up is done.

This means that the uprobe code can never observe an incompletely
constructed mm and resolves the issue in this case.

Bug: 254441685
Link: https://lkml.kernel.org/r/20241210172412.52995-1-lorenzo.stoakes@oracle.com
Fixes: d24062914837 ("fork: use __mt_dup() to duplicate maple tree in dup_mmap()")
Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Reported-by: syzbot+2d788f4f7cb660dac4b7@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/all/6756d273.050a0220.2477f.003d.GAE@google.com/
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jann Horn <jannh@google.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Liam R. Howlett <Liam.Howlett@Oracle.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Peng Zhang <zhangpeng.00@bytedance.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: David Hildenbrand <david@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit 8ac662f5da19f5873fdd94c48a5cdb45b2e1b58f)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I915ed6b4f49d63d0d629dd8e9247d4684c664f3a
2025-05-07 08:35:45 -07:00
Lorenzo Stoakes
c5abfe08fc UPSTREAM: fork: do not invoke uffd on fork if error occurs
Patch series "fork: do not expose incomplete mm on fork".

During fork we may place the virtual memory address space into an
inconsistent state before the fork operation is complete.

In addition, we may encounter an error during the fork operation that
indicates that the virtual memory address space is invalidated.

As a result, we should not be exposing it in any way to external machinery
that might interact with the mm or VMAs, machinery that is not designed to
deal with incomplete state.

We specifically update the fork logic to defer khugepaged and ksm to the
end of the operation and only to be invoked if no error arose, and
disallow uffd from observing fork events should an error have occurred.

This patch (of 2):

Currently on fork we expose the virtual address space of a process to
userland unconditionally if uffd is registered in VMAs, regardless of
whether an error arose in the fork.

This is performed in dup_userfaultfd_complete() which is invoked
unconditionally, and performs two duties - invoking registered handlers
for the UFFD_EVENT_FORK event via dup_fctx(), and clearing down
userfaultfd_fork_ctx objects established in dup_userfaultfd().

This is problematic, because the virtual address space may not yet be
correctly initialised if an error arose.

The change in commit d24062914837 ("fork: use __mt_dup() to duplicate
maple tree in dup_mmap()") makes this more pertinent as we may be in a
state where entries in the maple tree are not yet consistent.

We address this by, on fork error, ensuring that we roll back state that
we would otherwise expect to clean up through the event being handled by
userland and perform the memory freeing duty otherwise performed by
dup_userfaultfd_complete().

We do this by implementing a new function, dup_userfaultfd_fail(), which
performs the same loop, only decrementing reference counts.

Note that we perform mmgrab() on the parent and child mm's, however
userfaultfd_ctx_put() will mmdrop() this once the reference count drops to
zero, so we will avoid memory leaks correctly here.

Bug: 254441685
Link: https://lkml.kernel.org/r/cover.1729014377.git.lorenzo.stoakes@oracle.com
Link: https://lkml.kernel.org/r/d3691d58bb58712b6fb3df2be441d175bd3cdf07.1729014377.git.lorenzo.stoakes@oracle.com
Fixes: d24062914837 ("fork: use __mt_dup() to duplicate maple tree in dup_mmap()")
Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Reported-by: Jann Horn <jannh@google.com>
Reviewed-by: Jann Horn <jannh@google.com>
Reviewed-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Christian Brauner <brauner@kernel.org>
Cc: Jan Kara <jack@suse.cz>
Cc: Linus Torvalds <torvalds@linuxfoundation.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit f64e67e5d3a45a4a04286c47afade4b518acd47b)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I9c2f774a0f4a0a75729b86c77c627fb38b8bb17b
2025-05-07 08:35:45 -07:00
Oliver Upton
7c2011337f UPSTREAM: KVM: arm64: Ensure vgic_ready() is ordered against MMIO registration
kvm_vgic_map_resources() prematurely marks the distributor as 'ready',
potentially allowing vCPUs to enter the guest before the distributor's
MMIO registration has been made visible.

Plug the race by marking the distributor as ready only after MMIO
registration is completed. Rely on the implied ordering of
synchronize_srcu() to ensure the MMIO registration is visible before
vgic_dist::ready. This also means that writers to vgic_dist::ready are
now serialized by the slots_lock, which was effectively the case already
as all writers held the slots_lock in addition to the config_lock.

Bug: 254441685
Fixes: 59112e9c39 ("KVM: arm64: vgic: Fix a circular locking issue")
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20241017001947.2707312-3-oliver.upton@linux.dev
Signed-off-by: Marc Zyngier <maz@kernel.org>
(cherry picked from commit 78a00555550042ed77b33ace7423aced228b3b4e)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I01a7bdc92bbfe8642829c0c8f5e1bb55e1aea18f
2025-05-07 08:35:45 -07:00
Wei Xu
34f1eb9985 UPSTREAM: mm/mglru: only clear kswapd_failures if reclaimable
lru_gen_shrink_node() unconditionally clears kswapd_failures, which can
prevent kswapd from sleeping and cause 100% kswapd cpu usage even when
kswapd repeatedly fails to make progress in reclaim.

Only clear kswap_failures in lru_gen_shrink_node() if reclaim makes some
progress, similar to shrink_node().

I happened to run into this problem in one of my tests recently.  It
requires a combination of several conditions: The allocator needs to
allocate a right amount of pages such that it can wake up kswapd
without itself being OOM killed; there is no memory for kswapd to
reclaim (My test disables swap and cleans page cache first); no other
process frees enough memory at the same time.

Bug: 254441685
Link: https://lkml.kernel.org/r/20241014221211.832591-1-weixugc@google.com
Fixes: e4dde56cd2 ("mm: multi-gen LRU: per-node lru_gen_folio lists")
Signed-off-by: Wei Xu <weixugc@google.com>
Cc: Axel Rasmussen <axelrasmussen@google.com>
Cc: Brian Geffon <bgeffon@google.com>
Cc: Jan Alexander Steffens <heftig@archlinux.org>
Cc: Suleiman Souhlal <suleiman@google.com>
Cc: Yu Zhao <yuzhao@google.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit b130ba4a6259f6b64d8af15e9e7ab1e912bcb7ad)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ia2b4a0d71096d1e6cd0ee6054df3544724d4b665
2025-05-07 08:35:41 -07:00
Johan Hovold
98cb57aeb3 UPSTREAM: serial: qcom-geni: fix receiver enable
The receiver is supposed to be enabled in the startup() callback and not
in set_termios() which is called also during console setup.

This specifically avoids accepting input before the port has been opened
(and interrupts enabled), something which can also break the GENI
firmware (cancel fails and after abort, the "stale" counter handling
appears to be broken so that later input is not processed until twelve
chars have been received).

There also does not appear to be any need to keep the receiver disabled
while updating the port settings.

Since commit 6f3c3cafb115 ("serial: qcom-geni: disable interrupts during
console writes") the calls to manipulate the secondary interrupts, which
were done without holding the port lock, can also lead to the receiver
being left disabled when set_termios() races with the console code (e.g.
when init opens the tty during boot). This can manifest itself as a
serial getty not accepting input.

The calls to stop and start rx in set_termios() can similarly race with
DMA completion and, for example, cause the DMA buffer to be unmapped
twice or the mapping to be leaked.

Fix this by only enabling the receiver during startup and while holding
the port lock to avoid racing with the console code.

Bug: 254441685
Fixes: 6f3c3cafb115 ("serial: qcom-geni: disable interrupts during console writes")
Fixes: 2aaa43c707 ("tty: serial: qcom-geni-serial: add support for serial engine DMA")
Fixes: c4f528795d ("tty: serial: msm_geni_serial: Add serial driver support for GENI based QUP")
Cc: stable@vger.kernel.org      # 6.3
Cc: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/20241009145110.16847-6-johan+linaro@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit fa103d2599e11e802c818684cff821baefe7f206)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ie5771faa0adbf570c9f726031cb973d013e04cca
2025-05-07 08:35:37 -07:00
Johan Hovold
a368123b90 UPSTREAM: serial: qcom-geni: fix dma rx cancellation
Make sure to wait for the DMA transfer to complete when cancelling the
rx command on stop_rx(). This specifically prevents the DMA completion
interrupt from firing after rx has been restarted, something which can
lead to an IOMMU fault and hosed rx when the interrupt handler unmaps
the DMA buffer for the new command:

	qcom_geni_serial 988000.serial: serial engine reports 0 RX bytes in!
	arm-smmu 15000000.iommu: FSR    = 00000402 [Format=2 TF], SID=0x563
	arm-smmu 15000000.iommu: FSYNR0 = 00210013 [S1CBNDX=33 WNR PLVL=3]
	Bluetooth: hci0: command 0xfc00 tx timeout
	Bluetooth: hci0: Reading QCA version information failed (-110)

Also add the missing state machine reset which is needed in case
cancellation fails.

Bug: 254441685
Fixes: 2aaa43c707 ("tty: serial: qcom-geni-serial: add support for serial engine DMA")
Cc: stable@vger.kernel.org      # 6.3
Cc: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Link: https://lore.kernel.org/r/20241009145110.16847-5-johan+linaro@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 23ee4a25661c33e6381d41e848a9060ed6d72845)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ie7e9dd51669db7f90057c2535ee8b51814ea7e93
2025-05-07 08:35:33 -07:00
Johan Hovold
7192539e3e UPSTREAM: serial: qcom-geni: revert broken hibernation support
This reverts commit 35781d8356.

Hibernation is not supported on Qualcomm platforms with mainline
kernels yet a broken vendor implementation for the GENI serial driver
made it upstream.

This is effectively dead code that cannot be tested and should just be
removed, but if these paths were ever hit for an open non-console port
they would crash the machine as the driver would fail to enable clocks
during restore() (i.e. all ports would have to be closed by drivers and
user space before hibernating the system to avoid this as a comment in
the code hinted at).

The broken implementation also added a random call to enable the
receiver in the port setup code where it does not belong and which
enables the receiver prematurely for console ports.

Bug: 254441685
Fixes: 35781d8356 ("tty: serial: qcom-geni-serial: Add support for Hibernation feature")
Cc: stable@vger.kernel.org	# 6.2
Cc: Aniket Randive <quic_arandive@quicinc.com>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Link: https://lore.kernel.org/r/20241009145110.16847-3-johan+linaro@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 19df76662a33d2f2fc41a66607cb8285fc02d6ec)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I2ee5832b26e10ff03699e74a8f72d1c0393c9e22
2025-05-07 08:35:30 -07:00
Ulf Hansson
b45e2c9274 UPSTREAM: PM: domains: Fix alloc/free in dev_pm_domain_attach|detach_list()
The dev_pm_domain_attach|detach_list() functions are not resource managed,
hence they should not use devm_* helpers to manage allocation/freeing of
data. Let's fix this by converting to the traditional alloc/free functions.

Bug: 254441685
Fixes: 161e16a5e50a ("PM: domains: Add helper functions to attach/detach multiple PM domains")
Cc: stable@vger.kernel.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Link: https://lore.kernel.org/r/20241002122232.194245-3-ulf.hansson@linaro.org
(cherry picked from commit 7738568885f2eaecfc10a3f530a2693e5f0ae3d0)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: If7138b246fcd6811001ba7b22c118b2e5132c463
2025-05-07 08:34:34 -07:00
Krishna Kurapati
b29cc3971e UPSTREAM: usb: dwc3: core: Fix compile warning on s390 gcc in dwc3_get_phy call
Recent commit introduced support for reading Multiport PHYs and
while doing so iterated over an integer variable which runs from
[0-254] in the worst case scenario. But S390 compiler treats it as a
warning and complains that the integer write to string can go to 11
characters. Fix this by modifying iterator variable to u8.

Bug: 254441685
Suggested-by: Johan Hovold <johan@kernel.org>
Fixes: 30a46746ca5a ("usb: dwc3: core: Refactor PHY logic to support Multiport Controller")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202404241215.Mib19Cu7-lkp@intel.com/
Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com>
Reviewed-by: Johan Hovold <johan+linaro@kernel.org>
Link: https://lore.kernel.org/r/20240426050512.57384-1-quic_kriskura@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 3f12222a4bebeb13ce06ddecc1610ad32fa835dd)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: If11b5b866842a9e94edfdfcaa7c4aea1f575e0d2
2025-05-07 08:34:34 -07:00
Pierre Couillaud
48ab183a3e ANDROID: GKI: Update symbol list for bcmstb
INFO: 1 function symbol(s) added
  'int __hwspin_trylock(struct hwspinlock*, int, unsigned long*)'

Bug: 416077180
Change-Id: I7186f775675b14a2323eb62eabb7a05e485b7464
Signed-off-by: Pierre Couillaud <pierre@broadcom.com>
2025-05-06 14:08:18 -07:00
Cong Wang
ca2f65da73 UPSTREAM: codel: remove sch->q.qlen check before qdisc_tree_reduce_backlog()
[ Upstream commit 342debc12183b51773b3345ba267e9263bdfaaef ]

After making all ->qlen_notify() callbacks idempotent, now it is safe to
remove the check of qlen!=0 from both fq_codel_dequeue() and
codel_qdisc_dequeue().

Bug: 410432097
Reported-by: Gerrard Tai <gerrard.tai@starlabs.sg>
Fixes: 4b549a2ef4 ("fq_codel: Fair Queue Codel AQM")
Fixes: 76e3cc126b ("codel: Controlled Delay AQM")
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250403211636.166257-1-xiyou.wangcong@gmail.com
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit 4d55144b12e742404bb3f8fee6038bafbf45619d)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I9508beb45995f003612895517ea391ef4beee7b4
2025-05-06 17:31:23 +01:00
Isaac J. Manjarres
7b89b57429 ANDROID: mm/memfd-ashmem-shim: Simplify buffer name retrieval
The current way of getting the name for a buffer always requires a
buffer to be allocated for the name to be copied into. This is
inefficient, as names for shmem buffers are always stored in the
same field, and they do not change.

Therefore, simplify the name retrieval to just read the buffer name
from the field it is always stored in for shmem buffers. This also
aligns the code to what is present on the android16-6.12 branch.

Bug: 401214613
Bug: 111903542
Change-Id: Idd7b2d16601c890b78bd5705c92842bee470e75c
Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com>
2025-05-05 08:17:54 -07:00
Seiya Wang
0c1a07d9c2 ANDROID: GKI: Update the symbol list for mtk
1 function symbol(s) added
  'ssize_t hdmi_audio_infoframe_pack_for_dp(const struct hdmi_audio_infoframe*, struct dp_sdp*, u8)'

Bug: 414724747
Change-Id: I15c9372703d94a787df4e6af83551ca183d4fae9
Signed-off-by: Seiya Wang <seiya.wang@mediatek.com>
2025-05-01 04:08:36 -07:00
Danylo Piliaiev
242f90b45e UPSTREAM: drm/msm: Rename drm_msm_gem_submit_reloc::or in C++ code
Clashes with C++ `or` keyword

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/528751/
Link: https://lore.kernel.org/r/20230326163813.535762-1-robdclark@gmail.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

Bug: 409896277
Change-Id: Ib8894a7facce6e4f80d586575b3cffaf53a22a1e
(cherry picked from commit f1af066bcf)
Signed-off-by: Mahadevan <quic_mahap@quicinc.com>
2025-04-28 10:28:17 -07:00
Bosser Ye
81ea45b132 ANDROID: GKI: Update symbol list for mtk
1 function symbol(s) added
          'bool usb_check_int_endpoints(const struct usb_interface*, const u8*)'

Bug: 414032152
Change-Id: I74e2af13e5fcc7acd0ff060552f99485f5dda9f8
Signed-off-by: Bosser Ye <bo.ye@mediatek.com>
2025-04-28 06:46:22 -07:00
Cong Wang
1c4f8fb026 UPSTREAM: net_sched: Prevent creation of classes with TC_H_ROOT
[ Upstream commit 0c3057a5a04d07120b3d0ec9c79568fceb9c921e ]

The function qdisc_tree_reduce_backlog() uses TC_H_ROOT as a termination
condition when traversing up the qdisc tree to update parent backlog
counters. However, if a class is created with classid TC_H_ROOT, the
traversal terminates prematurely at this class instead of reaching the
actual root qdisc, causing parent statistics to be incorrectly maintained.
In case of DRR, this could lead to a crash as reported by Mingi Cho.

Prevent the creation of any Qdisc class with classid TC_H_ROOT
(0xFFFFFFFF) across all qdisc types, as suggested by Jamal.

Bug: 403920173
Reported-by: Mingi Cho <mincho@theori.io>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Fixes: 066a3b5b23 ("[NET_SCHED] sch_api: fix qdisc_tree_decrease_qlen() loop")
Link: https://patch.msgid.link/20250306232355.93864-2-xiyou.wangcong@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit 78533c4a29)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ieac912ddc0bc44e999fe0d29ddf3a3842abdfa14
2025-04-28 03:38:28 -07:00
Greg Kroah-Hartman
a4fc1bef05 Merge tag 'android14-6.1.134_r00' into android14-6.1
This merges the android14-6.1.134_r00 tag into the android14-6.1 branch,
catching it up with the latest LTS releases.

It contains the following commits:

* 5a2ca52ae4 Revert "of: property: Increase NR_FWNODE_REFERENCE_ARGS"
* f6e3f07621 Revert "can: statistics: use atomic access in hot path"
*   522ff9a1db Merge 6.1.134 into android14-6.1-lts
|\
| * 4201028358 Linux 6.1.134
| * 1a84c0be74 tracing: Do not use PERF enums when perf is not defined
| * 14a6b65c83 NFSD: Skip sending CB_RECALL_ANY when the backchannel isn't up
| * d96587cc93 nfsd: put dl_stid if fail to queue dl_recall
| * 30ef7cfee7 media: streamzap: fix race between device disconnection and urb callback
| * 78f06805cf jfs: add index corruption check to DT_GETPAGE()
| * 46e2c031aa jfs: fix slab-out-of-bounds read in ea_get()
| * 89503e5eae ext4: fix OOB read when checking dotdot dir
| * c07ec83be7 ext4: don't over-report free space or inodes in statvfs
| * cf18760105 arm64: Don't call NULL in do_compat_alignment_fixup()
| * 8f4d099504 tracing/osnoise: Fix possible recursive locking for cpus_read_lock()
| * e9564aa7b8 tracing: Fix synth event printk format for str fields
| * bb9616ba5b tracing: Ensure module defining synth event cannot be unloaded while tracing
| * a2cce54c17 tracing: Fix use-after-free in print_graph_function_flags during tracer switching
| * 3ac65de111 ksmbd: validate zero num_subauth before sub_auth is accessed
| * 596407adb9 ksmbd: fix session use-after-free in multichannel connection
| * f0eb3f5751 ksmbd: fix use-after-free in ksmbd_sessions_deregister()
| * 629dd37acc ksmbd: add bounds check for create lease context
| * 8857a956f7 mmc: sdhci-omap: Disable MMC_CAP_AGGRESSIVE_PM for eMMC/SD
| * 91f33558db mmc: sdhci-pxav3: set NEED_RSP_BUSY capability
| * 0bb9c96faf ACPI: resource: Skip IRQ override on ASUS Vivobook 14 X1404VAP
| * bae5b55e0f acpi: nfit: fix narrowing conversion in acpi_nfit_ctl
| * 0708fd6bd8 x86/mm: Fix flush_tlb_range() when used for zapping normal PMDs
| * 39e32fe65e x86/tsc: Always save/restore TSC sched_clock() on suspend/resume
| * 9c8237021b btrfs: handle errors from btrfs_dec_ref() properly
| * cacce7faa7 kunit/overflow: Fix UB in overflow_allocation_test
| * 781b2db0eb perf/x86/intel: Avoid disable PMU if !cpuc->enabled in sample read
| * 0a416b4c53 perf/x86/intel: Apply static call for drain_pebs
| * 5b36f9e8fa ntb_perf: Delete duplicate dmaengine_unmap_put() call in perf_copy_chunk()
| * 16d6b2527f platform/x86: ISST: Correct command storage data length
| * c498c117c4 LoongArch: BPF: Use move_addr() for BPF_PSEUDO_FUNC
| * e9ccb262b3 LoongArch: BPF: Fix off-by-one error in build_prologue()
| * f39af67f03 LoongArch: Increase ARCH_DMA_MINALIGN up to 16
| * 0f10f83acf usbnet:fix NPE during rx_complete
| * bbadf50383 tty: serial: fsl_lpuart: disable transmitter before changing RS485 related registers
| * a824c44e4b tty: serial: fsl_lpuart: use UARTMODIR register bits for lpuart32 platform
| * 0628ee3bfb drm/amdgpu/gfx11: fix num_mec
| * ddd2752899 io_uring/filetable: ensure node switch is always done, if needed
| * be8a0decd0 arcnet: Add NULL check in com20020pci_probe()
| * d10bd910d3 ipv6: Do not consider link down nexthops in path selection
| * 6d1e50a73d ipv6: Start path selection from the first nexthop
| * 21748669c5 net: fix geneve_opt length integer overflow
| * 5eaa143ba3 net: dsa: mv88e6xxx: propperly shutdown PPU re-enable timer on destroy
| * b9039d61f8 ipv6: fix omitted netlink attributes when using RTEXT_FILTER_SKIP_STATS
| * a263d31c8c netfilter: nft_tunnel: fix geneve_opt type confusion addition
| * b88786ea2c tunnels: Accept PACKET_HOST in skb_tunnel_check_pmtu().
| * f3b75e0a06 vsock: avoid timeout during connect() if the socket is closing
| * 9122fec396 udp: Fix memory accounting leak.
| * b3f48a41a0 net: mvpp2: Prevent parser TCAM memory corruption
| * 1dcc144c32 net_sched: skbprio: Remove overly strict queue assertions
| * 797e5371cf netlabel: Fix NULL pointer exception caused by CALIPSO on IPv4 sockets
| * 3f620f0a29 netfilter: nft_set_hash: GC reaps elements with conncount for dynamic sets only
| * 38253922a8 ASoC: imx-card: Add NULL check in imx_card_probe()
| * 8d78931a15 ntb: intel: Fix using link status DB's
| * 7ed22f8d8b ntb_hw_switchtec: Fix shift-out-of-bounds in switchtec_ntb_mw_set_trans
| * fb5069d017 riscv: ftrace: Add parentheses in macro definitions of make_call_t0 and make_call_ra
| * a333f223e5 spufs: fix a leak in spufs_create_context()
| * 880e7b3da2 spufs: fix gang directory lifetimes
| * 96de7fbdc2 spufs: fix a leak on spufs_new_file() failure
| * ad387704e9 hwmon: (nct6775-core) Fix out of bounds access for NCT679{8,9}
| * a8184b1930 memory: omap-gpmc: drop no compatible check
| * 4b07ce83e9 can: statistics: use atomic access in hot path
| * 1a8bae6723 ALSA: hda/realtek: Add mute LED quirk for HP Pavilion x360 14-dy1xxx
| * e733877c5e drm/amd: Keep display off while going into S4
| * 34988d2e0c x86/sgx: Warn explicitly if X86_FEATURE_SGX_LC is not enabled
| * 8630709ebd locking/semaphore: Use wake_q to wake up processes outside lock critical section
| * e73917f9e0 sched/deadline: Use online cpus for validating runtime
| * 223f2ababb ALSA: hda/realtek: Add support for ASUS Zenbook UM3406KA Laptops using CS35L41 HDA
| * de04d49417 ALSA: hda/realtek: Add support for ASUS ROG Strix G614 Laptops using CS35L41 HDA
| * b31a7802d4 HID: i2c-hid: improve i2c_hid_get_report error message
| * 70bb0d7129 platform/x86: intel-hid: fix volume buttons on Microsoft Surface Go 4 tablet
| * 3f3a07fcb5 ALSA: hda: Fix speakers on ASUS EXPERTBOOK P5405CSA 1.0
| * 2dab4e83fc ALSA: hda/realtek: Fix Asus Z13 2025 audio
| * 6387243bfe affs: don't write overlarge OFS data block size fields
| * 395041688b affs: generate OFS sequence numbers starting at 1
| * 499d26188a wifi: brcmfmac: keep power during suspend if board requires it
| * ff0c8508eb nvme-pci: skip CMB blocks incompatible with PCI P2P DMA
| * 159ef31d18 nvme-pci: clean up CMBMSC when registering CMB fails
| * 6fca3c84f1 nvme-tcp: fix possible UAF in nvme_tcp_poll
| * 157c80e4ea wifi: iwlwifi: mvm: use the right version of the rate API
| * c0a4cbdadc wifi: iwlwifi: fw: allocate chained SG tables for dump
| * c195e1eac0 rcu-tasks: Always inline rcu_irq_work_resched()
| * 4c467a4ba7 context_tracking: Always inline ct_{nmi,irq}_{enter,exit}()
| * ad05c9379b sched/smt: Always inline sched_smt_active()
| * 1e49787b45 octeontx2-af: Free NIX_AF_INT_VEC_GEN irq
| * 013a3c7eca octeontx2-af: Fix mbox INTR handler when num VFs > 64
| * 9b435afa49 ACPI: processor: idle: Return an error if both P_LVL{2,3} idle states are invalid
| * 63d23e3976 LoongArch: Fix help text of CMDLINE_EXTEND in Kconfig
| * 6fc6fa800e ring-buffer: Fix bytes_dropped calculation issue
| * 3420c27121 net/mlx5e: SHAMPO, Make reserved size independent of page size
| * 128a0f437e ksmbd: fix multichannel connection failure
| * a6b5948682 ksmbd: use aead_request_free to match aead_request_alloc
| * 717587fbc8 rndis_host: Flag RNDIS modems as WWAN devices
| * 5fed5f6de3 rtnetlink: Allocate vfinfo size for VF GUIDs when supported
| * 83048539a7 exfat: fix the infinite loop in exfat_find_last_cluster()
| * b9249da6b0 objtool, media: dib8000: Prevent divide-by-zero in dib8000_set_dds()
| * 546685793f perf tools: annotate asm_pure_loop.S
| * 1ff7116624 fs/procfs: fix the comment above proc_pid_wchan()
| * 62f6af0a12 staging: rtl8723bs: select CONFIG_CRYPTO_LIB_AES
| * c8b28c1276 perf python: Check if there is space to copy all the event
| * 5a393187e5 perf python: Don't keep a raw_data pointer to consumed ring buffer space
| * 5cf553ae38 perf python: Decrement the refcount of just created event on failure
| * e95f1c106d perf python: Fixup description of sample.id event member
| * 3d38144225 i3c: master: svc: Fix missing the IBI rules
| * b0686d0d76 um: remove copy_from_kernel_nofault_allowed
| * 142f89201e fuse: fix dax truncate/punch_hole fault path
| * a285180873 NFSv4: Don't trigger uneccessary scans for return-on-close delegations
| * a34f52b7d5 arch/powerpc: drop GENERIC_PTDUMP from mpc885_ads_defconfig
| * 11e24802e7 ocfs2: validate l_tree_depth to avoid out-of-bounds access
| * 7b9d5f73e7 kexec: initialize ELF lowest address to ULONG_MAX
| * 314f8fb911 perf units: Fix insufficient array space
| * b303aff1c5 perf evlist: Add success path to evlist__create_syswide_maps
| * 7098ae7ee2 iio: adc: ad7124: Fix comparison of channel configs
| * 1a14e9718a fs/ntfs3: Fix a couple integer overflows on 32bit systems
| * 1c80787ecd usb: xhci: correct debug message page size calculation
| * 7214c53e3c iio: accel: msa311: Fix failure to release runtime pm if direct mode claim fails.
| * 8bd1e85254 iio: accel: mma8452: Ensure error return on failure to matching oversampling ratio
| * cb385b93c8 coresight-etm4x: add isb() before reading the TRCSTATR
| * 90b7ad7678 coresight: catu: Fix number of pages while using 64k pages
| * b0201583c1 soundwire: slave: fix an OF node reference leak in soundwire slave device
| * 46b78bf04a isofs: fix KMSAN uninit-value bug in do_isofs_readdir()
| * be8a5aeccc clk: qcom: mmcc-sdm660: fix stuck video_subcore0 clock
| * d5c51c6445 crypto: hisilicon/sec2 - fix for aead auth key length
| * d224ed6e90 x86/dumpstack: Fix inaccurate unwinding from exception stacks due to misplaced assignment
| * d77be51484 mfd: sm501: Switch to BIT() to mitigate integer overflows
| * f1b9566851 pinctrl: renesas: rzv2m: Fix missing of_node_put() call
| * dc7139b703 RDMA/mlx5: Fix mlx5_poll_one() cur_qp update flow
| * 837adafac3 crypto: nx - Fix uninitialised hv_nxc on error
| * 37a73de168 power: supply: max77693: Fix wrong conversion of charge input threshold value
| * b92e9f7565 x86/entry: Fix ORC unwinder for PUSH_REGS with save_ret=1
| * bb2cb55064 clk: amlogic: g12a: fix mmc A peripheral clock
| * 99db751579 selftests/bpf: Select NUMA_NO_NODE to create map
| * 6ded8c22af clk: amlogic: gxbb: drop non existing 32k clock parent
| * 1f3fc107c8 clk: amlogic: g12b: fix cluster A parent data
| * 77fedd8ae4 pinctrl: tegra: Set SFIO mode to Mux Register
| * ae450da3e9 IB/mad: Check available slots before posting receive WRs
| * 29cb659bcf remoteproc: qcom_q6v5_mss: Handle platforms with one power domain
| * bc1db4d8f1 RDMA/erdma: Prevent use-after-free in erdma_accept_newconn()
| * 7844932c18 RDMA/mlx5: Fix calculation of total invalidated pages
| * d5212b9964 RDMA/core: Don't expose hw_counters outside of init net namespace
| * 816ce9f46d clk: rockchip: rk3328: fix wrong clk_ref_usb3otg parent
| * 7c9abc455b pinctrl: renesas: rzg2l: Fix missing of_node_put() call
| * dd5c97e4ed pinctrl: renesas: rza2: Fix missing of_node_put() call
| * 5a45035b09 lib: 842: Improve error handling in sw842_compress()
| * 8c6980c96d bpf: Use preempt_count() directly in bpf_send_signal_common()
| * 119bc7ed16 clk: qcom: gcc-msm8953: fix stuck venus0_core0 clock
| * 0fef48f4a7 clk: samsung: Fix UBSAN panic in samsung_clk_init()
| * 54380eea1f selftests/bpf: Fix string read in strncmp benchmark
| * 0144376d20 libbpf: Fix hypothetical STT_SECTION extern NULL deref case
| * 43ac40302d remoteproc: qcom_q6v5_pas: Make single-PD handling more robust
| * 062de5f4e4 of: property: Increase NR_FWNODE_REFERENCE_ARGS
| * e6015ca453 remoteproc: core: Clear table_sz when rproc_shutdown
| * 68e13ab1a0 crypto: hisilicon/sec2 - fix for aead authsize alignment
| * cb688aed24 clk: amlogic: gxbb: drop incorrect flag on 32k clock
| * 5170a857ce fbdev: sm501fb: Add some geometry checks.
| * b2f79f85b8 mdacon: rework dependency list
| * 2841dcc36f fbdev: au1100fb: Move a variable assignment behind a null pointer check
| * be78c69ca7 PCI: pciehp: Don't enable HPIE when resuming in poll mode
| * d953e2cd59 drm/amd/display: avoid NPD when ASIC does not support DMUB
| * 8dcd8b4210 drm/mediatek: dsi: fix error codes in mtk_dsi_host_transfer()
| * a4d0b76c65 PCI: xilinx-cpm: Fix IRQ domain leak in error path of probe
| * defab1c652 PCI: Remove stray put_device() in pci_register_host_bridge()
| * 1cabe832e7 drm/amd/display: fix type mismatch in CalculateDynamicMetadataParameters()
| * 32d12502d5 PCI: Avoid reset when disabled via sysfs
| * 933322e51a PCI/portdrv: Only disable pciehp interrupts early when needed
| * d68c455954 PCI: brcmstb: Fix potential premature regulator disabling
| * 99a0efba9f PCI: brcmstb: Fix error path after a call to regulator_bulk_get()
| * 5bb237a1f6 PCI: brcmstb: Use internal register to change link capability
| * 9ce67aa3c6 PCI: cadence-ep: Fix the driver to send MSG TLP for INTx without data payload
| * 07e7a7334e drm/msm/dsi: Set PHY usescase (and mode) before registering DSI host
| * cd4b075077 PCI/ASPM: Fix link state exit during switch upstream function removal
| * 4e9cefe830 drm/mediatek: mtk_hdmi: Fix typo for aud_sampe_size member
| * 61270882c5 drm/mediatek: mtk_hdmi: Unregister audio platform device on failure
| * c08869bf69 PCI: Use downstream bridges for distributing resources
| * 79d138d137 drm/vkms: Fix use after free and double free on init error
| * f3ce74cdee drm: xlnx: zynqmp: Fix max dma segment size
| * e713b514d2 drm/bridge: it6505: fix HDCP V match check is not performed correctly
| * 21daa13f7b drm/dp_mst: Fix drm RAD print
| * 1ef7b8c1be drm/bridge: ti-sn65dsi86: Fix multiple instances
| * 072833f1cb ASoC: ti: j721e-evm: Fix clock configuration for ti,j7200-cpb-audio compatible
| * c9c4db9307 ALSA: hda/realtek: Always honor no_shutup_pins
| * cb6d6a008e HID: remove superfluous (and wrong) Makefile entry for CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER
| * 67ec1fea52 ASoC: cs35l41: check the return value from spi_setup()
| * 2606757693 media: platform: allgro-dvt: unregister v4l2_device on the error path
| * aa5af83b2e media: verisilicon: HEVC: Initialize start_bit field
| * e7a2a34d34 x86/fpu/xstate: Fix inconsistencies in guest FPU xfeatures
| * 214965d1a6 perf/ring_buffer: Allow the EPOLLRDNORM flag for poll
| * 4210ca861f lockdep: Don't disable interrupts on RT in disable_irq_nosync_lockdep.*()
| * 72520ca5f9 PM: sleep: Fix handling devices with direct_complete set on errors
| * 6a810c462f thermal: int340x: Add NULL check for adev
| * 0e44e88754 EDAC/ie31200: Fix the error path order of ie31200_init()
| * 13479cf576 EDAC/ie31200: Fix the DIMM size mask for several SoCs
| * 0d6f98d27d EDAC/ie31200: Fix the size of EDAC_MC_LAYER_CHIP_SELECT layer
| * 89f6691cae selinux: Chain up tool resolving errors in install_policy.sh
| * 528a06fe98 PM: sleep: Adjust check before setting power.must_resume
| * 53d472f972 lockdep/mm: Fix might_fault() lockdep check of current->mm->mmap_lock
| * 2380b9f5aa x86/sev: Add missing RIP_REL_REF() invocations during sme_enable()
| * cbcd6c852c x86/platform: Only allow CONFIG_EISA for 32-bit
| * 92ce1ccbad x86/fpu: Avoid copying dynamic FP state from init_task in arch_dup_task_struct()
| * feec6cd973 x86/fpu: Fix guest FPU state buffer allocation size
| * a33ab15c5b cpufreq: governor: Fix negative 'idle_time' handling in dbs_update()
| * d6937b1b4a smack: dont compile ipv6 code unless ipv6 is configured
| * c678f0831b cpufreq: scpi: compare kHz instead of Hz
| * f33c3cb0c9 x86/mm/pat: cpa-test: fix length for CPA_ARRAY test
| * d40e353726 watch_queue: fix pipe accounting mismatch
* | 4878fe79fa Merge 6.1.133 into android14-6.1-lts
|\|
| * 3dfebb87d7 Linux 6.1.133
| * f6c086a79d ARM: dts: imx6qdl-apalis: Fix poweroff on Apalis iMX6
| * 04d1086a62 media: i2c: et8ek8: Don't strip remove function when driver is builtin
| * 7a735a8a46 usb: typec: ucsi: Fix NULL pointer access
| * 03fa71e97e usb: gadget: uvc: Fix ERR_PTR dereference in uvc_v4l2.c
| * 1a8d68ca77 serial: 8250_dma: terminate correct DMA in tx_dma_flush()
| * 52d942a530 memstick: rtsx_usb_ms: Fix slab-use-after-free in rtsx_usb_ms_drv_remove
| * 07f8bdce68 net: usb: usbnet: restore usb%d name exception for local mac addresses
| * 794aad077c net: usb: qmi_wwan: add Telit Cinterion FE990B composition
| * 8d333fc96c net: usb: qmi_wwan: add Telit Cinterion FN990B composition
| * eb7cfa77f5 tty: serial: 8250: Add Brainboxes XC devices
| * ded9ea3814 tty: serial: 8250: Add some more device IDs
| * 79aafdf639 counter: microchip-tcb-capture: Fix undefined counter channel state on probe
| * e0d57d078b counter: stm32-lptimer-cnt: fix error handling when enabling
| * ccd744ac54 ALSA: hda/realtek: Support mute LED on HP Laptop 15s-du3xxx
| * 1ec43100f7 netfilter: socket: Lookup orig tuple for IPv6 SNAT
| * 04805efe86 drm/amd/display: Check denominator crb_pipes before used
| * 79e5030717 ARM: Remove address checking for MMUless devices
| * 01469773db ARM: 9351/1: fault: Add "cut here" line for prefetch aborts
| * 756992b8d5 ARM: 9350/1: fault: Implement copy_from_kernel_nofault_allowed()
| * 0ef6e49881 atm: Fix NULL pointer dereference
| * 7582e135f5 HID: hid-plantronics: Add mic mute mapping and generalize quirks
| * e43621ca43 ALSA: usb-audio: Add quirk for Plantronics headsets to fix control names
* | e3b905a701 Merge 6.1.132 into android14-6.1-lts
|\|
| * 8e60a714ba Linux 6.1.132
| * 662254a334 xfs: give xfs_extfree_intent its own perag reference
| * 7400fa1729 block, bfq: fix re-introduced UAF in bic_set_bfqq()
| * 49100c0b07 mm/migrate: fix shmem xarray update during migration
| * 4903303f25 wifi: iwlwifi: mvm: ensure offloading TID queue exists
| * 406a037d93 fs/ntfs3: Change new sparse cluster processing
| * 2e13f88e01 drm/amdgpu: fix use-after-free bug
| * 5cfcd32b23 arm64: dts: rockchip: fix u2phy1_host status for NanoPi R4S
| * 4e0713c79c media: mediatek: vcodec: Fix VP8 stateless decoder smatch warning
| * a12bd67510 drm/mediatek: Fix coverity issue with unintentional integer overflow
| * 2d4a7a091f netfilter: nft_counter: Use u64_stats_t for statistic.
| * 4375eee347 mptcp: Fix data stream corruption in the address announcement
| * 19e85e06a0 drm/amd/display: Use HW lock mgr for PSR1 when only one eDP
| * 9c4e202abf ksmbd: fix incorrect validation for num_aces field of smb_acl
| * a94ad20b07 drm/amdgpu: Fix JPEG video caps max size for navi1x and raven
| * 78b07dada3 drm/radeon: fix uninitialized size issue in radeon_vce_cs_parse()
| * 0a566a79ac soc: qcom: pdr: Fix the potential deadlock
| * 7993ad7722 batman-adv: Ignore own maximum aggregation size during RX
| * 205649d642 xsk: fix an integer overflow in xp_create_and_assign_umem()
| * ccb4aef2e7 efi/libstub: Avoid physical address 0x0 when doing random allocation
| * 1091f78287 ARM: shmobile: smp: Enforce shmobile_smp_* alignment
| * 966f331403 proc: fix UAF in proc_get_inode()
| * b9a1c6e888 mmc: atmel-mci: Add missing clk_disable_unprepare()
| * be320c2666 mmc: sdhci-brcmstb: add cqhci suspend/resume to PM ops
| * ea034e2469 arm64: dts: freescale: imx8mm-verdin-dahlia: add Microphone Jack to sound card
| * 270fe5c090 regulator: check that dummy regulator has been probed before using it
| * 83387073e5 drm/v3d: Don't run jobs that have errors flagged in its fence
| * 0bd1486e4b can: flexcan: disable transceiver during system PM
| * 06ffbb4d98 can: flexcan: only change CAN state when link up in system PM
| * a8a89a6d37 can: rcar_canfd: Fix page entries in the AFL list
| * 78f6d8f8fc i2c: omap: fix IRQ storms
| * 18f162e1de Revert "gre: Fix IPv6 link-local address generation."
| * 04c3f729cf net/neighbor: add missing policy for NDTPA_QUEUE_LENBYTES
| * 47e88c6c3c net: lwtunnel: fix recursion loops
| * 51e8be9578 net: atm: fix use after free in lec_send()
| * 9dac3f194a ipv6: Set errno after ip_fib_metrics_init() in ip6_route_info_create().
| * 77c41cdbe6 ipv6: Fix memleak of nhc_pcpu_rth_output in fib_check_nh_v6_gw().
| * 788ae2ae4c Bluetooth: Fix error code in chan_alloc_skb_cb()
| * 2c160e6868 RDMA/hns: Fix wrong value of max_sge_rd
| * 7b2603ab2f RDMA/hns: Fix a missing rollback in error path of hns_roce_create_qp_common()
| * 21c3be4924 RDMA/hns: Fix unmatched condition in error path of alloc_user_qp_db()
| * 4104b0023f RDMA/hns: Fix soft lockup during bt pages loop
| * 652393caf0 RDMA/bnxt_re: Avoid clearing VLAN_ID mask in modify qp path
| * 3a86ceccad ARM: dts: bcm2711: Don't mark timer regs unconfigured
| * 8c936723a4 ARM: OMAP1: select CONFIG_GENERIC_IRQ_CHIP
| * eb0b0b729a RDMA/bnxt_re: Add missing paranthesis in map_qp_id_to_tbl_indx
| * 06c5caadc5 ARM: dts: bcm2711: PL011 UARTs are actually r1p5
| * e4ab889d8b soc: imx8m: Unregister cpufreq and soc dev in cleanup path
| * 296d16538d soc: imx8m: Use devm_* to simplify probe failure handling
| * 44f9ffc1fe soc: imx8m: Remove global soc_uid
| * e7d05cf159 xfrm_output: Force software GSO only in tunnel mode
| * 0f80c9692a arm64: dts: freescale: tqma8mpql: Fix vqmmc-supply
| * 177deffb75 firmware: imx-scu: fix OF node leak in .probe()
| * f4a60d360d smb: client: fix potential UAF in cifs_dump_full_key()
| * e0a545bb4a nvme-tcp: Fix a C2HTermReq error message
| * 66d148204e HID: apple: disable Fn key handling on the Omoton KB066
| * dda134d117 smb: client: Fix match_session bug preventing session reuse
| * 98bbcf4cca smb3: add support for IAKerb
| * 0f928c11e7 arm64: mm: Populate vmemmap at the page level if not section aligned
| * b801f52437 i2c: sis630: Fix an error handling path in sis630_probe()
| * f5955987f4 i2c: ali15x3: Fix an error handling path in ali15x3_probe()
| * aa1788edee i2c: ali1535: Fix an error handling path in ali1535_probe()
| * 9968fcf02c cifs: Fix integer overflow while processing closetimeo mount option
| * 531cebb515 cifs: Fix integer overflow while processing actimeo mount option
| * 39d086bb35 cifs: Fix integer overflow while processing acdirmax mount option
| * dd190168e6 cifs: Fix integer overflow while processing acregmax mount option
| * 78cc9c3304 scripts: generate_rust_analyzer: add missing macros deps
| * d7cfc1a42f scripts: generate_rust_analyzer: provide `cfg`s for `core` and `alloc`
| * 88a96a6fb1 scripts: `make rust-analyzer` for out-of-tree modules
| * d266fc89bc scripts: generate_rust_analyzer: Handle sub-modules with no Makefile
* | 919facc02c Merge 99ddc1491b ("ASoC: codecs: wm0010: Fix error handling path in wm0010_spi_probe()") into android14-6.1-lts
|\|
| * 99ddc1491b ASoC: codecs: wm0010: Fix error handling path in wm0010_spi_probe()
| * 0f0302c5fe drm/gma500: Add NULL check for pci_gfx_root in mid_get_vbt_data()
| * 694110bc24 ASoC: ops: Consistently treat platform_max as control value
| * 618c6ce834 leds: mlxreg: Use devm_mutex_init() for mutex initialization
* | 6151e5151b Revert "tcp: fix races in tcp_abort()"
* | 0f8bbe98f1 Revert "tcp: fix forever orphan socket caused by tcp_abort"
* | c5f96457ad Merge b753821e06 ("tcp: fix forever orphan socket caused by tcp_abort") into android14-6.1-lts
|\|
| * b753821e06 tcp: fix forever orphan socket caused by tcp_abort
* | 1231f555d1 Merge cae9d2b162 ("tcp: fix races in tcp_abort()") into android14-6.1-lts
|\|
| * cae9d2b162 tcp: fix races in tcp_abort()
* | e6079359f7 Merge f9d0a13727 ("lib/buildid: Handle memfd_secret() files in build_id_parse()") into android14-6.1-lts
|\|
| * f9d0a13727 lib/buildid: Handle memfd_secret() files in build_id_parse()
| * 52229ebbe0 rust: Disallow BTF generation with Rust + LTO
| * d8bc07d16b qlcnic: fix memory leak issues in qlcnic_sriov_common.c
| * 7c461a5fb8 ASoC: amd: yc: Support mic on another Lenovo ThinkPad E16 Gen 2 model
| * fa0809bb2a clk: samsung: update PLL locktime for PLL142XX used on FSD platform
* | b2b62f9ec8 Merge 4964dbc419 ("drm/amd/display: Fix slab-use-after-free on hdcp_work") into android14-6.1-lts
|\|
| * 4964dbc419 drm/amd/display: Fix slab-use-after-free on hdcp_work
| * dc831b3868 drm/amd/display: Assign normalized_pix_clk when color depth = 14
| * 889e55f2fa drm/amd/display: Restore correct backlight brightness after a GPU reset
| * e8aeee0d12 drm/dp_mst: Fix locking when skipping CSN before topology probing
| * d2ab95b8c3 drm/atomic: Filter out redundant DPMS calls
| * ec52240622 x86/microcode/AMD: Fix out-of-bounds on systems with CPU-less NUMA nodes
| * 61a9561642 USB: serial: option: match on interface class for Telit FN990B
| * 7dad504810 USB: serial: option: fix Telit Cinterion FE990A name
| * bb03a80e67 USB: serial: option: add Telit Cinterion FE990B compositions
| * 58f4fbe6d6 USB: serial: ftdi_sio: add support for Altera USB Blaster 3
* | 39fddf40eb Merge 870e3066fe ("Input: i8042 - swap old quirk combination with new quirk for more devices") into android14-6.1-lts
|\|
| * 870e3066fe Input: i8042 - swap old quirk combination with new quirk for more devices
| * e2ff9a5f7a Input: i8042 - swap old quirk combination with new quirk for several devices
| * c08785b0bd Input: i8042 - add required quirks for missing old boardnames
| * 24af158fe2 Input: i8042 - swap old quirk combination with new quirk for NHxxRZQ
| * dd889e6a4e xfs: remove conditional building of rt geometry validator functions
| * 23b8ab0c8e xfs: reset XFS_ATTR_INCOMPLETE filter on node removal
| * 858c9d5278 xfs: update dir3 leaf block metadata after swap
| * a904118d7b xfs: ensure logflagsp is initialized in xfs_bmap_del_extent_real
| * 6c20890ebf xfs: fix perag leak when growfs fails
| * 4f4e046caa xfs: add lock protection when remove perag from radix tree
| * 6587549b08 xfs: initialise di_crc in xfs_log_dinode
| * 87988e80b6 xfs: force all buffers to be written during btree bulk load
| * ec1d3a6899 xfs: recompute growfsrtfree transaction reservation while growing rt volume
| * 072a9c45d2 xfs: remove unused fields from struct xbtree_ifakeroot
| * 5c29b06524 xfs: don't allow overly small or large realtime volumes
| * 7d568f9d0f xfs: fix 32-bit truncation in xfs_compute_rextslog
| * 6a258245c5 xfs: make rextslog computation consistent with mkfs
| * f7a1233bb0 xfs: don't leak recovered attri intent items
| * c3c049984c xfs: consider minlen sized extents in xfs_rtallocate_extent_block
| * e377031115 xfs: convert rt bitmap extent lengths to xfs_rtbxlen_t
| * 6744e7b06c xfs: move the xfs_rtbitmap.c declarations to xfs_rtbitmap.h
| * a64e7b6cd1 xfs: reserve less log space when recovering log intent items
| * 5d6f3d30a4 xfs: use deferred frees for btree block freeing
| * ec35f7567b xfs: fix bounds check in xfs_defer_agfl_block()
| * fa91c6969d xfs: validate block number being freed before adding to xefi
| * ec81c519e7 xfs: pass per-ag references to xfs_free_extent
| * ab3b2a70c4 xfs: pass the xfs_bmbt_irec directly through the log intent code
| * e0e440bfea xfs: fix confusing xfs_extent_item variable names
| * 5b99dcc147 xfs: pass xfs_extent_free_item directly through the log intent code
| * 80cca6ecc9 xfs: pass refcount intent directly through the log intent code
* | 01ad57e248 Merge 9135df0218 ("io_uring: fix corner case forgetting to vunmap") into android14-6.1-lts
|\|
| * 9135df0218 io_uring: fix corner case forgetting to vunmap
| * 50edea7d4c io_uring: don't attempt to mmap larger than what the user asks for
* | abd5ee4e51 ANDROID: GKI: Update .stg file based on io_ring_ctx internal change
* | 4076744180 ANDROID: GKI: fix build breakage in io_uring during 6.1.132 merge
* | e561be4096 Merge 9aeb68337a ("io_uring: get rid of remap_pfn_range() for mapping rings/sqes") into android14-6.1-lts
|\|
| * 9aeb68337a io_uring: get rid of remap_pfn_range() for mapping rings/sqes
* | 1627bf5242 Merge 7710c04d34 ("mm: add nommu variant of vm_insert_pages()") into android14-6.1-lts
|\|
| * 7710c04d34 mm: add nommu variant of vm_insert_pages()
* | efc6c26b16 Merge a00113dc99 ("io_uring: add ring freeing helper") into android14-6.1-lts
|\|
| * a00113dc99 io_uring: add ring freeing helper
* | 468df534e5 Merge 63e6dc6172 ("io_uring: return error pointer from io_mem_alloc()") into android14-6.1-lts
|\|
| * 63e6dc6172 io_uring: return error pointer from io_mem_alloc()
* | bcca1a4a2a Merge 8cc4da21a2 ("block: fix 'kmem_cache of name 'bio-108' already exists'") into android14-6.1-lts
|\|
| * 8cc4da21a2 block: fix 'kmem_cache of name 'bio-108' already exists'
| * 82be3cb72b drm/nouveau: Do not override forced connector status
| * 3c6e077b2a mptcp: safety check before fallback
| * 452382b273 x86/irq: Define trace events conditionally
| * 9bd4fa7b52 perf/x86/intel: Use better start period for frequency mode
| * 3cb53dd557 fuse: don't truncate cached, mutated symlink
| * 5c5194a096 ASoC: tas2764: Set the SDOUT polarity correctly
| * 12566097c9 ASoC: tas2764: Fix power control mask
| * 55132107fa ASoC: tas2770: Fix volume scale
| * 8c6715b24a nvme: only allow entering LIVE from CONNECTING state
| * 638ffdc4ad sctp: Fix undefined behavior in left shift operation
| * cd3f60e499 nvmet-rdma: recheck queue state is LIVE in state lock in recv done
| * 6eea8a5c1c nvme-tcp: add basic support for the C2HTermReq PDU
| * f404cc4cde nvme-pci: quirk Acer FA100 for non-uniqueue identifiers
| * d81ee62948 net: wwan: mhi_wwan_mbim: Silence sequence number glitch errors
| * e6607c7008 ASoC: SOF: Intel: hda: add softdep pre to snd-hda-codec-hdmi module
| * 5d2ca607ad ASoC: arizona/madera: use fsleep() in up/down DAPM event delays.
| * 17458c1193 ASoC: rsnd: adjust convert rate limitation
| * 1ffc9e9423 ASoC: rsnd: don't indicate warning on rsnd_kctrl_accept_runtime()
| * ce0bdc1a74 ALSA: hda/realtek: Limit mic boost on Positivo ARN50
| * 1a95cff6e1 Xen/swiotlb: mark xen_swiotlb_fixup() __init
| * 6c31c8761a thermal/cpufreq_cooling: Remove structure member documentation
| * 4d293411ad s390/cio: Fix CHPID "configure" attribute caching
| * 4209d21f6f platform/x86: thinkpad_acpi: Support for V9 DYTC platform profiles
| * 96850a2a90 platform/x86: thinkpad_acpi: Fix invalid fan speed on ThinkPad X120e
| * 5932970c3f sched: Clarify wake_up_q()'s write to task->wake_q.next
| * 62a4c7ac84 HID: apple: fix up the F6 key on the Omoton KB066 keyboard
| * b3047f4c4a HID: hid-apple: Apple Magic Keyboard a3203 USB-C support
| * 9acdb0059f HID: ignore non-functional sensor in HP 5MP Camera
| * 3358a3dee6 HID: intel-ish-hid: Send clock sync message immediately after reset
| * fc16b17906 HID: intel-ish-hid: fix the length of MNG_SYNC_FW_CLOCK in doorbell
| * 89811c6208 vboxsf: fix building with GCC 15
| * 936041b69a alpha/elf: Fix misc/setarch test of util-linux by removing 32bit support
| * 6bbed0b3ad smb: client: fix noisy when tree connecting to DFS interlink targets
| * ae45fe47cc ACPI: resource: IRQ override for Eluktronics MECH-17
| * 24602e2664 scsi: qla1280: Fix kernel oops when debug level > 2
| * 6d816086d7 scsi: core: Use GFP_NOIO to avoid circular locking dependency
| * 9bfa80c8aa iscsi_ibft: Fix UBSAN shift-out-of-bounds warning in ibft_attr_show_nic()
| * e4beb8aa35 powercap: call put_device() on an error path in powercap_register_control_type()
| * 86f653f37b hrtimers: Mark is_migration_base() with __always_inline
| * db1daaca25 nvme-fc: go straight to connecting state when initializing
| * 39e507d4f4 net/mlx5e: Prevent bridge link show failure for non-eswitch-allowed devices
| * 86ff45f5f6 net/mlx5: Bridge, fix the crash caused by LAG state check
| * 2532adbfe9 net: openvswitch: remove misbehaving actions length check
| * b309e75426 gre: Fix IPv6 link-local address generation.
| * 42d5b131da netfilter: nft_exthdr: fix offset with ipv4_find_option()
| * e5ee00607b net_sched: Prevent creation of classes with TC_H_ROOT
| * 917e520430 ipvs: prevent integer overflow in do_ip_vs_get_ctl()
| * a62a25c6ad netfilter: nf_conncount: Fully initialize struct nf_conncount_tuple in insert_tree()
| * 418119dd3f bonding: fix incorrect MAC address setting to receive NS messages
| * af757f5ee3 net: switchdev: Convert blocking notification chain to a raw one
| * e8e3e03d69 eth: bnxt: do not update checksum in bnxt_xdp_build_skb()
| * 1598307c91 net/mlx5: handle errors in mlx5_chains_create_table()
| * 1c954950f8 Drivers: hv: vmbus: Don't release fb_mmio resource in vmbus_free_mmio()
| * c40cd24bfb drm/hyperv: Fix address space leak when Hyper-V DRM device is removed
| * 486033f577 netpoll: hold rcu read lock in __netpoll_send_skb()
| * c49e91520d net: mctp i2c: Copy headers if cloned
| * 95b5304073 net: dsa: mv88e6xxx: Verify after ATU Load ops
| * 55a173e49f Revert "Bluetooth: hci_core: Fix sleeping function called from invalid context"
| * 79d50ce658 Bluetooth: hci_event: Fix enabling passive scanning
| * 0272d4af7f wifi: cfg80211: cancel wiphy_work before freeing wiphy
| * d02c9acd68 sched: address a potential NULL pointer dereference in the GRED scheduler.
| * 4fe9566512 netfilter: nf_conncount: garbage collection is not skipped when jiffies wrap around
| * fcbacc47d1 ice: fix memory leak in aRFS after reset
| * 7a91926c76 netfilter: nft_ct: Use __refcount_inc() for per-CPU nft_ct_pcpu_template.
| * 5f7f8d9d46 pinctrl: bcm281xx: Fix incorrect regmap max_registers value
| * 01e8a8111b fbdev: hyperv_fb: iounmap() the correct memory when removing a device
| * f9c572d02f fs/ntfs3: Fix shift-out-of-bounds in ntfs_fill_super
| * 4c3712c15f hrtimer: Use and report correct timerslack values for realtime tasks
| * ba181019d1 sched/isolation: Prevent boot crash when the boot CPU is nohz_full
| * 65ae99b51e clockevents/drivers/i8253: Fix stop sequence for timer 0
* | 7c1a694998 Merge 6.1.131 into android14-6.1-lts
|\|
| * 344a096597 Linux 6.1.131
| * 5c0729c4c5 kbuild: userprogs: use correct lld when linking through clang
| * 631e00fdac vsock: Orphan socket after transport release
| * 42b33381e5 vsock: Keep the binding until socket destruction
| * 13a4362ab8 bpf, vsock: Invoke proto::close on close()
| * effac69091 fs/ntfs3: Add rough attr alloc_size check
| * dbd3e4adb9 media: mediatek: vcodec: Handle invalid decoder vsi
| * 30652c8ceb scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan()
| * 1ee2d454ba nilfs2: handle errors that nilfs_prepare_chunk() may return
| * 982319391e nilfs2: eliminate staggered calls to kunmap in nilfs_rename
| * c38a305f2b nilfs2: move page release outside of nilfs_delete_entry and nilfs_set_link
| * c07bfa44f9 spi-mxs: Fix chipselect glitch
| * 260c0566e1 x86/mm: Don't disable PCID when INVLPG has been fixed by microcode
| * de03a57b5c uprobes: Fix race in uprobe_free_utask
| * 0084a61db6 Revert "KVM: PPC: e500: Mark "struct page" dirty in kvmppc_e500_shadow_map()"
| * 20228df372 Revert "KVM: PPC: e500: Mark "struct page" pfn accessed before dropping mmu_lock"
| * 44603dee08 Revert "KVM: PPC: e500: Use __kvm_faultin_pfn() to handle page faults"
| * e7d343986a Revert "KVM: e500: always restore irqs"
| * 3fa1370826 ALSA: hda: realtek: fix incorrect IS_REACHABLE() usage
| * 8427e0b5c1 iio: adc: at91-sama5d2_adc: fix sama7g5 realbits value
| * a4ee0bee3d iio: dac: ad3552r: clear reset status flag
| * 22638b6fc1 iio: filter: admv8818: Force initialization of SDO
| * 524f29d78c drivers: virt: acrn: hsm: Use kzalloc to avoid info leak in pmcmd_ioctl
| * bbfb0cfdfd eeprom: digsy_mtc: Make GPIO lookup table match the device
| * 7a5ffadd54 bus: mhi: host: pci_generic: Use pci_try_reset_function() to avoid deadlock
| * 18ae4cee05 slimbus: messaging: Free transaction ID in delayed interrupt scenario
| * dbd2dc4716 drivers: core: fix device leak in __fw_devlink_relax_cycles()
| * e130e85633 intel_th: pci: Add Panther Lake-P/U support
| * 926c07237e intel_th: pci: Add Panther Lake-H support
| * f630ab2c95 intel_th: pci: Add Arrow Lake support
| * f42cd9f2c2 mei: me: add panther lake P DID
| * 0ce61dbca7 KVM: SVM: Drop DEBUGCTL[5:2] from guest's effective value
| * 4a12b6c062 usb: xhci: Enable the TRB overfetch quirk on VIA VL805
| * 9692a67062 xhci: pci: Fix indentation in the PCI device ID definitions
| * 18f827128b usb: gadget: Check bmAttributes only if configuration is valid
| * 79d07d7f30 usb: gadget: Fix setting self-powered state on suspend
| * b589d49945 usb: gadget: Set self-powered based on MaxPower and bmAttributes
| * ceafde7ce3 usb: typec: tcpci_rt1711h: Unmask alert interrupts to fix functionality
| * 871d6eaaff usb: typec: ucsi: increase timeout for PPM reset operations
| * a9fa9f461f usb: dwc3: gadget: Prevent irq storm when TH re-executes
| * d8e4783444 usb: dwc3: Set SUSPENDENABLE soon after phy init
| * 197e78076c usb: atm: cxacru: fix a flaw in existing endpoint checks
| * 4ca078084c usb: renesas_usbhs: Flush the notify_hotplug_work
| * ad379788a5 usb: quirks: Add DELAY_INIT and NO_LPM for Prolific Mass Storage Card Reader
| * bd7072aefd usb: hub: lack of clearing xHC resources
| * f2ae16f71b usb: renesas_usbhs: Use devm_usb_get_phy()
| * 3d7f7a149c usb: renesas_usbhs: Call clk_put()
| * a55aa36d45 Revert "drivers/card_reader/rtsx_usb: Restore interrupt based detection"
| * 1f59fc0d00 gpio: rcar: Fix missing of_node_put() call
| * 09418e5946 net: ipv6: fix missing dst ref drop in ila lwtunnel
| * e8defaef4c net: ipv6: fix dst ref loop in ila lwtunnel
| * 000c9ee439 sched/fair: Fix potential memory corruption in child_cfs_rq_on_list
| * 6aae16a973 ublk: set_params: properly check if parameters can be applied
| * acbcb74ee0 net-timestamp: support TCP GSO case for a few missing flags
| * bb08e1d61b exfat: fix soft lockup in exfat_clear_bitmap
| * 2b0cbcf852 x86/sgx: Fix size overflows in sgx_encl_create()
| * 5a515d13e1 vlan: enforce underlying device type
| * 3de809a768 ppp: Fix KMSAN uninit-value warning with bpf
| * 33244e98aa net: hns3: make sure ptp clock is unregister and freed if hclge_ptp_get_cycle returns an error
| * 4393452e6c be2net: fix sleeping while atomic bugs in be_ndo_bridge_getlink
| * 957d8036f8 drm/sched: Fix preprocessor guard
| * f463358c61 hwmon: fix a NULL vs IS_ERR_OR_NULL() check in xgene_hwmon_probe()
| * 17f86e2543 llc: do not use skb_get() before dev_queue_xmit()
| * 48eb7e67c1 ALSA: usx2y: validate nrpacks module parameter on probe
| * 7d0f113aad hwmon: (ad7314) Validate leading zero bits and return error
| * 2903c12261 hwmon: (ntc_thermistor) Fix the ncpXXxh103 sensor table
| * afaf7f4516 hwmon: (pmbus) Initialise page count in pmbus_identify()
| * 29e0cd296c caif_virtio: fix wrong pointer check in cfv_probe()
| * e8db705378 net: gso: fix ownership in __udp_gso_segment
| * 4d1a05cc0b nvmet-tcp: Fix a possible sporadic response drops in weakly ordered arch
| * f5631307e3 bluetooth: btusb: Initialize .owner field of force_poll_sync_fops
| * cf1a6015d2 HID: intel-ish-hid: Fix use-after-free issue in ishtp_hid_remove()
| * 52488583e7 HID: google: fix unused variable warning under !CONFIG_ACPI
| * 88ed69f924 wifi: iwlwifi: limit printed string from FW file
| * 90c30bed20 mm: don't skip arch_sync_kernel_mappings() in error paths
| * d0f491ccfd mm/page_alloc: fix uninitialized variable
| * 30f67c1048 block: fix conversion of GPT partition name to 7-bit
| * d09cf51421 s390/traps: Fix test_monitor_call() inline assembly
| * 469761d254 dma: kmsan: export kmsan_handle_dma() for modules
| * a5f5e520e8 rapidio: fix an API misues when rio_add_net() fails
| * ad82be4298 rapidio: add check for rio_add_net() in rio_scan_alloc_net()
| * 236f41ca72 wifi: nl80211: reject cooked mode if it is set along with other flags
| * f4112cb477 wifi: cfg80211: regulatory: improve invalid hints checking
| * dc516e66fb Bluetooth: Add check for mgmt_alloc_skb() in mgmt_device_connected()
| * 37785a0104 Bluetooth: Add check for mgmt_alloc_skb() in mgmt_remote_name()
| * f1404f368c mptcp: fix 'scheduling while atomic' in mptcp_pm_nl_append_new_local_addr
| * 9ccee498a8 x86/cpu: Properly parse CPUID leaf 0x2 TLB descriptor 0x63
| * 336ab3ea08 x86/cpu: Validate CPUID leaf 0x2 EDX output
| * cfe0ecf6ce x86/cacheinfo: Validate CPUID leaf 0x2 EDX output
| * 85e3d5ba5d platform/x86: thinkpad_acpi: Add battery quirk for ThinkPad X131e
| * 15e3a8cc4e drm/radeon: Fix rs400_gpu_init for ATI mobility radeon Xpress 200M
| * c1e54752dc drm/amd/display: Fix null check for pipe_ctx->plane_state in resource_build_scaling_params
| * 010cd94654 ALSA: hda/realtek: update ALC222 depop optimize
| * dc209114b2 ALSA: hda/realtek - add supported Mic Mute LED for Lenovo platform
| * 4115d28c04 ALSA: hda: intel: Add Dell ALC3271 to power_save denylist
| * 9334c88fc2 gpio: aggregator: protect driver attr handlers against module unload
| * 3e300913c4 gpio: rcar: Use raw_spinlock to protect register access
| * 11e0e74e14 ksmbd: fix bug on trap in smb2_lock
| * 410ce35a2e ksmbd: fix use-after-free in smb2_lock
| * 6321bbda42 ksmbd: fix type confusion via race condition when using ipc_msg_send_request
| * 8d39eb8c5e HID: appleir: Fix potential NULL dereference at raw event handle
| * 12333d3362 LoongArch: Convert unreachable() to BUG()
| * 4b46c6e1ed Revert "of: reserved-memory: Fix using wrong number of cells to get property 'alignment'"
| * 0c65d13bdc x86/amd_nb: Use rdmsr_safe() in amd_get_mmconfig_range()
| * 2ff298cca9 x86/speculation: Add __update_spec_ctrl() helper
| * d2d7ee96cc cpuidle, intel_idle: Fix CPUIDLE_FLAG_IBRS
| * b3b35ff81e drm/amdgpu: disable BAR resize on Dell G5 SE
| * b0b6f8b533 drm/amdgpu: Check extended configuration space register when system uses large bar
| * c2b3f2af0a ibmvnic: Inspect header requirements before using scrq direct
| * 30875b69e3 ibmvnic: Perform tx CSO during send scrq direct
* | 727d125cb5 ANDROID: GKI: fix crc change in __icmp_send
* | 193ff8b1d4 Merge branch 'android14-6.1' into android14-6.1-lts
* | a54c40cad2 Merge 6.1.130 into android14-6.1-lts
|\|
| * 6ae7ac5c42 Linux 6.1.130
| * eeb62bb4ca media: mtk-vcodec: potential null pointer deference in SCP
| * 020ecb7681 pfifo_tail_enqueue: Drop new packet when sch->limit == 0
| * 5b99dea796 Squashfs: check the inode number is not the invalid value of zero
| * c72eda07d1 mm/memory: Use exception ip to search exception tables
| * 7b425f542f ptrace: Introduce exception_ip arch hook
| * ef3bc90758 intel_idle: Handle older CPUs, which stop the TSC in deeper C states, correctly
| * b6eac41932 amdgpu/pm/legacy: fix suspend/resume issues
| * 070fda699d drm/amd/display: fixed integer types and null check locations
| * ee3ab05cf7 riscv/futex: sign extend compare value in atomic cmpxchg
| * 84586322e0 sched/core: Prevent rescheduling when interrupts are disabled
| * 8ada478c44 vmlinux.lds: Ensure that const vars with relocations are mapped R/O
| * 1489b2dd23 mptcp: reset when MPTCP opts are dropped after join
| * 8116fb4acd mptcp: always handle address removal under msk socket lock
| * f19009e4c7 phy: exynos5-usbdrd: fix MPLL_MULTIPLIER and SSC_REFCLKSEL masks in refclk
| * 14d1a86563 phy: tegra: xusb: reset VBUS & ID OVERRIDE
| * 39f843e486 net: enetc: fix the off-by-one issue in enetc_map_tx_tso_buffs()
| * 45b8d6ce93 net: enetc: correct the xdp_tx statistics
| * 88304bb7b3 net: enetc: update UDP checksum when updating originTimestamp field
| * c55a98def7 net: enetc: keep track of correct Tx BD count in enetc_map_tx_tso_buffs()
| * 046e2669e9 net: enetc: fix the off-by-one issue in enetc_map_tx_buffs()
| * 67ebc3391c usbnet: gl620a: fix endpoint checking in genelink_bind()
| * 545b563eb0 i2c: npcm: disable interrupt enable bit before devm_request_irq
| * abb00a9a85 drm/amd/display: Fix HPD after gpu reset
| * 64f3a3523d drm/amd/display: Disable PSR-SU on eDP panels
| * 295fadbd3e perf/core: Fix low freq setting via IOC_PERIOD
| * 25a9171d9a perf/x86: Fix low freqency setting issue
| * 3b8c444e5d ALSA: usb-audio: Re-add sample rate quirk for Pioneer DJM-900NXS2
| * 9927752278 ftrace: Avoid potential division by zero in function_stat_show()
| * 5ae1b18f05 tracing: Fix bad hist from corrupting named_triggers list
| * 950866c9a1 phy: rockchip: naneng-combphy: compatible reset with old DT
| * 776eaba5b6 x86/CPU: Fix warm boot hang regression on AMD SC1100 SoC systems
| * 93cff66ff0 io_uring/net: save msg_control for compat
| * c4cb2bfa99 uprobes: Reject the shared zeropage in uprobe_write_opcode()
| * 476c1dfefa mm: Don't pin ZERO_PAGE in pin_user_pages()
| * cffd76d4e9 net: ipv6: fix dst ref loop on input in rpl lwt
| * 4c12c3c8ab net: ipv6: rpl_iptunnel: mitigate 2-realloc issue
| * 7f9aabbadf net: ipv6: fix dst ref loop on input in seg6 lwt
| * c447c5a9c4 net: ipv6: seg6_iptunnel: mitigate 2-realloc issue
| * daff29e076 include: net: add static inline dst_dev_overhead() to dst.h
| * cd60e8edfc net/mlx5: IRQ, Fix null string in debug print
| * 36c72334bf net: mvpp2: cls: Fixed Non IP flow, with vlan tag flow defination.
| * 320cb2d549 net: Clear old fragment checksum value in napi_reuse_skb
| * 57cf8c5a7a tcp: Defer ts_recent changes until req is owned
| * be5a87bd83 ipvs: Always clear ipvs_property flag in skb_scrub_packet()
| * 09e9fe147e ASoC: es8328: fix route from DAC to output
| * 90ed67b03a net: cadence: macb: Synchronize stats calculations
| * 5b8dea8d16 ipvlan: ensure network headers are in skb linear part
| * 7a62b1e441 ipvlan: Prepare ipvlan_process_v4_outbound() to future .flowi4_tos conversion.
| * 3e8520bca5 ipv4: Convert ip_route_input() to dscp_t.
| * 671fcbf9d1 ipv4: Convert icmp_route_lookup() to dscp_t.
| * ab5c0db825 ipvlan: Unmask upper DSCP bits in ipvlan_process_v4_outbound()
| * eaba5f6743 ipv4: icmp: Unmask upper DSCP bits in icmp_route_lookup()
| * 28e46a8c21 ipv4: icmp: Pass full DS field to ip_route_input()
| * 524c341cb1 net/ipv4: add tracepoint for icmp_send
| * 1774ba1faa net: set the minimum for net_hotdata.netdev_budget_usecs
| * 461fb89121 net: loopback: Avoid sending IP packets without an Ethernet header
| * 3f0ecb5b1b afs: Fix the server_list to unuse a displaced server rather than putting it
| * 1dac4025eb afs: Make it possible to find the volumes that are using a server
| * 916e5a561e afs: remove variable nr_servers
| * 31caad0f59 Bluetooth: L2CAP: Fix L2CAP_ECRED_CONN_RSP response
| * 4eb6de4176 ALSA: usb-audio: Avoid dropping MIDI events at closing multiple ports
| * ddb610241b sunrpc: suppress warnings for unused procfs functions
| * 7051b8df67 RDMA/mlx5: Fix bind QP error cleanup flow
| * 0282f5afe0 scsi: core: Clear driver private data when retrying request
| * 65344e7363 SUNRPC: Prevent looping due to rpc_signal_task() races
| * 6f0e029ead SUNRPC: convert RPC_TASK_* constants to enum
| * a7c41830ff ovl: fix UAF in ovl_dentry_update_reval by moving dput() in ovl_link_up
| * a18dc2d702 IB/mlx5: Set and get correct qp_num for a DCT QP
| * 3fa58a6fbd netfilter: allow exp not to be removed in nf_ct_find_expectation
| * cd29155818 spi: atmel-quadspi: Fix wrong register value written to MR
| * 02225f59a0 spi: atmel-quadspi: Avoid overwriting delay register settings
| * d48890ef87 media: mediatek: vcodec: Fix H264 multi stateless decoder smatch warning
| * ada4ca5fd5 block, bfq: fix bfqq uaf in bfq_limit_depth()
| * eca0025faa block, bfq: split sync bfq_queues on a per-actuator basis
| * cd78b738bc x86/cpu/kvm: SRSO: Fix possible missing IBPB on VM-Exit
| * aecca7b459 ftrace: Do not add duplicate entries in subops manager ops
| * 8096f2de05 ftrace: Correct preemption accounting for function tracing.
| * d42364dd66 EDAC/qcom: Correct interrupt enable register configuration
| * 24e8e4523d smb: client: Add check for next_buffer in receive_encrypted_standard()
| * 5801ed1c0b mtd: rawnand: cadence: fix incorrect device in dma_unmap_single
| * e630d32162 mtd: rawnand: cadence: use dma_map_resource for sdma address
| * 51a8a44e56 mtd: rawnand: cadence: fix error code in cadence_nand_init()
| * 0a0c255c39 mm,madvise,hugetlb: check for 0-length range after end address adjustment
| * 1ffa1bfc56 acct: block access to kernel internal filesystems
| * 5ee8da9bea acct: perform last write from workqueue
| * e2b7b9e4a4 ALSA: hda/conexant: Add quirk for HP ProBook 450 G4 mute LED
| * 1bb8c9cd59 ALSA: hda: Add error check for snd_ctl_rename_id() in snd_hda_create_dig_out_ctls()
| * fde718a585 ASoC: fsl_micfil: Enable default case in micfil_set_quality()
| * 1358d8e07a nfp: bpf: Add check for nfp_app_ctrl_msg_alloc()
| * fcfc00bfec drop_monitor: fix incorrect initialization order
| * ec18520f5e tee: optee: Fix supplicant wait loop
| * 64d31ab8c4 drm/i915: Make sure all planes in use by the joiner have their crtc included
| * 7e75ccfba9 drm/msm/dpu: Disable dither in phys encoder cleanup
| * 36c22125e5 bpf: skip non exist keys in generic_map_lookup_batch
| * 85f5a43484 nvme/ioctl: add missing space in err message
| * b5065a10b9 drm/msm/dpu: Don't leak bits_per_component into random DSC_ENC fields
| * 7f7f3f42e8 nouveau/svm: fix missing folio unlock + put after make_device_exclusive_range()
| * 51ae6861c4 power: supply: da9150-fg: fix potential overflow
| * de9be9c3ec bpf: Fix wrong copied_seq calculation
| * e410fd6004 strparser: Add read_sock callback
| * f615fccfc6 bpf, test_run: Fix use-after-free issue in eth_skb_pkt_type()
| * 16985c0980 drm/rcar-du: dsi: Fix PHY lock bit check
| * ff319c9f22 drm/tidss: Fix race condition while handling interrupt registers
| * 36a6e21706 drm/tidss: Add simple K2G manual reset
* | 2785dc9dde ANDROID: GKI: Fix CRC issue with change to include/net/tcp.h
* | 87c6ad8371 Merge 87858bbf21 ("tcp: drop secpath at the same time as we currently drop dst") into android14-6.1-lts
|\|
| * 87858bbf21 tcp: drop secpath at the same time as we currently drop dst
* | 3a51c14aa9 Merge cb7bea9887 ("net: axienet: Set mac_managed_pm") into android14-6.1-lts
|\|
| * cb7bea9887 net: axienet: Set mac_managed_pm
| * a0bad5c7c2 arp: switch to dev_getbyhwaddr() in arp_req_set_public()
| * 0f038b9454 net: Add non-RCU dev_getbyhwaddr() helper
| * cce3ccc0ab flow_dissector: Fix port range key handling in BPF conversion
| * 8d984c604d flow_dissector: Fix handling of mixed port and port-range keys
| * 20825e9c4c geneve: Suppress list corruption splat in geneve_destroy_tunnels().
| * b70fa591b0 gtp: Suppress list corruption splat in gtp_net_exit_batch_rtnl().
| * 501ac6a7e2 ibmvnic: Don't reference skb after sending to VIOS
| * c9543af809 ibmvnic: Add stat for tx direct vs tx batched
| * a6a19d29fb ibmvnic: Introduce send sub-crq direct
| * b92f24529e ibmvnic: Return error code on TX scrq flush fail
| * 36069c768f ALSA: hda/cirrus: Correct the full scale volume set logic
| * 904e746b2e geneve: Fix use-after-free in geneve_find_dev().
| * c905a30535 powerpc/code-patching: Fix KASAN hit by not flagging text patching area as VM_ALLOC
| * f67713b216 ALSA: hda/realtek: Fixup ALC225 depop procedure
| * 10a293b085 powerpc/64s: Rewrite __real_pte() and __rpte_to_hidx() as static inline
| * e574bf58c3 powerpc/64s/mm: Move __real_pte stubs into hash-4k.h
| * 5a0b0bc44f ASoC: rockchip: i2s-tdm: fix shift config for SND_SOC_DAIFMT_DSP_[AB]
| * 24a942610e USB: gadget: f_midi: f_midi_complete to call queue_work
| * e3bc1a9a67 usb: gadget: core: flush gadget workqueue after device removal
| * 7fb673f0f1 USB: gadget: core: create sysfs link between udc and gadget
* | 208e9672db Merge ac18d78146 ("media: uvcvideo: Remove dangling pointers") into android14-6.1-lts
|\|
| * ac18d78146 media: uvcvideo: Remove dangling pointers
| * b4d266503d media: uvcvideo: Only save async fh if success
| * 9b3e69b5a9 media: uvcvideo: Refactor iterators
| * 3c00e94d00 media: uvcvideo: Fix crash during unbind if gpio unit is in use
| * ce8d2e914b media: Switch to use dev_err_probe() helper
| * 4a7c475137 soc: mediatek: mtk-devapc: Fix leaking IO map on driver remove
| * 9b9375831d soc/mediatek: mtk-devapc: Convert to platform remove callback returning void
| * ae86c01537 soc: mediatek: mtk-devapc: Fix leaking IO map on error paths
| * 69fa8a45eb soc: mediatek: mtk-devapc: Switch to devm_clk_get_enabled()
| * 77779d1258 tpm: Change to kvalloc() in eventlog/acpi.c
| * 7a72242c9b tpm: Use managed allocation for bios event log
| * 19bb4fc2ab arm64: dts: qcom: sm8450: Fix CDSP memory length
| * 8ae7a709f6 arm64: dts: qcom: trim addresses to 8 digits
| * 257fa56e89 arm64: dts: mediatek: mt8183: Disable DSI display output by default
| * 4cc8b0110c scsi: core: Do not retry I/Os during depopulation
| * 79a43ee6ec scsi: core: Handle depopulation and restoration in progress
| * 5c1e84bc75 ASoC: renesas: rz-ssi: Add a check for negative sample_space
| * f39ec4e62c clk: mediatek: mt2701-img: add missing dummy clk
| * 67e7bcc0bb clk: mediatek: mt2701-bdp: add missing dummy clk
| * dc7378acd6 clk: mediatek: mt2701-vdec: fix conversion to mtk_clk_simple_probe
| * 58af6b786a clk: mediatek: clk-mtk: Add dummy clock ops
| * 5c5b0e363b Bluetooth: qca: Fix poor RF performance for WCN6855
| * 55d69a2d2a Bluetooth: qca: Update firmware-name to support board specific nvm
| * e3c4cc00e1 Bluetooth: qca: Support downloading board id specific NVM for WCN7850
* | e9df7dc25a Merge 0986efc3c7 ("spi: atmel-qspi: Memory barriers after memory-mapped I/O") into android14-6.1-lts
|\|
| * 0986efc3c7 spi: atmel-qspi: Memory barriers after memory-mapped I/O
| * c788bfef89 spi: atmel-quadspi: Create `atmel_qspi_ops` to support newer SoC families
| * 756bb7c73f spi: atmel-quadspi: switch to use modern name
| * baaad6765a spi: atmel-quadspi: Add support for configuring CS timing
* | 9212df9856 Merge 0a09d56e16 ("memcg: fix soft lockup in the OOM process") into android14-6.1-lts
|/
* 0a09d56e16 memcg: fix soft lockup in the OOM process
* 2ea4658783 mm: update mark_victim tracepoints fields
* 032fa54f48 md/md-bitmap: Synchronize bitmap_get_stats() with bitmap lifetime
* 249d9b9da2 md/md-bitmap: add 'sync_size' into struct md_bitmap_stats
* e83e6ea589 md/md-cluster: fix spares warnings for __le64
* e5c4b7b19b md/md-bitmap: replace md_bitmap_status() with a new helper md_bitmap_get_stats()
* a27c597f26 arm64: mte: Do not allow PROT_MTE on MAP_HUGETLB user mappings

Change-Id: I49eabb79ab13e7f138664d9fb38f9b3e0f9c116a
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-04-26 02:53:42 -07:00
Seiya Wang
25fc41bbde ANDROID: GKI: Update symbol list for mtk
3 function symbol(s) added
  'void devm_nvmem_cell_put(struct device*, struct nvmem_cell*)'
  'void fw_devlink_purge_absent_suppliers(struct fwnode_handle*)'
  'void typec_port_register_altmodes(struct typec_port*, const struct typec_altmode_ops*, void*, struct typec_altmode**, size_t)'

Bug: 413254661
Change-Id: I8a87faa27b69088467e2a09060157a0871ad0d71
Signed-off-by: Seiya Wang <seiya.wang@mediatek.com>
2025-04-25 16:53:39 -07:00
Patrick Rohr
f26d229ec8 ANDROID: Repurpose a reserved slot in ipv6_devconf for backports
This patch repurposes a ANDROID_KABI_RESERVE slot used for LTS backports
for feature backports. Slot 4 is repurposed as parts of slot 1 are
already used for accept_ra_min_lft on some branches.

Bug: 315069348
Signed-off-by: Patrick Rohr <prohr@google.com>
Change-Id: I19b9dfc16d891fb6fe48ec4379c6fa3dcb6adf89
2025-04-25 14:53:19 -07:00
Lokesh Gidra
70d648657b ANDROID: userfaultfd: adjust MOVE ioctl mode to confirm bug-fix
Kernel panic was observed in do_swap_page() when invoked on a previously
moved (via MOVE ioctl) page from swap-cache. This was because [1] was not
backported previously and therefore calling page_move_anon_rmap() would
set PG_anon_exclusive flag in the source folio, which shouldn't be done
for a swap-cache folio.

[1] https://lore.kernel.org/all/20231002142949.235104-3-david@redhat.com/T/#ma99279cb1eb9d5f8f23540f68ea1244de7294ca0

Bug: 413428616
Change-Id: I867aa9c85fdba111bdecb303614438312038d2fe
Signed-off-by: Lokesh Gidra <lokeshgidra@google.com>
2025-04-24 21:12:50 +00:00
David Hildenbrand
d8a28dde36 BACKPORT: mm/rmap: move SetPageAnonExclusive() out of page_move_anon_rmap()
Patch series "mm/rmap: convert page_move_anon_rmap() to
folio_move_anon_rmap()".

Convert page_move_anon_rmap() to folio_move_anon_rmap(), letting the
callers handle PageAnonExclusive.  I'm including cleanup patch #3 because
it fits into the picture and can be done cleaner by the conversion.

This patch (of 3):

Let's move it into the caller: there is a difference between whether an
anon folio can only be mapped by one process (e.g., into one VMA), and
whether it is truly exclusive (e.g., no references -- including GUP --
from other processes).

Further, for large folios the page might not actually be pointing at the
head page of the folio, so it better be handled in the caller.  This is a
preparation for converting page_move_anon_rmap() to consume a folio.

Link: https://lkml.kernel.org/r/20231002142949.235104-1-david@redhat.com
Link: https://lkml.kernel.org/r/20231002142949.235104-2-david@redhat.com
Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Suren Baghdasaryan <surenb@google.com>
Reviewed-by: Vishal Moola (Oracle) <vishal.moola@gmail.com>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: Matthew Wilcox <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

Conflicts:
1. mm/hugetlb.c
[Due to page_mapcount() instead of folio_mapcount() and folio_test_anon()
instead of PageAnon()]

(cherry picked from commit 5ca432896a4ce6d69fffc3298b24c0dd9bdb871f)

Bug: 413428616
Bug: 313807618
Change-Id: Ibd29fec4d2a521d5ffc0782effd855cde9687a78
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Signed-off-by: Lokesh Gidra <lokeshgidra@google.com>
2025-04-24 21:05:23 +00:00
Pierre Couillaud
6a8cf1324d ANDROID: GKI: Update symbol list for bcmstb
INFO: 1 function symbol(s) added
  'int rt_mutex_lock_interruptible(struct rt_mutex*)'

Bug: 413081238

Change-Id: Ia54c8580030a17ac1d755087f97a7d59713db9fb
Signed-off-by: Pierre Couillaud <pierre@broadcom.com>
Signed-off-by: Danesh Petigara <danesh.petigara@broadcom.com>
2025-04-23 15:42:46 -07:00
DANGJian
642656a367 ANDROID: GKI: Honor add symbols to symbol list
1 function symbol(s) added
  'int __traceiter_android_vh_count_workingset_refault(void*, struct folio*)'

1 variable symbol(s) added
  'struct tracepoint __tracepoint_android_vh_count_workingset_refault'

Bug: 340146803
Change-Id: I050a87563905e333f8d34a5e3d0d0ef3e1fb0537
Signed-off-by: DANGJian <dangjian@honor.corp-partner.google.com>
2025-04-21 14:42:55 -07:00
Lei Liu
40610f49d4 ANDROID: vendor hooks: add hook record workingset refault count
By recording the workingset refault count of important processes and
passing it to the userspace policy, optimizations can be made
to improve system performance.

Bug: 340146803

Change-Id: Ibf9791d9645e392b49c24480ca0be5e7fe99bebe
Signed-off-by: Lei Liu <liulei.rjpt@vivo.corp-partner.google.com>
(cherry picked from commit c196e17dffdb946434b92410507395a586407be4)
Signed-off-by: DANGJian <dangjian@honor.corp-partner.google.com>
2025-04-21 14:42:55 -07:00
T.J. Mercier
9a57b38950 FROMGIT: cgroup/cpuset-v1: Add missing support for cpuset_v2_mode
Android has mounted the v1 cpuset controller using filesystem type
"cpuset" (not "cgroup") since 2015 [1], and depends on the resulting
behavior where the controller name is not added as a prefix for cgroupfs
files. [2]

Later, a problem was discovered where cpu hotplug onlining did not
affect the cpuset/cpus files, which Android carried an out-of-tree patch
to address for a while. An attempt was made to upstream this patch, but
the recommendation was to use the "cpuset_v2_mode" mount option
instead. [3]

An effort was made to do so, but this fails with "cgroup: Unknown
parameter 'cpuset_v2_mode'" because commit e1cba4b85d ("cgroup: Add
mount flag to enable cpuset to use v2 behavior in v1 cgroup") did not
update the special cased cpuset_mount(), and only the cgroup (v1)
filesystem type was updated.

Add parameter parsing to the cpuset filesystem type so that
cpuset_v2_mode works like the cgroup filesystem type:

$ mkdir /dev/cpuset
$ mount -t cpuset -ocpuset_v2_mode none /dev/cpuset
$ mount|grep cpuset
none on /dev/cpuset type cgroup (rw,relatime,cpuset,noprefix,cpuset_v2_mode,release_agent=/sbin/cpuset_release_agent)

[1] b769c8d24f
[2] https://cs.android.com/android/platform/superproject/main/+/main:system/core/libprocessgroup/setup/cgroup_map_write.cpp;drc=2dac5d89a0f024a2d0cc46a80ba4ee13472f1681;l=192
[3] https://lore.kernel.org/lkml/f795f8be-a184-408a-0b5a-553d26061385@redhat.com/T/

Fixes: e1cba4b85d ("cgroup: Add mount flag to enable cpuset to use v2 behavior in v1 cgroup")
Signed-off-by: T.J. Mercier <tjmercier@google.com>
Acked-by: Waiman Long <longman@redhat.com>
Reviewed-by: Kamalesh Babulal <kamalesh.babulal@oracle.com>
Acked-by: Michal Koutný <mkoutny@suse.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
(cherry picked from commit 1bf67c8fdbda21fadd564a12dbe2b13c1ea5eda7 https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git for-6.15-fixes)
Bug: 409240872
Change-Id: I24726766d247e2638c719b56bd7d2d536085f6e4
Signed-off-by: T.J. Mercier <tjmercier@google.com>
2025-04-21 10:12:23 -07:00
Dongdong zhang
bc3d1d352a ANDROID: GKI: update symbol list for xiaomi
INFO: 2 function symbol(s) added
  'void* __xa_cmpxchg(struct xarray*, unsigned long, void*, void*, gfp_t)'
  'key_ref_t lookup_user_key(key_serial_t, unsigned long, enum key_need_perm)'

Bug: 410709465
Change-Id: I87d766b434bc48ec58064456f5f8980f8855c2f9
Signed-off-by: Dongdong zhang <zhangdongdong5@xiaomi.com>
2025-04-17 14:01:48 +08:00
WeiQing Liu
6684cdb34e ANDROID: GKI: update symbol list file for xiaomi
1 function symbol(s) added
  'void netdev_stats_to_stats64(struct rtnl_link_stats64 *, const struct net_device_stats *)'

Bug: 411034968

Change-Id: I77cb8e7817fae851175c8773ab5c7938b774f58a
Signed-off-by: WeiQing Liu <liuweiqing1@xiaomi.corp-partner.google.com>
2025-04-16 10:42:54 -07:00