From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, Pablo Neira Ayuso <pablo@netfilter.org>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.1 110/170] netfilter: nf_tables: fix chain binding transaction logic
Date: Mon, 26 Jun 2023 20:11:19 +0200 [thread overview]
Message-ID: <20230626180805.464349908@linuxfoundation.org> (raw)
In-Reply-To: <20230626180800.476539630@linuxfoundation.org>
From: Pablo Neira Ayuso <pablo@netfilter.org>
[ Upstream commit 4bedf9eee016286c835e3d8fa981ddece5338795 ]
Add bound flag to rule and chain transactions as in 6a0a8d10a366
("netfilter: nf_tables: use-after-free in failing rule with bound set")
to skip them in case that the chain is already bound from the abort
path.
This patch fixes an imbalance in the chain use refcnt that triggers a
WARN_ON on the table and chain destroy path.
This patch also disallows nested chain bindings, which is not
supported from userspace.
The logic to deal with chain binding in nft_data_hold() and
nft_data_release() is not correct. The NFT_TRANS_PREPARE state needs a
special handling in case a chain is bound but next expressions in the
same rule fail to initialize as described by 1240eb93f061 ("netfilter:
nf_tables: incorrect error path handling with NFT_MSG_NEWRULE").
The chain is left bound if rule construction fails, so the objects
stored in this chain (and the chain itself) are released by the
transaction records from the abort path, follow up patch ("netfilter:
nf_tables: add NFT_TRANS_PREPARE_ERROR to deal with bound set/chain")
completes this error handling.
When deleting an existing rule, chain bound flag is set off so the
rule expression .destroy path releases the objects.
Fixes: d0e2c7de92c7 ("netfilter: nf_tables: add NFT_CHAIN_BINDING")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
include/net/netfilter/nf_tables.h | 21 +++++++-
net/netfilter/nf_tables_api.c | 86 +++++++++++++++++++-----------
net/netfilter/nft_immediate.c | 87 +++++++++++++++++++++++++++----
3 files changed, 153 insertions(+), 41 deletions(-)
diff --git a/include/net/netfilter/nf_tables.h b/include/net/netfilter/nf_tables.h
index 22e96b7e1b44a..c13a84c0b4965 100644
--- a/include/net/netfilter/nf_tables.h
+++ b/include/net/netfilter/nf_tables.h
@@ -1002,7 +1002,10 @@ static inline struct nft_userdata *nft_userdata(const struct nft_rule *rule)
return (void *)&rule->data[rule->dlen];
}
-void nf_tables_rule_release(const struct nft_ctx *ctx, struct nft_rule *rule);
+void nft_rule_expr_activate(const struct nft_ctx *ctx, struct nft_rule *rule);
+void nft_rule_expr_deactivate(const struct nft_ctx *ctx, struct nft_rule *rule,
+ enum nft_trans_phase phase);
+void nf_tables_rule_destroy(const struct nft_ctx *ctx, struct nft_rule *rule);
static inline void nft_set_elem_update_expr(const struct nft_set_ext *ext,
struct nft_regs *regs,
@@ -1085,6 +1088,7 @@ int nft_setelem_validate(const struct nft_ctx *ctx, struct nft_set *set,
const struct nft_set_iter *iter,
struct nft_set_elem *elem);
int nft_set_catchall_validate(const struct nft_ctx *ctx, struct nft_set *set);
+int nf_tables_bind_chain(const struct nft_ctx *ctx, struct nft_chain *chain);
enum nft_chain_types {
NFT_CHAIN_T_DEFAULT = 0,
@@ -1121,11 +1125,17 @@ int nft_chain_validate_dependency(const struct nft_chain *chain,
int nft_chain_validate_hooks(const struct nft_chain *chain,
unsigned int hook_flags);
+static inline bool nft_chain_binding(const struct nft_chain *chain)
+{
+ return chain->flags & NFT_CHAIN_BINDING;
+}
+
static inline bool nft_chain_is_bound(struct nft_chain *chain)
{
return (chain->flags & NFT_CHAIN_BINDING) && chain->bound;
}
+int nft_chain_add(struct nft_table *table, struct nft_chain *chain);
void nft_chain_del(struct nft_chain *chain);
void nf_tables_chain_destroy(struct nft_ctx *ctx);
@@ -1560,6 +1570,7 @@ struct nft_trans_rule {
struct nft_rule *rule;
struct nft_flow_rule *flow;
u32 rule_id;
+ bool bound;
};
#define nft_trans_rule(trans) \
@@ -1568,6 +1579,8 @@ struct nft_trans_rule {
(((struct nft_trans_rule *)trans->data)->flow)
#define nft_trans_rule_id(trans) \
(((struct nft_trans_rule *)trans->data)->rule_id)
+#define nft_trans_rule_bound(trans) \
+ (((struct nft_trans_rule *)trans->data)->bound)
struct nft_trans_set {
struct nft_set *set;
@@ -1592,13 +1605,17 @@ struct nft_trans_set {
(((struct nft_trans_set *)trans->data)->gc_int)
struct nft_trans_chain {
+ struct nft_chain *chain;
bool update;
char *name;
struct nft_stats __percpu *stats;
u8 policy;
+ bool bound;
u32 chain_id;
};
+#define nft_trans_chain(trans) \
+ (((struct nft_trans_chain *)trans->data)->chain)
#define nft_trans_chain_update(trans) \
(((struct nft_trans_chain *)trans->data)->update)
#define nft_trans_chain_name(trans) \
@@ -1607,6 +1624,8 @@ struct nft_trans_chain {
(((struct nft_trans_chain *)trans->data)->stats)
#define nft_trans_chain_policy(trans) \
(((struct nft_trans_chain *)trans->data)->policy)
+#define nft_trans_chain_bound(trans) \
+ (((struct nft_trans_chain *)trans->data)->bound)
#define nft_trans_chain_id(trans) \
(((struct nft_trans_chain *)trans->data)->chain_id)
diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
index 13d4913266b4d..8f8e315691dde 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -195,6 +195,48 @@ static void nft_set_trans_bind(const struct nft_ctx *ctx, struct nft_set *set)
}
}
+static void nft_chain_trans_bind(const struct nft_ctx *ctx, struct nft_chain *chain)
+{
+ struct nftables_pernet *nft_net;
+ struct net *net = ctx->net;
+ struct nft_trans *trans;
+
+ if (!nft_chain_binding(chain))
+ return;
+
+ nft_net = nft_pernet(net);
+ list_for_each_entry_reverse(trans, &nft_net->commit_list, list) {
+ switch (trans->msg_type) {
+ case NFT_MSG_NEWCHAIN:
+ if (nft_trans_chain(trans) == chain)
+ nft_trans_chain_bound(trans) = true;
+ break;
+ case NFT_MSG_NEWRULE:
+ if (trans->ctx.chain == chain)
+ nft_trans_rule_bound(trans) = true;
+ break;
+ }
+ }
+}
+
+int nf_tables_bind_chain(const struct nft_ctx *ctx, struct nft_chain *chain)
+{
+ if (!nft_chain_binding(chain))
+ return 0;
+
+ if (nft_chain_binding(ctx->chain))
+ return -EOPNOTSUPP;
+
+ if (chain->bound)
+ return -EBUSY;
+
+ chain->bound = true;
+ chain->use++;
+ nft_chain_trans_bind(ctx, chain);
+
+ return 0;
+}
+
static int nft_netdev_register_hooks(struct net *net,
struct list_head *hook_list)
{
@@ -340,8 +382,9 @@ static struct nft_trans *nft_trans_chain_add(struct nft_ctx *ctx, int msg_type)
ntohl(nla_get_be32(ctx->nla[NFTA_CHAIN_ID]));
}
}
-
+ nft_trans_chain(trans) = ctx->chain;
nft_trans_commit_list_add_tail(ctx->net, trans);
+
return trans;
}
@@ -359,8 +402,7 @@ static int nft_delchain(struct nft_ctx *ctx)
return 0;
}
-static void nft_rule_expr_activate(const struct nft_ctx *ctx,
- struct nft_rule *rule)
+void nft_rule_expr_activate(const struct nft_ctx *ctx, struct nft_rule *rule)
{
struct nft_expr *expr;
@@ -373,9 +415,8 @@ static void nft_rule_expr_activate(const struct nft_ctx *ctx,
}
}
-static void nft_rule_expr_deactivate(const struct nft_ctx *ctx,
- struct nft_rule *rule,
- enum nft_trans_phase phase)
+void nft_rule_expr_deactivate(const struct nft_ctx *ctx, struct nft_rule *rule,
+ enum nft_trans_phase phase)
{
struct nft_expr *expr;
@@ -2188,7 +2229,7 @@ static int nft_basechain_init(struct nft_base_chain *basechain, u8 family,
return 0;
}
-static int nft_chain_add(struct nft_table *table, struct nft_chain *chain)
+int nft_chain_add(struct nft_table *table, struct nft_chain *chain)
{
int err;
@@ -3315,8 +3356,7 @@ static int nf_tables_getrule(struct sk_buff *skb, const struct nfnl_info *info,
return err;
}
-static void nf_tables_rule_destroy(const struct nft_ctx *ctx,
- struct nft_rule *rule)
+void nf_tables_rule_destroy(const struct nft_ctx *ctx, struct nft_rule *rule)
{
struct nft_expr *expr, *next;
@@ -3333,7 +3373,7 @@ static void nf_tables_rule_destroy(const struct nft_ctx *ctx,
kfree(rule);
}
-void nf_tables_rule_release(const struct nft_ctx *ctx, struct nft_rule *rule)
+static void nf_tables_rule_release(const struct nft_ctx *ctx, struct nft_rule *rule)
{
nft_rule_expr_deactivate(ctx, rule, NFT_TRANS_RELEASE);
nf_tables_rule_destroy(ctx, rule);
@@ -6446,7 +6486,6 @@ static int nf_tables_newsetelem(struct sk_buff *skb,
void nft_data_hold(const struct nft_data *data, enum nft_data_types type)
{
struct nft_chain *chain;
- struct nft_rule *rule;
if (type == NFT_DATA_VERDICT) {
switch (data->verdict.code) {
@@ -6454,15 +6493,6 @@ void nft_data_hold(const struct nft_data *data, enum nft_data_types type)
case NFT_GOTO:
chain = data->verdict.chain;
chain->use++;
-
- if (!nft_chain_is_bound(chain))
- break;
-
- chain->table->use++;
- list_for_each_entry(rule, &chain->rules, list)
- chain->use++;
-
- nft_chain_add(chain->table, chain);
break;
}
}
@@ -9368,7 +9398,7 @@ static int __nf_tables_abort(struct net *net, enum nfnl_abort_action action)
kfree(nft_trans_chain_name(trans));
nft_trans_destroy(trans);
} else {
- if (nft_chain_is_bound(trans->ctx.chain)) {
+ if (nft_trans_chain_bound(trans)) {
nft_trans_destroy(trans);
break;
}
@@ -9385,6 +9415,10 @@ static int __nf_tables_abort(struct net *net, enum nfnl_abort_action action)
nft_trans_destroy(trans);
break;
case NFT_MSG_NEWRULE:
+ if (nft_trans_rule_bound(trans)) {
+ nft_trans_destroy(trans);
+ break;
+ }
trans->ctx.chain->use--;
list_del_rcu(&nft_trans_rule(trans)->list);
nft_rule_expr_deactivate(&trans->ctx,
@@ -9943,22 +9977,12 @@ static int nft_verdict_init(const struct nft_ctx *ctx, struct nft_data *data,
static void nft_verdict_uninit(const struct nft_data *data)
{
struct nft_chain *chain;
- struct nft_rule *rule;
switch (data->verdict.code) {
case NFT_JUMP:
case NFT_GOTO:
chain = data->verdict.chain;
chain->use--;
-
- if (!nft_chain_is_bound(chain))
- break;
-
- chain->table->use--;
- list_for_each_entry(rule, &chain->rules, list)
- chain->use--;
-
- nft_chain_del(chain);
break;
}
}
diff --git a/net/netfilter/nft_immediate.c b/net/netfilter/nft_immediate.c
index 5f28b21abc7df..457fc1e218410 100644
--- a/net/netfilter/nft_immediate.c
+++ b/net/netfilter/nft_immediate.c
@@ -76,11 +76,9 @@ static int nft_immediate_init(const struct nft_ctx *ctx,
switch (priv->data.verdict.code) {
case NFT_JUMP:
case NFT_GOTO:
- if (nft_chain_is_bound(chain)) {
- err = -EBUSY;
- goto err1;
- }
- chain->bound = true;
+ err = nf_tables_bind_chain(ctx, chain);
+ if (err < 0)
+ return err;
break;
default:
break;
@@ -98,6 +96,31 @@ static void nft_immediate_activate(const struct nft_ctx *ctx,
const struct nft_expr *expr)
{
const struct nft_immediate_expr *priv = nft_expr_priv(expr);
+ const struct nft_data *data = &priv->data;
+ struct nft_ctx chain_ctx;
+ struct nft_chain *chain;
+ struct nft_rule *rule;
+
+ if (priv->dreg == NFT_REG_VERDICT) {
+ switch (data->verdict.code) {
+ case NFT_JUMP:
+ case NFT_GOTO:
+ chain = data->verdict.chain;
+ if (!nft_chain_binding(chain))
+ break;
+
+ chain_ctx = *ctx;
+ chain_ctx.chain = chain;
+
+ list_for_each_entry(rule, &chain->rules, list)
+ nft_rule_expr_activate(&chain_ctx, rule);
+
+ nft_clear(ctx->net, chain);
+ break;
+ default:
+ break;
+ }
+ }
return nft_data_hold(&priv->data, nft_dreg_to_type(priv->dreg));
}
@@ -107,6 +130,40 @@ static void nft_immediate_deactivate(const struct nft_ctx *ctx,
enum nft_trans_phase phase)
{
const struct nft_immediate_expr *priv = nft_expr_priv(expr);
+ const struct nft_data *data = &priv->data;
+ struct nft_ctx chain_ctx;
+ struct nft_chain *chain;
+ struct nft_rule *rule;
+
+ if (priv->dreg == NFT_REG_VERDICT) {
+ switch (data->verdict.code) {
+ case NFT_JUMP:
+ case NFT_GOTO:
+ chain = data->verdict.chain;
+ if (!nft_chain_binding(chain))
+ break;
+
+ chain_ctx = *ctx;
+ chain_ctx.chain = chain;
+
+ list_for_each_entry(rule, &chain->rules, list)
+ nft_rule_expr_deactivate(&chain_ctx, rule, phase);
+
+ switch (phase) {
+ case NFT_TRANS_PREPARE:
+ nft_deactivate_next(ctx->net, chain);
+ break;
+ default:
+ nft_chain_del(chain);
+ chain->bound = false;
+ chain->table->use--;
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+ }
if (phase == NFT_TRANS_COMMIT)
return;
@@ -131,15 +188,27 @@ static void nft_immediate_destroy(const struct nft_ctx *ctx,
case NFT_GOTO:
chain = data->verdict.chain;
- if (!nft_chain_is_bound(chain))
+ if (!nft_chain_binding(chain))
+ break;
+
+ /* Rule construction failed, but chain is already bound:
+ * let the transaction records release this chain and its rules.
+ */
+ if (chain->bound) {
+ chain->use--;
break;
+ }
+ /* Rule has been deleted, release chain and its rules. */
chain_ctx = *ctx;
chain_ctx.chain = chain;
- list_for_each_entry_safe(rule, n, &chain->rules, list)
- nf_tables_rule_release(&chain_ctx, rule);
-
+ chain->use--;
+ list_for_each_entry_safe(rule, n, &chain->rules, list) {
+ chain->use--;
+ list_del(&rule->list);
+ nf_tables_rule_destroy(&chain_ctx, rule);
+ }
nf_tables_chain_destroy(&chain_ctx);
break;
default:
--
2.39.2
next prev parent reply other threads:[~2023-06-26 18:33 UTC|newest]
Thread overview: 180+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-26 18:09 [PATCH 6.1 000/170] 6.1.36-rc1 review Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 001/170] drm/amd/display: Use dc_update_planes_and_stream Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 002/170] drm/amd/display: Add wrapper to call planes and stream update Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 003/170] drm/amd/display: fix the system hang while disable PSR Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 004/170] tty: serial: fsl_lpuart: make rx_watermark configurable for different platforms Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 005/170] tty: serial: fsl_lpuart: reduce RX watermark to 0 on LS1028A Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 006/170] ata: libata-scsi: Avoid deadlock on rescan after device resume Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 007/170] mm: Fix copy_from_user_nofault() Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 008/170] tpm, tpm_tis: Claim locality in interrupt handler Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 009/170] tpm_crb: Add support for CRB devices based on Pluton Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 010/170] ksmbd: validate command payload size Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 011/170] ksmbd: fix out-of-bound read in smb2_write Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 012/170] ksmbd: validate session id and tree id in the compound request Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 013/170] tick/common: Align tick period during sched_timer setup Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 014/170] selftests: mptcp: remove duplicated entries in usage Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 015/170] selftests: mptcp: join: fix ShellCheck warnings Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 016/170] selftests: mptcp: lib: skip if missing symbol Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 017/170] selftests: mptcp: connect: skip transp tests if not supported Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 018/170] selftests: mptcp: connect: skip disconnect " Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 019/170] selftests: mptcp: pm nl: remove hardcoded default limits Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 020/170] selftests: mptcp: pm nl: skip fullmesh flag checks if not supported Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 021/170] selftests: mptcp: sockopt: relax expected returned size Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 022/170] selftests: mptcp: sockopt: skip getsockopt checks if not supported Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 023/170] selftests: mptcp: userspace pm: skip if ip tool is unavailable Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 024/170] selftests: mptcp: userspace pm: skip if not supported Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 025/170] selftests: mptcp: lib: skip if not below kernel version Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 026/170] selftests: mptcp: join: use iptables-legacy if available Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 027/170] selftests: mptcp: join: helpers to skip tests Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 028/170] selftests: mptcp: join: skip check if MIB counter not supported Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 029/170] selftests: mptcp: join: support local endpoint being tracked or not Greg Kroah-Hartman
2023-06-26 18:09 ` [PATCH 6.1 030/170] selftests: mptcp: join: skip Fastclose tests if not supported Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 031/170] selftests: mptcp: join: support RM_ADDR for used endpoints or not Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 032/170] selftests: mptcp: join: skip implicit tests if not supported Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 033/170] selftests: mptcp: join: skip backup if set flag on ID " Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 034/170] selftests: mptcp: join: skip fullmesh flag tests if " Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 035/170] selftests: mptcp: join: skip MPC backups " Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 036/170] selftests/mount_setattr: fix redefine struct mount_attr build error Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 037/170] selftests: mptcp: diag: skip listen tests if not supported Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 038/170] selftests: mptcp: sockopt: skip TCP_INQ checks " Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 039/170] selftests: mptcp: join: skip test if iptables/tc cmds fail Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 040/170] selftests: mptcp: join: skip userspace PM tests if not supported Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 041/170] selftests: mptcp: join: skip fail " Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 042/170] selftests: mptcp: join: fix "userspace pm add & remove address" Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 043/170] writeback: fix dereferencing NULL mapping->host on writeback_page_template Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 044/170] scripts: fix the gfp flags header path in gfp-translate Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 045/170] nilfs2: fix buffer corruption due to concurrent device reads Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 046/170] ACPI: sleep: Avoid breaking S3 wakeup due to might_sleep() Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 047/170] KVM: Avoid illegal stage2 mapping on invalid memory slot Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 048/170] Drivers: hv: vmbus: Call hv_synic_free() if hv_synic_alloc() fails Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 049/170] Drivers: hv: vmbus: Fix vmbus_wait_for_unload() to scan present CPUs Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 050/170] PCI: hv: Fix a race condition bug in hv_pci_query_relations() Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 051/170] Revert "PCI: hv: Fix a timing issue which causes kdump to fail occasionally" Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 052/170] PCI: hv: Remove the useless hv_pcichild_state from struct hv_pci_dev Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 053/170] PCI: hv: Fix a race condition in hv_irq_unmask() that can cause panic Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 054/170] PCI: hv: Add a per-bus mutex state_lock Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 055/170] io_uring/net: clear msg_controllen on partial sendmsg retry Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 056/170] io_uring/net: disable partial retries for recvmsg with cmsg Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 057/170] mptcp: handle correctly disconnect() failures Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 058/170] mptcp: fix possible divide by zero in recvmsg() Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 059/170] mptcp: fix possible list corruption on passive MPJ Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 060/170] mptcp: consolidate fallback and non fallback state machine Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 061/170] cgroup: Do not corrupt task iteration when rebinding subsystem Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 062/170] cgroup,freezer: hold cpu_hotplug_lock before freezer_mutex in freezer_css_{online,offline}() Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 063/170] mmc: litex_mmc: set PROBE_PREFER_ASYNCHRONOUS Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 064/170] mmc: sdhci-msm: Disable broken 64-bit DMA on MSM8916 Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 065/170] mmc: meson-gx: remove redundant mmc_request_done() call from irq context Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 066/170] mmc: mmci: stm32: fix max busy timeout calculation Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 067/170] mmc: sdhci-spear: fix deferred probing Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 068/170] mmc: bcm2835: " Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 069/170] mmc: sunxi: " Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 070/170] bpf: ensure main program has an extable Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 071/170] wifi: iwlwifi: pcie: Handle SO-F device for PCI id 0x7AF0 Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 072/170] spi: spi-geni-qcom: correctly handle -EPROBE_DEFER from dma_request_chan() Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 073/170] regulator: pca9450: Fix LDO3OUT and LDO4OUT MASK Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 074/170] regmap: spi-avmm: Fix regmap_bus max_raw_write Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 075/170] arm64: dts: rockchip: Fix rk356x PCIe register and range mappings Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 076/170] io_uring/poll: serialize poll linked timer start with poll removal Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 077/170] nilfs2: prevent general protection fault in nilfs_clear_dirty_page() Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 078/170] x86/mm: Avoid using set_pgd() outside of real PGD pages Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 079/170] memfd: check for non-NULL file_seals in memfd_create() syscall Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 080/170] mmc: meson-gx: fix deferred probing Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 081/170] ieee802154: hwsim: Fix possible memory leaks Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 082/170] xfrm: Treat already-verified secpath entries as optional Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 083/170] xfrm: interface: rename xfrm_interface.c to xfrm_interface_core.c Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 084/170] xfrm: Ensure policies always checked on XFRM-I input path Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 085/170] KVM: arm64: PMU: Restore the hosts PMUSERENR_EL0 Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 086/170] bpf: track immediate values written to stack by BPF_ST instruction Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 087/170] bpf: Fix verifier id tracking of scalars on spill Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 088/170] xfrm: fix inbound ipv4/udp/esp packets to UDPv6 dualstack sockets Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 089/170] bpf: Fix a bpf_jit_dump issue for x86_64 with sysctl bpf_jit_enable Greg Kroah-Hartman
2023-06-26 18:10 ` [PATCH 6.1 090/170] selftests: net: tls: check if FIPS mode is enabled Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 091/170] selftests: net: vrf-xfrm-tests: change authentication and encryption algos Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 092/170] selftests: net: fcnal-test: check if FIPS mode is enabled Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 093/170] xfrm: Linearize the skb after offloading if needed Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 094/170] net/mlx5: DR, Fix wrong action data allocation in decap action Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 095/170] sfc: use budget for TX completions Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 096/170] net: qca_spi: Avoid high load if QCA7000 is not available Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 097/170] mmc: mtk-sd: fix deferred probing Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 098/170] mmc: mvsdio: " Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 099/170] mmc: omap: " Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 100/170] mmc: omap_hsmmc: " Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 101/170] mmc: owl: " Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 102/170] mmc: sdhci-acpi: " Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 103/170] mmc: sh_mmcif: " Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 104/170] mmc: usdhi60rol0: " Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 105/170] ipvs: align inner_mac_header for encapsulation Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 106/170] net: dsa: mt7530: fix trapping frames on non-MT7621 SoC MT7530 switch Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 107/170] net: dsa: mt7530: fix handling of BPDUs on " Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 108/170] net: dsa: mt7530: fix handling of LLDP frames Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 109/170] be2net: Extend xmit workaround to BE3 chip Greg Kroah-Hartman
2023-06-26 18:11 ` Greg Kroah-Hartman [this message]
2023-06-26 18:11 ` [PATCH 6.1 111/170] netfilter: nf_tables: add NFT_TRANS_PREPARE_ERROR to deal with bound set/chain Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 112/170] netfilter: nf_tables: drop map element references from preparation phase Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 113/170] netfilter: nft_set_pipapo: .walk does not deal with generations Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 114/170] netfilter: nf_tables: disallow element updates of bound anonymous sets Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 115/170] netfilter: nf_tables: reject unbound anonymous set before commit phase Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 116/170] netfilter: nf_tables: reject unbound chain " Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 117/170] netfilter: nf_tables: disallow updates of anonymous sets Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 118/170] netfilter: nfnetlink_osf: fix module autoload Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 119/170] Revert "net: phy: dp83867: perform soft reset and retain established link" Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 120/170] bpf/btf: Accept function names that contain dots Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 121/170] bpf: Force kprobe multi expected_attach_type for kprobe_multi link Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 122/170] io_uring/net: use the correct msghdr union member in io_sendmsg_copy_hdr Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 123/170] selftests: forwarding: Fix race condition in mirror installation Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 124/170] platform/x86/amd/pmf: Register notify handler only if SPS is enabled Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 125/170] sch_netem: acquire qdisc lock in netem_change() Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 126/170] revert "net: align SO_RCVMARK required privileges with SO_MARK" Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 127/170] arm64: dts: rockchip: Enable GPU on SOQuartz CM4 Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 128/170] arm64: dts: rockchip: fix nEXTRST on SOQuartz Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 129/170] gpiolib: Fix GPIO chip IRQ initialization restriction Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 130/170] gpio: sifive: add missing check for platform_get_irq Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 131/170] gpiolib: Fix irq_domain resource tracking for gpiochip_irqchip_add_domain() Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 132/170] scsi: target: iscsi: Prevent login threads from racing between each other Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 133/170] HID: wacom: Add error check to wacom_parse_and_register() Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 134/170] arm64: Add missing Set/Way CMO encodings Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 135/170] smb3: missing null check in SMB2_change_notify Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 136/170] media: cec: core: disable adapter in cec_devnode_unregister Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 137/170] media: cec: core: dont set last_initiator if tx in progress Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 138/170] nfcsim.c: Fix error checking for debugfs_create_dir Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 139/170] btrfs: fix an uninitialized variable warning in btrfs_log_inode Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 140/170] usb: gadget: udc: fix NULL dereference in remove() Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 141/170] nvme: double KA polling frequency to avoid KATO with TBKAS on Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 142/170] nvme: check IO start time when deciding to defer KA Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 143/170] nvme: improve handling of long keep alives Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 144/170] Input: soc_button_array - add invalid acpi_index DMI quirk handling Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 145/170] arm64: dts: qcom: sc7280-idp: drop incorrect dai-cells from WCD938x SDW Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 146/170] arm64: dts: qcom: sc7280-qcard: " Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 147/170] s390/cio: unregister device when the only path is gone Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 148/170] spi: lpspi: disable lpspi module irq in DMA mode Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 149/170] ASoC: codecs: wcd938x-sdw: do not set can_multi_write flag Greg Kroah-Hartman
2023-06-26 18:11 ` [PATCH 6.1 150/170] ASoC: simple-card: Add missing of_node_put() in case of error Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 151/170] soundwire: dmi-quirks: add new mapping for HP Spectre x360 Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 152/170] soundwire: qcom: add proper error paths in qcom_swrm_startup() Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 153/170] ASoC: nau8824: Add quirk to active-high jack-detect Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 154/170] ASoC: amd: yc: Add Thinkpad Neo14 to quirks list for acp6x Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 155/170] gfs2: Dont get stuck writing page onto itself under direct I/O Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 156/170] s390/purgatory: disable branch profiling Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 157/170] ASoC: fsl_sai: Enable BCI bit if SAI works on synchronous mode with BYP asserted Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 158/170] ALSA: hda/realtek: Add "Intel Reference board" and "NUC 13" SSID in the ALC256 Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 159/170] i2c: mchp-pci1xxxx: Avoid cast to incompatible function type Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 160/170] ARM: dts: Fix erroneous ADS touchscreen polarities Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 161/170] null_blk: Fix: memory release when memory_backed=1 Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 162/170] drm/exynos: vidi: fix a wrong error return Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 163/170] drm/exynos: fix race condition UAF in exynos_g2d_exec_ioctl Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 164/170] drm/radeon: fix race condition UAF in radeon_gem_set_domain_ioctl Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 165/170] vhost_vdpa: tell vqs about the negotiated Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 166/170] vhost_net: revert upend_idx only on retriable error Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 167/170] KVM: arm64: Restore GICv2-on-GICv3 functionality Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 168/170] x86/apic: Fix kernel panic when booting with intremap=off and x2apic_phys Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 169/170] i2c: imx-lpi2c: fix type char overflow issue when calculating the clock cycle Greg Kroah-Hartman
2023-06-26 18:12 ` [PATCH 6.1 170/170] smb: move client and server files to common directory fs/smb Greg Kroah-Hartman
2023-06-26 21:45 ` [PATCH 6.1 000/170] 6.1.36-rc1 review ogasawara takeshi
2023-06-27 9:04 ` Jon Hunter
2023-06-27 13:38 ` Conor Dooley
2023-06-27 14:52 ` Markus Reichelt
2023-06-27 20:11 ` Chris Paterson
2023-06-27 21:01 ` Ron Economos
2023-06-27 21:33 ` Guenter Roeck
2023-06-28 6:35 ` Naresh Kamboju
2023-06-28 17:36 ` Allen Pais
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=20230626180805.464349908@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=pablo@netfilter.org \
--cc=patches@lists.linux.dev \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).