mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
1bf1aa362e6b9573a310fcd14f35bc875b42ba83
1170727 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
1bf1aa362e |
UPSTREAM: posix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del()
commit f90fff1e152dedf52b932240ebbd670d83330eca upstream.
If an exiting non-autoreaping task has already passed exit_notify() and
calls handle_posix_cpu_timers() from IRQ, it can be reaped by its parent
or debugger right after unlock_task_sighand().
If a concurrent posix_cpu_timer_del() runs at that moment, it won't be
able to detect timer->it.cpu.firing != 0: cpu_timer_task_rcu() and/or
lock_task_sighand() will fail.
Add the tsk->exit_state check into run_posix_cpu_timers() to fix this.
This fix is not needed if CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y, because
exit_task_work() is called before exit_notify(). But the check still
makes sense, task_work_add(&tsk->posix_cputimers_work.work) will fail
anyway in this case.
Bug: 425282960
Cc: stable@vger.kernel.org
Reported-by: Benoît Sevens <bsevens@google.com>
Fixes:
|
||
|
|
36d69f6a49 |
ANDROID: 16K: Use vma_area slab cache for pad VMA
Allocate padding VMA from the vma slab cache; this make it easier to debug slab leaks than from kmalloc slabs. Bug: 427145188 Change-Id: I24c5f5d0eb3b06acf506f18f5eb57cd497b13d6d Signed-off-by: Kalesh Singh <kaleshsingh@google.com> |
||
|
|
d56a28cb58 |
ANDROID: 16K: Add VMA padding size to smaps output
Instead of printing ?? for unexpected vm_flags due to vm padding flag bits; print the size of the padding in kB if any. Example output: 7ff6306c2000-7ff6306c3000 r--p 00000000 fe:09 1912 /system/lib64/bootstrap/libdl.so Size: 4 kB KernelPageSize: 4 kB MMUPageSize: 4 kB Rss: 4 kB Pss: 0 kB Pss_Dirty: 0 kB Shared_Clean: 4 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 0 kB Referenced: 4 kB Anonymous: 0 kB KSM: 0 kB LazyFree: 0 kB AnonHugePages: 0 kB ShmemPmdMapped: 0 kB FilePmdMapped: 0 kB Shared_Hugetlb: 0 kB Private_Hugetlb: 0 kB Swap: 0 kB SwapPss: 0 kB Locked: 0 kB THPeligible: 0 VmFlags: rd mr mw me pad=12kB // <======== 7ff6306c3000-7ff6306c6000 ---p 00000000 00:00 0 [page size compat] Size: 12 kB // <======== KernelPageSize: 4 kB MMUPageSize: 4 kB Rss: 0 kB Pss: 0 kB Pss_Dirty: 0 kB Shared_Clean: 0 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 0 kB Referenced: 0 kB Anonymous: 0 kB KSM: 0 kB LazyFree: 0 kB AnonHugePages: 0 kB ShmemPmdMapped: 0 kB FilePmdMapped: 0 kB Shared_Hugetlb: 0 kB Private_Hugetlb: 0 kB Swap: 0 kB SwapPss: 0 kB Locked: 0 kB THPeligible: 0 VmFlags: mr mw me Bug: 427145188 Bug: 409239984 Bug: 404710273 Bug: 394468578 Change-Id: I4e996f207c9eb980d1a108418c506542722e7265 Signed-off-by: Kalesh Singh <kaleshsingh@google.com> |
||
|
|
1b1265db9e |
ANDROID: 16K: Don't copy data vma for maps/smaps output
Remove get_data_vma() which made a copy of the original VMA containing padding and modified vm_end to exclude the trailing padding (if any). Avoid this copy to avoid races due to stale data relating to vma->vm_file. Instead use VMA_PAD_START(vma) directly to get the correct end excluding padding if any. Add additional check to verify the padding VMA is as expected and also check for allocation failure of the pad VMA. ELFs with padding can be loaded from tmpfs. For simplicity swapped out shmem accounting in smaps, skips the fast path for read only files and walks the page table with the range adjusted for padding. Example output: ===== Maps ===== 7ff6306c2000-7ff6306c3000 r--p 00000000 fe:09 1912 /system/lib64/bootstrap/libdl.so 7ff6306c3000-7ff6306c6000 ---p 00000000 00:00 0 [page size compat] 7ff6306c6000-7ff6306c7000 r-xp 00004000 fe:09 1912 /system/lib64/bootstrap/libdl.so 7ff6306c7000-7ff6306ca000 ---p 00000000 00:00 0 [page size compat] 7ff6306ca000-7ff6306cb000 r--p 00008000 fe:09 1912 /system/lib64/bootstrap/libdl.so ===== Smaps ===== 7ff6306c2000-7ff6306c3000 r--p 00000000 fe:09 1912 /system/lib64/bootstrap/libdl.so Size: 4 kB KernelPageSize: 4 kB MMUPageSize: 4 kB Rss: 4 kB Pss: 0 kB Pss_Dirty: 0 kB Shared_Clean: 4 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 0 kB Referenced: 4 kB Anonymous: 0 kB KSM: 0 kB LazyFree: 0 kB AnonHugePages: 0 kB ShmemPmdMapped: 0 kB FilePmdMapped: 0 kB Shared_Hugetlb: 0 kB Private_Hugetlb: 0 kB Swap: 0 kB SwapPss: 0 kB Locked: 0 kB THPeligible: 0 VmFlags: rd mr mw me ?? 7ff6306c3000-7ff6306c6000 ---p 00000000 00:00 0 [page size compat] Size: 12 kB KernelPageSize: 4 kB MMUPageSize: 4 kB Rss: 0 kB Pss: 0 kB Pss_Dirty: 0 kB Shared_Clean: 0 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 0 kB Referenced: 0 kB Anonymous: 0 kB KSM: 0 kB LazyFree: 0 kB AnonHugePages: 0 kB ShmemPmdMapped: 0 kB FilePmdMapped: 0 kB Shared_Hugetlb: 0 kB Private_Hugetlb: 0 kB Swap: 0 kB SwapPss: 0 kB Locked: 0 kB THPeligible: 0 VmFlags: mr mw me 7ff6306c6000-7ff6306c7000 r-xp 00004000 fe:09 1912 /system/lib64/bootstrap/libdl.so Size: 4 kB KernelPageSize: 4 kB MMUPageSize: 4 kB Rss: 4 kB Pss: 0 kB Pss_Dirty: 0 kB Shared_Clean: 4 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 0 kB Referenced: 4 kB Anonymous: 0 kB KSM: 0 kB LazyFree: 0 kB AnonHugePages: 0 kB ShmemPmdMapped: 0 kB FilePmdMapped: 0 kB Shared_Hugetlb: 0 kB Private_Hugetlb: 0 kB Swap: 0 kB SwapPss: 0 kB Locked: 0 kB THPeligible: 0 VmFlags: rd ex mr mw me ?? 7ff6306c7000-7ff6306ca000 ---p 00000000 00:00 0 [page size compat] Size: 12 kB KernelPageSize: 4 kB MMUPageSize: 4 kB Rss: 0 kB Pss: 0 kB Pss_Dirty: 0 kB Shared_Clean: 0 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 0 kB Referenced: 0 kB Anonymous: 0 kB KSM: 0 kB LazyFree: 0 kB AnonHugePages: 0 kB ShmemPmdMapped: 0 kB FilePmdMapped: 0 kB Shared_Hugetlb: 0 kB Private_Hugetlb: 0 kB Swap: 0 kB SwapPss: 0 kB Locked: 0 kB THPeligible: 0 VmFlags: mr mw me 7ff6306ca000-7ff6306cb000 r--p 00008000 fe:09 1912 /system/lib64/bootstrap/libdl.so Size: 4 kB KernelPageSize: 4 kB MMUPageSize: 4 kB Rss: 4 kB Pss: 4 kB Pss_Dirty: 4 kB Shared_Clean: 0 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 4 kB Referenced: 4 kB Anonymous: 4 kB KSM: 0 kB LazyFree: 0 kB AnonHugePages: 0 kB ShmemPmdMapped: 0 kB FilePmdMapped: 0 kB Shared_Hugetlb: 0 kB Private_Hugetlb: 0 kB Swap: 0 kB SwapPss: 0 kB Locked: 0 kB THPeligible: 0 VmFlags: rd mr mw me ac Bug: 427145188 Bug: 409239984 Change-Id: Ic54e89571276db62ffc01681e7ca8986bb1ca7c4 Signed-off-by: Kalesh Singh <kaleshsingh@google.com> |
||
|
|
44c8456c42 |
ANDROID: BACKPORT: KVM: arm64: Always unmap the pvmfw region at stage-2
The donation of the pvmfw region to pKVM is currently done transparently as part of fix_host_ownership(). However, this function only runs over PA ranges covered by the memblock list, although there is no guarantee for the pvmfw region to be advertised in a memory node in DT. In this case, the pKVM init will appear to succeed while silently keeping valid host stage-2 mappings to the pvmfw region. Fix this by forcefully registering the pvmfw region in the pKVM memblock list. BACKPORT: Fix usage of pvmfw_size and pvmfw_base which are pointers in 6.6 and earlier. Bug: 278749606 Bug: 424382332 Reported-by: Bartłomiej Grzesik <bgrzesik@google.com> Suggested-by: Will Deacon <willdeacon@google.com> Change-Id: I8f5498df25debb432b7dffd1e40a8910bcec7b49 Signed-off-by: Quentin Perret <qperret@google.com> |
||
|
|
d93f956965 |
ANDROID: GKI: add final newline to protected exports file
Bug: 372617006 Change-Id: I51b131be6fe76ad81196ef6ad8641cb43c8218a3 Signed-off-by: Giuliano Procida <gprocida@google.com> |
||
|
|
147721011e |
ANDROID: abi_gki_aarch64_qcom: Add PCIe ECAM related symbols
Add of_pci_parse_bus_range and pci_ecam_create symbols as part of abi_gki_aarch64_qcom. Bug: 425696821 Change-Id: Iaaea8a2f5d80f4ed36fa33f338e1593e95b40ad5 Signed-off-by: Mayank Rana <quic_mrana@quicinc.com> |
||
|
|
5ea45f742e |
ANDROID: GKI: Export tracepoint tcp_retransmit_skb
Export tracepoint tcp_retransmit_skb to collect the retransmission rate of specific tcp streams and adjust the network policy. Also, update the symbol list accordingly. 2 function symbol(s) added 'int __traceiter_tcp_retransmit_skb(void*, const struct sock*, const struct sk_buff*)' 'void skb_orphan_partial(struct sk_buff*)' 1 variable symbol(s) added 'struct tracepoint __tracepoint_tcp_retransmit_skb' Bug: 344697033 Bug: 424394849 Change-Id: Ic2f9a9b31c2cbdf2a59bf3ba13805dfba5036cf5 Signed-off-by: Lei Zhang <lei.zhang.rj@vivo.com> Signed-off-by: Wenhao Liao <wenhao.liao@vivo.corp-partner.google.com> Signed-off-by: Carlos Llamas <cmllamas@google.com> Signed-off-by: Yanxiao Guo <yanxiao.guo@vivo.corp-partner.google.com> |
||
|
|
941a6c6848 |
ANDROID: GKI: Update symbol list for vivo
1 function symbol(s) added 'int __traceiter_android_rvh_tcp_rcv_spurious_retrans(void*, struct sock*)' 1 variable symbol(s) added 'struct tracepoint __tracepoint_android_rvh_tcp_rcv_spurious_retrans' Bug: 351960112 Bug: 424394849 Change-Id: Iedb88dff2b5449ad20de6bfa77bfd9b0574cba19 Signed-off-by: Yanxiao Guo <yanxiao.guo@vivo.corp-partner.google.com> |
||
|
|
45271a2c46 |
Merge tag 'android14-6.1.141_r00' into android14-6.1
This merges the android14-6.1.141_r00 tag into the android14-6.1 branch, catching it up with the latest LTS releases. It contains the following commits: * |
||
|
|
f6c21bc9a6 |
ANDROID: GKI: net: add vendor hooks net qos for gki purpose
Add vendor hooks to support net qos policy feature: 1.android_rvh_tcp_rcv_spurious_retrans With this hook we could trace the ACK path through the segments which are spuriously retransmitted by sender. Bug: 351960112 Bug: 424394849 Change-Id: I739cef428f4a43999d99393a205b3d53a1eb52da Signed-off-by: Jyu Jiang <jyu.jiang@vivo.corp-partner.google.com> |
||
|
|
8f7e256d08 |
ANDROID: GKI: Update symbol list for vivo
12 function symbol(s) added 'int __traceiter_android_rvh_inet_sock_create(void*, struct sock*)' 'int __traceiter_android_rvh_inet_sock_release(void*, struct sock*)' 'int __traceiter_android_rvh_tcp_recvmsg(void*, struct sock*, struct msghdr*, size_t, int, int*)' 'int __traceiter_android_rvh_tcp_select_window(void*, struct sock*, u32*)' 'int __traceiter_android_rvh_tcp_sendmsg(void*, struct sock*, struct msghdr*, size_t)' 'int __traceiter_android_rvh_udp_recvmsg(void*, struct sock*, struct msghdr*, size_t, int, int*)' 'int __traceiter_android_rvh_udp_sendmsg(void*, struct sock*, struct msghdr*, size_t)' 'int __traceiter_android_rvh_udpv6_recvmsg(void*, struct sock*, struct msghdr*, size_t, int, int*)' 'int __traceiter_android_rvh_udpv6_sendmsg(void*, struct sock*, struct msghdr*, size_t)' 'int __traceiter_android_vh_build_skb_around(void*, struct sk_buff*)' 'int __traceiter_android_vh_tcp_rtt_estimator(void*, struct sock*, long)' 'int __traceiter_android_vh_udp_enqueue_schedule_skb(void*, struct sock*, struct sk_buff*)' 12 variable symbol(s) added 'struct tracepoint __tracepoint_android_rvh_inet_sock_create' 'struct tracepoint __tracepoint_android_rvh_inet_sock_release' 'struct tracepoint __tracepoint_android_rvh_tcp_recvmsg' 'struct tracepoint __tracepoint_android_rvh_tcp_select_window' 'struct tracepoint __tracepoint_android_rvh_tcp_sendmsg' 'struct tracepoint __tracepoint_android_rvh_udp_recvmsg' 'struct tracepoint __tracepoint_android_rvh_udp_sendmsg' 'struct tracepoint __tracepoint_android_rvh_udpv6_recvmsg' 'struct tracepoint __tracepoint_android_rvh_udpv6_sendmsg' 'struct tracepoint __tracepoint_android_vh_build_skb_around' 'struct tracepoint __tracepoint_android_vh_tcp_rtt_estimator' 'struct tracepoint __tracepoint_android_vh_udp_enqueue_schedule_skb' Bug: 335081123 Bug: 424394849 Change-Id: I6bbe625c7299ba0b2a82b0bbb2c1c89be715c1d6 Signed-off-by: Yanxiao Guo <yanxiao.guo@vivo.corp-partner.google.com> |
||
|
|
b6fa3795ff |
ANDROID: GKI: net: add vendor hooks net qos for gki purpose
Add vendor hooks to support net qos policy feature: 1.android_rvh_tcp_select_window We want to modify the tcp_select_window return value 2.android_rvh_inet_sock_create; android_rvh_inet_sock_release We want to add a field when a inet sock is created 3.android_vh_tcp_rtt_estimator To record the rtt of tcp connections for specified uids 4.android_vh_build_skb_around To initialize the oem data field in the skb_shared_info structure Bug: 335081123 Bug: 424394849 Change-Id: Ibb22813c5004464416346d2c4c526d6cc5531fcc Signed-off-by: jujiang <jyu.jiang@vivo.corp-partner.google.com> |
||
|
|
ba45069401 |
Revert "ANDROID: mm: Set PAGE_BLOCK_ORDER to 8 when ARM64_16K_PAGES"
This reverts commit 45afa562802ae9a253ef437dd0010c8c2ec17806. Reason for revert: This was a workaround due to the kernel build tools preserving the # nocheck comment as part of the config option for CONFIG_PAGE_BLOCK_ORDER, which is problematic, since it is supposed to be an int. The build tools have been patched to not do that anymore, so this can be removed. Bug: 424212284 Bug: 375647879 Bug: 355449177 Bug: 418282543 Change-Id: Ib999aea150c1c5f7f22ea6bdd81de0ec75f8efaf [isaacmanjarres: resolved merge conflicts from PAGE_BLOCK_ORDER being hardcoded to 8 on android14 kernels.] Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com> |
||
|
|
6246d345f5 |
ANDROID: mm: Set PAGE_BLOCK_ORDER to 8 when ARM64_16K_PAGES
This config will allow the 16kb page size kernels to have the
same CMA_MIN_ALIGNMENT_BYTES that 4k kernels. This means that
the CMA configs for the drivers won't have to change.
Note: This change is needed to avoid breaking old kernel
builds.
Bug: 424212284
Bug: 375647879
Bug: 355449177
Bug: 418282543
Test: tools/bazel run //common:kernel_aarch64_dist
tools/bazel run //common:kernel_aarch64_16k_dist
tools/bazel run //common:kernel_x86_64_dist
Change-Id: Icbfcab0d7e5ba18b3fc35c1186ef79e82f3e7ab1
Signed-off-by: Juan Yescas <jyescas@google.com>
|
||
|
|
74db64dcc8 |
ANDROID: GKI: Update symbol list for vivo
Update vivo symbol list for adding hook to retry mempool allocation without delay. 1 function symbol(s) added 'int __traceiter_android_vh_mempool_alloc_skip_wait(void*, gfp_t *, bool *)' 1 variable symbol(s) added 'struct tracepoint __tracepoint_android_vh_mempool_alloc_skip_wait' Bug: 423832910 Change-Id: I869cfce91993628c05ddefd01e67a655f53ee48a Signed-off-by: Justin Jiang <justinjiang@vivo.corp-partner.google.com> |
||
|
|
0c59801101 |
ANDROID: vendor_hooks: add hook to retry mempool allocation without delay
Allow important priority threads to retry mempool allocation, achieving fast memory allocation and solving lagging problems caused by delaying 5 seconds. Bug: 423832910 Change-Id: I80e6b1c55652f5a62ac36bbf0091d22ec7fb6189 Signed-off-by: Justin Jiang <justinjiang@vivo.corp-partner.google.com> |
||
|
|
312cb0bda6 |
BACKPORT: FROMGIT: mm: Add CONFIG_PAGE_BLOCK_ORDER to select page block order
Problem: On large page size configurations (16KiB, 64KiB), the CMA
alignment requirement (CMA_MIN_ALIGNMENT_BYTES) increases considerably,
and this causes the CMA reservations to be larger than necessary.
This means that system will have less available MIGRATE_UNMOVABLE and
MIGRATE_RECLAIMABLE page blocks since MIGRATE_CMA can't fallback to them.
The CMA_MIN_ALIGNMENT_BYTES increases because it depends on
MAX_PAGE_ORDER which depends on ARCH_FORCE_MAX_ORDER. The value of
ARCH_FORCE_MAX_ORDER increases on 16k and 64k kernels.
For example, in ARM, the CMA alignment requirement when:
- CONFIG_ARCH_FORCE_MAX_ORDER default value is used
- CONFIG_TRANSPARENT_HUGEPAGE is set:
PAGE_SIZE | MAX_PAGE_ORDER | pageblock_order | CMA_MIN_ALIGNMENT_BYTES
-----------------------------------------------------------------------
4KiB | 10 | 9 | 4KiB * (2 ^ 9) = 2MiB
16Kib | 11 | 11 | 16KiB * (2 ^ 11) = 32MiB
64KiB | 13 | 13 | 64KiB * (2 ^ 13) = 512MiB
There are some extreme cases for the CMA alignment requirement when:
- CONFIG_ARCH_FORCE_MAX_ORDER maximum value is set
- CONFIG_TRANSPARENT_HUGEPAGE is NOT set:
- CONFIG_HUGETLB_PAGE is NOT set
PAGE_SIZE | MAX_PAGE_ORDER | pageblock_order | CMA_MIN_ALIGNMENT_BYTES
------------------------------------------------------------------------
4KiB | 15 | 15 | 4KiB * (2 ^ 15) = 128MiB
16Kib | 13 | 13 | 16KiB * (2 ^ 13) = 128MiB
64KiB | 13 | 13 | 64KiB * (2 ^ 13) = 512MiB
This affects the CMA reservations for the drivers. If a driver in a
4KiB kernel needs 4MiB of CMA memory, in a 16KiB kernel, the minimal
reservation has to be 32MiB due to the alignment requirements:
reserved-memory {
...
cma_test_reserve: cma_test_reserve {
compatible = "shared-dma-pool";
size = <0x0 0x400000>; /* 4 MiB */
...
};
};
reserved-memory {
...
cma_test_reserve: cma_test_reserve {
compatible = "shared-dma-pool";
size = <0x0 0x2000000>; /* 32 MiB */
...
};
};
Solution: Add a new config CONFIG_PAGE_BLOCK_ORDER that
allows to set the page block order in all the architectures.
The maximum page block order will be given by
ARCH_FORCE_MAX_ORDER.
By default, CONFIG_PAGE_BLOCK_ORDER will have the same
value that ARCH_FORCE_MAX_ORDER. This will make sure that
current kernel configurations won't be affected by this
change. It is a opt-in change.
This patch will allow to have the same CMA alignment
requirements for large page sizes (16KiB, 64KiB) as that
in 4kb kernels by setting a lower pageblock_order.
Tests:
- Verified that HugeTLB pages work when pageblock_order is 1, 7, 10
on 4k and 16k kernels.
- Verified that Transparent Huge Pages work when pageblock_order
is 1, 7, 10 on 4k and 16k kernels.
- Verified that dma-buf heaps allocations work when pageblock_order
is 1, 7, 10 on 4k and 16k kernels.
Benchmarks:
The benchmarks compare 16kb kernels with pageblock_order 10 and 7. The
reason for the pageblock_order 7 is because this value makes the min
CMA alignment requirement the same as that in 4kb kernels (2MB).
- Perform 100K dma-buf heaps (/dev/dma_heap/system) allocations of
SZ_8M, SZ_4M, SZ_2M, SZ_1M, SZ_64, SZ_8, SZ_4. Use simpleperf
(https://developer.android.com/ndk/guides/simpleperf) to measure
the # of instructions and page-faults on 16k kernels.
The benchmark was executed 10 times. The averages are below:
# instructions | #page-faults
order 10 | order 7 | order 10 | order 7
--------------------------------------------------------
13,891,765,770 | 11,425,777,314 | 220 | 217
14,456,293,487 | 12,660,819,302 | 224 | 219
13,924,261,018 | 13,243,970,736 | 217 | 221
13,910,886,504 | 13,845,519,630 | 217 | 221
14,388,071,190 | 13,498,583,098 | 223 | 224
13,656,442,167 | 12,915,831,681 | 216 | 218
13,300,268,343 | 12,930,484,776 | 222 | 218
13,625,470,223 | 14,234,092,777 | 219 | 218
13,508,964,965 | 13,432,689,094 | 225 | 219
13,368,950,667 | 13,683,587,37 | 219 | 225
-------------------------------------------------------------------
13,803,137,433 | 13,131,974,268 | 220 | 220 Averages
There were 4.85% #instructions when order was 7, in comparison
with order 10.
13,803,137,433 - 13,131,974,268 = -671,163,166 (-4.86%)
The number of page faults in order 7 and 10 were the same.
These results didn't show any significant regression when the
pageblock_order is set to 7 on 16kb kernels.
- Run speedometer 3.1 (https://browserbench.org/Speedometer3.1/) 5 times
on the 16k kernels with pageblock_order 7 and 10.
order 10 | order 7 | order 7 - order 10 | (order 7 - order 10) %
-------------------------------------------------------------------
15.8 | 16.4 | 0.6 | 3.80%
16.4 | 16.2 | -0.2 | -1.22%
16.6 | 16.3 | -0.3 | -1.81%
16.8 | 16.3 | -0.5 | -2.98%
16.6 | 16.8 | 0.2 | 1.20%
-------------------------------------------------------------------
16.44 16.4 -0.04 -0.24% Averages
The results didn't show any significant regression when the
pageblock_order is set to 7 on 16kb kernels.
Signed-off-by: Juan Yescas <jyescas@google.com>
Acked-by: Zi Yan <ziy@nvidia.com>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Liam R. Howlett <Liam.Howlett@oracle.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Minchan Kim <minchan@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit e13e7922d03439e374c263049af5f740ceae6346 https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/ mm-stable)
Bug: 375647879
Bug: 355449177
Bug: 418282543
[jyescas: Use MAX_ORDER instead of MAX_PAGE_ORDER. Update the file
mm/page_alloc.c instead of mm/mm_init.c due the function
set_pageblock_order is there.]
Test: Built and ran kernel
Link: https://lkml.kernel.org/r/20250521215807.1860663-1-jyescas@google.com
Change-Id: Id7132b6848e5deb97a7531cf546060de2accffac
|
||
|
|
5b2e204a7b |
BACKPORT: binder: Create safe versions of binder log files
Binder defines several seq_files that can be accessed via debugfs or binderfs. Some of these files (e.g., 'state' and 'transactions') contain more granular information about binder's internal state that is helpful for debugging, but they also leak userspace address data through user-defined 'cookie' or 'ptr' values. Consequently, access to these files must be heavily restricted. Add two new files, 'state_hashed' and 'transactions_hashed', that reproduce the information in the original files but use the kernel's raw pointer obfuscation to hash any potential user addresses. This approach allows systems to grant broader access to the new files without having to change the security policy around the existing ones. In practice, userspace populates these fields with user addresses, but within the driver, these values only serve as unique identifiers for their associated binder objects. Consequently, binder logs can obfuscate these values and still retain meaning. While this strategy prevents leaking information about the userspace memory layout in the existing log files, it also decouples log messages about binder objects from their user-defined identifiers. Acked-by: Carlos Llamas <cmllamas@google.com> Tested-by: Carlos Llamas <cmllamas@google.com> Signed-off-by: "Tiffany Y. Yang" <ynaffit@google.com> Link: https://lore.kernel.org/r/20250510013435.1520671-7-ynaffit@google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Bug: 316970771 (cherry picked from commit 57483a362741e4f0f3f4d2fc82d48f82fd0986d9) [Resolve conflicts from node prio] Change-Id: I6a01048c0105a1d6061e95f386e7ee55e2fdc898 Signed-off-by: "Tiffany Yang" <ynaffit@google.com> |
||
|
|
1fee46d076 |
UPSTREAM: binder: Refactor binder_node print synchronization
The binder driver outputs information about each dead binder node by iterating over the dead nodes list, and it prints the state of each live node in the system by traversing each binder_proc's proc->nodes tree. Both cases require similar logic to maintain the global lock ordering while accessing each node. Create a helper function to synchronize around printing binder nodes in a list. Opportunistically make minor cosmetic changes to binder print functions. Acked-by: Carlos Llamas <cmllamas@google.com> Signed-off-by: "Tiffany Y. Yang" <ynaffit@google.com> Reviewed-by: Alice Ryhl <aliceryhl@google.com> Link: https://lore.kernel.org/r/20250510013435.1520671-5-ynaffit@google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Bug: 316970771 (cherry picked from commit 91f1bbaa783d26b379d65ef7b4b2b947c338c749) Change-Id: Iae546a847ca138ddfffcdc24faf075b325a54640 Signed-off-by: "Tiffany Yang" <ynaffit@google.com> |
||
|
|
47e5d7e917 |
FROMGIT: scsi: core: ufs: Fix a hang in the error handler
ufshcd_err_handling_prepare() calls ufshcd_rpm_get_sync(). The latter
function can only succeed if UFSHCD_EH_IN_PROGRESS is not set because
resuming involves submitting a SCSI command and ufshcd_queuecommand()
returns SCSI_MLQUEUE_HOST_BUSY if UFSHCD_EH_IN_PROGRESS is set. Fix this
hang by setting UFSHCD_EH_IN_PROGRESS after ufshcd_rpm_get_sync() has
been called instead of before.
Backtrace:
__switch_to+0x174/0x338
__schedule+0x600/0x9e4
schedule+0x7c/0xe8
schedule_timeout+0xa4/0x1c8
io_schedule_timeout+0x48/0x70
wait_for_common_io+0xa8/0x160 //waiting on START_STOP
wait_for_completion_io_timeout+0x10/0x20
blk_execute_rq+0xe4/0x1e4
scsi_execute_cmd+0x108/0x244
ufshcd_set_dev_pwr_mode+0xe8/0x250
__ufshcd_wl_resume+0x94/0x354
ufshcd_wl_runtime_resume+0x3c/0x174
scsi_runtime_resume+0x64/0xa4
rpm_resume+0x15c/0xa1c
__pm_runtime_resume+0x4c/0x90 // Runtime resume ongoing
ufshcd_err_handler+0x1a0/0xd08
process_one_work+0x174/0x808
worker_thread+0x15c/0x490
kthread+0xf4/0x1ec
ret_from_fork+0x10/0x20
Signed-off-by: Sanjeev Yadav <sanjeev.y@mediatek.com>
[ bvanassche: rewrote patch description ]
Fixes:
|
||
|
|
13ff1300ee |
BACKPORT: erofs: allocate more short-lived pages from reserved pool first
This patch aims to allocate bvpages and short-lived compressed pages
from the reserved pool first.
After applying this patch, there are three benefits.
1. It reduces the page allocation time.
The bvpages and short-lived compressed pages account for about 4% of
the pages allocated from the system in the multi-app launch benchmarks
[1]. It reduces the page allocation time accordingly and lowers the
likelihood of blockage by page allocation in low memory scenarios.
2. The pages in the reserved pool will be allocated on demand.
Currently, bvpages and short-lived compressed pages are short-lived
pages allocated from the system, and the pages in the reserved pool all
originate from short-lived pages. Consequently, the number of reserved
pool pages will increase to z_erofs_rsv_nrpages over time.
With this patch, all short-lived pages are allocated from the reserved
pool first, so the number of reserved pool pages will only increase when
there are not enough pages. Thus, even if z_erofs_rsv_nrpages is set to
a large number for specific reasons, the actual number of reserved pool
pages may remain low as per demand. In the multi-app launch benchmarks
[1], z_erofs_rsv_nrpages is set at 256, while the number of reserved
pool pages remains below 64.
3. When erofs cache decompression is disabled
(EROFS_ZIP_CACHE_DISABLED), all pages will *only* be allocated from
the reserved pool for erofs. This will significantly reduce the memory
pressure from erofs.
[1] For additional details on the multi-app launch benchmarks, please
refer to commit 0f6273ab4637 ("erofs: add a reserved buffer pool for lz4
decompression").
Signed-off-by: Chunhai Guo <guochunhai@vivo.com>
Reviewed-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Link: https://lore.kernel.org/r/20240906121110.3701889-1-guochunhai@vivo.com
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Bug: 422867180
Bug: 387202250
Change-Id: Ife45adcb4c22c9d73952db1de956e1b9cda1b8c2
(cherry picked from commit 79f504a2cd3c0b7d953d0015618a2a41559a2cfd)
Signed-off-by: liujinbao1 <liujinbao1@xiaomi.corp-partner.google.com>
(cherry picked from commit 6e7af99d68e309a0a1a14e7674406d9462e1b0bb)
|
||
|
|
753068e2ae |
ANDROID: GKI: Add zebra KMI symbol list
These symbols are required scanner driver INFO: 1 function symbol(s) added 'void vb2_video_unregister_device(struct video_device*)' Bug: 423519221 Change-Id: I9826d7ca5b1e8d286fad1ec80efc674cc676540e Signed-off-by: rajat.suri <rajat.suri@zebra.com> |
||
|
|
7af56ffc91 |
UPSTREAM: f2fs: compress: fix error path of inc_valid_block_count()
If inc_valid_block_count() can not allocate all requested blocks,
it needs to release block count in .total_valid_block_count and
resevation blocks in inode.
Bug: 419862398
Change-Id: I3d05f5ced5a8e9e4af6879d8e35ef9aef148dd95
(cherry picked from commit 043c832371cd9023fbd725138ddc6c7f288dc469)
Fixes: 54607494875e ("f2fs: compress: fix to avoid inconsistence bewteen i_blocks and dnode")
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Chao Yu <chao@kernel.org>
|
||
|
|
d8780220fd |
UPSTREAM: scripts/unifdef: avoid constexpr keyword
Starting with c23, 'constexpr' is a keyword in C like in C++ and cannot
be used as an identifier:
scripts/unifdef.c:206:25: error: 'constexpr' can only be used in variable declarations
206 | static bool constexpr; /* constant #if expression */
| ^
scripts/unifdef.c:880:13: error: expected identifier or '('
880 | constexpr = false;
| ^
Rename this instance to allow changing to C23 at some point in the future.
Bug: 401172689
Bug: 422603167
Change-Id: I19e1c13f5dcffe98b8189d3317100f20774f1d4c
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-By: Tony Finch <dot@dotat.at>
Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
(cherry picked from commit 10f94d8fcc0880c93d7697184fe199022792a61c)
Signed-off-by: Srinivasarao Pathipati <quic_c_spathi@quicinc.com>
(cherry picked from commit b7fd55a297a77e72154def86b46c3d1cf1ffa1e1)
|
||
|
|
18282059e0 |
Revert "espintcp: remove encap socket caching to avoid reference leak"
This reverts commit
|
||
|
|
eb47017bf9 |
Revert "genirq/msi: Store the IOMMU IOVA directly in msi_desc instead of iommu_cookie"
This reverts commit
|
||
|
|
22d163151d |
Revert "perf: Avoid the read if the count is already updated"
This reverts commit
|
||
|
|
f4b979262f |
Revert "coredump: hand a pidfd to the usermode coredump helper"
This reverts commit
|
||
|
|
f23dc8c566 |
Revert "ipv6: save dontfrag in cork"
This reverts commit
|
||
|
|
b572d7f4f2 |
Revert "serial: mctrl_gpio: split disable_ms into sync and no_sync APIs"
This reverts commit
|
||
|
|
7f0c46ade6 |
Revert "hrtimers: Force migrate away hrtimers queued after CPUHP_AP_HRTIMERS_DYING"
This reverts commit
|
||
|
|
ef60b4555d |
Merge 6.1.141 into android14-6.1-lts
Changes in 6.1.141 gpio: pca953x: Add missing header(s) gpio: pca953x: Split pca953x_restore_context() and pca953x_save_context() gpio: pca953x: Simplify code with cleanup helpers gpio: pca953x: fix IRQ storm on system wake up phy: renesas: rcar-gen3-usb2: Add support to initialize the bus phy: renesas: rcar-gen3-usb2: Move IRQ request in probe phy: renesas: rcar-gen3-usb2: Lock around hardware registers and driver data phy: renesas: rcar-gen3-usb2: Assert PLL reset on PHY power off scsi: target: iscsi: Fix timeout on deleted connection virtio_ring: Fix data race by tagging event_triggered as racy for KCSAN dma-mapping: avoid potential unused data compilation warning cgroup: Fix compilation issue due to cgroup_mutex not being exported scsi: mpi3mr: Add level check to control event logging net: enetc: refactor bulk flipping of RX buffers to separate function drm/amdgpu: Allow P2P access through XGMI selftests/bpf: Mitigate sockmap_ktls disconnect_after_delete failure bpf: fix possible endless loop in BPF map iteration samples/bpf: Fix compilation failure for samples/bpf on LoongArch Fedora kconfig: merge_config: use an empty file as initfile s390/vfio-ap: Fix no AP queue sharing allowed message written to kernel log cifs: Add fallback for SMB2 CREATE without FILE_READ_ATTRIBUTES cifs: Fix querying and creating MF symlinks over SMB1 cifs: Fix negotiate retry functionality fuse: Return EPERM rather than ENOSYS from link() NFSv4: Check for delegation validity in nfs_start_delegation_return_locked() NFS: Don't allow waiting for exiting tasks SUNRPC: Don't allow waiting for exiting tasks arm64: Add support for HIP09 Spectre-BHB mitigation tracing: Mark binary printing functions with __printf() attribute mailbox: use error ret code of of_parse_phandle_with_args() fbdev: fsl-diu-fb: add missing device_remove_file() fbcon: Use correct erase colour for clearing in fbcon fbdev: core: tileblit: Implement missing margin clearing for tileblit cifs: Fix establishing NetBIOS session for SMB2+ connection NFSv4: Treat ENETUNREACH errors as fatal for state recovery SUNRPC: rpc_clnt_set_transport() must not change the autobind setting SUNRPC: rpcbind should never reset the port to the value '0' thermal/drivers/qoriq: Power down TMU on system suspend dql: Fix dql->limit value when reset. lockdep: Fix wait context check on softirq for PREEMPT_RT objtool: Properly disable uaccess validation PCI: dwc: ep: Ensure proper iteration over outbound map windows tools/build: Don't pass test log files to linker pNFS/flexfiles: Report ENETDOWN as a connection error PCI: vmd: Disable MSI remapping bypass under Xen libnvdimm/labels: Fix divide error in nd_label_data_init() mmc: host: Wait for Vdd to settle on card power off x86/mm: Check return value from memblock_phys_alloc_range() i2c: qup: Vote for interconnect bandwidth to DRAM i2c: pxa: fix call balance of i2c->clk handling routines btrfs: make btrfs_discard_workfn() block_group ref explicit btrfs: avoid linker error in btrfs_find_create_tree_block() btrfs: run btrfs_error_commit_super() early btrfs: fix non-empty delayed iputs list on unmount due to async workers btrfs: get zone unusable bytes while holding lock at btrfs_reclaim_bgs_work() btrfs: send: return -ENAMETOOLONG when attempting a path that is too long drm/amd/display: Guard against setting dispclk low for dcn31x i3c: master: svc: Fix missing STOP for master request dlm: make tcp still work in multi-link env um: Store full CSGSFS and SS register from mcontext um: Update min_low_pfn to match changes in uml_reserved ext4: reorder capability check last scsi: st: Tighten the page format heuristics with MODE SELECT scsi: st: ERASE does not change tape location vfio/pci: Handle INTx IRQ_NOTCONNECTED bpf: Return prog btf_id without capable check tcp: reorganize tcp_in_ack_event() and tcp_count_delivered() rtc: rv3032: fix EERD location thunderbolt: Do not add non-active NVM if NVM upgrade is disabled for retimer ASoC: mediatek: mt6359: Add stub for mt6359_accdet_enable_jack_detect kbuild: fix argument parsing in scripts/config crypto: octeontx2 - suppress auth failure screaming due to negative tests dm: restrict dm device size to 2^63-512 bytes net/smc: use the correct ndev to find pnetid by pnetid table xen: Add support for XenServer 6.1 platform device pinctrl-tegra: Restore SFSEL bit when freeing pins ASoC: sun4i-codec: support hp-det-gpios property ext4: reject the 'data_err=abort' option in nojournal mode RDMA/uverbs: Propagate errors from rdma_lookup_get_uobject() posix-timers: Add cond_resched() to posix_timer_add() search loop timer_list: Don't use %pK through printk() netfilter: conntrack: Bound nf_conntrack sysctl writes arm64/mm: Check PUD_TYPE_TABLE in pud_bad() mmc: dw_mmc: add exynos7870 DW MMC support mmc: sdhci: Disable SD card clock before changing parameters hwmon: (dell-smm) Increment the number of fans ipv6: save dontfrag in cork drm/amd/display: calculate the remain segments for all pipes gfs2: Check for empty queue in run_queue auxdisplay: charlcd: Partially revert "Move hwidth and bwidth to struct hd44780_common" ASoC: qcom: sm8250: explicitly set format in sm8250_be_hw_params_fixup() iommu/amd/pgtbl_v2: Improve error handling cpufreq: tegra186: Share policy per cluster crypto: lzo - Fix compression buffer overrun arm64: tegra: p2597: Fix gpio for vdd-1v8-dis regulator powerpc/prom_init: Fixup missing #size-cells on PowerBook6,7 ALSA: seq: Improve data consistency at polling tcp: bring back NUMA dispersion in inet_ehash_locks_alloc() rtc: ds1307: stop disabling alarms on probe ieee802154: ca8210: Use proper setters and getters for bitwise types ARM: tegra: Switch DSI-B clock parent to PLLD on Tegra114 media: c8sectpfe: Call of_node_put(i2c_bus) only once in c8sectpfe_probe() dm cache: prevent BUG_ON by blocking retries on failed device resumes orangefs: Do not truncate file size net: phylink: use pl->link_interface in phylink_expects_phy() remoteproc: qcom_wcnss: Handle platforms with only single power domain drm/amdgpu: Do not program AGP BAR regs under SRIOV in gfxhub_v1_0.c media: cx231xx: set device_caps for 417 pinctrl: bcm281xx: Use "unsigned int" instead of bare "unsigned" net: ethernet: ti: cpsw_new: populate netdev of_node net: pktgen: fix mpls maximum labels list parsing perf/hw_breakpoint: Return EOPNOTSUPP for unsupported breakpoint type ALSA: hda/realtek: Enable PC beep passthrough for HP EliteBook 855 G7 ipv4: fib: Move fib_valid_key_len() to rtm_to_fib_config(). drm/rockchip: vop2: Add uv swap for cluster window media: uvcvideo: Add sanity check to uvc_ioctl_xu_ctrl_map clk: imx8mp: inform CCF of maximum frequency of clocks x86/bugs: Make spectre user default depend on MITIGATION_SPECTRE_V2 hwmon: (gpio-fan) Add missing mutex locks ARM: at91: pm: fix at91_suspend_finish for ZQ calibration drm/mediatek: mtk_dpi: Add checks for reg_h_fre_con existence fpga: altera-cvp: Increase credit timeout soc: apple: rtkit: Use high prio work queue soc: apple: rtkit: Implement OSLog buffers properly PCI: brcmstb: Expand inbound window size up to 64GB PCI: brcmstb: Add a softdep to MIP MSI-X driver firmware: arm_ffa: Set dma_mask for ffa devices net/mlx5: Avoid report two health errors on same syndrome selftests/net: have `gro.sh -t` return a correct exit code drm/amdkfd: KFD release_work possible circular locking leds: pwm-multicolor: Add check for fwnode_property_read_u32 net: ethernet: mtk_ppe_offload: Allow QinQ, double ETH_P_8021Q only net: xgene-v2: remove incorrect ACPI_PTR annotation bonding: report duplicate MAC address in all situations soc: ti: k3-socinfo: Do not use syscon helper to build regmap x86/build: Fix broken copy command in genimage.sh when making isoimage drm/amd/display: handle max_downscale_src_width fail check x86/nmi: Add an emergency handler in nmi_desc & use it in nmi_shootdown_cpus() cpuidle: menu: Avoid discarding useful information media: adv7180: Disable test-pattern control on adv7180 libbpf: Fix out-of-bound read dm: fix unconditional IO throttle caused by REQ_PREFLUSH x86/kaslr: Reduce KASLR entropy on most x86 systems MIPS: Use arch specific syscall name match function genirq/msi: Store the IOMMU IOVA directly in msi_desc instead of iommu_cookie MIPS: pm-cps: Use per-CPU variables as per-CPU, not per-core clocksource: mips-gic-timer: Enable counter when CPUs start scsi: mpt3sas: Send a diag reset if target reset fails wifi: rtw88: Fix rtw_init_vht_cap() for RTL8814AU wifi: rtw88: Fix rtw_init_ht_cap() for RTL8814AU wifi: rtw88: Fix rtw_desc_to_mcsrate() to handle MCS16-31 wifi: rtw89: fw: propagate error code from rtw89_h2c_tx() net: pktgen: fix access outside of user given buffer in pktgen_thread_write() EDAC/ie31200: work around false positive build warning i3c: master: svc: Flush FIFO before sending Dynamic Address Assignment(DAA) serial: mctrl_gpio: split disable_ms into sync and no_sync APIs RDMA/core: Fix best page size finding when it can cross SG entries pmdomain: imx: gpcv2: use proper helper for property detection can: c_can: Use of_property_present() to test existence of DT property eth: mlx4: don't try to complete XDP frames in netpoll PCI: Fix old_size lower bound in calculate_iosize() too ACPI: HED: Always initialize before evged vxlan: Join / leave MC group after remote changes media: test-drivers: vivid: don't call schedule in loop net/mlx5: Modify LSB bitmask in temperature event to include only the first bit net/mlx5: Apply rate-limiting to high temperature warning ASoC: ops: Enforce platform maximum on initial value ASoC: tas2764: Add reg defaults for TAS2764_INT_CLK_CFG ASoC: tas2764: Mark SW_RESET as volatile ASoC: tas2764: Power up/down amp on mute ops ASoC: soc-dai: check return value at snd_soc_dai_set_tdm_slot() pinctrl: devicetree: do not goto err when probing hogs in pinctrl_dt_to_map smack: recognize ipv4 CIPSO w/o categories kunit: tool: Use qboot on QEMU x86_64 net/mlx4_core: Avoid impossible mlx4_db_alloc() order value clk: qcom: clk-alpha-pll: Do not use random stack value for recalc rate serial: sh-sci: Update the suspend/resume support phy: core: don't require set_mode() callback for phy_get_mode() to work drm/amdgpu: reset psp->cmd to NULL after releasing the buffer drm/amd/display: Initial psr_version with correct setting drm/amdgpu: enlarge the VBIOS binary size limit drm/amd/display/dm: drop hw_support check in amdgpu_dm_i2c_xfer() net/mlx5: Extend Ethtool loopback selftest to support non-linear SKB net/mlx5e: set the tx_queue_len for pfifo_fast net/mlx5e: reduce rep rxq depth to 256 for ECPF wifi: mac80211: don't unconditionally call drv_mgd_complete_tx() wifi: mac80211: remove misplaced drv_mgd_complete_tx() call arch/powerpc/perf: Check the instruction type before creating sample with perf_mem_data_src ip: fib_rules: Fetch net from fib_rule in fib[46]_rule_configure(). r8152: add vendor/device ID pair for Dell Alienware AW1022z wifi: rtw88: Fix download_firmware_validate() for RTL8814AU clk: qcom: camcc-sm8250: Use clk_rcg2_shared_ops for some RCGs hwmon: (xgene-hwmon) use appropriate type for the latency value media: qcom: camss: csid: Only add TPG v4l2 ctrl if TPG hardware is available vxlan: Annotate FDB data races r8169: don't scan PHY addresses > 0 rcu: handle quiescent states for PREEMPT_RCU=n, PREEMPT_COUNT=y rcu: handle unstable rdp in rcu_read_unlock_strict() rcu: fix header guard for rcu_all_qs() perf: Avoid the read if the count is already updated ice: count combined queues using Rx/Tx count net/mana: fix warning in the writer of client oob scsi: lpfc: Handle duplicate D_IDs in ndlp search-by D_ID routine scsi: lpfc: Free phba irq in lpfc_sli4_enable_msi() when pci_irq_vector() fails scsi: st: Restore some drive settings after reset HID: usbkbd: Fix the bit shift number for LED_KANA ASoC: codecs: pcm3168a: Allow for 24-bit in provider mode drm/ast: Find VBIOS mode from regular display size bpftool: Fix readlink usage in get_fd_type perf/amd/ibs: Fix perf_ibs_op.cnt_mask for CurCnt wifi: rtl8xxxu: retry firmware download on error wifi: rtw88: Don't use static local variable in rtw8822b_set_tx_power_index_by_rate wifi: rtw89: add wiphy_lock() to work that isn't held wiphy_lock() yet spi: zynqmp-gqspi: Always acknowledge interrupts regulator: ad5398: Add device tree support wifi: ath9k: return by of_get_mac_address drm/atomic: clarify the rules around drm_atomic_state->allow_modeset drm/panel-edp: Add Starry 116KHD024006 drm: Add valid clones check ASoC: imx-card: Adjust over allocation of memory in imx_card_parse_of() pinctrl: meson: define the pull up/down resistor value as 60 kOhm ASoC: Intel: bytcr_rt5640: Add DMI quirk for Acer Aspire SW3-013 ALSA: hda/realtek: Add quirk for HP Spectre x360 15-df1xxx nvmet-tcp: don't restore null sk_state_change io_uring/fdinfo: annotate racy sq/cq head/tail reads btrfs: correct the order of prelim_ref arguments in btrfs__prelim_ref wifi: iwlwifi: add support for Killer on MTL xenbus: Allow PVH dom0 a non-local xenstore __legitimize_mnt(): check for MNT_SYNC_UMOUNT should be under mount_lock espintcp: remove encap socket caching to avoid reference leak dmaengine: idxd: add per DSA wq workqueue for processing cr faults dmaengine: idxd: add idxd_copy_cr() to copy user completion record during page fault handling dmaengine: idxd: Fix allowing write() from different address spaces remoteproc: qcom_wcnss: Fix on platforms without fallback regulators clk: sunxi-ng: d1: Add missing divider for MMC mod clocks xfrm: Sanitize marks before insert dmaengine: idxd: Fix ->poll() return value Bluetooth: L2CAP: Fix not checking l2cap_chan security level bridge: netfilter: Fix forwarding of fragmented packets ice: fix vf->num_mac count with port representors net: dwmac-sun8i: Use parsed internal PHY address instead of 1 net: lan743x: Restore SGMII CTRL register on resume io_uring: fix overflow resched cqe reordering sch_hfsc: Fix qlen accounting bug when using peek in hfsc_enqueue() octeontx2-pf: Add support for page pool octeontx2-pf: Add AF_XDP non-zero copy support net/tipc: fix slab-use-after-free Read in tipc_aead_encrypt_done octeontx2-af: Set LMT_ENA bit for APR table entries octeontx2-af: Fix APR entry mapping based on APR_LMT_CFG crypto: algif_hash - fix double free in hash_accept padata: do not leak refcount in reorder_work can: slcan: allow reception of short error messages can: bcm: add locking for bcm_op runtime updates can: bcm: add missing rcu read protection for procfs content ALSA: pcm: Fix race of buffer access at PCM OSS layer ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7 14ASP10 llc: fix data loss when reading from a socket in llc_ui_recvmsg() platform/x86: dell-wmi-sysman: Avoid buffer overflow in current_password_store() drm/edid: fixed the bug that hdr metadata was not reset smb: client: Fix use-after-free in cifs_fill_dirent smb: client: Reset all search buffer pointers when releasing buffer Revert "drm/amd: Keep display off while going into S4" memcg: always call cond_resched() after fn() mm/page_alloc.c: avoid infinite retries caused by cpuset race Revert "arm64: dts: allwinner: h6: Use RSB for AXP805 PMIC connection" ksmbd: fix stream write failure spi: spi-fsl-dspi: restrict register range for regmap access spi: spi-fsl-dspi: Halt the module after a new message transfer spi: spi-fsl-dspi: Reset SR flags before sending a new message kbuild: Disable -Wdefault-const-init-unsafe serial: sh-sci: Save and restore more registers pinctrl: tegra: Fix off by one in tegra_pinctrl_get_group() i3c: master: svc: Fix implicit fallthrough in svc_i3c_master_ibi_work() x86/mm/init: Handle the special case of device private pages in add_pages(), to not increase max_pfn and trigger dma_addressing_limited() bounce buffers bounce buffers dmaengine: idxd: Fix passing freed memory in idxd_cdev_open() octeontx2-pf: fix page_pool creation fail for rings > 32k octeontx2-pf: Fix page pool cache index corruption. octeontx2-pf: Fix page pool frag allocation warning hrtimers: Force migrate away hrtimers queued after CPUHP_AP_HRTIMERS_DYING btrfs: check folio mapping after unlock in relocate_one_folio() af_unix: Kconfig: make CONFIG_UNIX bool af_unix: Return struct unix_sock from unix_get_socket(). af_unix: Run GC on only one CPU. af_unix: Try to run GC async. af_unix: Replace BUG_ON() with WARN_ON_ONCE(). af_unix: Remove io_uring code for GC. af_unix: Remove CONFIG_UNIX_SCM. af_unix: Allocate struct unix_vertex for each inflight AF_UNIX fd. af_unix: Allocate struct unix_edge for each inflight AF_UNIX fd. af_unix: Link struct unix_edge when queuing skb. af_unix: Bulk update unix_tot_inflight/unix_inflight when queuing skb. af_unix: Iterate all vertices by DFS. af_unix: Detect Strongly Connected Components. af_unix: Save listener for embryo socket. af_unix: Fix up unix_edge.successor for embryo socket. af_unix: Save O(n) setup of Tarjan's algo. af_unix: Skip GC if no cycle exists. af_unix: Avoid Tarjan's algorithm if unnecessary. af_unix: Assign a unique index to SCC. af_unix: Detect dead SCC. af_unix: Replace garbage collection algorithm. af_unix: Remove lock dance in unix_peek_fds(). af_unix: Try not to hold unix_gc_lock during accept(). af_unix: Don't access successor in unix_del_edges() during GC. af_unix: Add dead flag to struct scm_fp_list. af_unix: Fix garbage collection of embryos carrying OOB with SCM_RIGHTS af_unix: Fix uninit-value in __unix_walk_scc() arm64: dts: qcom: sm8350: Fix typo in pil_camera_mem node net_sched: hfsc: Address reentrant enqueue adding class to eltree twice perf/arm-cmn: Fix REQ2/SNP2 mixup perf/arm-cmn: Initialise cmn->cpu earlier coredump: fix error handling for replace_fd() pid: add pidfd_prepare() fork: use pidfd_prepare() coredump: hand a pidfd to the usermode coredump helper HID: quirks: Add ADATA XPG alpha wireless mouse support nfs: don't share pNFS DS connections between net namespaces platform/x86: thinkpad_acpi: Support also NEC Lavie X1475JAS um: let 'make clean' properly clean underlying SUBARCH as well spi: spi-sun4i: fix early activation nvme-pci: add NVME_QUIRK_NO_DEEPEST_PS quirk for SOLIDIGM P44 Pro NFS: Avoid flushing data while holding directory locks in nfs_rename() platform/x86: fujitsu-laptop: Support Lifebook S2110 hotkeys platform/x86: thinkpad_acpi: Ignore battery threshold change event notification net: ethernet: ti: am65-cpsw: Lower random mac address error print to info Linux 6.1.141 Change-Id: I4b93f8e69385f2087bf71545f58ae6f5cee1c5ba Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> |
||
|
|
3048ff6925 |
ANDROID: GKI: Update symbol list file for xiaomi
INFO: 3 function symbol(s) added 'struct page* read_swap_cache_async(swp_entry_t, gfp_t, struct vm_area_struct*, unsigned long, struct swap_iocb**)' 'int unuse_swap_pte(struct vm_area_struct*, pmd_t*, unsigned long, swp_entry_t, struct folio*)' 'int vfs_fadvise(struct file*, loff_t, loff_t, int)' Bug: 415852480 Change-Id: I5c4d50e042dd8dc8ba4df430614b0ac79ffb41cd Signed-off-by: jianhua hao <haojianhua1@xiaomi.com> |
||
|
|
7f2f532bd0 |
ANDROID: mm: export __pte_offset_map/unuse_swap_pte/read_swap_cache_async
Export __pte_offset_map facilitate retrieving the corresponding PTE using PMD and an address. Add and export unuse_swap_pte to facilitate releasing the PTE resources corresponding to pages preloaded via swapin. Export read_swap_cache_async to facilitate asynchronously reading pages from the swap partition using PTE-prefetch scanning. Bug: 415852480 Change-Id: Ie200656ec97b087936ca98c06b0a370f547d5d0a Signed-off-by: jianhua hao <haojianhua1@xiaomi.com> (cherry picked from commit 88cb3505ebf4d9eb1dd0d3c63403727eb4b239bd) (cherry picked from commit c5defcb638906800d4ab6b50e79e9f25538aefbd) |
||
|
|
58485ff1a7 |
Linux 6.1.141
Link: https://lore.kernel.org/r/20250602134319.723650984@linuxfoundation.org Tested-by: Peter Schneider <pschneider1968@googlemail.com> Tested-by: Florian Fainelli <florian.fainelli@broadcom.com> Tested-by: Ron Economos <re@w6rz.net> Tested-by: Linux Kernel Functional Testing <lkft@linaro.org> Tested-by: Shuah Khan <skhan@linuxfoundation.org> Tested-by: Mark Brown <broonie@kernel.org> Tested-by: Miguel Ojeda <ojeda@kernel.org> Tested-by: Hardik Garg <hargar@linux.microsoft.com> Tested-by: Salvatore Bonaccorso <carnil@debian.org> Tested-by: Jon Hunter <jonathanh@nvidia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
|
|
0fadcc2043 |
net: ethernet: ti: am65-cpsw: Lower random mac address error print to info
[ Upstream commit 50980d8da71a0c2e045e85bba93c0099ab73a209 ] Using random mac address is not an error since the driver continues to function, it should be informative that the system has not assigned a MAC address. This is inline with other drivers such as ax88796c, dm9051 etc. Drop the error level to info level. Signed-off-by: Nishanth Menon <nm@ti.com> Reviewed-by: Simon Horman <horms@kernel.org> Reviewed-by: Roger Quadros <rogerq@kernel.org> Link: https://patch.msgid.link/20250516122655.442808-1-nm@ti.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org> |
||
|
|
12fd7e6a2c |
platform/x86: thinkpad_acpi: Ignore battery threshold change event notification
[ Upstream commit 29e4e6b4235fefa5930affb531fe449cac330a72 ] If user modifies the battery charge threshold an ACPI event is generated. Confirmed with Lenovo FW team this is only generated on user event. As no action is needed, ignore the event and prevent spurious kernel logs. Reported-by: Derek Barbosa <debarbos@redhat.com> Closes: https://lore.kernel.org/platform-driver-x86/7e9a1c47-5d9c-4978-af20-3949d53fb5dc@app.fastmail.com/T/#m5f5b9ae31d3fbf30d7d9a9d76c15fb3502dfd903 Signed-off-by: Mark Pearson <mpearson-lenovo@squebb.ca> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Armin Wolf <W_Armin@gmx.de> Link: https://lore.kernel.org/r/20250517023348.2962591-1-mpearson-lenovo@squebb.ca Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org> |
||
|
|
5d286f3cad |
platform/x86: fujitsu-laptop: Support Lifebook S2110 hotkeys
[ Upstream commit a7e255ff9fe4d9b8b902023aaf5b7a673786bb50 ] The S2110 has an additional set of media playback control keys enabled by a hardware toggle button that switches the keys between "Application" and "Player" modes. Toggling "Player" mode just shifts the scancode of each hotkey up by 4. Add defines for new scancodes, and a keymap and dmi id for the S2110. Tested on a Fujitsu Lifebook S2110. Signed-off-by: Valtteri Koskivuori <vkoskiv@gmail.com> Acked-by: Jonathan Woithe <jwoithe@just42.net> Link: https://lore.kernel.org/r/20250509184251.713003-1-vkoskiv@gmail.com Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org> |
||
|
|
dcabad63e0 |
NFS: Avoid flushing data while holding directory locks in nfs_rename()
[ Upstream commit dcd21b609d4abc7303f8683bce4f35d78d7d6830 ] The Linux client assumes that all filehandles are non-volatile for renames within the same directory (otherwise sillyrename cannot work). However, the existence of the Linux 'subtree_check' export option has meant that nfs_rename() has always assumed it needs to flush writes before attempting to rename. Since NFSv4 does allow the client to query whether or not the server exhibits this behaviour, and since knfsd does actually set the appropriate flag when 'subtree_check' is enabled on an export, it should be OK to optimise away the write flushing behaviour in the cases where it is clearly not needed. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org> |
||
|
|
e1143267e9 |
nvme-pci: add NVME_QUIRK_NO_DEEPEST_PS quirk for SOLIDIGM P44 Pro
[ Upstream commit e765bf89f42b5c82132a556b630affeb82b2a21f ] This commit adds the NVME_QUIRK_NO_DEEPEST_PS quirk for device [126f:2262], which belongs to device SOLIDIGM P44 Pro SSDPFKKW020X7 The device frequently have trouble exiting the deepest power state (5), resulting in the entire disk being unresponsive. Verified by setting nvme_core.default_ps_max_latency_us=10000 and observing the expected behavior. Signed-off-by: Ilya Guterman <amfernusus@gmail.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Sasha Levin <sashal@kernel.org> |
||
|
|
d8f13a8aef |
spi: spi-sun4i: fix early activation
[ Upstream commit fb98bd0a13de2c9d96cb5c00c81b5ca118ac9d71 ] The SPI interface is activated before the CPOL setting is applied. In that moment, the clock idles high and CS goes low. After a short delay, CPOL and other settings are applied, which may cause the clock to change state and idle low. This transition is not part of a clock cycle, and it can confuse the receiving device. To prevent this unexpected transition, activate the interface while CPOL and the other settings are being applied. Signed-off-by: Alessandro Grassi <alessandro.grassi@mailbox.org> Link: https://patch.msgid.link/20250502095520.13825-1-alessandro.grassi@mailbox.org Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org> |
||
|
|
8f55d71b57 |
um: let 'make clean' properly clean underlying SUBARCH as well
[ Upstream commit ab09da75700e9d25c7dfbc7f7934920beb5e39b9 ] Building the kernel with O= is affected by stale in-tree build artifacts. So, if the source tree is not clean, Kbuild displays the following: $ make ARCH=um O=build defconfig make[1]: Entering directory '/.../linux/build' *** *** The source tree is not clean, please run 'make ARCH=um mrproper' *** in /.../linux *** make[2]: *** [/.../linux/Makefile:673: outputmakefile] Error 1 make[1]: *** [/.../linux/Makefile:248: __sub-make] Error 2 make[1]: Leaving directory '/.../linux/build' make: *** [Makefile:248: __sub-make] Error 2 Usually, running 'make mrproper' is sufficient for cleaning the source tree for out-of-tree builds. However, building UML generates build artifacts not only in arch/um/, but also in the SUBARCH directory (i.e., arch/x86/). If in-tree stale files remain under arch/x86/, Kbuild will reuse them instead of creating new ones under the specified build directory. This commit makes 'make ARCH=um clean' recurse into the SUBARCH directory. Reported-by: Shuah Khan <skhan@linuxfoundation.org> Closes: https://lore.kernel.org/lkml/20250502172459.14175-1-skhan@linuxfoundation.org/ Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Acked-by: Johannes Berg <johannes@sipsolutions.net> Reviewed-by: David Gow <davidgow@google.com> Reviewed-by: Shuah Khan <skhan@linuxfoundation.org> Signed-off-by: Sasha Levin <sashal@kernel.org> |
||
|
|
fe4fb4134f |
platform/x86: thinkpad_acpi: Support also NEC Lavie X1475JAS
[ Upstream commit a032f29a15412fab9f4352e0032836d51420a338 ] Change get_thinkpad_model_data() to check for additional vendor name "NEC" in order to support NEC Lavie X1475JAS notebook (and perhaps more). The reason of this works with minimal changes is because NEC Lavie X1475JAS is a Thinkpad inside. ACPI dumps reveals its OEM ID to be "LENOVO", BIOS version "R2PET30W" matches typical Lenovo BIOS version, the existence of HKEY of LEN0268, with DMI fw string is "R2PHT24W". I compiled and tested with my own machine, attached the dmesg below as proof of work: [ 6.288932] thinkpad_acpi: ThinkPad ACPI Extras v0.26 [ 6.288937] thinkpad_acpi: http://ibm-acpi.sf.net/ [ 6.288938] thinkpad_acpi: ThinkPad BIOS R2PET30W (1.11 ), EC R2PHT24W [ 6.307000] thinkpad_acpi: radio switch found; radios are enabled [ 6.307030] thinkpad_acpi: This ThinkPad has standard ACPI backlight brightness control, supported by the ACPI video driver [ 6.307033] thinkpad_acpi: Disabling thinkpad-acpi brightness events by default... [ 6.320322] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked [ 6.371963] thinkpad_acpi: secondary fan control detected & enabled [ 6.391922] thinkpad_acpi: battery 1 registered (start 0, stop 85, behaviours: 0x7) [ 6.398375] input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input13 Signed-off-by: John Chau <johnchau@0atlas.com> Link: https://lore.kernel.org/r/20250504165513.295135-1-johnchau@0atlas.com Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org> |
||
|
|
38e8c73f02 |
nfs: don't share pNFS DS connections between net namespaces
[ Upstream commit 6b9785dc8b13d9fb75ceec8cf4ea7ec3f3b1edbc ] Currently, different NFS clients can share the same DS connections, even when they are in different net namespaces. If a containerized client creates a DS connection, another container can find and use it. When the first client exits, the connection will close which can lead to stalls in other clients. Add a net namespace pointer to struct nfs4_pnfs_ds, and compare those value to the caller's netns in _data_server_lookup_locked() when searching for a nfs4_pnfs_ds to match. Reported-by: Omar Sandoval <osandov@osandov.com> Reported-by: Sargun Dillon <sargun@sargun.me> Closes: https://lore.kernel.org/linux-nfs/Z_ArpQC_vREh_hEA@telecaster/ Tested-by: Sargun Dillon <sargun@sargun.me> Signed-off-by: Jeff Layton <jlayton@kernel.org> Reviewed-by: Benjamin Coddington <bcodding@redhat.com> Link: https://lore.kernel.org/r/20250410-nfs-ds-netns-v2-1-f80b7979ba80@kernel.org Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> Signed-off-by: Sasha Levin <sashal@kernel.org> |
||
|
|
84b06a4293 |
HID: quirks: Add ADATA XPG alpha wireless mouse support
[ Upstream commit fa9fdeea1b7d6440c22efa6d59a769eae8bc89f1 ] This patch adds HID_QUIRK_ALWAYS_POLL for the ADATA XPG wireless gaming mouse (USB ID 125f:7505) and its USB dongle (USB ID 125f:7506). Without this quirk, the device does not generate input events properly. Signed-off-by: Milton Barrera <miltonjosue2001@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.com> Signed-off-by: Sasha Levin <sashal@kernel.org> |
||
|
|
ac19091288 |
coredump: hand a pidfd to the usermode coredump helper
commit b5325b2a270fcaf7b2a9a0f23d422ca8a5a8bdea upstream. Give userspace a way to instruct the kernel to install a pidfd into the usermode helper process. This makes coredump handling a lot more reliable for userspace. In parallel with this commit we already have systemd adding support for this in [1]. We create a pidfs file for the coredumping process when we process the corename pattern. When the usermode helper process is forked we then install the pidfs file as file descriptor three into the usermode helpers file descriptor table so it's available to the exec'd program. Since usermode helpers are either children of the system_unbound_wq workqueue or kthreadd we know that the file descriptor table is empty and can thus always use three as the file descriptor number. Note, that we'll install a pidfd for the thread-group leader even if a subthread is calling do_coredump(). We know that task linkage hasn't been removed due to delay_group_leader() and even if this @current isn't the actual thread-group leader we know that the thread-group leader cannot be reaped until @current has exited. [brauner: This is a backport for the v6.1 series. Upstream has significantly changed and backporting all that infra is a non-starter. So simply backport the pidfd_prepare() helper and waste the file descriptor we allocated. Then we minimally massage the umh coredump setup code.] Link: https://github.com/systemd/systemd/pull/37125 [1] Link: https://lore.kernel.org/20250414-work-coredump-v2-3-685bf231f828@kernel.org Tested-by: Luca Boccassi <luca.boccassi@gmail.com> Reviewed-by: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Christian Brauner <brauner@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
|
|
b2a5bf1cf4 |
fork: use pidfd_prepare()
commit
|
||
|
|
1ced79b25f |
pid: add pidfd_prepare()
commit
|
||
|
|
fc7846a7d5 |
coredump: fix error handling for replace_fd()
commit 95c5f43181fe9c1b5e5a4bd3281c857a5259991f upstream. The replace_fd() helper returns the file descriptor number on success and a negative error code on failure. The current error handling in umh_pipe_setup() only works because the file descriptor that is replaced is zero but that's pretty volatile. Explicitly check for a negative error code. Link: https://lore.kernel.org/20250414-work-coredump-v2-2-685bf231f828@kernel.org Tested-by: Luca Boccassi <luca.boccassi@gmail.com> Reviewed-by: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Christian Brauner <brauner@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |