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: 158+ 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 ` 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.