From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Khalid Manaa <khalidm@nvidia.com>,
Ben Ben-Ishay <benishay@nvidia.com>,
Tariq Toukan <tariqt@nvidia.com>,
Saeed Mahameed <saeedm@nvidia.com>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.15 182/207] net/mlx5e: Rename TIR lro functions to TIR packet merge functions
Date: Mon, 6 Dec 2021 15:57:16 +0100 [thread overview]
Message-ID: <20211206145616.574984996@linuxfoundation.org> (raw)
In-Reply-To: <20211206145610.172203682@linuxfoundation.org>
From: Khalid Manaa <khalidm@nvidia.com>
[ Upstream commit eaee12f046924eeb1210c7e4f3b326603ff1bd85 ]
This series introduces new packet merge type, therefore rename lro
functions to packet merge to support the new merge type:
- Generalize + rename mlx5e_build_tir_ctx_lro to
mlx5e_build_tir_ctx_packet_merge.
- Rename mlx5e_modify_tirs_lro to mlx5e_modify_tirs_packet_merge.
- Rename lro bit in mlx5_ifc_modify_tir_bitmask_bits to packet_merge.
- Rename lro_en in mlx5e_params to packet_merge_type type and combine
packet_merge params into one struct mlx5e_packet_merge_param.
Signed-off-by: Khalid Manaa <khalidm@nvidia.com>
Signed-off-by: Ben Ben-Ishay <benishay@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/mellanox/mlx5/core/en.h | 14 +++++-
.../ethernet/mellanox/mlx5/core/en/params.c | 21 +++------
.../ethernet/mellanox/mlx5/core/en/params.h | 6 ---
| 23 +++++-----
| 7 +--
.../ethernet/mellanox/mlx5/core/en/rx_res.c | 25 +++++-----
.../ethernet/mellanox/mlx5/core/en/rx_res.h | 5 +-
.../net/ethernet/mellanox/mlx5/core/en/tir.c | 10 ++--
.../net/ethernet/mellanox/mlx5/core/en/tir.h | 6 +--
.../ethernet/mellanox/mlx5/core/en_ethtool.c | 4 +-
.../mellanox/mlx5/core/en_fs_ethtool.c | 6 +--
.../net/ethernet/mellanox/mlx5/core/en_main.c | 46 +++++++++++--------
.../net/ethernet/mellanox/mlx5/core/en_rep.c | 5 +-
.../ethernet/mellanox/mlx5/core/ipoib/ipoib.c | 7 ++-
include/linux/mlx5/mlx5_ifc.h | 2 +-
15 files changed, 95 insertions(+), 92 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h
index d9d19130c1a34..c10a107a3ea53 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en.h
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h
@@ -244,6 +244,17 @@ enum mlx5e_priv_flag {
#define MLX5E_GET_PFLAG(params, pflag) (!!((params)->pflags & (BIT(pflag))))
+enum packet_merge {
+ MLX5E_PACKET_MERGE_NONE,
+ MLX5E_PACKET_MERGE_LRO,
+ MLX5E_PACKET_MERGE_SHAMPO,
+};
+
+struct mlx5e_packet_merge_param {
+ enum packet_merge type;
+ u32 timeout;
+};
+
struct mlx5e_params {
u8 log_sq_size;
u8 rq_wq_type;
@@ -258,13 +269,12 @@ struct mlx5e_params {
bool tunneled_offload_en;
struct dim_cq_moder rx_cq_moderation;
struct dim_cq_moder tx_cq_moderation;
- bool lro_en;
+ struct mlx5e_packet_merge_param packet_merge;
u8 tx_min_inline_mode;
bool vlan_strip_disable;
bool scatter_fcs_en;
bool rx_dim_enabled;
bool tx_dim_enabled;
- u32 packet_merge_timeout;
u32 pflags;
struct bpf_prog *xdp_prog;
struct mlx5e_xsk *xsk;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/params.c b/drivers/net/ethernet/mellanox/mlx5/core/en/params.c
index 2b2b3c5cdbd5c..15f441a1b80c2 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/params.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/params.c
@@ -87,7 +87,8 @@ bool mlx5e_rx_is_linear_skb(struct mlx5e_params *params,
u32 linear_frag_sz = max(mlx5e_rx_get_linear_frag_sz(params, xsk),
mlx5e_rx_get_linear_frag_sz(params, NULL));
- return !params->lro_en && linear_frag_sz <= PAGE_SIZE;
+ return params->packet_merge.type == MLX5E_PACKET_MERGE_NONE &&
+ linear_frag_sz <= PAGE_SIZE;
}
bool mlx5e_verify_rx_mpwqe_strides(struct mlx5_core_dev *mdev,
@@ -164,19 +165,8 @@ u16 mlx5e_get_rq_headroom(struct mlx5_core_dev *mdev,
mlx5e_rx_is_linear_skb(params, xsk) :
mlx5e_rx_mpwqe_is_linear_skb(mdev, params, xsk);
- return is_linear_skb ? mlx5e_get_linear_rq_headroom(params, xsk) : 0;
-}
-
-struct mlx5e_lro_param mlx5e_get_lro_param(struct mlx5e_params *params)
-{
- struct mlx5e_lro_param lro_param;
-
- lro_param = (struct mlx5e_lro_param) {
- .enabled = params->lro_en,
- .timeout = params->packet_merge_timeout,
- };
-
- return lro_param;
+ return is_linear_skb || params->packet_merge.type == MLX5E_PACKET_MERGE_SHAMPO ?
+ mlx5e_get_linear_rq_headroom(params, xsk) : 0;
}
u16 mlx5e_calc_sq_stop_room(struct mlx5_core_dev *mdev, struct mlx5e_params *params)
@@ -485,10 +475,11 @@ static void mlx5e_build_rx_cq_param(struct mlx5_core_dev *mdev,
static u8 rq_end_pad_mode(struct mlx5_core_dev *mdev, struct mlx5e_params *params)
{
+ bool lro_en = params->packet_merge.type == MLX5E_PACKET_MERGE_LRO;
bool ro = pcie_relaxed_ordering_enabled(mdev->pdev) &&
MLX5_CAP_GEN(mdev, relaxed_ordering_write);
- return ro && params->lro_en ?
+ return ro && lro_en ?
MLX5_WQ_END_PAD_MODE_NONE : MLX5_WQ_END_PAD_MODE_ALIGN;
}
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/params.h b/drivers/net/ethernet/mellanox/mlx5/core/en/params.h
index 879ad46d754e1..e9593f5f06610 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/params.h
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/params.h
@@ -11,11 +11,6 @@ struct mlx5e_xsk_param {
u16 chunk_size;
};
-struct mlx5e_lro_param {
- bool enabled;
- u32 timeout;
-};
-
struct mlx5e_cq_param {
u32 cqc[MLX5_ST_SZ_DW(cqc)];
struct mlx5_wq_param wq;
@@ -125,7 +120,6 @@ u8 mlx5e_mpwqe_get_log_num_strides(struct mlx5_core_dev *mdev,
u16 mlx5e_get_rq_headroom(struct mlx5_core_dev *mdev,
struct mlx5e_params *params,
struct mlx5e_xsk_param *xsk);
-struct mlx5e_lro_param mlx5e_get_lro_param(struct mlx5e_params *params);
/* Build queue parameters */
--git a/drivers/net/ethernet/mellanox/mlx5/core/en/rss.c b/drivers/net/ethernet/mellanox/mlx5/core/en/rss.c
index 625cd49ef96c5..7b55b14d47ef7 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/rss.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/rss.c
@@ -127,7 +127,7 @@ mlx5e_rss_get_tt_config(struct mlx5e_rss *rss, enum mlx5_traffic_types tt)
static int mlx5e_rss_create_tir(struct mlx5e_rss *rss,
enum mlx5_traffic_types tt,
- const struct mlx5e_lro_param *init_lro_param,
+ const struct mlx5e_packet_merge_param *init_pkt_merge_param,
bool inner)
{
struct mlx5e_rss_params_traffic_type rss_tt;
@@ -161,7 +161,7 @@ static int mlx5e_rss_create_tir(struct mlx5e_rss *rss,
rqtn = mlx5e_rqt_get_rqtn(&rss->rqt);
mlx5e_tir_builder_build_rqt(builder, rss->mdev->mlx5e_res.hw_objs.td.tdn,
rqtn, rss->inner_ft_support);
- mlx5e_tir_builder_build_lro(builder, init_lro_param);
+ mlx5e_tir_builder_build_packet_merge(builder, init_pkt_merge_param);
rss_tt = mlx5e_rss_get_tt_config(rss, tt);
mlx5e_tir_builder_build_rss(builder, &rss->hash, &rss_tt, inner);
@@ -198,14 +198,14 @@ static void mlx5e_rss_destroy_tir(struct mlx5e_rss *rss, enum mlx5_traffic_types
}
static int mlx5e_rss_create_tirs(struct mlx5e_rss *rss,
- const struct mlx5e_lro_param *init_lro_param,
+ const struct mlx5e_packet_merge_param *init_pkt_merge_param,
bool inner)
{
enum mlx5_traffic_types tt, max_tt;
int err;
for (tt = 0; tt < MLX5E_NUM_INDIR_TIRS; tt++) {
- err = mlx5e_rss_create_tir(rss, tt, init_lro_param, inner);
+ err = mlx5e_rss_create_tir(rss, tt, init_pkt_merge_param, inner);
if (err)
goto err_destroy_tirs;
}
@@ -297,7 +297,7 @@ int mlx5e_rss_init_no_tirs(struct mlx5e_rss *rss, struct mlx5_core_dev *mdev,
int mlx5e_rss_init(struct mlx5e_rss *rss, struct mlx5_core_dev *mdev,
bool inner_ft_support, u32 drop_rqn,
- const struct mlx5e_lro_param *init_lro_param)
+ const struct mlx5e_packet_merge_param *init_pkt_merge_param)
{
int err;
@@ -305,12 +305,12 @@ int mlx5e_rss_init(struct mlx5e_rss *rss, struct mlx5_core_dev *mdev,
if (err)
goto err_out;
- err = mlx5e_rss_create_tirs(rss, init_lro_param, false);
+ err = mlx5e_rss_create_tirs(rss, init_pkt_merge_param, false);
if (err)
goto err_destroy_rqt;
if (inner_ft_support) {
- err = mlx5e_rss_create_tirs(rss, init_lro_param, true);
+ err = mlx5e_rss_create_tirs(rss, init_pkt_merge_param, true);
if (err)
goto err_destroy_tirs;
}
@@ -372,7 +372,7 @@ u32 mlx5e_rss_get_tirn(struct mlx5e_rss *rss, enum mlx5_traffic_types tt,
*/
int mlx5e_rss_obtain_tirn(struct mlx5e_rss *rss,
enum mlx5_traffic_types tt,
- const struct mlx5e_lro_param *init_lro_param,
+ const struct mlx5e_packet_merge_param *init_pkt_merge_param,
bool inner, u32 *tirn)
{
struct mlx5e_tir *tir;
@@ -381,7 +381,7 @@ int mlx5e_rss_obtain_tirn(struct mlx5e_rss *rss,
if (!tir) { /* TIR doesn't exist, create one */
int err;
- err = mlx5e_rss_create_tir(rss, tt, init_lro_param, inner);
+ err = mlx5e_rss_create_tir(rss, tt, init_pkt_merge_param, inner);
if (err)
return err;
tir = rss_get_tir(rss, tt, inner);
@@ -418,7 +418,8 @@ void mlx5e_rss_disable(struct mlx5e_rss *rss)
mlx5e_rqt_get_rqtn(&rss->rqt), rss->drop_rqn, err);
}
-int mlx5e_rss_lro_set_param(struct mlx5e_rss *rss, struct mlx5e_lro_param *lro_param)
+int mlx5e_rss_packet_merge_set_param(struct mlx5e_rss *rss,
+ struct mlx5e_packet_merge_param *pkt_merge_param)
{
struct mlx5e_tir_builder *builder;
enum mlx5_traffic_types tt;
@@ -428,7 +429,7 @@ int mlx5e_rss_lro_set_param(struct mlx5e_rss *rss, struct mlx5e_lro_param *lro_p
if (!builder)
return -ENOMEM;
- mlx5e_tir_builder_build_lro(builder, lro_param);
+ mlx5e_tir_builder_build_packet_merge(builder, pkt_merge_param);
final_err = 0;
--git a/drivers/net/ethernet/mellanox/mlx5/core/en/rss.h b/drivers/net/ethernet/mellanox/mlx5/core/en/rss.h
index d522a10dadf33..c6b2164163440 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/rss.h
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/rss.h
@@ -17,7 +17,7 @@ struct mlx5e_rss *mlx5e_rss_alloc(void);
void mlx5e_rss_free(struct mlx5e_rss *rss);
int mlx5e_rss_init(struct mlx5e_rss *rss, struct mlx5_core_dev *mdev,
bool inner_ft_support, u32 drop_rqn,
- const struct mlx5e_lro_param *init_lro_param);
+ const struct mlx5e_packet_merge_param *init_pkt_merge_param);
int mlx5e_rss_init_no_tirs(struct mlx5e_rss *rss, struct mlx5_core_dev *mdev,
bool inner_ft_support, u32 drop_rqn);
int mlx5e_rss_cleanup(struct mlx5e_rss *rss);
@@ -30,13 +30,14 @@ u32 mlx5e_rss_get_tirn(struct mlx5e_rss *rss, enum mlx5_traffic_types tt,
bool inner);
int mlx5e_rss_obtain_tirn(struct mlx5e_rss *rss,
enum mlx5_traffic_types tt,
- const struct mlx5e_lro_param *init_lro_param,
+ const struct mlx5e_packet_merge_param *init_pkt_merge_param,
bool inner, u32 *tirn);
void mlx5e_rss_enable(struct mlx5e_rss *rss, u32 *rqns, unsigned int num_rqns);
void mlx5e_rss_disable(struct mlx5e_rss *rss);
-int mlx5e_rss_lro_set_param(struct mlx5e_rss *rss, struct mlx5e_lro_param *lro_param);
+int mlx5e_rss_packet_merge_set_param(struct mlx5e_rss *rss,
+ struct mlx5e_packet_merge_param *pkt_merge_param);
int mlx5e_rss_get_rxfh(struct mlx5e_rss *rss, u32 *indir, u8 *key, u8 *hfunc);
int mlx5e_rss_set_rxfh(struct mlx5e_rss *rss, const u32 *indir,
const u8 *key, const u8 *hfunc,
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.c b/drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.c
index 13056cb9757d4..1429538479960 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.c
@@ -34,7 +34,7 @@ struct mlx5e_rx_res {
/* API for rx_res_rss_* */
static int mlx5e_rx_res_rss_init_def(struct mlx5e_rx_res *res,
- const struct mlx5e_lro_param *init_lro_param,
+ const struct mlx5e_packet_merge_param *init_pkt_merge_param,
unsigned int init_nch)
{
bool inner_ft_support = res->features & MLX5E_RX_RES_FEATURE_INNER_FT;
@@ -49,7 +49,7 @@ static int mlx5e_rx_res_rss_init_def(struct mlx5e_rx_res *res,
return -ENOMEM;
err = mlx5e_rss_init(rss, res->mdev, inner_ft_support, res->drop_rqn,
- init_lro_param);
+ init_pkt_merge_param);
if (err)
goto err_rss_free;
@@ -275,7 +275,7 @@ struct mlx5e_rx_res *mlx5e_rx_res_alloc(void)
}
static int mlx5e_rx_res_channels_init(struct mlx5e_rx_res *res,
- const struct mlx5e_lro_param *init_lro_param)
+ const struct mlx5e_packet_merge_param *init_pkt_merge_param)
{
bool inner_ft_support = res->features & MLX5E_RX_RES_FEATURE_INNER_FT;
struct mlx5e_tir_builder *builder;
@@ -306,7 +306,7 @@ static int mlx5e_rx_res_channels_init(struct mlx5e_rx_res *res,
mlx5e_tir_builder_build_rqt(builder, res->mdev->mlx5e_res.hw_objs.td.tdn,
mlx5e_rqt_get_rqtn(&res->channels[ix].direct_rqt),
inner_ft_support);
- mlx5e_tir_builder_build_lro(builder, init_lro_param);
+ mlx5e_tir_builder_build_packet_merge(builder, init_pkt_merge_param);
mlx5e_tir_builder_build_direct(builder);
err = mlx5e_tir_init(&res->channels[ix].direct_tir, builder, res->mdev, true);
@@ -336,7 +336,7 @@ static int mlx5e_rx_res_channels_init(struct mlx5e_rx_res *res,
mlx5e_tir_builder_build_rqt(builder, res->mdev->mlx5e_res.hw_objs.td.tdn,
mlx5e_rqt_get_rqtn(&res->channels[ix].xsk_rqt),
inner_ft_support);
- mlx5e_tir_builder_build_lro(builder, init_lro_param);
+ mlx5e_tir_builder_build_packet_merge(builder, init_pkt_merge_param);
mlx5e_tir_builder_build_direct(builder);
err = mlx5e_tir_init(&res->channels[ix].xsk_tir, builder, res->mdev, true);
@@ -437,7 +437,7 @@ static void mlx5e_rx_res_ptp_destroy(struct mlx5e_rx_res *res)
int mlx5e_rx_res_init(struct mlx5e_rx_res *res, struct mlx5_core_dev *mdev,
enum mlx5e_rx_res_features features, unsigned int max_nch,
- u32 drop_rqn, const struct mlx5e_lro_param *init_lro_param,
+ u32 drop_rqn, const struct mlx5e_packet_merge_param *init_pkt_merge_param,
unsigned int init_nch)
{
int err;
@@ -447,11 +447,11 @@ int mlx5e_rx_res_init(struct mlx5e_rx_res *res, struct mlx5_core_dev *mdev,
res->max_nch = max_nch;
res->drop_rqn = drop_rqn;
- err = mlx5e_rx_res_rss_init_def(res, init_lro_param, init_nch);
+ err = mlx5e_rx_res_rss_init_def(res, init_pkt_merge_param, init_nch);
if (err)
goto err_out;
- err = mlx5e_rx_res_channels_init(res, init_lro_param);
+ err = mlx5e_rx_res_channels_init(res, init_pkt_merge_param);
if (err)
goto err_rss_destroy;
@@ -645,7 +645,8 @@ int mlx5e_rx_res_xsk_deactivate(struct mlx5e_rx_res *res, unsigned int ix)
return err;
}
-int mlx5e_rx_res_lro_set_param(struct mlx5e_rx_res *res, struct mlx5e_lro_param *lro_param)
+int mlx5e_rx_res_packet_merge_set_param(struct mlx5e_rx_res *res,
+ struct mlx5e_packet_merge_param *pkt_merge_param)
{
struct mlx5e_tir_builder *builder;
int err, final_err;
@@ -655,7 +656,7 @@ int mlx5e_rx_res_lro_set_param(struct mlx5e_rx_res *res, struct mlx5e_lro_param
if (!builder)
return -ENOMEM;
- mlx5e_tir_builder_build_lro(builder, lro_param);
+ mlx5e_tir_builder_build_packet_merge(builder, pkt_merge_param);
final_err = 0;
@@ -665,7 +666,7 @@ int mlx5e_rx_res_lro_set_param(struct mlx5e_rx_res *res, struct mlx5e_lro_param
if (!rss)
continue;
- err = mlx5e_rss_lro_set_param(rss, lro_param);
+ err = mlx5e_rss_packet_merge_set_param(rss, pkt_merge_param);
if (err)
final_err = final_err ? : err;
}
@@ -673,7 +674,7 @@ int mlx5e_rx_res_lro_set_param(struct mlx5e_rx_res *res, struct mlx5e_lro_param
for (ix = 0; ix < res->max_nch; ix++) {
err = mlx5e_tir_modify(&res->channels[ix].direct_tir, builder);
if (err) {
- mlx5_core_warn(res->mdev, "Failed to update LRO state of direct TIR %#x for channel %u: err = %d\n",
+ mlx5_core_warn(res->mdev, "Failed to update packet merge state of direct TIR %#x for channel %u: err = %d\n",
mlx5e_tir_get_tirn(&res->channels[ix].direct_tir), ix, err);
if (!final_err)
final_err = err;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.h b/drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.h
index 4a15942d79f7d..d09f7d174a518 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.h
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.h
@@ -25,7 +25,7 @@ enum mlx5e_rx_res_features {
struct mlx5e_rx_res *mlx5e_rx_res_alloc(void);
int mlx5e_rx_res_init(struct mlx5e_rx_res *res, struct mlx5_core_dev *mdev,
enum mlx5e_rx_res_features features, unsigned int max_nch,
- u32 drop_rqn, const struct mlx5e_lro_param *init_lro_param,
+ u32 drop_rqn, const struct mlx5e_packet_merge_param *init_pkt_merge_param,
unsigned int init_nch);
void mlx5e_rx_res_destroy(struct mlx5e_rx_res *res);
void mlx5e_rx_res_free(struct mlx5e_rx_res *res);
@@ -57,7 +57,8 @@ int mlx5e_rx_res_rss_set_rxfh(struct mlx5e_rx_res *res, u32 rss_idx,
u8 mlx5e_rx_res_rss_get_hash_fields(struct mlx5e_rx_res *res, enum mlx5_traffic_types tt);
int mlx5e_rx_res_rss_set_hash_fields(struct mlx5e_rx_res *res, enum mlx5_traffic_types tt,
u8 rx_hash_fields);
-int mlx5e_rx_res_lro_set_param(struct mlx5e_rx_res *res, struct mlx5e_lro_param *lro_param);
+int mlx5e_rx_res_packet_merge_set_param(struct mlx5e_rx_res *res,
+ struct mlx5e_packet_merge_param *pkt_merge_param);
int mlx5e_rx_res_rss_init(struct mlx5e_rx_res *res, u32 *rss_idx, unsigned int init_nch);
int mlx5e_rx_res_rss_destroy(struct mlx5e_rx_res *res, u32 rss_idx);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tir.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tir.c
index 857ea09791597..a1afb8585e37f 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tir.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tir.c
@@ -70,16 +70,16 @@ void mlx5e_tir_builder_build_rqt(struct mlx5e_tir_builder *builder, u32 tdn,
MLX5_SET(tirc, tirc, tunneled_offload_en, inner_ft_support);
}
-void mlx5e_tir_builder_build_lro(struct mlx5e_tir_builder *builder,
- const struct mlx5e_lro_param *lro_param)
+void mlx5e_tir_builder_build_packet_merge(struct mlx5e_tir_builder *builder,
+ const struct mlx5e_packet_merge_param *pkt_merge_param)
{
void *tirc = mlx5e_tir_builder_get_tirc(builder);
const unsigned int rough_max_l2_l3_hdr_sz = 256;
if (builder->modify)
- MLX5_SET(modify_tir_in, builder->in, bitmask.lro, 1);
+ MLX5_SET(modify_tir_in, builder->in, bitmask.packet_merge, 1);
- if (!lro_param->enabled)
+ if (pkt_merge_param->type == MLX5E_PACKET_MERGE_NONE)
return;
MLX5_SET(tirc, tirc, packet_merge_mask,
@@ -87,7 +87,7 @@ void mlx5e_tir_builder_build_lro(struct mlx5e_tir_builder *builder,
MLX5_TIRC_PACKET_MERGE_MASK_IPV6_LRO);
MLX5_SET(tirc, tirc, lro_max_ip_payload_size,
(MLX5E_PARAMS_DEFAULT_LRO_WQE_SZ - rough_max_l2_l3_hdr_sz) >> 8);
- MLX5_SET(tirc, tirc, lro_timeout_period_usecs, lro_param->timeout);
+ MLX5_SET(tirc, tirc, lro_timeout_period_usecs, pkt_merge_param->timeout);
}
static int mlx5e_hfunc_to_hw(u8 hfunc)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tir.h b/drivers/net/ethernet/mellanox/mlx5/core/en/tir.h
index e45149a78ed9d..857a84bcd53af 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tir.h
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tir.h
@@ -18,7 +18,7 @@ struct mlx5e_rss_params_traffic_type {
};
struct mlx5e_tir_builder;
-struct mlx5e_lro_param;
+struct mlx5e_packet_merge_param;
struct mlx5e_tir_builder *mlx5e_tir_builder_alloc(bool modify);
void mlx5e_tir_builder_free(struct mlx5e_tir_builder *builder);
@@ -27,8 +27,8 @@ void mlx5e_tir_builder_clear(struct mlx5e_tir_builder *builder);
void mlx5e_tir_builder_build_inline(struct mlx5e_tir_builder *builder, u32 tdn, u32 rqn);
void mlx5e_tir_builder_build_rqt(struct mlx5e_tir_builder *builder, u32 tdn,
u32 rqtn, bool inner_ft_support);
-void mlx5e_tir_builder_build_lro(struct mlx5e_tir_builder *builder,
- const struct mlx5e_lro_param *lro_param);
+void mlx5e_tir_builder_build_packet_merge(struct mlx5e_tir_builder *builder,
+ const struct mlx5e_packet_merge_param *pkt_merge_param);
void mlx5e_tir_builder_build_rss(struct mlx5e_tir_builder *builder,
const struct mlx5e_rss_params_hash *rss_hash,
const struct mlx5e_rss_params_traffic_type *rss_tt,
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
index 9d451b8ee467c..dc9b8718c3c10 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
@@ -1954,8 +1954,8 @@ static int set_pflag_rx_striding_rq(struct net_device *netdev, bool enable)
return -EOPNOTSUPP;
if (!mlx5e_striding_rq_possible(mdev, &priv->channels.params))
return -EINVAL;
- } else if (priv->channels.params.lro_en) {
- netdev_warn(netdev, "Can't set legacy RQ with LRO, disable LRO first\n");
+ } else if (priv->channels.params.packet_merge.type != MLX5E_PACKET_MERGE_NONE) {
+ netdev_warn(netdev, "Can't set legacy RQ with HW-GRO/LRO, disable them first\n");
return -EINVAL;
}
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
index 03693fa74a704..d32b70c62c949 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
@@ -411,7 +411,7 @@ static int flow_get_tirn(struct mlx5e_priv *priv,
u32 rss_context, u32 *tirn)
{
if (fs->flow_type & FLOW_RSS) {
- struct mlx5e_lro_param lro_param;
+ struct mlx5e_packet_merge_param pkt_merge_param;
struct mlx5e_rss *rss;
u32 flow_type;
int err;
@@ -426,8 +426,8 @@ static int flow_get_tirn(struct mlx5e_priv *priv,
if (tt < 0)
return -EINVAL;
- lro_param = mlx5e_get_lro_param(&priv->channels.params);
- err = mlx5e_rss_obtain_tirn(rss, tt, &lro_param, false, tirn);
+ pkt_merge_param = priv->channels.params.packet_merge;
+ err = mlx5e_rss_obtain_tirn(rss, tt, &pkt_merge_param, false, tirn);
if (err)
return err;
eth_rule->rss = rss;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index a9d80ffb25376..8cf5fbebd674b 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -2185,17 +2185,14 @@ void mlx5e_close_channels(struct mlx5e_channels *chs)
chs->num = 0;
}
-static int mlx5e_modify_tirs_lro(struct mlx5e_priv *priv)
+static int mlx5e_modify_tirs_packet_merge(struct mlx5e_priv *priv)
{
struct mlx5e_rx_res *res = priv->rx_res;
- struct mlx5e_lro_param lro_param;
- lro_param = mlx5e_get_lro_param(&priv->channels.params);
-
- return mlx5e_rx_res_lro_set_param(res, &lro_param);
+ return mlx5e_rx_res_packet_merge_set_param(res, &priv->channels.params.packet_merge);
}
-static MLX5E_DEFINE_PREACTIVATE_WRAPPER_CTX(mlx5e_modify_tirs_lro);
+static MLX5E_DEFINE_PREACTIVATE_WRAPPER_CTX(mlx5e_modify_tirs_packet_merge);
static int mlx5e_set_mtu(struct mlx5_core_dev *mdev,
struct mlx5e_params *params, u16 mtu)
@@ -3270,16 +3267,25 @@ static int set_feature_lro(struct net_device *netdev, bool enable)
}
new_params = *cur_params;
- new_params.lro_en = enable;
- if (cur_params->rq_wq_type == MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ) {
- if (mlx5e_rx_mpwqe_is_linear_skb(mdev, cur_params, NULL) ==
- mlx5e_rx_mpwqe_is_linear_skb(mdev, &new_params, NULL))
- reset = false;
+ if (enable)
+ new_params.packet_merge.type = MLX5E_PACKET_MERGE_LRO;
+ else if (new_params.packet_merge.type == MLX5E_PACKET_MERGE_LRO)
+ new_params.packet_merge.type = MLX5E_PACKET_MERGE_NONE;
+ else
+ goto out;
+
+ if (!(cur_params->packet_merge.type == MLX5E_PACKET_MERGE_SHAMPO &&
+ new_params.packet_merge.type == MLX5E_PACKET_MERGE_LRO)) {
+ if (cur_params->rq_wq_type == MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ) {
+ if (mlx5e_rx_mpwqe_is_linear_skb(mdev, cur_params, NULL) ==
+ mlx5e_rx_mpwqe_is_linear_skb(mdev, &new_params, NULL))
+ reset = false;
+ }
}
err = mlx5e_safe_switch_params(priv, &new_params,
- mlx5e_modify_tirs_lro_ctx, NULL, reset);
+ mlx5e_modify_tirs_packet_merge_ctx, NULL, reset);
out:
mutex_unlock(&priv->state_lock);
return err;
@@ -3606,7 +3612,7 @@ int mlx5e_change_mtu(struct net_device *netdev, int new_mtu,
goto out;
}
- if (params->lro_en)
+ if (params->packet_merge.type == MLX5E_PACKET_MERGE_LRO)
reset = false;
if (params->rq_wq_type == MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ) {
@@ -4063,8 +4069,8 @@ static int mlx5e_xdp_allowed(struct mlx5e_priv *priv, struct bpf_prog *prog)
struct net_device *netdev = priv->netdev;
struct mlx5e_params new_params;
- if (priv->channels.params.lro_en) {
- netdev_warn(netdev, "can't set XDP while LRO is on, disable LRO first\n");
+ if (priv->channels.params.packet_merge.type != MLX5E_PACKET_MERGE_NONE) {
+ netdev_warn(netdev, "can't set XDP while HW-GRO/LRO is on, disable them first\n");
return -EINVAL;
}
@@ -4321,9 +4327,10 @@ void mlx5e_build_nic_params(struct mlx5e_priv *priv, struct mlx5e_xsk *xsk, u16
params->rq_wq_type == MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ) {
/* No XSK params: checking the availability of striding RQ in general. */
if (!mlx5e_rx_mpwqe_is_linear_skb(mdev, params, NULL))
- params->lro_en = !slow_pci_heuristic(mdev);
+ params->packet_merge.type = slow_pci_heuristic(mdev) ?
+ MLX5E_PACKET_MERGE_NONE : MLX5E_PACKET_MERGE_LRO;
}
- params->packet_merge_timeout = mlx5e_choose_lro_timeout(mdev, MLX5E_DEFAULT_LRO_TIMEOUT);
+ params->packet_merge.timeout = mlx5e_choose_lro_timeout(mdev, MLX5E_DEFAULT_LRO_TIMEOUT);
/* CQ moderation params */
rx_cq_period_mode = MLX5_CAP_GEN(mdev, cq_period_start_from_cqe) ?
@@ -4608,7 +4615,6 @@ static int mlx5e_init_nic_rx(struct mlx5e_priv *priv)
{
struct mlx5_core_dev *mdev = priv->mdev;
enum mlx5e_rx_res_features features;
- struct mlx5e_lro_param lro_param;
int err;
priv->rx_res = mlx5e_rx_res_alloc();
@@ -4626,9 +4632,9 @@ static int mlx5e_init_nic_rx(struct mlx5e_priv *priv)
features = MLX5E_RX_RES_FEATURE_XSK | MLX5E_RX_RES_FEATURE_PTP;
if (priv->channels.params.tunneled_offload_en)
features |= MLX5E_RX_RES_FEATURE_INNER_FT;
- lro_param = mlx5e_get_lro_param(&priv->channels.params);
err = mlx5e_rx_res_init(priv->rx_res, priv->mdev, features,
- priv->max_nch, priv->drop_rq.rqn, &lro_param,
+ priv->max_nch, priv->drop_rq.rqn,
+ &priv->channels.params.packet_merge,
priv->channels.params.num_channels);
if (err)
goto err_close_drop_rq;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
index c100728c381cc..edecd149dcab3 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
@@ -793,7 +793,6 @@ int mlx5e_rep_bond_update(struct mlx5e_priv *priv, bool cleanup)
static int mlx5e_init_rep_rx(struct mlx5e_priv *priv)
{
struct mlx5_core_dev *mdev = priv->mdev;
- struct mlx5e_lro_param lro_param;
int err;
priv->rx_res = mlx5e_rx_res_alloc();
@@ -808,9 +807,9 @@ static int mlx5e_init_rep_rx(struct mlx5e_priv *priv)
return err;
}
- lro_param = mlx5e_get_lro_param(&priv->channels.params);
err = mlx5e_rx_res_init(priv->rx_res, priv->mdev, 0,
- priv->max_nch, priv->drop_rq.rqn, &lro_param,
+ priv->max_nch, priv->drop_rq.rqn,
+ &priv->channels.params.packet_merge,
priv->channels.params.num_channels);
if (err)
goto err_close_drop_rq;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c b/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c
index 269ebb53eda67..cfde0a45b8b8a 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c
@@ -67,7 +67,7 @@ static void mlx5i_build_nic_params(struct mlx5_core_dev *mdev,
MLX5E_PARAMS_MINIMUM_LOG_RQ_SIZE :
MLX5I_PARAMS_DEFAULT_LOG_RQ_SIZE;
- params->lro_en = false;
+ params->packet_merge.type = MLX5E_PACKET_MERGE_NONE;
params->hard_mtu = MLX5_IB_GRH_BYTES + MLX5_IPOIB_HARD_LEN;
params->tunneled_offload_en = false;
}
@@ -353,7 +353,6 @@ static void mlx5i_destroy_flow_steering(struct mlx5e_priv *priv)
static int mlx5i_init_rx(struct mlx5e_priv *priv)
{
struct mlx5_core_dev *mdev = priv->mdev;
- struct mlx5e_lro_param lro_param;
int err;
priv->rx_res = mlx5e_rx_res_alloc();
@@ -368,9 +367,9 @@ static int mlx5i_init_rx(struct mlx5e_priv *priv)
goto err_destroy_q_counters;
}
- lro_param = mlx5e_get_lro_param(&priv->channels.params);
err = mlx5e_rx_res_init(priv->rx_res, priv->mdev, 0,
- priv->max_nch, priv->drop_rq.rqn, &lro_param,
+ priv->max_nch, priv->drop_rq.rqn,
+ &priv->channels.params.packet_merge,
priv->channels.params.num_channels);
if (err)
goto err_close_drop_rq;
diff --git a/include/linux/mlx5/mlx5_ifc.h b/include/linux/mlx5/mlx5_ifc.h
index 944bb9f5006c1..25d775764a5ac 100644
--- a/include/linux/mlx5/mlx5_ifc.h
+++ b/include/linux/mlx5/mlx5_ifc.h
@@ -6369,7 +6369,7 @@ struct mlx5_ifc_modify_tir_bitmask_bits {
u8 reserved_at_3c[0x1];
u8 hash[0x1];
u8 reserved_at_3e[0x1];
- u8 lro[0x1];
+ u8 packet_merge[0x1];
};
struct mlx5_ifc_modify_tir_out_bits {
--
2.33.0
next prev parent reply other threads:[~2021-12-06 15:45 UTC|newest]
Thread overview: 215+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-06 14:54 [PATCH 5.15 000/207] 5.15.7-rc1 review Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 001/207] ALSA: usb-audio: Restrict rates for the shared clocks Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 002/207] ALSA: usb-audio: Rename early_playback_start flag with lowlatency_playback Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 003/207] ALSA: usb-audio: Disable low-latency playback for free-wheel mode Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 004/207] ALSA: usb-audio: Disable low-latency mode for implicit feedback sync Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 005/207] ALSA: usb-audio: Check available frames for the next packet size Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 006/207] ALSA: usb-audio: Add spinlock to stop_urbs() Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 007/207] ALSA: usb-audio: Improved lowlatency playback support Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 008/207] ALSA: usb-audio: Avoid killing in-flight URBs during draining Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 009/207] ALSA: usb-audio: Fix packet size calculation regression Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 010/207] ALSA: usb-audio: Less restriction for low-latency playback mode Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 011/207] ALSA: usb-audio: Switch back to non-latency mode at a later point Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 012/207] ALSA: usb-audio: Dont start stream for capture at prepare Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 013/207] gfs2: release iopen glock early in evict Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 014/207] gfs2: Fix length of holes reported at end-of-file Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 015/207] powerpc/pseries/ddw: Revert "Extend upper limit for huge DMA window for persistent memory" Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 016/207] powerpc/pseries/ddw: Do not try direct mapping with persistent memory and one window Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 017/207] drm/sun4i: fix unmet dependency on RESET_CONTROLLER for PHY_SUN6I_MIPI_DPHY Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 018/207] mac80211: do not access the IV when it was stripped Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 019/207] mac80211: fix throughput LED trigger Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 020/207] x86/hyperv: Move required MSRs check to initial platform probing Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 021/207] net/smc: Transfer remaining wait queue entries during fallback Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 022/207] atlantic: Fix OOB read and write in hw_atl_utils_fw_rpc_wait Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 023/207] net: return correct error code Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 024/207] pinctrl: qcom: fix unmet dependencies on GPIOLIB for GPIOLIB_IRQCHIP Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 025/207] platform/x86: dell-wmi-descriptor: disable by default Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 026/207] platform/x86: thinkpad_acpi: Add support for dual fan control Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 027/207] platform/x86: thinkpad_acpi: Fix WWAN device disabled issue after S3 deep Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 028/207] s390/setup: avoid using memblock_enforce_memory_limit Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 029/207] btrfs: silence lockdep when reading chunk tree during mount Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 030/207] btrfs: check-integrity: fix a warning on write caching disabled disk Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 031/207] thermal: core: Reset previous low and high trip during thermal zone init Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 032/207] scsi: iscsi: Unblock session then wake up error handler Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 033/207] net: usb: r8152: Add MAC passthrough support for more Lenovo Docks Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 034/207] drm/amd/pm: Remove artificial freq level on Navi1x Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 035/207] drm/amd/amdkfd: Fix kernel panic when reset failed and been triggered again Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 036/207] drm/amd/amdgpu: fix potential memleak Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 037/207] ata: ahci: Add Green Sardine vendor ID as board_ahci_mobile Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 038/207] ata: libahci: Adjust behavior when StorageD3Enable _DSD is set Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 039/207] ethernet: hisilicon: hns: hns_dsaf_misc: fix a possible array overflow in hns_dsaf_ge_srst_by_port() Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 040/207] ipv6: check return value of ipv6_skip_exthdr Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 041/207] net: tulip: de4x5: fix the problem that the array lp->phy[8] may be out of bound Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 042/207] net: ethernet: dec: tulip: de4x5: fix possible array overflows in type3_infoblock() Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 043/207] perf sort: Fix the weight sort key behavior Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 044/207] perf sort: Fix the ins_lat " Greg Kroah-Hartman
2021-12-06 14:54 ` [PATCH 5.15 045/207] perf sort: Fix the p_stage_cyc " Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 046/207] perf inject: Fix ARM SPE handling Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 047/207] perf hist: Fix memory leak of a perf_hpp_fmt Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 048/207] perf report: Fix memory leaks around perf_tip() Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 049/207] tracing: Dont use out-of-sync va_list in event printing Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 050/207] net/smc: Avoid warning of possible recursive locking Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 051/207] ACPI: Add stubs for wakeup handler functions Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 052/207] net/tls: Fix authentication failure in CCM mode Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 053/207] vrf: Reset IPCB/IP6CB when processing outbound pkts in vrf dev xmit Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 054/207] kprobes: Limit max data_size of the kretprobe instances Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 055/207] ALSA: hda/cs8409: Set PMSG_ON earlier inside cs8409 driver Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 056/207] rt2x00: do not mark device gone on EPROTO errors during start Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 057/207] ipmi: Move remove_work to dedicated workqueue Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 058/207] cpufreq: Fix get_cpu_device() failure in add_cpu_dev_symlink() Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 059/207] iwlwifi: mvm: retry init flow if failed Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 060/207] dma-buf: system_heap: Use for_each_sgtable_sg in pages free flow Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 061/207] s390/pci: move pseudo-MMIO to prevent MIO overlap Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 062/207] fget: check that the fd still exists after getting a ref to it Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 063/207] sata_fsl: fix UAF in sata_fsl_port_stop when rmmod sata_fsl Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 064/207] sata_fsl: fix warning in remove_proc_entry " Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 065/207] scsi: lpfc: Fix non-recovery of remote ports following an unsolicited LOGO Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 066/207] scsi: ufs: ufs-pci: Add support for Intel ADL Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 067/207] ipv6: fix memory leak in fib6_rule_suppress Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 068/207] drm/amd/display: Allow DSC on supported MST branch devices Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 069/207] drm/i915/dp: Perform 30ms delay after source OUI write Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 070/207] KVM: fix avic_set_running for preemptable kernels Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 071/207] KVM: Disallow user memslot with size that exceeds "unsigned long" Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 072/207] KVM: x86/mmu: Fix TLB flush range when handling disconnected pt Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 073/207] KVM: Ensure local memslot copies operate on up-to-date arch-specific data Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 074/207] KVM: x86: ignore APICv if LAPIC is not enabled Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 075/207] KVM: nVMX: Emulate guest TLB flush on nested VM-Enter with new vpid12 Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 076/207] KVM: nVMX: Flush current VPID (L1 vs. L2) for KVM_REQ_TLB_FLUSH_GUEST Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 077/207] KVM: nVMX: Abide to KVM_REQ_TLB_FLUSH_GUEST request on nested vmentry/vmexit Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 078/207] KVM: VMX: prepare sync_pir_to_irr for running with APICv disabled Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 079/207] KVM: x86: Use a stable condition around all VT-d PI paths Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 080/207] KVM: MMU: shadow nested paging does not have PKU Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 081/207] KVM: arm64: Avoid setting the upper 32 bits of TCR_EL2 and CPTR_EL2 to 1 Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 082/207] KVM: X86: Use vcpu->arch.walk_mmu for kvm_mmu_invlpg() Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 083/207] KVM: x86: check PIR even for vCPUs with disabled APICv Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 084/207] tracing/histograms: String compares should not care about signed values Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 085/207] net: dsa: mv88e6xxx: Fix application of erratum 4.8 for 88E6393X Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 086/207] net: dsa: mv88e6xxx: Drop unnecessary check in mv88e6393x_serdes_erratum_4_6() Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 087/207] net: dsa: mv88e6xxx: Save power by disabling SerDes trasmitter and receiver Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 088/207] net: dsa: mv88e6xxx: Add fix for erratum 5.2 of 88E6393X family Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 089/207] net: dsa: mv88e6xxx: Fix inband AN for 2500base-x on " Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 090/207] net: dsa: mv88e6xxx: Link in pcs_get_state() if AN is bypassed Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 091/207] wireguard: selftests: increase default dmesg log size Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 092/207] wireguard: allowedips: add missing __rcu annotation to satisfy sparse Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 093/207] wireguard: selftests: actually test for routing loops Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 094/207] wireguard: selftests: rename DEBUG_PI_LIST to DEBUG_PLIST Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 095/207] wireguard: device: reset peer src endpoint when netns exits Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 096/207] wireguard: receive: use ring buffer for incoming handshakes Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 097/207] wireguard: receive: drop handshakes if queue lock is contended Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 098/207] wireguard: ratelimiter: use kvcalloc() instead of kvzalloc() Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 099/207] i2c: stm32f7: flush TX FIFO upon transfer errors Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 100/207] i2c: stm32f7: recover the bus on access timeout Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 101/207] i2c: stm32f7: stop dma transfer in case of NACK Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 102/207] i2c: cbus-gpio: set atomic transfer callback Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 103/207] natsemi: xtensa: fix section mismatch warnings Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 104/207] tcp: fix page frag corruption on page fault Greg Kroah-Hartman
2021-12-06 14:55 ` [PATCH 5.15 105/207] net: qlogic: qlcnic: Fix a NULL pointer dereference in qlcnic_83xx_add_rings() Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 106/207] net: mpls: Fix notifications when deleting a device Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 107/207] siphash: use _unaligned version by default Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 108/207] arm64: ftrace: add missing BTIs Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 109/207] iwlwifi: fix warnings produced by kernel debug options Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 110/207] net/mlx5e: IPsec: Fix Software parser inner l3 type setting in case of encapsulation Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 111/207] net/mlx4_en: Fix an use-after-free bug in mlx4_en_try_alloc_resources() Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 112/207] selftests: net: Correct case name Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 113/207] net: dsa: b53: Add SPI ID table Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 114/207] mt76: mt7915: fix NULL pointer dereference in mt7915_get_phy_mode Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 115/207] ASoC: tegra: Fix wrong value type in ADMAIF Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 116/207] ASoC: tegra: Fix wrong value type in I2S Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 117/207] ASoC: tegra: Fix wrong value type in DMIC Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 118/207] ASoC: tegra: Fix wrong value type in DSPK Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 119/207] ASoC: tegra: Fix kcontrol put callback in ADMAIF Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 120/207] ASoC: tegra: Fix kcontrol put callback in I2S Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 121/207] ASoC: tegra: Fix kcontrol put callback in DMIC Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 122/207] ASoC: tegra: Fix kcontrol put callback in DSPK Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 123/207] ASoC: tegra: Fix kcontrol put callback in AHUB Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 124/207] rxrpc: Fix rxrpc_peer leak in rxrpc_look_up_bundle() Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 125/207] rxrpc: Fix rxrpc_local leak in rxrpc_lookup_peer() Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 126/207] ALSA: intel-dsp-config: add quirk for CML devices based on ES8336 codec Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 127/207] net: stmmac: Avoid DMA_CHAN_CONTROL write if no Split Header support Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 128/207] net: usb: lan78xx: lan78xx_phy_init(): use PHY_POLL instead of "0" if no IRQ is available Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 129/207] net: marvell: mvpp2: Fix the computation of shared CPUs Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 130/207] dpaa2-eth: destroy workqueue at the end of remove function Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 131/207] octeontx2-af: Fix a memleak bug in rvu_mbox_init() Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 132/207] net: annotate data-races on txq->xmit_lock_owner Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 133/207] ipv4: convert fib_num_tclassid_users to atomic_t Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 134/207] net/smc: fix wrong list_del in smc_lgr_cleanup_early Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 135/207] net/rds: correct socket tunable error in rds_tcp_tune() Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 136/207] net/smc: Keep smc_close_final rc during active close Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 137/207] drm/msm/a6xx: Allocate enough space for GMU registers Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 138/207] drm/msm: Do hw_init() before capturing GPU state Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 139/207] drm/vc4: kms: Wait for the commit before increasing our clock rate Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 140/207] drm/vc4: kms: Fix return code check Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 141/207] drm/vc4: kms: Add missing drm_crtc_commit_put Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 142/207] drm/vc4: kms: Clear the HVS FIFO commit pointer once done Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 143/207] drm/vc4: kms: Dont duplicate pending commit Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 144/207] drm/vc4: kms: Fix previous HVS commit wait Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 145/207] atlantic: Increase delay for fw transactions Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 146/207] atlatnic: enable Nbase-t speeds with base-t Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 147/207] atlantic: Fix to display FW bundle version instead of FW mac version Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 148/207] atlantic: Add missing DIDs and fix 115c Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 149/207] Remove Half duplex mode speed capabilities Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 150/207] atlantic: Fix statistics logic for production hardware Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 151/207] atlantic: Remove warn trace message Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 152/207] KVM: x86/mmu: Skip tlb flush if it has been done in zap_gfn_range() Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 153/207] KVM: x86/mmu: Pass parameter flush as false in kvm_tdp_mmu_zap_collapsible_sptes() Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 154/207] drm/msm/devfreq: Fix OPP refcnt leak Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 155/207] drm/msm: Fix mmap to include VM_IO and VM_DONTDUMP Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 156/207] drm/msm: Fix wait_fence submitqueue leak Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 157/207] drm/msm: Restore error return on invalid fence Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 158/207] ASoC: rk817: Add module alias for rk817-codec Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 159/207] iwlwifi: Fix memory leaks in error handling path Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 160/207] KVM: X86: Fix when shadow_root_level=5 && guest root_level<4 Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 161/207] KVM: SEV: initialize regions_list of a mirror VM Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 162/207] net/mlx5e: Fix missing IPsec statistics on uplink representor Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 163/207] net/mlx5: Move MODIFY_RQT command to ignore list in internal error state Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 164/207] net/mlx5: E-switch, Respect BW share of the new group Greg Kroah-Hartman
2021-12-06 14:56 ` [PATCH 5.15 165/207] net/mlx5: E-Switch, fix single FDB creation on BlueField Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 166/207] net/mlx5: E-Switch, Check group pointer before reading bw_share value Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 167/207] KVM: x86/pmu: Fix reserved bits for AMD PerfEvtSeln register Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 168/207] KVM: VMX: Set failure code in prepare_vmcs02() Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 169/207] mctp: Dont let RTM_DELROUTE delete local routes Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 170/207] Revert "drm/i915: Implement Wa_1508744258" Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 171/207] io-wq: dont retry task_work creation failure on fatal conditions Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 172/207] x86/sev: Fix SEV-ES INS/OUTS instructions for word, dword, and qword Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 173/207] x86/entry: Add a fence for kernel entry SWAPGS in paranoid_entry() Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 174/207] x86/entry: Use the correct fence macro after swapgs in kernel CR3 Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 175/207] x86/xen: Add xenpv_restore_regs_and_return_to_usermode() Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 176/207] preempt/dynamic: Fix setup_preempt_mode() return value Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 177/207] sched/uclamp: Fix rq->uclamp_max not set on first enqueue Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 178/207] KVM: SEV: Return appropriate error codes if SEV-ES scratch setup fails Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 179/207] KVM: x86/mmu: Rename slot_handle_leaf to slot_handle_level_4k Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 180/207] KVM: x86/mmu: Remove spurious TLB flushes in TDP MMU zap collapsible path Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 181/207] net/mlx5e: Rename lro_timeout to packet_merge_timeout Greg Kroah-Hartman
2021-12-06 14:57 ` Greg Kroah-Hartman [this message]
2021-12-06 14:57 ` [PATCH 5.15 183/207] net/mlx5e: Sync TIR params updates against concurrent create/modify Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 184/207] serial: 8250_bcm7271: UART errors after resuming from S2 Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 185/207] parisc: Fix KBUILD_IMAGE for self-extracting kernel Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 186/207] parisc: Fix "make install" on newer debian releases Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 187/207] parisc: Mark cr16 CPU clocksource unstable on all SMP machines Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 188/207] vgacon: Propagate console boot parameters before calling `vc_resize Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 189/207] xhci: Fix commad ring abort, write all 64 bits to CRCR register Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 190/207] USB: NO_LPM quirk Lenovo Powered USB-C Travel Hub Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 191/207] usb: typec: tcpm: Wait in SNK_DEBOUNCED until disconnect Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 192/207] usb: cdns3: gadget: fix new urb never complete if ep cancel previous requests Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 193/207] usb: cdnsp: Fix a NULL pointer dereference in cdnsp_endpoint_init() Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 194/207] x86/tsc: Add a timer to make sure TSC_adjust is always checked Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 195/207] x86/tsc: Disable clocksource watchdog for TSC on qualified platorms Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 196/207] x86/64/mm: Map all kernel memory into trampoline_pgd Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 197/207] tty: serial: msm_serial: Deactivate RX DMA for polling support Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 198/207] serial: pl011: Add ACPI SBSA UART match id Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 199/207] serial: tegra: Change lower tolerance baud rate limit for tegra20 and tegra30 Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 200/207] serial: core: fix transmit-buffer reset and memleak Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 201/207] serial: 8250_pci: Fix ACCES entries in pci_serial_quirks array Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 202/207] serial: 8250_pci: rewrite pericom_do_set_divisor() Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 203/207] serial: 8250: Fix RTS modem control while in rs485 mode Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 204/207] serial: liteuart: Fix NULL pointer dereference in ->remove() Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 205/207] serial: liteuart: fix use-after-free and memleak on unbind Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 206/207] serial: liteuart: fix minor-number leak on probe errors Greg Kroah-Hartman
2021-12-06 14:57 ` [PATCH 5.15 207/207] ipmi: msghandler: Make symbol remove_work_wq static Greg Kroah-Hartman
2021-12-06 20:13 ` [PATCH 5.15 000/207] 5.15.7-rc1 review Florian Fainelli
2021-12-06 21:53 ` Shuah Khan
2021-12-07 8:32 ` Fox Chen
2021-12-07 9:05 ` Naresh Kamboju
2021-12-07 9:41 ` Jon Hunter
2021-12-07 13:05 ` Rudi Heitbaum
2021-12-07 20:42 ` Guenter Roeck
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=20211206145616.574984996@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=benishay@nvidia.com \
--cc=khalidm@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=saeedm@nvidia.com \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
--cc=tariqt@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).