From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
Tejun Heo <tj@kernel.org>,
Yonghong Song <yonghong.song@linux.dev>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Sasha Levin <sashal@kernel.org>,
reinette.chatre@intel.com, tglx@linutronix.de, mingo@redhat.com,
bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org,
rafael@kernel.org, dakr@kernel.org, hannes@cmpxchg.org,
mkoutny@suse.com, ast@kernel.org, daniel@iogearbox.net,
andrii@kernel.org, eddyz87@gmail.com, shuah@kernel.org,
jolsa@kernel.org, alan.maguire@oracle.com,
cgroups@vger.kernel.org, bpf@vger.kernel.org,
linux-kselftest@vger.kernel.org
Subject: [PATCH AUTOSEL 6.12 486/486] kernfs: Use RCU to access kernfs_node::parent.
Date: Mon, 5 May 2025 18:39:22 -0400 [thread overview]
Message-ID: <20250505223922.2682012-486-sashal@kernel.org> (raw)
In-Reply-To: <20250505223922.2682012-1-sashal@kernel.org>
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
[ Upstream commit 633488947ef66b194377411322dc9e12aab79b65 ]
kernfs_rename_lock is used to obtain stable kernfs_node::{name|parent}
pointer. This is a preparation to access kernfs_node::parent under RCU
and ensure that the pointer remains stable under the RCU lifetime
guarantees.
For a complete path, as it is done in kernfs_path_from_node(), the
kernfs_rename_lock is still required in order to obtain a stable parent
relationship while computing the relevant node depth. This must not
change while the nodes are inspected in order to build the path.
If the kernfs user never moves the nodes (changes the parent) then the
kernfs_rename_lock is not required and the RCU guarantees are
sufficient. This "restriction" can be set with
KERNFS_ROOT_INVARIANT_PARENT. Otherwise the lock is required.
Rename kernfs_node::parent to kernfs_node::__parent to denote the RCU
access and use RCU accessor while accessing the node.
Make cgroup use KERNFS_ROOT_INVARIANT_PARENT since the parent here can
not change.
Acked-by: Tejun Heo <tj@kernel.org>
Cc: Yonghong Song <yonghong.song@linux.dev>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Link: https://lore.kernel.org/r/20250213145023.2820193-6-bigeasy@linutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
arch/x86/kernel/cpu/resctrl/rdtgroup.c | 65 +++++++++----
fs/kernfs/dir.c | 96 ++++++++++++-------
fs/kernfs/kernfs-internal.h | 32 ++++++-
fs/kernfs/mount.c | 10 +-
fs/kernfs/symlink.c | 23 ++---
fs/sysfs/file.c | 24 +++--
include/linux/kernfs.h | 10 +-
kernel/cgroup/cgroup-v1.c | 2 +-
kernel/cgroup/cgroup.c | 24 ++++-
.../selftests/bpf/progs/profiler.inc.h | 2 +-
10 files changed, 195 insertions(+), 93 deletions(-)
diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
index 2d48db66fca85..d4d7ccf1253b8 100644
--- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
+++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
@@ -948,10 +948,20 @@ static int rdt_last_cmd_status_show(struct kernfs_open_file *of,
return 0;
}
+static void *rdt_kn_parent_priv(struct kernfs_node *kn)
+{
+ /*
+ * The parent pointer is only valid within RCU section since it can be
+ * replaced.
+ */
+ guard(rcu)();
+ return rcu_dereference(kn->__parent)->priv;
+}
+
static int rdt_num_closids_show(struct kernfs_open_file *of,
struct seq_file *seq, void *v)
{
- struct resctrl_schema *s = of->kn->parent->priv;
+ struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
seq_printf(seq, "%u\n", s->num_closid);
return 0;
@@ -960,7 +970,7 @@ static int rdt_num_closids_show(struct kernfs_open_file *of,
static int rdt_default_ctrl_show(struct kernfs_open_file *of,
struct seq_file *seq, void *v)
{
- struct resctrl_schema *s = of->kn->parent->priv;
+ struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
struct rdt_resource *r = s->res;
seq_printf(seq, "%x\n", r->default_ctrl);
@@ -970,7 +980,7 @@ static int rdt_default_ctrl_show(struct kernfs_open_file *of,
static int rdt_min_cbm_bits_show(struct kernfs_open_file *of,
struct seq_file *seq, void *v)
{
- struct resctrl_schema *s = of->kn->parent->priv;
+ struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
struct rdt_resource *r = s->res;
seq_printf(seq, "%u\n", r->cache.min_cbm_bits);
@@ -980,7 +990,7 @@ static int rdt_min_cbm_bits_show(struct kernfs_open_file *of,
static int rdt_shareable_bits_show(struct kernfs_open_file *of,
struct seq_file *seq, void *v)
{
- struct resctrl_schema *s = of->kn->parent->priv;
+ struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
struct rdt_resource *r = s->res;
seq_printf(seq, "%x\n", r->cache.shareable_bits);
@@ -1004,7 +1014,7 @@ static int rdt_shareable_bits_show(struct kernfs_open_file *of,
static int rdt_bit_usage_show(struct kernfs_open_file *of,
struct seq_file *seq, void *v)
{
- struct resctrl_schema *s = of->kn->parent->priv;
+ struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
/*
* Use unsigned long even though only 32 bits are used to ensure
* test_bit() is used safely.
@@ -1086,7 +1096,7 @@ static int rdt_bit_usage_show(struct kernfs_open_file *of,
static int rdt_min_bw_show(struct kernfs_open_file *of,
struct seq_file *seq, void *v)
{
- struct resctrl_schema *s = of->kn->parent->priv;
+ struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
struct rdt_resource *r = s->res;
seq_printf(seq, "%u\n", r->membw.min_bw);
@@ -1096,7 +1106,7 @@ static int rdt_min_bw_show(struct kernfs_open_file *of,
static int rdt_num_rmids_show(struct kernfs_open_file *of,
struct seq_file *seq, void *v)
{
- struct rdt_resource *r = of->kn->parent->priv;
+ struct rdt_resource *r = rdt_kn_parent_priv(of->kn);
seq_printf(seq, "%d\n", r->num_rmid);
@@ -1106,7 +1116,7 @@ static int rdt_num_rmids_show(struct kernfs_open_file *of,
static int rdt_mon_features_show(struct kernfs_open_file *of,
struct seq_file *seq, void *v)
{
- struct rdt_resource *r = of->kn->parent->priv;
+ struct rdt_resource *r = rdt_kn_parent_priv(of->kn);
struct mon_evt *mevt;
list_for_each_entry(mevt, &r->evt_list, list) {
@@ -1121,7 +1131,7 @@ static int rdt_mon_features_show(struct kernfs_open_file *of,
static int rdt_bw_gran_show(struct kernfs_open_file *of,
struct seq_file *seq, void *v)
{
- struct resctrl_schema *s = of->kn->parent->priv;
+ struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
struct rdt_resource *r = s->res;
seq_printf(seq, "%u\n", r->membw.bw_gran);
@@ -1131,7 +1141,7 @@ static int rdt_bw_gran_show(struct kernfs_open_file *of,
static int rdt_delay_linear_show(struct kernfs_open_file *of,
struct seq_file *seq, void *v)
{
- struct resctrl_schema *s = of->kn->parent->priv;
+ struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
struct rdt_resource *r = s->res;
seq_printf(seq, "%u\n", r->membw.delay_linear);
@@ -1149,7 +1159,7 @@ static int max_threshold_occ_show(struct kernfs_open_file *of,
static int rdt_thread_throttle_mode_show(struct kernfs_open_file *of,
struct seq_file *seq, void *v)
{
- struct resctrl_schema *s = of->kn->parent->priv;
+ struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
struct rdt_resource *r = s->res;
if (r->membw.throttle_mode == THREAD_THROTTLE_PER_THREAD)
@@ -1214,7 +1224,7 @@ static enum resctrl_conf_type resctrl_peer_type(enum resctrl_conf_type my_type)
static int rdt_has_sparse_bitmasks_show(struct kernfs_open_file *of,
struct seq_file *seq, void *v)
{
- struct resctrl_schema *s = of->kn->parent->priv;
+ struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
struct rdt_resource *r = s->res;
seq_printf(seq, "%u\n", r->cache.arch_has_sparse_bitmasks);
@@ -1626,7 +1636,7 @@ static int mbm_config_show(struct seq_file *s, struct rdt_resource *r, u32 evtid
static int mbm_total_bytes_config_show(struct kernfs_open_file *of,
struct seq_file *seq, void *v)
{
- struct rdt_resource *r = of->kn->parent->priv;
+ struct rdt_resource *r = rdt_kn_parent_priv(of->kn);
mbm_config_show(seq, r, QOS_L3_MBM_TOTAL_EVENT_ID);
@@ -1636,7 +1646,7 @@ static int mbm_total_bytes_config_show(struct kernfs_open_file *of,
static int mbm_local_bytes_config_show(struct kernfs_open_file *of,
struct seq_file *seq, void *v)
{
- struct rdt_resource *r = of->kn->parent->priv;
+ struct rdt_resource *r = rdt_kn_parent_priv(of->kn);
mbm_config_show(seq, r, QOS_L3_MBM_LOCAL_EVENT_ID);
@@ -1742,7 +1752,7 @@ static ssize_t mbm_total_bytes_config_write(struct kernfs_open_file *of,
char *buf, size_t nbytes,
loff_t off)
{
- struct rdt_resource *r = of->kn->parent->priv;
+ struct rdt_resource *r = rdt_kn_parent_priv(of->kn);
int ret;
/* Valid input requires a trailing newline */
@@ -1768,7 +1778,7 @@ static ssize_t mbm_local_bytes_config_write(struct kernfs_open_file *of,
char *buf, size_t nbytes,
loff_t off)
{
- struct rdt_resource *r = of->kn->parent->priv;
+ struct rdt_resource *r = rdt_kn_parent_priv(of->kn);
int ret;
/* Valid input requires a trailing newline */
@@ -2430,12 +2440,13 @@ static struct rdtgroup *kernfs_to_rdtgroup(struct kernfs_node *kn)
* resource. "info" and its subdirectories don't
* have rdtgroup structures, so return NULL here.
*/
- if (kn == kn_info || kn->parent == kn_info)
+ if (kn == kn_info ||
+ rcu_access_pointer(kn->__parent) == kn_info)
return NULL;
else
return kn->priv;
} else {
- return kn->parent->priv;
+ return rdt_kn_parent_priv(kn);
}
}
@@ -3759,9 +3770,18 @@ static int rdtgroup_rmdir_ctrl(struct rdtgroup *rdtgrp, cpumask_var_t tmpmask)
return 0;
}
+static struct kernfs_node *rdt_kn_parent(struct kernfs_node *kn)
+{
+ /*
+ * Valid within the RCU section it was obtained or while rdtgroup_mutex
+ * is held.
+ */
+ return rcu_dereference_check(kn->__parent, lockdep_is_held(&rdtgroup_mutex));
+}
+
static int rdtgroup_rmdir(struct kernfs_node *kn)
{
- struct kernfs_node *parent_kn = kn->parent;
+ struct kernfs_node *parent_kn;
struct rdtgroup *rdtgrp;
cpumask_var_t tmpmask;
int ret = 0;
@@ -3774,6 +3794,7 @@ static int rdtgroup_rmdir(struct kernfs_node *kn)
ret = -EPERM;
goto out;
}
+ parent_kn = rdt_kn_parent(kn);
/*
* If the rdtgroup is a ctrl_mon group and parent directory
@@ -3842,6 +3863,7 @@ static void mongrp_reparent(struct rdtgroup *rdtgrp,
static int rdtgroup_rename(struct kernfs_node *kn,
struct kernfs_node *new_parent, const char *new_name)
{
+ struct kernfs_node *kn_parent;
struct rdtgroup *new_prdtgrp;
struct rdtgroup *rdtgrp;
cpumask_var_t tmpmask;
@@ -3876,8 +3898,9 @@ static int rdtgroup_rename(struct kernfs_node *kn,
goto out;
}
- if (rdtgrp->type != RDTMON_GROUP || !kn->parent ||
- !is_mon_groups(kn->parent, kn->name)) {
+ kn_parent = rdt_kn_parent(kn);
+ if (rdtgrp->type != RDTMON_GROUP || !kn_parent ||
+ !is_mon_groups(kn_parent, kn->name)) {
rdt_last_cmd_puts("Source must be a MON group\n");
ret = -EPERM;
goto out;
diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
index 5a1fea414996e..d2306641b569c 100644
--- a/fs/kernfs/dir.c
+++ b/fs/kernfs/dir.c
@@ -17,7 +17,7 @@
#include "kernfs-internal.h"
-static DEFINE_RWLOCK(kernfs_rename_lock); /* kn->parent and ->name */
+DEFINE_RWLOCK(kernfs_rename_lock); /* kn->parent and ->name */
/*
* Don't use rename_lock to piggy back on pr_cont_buf. We don't want to
* call pr_cont() while holding rename_lock. Because sometimes pr_cont()
@@ -56,7 +56,7 @@ static int kernfs_name_locked(struct kernfs_node *kn, char *buf, size_t buflen)
if (!kn)
return strscpy(buf, "(null)", buflen);
- return strscpy(buf, kn->parent ? kn->name : "/", buflen);
+ return strscpy(buf, rcu_access_pointer(kn->__parent) ? kn->name : "/", buflen);
}
/* kernfs_node_depth - compute depth from @from to @to */
@@ -64,9 +64,9 @@ static size_t kernfs_depth(struct kernfs_node *from, struct kernfs_node *to)
{
size_t depth = 0;
- while (to->parent && to != from) {
+ while (rcu_dereference(to->__parent) && to != from) {
depth++;
- to = to->parent;
+ to = rcu_dereference(to->__parent);
}
return depth;
}
@@ -84,18 +84,18 @@ static struct kernfs_node *kernfs_common_ancestor(struct kernfs_node *a,
db = kernfs_depth(rb->kn, b);
while (da > db) {
- a = a->parent;
+ a = rcu_dereference(a->__parent);
da--;
}
while (db > da) {
- b = b->parent;
+ b = rcu_dereference(b->__parent);
db--;
}
/* worst case b and a will be the same at root */
while (b != a) {
- b = b->parent;
- a = a->parent;
+ b = rcu_dereference(b->__parent);
+ a = rcu_dereference(a->__parent);
}
return a;
@@ -168,8 +168,9 @@ static int kernfs_path_from_node_locked(struct kernfs_node *kn_to,
/* Calculate how many bytes we need for the rest */
for (i = depth_to - 1; i >= 0; i--) {
+
for (kn = kn_to, j = 0; j < i; j++)
- kn = kn->parent;
+ kn = rcu_dereference(kn->__parent);
len += scnprintf(buf + len, buflen - len, "/%s", kn->name);
}
@@ -226,6 +227,7 @@ int kernfs_path_from_node(struct kernfs_node *to, struct kernfs_node *from,
unsigned long flags;
int ret;
+ guard(rcu)();
read_lock_irqsave(&kernfs_rename_lock, flags);
ret = kernfs_path_from_node_locked(to, from, buf, buflen);
read_unlock_irqrestore(&kernfs_rename_lock, flags);
@@ -295,7 +297,7 @@ struct kernfs_node *kernfs_get_parent(struct kernfs_node *kn)
unsigned long flags;
read_lock_irqsave(&kernfs_rename_lock, flags);
- parent = kn->parent;
+ parent = kernfs_parent(kn);
kernfs_get(parent);
read_unlock_irqrestore(&kernfs_rename_lock, flags);
@@ -360,8 +362,12 @@ static int kernfs_sd_compare(const struct kernfs_node *left,
*/
static int kernfs_link_sibling(struct kernfs_node *kn)
{
- struct rb_node **node = &kn->parent->dir.children.rb_node;
struct rb_node *parent = NULL;
+ struct kernfs_node *kn_parent;
+ struct rb_node **node;
+
+ kn_parent = kernfs_parent(kn);
+ node = &kn_parent->dir.children.rb_node;
while (*node) {
struct kernfs_node *pos;
@@ -380,13 +386,13 @@ static int kernfs_link_sibling(struct kernfs_node *kn)
/* add new node and rebalance the tree */
rb_link_node(&kn->rb, parent, node);
- rb_insert_color(&kn->rb, &kn->parent->dir.children);
+ rb_insert_color(&kn->rb, &kn_parent->dir.children);
/* successfully added, account subdir number */
down_write(&kernfs_root(kn)->kernfs_iattr_rwsem);
if (kernfs_type(kn) == KERNFS_DIR)
- kn->parent->dir.subdirs++;
- kernfs_inc_rev(kn->parent);
+ kn_parent->dir.subdirs++;
+ kernfs_inc_rev(kn_parent);
up_write(&kernfs_root(kn)->kernfs_iattr_rwsem);
return 0;
@@ -407,16 +413,19 @@ static int kernfs_link_sibling(struct kernfs_node *kn)
*/
static bool kernfs_unlink_sibling(struct kernfs_node *kn)
{
+ struct kernfs_node *kn_parent;
+
if (RB_EMPTY_NODE(&kn->rb))
return false;
+ kn_parent = kernfs_parent(kn);
down_write(&kernfs_root(kn)->kernfs_iattr_rwsem);
if (kernfs_type(kn) == KERNFS_DIR)
- kn->parent->dir.subdirs--;
- kernfs_inc_rev(kn->parent);
+ kn_parent->dir.subdirs--;
+ kernfs_inc_rev(kn_parent);
up_write(&kernfs_root(kn)->kernfs_iattr_rwsem);
- rb_erase(&kn->rb, &kn->parent->dir.children);
+ rb_erase(&kn->rb, &kn_parent->dir.children);
RB_CLEAR_NODE(&kn->rb);
return true;
}
@@ -562,7 +571,7 @@ void kernfs_put(struct kernfs_node *kn)
* Moving/renaming is always done while holding reference.
* kn->parent won't change beneath us.
*/
- parent = kn->parent;
+ parent = kernfs_parent(kn);
WARN_ONCE(atomic_read(&kn->active) != KN_DEACTIVATED_BIAS,
"kernfs_put: %s/%s: released with incorrect active_ref %d\n",
@@ -701,7 +710,7 @@ struct kernfs_node *kernfs_new_node(struct kernfs_node *parent,
name, mode, uid, gid, flags);
if (kn) {
kernfs_get(parent);
- kn->parent = parent;
+ rcu_assign_pointer(kn->__parent, parent);
}
return kn;
}
@@ -769,13 +778,14 @@ struct kernfs_node *kernfs_find_and_get_node_by_id(struct kernfs_root *root,
*/
int kernfs_add_one(struct kernfs_node *kn)
{
- struct kernfs_node *parent = kn->parent;
- struct kernfs_root *root = kernfs_root(parent);
+ struct kernfs_root *root = kernfs_root(kn);
struct kernfs_iattrs *ps_iattr;
+ struct kernfs_node *parent;
bool has_ns;
int ret;
down_write(&root->kernfs_rwsem);
+ parent = kernfs_parent(kn);
ret = -EINVAL;
has_ns = kernfs_ns_enabled(parent);
@@ -949,6 +959,11 @@ struct kernfs_node *kernfs_walk_and_get_ns(struct kernfs_node *parent,
return kn;
}
+unsigned int kernfs_root_flags(struct kernfs_node *kn)
+{
+ return kernfs_root(kn)->flags;
+}
+
/**
* kernfs_create_root - create a new kernfs hierarchy
* @scops: optional syscall operations for the hierarchy
@@ -1111,7 +1126,7 @@ struct kernfs_node *kernfs_create_empty_dir(struct kernfs_node *parent,
static int kernfs_dop_revalidate(struct dentry *dentry, unsigned int flags)
{
- struct kernfs_node *kn;
+ struct kernfs_node *kn, *parent;
struct kernfs_root *root;
if (flags & LOOKUP_RCU)
@@ -1162,8 +1177,9 @@ static int kernfs_dop_revalidate(struct dentry *dentry, unsigned int flags)
if (!kernfs_active(kn))
goto out_bad;
+ parent = kernfs_parent(kn);
/* The kernfs node has been moved? */
- if (kernfs_dentry_node(dentry->d_parent) != kn->parent)
+ if (kernfs_dentry_node(dentry->d_parent) != parent)
goto out_bad;
/* The kernfs node has been renamed */
@@ -1171,7 +1187,7 @@ static int kernfs_dop_revalidate(struct dentry *dentry, unsigned int flags)
goto out_bad;
/* The kernfs node has been moved to a different namespace */
- if (kn->parent && kernfs_ns_enabled(kn->parent) &&
+ if (parent && kernfs_ns_enabled(parent) &&
kernfs_info(dentry->d_sb)->ns != kn->ns)
goto out_bad;
@@ -1364,7 +1380,7 @@ static struct kernfs_node *kernfs_next_descendant_post(struct kernfs_node *pos,
return kernfs_leftmost_descendant(rb_to_kn(rbn));
/* no sibling left, visit parent */
- return pos->parent;
+ return kernfs_parent(pos);
}
static void kernfs_activate_one(struct kernfs_node *kn)
@@ -1376,7 +1392,7 @@ static void kernfs_activate_one(struct kernfs_node *kn)
if (kernfs_active(kn) || (kn->flags & (KERNFS_HIDDEN | KERNFS_REMOVING)))
return;
- WARN_ON_ONCE(kn->parent && RB_EMPTY_NODE(&kn->rb));
+ WARN_ON_ONCE(rcu_access_pointer(kn->__parent) && RB_EMPTY_NODE(&kn->rb));
WARN_ON_ONCE(atomic_read(&kn->active) != KN_DEACTIVATED_BIAS);
atomic_sub(KN_DEACTIVATED_BIAS, &kn->active);
@@ -1446,7 +1462,7 @@ void kernfs_show(struct kernfs_node *kn, bool show)
static void __kernfs_remove(struct kernfs_node *kn)
{
- struct kernfs_node *pos;
+ struct kernfs_node *pos, *parent;
/* Short-circuit if non-root @kn has already finished removal. */
if (!kn)
@@ -1458,7 +1474,7 @@ static void __kernfs_remove(struct kernfs_node *kn)
* This is for kernfs_remove_self() which plays with active ref
* after removal.
*/
- if (kn->parent && RB_EMPTY_NODE(&kn->rb))
+ if (kernfs_parent(kn) && RB_EMPTY_NODE(&kn->rb))
return;
pr_debug("kernfs %s: removing\n", kn->name);
@@ -1484,14 +1500,14 @@ static void __kernfs_remove(struct kernfs_node *kn)
kernfs_get(pos);
kernfs_drain(pos);
-
+ parent = kernfs_parent(pos);
/*
* kernfs_unlink_sibling() succeeds once per node. Use it
* to decide who's responsible for cleanups.
*/
- if (!pos->parent || kernfs_unlink_sibling(pos)) {
+ if (!parent || kernfs_unlink_sibling(pos)) {
struct kernfs_iattrs *ps_iattr =
- pos->parent ? pos->parent->iattr : NULL;
+ parent ? parent->iattr : NULL;
/* update timestamps on the parent */
down_write(&kernfs_root(kn)->kernfs_iattr_rwsem);
@@ -1721,7 +1737,7 @@ int kernfs_rename_ns(struct kernfs_node *kn, struct kernfs_node *new_parent,
int error;
/* can't move or rename root */
- if (!kn->parent)
+ if (!rcu_access_pointer(kn->__parent))
return -EINVAL;
root = kernfs_root(kn);
@@ -1732,8 +1748,15 @@ int kernfs_rename_ns(struct kernfs_node *kn, struct kernfs_node *new_parent,
(new_parent->flags & KERNFS_EMPTY_DIR))
goto out;
+ old_parent = kernfs_parent(kn);
+ if (root->flags & KERNFS_ROOT_INVARIANT_PARENT) {
+ error = -EINVAL;
+ if (WARN_ON_ONCE(old_parent != new_parent))
+ goto out;
+ }
+
error = 0;
- if ((kn->parent == new_parent) && (kn->ns == new_ns) &&
+ if ((old_parent == new_parent) && (kn->ns == new_ns) &&
(strcmp(kn->name, new_name) == 0))
goto out; /* nothing to rename */
@@ -1760,8 +1783,8 @@ int kernfs_rename_ns(struct kernfs_node *kn, struct kernfs_node *new_parent,
/* rename_lock protects ->parent and ->name accessors */
write_lock_irq(&kernfs_rename_lock);
- old_parent = kn->parent;
- kn->parent = new_parent;
+ old_parent = kernfs_parent(kn);
+ rcu_assign_pointer(kn->__parent, new_parent);
kn->ns = new_ns;
if (new_name) {
@@ -1794,7 +1817,8 @@ static struct kernfs_node *kernfs_dir_pos(const void *ns,
{
if (pos) {
int valid = kernfs_active(pos) &&
- pos->parent == parent && hash == pos->hash;
+ rcu_access_pointer(pos->__parent) == parent &&
+ hash == pos->hash;
kernfs_put(pos);
if (!valid)
pos = NULL;
diff --git a/fs/kernfs/kernfs-internal.h b/fs/kernfs/kernfs-internal.h
index b42ee6547cdc1..c43bee18b79f7 100644
--- a/fs/kernfs/kernfs-internal.h
+++ b/fs/kernfs/kernfs-internal.h
@@ -19,6 +19,8 @@
#include <linux/kernfs.h>
#include <linux/fs_context.h>
+extern rwlock_t kernfs_rename_lock;
+
struct kernfs_iattrs {
kuid_t ia_uid;
kgid_t ia_gid;
@@ -64,11 +66,14 @@ struct kernfs_root {
*
* Return: the kernfs_root @kn belongs to.
*/
-static inline struct kernfs_root *kernfs_root(struct kernfs_node *kn)
+static inline struct kernfs_root *kernfs_root(const struct kernfs_node *kn)
{
+ const struct kernfs_node *knp;
/* if parent exists, it's always a dir; otherwise, @sd is a dir */
- if (kn->parent)
- kn = kn->parent;
+ guard(rcu)();
+ knp = rcu_dereference(kn->__parent);
+ if (knp)
+ kn = knp;
return kn->dir.root;
}
@@ -97,6 +102,27 @@ struct kernfs_super_info {
};
#define kernfs_info(SB) ((struct kernfs_super_info *)(SB->s_fs_info))
+static inline bool kernfs_root_is_locked(const struct kernfs_node *kn)
+{
+ return lockdep_is_held(&kernfs_root(kn)->kernfs_rwsem);
+}
+
+static inline struct kernfs_node *kernfs_parent(const struct kernfs_node *kn)
+{
+ /*
+ * The kernfs_node::__parent remains valid within a RCU section. The kn
+ * can be reparented (and renamed) which changes the entry. This can be
+ * avoided by locking kernfs_root::kernfs_rwsem or kernfs_rename_lock.
+ * Both locks can be used to obtain a reference on __parent. Once the
+ * reference count reaches 0 then the node is about to be freed
+ * and can not be renamed (or become a different parent) anymore.
+ */
+ return rcu_dereference_check(kn->__parent,
+ kernfs_root_is_locked(kn) ||
+ lockdep_is_held(&kernfs_rename_lock) ||
+ !atomic_read(&kn->count));
+}
+
static inline struct kernfs_node *kernfs_dentry_node(struct dentry *dentry)
{
if (d_really_is_negative(dentry))
diff --git a/fs/kernfs/mount.c b/fs/kernfs/mount.c
index 4a0ff08d589ca..2252b16e6ef0b 100644
--- a/fs/kernfs/mount.c
+++ b/fs/kernfs/mount.c
@@ -148,7 +148,7 @@ static struct dentry *kernfs_get_parent_dentry(struct dentry *child)
struct kernfs_root *root = kernfs_root(kn);
guard(rwsem_read)(&root->kernfs_rwsem);
- return d_obtain_alias(kernfs_get_inode(child->d_sb, kn->parent));
+ return d_obtain_alias(kernfs_get_inode(child->d_sb, kernfs_parent(kn)));
}
static const struct export_operations kernfs_export_ops = {
@@ -188,10 +188,10 @@ static struct kernfs_node *find_next_ancestor(struct kernfs_node *child,
return NULL;
}
- while (child->parent != parent) {
- if (!child->parent)
+ while (kernfs_parent(child) != parent) {
+ child = kernfs_parent(child);
+ if (!child)
return NULL;
- child = child->parent;
}
return child;
@@ -216,7 +216,7 @@ struct dentry *kernfs_node_dentry(struct kernfs_node *kn,
dentry = dget(sb->s_root);
/* Check if this is the root kernfs_node */
- if (!kn->parent)
+ if (!rcu_access_pointer(kn->__parent))
return dentry;
root = kernfs_root(kn);
diff --git a/fs/kernfs/symlink.c b/fs/kernfs/symlink.c
index 45371a70caa71..05c62ca93c53d 100644
--- a/fs/kernfs/symlink.c
+++ b/fs/kernfs/symlink.c
@@ -62,10 +62,10 @@ static int kernfs_get_target_path(struct kernfs_node *parent,
/* go up to the root, stop at the base */
base = parent;
- while (base->parent) {
- kn = target->parent;
- while (kn->parent && base != kn)
- kn = kn->parent;
+ while (kernfs_parent(base)) {
+ kn = kernfs_parent(target);
+ while (kernfs_parent(kn) && base != kn)
+ kn = kernfs_parent(kn);
if (base == kn)
break;
@@ -75,14 +75,14 @@ static int kernfs_get_target_path(struct kernfs_node *parent,
strcpy(s, "../");
s += 3;
- base = base->parent;
+ base = kernfs_parent(base);
}
/* determine end of target string for reverse fillup */
kn = target;
- while (kn->parent && kn != base) {
+ while (kernfs_parent(kn) && kn != base) {
len += strlen(kn->name) + 1;
- kn = kn->parent;
+ kn = kernfs_parent(kn);
}
/* check limits */
@@ -94,7 +94,7 @@ static int kernfs_get_target_path(struct kernfs_node *parent,
/* reverse fillup of target string from target to base */
kn = target;
- while (kn->parent && kn != base) {
+ while (kernfs_parent(kn) && kn != base) {
int slen = strlen(kn->name);
len -= slen;
@@ -102,7 +102,7 @@ static int kernfs_get_target_path(struct kernfs_node *parent,
if (len)
s[--len] = '/';
- kn = kn->parent;
+ kn = kernfs_parent(kn);
}
return 0;
@@ -111,12 +111,13 @@ static int kernfs_get_target_path(struct kernfs_node *parent,
static int kernfs_getlink(struct inode *inode, char *path)
{
struct kernfs_node *kn = inode->i_private;
- struct kernfs_node *parent = kn->parent;
+ struct kernfs_node *parent;
struct kernfs_node *target = kn->symlink.target_kn;
- struct kernfs_root *root = kernfs_root(parent);
+ struct kernfs_root *root = kernfs_root(kn);
int error;
down_read(&root->kernfs_rwsem);
+ parent = kernfs_parent(kn);
error = kernfs_get_target_path(parent, target, path);
up_read(&root->kernfs_rwsem);
diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c
index d1995e2d6c943..3671a3fd60198 100644
--- a/fs/sysfs/file.c
+++ b/fs/sysfs/file.c
@@ -19,13 +19,19 @@
#include "sysfs.h"
+static struct kobject *sysfs_file_kobj(struct kernfs_node *kn)
+{
+ guard(rcu)();
+ return rcu_dereference(kn->__parent)->priv;
+}
+
/*
* Determine ktype->sysfs_ops for the given kernfs_node. This function
* must be called while holding an active reference.
*/
static const struct sysfs_ops *sysfs_file_ops(struct kernfs_node *kn)
{
- struct kobject *kobj = kn->parent->priv;
+ struct kobject *kobj = sysfs_file_kobj(kn);
if (kn->flags & KERNFS_LOCKDEP)
lockdep_assert_held(kn);
@@ -40,7 +46,7 @@ static const struct sysfs_ops *sysfs_file_ops(struct kernfs_node *kn)
static int sysfs_kf_seq_show(struct seq_file *sf, void *v)
{
struct kernfs_open_file *of = sf->private;
- struct kobject *kobj = of->kn->parent->priv;
+ struct kobject *kobj = sysfs_file_kobj(of->kn);
const struct sysfs_ops *ops = sysfs_file_ops(of->kn);
ssize_t count;
char *buf;
@@ -78,7 +84,7 @@ static ssize_t sysfs_kf_bin_read(struct kernfs_open_file *of, char *buf,
size_t count, loff_t pos)
{
struct bin_attribute *battr = of->kn->priv;
- struct kobject *kobj = of->kn->parent->priv;
+ struct kobject *kobj = sysfs_file_kobj(of->kn);
loff_t size = file_inode(of->file)->i_size;
if (!count)
@@ -102,7 +108,7 @@ static ssize_t sysfs_kf_read(struct kernfs_open_file *of, char *buf,
size_t count, loff_t pos)
{
const struct sysfs_ops *ops = sysfs_file_ops(of->kn);
- struct kobject *kobj = of->kn->parent->priv;
+ struct kobject *kobj = sysfs_file_kobj(of->kn);
ssize_t len;
/*
@@ -128,7 +134,7 @@ static ssize_t sysfs_kf_write(struct kernfs_open_file *of, char *buf,
size_t count, loff_t pos)
{
const struct sysfs_ops *ops = sysfs_file_ops(of->kn);
- struct kobject *kobj = of->kn->parent->priv;
+ struct kobject *kobj = sysfs_file_kobj(of->kn);
if (!count)
return 0;
@@ -141,7 +147,7 @@ static ssize_t sysfs_kf_bin_write(struct kernfs_open_file *of, char *buf,
size_t count, loff_t pos)
{
struct bin_attribute *battr = of->kn->priv;
- struct kobject *kobj = of->kn->parent->priv;
+ struct kobject *kobj = sysfs_file_kobj(of->kn);
loff_t size = file_inode(of->file)->i_size;
if (size) {
@@ -162,7 +168,7 @@ static int sysfs_kf_bin_mmap(struct kernfs_open_file *of,
struct vm_area_struct *vma)
{
struct bin_attribute *battr = of->kn->priv;
- struct kobject *kobj = of->kn->parent->priv;
+ struct kobject *kobj = sysfs_file_kobj(of->kn);
return battr->mmap(of->file, kobj, battr, vma);
}
@@ -171,7 +177,7 @@ static loff_t sysfs_kf_bin_llseek(struct kernfs_open_file *of, loff_t offset,
int whence)
{
struct bin_attribute *battr = of->kn->priv;
- struct kobject *kobj = of->kn->parent->priv;
+ struct kobject *kobj = sysfs_file_kobj(of->kn);
if (battr->llseek)
return battr->llseek(of->file, kobj, battr, offset, whence);
@@ -482,7 +488,7 @@ EXPORT_SYMBOL_GPL(sysfs_break_active_protection);
*/
void sysfs_unbreak_active_protection(struct kernfs_node *kn)
{
- struct kobject *kobj = kn->parent->priv;
+ struct kobject *kobj = sysfs_file_kobj(kn);
kernfs_unbreak_active_protection(kn);
kernfs_put(kn);
diff --git a/include/linux/kernfs.h b/include/linux/kernfs.h
index 87c79d076d6d7..5dda9a268e44c 100644
--- a/include/linux/kernfs.h
+++ b/include/linux/kernfs.h
@@ -147,6 +147,11 @@ enum kernfs_root_flag {
* Support user xattrs to be written to nodes rooted at this root.
*/
KERNFS_ROOT_SUPPORT_USER_XATTR = 0x0008,
+
+ /*
+ * Renames must not change the parent node.
+ */
+ KERNFS_ROOT_INVARIANT_PARENT = 0x0010,
};
/* type-specific structures for kernfs_node union members */
@@ -199,8 +204,8 @@ struct kernfs_node {
* never moved to a different parent, it is safe to access the
* parent directly.
*/
- struct kernfs_node *parent;
const char *name;
+ struct kernfs_node __rcu *__parent;
struct rb_node rb;
@@ -416,6 +421,7 @@ struct dentry *kernfs_node_dentry(struct kernfs_node *kn,
struct kernfs_root *kernfs_create_root(struct kernfs_syscall_ops *scops,
unsigned int flags, void *priv);
void kernfs_destroy_root(struct kernfs_root *root);
+unsigned int kernfs_root_flags(struct kernfs_node *kn);
struct kernfs_node *kernfs_create_dir_ns(struct kernfs_node *parent,
const char *name, umode_t mode,
@@ -514,6 +520,8 @@ kernfs_create_root(struct kernfs_syscall_ops *scops, unsigned int flags,
{ return ERR_PTR(-ENOSYS); }
static inline void kernfs_destroy_root(struct kernfs_root *root) { }
+static inline unsigned int kernfs_root_flags(struct kernfs_node *kn)
+{ return 0; }
static inline struct kernfs_node *
kernfs_create_dir_ns(struct kernfs_node *parent, const char *name,
diff --git a/kernel/cgroup/cgroup-v1.c b/kernel/cgroup/cgroup-v1.c
index e28d5f0d20ed0..c9752eb607ec9 100644
--- a/kernel/cgroup/cgroup-v1.c
+++ b/kernel/cgroup/cgroup-v1.c
@@ -844,7 +844,7 @@ static int cgroup1_rename(struct kernfs_node *kn, struct kernfs_node *new_parent
if (kernfs_type(kn) != KERNFS_DIR)
return -ENOTDIR;
- if (kn->parent != new_parent)
+ if (rcu_access_pointer(kn->__parent) != new_parent)
return -EIO;
/*
diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
index e63d6f3b00470..fc152691a6b42 100644
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@ -633,9 +633,22 @@ int cgroup_task_count(const struct cgroup *cgrp)
return count;
}
+static struct cgroup *kn_priv(struct kernfs_node *kn)
+{
+ struct kernfs_node *parent;
+ /*
+ * The parent can not be replaced due to KERNFS_ROOT_INVARIANT_PARENT.
+ * Therefore it is always safe to dereference this pointer outside of a
+ * RCU section.
+ */
+ parent = rcu_dereference_check(kn->__parent,
+ kernfs_root_flags(kn) & KERNFS_ROOT_INVARIANT_PARENT);
+ return parent->priv;
+}
+
struct cgroup_subsys_state *of_css(struct kernfs_open_file *of)
{
- struct cgroup *cgrp = of->kn->parent->priv;
+ struct cgroup *cgrp = kn_priv(of->kn);
struct cftype *cft = of_cft(of);
/*
@@ -1612,7 +1625,7 @@ void cgroup_kn_unlock(struct kernfs_node *kn)
if (kernfs_type(kn) == KERNFS_DIR)
cgrp = kn->priv;
else
- cgrp = kn->parent->priv;
+ cgrp = kn_priv(kn);
cgroup_unlock();
@@ -1644,7 +1657,7 @@ struct cgroup *cgroup_kn_lock_live(struct kernfs_node *kn, bool drain_offline)
if (kernfs_type(kn) == KERNFS_DIR)
cgrp = kn->priv;
else
- cgrp = kn->parent->priv;
+ cgrp = kn_priv(kn);
/*
* We're gonna grab cgroup_mutex which nests outside kernfs
@@ -2118,7 +2131,8 @@ int cgroup_setup_root(struct cgroup_root *root, u16 ss_mask)
root->kf_root = kernfs_create_root(kf_sops,
KERNFS_ROOT_CREATE_DEACTIVATED |
KERNFS_ROOT_SUPPORT_EXPORTOP |
- KERNFS_ROOT_SUPPORT_USER_XATTR,
+ KERNFS_ROOT_SUPPORT_USER_XATTR |
+ KERNFS_ROOT_INVARIANT_PARENT,
root_cgrp);
if (IS_ERR(root->kf_root)) {
ret = PTR_ERR(root->kf_root);
@@ -4144,7 +4158,7 @@ static ssize_t cgroup_file_write(struct kernfs_open_file *of, char *buf,
size_t nbytes, loff_t off)
{
struct cgroup_file_ctx *ctx = of->priv;
- struct cgroup *cgrp = of->kn->parent->priv;
+ struct cgroup *cgrp = kn_priv(of->kn);
struct cftype *cft = of_cft(of);
struct cgroup_subsys_state *css;
int ret;
diff --git a/tools/testing/selftests/bpf/progs/profiler.inc.h b/tools/testing/selftests/bpf/progs/profiler.inc.h
index 8bd1ebd7d6afd..813143b4985dc 100644
--- a/tools/testing/selftests/bpf/progs/profiler.inc.h
+++ b/tools/testing/selftests/bpf/progs/profiler.inc.h
@@ -223,7 +223,7 @@ static INLINE void* read_full_cgroup_path(struct kernfs_node* cgroup_node,
if (bpf_cmp_likely(filepart_length, <=, MAX_PATH)) {
payload += filepart_length;
}
- cgroup_node = BPF_CORE_READ(cgroup_node, parent);
+ cgroup_node = BPF_CORE_READ(cgroup_node, __parent);
}
return payload;
}
--
2.39.5
prev parent reply other threads:[~2025-05-05 22:56 UTC|newest]
Thread overview: 487+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-05 22:31 [PATCH AUTOSEL 6.12 001/486] kconfig: merge_config: use an empty file as initfile Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 002/486] x86/fred: Fix system hang during S4 resume with FRED enabled Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 003/486] s390/vfio-ap: Fix no AP queue sharing allowed message written to kernel log Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 004/486] cifs: Add fallback for SMB2 CREATE without FILE_READ_ATTRIBUTES Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 005/486] cifs: Fix querying and creating MF symlinks over SMB1 Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 006/486] cifs: Fix negotiate retry functionality Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 007/486] smb: client: Store original IO parameters and prevent zero IO sizes Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 008/486] fuse: Return EPERM rather than ENOSYS from link() Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 009/486] exfat: call bh_read in get_block only when necessary Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 010/486] io_uring/msg: initialise msg request opcode Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 011/486] NFSv4: Check for delegation validity in nfs_start_delegation_return_locked() Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 012/486] NFS: Don't allow waiting for exiting tasks Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 013/486] SUNRPC: " Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 014/486] arm64: Add support for HIP09 Spectre-BHB mitigation Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 015/486] iommufd: Extend IOMMU_GET_HW_INFO to report PASID capability Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 016/486] tracing: Mark binary printing functions with __printf() attribute Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 017/486] ACPI: PNP: Add Intel OC Watchdog IDs to non-PNP device list Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 018/486] tpm: Convert warn to dbg in tpm2_start_auth_session() Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 019/486] mailbox: pcc: Use acpi_os_ioremap() instead of ioremap() Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 020/486] mailbox: use error ret code of of_parse_phandle_with_args() Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 021/486] riscv: Allow NOMMU kernels to access all of RAM Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 022/486] fbdev: fsl-diu-fb: add missing device_remove_file() Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 023/486] fbcon: Use correct erase colour for clearing in fbcon Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 024/486] fbdev: core: tileblit: Implement missing margin clearing for tileblit Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 025/486] cifs: Set default Netbios RFC1001 server name to hostname in UNC Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 026/486] cifs: add validation check for the fields in smb_aces Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 027/486] cifs: Fix establishing NetBIOS session for SMB2+ connection Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 028/486] NFSv4: Treat ENETUNREACH errors as fatal for state recovery Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 029/486] SUNRPC: rpc_clnt_set_transport() must not change the autobind setting Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 030/486] SUNRPC: rpcbind should never reset the port to the value '0' Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 031/486] spi-rockchip: Fix register out of bounds access Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 032/486] ASoC: codecs: wsa884x: Correct VI sense channel mask Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 033/486] ASoC: codecs: wsa883x: " Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 034/486] mctp: Fix incorrect tx flow invalidation condition in mctp-i2c Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 035/486] net: tn40xx: add pci-id of the aqr105-based Tehuti TN4010 cards Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 036/486] net: tn40xx: create swnode for mdio and aqr105 phy and add to mdiobus Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 037/486] thermal/drivers/mediatek/lvts: Start sensor interrupts disabled Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 038/486] thermal/drivers/qoriq: Power down TMU on system suspend Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 039/486] Bluetooth: btmtksdio: Prevent enabling interrupts after IRQ handler removal Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 040/486] Bluetooth: Disable SCO support if READ_VOICE_SETTING is unsupported/broken Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 041/486] exit: fix the usage of delay_group_leader->exit_code in do_notify_parent() and pidfs_exit() Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 042/486] dql: Fix dql->limit value when reset Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 043/486] lockdep: Fix wait context check on softirq for PREEMPT_RT Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 044/486] objtool: Properly disable uaccess validation Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 045/486] PCI: dwc: ep: Ensure proper iteration over outbound map windows Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 046/486] r8169: disable RTL8126 ZRX-DC timeout Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 047/486] tools/build: Don't pass test log files to linker Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 048/486] pNFS/flexfiles: Report ENETDOWN as a connection error Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 049/486] drm/amdgpu/discovery: check ip_discovery fw file available Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 050/486] drm/amdkfd: set precise mem ops caps to disabled for gfx 11 and 12 Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 051/486] PCI: vmd: Disable MSI remapping bypass under Xen Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 052/486] xen/pci: Do not register devices with segments >= 0x10000 Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 053/486] ext4: on a remount, only log the ro or r/w state when it has changed Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 054/486] libnvdimm/labels: Fix divide error in nd_label_data_init() Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 055/486] pidfs: improve multi-threaded exec and premature thread-group leader exit polling Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 056/486] staging: vchiq_arm: Create keep-alive thread during probe Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 057/486] mmc: host: Wait for Vdd to settle on card power off Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 058/486] drm/amdgpu: Skip pcie_replay_count sysfs creation for VF Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 059/486] cgroup/rstat: avoid disabling irqs for O(num_cpu) Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 060/486] wifi: mt76: only mark tx-status-failed frames as ACKed on mt76x0/2 Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 061/486] wifi: mt76: mt7996: fix SER reset trigger on WED reset Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 062/486] wifi: mt76: mt7996: revise TXS size Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 063/486] wifi: mt76: mt7925: load the appropriate CLC data based on hardware type Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 064/486] wifi: mt76: mt7925: fix fails to enter low power mode in suspend state Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 065/486] x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in UAPI headers Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 066/486] x86/stackprotector/64: Only export __ref_stack_chk_guard on CONFIG_SMP Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 067/486] x86/smpboot: Fix INIT delay assignment for extended Intel Families Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 068/486] x86/microcode: Update the Intel processor flag scan check Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 069/486] x86/mm: Check return value from memblock_phys_alloc_range() Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 070/486] i2c: qup: Vote for interconnect bandwidth to DRAM Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 071/486] i2c: pxa: fix call balance of i2c->clk handling routines Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 072/486] btrfs: make btrfs_discard_workfn() block_group ref explicit Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 073/486] btrfs: avoid linker error in btrfs_find_create_tree_block() Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 074/486] btrfs: run btrfs_error_commit_super() early Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 075/486] btrfs: fix non-empty delayed iputs list on unmount due to async workers Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 076/486] btrfs: properly limit inline data extent according to block size Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 077/486] btrfs: prevent inline data extents read from touching blocks beyond its range Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 078/486] btrfs: get zone unusable bytes while holding lock at btrfs_reclaim_bgs_work() Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 079/486] btrfs: send: return -ENAMETOOLONG when attempting a path that is too long Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 080/486] btrfs: zoned: exit btrfs_can_activate_zone if BTRFS_FS_NEED_ZONE_FINISH is set Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 081/486] blk-cgroup: improve policy registration error handling Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 082/486] drm/amdgpu: release xcp_mgr on exit Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 083/486] drm/amd/display: Guard against setting dispclk low for dcn31x Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 084/486] drm/amdgpu: adjust drm_firmware_drivers_only() handling Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 085/486] i3c: master: svc: Fix missing STOP for master request Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 086/486] s390/tlb: Use mm_has_pgste() instead of mm_alloc_pgste() Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 087/486] dlm: make tcp still work in multi-link env Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 088/486] clocksource/drivers/timer-riscv: Stop stimecmp when cpu hotplug Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 089/486] um: Store full CSGSFS and SS register from mcontext Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 090/486] um: Update min_low_pfn to match changes in uml_reserved Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 091/486] wifi: mwifiex: Fix HT40 bandwidth issue Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 092/486] bnxt_en: Query FW parameters when the CAPS_CHANGE bit is set Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 093/486] riscv: Call secondary mmu notifier when flushing the tlb Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 094/486] ext4: reorder capability check last Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 095/486] hypfs_create_cpu_files(): add missing check for hypfs_mkdir() failure Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 096/486] scsi: st: Tighten the page format heuristics with MODE SELECT Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 097/486] scsi: st: ERASE does not change tape location Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 098/486] vfio/pci: Handle INTx IRQ_NOTCONNECTED Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 099/486] libbpf: Pass BPF token from find_prog_btf_id to BPF_BTF_GET_FD_BY_ID Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 100/486] bpf: Return prog btf_id without capable check Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 101/486] PCI: dwc: Use resource start as ioremap() input in dw_pcie_pme_turn_off() Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 102/486] jbd2: do not try to recover wiped journal Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 103/486] tcp: reorganize tcp_in_ack_event() and tcp_count_delivered() Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 104/486] rtc: rv3032: fix EERD location Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 105/486] objtool: Fix error handling inconsistencies in check() Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 106/486] thunderbolt: Do not add non-active NVM if NVM upgrade is disabled for retimer Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 107/486] erofs: initialize decompression early Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 108/486] spi: spi-mux: Fix coverity issue, unchecked return value Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 109/486] ASoC: pcm6240: Drop bogus code handling IRQ as GPIO Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 110/486] ASoC: mediatek: mt6359: Add stub for mt6359_accdet_enable_jack_detect Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 111/486] bpf: Allow pre-ordering for bpf cgroup progs Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 112/486] kbuild: fix argument parsing in scripts/config Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 113/486] kconfig: do not clear SYMBOL_VALID when reading include/config/auto.conf Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 114/486] crypto: octeontx2 - suppress auth failure screaming due to negative tests Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 115/486] dm: restrict dm device size to 2^63-512 bytes Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 116/486] net/smc: use the correct ndev to find pnetid by pnetid table Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 117/486] xen: Add support for XenServer 6.1 platform device Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 118/486] pinctrl-tegra: Restore SFSEL bit when freeing pins Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 119/486] mfd: tps65219: Remove TPS65219_REG_TI_DEV_ID check Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 120/486] drm/amdgpu/gfx12: don't read registers in mqd init Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 121/486] drm/amdgpu/gfx11: " Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 122/486] drm/amdgpu: Update SRIOV video codec caps Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 123/486] ASoC: sun4i-codec: support hp-det-gpios property Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 124/486] clk: qcom: lpassaudiocc-sc7280: Add support for LPASS resets for QCM6490 Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 125/486] f2fs: defer readonly check vs norecovery Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 126/486] ext4: reject the 'data_err=abort' option in nojournal mode Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 127/486] ext4: do not convert the unwritten extents if data writeback fails Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 128/486] RDMA/uverbs: Propagate errors from rdma_lookup_get_uobject() Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 129/486] posix-timers: Add cond_resched() to posix_timer_add() search loop Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 130/486] posix-timers: Ensure that timer initialization is fully visible Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 131/486] net: stmmac: dwmac-rk: Validate GRF and peripheral GRF during probe Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 132/486] net: hsr: Fix PRP duplicate detection Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 133/486] timer_list: Don't use %pK through printk() Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 134/486] wifi: rtw89: set force HE TB mode when connecting to 11ax AP Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 135/486] netfilter: conntrack: Bound nf_conntrack sysctl writes Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 136/486] PNP: Expand length of fixup id string Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 137/486] phy: rockchip: usbdp: Only verify link rates/lanes/voltage when the corresponding set flags are set Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 138/486] arm64/mm: Check pmd_table() in pmd_trans_huge() Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 139/486] arm64/mm: Check PUD_TYPE_TABLE in pud_bad() Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 140/486] mmc: dw_mmc: add exynos7870 DW MMC support Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 141/486] mmc: sdhci: Disable SD card clock before changing parameters Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 142/486] usb: xhci: Don't change the status of stalled TDs on failed Stop EP Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 143/486] wifi: iwlwifi: mvm: fix setting the TK when associated Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 144/486] hwmon: (dell-smm) Increment the number of fans Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 145/486] iommu: Keep dev->iommu state consistent Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 146/486] printk: Check CON_SUSPEND when unblanking a console Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 147/486] wifi: iwlwifi: don't warn when if there is a FW error Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 148/486] wifi: iwlwifi: w/a FW SMPS mode selection Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 149/486] wifi: iwlwifi: fix debug actions order Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 150/486] wifi: iwlwifi: mark Br device not integrated Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 151/486] wifi: iwlwifi: fix the ECKV UEFI variable name Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 152/486] wifi: mac80211: fix warning on disconnect during failed ML reconf Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 153/486] wifi: mac80211_hwsim: Fix MLD address translation Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 154/486] wifi: cfg80211: allow IR in 20 MHz configurations Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 155/486] ipv6: save dontfrag in cork Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 156/486] drm/amd/display: remove minimum Dispclk and apply oem panel timing Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 157/486] drm/amd/display: calculate the remain segments for all pipes Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 158/486] drm/amd/display: not abort link train when bw is low Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 159/486] drm/amd/display: Fix incorrect DPCD configs while Replay/PSR switch Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 160/486] gfs2: Check for empty queue in run_queue Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 161/486] auxdisplay: charlcd: Partially revert "Move hwidth and bwidth to struct hd44780_common" Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 162/486] ASoC: qcom: sm8250: explicitly set format in sm8250_be_hw_params_fixup() Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 163/486] badblocks: Fix a nonsense WARN_ON() which checks whether a u64 variable < 0 Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 164/486] coresight-etb10: change etb_drvdata spinlock's type to raw_spinlock_t Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 165/486] iommu/vt-d: Move scalable mode ATS enablement to probe path Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 166/486] iommu/amd/pgtbl_v2: Improve error handling Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 167/486] cpufreq: tegra186: Share policy per cluster Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 168/486] watchdog: aspeed: Update bootstatus handling Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 169/486] PCI: endpoint: pci-epf-test: Fix double free that causes kernel to oops Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 170/486] misc: pci_endpoint_test: Give disabled BARs a distinct error code Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 171/486] crypto: lzo - Fix compression buffer overrun Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 172/486] crypto: mxs-dcp - Only set OTP_KEY bit for OTP key Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 173/486] drm/amdkfd: Set per-process flags only once for gfx9/10/11/12 Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 174/486] drm/amdkfd: Set per-process flags only once cik/vi Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 175/486] drm/amdgpu: Fix missing drain retry fault the last entry Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 176/486] arm64: tegra: p2597: Fix gpio for vdd-1v8-dis regulator Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 177/486] arm64: tegra: Resize aperture for the IGX PCIe C5 slot Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 178/486] powerpc/prom_init: Fixup missing #size-cells on PowerBook6,7 Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 179/486] ALSA: seq: Improve data consistency at polling Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 180/486] tcp: bring back NUMA dispersion in inet_ehash_locks_alloc() Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 181/486] rtc: ds1307: stop disabling alarms on probe Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 182/486] ieee802154: ca8210: Use proper setters and getters for bitwise types Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 183/486] drm/xe: Nuke VM's mapping upon close Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 184/486] drm/xe: Retry BO allocation Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 185/486] soc: samsung: include linux/array_size.h where needed Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 186/486] ARM: tegra: Switch DSI-B clock parent to PLLD on Tegra114 Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 187/486] media: c8sectpfe: Call of_node_put(i2c_bus) only once in c8sectpfe_probe() Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 188/486] usb: xhci: set page size to the xHCI-supported size Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 189/486] dm cache: prevent BUG_ON by blocking retries on failed device resumes Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 190/486] soc: mediatek: mtk-mutex: Add DPI1 SOF/EOF to MT8188 mutex tables Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 191/486] orangefs: Do not truncate file size Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 192/486] drm/gem: Test for imported GEM buffers with helper Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 193/486] net: phylink: use pl->link_interface in phylink_expects_phy() Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 194/486] blk-throttle: don't take carryover for prioritized processing of metadata Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 195/486] remoteproc: qcom_wcnss: Handle platforms with only single power domain Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 196/486] drm/amdgpu: Do not program AGP BAR regs under SRIOV in gfxhub_v1_0.c Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 197/486] drm/amd/display: Ensure DMCUB idle before reset on DCN31/DCN35 Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 198/486] drm/amd/display: Skip checking FRL_MODE bit for PCON BW determination Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 199/486] drm/amd/display: Fix DMUB reset sequence for DCN401 Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 200/486] drm/amd/display: Fix p-state type when p-state is unsupported Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 201/486] drm/amd/display: Request HW cursor on DCN3.2 with SubVP Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 202/486] perf/core: Clean up perf_try_init_event() Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 203/486] media: cx231xx: set device_caps for 417 Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 204/486] pinctrl: bcm281xx: Use "unsigned int" instead of bare "unsigned" Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 205/486] rcu: Fix get_state_synchronize_rcu_full() GP-start detection Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 206/486] net: ethernet: ti: cpsw_new: populate netdev of_node Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 207/486] net: phy: nxp-c45-tja11xx: add match_phy_device to TJA1103/TJA1104 Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 208/486] dpll: Add an assertion to check freq_supported_num Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 209/486] ublk: enforce ublks_max only for unprivileged devices Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 210/486] iommufd: Disallow allocating nested parent domain with fault ID Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 211/486] media: imx335: Set vblank immediately Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 212/486] net: pktgen: fix mpls maximum labels list parsing Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 213/486] perf/hw_breakpoint: Return EOPNOTSUPP for unsupported breakpoint type Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 214/486] ALSA: hda/realtek: Enable PC beep passthrough for HP EliteBook 855 G7 Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 215/486] scsi: logging: Fix scsi_logging_level bounds Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 216/486] ipv4: fib: Move fib_valid_key_len() to rtm_to_fib_config() Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 217/486] drm/rockchip: vop2: Add uv swap for cluster window Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 218/486] block: mark bounce buffering as incompatible with integrity Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 219/486] ublk: complete command synchronously on error Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 220/486] media: uvcvideo: Add sanity check to uvc_ioctl_xu_ctrl_map Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 221/486] media: uvcvideo: Handle uvc menu translation inside uvc_get_le_value Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 222/486] clk: imx8mp: inform CCF of maximum frequency of clocks Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 223/486] x86/bugs: Make spectre user default depend on MITIGATION_SPECTRE_V2 Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 224/486] hwmon: (gpio-fan) Add missing mutex locks Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 225/486] ARM: at91: pm: fix at91_suspend_finish for ZQ calibration Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 226/486] drm/mediatek: mtk_dpi: Add checks for reg_h_fre_con existence Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 227/486] fpga: altera-cvp: Increase credit timeout Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 228/486] perf: arm_pmuv3: Call kvm_vcpu_pmu_resync_el0() before enabling counters Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 229/486] soc: apple: rtkit: Use high prio work queue Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 230/486] soc: apple: rtkit: Implement OSLog buffers properly Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 231/486] wifi: ath12k: Report proper tx completion status to mac80211 Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 232/486] PCI: brcmstb: Expand inbound window size up to 64GB Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 233/486] PCI: brcmstb: Add a softdep to MIP MSI-X driver Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 234/486] nvme: map uring_cmd data even if address is 0 Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 235/486] firmware: arm_ffa: Set dma_mask for ffa devices Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 236/486] drm/xe/vf: Retry sending MMIO request to GUC on timeout error Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 237/486] drm/xe/pf: Create a link between PF and VF devices Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 238/486] net/mlx5: Avoid report two health errors on same syndrome Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 239/486] selftests/net: have `gro.sh -t` return a correct exit code Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 240/486] pinctrl: sophgo: avoid to modify untouched bit when setting cv1800 pinconf Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 241/486] drm/amdkfd: KFD release_work possible circular locking Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 242/486] drm/xe: xe_gen_wa_oob: replace program_invocation_short_name Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 243/486] leds: pwm-multicolor: Add check for fwnode_property_read_u32 Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 244/486] net: ethernet: mtk_ppe_offload: Allow QinQ, double ETH_P_8021Q only Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 245/486] net: xgene-v2: remove incorrect ACPI_PTR annotation Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 246/486] bonding: report duplicate MAC address in all situations Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 247/486] wifi: ath12k: Improve BSS discovery with hidden SSID in 6 GHz band Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 248/486] soc: ti: k3-socinfo: Do not use syscon helper to build regmap Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 249/486] bpf: Search and add kfuncs in struct_ops prologue and epilogue Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 250/486] Octeontx2-af: RPM: Register driver with PCI subsys IDs Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 251/486] x86/build: Fix broken copy command in genimage.sh when making isoimage Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 252/486] drm/amd/display: handle max_downscale_src_width fail check Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 253/486] drm/amd/display: fix dcn4x init failed Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 254/486] drm/amd/display: Fix mismatch type comparison Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 255/486] ASoC: mediatek: mt8188: Treat DMIC_GAINx_CUR as non-volatile Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 256/486] ASoC: mediatek: mt8188: Add reference for dmic clocks Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 257/486] x86/nmi: Add an emergency handler in nmi_desc & use it in nmi_shootdown_cpus() Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 258/486] vhost-scsi: Return queue full for page alloc failures during copy Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 259/486] vdpa/mlx5: Fix mlx5_vdpa_get_config() endianness on big-endian machines Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 260/486] cpuidle: menu: Avoid discarding useful information Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 261/486] media: adv7180: Disable test-pattern control on adv7180 Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 262/486] media: tc358746: improve calculation of the D-PHY timing registers Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 263/486] net/mlx5e: Add correct match to check IPSec syndromes for switchdev mode Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 264/486] scsi: mpi3mr: Update timestamp only for supervisor IOCs Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 265/486] loop: check in LO_FLAGS_DIRECT_IO in loop_default_blocksize Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 266/486] libbpf: Fix out-of-bound read Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 267/486] dm: fix unconditional IO throttle caused by REQ_PREFLUSH Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 268/486] fs/mpage: avoid negative shift for large blocksize Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 269/486] scsi: scsi_debug: First fixes for tapes Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 270/486] net/mlx5: Change POOL_NEXT_SIZE define value and make it global Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 271/486] x86/kaslr: Reduce KASLR entropy on most x86 systems Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 272/486] crypto: ahash - Set default reqsize from ahash_alg Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 273/486] crypto: skcipher - Zap type in crypto_alloc_sync_skcipher Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 274/486] net: ipv6: Init tunnel link-netns before registering dev Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 275/486] drm/xe/oa: Ensure that polled read returns latest data Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 276/486] MIPS: Use arch specific syscall name match function Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 277/486] drm/amdgpu: remove all KFD fences from the BO on release Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 278/486] x86/locking: Use ALT_OUTPUT_SP() for percpu_{,try_}cmpxchg{64,128}_op() Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 279/486] genirq/msi: Store the IOMMU IOVA directly in msi_desc instead of iommu_cookie Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 280/486] MIPS: pm-cps: Use per-CPU variables as per-CPU, not per-core Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 281/486] clocksource: mips-gic-timer: Enable counter when CPUs start Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 282/486] PCI: epf-mhi: Update device ID for SA8775P Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 283/486] scsi: mpt3sas: Send a diag reset if target reset fails Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 284/486] wifi: rtw88: Fix rtw_init_vht_cap() for RTL8814AU Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 285/486] wifi: rtw88: Fix rtw_init_ht_cap() " Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 286/486] wifi: rtw88: Fix rtw_desc_to_mcsrate() to handle MCS16-31 Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 287/486] wifi: rtw89: fw: propagate error code from rtw89_h2c_tx() Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 288/486] wifi: rtw89: fw: get sb_sel_ver via get_unaligned_le32() Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 289/486] wifi: rtw89: fw: add blacklist to avoid obsolete secure firmware Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 290/486] wifi: rtw89: 8922a: fix incorrect STA-ID in EHT MU PPDU Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 291/486] net: pktgen: fix access outside of user given buffer in pktgen_thread_write() Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 292/486] power: supply: axp20x_battery: Update temp sensor for AXP717 from device tree Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 293/486] EDAC/ie31200: work around false positive build warning Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 294/486] bpf: Prevent unsafe access to the sock fields in the BPF timestamping callback Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 295/486] i3c: master: svc: Flush FIFO before sending Dynamic Address Assignment(DAA) Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 296/486] mfd: axp20x: AXP717: Add AXP717_TS_PIN_CFG to writeable regs Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 297/486] eeprom: ee1004: Check chip before probing Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 298/486] irqchip/riscv-imsic: Separate next and previous pointers in IMSIC vector Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 299/486] drm/amd/pm: Fetch current power limit from PMFW Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 300/486] drm/amd/display: Add support for disconnected eDP streams Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 301/486] drm/amd/display: Guard against setting dispclk low when active Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 302/486] drm/amd/display: Fix BT2020 YCbCr limited/full range input Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 303/486] drm/amd/display: Read LTTPR ALPM caps during link cap retrieval Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 304/486] Revert "drm/amd/display: Request HW cursor on DCN3.2 with SubVP" Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 305/486] drm/amd/display: Don't treat wb connector as physical in create_validate_stream_for_sink Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 306/486] serial: mctrl_gpio: split disable_ms into sync and no_sync APIs Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 307/486] RDMA/core: Fix best page size finding when it can cross SG entries Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 308/486] pmdomain: imx: gpcv2: use proper helper for property detection Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 309/486] can: c_can: Use of_property_present() to test existence of DT property Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 310/486] bpf: don't do clean_live_states when state->loop_entry->branches > 0 Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 311/486] bpf: copy_verifier_state() should copy 'loop_entry' field Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 312/486] eth: mlx4: don't try to complete XDP frames in netpoll Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 313/486] PCI: Fix old_size lower bound in calculate_iosize() too Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 314/486] ACPI: HED: Always initialize before evged Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 315/486] vxlan: Join / leave MC group after remote changes Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 316/486] x86/relocs: Handle R_X86_64_REX_GOTPCRELX relocations Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 317/486] x86/boot: Disable stack protector for early boot code Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 318/486] hrtimers: Replace hrtimer_clock_to_base_table with switch-case Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 319/486] irqchip/riscv-imsic: Set irq_set_affinity() for IMSIC base Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 320/486] media: test-drivers: vivid: don't call schedule in loop Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 321/486] net/mlx5: Modify LSB bitmask in temperature event to include only the first bit Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 322/486] net/mlx5: Apply rate-limiting to high temperature warning Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 323/486] firmware: arm_ffa: Reject higher major version as incompatible Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 324/486] firmware: arm_ffa: Handle the presence of host partition in the partition info Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 325/486] firmware: xilinx: Dont send linux address to get fpga config get status Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 326/486] ASoC: ops: Enforce platform maximum on initial value Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 327/486] ASoC: tas2764: Add reg defaults for TAS2764_INT_CLK_CFG Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 328/486] ASoC: tas2764: Mark SW_RESET as volatile Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 329/486] ASoC: tas2764: Power up/down amp on mute ops Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 330/486] ASoC: soc-dai: check return value at snd_soc_dai_set_tdm_slot() Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 331/486] pinctrl: devicetree: do not goto err when probing hogs in pinctrl_dt_to_map Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 332/486] smack: recognize ipv4 CIPSO w/o categories Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 333/486] smack: Revert "smackfs: Added check catlen" Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 334/486] kunit: tool: Use qboot on QEMU x86_64 Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 335/486] kernfs: Don't re-lock kernfs_root::kernfs_rwsem in kernfs_fop_readdir() Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 336/486] kernfs: Acquire kernfs_rwsem in kernfs_node_dentry() Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 337/486] kernfs: Acquire kernfs_rwsem in kernfs_get_parent_dentry() Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 338/486] kernfs: Acquire kernfs_rwsem in kernfs_notify_workfn() Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 339/486] media: i2c: imx219: Correct the minimum vblanking value Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 340/486] media: v4l: Memset argument to 0 before calling get_mbus_config pad op Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 341/486] libbpf: fix LDX/STX/ST CO-RE relocation size adjustment logic Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 342/486] net/mlx4_core: Avoid impossible mlx4_db_alloc() order value Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 343/486] drm/xe: Stop ignoring errors from xe_ttm_stolen_mgr_init() Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 344/486] drm/xe: Fix xe_tile_init_noalloc() error propagation Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 345/486] clk: qcom: ipq5018: allow it to be bulid on arm32 Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 346/486] clk: qcom: clk-alpha-pll: Do not use random stack value for recalc rate Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 347/486] drm/xe/debugfs: fixed the return value of wedged_mode_set Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 348/486] drm/xe/debugfs: Add missing xe_pm_runtime_put in wedge_mode_set Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 349/486] x86/ibt: Handle FineIBT in handle_cfi_failure() Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 350/486] x86/traps: Cleanup and robustify decode_bug() Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 351/486] sched: Reduce the default slice to avoid tasks getting an extra tick Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 352/486] serial: sh-sci: Update the suspend/resume support Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 353/486] pinctrl: renesas: rzg2l: Add suspend/resume support for pull up/down Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 354/486] phy: phy-rockchip-samsung-hdptx: Swap the definitions of LCPLL_REF and ROPLL_REF Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 355/486] phy: core: don't require set_mode() callback for phy_get_mode() to work Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 356/486] phy: exynos5-usbdrd: fix EDS distribution tuning (gs101) Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 357/486] soundwire: amd: change the soundwire wake enable/disable sequence Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 358/486] soundwire: cadence_master: set frame shape and divider based on actual clk freq Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 359/486] net: stmmac: dwmac-loongson: Set correct {tx,rx}_fifo_size Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 360/486] drm/amdgpu/mes11: fix set_hw_resources_1 calculation Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 361/486] drm/amdkfd: fix missing L2 cache info in topology Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 362/486] drm/amdgpu: Set snoop bit for SDMA for MI series Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 363/486] drm/amd/display: pass calculated dram_speed_mts to dml2 Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 364/486] drm/amd/display: Don't try AUX transactions on disconnected link Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 365/486] drm/amdgpu: reset psp->cmd to NULL after releasing the buffer Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 366/486] drm/amd/pm: Skip P2S load for SMU v13.0.12 Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 367/486] drm/amd/display: Support multiple options during psr entry Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 368/486] Revert "drm/amd/display: Exit idle optimizations before attempt to access PHY" Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 369/486] drm/amd/display: Update CR AUX RD interval interpretation Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 370/486] drm/amd/display: Initial psr_version with correct setting Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 371/486] drm/amd/display: Increase block_sequence array size Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 372/486] drm/amd/display: Use Nominal vBlank If Provided Instead Of Capping It Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 373/486] drm/amd/display: Populate register address for dentist for dcn401 Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 374/486] drm/amdgpu: Use active umc info from discovery Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 375/486] drm/amdgpu: enlarge the VBIOS binary size limit Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 376/486] drm/amd/display/dc: enable oem i2c support for DCE 12.x Sasha Levin
2025-05-06 15:04 ` Alex Deucher
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 377/486] drm/amd/display/dm: drop hw_support check in amdgpu_dm_i2c_xfer() Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 378/486] scsi: target: spc: Fix loop traversal in spc_rsoc_get_descr() Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 379/486] net/mlx5: XDP, Enable TX side XDP multi-buffer support Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 380/486] net/mlx5: Extend Ethtool loopback selftest to support non-linear SKB Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 381/486] net/mlx5e: set the tx_queue_len for pfifo_fast Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 382/486] net/mlx5e: reduce rep rxq depth to 256 for ECPF Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 383/486] net/mlx5e: reduce the max log mpwrq sz for ECPF and reps Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 384/486] drm/v3d: Add clock handling Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 385/486] xfrm: prevent high SEQ input in non-ESN mode Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 386/486] wifi: ath12k: fix the ampdu id fetch in the HAL_RX_MPDU_START TLV Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 387/486] mptcp: pm: userspace: flags: clearer msg if no remote addr Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 388/486] wifi: iwlwifi: use correct IMR dump variable Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 389/486] wifi: iwlwifi: don't warn during reprobe Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 390/486] wifi: mac80211: don't unconditionally call drv_mgd_complete_tx() Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 391/486] wifi: mac80211: remove misplaced drv_mgd_complete_tx() call Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 392/486] wifi: mac80211: set ieee80211_prep_tx_info::link_id upon Auth Rx Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 393/486] net: fec: Refactor MAC reset to function Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 394/486] powerpc/pseries/iommu: memory notifier incorrectly adds TCEs for pmemory Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 395/486] powerpc/pseries/iommu: create DDW for devices with DMA mask less than 64-bits Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 396/486] arch/powerpc/perf: Check the instruction type before creating sample with perf_mem_data_src Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 397/486] ip: fib_rules: Fetch net from fib_rule in fib[46]_rule_configure() Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 398/486] r8152: add vendor/device ID pair for Dell Alienware AW1022z Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 399/486] iio: adc: ad7944: don't use storagebits for sizing Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 400/486] pstore: Change kmsg_bytes storage size to u32 Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 401/486] leds: trigger: netdev: Configure LED blink interval for HW offload Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 402/486] net: ethtool: prevent flow steering to RSS contexts which don't exist Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 403/486] ext4: don't write back data before punch hole in nojournal mode Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 404/486] ext4: remove writable userspace mappings before truncating page cache Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 405/486] wifi: rtw88: Fix download_firmware_validate() for RTL8814AU Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 406/486] wifi: rtw88: Fix __rtw_download_firmware() " Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 407/486] wifi: rtw89: coex: Assign value over than 0 to avoid firmware timer hang Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 408/486] wifi: rtw89: fw: validate multi-firmware header before getting its size Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 409/486] wifi: rtw89: fw: validate multi-firmware header before accessing Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 410/486] wifi: rtw89: call power_on ahead before selecting firmware Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 411/486] clk: qcom: camcc-sm8250: Use clk_rcg2_shared_ops for some RCGs Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 412/486] net: page_pool: avoid false positive warning if NAPI was never added Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 413/486] tools/power turbostat: Clustered Uncore MHz counters should honor show/hide options Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 414/486] exit: change the release_task() paths to call flush_sigqueue() lockless Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 415/486] hwmon: (xgene-hwmon) use appropriate type for the latency value Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 416/486] f2fs: introduce f2fs_base_attr for global sysfs entries Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 417/486] media: qcom: camss: csid: Only add TPG v4l2 ctrl if TPG hardware is available Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 418/486] media: qcom: camss: Add default case in vfe_src_pad_code Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 419/486] drm/rockchip: vop2: Improve display modes handling on RK3588 HDMI0 Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 420/486] eth: fbnic: set IFF_UNICAST_FLT to avoid enabling promiscuous mode when adding unicast addrs Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 421/486] tools: ynl-gen: don't output external constants Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 422/486] net/mlx5e: Avoid WARN_ON when configuring MQPRIO with HTB offload enabled Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 423/486] cpufreq: amd-pstate: Remove unnecessary driver_lock in set_boost Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 424/486] vxlan: Annotate FDB data races Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 425/486] ipv4: ip_gre: Fix set but not used warning in ipgre_err() if IPv4-only Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 426/486] r8169: don't scan PHY addresses > 0 Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 427/486] net: flush_backlog() small changes Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 428/486] bridge: mdb: Allow replace of a host-joined group Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 429/486] net-sysfs: remove rtnl_trylock from queue attributes Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 430/486] net-sysfs: prevent uncleared queues from being re-added Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 431/486] net-sysfs: remove rtnl_trylock from device attributes Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 432/486] ice: init flow director before RDMA Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 433/486] ice: treat dyn_allowed only as suggestion Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 434/486] rcu: handle quiescent states for PREEMPT_RCU=n, PREEMPT_COUNT=y Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 435/486] rcu: handle unstable rdp in rcu_read_unlock_strict() Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 436/486] rcu: fix header guard for rcu_all_qs() Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 437/486] perf: Avoid the read if the count is already updated Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 438/486] ice: count combined queues using Rx/Tx count Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 439/486] drm/xe/relay: Don't use GFP_KERNEL for new transactions Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 440/486] net/mana: fix warning in the writer of client oob Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 441/486] scsi: lpfc: Handle duplicate D_IDs in ndlp search-by D_ID routine Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 442/486] scsi: lpfc: Ignore ndlp rport mismatch in dev_loss_tmo callbk Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 443/486] scsi: lpfc: Free phba irq in lpfc_sli4_enable_msi() when pci_irq_vector() fails Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 444/486] scsi: st: Restore some drive settings after reset Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 445/486] wifi: ath12k: Avoid napi_sync() before napi_enable() Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 446/486] HID: usbkbd: Fix the bit shift number for LED_KANA Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 447/486] arm64: zynqmp: add clock-output-names property in clock nodes Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 448/486] ASoC: codecs: pcm3168a: Allow for 24-bit in provider mode Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 449/486] ASoC: soc-core: Stop using of_property_read_bool() for non-boolean properties Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 450/486] ASoC: rt722-sdca: Add some missing readable registers Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 451/486] irqchip/riscv-aplic: Add support for hart indexes Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 452/486] dm vdo vio-pool: allow variable-sized metadata vios Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 453/486] dm vdo indexer: prevent unterminated string warning Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 454/486] dm vdo: use a short static string for thread name prefix Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 455/486] drm/ast: Find VBIOS mode from regular display size Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 456/486] bpf: Use kallsyms to find the function name of a struct_ops's stub function Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 457/486] bpftool: Fix readlink usage in get_fd_type Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 458/486] firmware: arm_scmi: Relax duplicate name constraint across protocol ids Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 459/486] perf/amd/ibs: Fix perf_ibs_op.cnt_mask for CurCnt Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 460/486] perf/amd/ibs: Fix ->config to sample period calculation for OP PMU Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 461/486] clk: renesas: rzg2l-cpg: Refactor Runtime PM clock validation Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 462/486] wifi: rtl8xxxu: retry firmware download on error Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 463/486] wifi: rtw88: Don't use static local variable in rtw8822b_set_tx_power_index_by_rate Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 464/486] wifi: rtw89: add wiphy_lock() to work that isn't held wiphy_lock() yet Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 465/486] spi: zynqmp-gqspi: Always acknowledge interrupts Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 466/486] regulator: ad5398: Add device tree support Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 467/486] wifi: ath12k: fix ath12k_hal_tx_cmd_ext_desc_setup() info1 override Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 468/486] accel/qaic: Mask out SR-IOV PCI resources Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 469/486] drm/xe/pf: Reset GuC VF config when unprovisioning critical resource Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 470/486] wifi: ath9k: return by of_get_mac_address Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 471/486] wifi: ath12k: Fetch regdb.bin file from board-2.bin Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 472/486] wifi: ath12k: Fix end offset bit definition in monitor ring descriptor Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 473/486] ASoC: hdmi-codec: allow to refine formats actually supported Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 474/486] drm: bridge: adv7511: fill stream capabilities Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 475/486] drm/nouveau: fix the broken marco GSP_MSG_MAX_SIZE Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 476/486] wifi: ath11k: Use dma_alloc_noncoherent for rx_tid buffer allocation Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 477/486] drm/xe: Move suballocator init to after display init Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 478/486] drm/xe: Do not attempt to bootstrap VF in execlists mode Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 479/486] wifi: rtw89: coex: Separated Wi-Fi connecting event from Wi-Fi scan event Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 480/486] drm/xe/sa: Always call drm_suballoc_manager_fini() Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 481/486] drm/xe: Reject BO eviction if BO is bound to current VM Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 482/486] drm/atomic: clarify the rules around drm_atomic_state->allow_modeset Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 483/486] drm/buddy: fix issue that force_merge cannot free all roots Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 484/486] drm/panel-edp: Add Starry 116KHD024006 Sasha Levin
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 485/486] drm: Add valid clones check Sasha Levin
2025-05-05 22:39 ` Sasha Levin [this message]
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=20250505223922.2682012-486-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=alan.maguire@oracle.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bigeasy@linutronix.de \
--cc=bp@alien8.de \
--cc=bpf@vger.kernel.org \
--cc=cgroups@vger.kernel.org \
--cc=dakr@kernel.org \
--cc=daniel@iogearbox.net \
--cc=dave.hansen@linux.intel.com \
--cc=eddyz87@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=hannes@cmpxchg.org \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=mkoutny@suse.com \
--cc=rafael@kernel.org \
--cc=reinette.chatre@intel.com \
--cc=shuah@kernel.org \
--cc=stable@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=tj@kernel.org \
--cc=x86@kernel.org \
--cc=yonghong.song@linux.dev \
/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