From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, Adrian Huang <ahuang12@lenovo.com>,
"Uladzislau Rezki (Sony)" <urezki@gmail.com>,
Jiwei Sun <sunjw10@lenovo.com>, Baoquan He <bhe@redhat.com>,
Alexander Potapenko <glider@google.com>,
Andrey Konovalov <andreyknvl@gmail.com>,
Andrey Ryabinin <ryabinin.a.a@gmail.com>,
Christoph Hellwig <hch@infradead.org>,
Dmitry Vyukov <dvyukov@google.com>,
Vincenzo Frascino <vincenzo.frascino@arm.com>,
Andrew Morton <akpm@linux-foundation.org>
Subject: [PATCH 6.12 093/146] mm/vmalloc: combine all TLB flush operations of KASAN shadow virtual address into one operation
Date: Fri, 6 Dec 2024 15:37:04 +0100 [thread overview]
Message-ID: <20241206143531.236414664@linuxfoundation.org> (raw)
In-Reply-To: <20241206143527.654980698@linuxfoundation.org>
6.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Adrian Huang <ahuang12@lenovo.com>
commit 9e9e085effe9b7e342138fde3cf8577d22509932 upstream.
When compiling kernel source 'make -j $(nproc)' with the up-and-running
KASAN-enabled kernel on a 256-core machine, the following soft lockup is
shown:
watchdog: BUG: soft lockup - CPU#28 stuck for 22s! [kworker/28:1:1760]
CPU: 28 PID: 1760 Comm: kworker/28:1 Kdump: loaded Not tainted 6.10.0-rc5 #95
Workqueue: events drain_vmap_area_work
RIP: 0010:smp_call_function_many_cond+0x1d8/0xbb0
Code: 38 c8 7c 08 84 c9 0f 85 49 08 00 00 8b 45 08 a8 01 74 2e 48 89 f1 49 89 f7 48 c1 e9 03 41 83 e7 07 4c 01 e9 41 83 c7 03 f3 90 <0f> b6 01 41 38 c7 7c 08 84 c0 0f 85 d4 06 00 00 8b 45 08 a8 01 75
RSP: 0018:ffffc9000cb3fb60 EFLAGS: 00000202
RAX: 0000000000000011 RBX: ffff8883bc4469c0 RCX: ffffed10776e9949
RDX: 0000000000000002 RSI: ffff8883bb74ca48 RDI: ffffffff8434dc50
RBP: ffff8883bb74ca40 R08: ffff888103585dc0 R09: ffff8884533a1800
R10: 0000000000000004 R11: ffffffffffffffff R12: ffffed1077888d39
R13: dffffc0000000000 R14: ffffed1077888d38 R15: 0000000000000003
FS: 0000000000000000(0000) GS:ffff8883bc400000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00005577b5c8d158 CR3: 0000000004850000 CR4: 0000000000350ef0
Call Trace:
<IRQ>
? watchdog_timer_fn+0x2cd/0x390
? __pfx_watchdog_timer_fn+0x10/0x10
? __hrtimer_run_queues+0x300/0x6d0
? sched_clock_cpu+0x69/0x4e0
? __pfx___hrtimer_run_queues+0x10/0x10
? srso_return_thunk+0x5/0x5f
? ktime_get_update_offsets_now+0x7f/0x2a0
? srso_return_thunk+0x5/0x5f
? srso_return_thunk+0x5/0x5f
? hrtimer_interrupt+0x2ca/0x760
? __sysvec_apic_timer_interrupt+0x8c/0x2b0
? sysvec_apic_timer_interrupt+0x6a/0x90
</IRQ>
<TASK>
? asm_sysvec_apic_timer_interrupt+0x16/0x20
? smp_call_function_many_cond+0x1d8/0xbb0
? __pfx_do_kernel_range_flush+0x10/0x10
on_each_cpu_cond_mask+0x20/0x40
flush_tlb_kernel_range+0x19b/0x250
? srso_return_thunk+0x5/0x5f
? kasan_release_vmalloc+0xa7/0xc0
purge_vmap_node+0x357/0x820
? __pfx_purge_vmap_node+0x10/0x10
__purge_vmap_area_lazy+0x5b8/0xa10
drain_vmap_area_work+0x21/0x30
process_one_work+0x661/0x10b0
worker_thread+0x844/0x10e0
? srso_return_thunk+0x5/0x5f
? __kthread_parkme+0x82/0x140
? __pfx_worker_thread+0x10/0x10
kthread+0x2a5/0x370
? __pfx_kthread+0x10/0x10
ret_from_fork+0x30/0x70
? __pfx_kthread+0x10/0x10
ret_from_fork_asm+0x1a/0x30
</TASK>
Debugging Analysis:
1. The following ftrace log shows that the lockup CPU spends too much
time iterating vmap_nodes and flushing TLB when purging vm_area
structures. (Some info is trimmed).
kworker: funcgraph_entry: | drain_vmap_area_work() {
kworker: funcgraph_entry: | mutex_lock() {
kworker: funcgraph_entry: 1.092 us | __cond_resched();
kworker: funcgraph_exit: 3.306 us | }
... ...
kworker: funcgraph_entry: | flush_tlb_kernel_range() {
... ...
kworker: funcgraph_exit: # 7533.649 us | }
... ...
kworker: funcgraph_entry: 2.344 us | mutex_unlock();
kworker: funcgraph_exit: $ 23871554 us | }
The drain_vmap_area_work() spends over 23 seconds.
There are 2805 flush_tlb_kernel_range() calls in the ftrace log.
* One is called in __purge_vmap_area_lazy().
* Others are called by purge_vmap_node->kasan_release_vmalloc.
purge_vmap_node() iteratively releases kasan vmalloc
allocations and flushes TLB for each vmap_area.
- [Rough calculation] Each flush_tlb_kernel_range() runs
about 7.5ms.
-- 2804 * 7.5ms = 21.03 seconds.
-- That's why a soft lock is triggered.
2. Extending the soft lockup time can work around the issue (For example,
# echo 60 > /proc/sys/kernel/watchdog_thresh). This confirms the
above-mentioned speculation: drain_vmap_area_work() spends too much
time.
If we combine all TLB flush operations of the KASAN shadow virtual
address into one operation in the call path
'purge_vmap_node()->kasan_release_vmalloc()', the running time of
drain_vmap_area_work() can be saved greatly. The idea is from the
flush_tlb_kernel_range() call in __purge_vmap_area_lazy(). And, the
soft lockup won't be triggered.
Here is the test result based on 6.10:
[6.10 wo/ the patch]
1. ftrace latency profiling (record a trace if the latency > 20s).
echo 20000000 > /sys/kernel/debug/tracing/tracing_thresh
echo drain_vmap_area_work > /sys/kernel/debug/tracing/set_graph_function
echo function_graph > /sys/kernel/debug/tracing/current_tracer
echo 1 > /sys/kernel/debug/tracing/tracing_on
2. Run `make -j $(nproc)` to compile the kernel source
3. Once the soft lockup is reproduced, check the ftrace log:
cat /sys/kernel/debug/tracing/trace
# tracer: function_graph
#
# CPU DURATION FUNCTION CALLS
# | | | | | | |
76) $ 50412985 us | } /* __purge_vmap_area_lazy */
76) $ 50412997 us | } /* drain_vmap_area_work */
76) $ 29165911 us | } /* __purge_vmap_area_lazy */
76) $ 29165926 us | } /* drain_vmap_area_work */
91) $ 53629423 us | } /* __purge_vmap_area_lazy */
91) $ 53629434 us | } /* drain_vmap_area_work */
91) $ 28121014 us | } /* __purge_vmap_area_lazy */
91) $ 28121026 us | } /* drain_vmap_area_work */
[6.10 w/ the patch]
1. Repeat step 1-2 in "[6.10 wo/ the patch]"
2. The soft lockup is not triggered and ftrace log is empty.
cat /sys/kernel/debug/tracing/trace
# tracer: function_graph
#
# CPU DURATION FUNCTION CALLS
# | | | | | | |
3. Setting 'tracing_thresh' to 10/5 seconds does not get any ftrace
log.
4. Setting 'tracing_thresh' to 1 second gets ftrace log.
cat /sys/kernel/debug/tracing/trace
# tracer: function_graph
#
# CPU DURATION FUNCTION CALLS
# | | | | | | |
23) $ 1074942 us | } /* __purge_vmap_area_lazy */
23) $ 1074950 us | } /* drain_vmap_area_work */
The worst execution time of drain_vmap_area_work() is about 1 second.
Link: https://lore.kernel.org/lkml/ZqFlawuVnOMY2k3E@pc638.lan/
Link: https://lkml.kernel.org/r/20240726165246.31326-1-ahuang12@lenovo.com
Fixes: 282631cb2447 ("mm: vmalloc: remove global purge_vmap_area_root rb-tree")
Signed-off-by: Adrian Huang <ahuang12@lenovo.com>
Co-developed-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
Tested-by: Jiwei Sun <sunjw10@lenovo.com>
Reviewed-by: Baoquan He <bhe@redhat.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrey Konovalov <andreyknvl@gmail.com>
Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
include/linux/kasan.h | 12 +++++++++---
mm/kasan/shadow.c | 14 ++++++++++----
mm/vmalloc.c | 34 ++++++++++++++++++++++++++--------
3 files changed, 45 insertions(+), 15 deletions(-)
diff --git a/include/linux/kasan.h b/include/linux/kasan.h
index 00a3bf7c0d8f..6bbfc8aa42e8 100644
--- a/include/linux/kasan.h
+++ b/include/linux/kasan.h
@@ -29,6 +29,9 @@ typedef unsigned int __bitwise kasan_vmalloc_flags_t;
#define KASAN_VMALLOC_VM_ALLOC ((__force kasan_vmalloc_flags_t)0x02u)
#define KASAN_VMALLOC_PROT_NORMAL ((__force kasan_vmalloc_flags_t)0x04u)
+#define KASAN_VMALLOC_PAGE_RANGE 0x1 /* Apply exsiting page range */
+#define KASAN_VMALLOC_TLB_FLUSH 0x2 /* TLB flush */
+
#if defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)
#include <linux/pgtable.h>
@@ -564,7 +567,8 @@ void kasan_populate_early_vm_area_shadow(void *start, unsigned long size);
int kasan_populate_vmalloc(unsigned long addr, unsigned long size);
void kasan_release_vmalloc(unsigned long start, unsigned long end,
unsigned long free_region_start,
- unsigned long free_region_end);
+ unsigned long free_region_end,
+ unsigned long flags);
#else /* CONFIG_KASAN_GENERIC || CONFIG_KASAN_SW_TAGS */
@@ -579,7 +583,8 @@ static inline int kasan_populate_vmalloc(unsigned long start,
static inline void kasan_release_vmalloc(unsigned long start,
unsigned long end,
unsigned long free_region_start,
- unsigned long free_region_end) { }
+ unsigned long free_region_end,
+ unsigned long flags) { }
#endif /* CONFIG_KASAN_GENERIC || CONFIG_KASAN_SW_TAGS */
@@ -614,7 +619,8 @@ static inline int kasan_populate_vmalloc(unsigned long start,
static inline void kasan_release_vmalloc(unsigned long start,
unsigned long end,
unsigned long free_region_start,
- unsigned long free_region_end) { }
+ unsigned long free_region_end,
+ unsigned long flags) { }
static inline void *kasan_unpoison_vmalloc(const void *start,
unsigned long size,
diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
index d6210ca48dda..88d1c9dcb507 100644
--- a/mm/kasan/shadow.c
+++ b/mm/kasan/shadow.c
@@ -489,7 +489,8 @@ static int kasan_depopulate_vmalloc_pte(pte_t *ptep, unsigned long addr,
*/
void kasan_release_vmalloc(unsigned long start, unsigned long end,
unsigned long free_region_start,
- unsigned long free_region_end)
+ unsigned long free_region_end,
+ unsigned long flags)
{
void *shadow_start, *shadow_end;
unsigned long region_start, region_end;
@@ -522,12 +523,17 @@ void kasan_release_vmalloc(unsigned long start, unsigned long end,
__memset(shadow_start, KASAN_SHADOW_INIT, shadow_end - shadow_start);
return;
}
- apply_to_existing_page_range(&init_mm,
+
+
+ if (flags & KASAN_VMALLOC_PAGE_RANGE)
+ apply_to_existing_page_range(&init_mm,
(unsigned long)shadow_start,
size, kasan_depopulate_vmalloc_pte,
NULL);
- flush_tlb_kernel_range((unsigned long)shadow_start,
- (unsigned long)shadow_end);
+
+ if (flags & KASAN_VMALLOC_TLB_FLUSH)
+ flush_tlb_kernel_range((unsigned long)shadow_start,
+ (unsigned long)shadow_end);
}
}
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index 634162271c00..5480b77f4167 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -2182,6 +2182,25 @@ decay_va_pool_node(struct vmap_node *vn, bool full_decay)
reclaim_list_global(&decay_list);
}
+static void
+kasan_release_vmalloc_node(struct vmap_node *vn)
+{
+ struct vmap_area *va;
+ unsigned long start, end;
+
+ start = list_first_entry(&vn->purge_list, struct vmap_area, list)->va_start;
+ end = list_last_entry(&vn->purge_list, struct vmap_area, list)->va_end;
+
+ list_for_each_entry(va, &vn->purge_list, list) {
+ if (is_vmalloc_or_module_addr((void *) va->va_start))
+ kasan_release_vmalloc(va->va_start, va->va_end,
+ va->va_start, va->va_end,
+ KASAN_VMALLOC_PAGE_RANGE);
+ }
+
+ kasan_release_vmalloc(start, end, start, end, KASAN_VMALLOC_TLB_FLUSH);
+}
+
static void purge_vmap_node(struct work_struct *work)
{
struct vmap_node *vn = container_of(work,
@@ -2190,20 +2209,17 @@ static void purge_vmap_node(struct work_struct *work)
struct vmap_area *va, *n_va;
LIST_HEAD(local_list);
+ if (IS_ENABLED(CONFIG_KASAN_VMALLOC))
+ kasan_release_vmalloc_node(vn);
+
vn->nr_purged = 0;
list_for_each_entry_safe(va, n_va, &vn->purge_list, list) {
unsigned long nr = va_size(va) >> PAGE_SHIFT;
- unsigned long orig_start = va->va_start;
- unsigned long orig_end = va->va_end;
unsigned int vn_id = decode_vn_id(va->flags);
list_del_init(&va->list);
- if (is_vmalloc_or_module_addr((void *)orig_start))
- kasan_release_vmalloc(orig_start, orig_end,
- va->va_start, va->va_end);
-
nr_purged_pages += nr;
vn->nr_purged++;
@@ -4784,7 +4800,8 @@ struct vm_struct **pcpu_get_vm_areas(const unsigned long *offsets,
&free_vmap_area_list);
if (va)
kasan_release_vmalloc(orig_start, orig_end,
- va->va_start, va->va_end);
+ va->va_start, va->va_end,
+ KASAN_VMALLOC_PAGE_RANGE | KASAN_VMALLOC_TLB_FLUSH);
vas[area] = NULL;
}
@@ -4834,7 +4851,8 @@ struct vm_struct **pcpu_get_vm_areas(const unsigned long *offsets,
&free_vmap_area_list);
if (va)
kasan_release_vmalloc(orig_start, orig_end,
- va->va_start, va->va_end);
+ va->va_start, va->va_end,
+ KASAN_VMALLOC_PAGE_RANGE | KASAN_VMALLOC_TLB_FLUSH);
vas[area] = NULL;
kfree(vms[area]);
}
--
2.47.1
next prev parent reply other threads:[~2024-12-06 14:43 UTC|newest]
Thread overview: 157+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-06 14:35 [PATCH 6.12 000/146] 6.12.4-rc1 review Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 001/146] xfs: remove unknown compat feature check in superblock write validation Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 002/146] quota: flush quota_release_work upon quota writeback Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 003/146] btrfs: drop unused parameter file_offset from btrfs_encoded_read_regular_fill_pages() Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 004/146] btrfs: change btrfs_encoded_read() so that reading of extent is done by caller Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 005/146] btrfs: move priv off stack in btrfs_encoded_read_regular_fill_pages() Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 006/146] btrfs: fix use-after-free in btrfs_encoded_read_endio() Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 007/146] btrfs: dont loop for nowait writes when checking for cross references Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 008/146] btrfs: add a sanity check for btrfs root in btrfs_search_slot() Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 009/146] btrfs: ref-verify: fix use-after-free after invalid ref action Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 010/146] iommu/tegra241-cmdqv: Fix unused variable warning Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 011/146] netkit: Add option for scrubbing skb meta data Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 012/146] md/raid5: Wait sync io to finish before changing group cnt Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 013/146] md/md-bitmap: Add missing destroy_work_on_stack() Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 014/146] arm64: dts: allwinner: pinephone: Add mount matrix to accelerometer Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 015/146] arm64: dts: mediatek: mt8186-corsola: Fix GPU supply coupling max-spread Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 016/146] arm64: dts: freescale: imx8mm-verdin: Fix SD regulator startup delay Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 017/146] arm64: dts: ti: k3-am62-verdin: " Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 018/146] arm64: dts: mediatek: mt8186-corsola: Fix IT6505 reset line polarity Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 019/146] media: qcom: camss: fix error path on configuration of power domains Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 020/146] media: amphion: Set video drvdata before register video device Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 021/146] media: imx-jpeg: " Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 022/146] media: mtk-jpeg: Fix null-ptr-deref during unload module Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 023/146] media: i2c: dw9768: Fix pm_runtime_set_suspended() with runtime pm enabled Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 024/146] arm64: dts: freescale: imx8mp-verdin: Fix SD regulator startup delay Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 025/146] media: i2c: tc358743: Fix crash in the probe error path when using polling Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 026/146] media: imx-jpeg: Ensure power suppliers be suspended before detach them Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 027/146] media: platform: rga: fix 32-bit DMA limitation Greg Kroah-Hartman
2024-12-06 14:35 ` [PATCH 6.12 028/146] media: verisilicon: av1: Fix reference video buffer pointer assignment Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 029/146] media: ts2020: fix null-ptr-deref in ts2020_probe() Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 030/146] media: platform: exynos4-is: Fix an OF node reference leak in fimc_md_is_isp_available Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 031/146] efi/libstub: Free correct pointer on failure Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 032/146] net: phy: dp83869: fix status reporting for 1000base-x autonegotiation Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 033/146] media: amphion: Fix pm_runtime_set_suspended() with runtime pm enabled Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 034/146] media: venus: " Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 035/146] media: gspca: ov534-ov772x: Fix off-by-one error in set_frame_rate() Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 036/146] media: ov08x40: Fix burst write sequence Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 037/146] media: platform: allegro-dvt: Fix possible memory leak in allocate_buffers_internal() Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 038/146] media: uvcvideo: Stop stream during unregister Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 039/146] media: uvcvideo: Require entities to have a non-zero unique ID Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 040/146] tracing: Fix function timing profiler to initialize hashtable Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 041/146] kunit: Fix potential null dereference in kunit_device_driver_test() Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 042/146] kunit: string-stream: Fix a UAF bug in kunit_init_suite() Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 043/146] ovl: Filter invalid inodes with missing lookup function Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 044/146] maple_tree: refine mas_store_root() on storing NULL Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 045/146] ftrace: Fix regression with module command in stack_trace_filter Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 046/146] vmstat: call fold_vm_zone_numa_events() before show per zone NUMA event Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 047/146] zram: clear IDLE flag after recompression Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 048/146] iommu/io-pgtable-arm: Fix stage-2 map/unmap for concatenated tables Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 049/146] iommu/arm-smmu: Defer probe of clients after smmu device bound Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 050/146] leds: lp55xx: Remove redundant test for invalid channel number Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 051/146] mm/damon/vaddr: fix issue in damon_va_evenly_split_region() Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 052/146] powerpc/vdso: Drop -mstack-protector-guard flags in 32-bit files with clang Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 053/146] cpufreq: scmi: Fix cleanup path when boost enablement fails Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 054/146] clk: qcom: gcc-qcs404: fix initial rate of GPLL3 Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 055/146] ad7780: fix division by zero in ad7780_write_raw() Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 056/146] nvmem: core: Check read_only flag for force_ro in bin_attr_nvmem_write() Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 057/146] driver core: fw_devlink: Stop trying to optimize cycle detection logic Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 058/146] spmi: pmic-arb: fix return path in for_each_available_child_of_node() Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 059/146] ARM: 9429/1: ioremap: Sync PGDs for VMALLOC shadow Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 060/146] s390/entry: Mark IRQ entries to fix stack depot warnings Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 061/146] ARM: 9430/1: entry: Do a dummy read from VMAP shadow Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 062/146] ARM: 9431/1: mm: Pair atomic_set_release() with _read_acquire() Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 063/146] net: stmmac: set initial EEE policy configuration Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 064/146] vfio/qat: fix overflow check in qat_vf_resume_write() Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 065/146] PCI: qcom: Disable ASPM L0s for X1E80100 Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 066/146] perf jevents: fix breakage when do perf stat on system metric Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 067/146] remoteproc: qcom_q6v5_pas: disable auto boot for wpss Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 068/146] PCI: imx6: Fix suspend/resume support on i.MX6QDL Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 069/146] mm/slub: Avoid list corruption when removing a slab from the full list Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 070/146] f2fs: fix to drop all discards after creating snapshot on lvm device Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 071/146] ceph: extract entity name from device id Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 072/146] ceph: pass cred pointer to ceph_mds_auth_match() Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 073/146] ceph: fix cred leak in ceph_mds_check_access() Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 074/146] mtd: spinand: winbond: Fix 512GW and 02JW OOB layout Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 075/146] mtd: spinand: winbond: Fix 512GW, 01GW, 01JW and 02JW ECC information Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 076/146] util_macros.h: fix/rework find_closest() macros Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 077/146] s390/stacktrace: Use break instead of return statement Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 078/146] scsi: ufs: exynos: Add check inside exynos_ufs_config_smu() Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 079/146] scsi: ufs: exynos: Fix hibern8 notify callbacks Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 080/146] i3c: master: svc: Fix pm_runtime_set_suspended() with runtime pm enabled Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 081/146] i3c: master: Fix miss free init_dyn_addr at i3c_master_put_i3c_addrs() Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 082/146] i3c: master: svc: fix possible assignment of the same address to two devices Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 083/146] i3c: master: svc: Modify enabled_events bit 7:0 to act as IBI enable counter Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 084/146] PCI: keystone: Set mode as Root Complex for "ti,keystone-pcie" compatible Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 085/146] PCI: keystone: Add link up check to ks_pcie_other_map_bus() Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 086/146] PCI: endpoint: Fix PCI domain ID release in pci_epc_destroy() Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 087/146] PCI: endpoint: Clear secondary (not primary) EPC in pci_epc_remove_epf() Greg Kroah-Hartman
2024-12-06 14:36 ` [PATCH 6.12 088/146] slab: Fix too strict alignment check in create_cache() Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 089/146] fs/proc/kcore.c: Clear ret value in read_kcore_iter after successful iov_iter_zero Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 090/146] thermal: int3400: Fix reading of current_uuid for active policy Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 091/146] leds: flash: mt6360: Fix device_for_each_child_node() refcounting in error paths Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 092/146] ovl: properly handle large files in ovl_security_fileattr Greg Kroah-Hartman
2024-12-06 14:37 ` Greg Kroah-Hartman [this message]
2024-12-06 14:37 ` [PATCH 6.12 094/146] dm: Fix typo in error message Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 095/146] dm thin: Add missing destroy_work_on_stack() Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 096/146] PCI: dwc: ep: Fix advertised resizable BAR size regression Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 097/146] PCI: of_property: Assign PCI instead of CPU bus address to dynamic PCI nodes Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 098/146] PCI: rockchip-ep: Fix address translation unit programming Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 099/146] nfsd: make sure exp active before svc_export_show Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 100/146] nfsd: fix nfs4_openowner leak when concurrent nfsd4_open occur Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 101/146] iio: accel: kx022a: Fix raw read format Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 102/146] iio: invensense: fix multiple odr switch when FIFO is off Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 103/146] iio: Fix fwnode_handle in __fwnode_iio_channel_get_by_name() Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 104/146] iio: adc: ad7923: Fix buffer overflow for tx_buf and ring_xfer Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 105/146] iio: gts: fix infinite loop for gain_to_scaletables() Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 106/146] powerpc: Fix stack protector Kconfig test for clang Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 107/146] powerpc: Adjust adding stack protector flags to KBUILD_CLAGS " Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 108/146] binder: fix node UAF in binder_add_freeze_work() Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 109/146] binder: fix OOB " Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 110/146] binder: fix freeze UAF in binder_release_work() Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 111/146] binder: fix BINDER_WORK_FROZEN_BINDER debug logs Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 112/146] binder: fix BINDER_WORK_CLEAR_FREEZE_NOTIFICATION " Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 113/146] binder: allow freeze notification for dead nodes Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 114/146] binder: fix memleak of proc->delivered_freeze Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 115/146] binder: add delivered_freeze to debugfs output Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 116/146] dt-bindings: net: fec: add pps channel property Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 117/146] net: fec: refactor PPS channel configuration Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 118/146] net: fec: make PPS channel configurable Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 119/146] drm/panic: Fix uninitialized spinlock acquisition with CONFIG_DRM_PANIC=n Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 120/146] drm/sti: avoid potential dereference of error pointers in sti_hqvdp_atomic_check Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 121/146] drm/sti: avoid potential dereference of error pointers in sti_gdp_atomic_check Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 122/146] drm: panel: jd9365da-h3: Remove unused num_init_cmds structure member Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 123/146] drm/sti: avoid potential dereference of error pointers Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 124/146] drm/fbdev-dma: Select FB_DEFERRED_IO Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 125/146] drm/mediatek: Fix child node refcount handling in early exit Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 126/146] drm/bridge: it6505: Fix inverted reset polarity Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 127/146] drm/etnaviv: flush shader L1 cache after user commandstream Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 128/146] drm: xlnx: zynqmp_dpsub: fix hotplug detection Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 129/146] drm/xe/xe_guc_ads: save/restore OA registers and allowlist regs Greg Kroah-Hartman
2024-12-06 17:03 ` Dixit, Ashutosh
2024-12-07 6:35 ` Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 130/146] drm/xe/migrate: fix pat index usage Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 131/146] Revert "drm/radeon: Delay Connector detecting when HPD singals is unstable" Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 132/146] drm/xe/migrate: use XE_BO_FLAG_PAGETABLE Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 133/146] drm/xe/guc_submit: fix race around suspend_pending Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 134/146] drm/amdkfd: Use the correct wptr size Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 135/146] drm/amdgpu/pm: add gen5 display to the user on smu v14.0.2/3 Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 136/146] drm/amd: Add some missing straps from NBIO 7.11.0 Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 137/146] drm/amdgpu: fix usage slab after free Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 138/146] drm/amd/pm: skip setting the power source on smu v14.0.2/3 Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 139/146] drm/amd: Fix initialization mistake for NBIO 7.11 devices Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 140/146] drm/amd/pm: update current_socclk and current_uclk in gpu_metrics on smu v13.0.7 Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 141/146] drm/amd/pm: disable pcie speed switching on Intel platform for smu v14.0.2/3 Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 142/146] drm/amd/pm: Remove arcturus min power limit Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 143/146] drm/amd/display: Fix handling of plane refcount Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 144/146] drm/amd/display: update pipe selection policy to check head pipe Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 145/146] drm/amd/display: Remove PIPE_DTO_SRC_SEL programming from set_dtbclk_dto Greg Kroah-Hartman
2024-12-06 14:37 ` [PATCH 6.12 146/146] posix-timers: Target group sigqueue to current task only if not exiting Greg Kroah-Hartman
2024-12-06 16:34 ` [PATCH 6.12 000/146] 6.12.4-rc1 review Luna Jernberg
2024-12-06 18:05 ` Mark Brown
2024-12-06 23:08 ` Florian Fainelli
2024-12-06 23:58 ` Peter Schneider
2024-12-07 5:04 ` Takeshi Ogasawara
2024-12-07 7:45 ` Ron Economos
2024-12-07 9:02 ` Muhammad Usama Anjum
2024-12-07 19:30 ` Naresh Kamboju
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241206143531.236414664@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=ahuang12@lenovo.com \
--cc=akpm@linux-foundation.org \
--cc=andreyknvl@gmail.com \
--cc=bhe@redhat.com \
--cc=dvyukov@google.com \
--cc=glider@google.com \
--cc=hch@infradead.org \
--cc=patches@lists.linux.dev \
--cc=ryabinin.a.a@gmail.com \
--cc=stable@vger.kernel.org \
--cc=sunjw10@lenovo.com \
--cc=urezki@gmail.com \
--cc=vincenzo.frascino@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox