All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Mikulas Patocka <mpatocka@redhat.com>,
	Kyle Sanderson <kyle.leet@gmail.com>,
	Giovanni Cabiddu <giovanni.cabiddu@intel.com>,
	Marco Chiappero <marco.chiappero@intel.com>,
	Herbert Xu <herbert@gondor.apana.org.au>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.18 143/158] crypto: qat - add backlog mechanism
Date: Wed, 27 Jul 2022 18:13:27 +0200	[thread overview]
Message-ID: <20220727161027.078711608@linuxfoundation.org> (raw)
In-Reply-To: <20220727161021.428340041@linuxfoundation.org>

From: Giovanni Cabiddu <giovanni.cabiddu@intel.com>

[ Upstream commit 38682383973280e5be2802ba8a8d4a636d36cb19 ]

The implementations of the crypto algorithms (aead, skcipher, etc) in
the QAT driver do not properly support requests with the
CRYPTO_TFM_REQ_MAY_BACKLOG flag set. If the HW queue is full, the driver
returns -EBUSY but does not enqueue the request. This can result in
applications like dm-crypt waiting indefinitely for the completion of a
request that was never submitted to the hardware.

Fix this by adding a software backlog queue: if the ring buffer is more
than eighty percent full, then the request is enqueued to a backlog
list and the error code -EBUSY is returned back to the caller.
Requests in the backlog queue are resubmitted at a later time, in the
context of the callback of a previously submitted request.
The request for which -EBUSY is returned is then marked as -EINPROGRESS
once submitted to the HW queues.

The submission loop inside the function qat_alg_send_message() has been
modified to decide which submission policy to use based on the request
flags. If the request does not have the CRYPTO_TFM_REQ_MAY_BACKLOG set,
the previous behaviour has been preserved.

Based on a patch by
Vishnu Das Ramachandran <vishnu.dasx.ramachandran@intel.com>

Cc: stable@vger.kernel.org
Fixes: d370cec32194 ("crypto: qat - Intel(R) QAT crypto interface")
Reported-by: Mikulas Patocka <mpatocka@redhat.com>
Reported-by: Kyle Sanderson <kyle.leet@gmail.com>
Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Reviewed-by: Marco Chiappero <marco.chiappero@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/crypto/qat/qat_common/adf_transport.c | 11 +++
 drivers/crypto/qat/qat_common/adf_transport.h |  1 +
 .../qat/qat_common/adf_transport_internal.h   |  1 +
 drivers/crypto/qat/qat_common/qat_algs.c      | 24 ++++---
 drivers/crypto/qat/qat_common/qat_algs_send.c | 67 ++++++++++++++++++-
 drivers/crypto/qat/qat_common/qat_algs_send.h |  1 +
 drivers/crypto/qat/qat_common/qat_asym_algs.c | 23 ++++---
 drivers/crypto/qat/qat_common/qat_crypto.c    |  3 +
 drivers/crypto/qat/qat_common/qat_crypto.h    | 10 +++
 9 files changed, 123 insertions(+), 18 deletions(-)

diff --git a/drivers/crypto/qat/qat_common/adf_transport.c b/drivers/crypto/qat/qat_common/adf_transport.c
index 8ba28409fb74..630d0483c4e0 100644
--- a/drivers/crypto/qat/qat_common/adf_transport.c
+++ b/drivers/crypto/qat/qat_common/adf_transport.c
@@ -8,6 +8,9 @@
 #include "adf_cfg.h"
 #include "adf_common_drv.h"
 
+#define ADF_MAX_RING_THRESHOLD		80
+#define ADF_PERCENT(tot, percent)	(((tot) * (percent)) / 100)
+
 static inline u32 adf_modulo(u32 data, u32 shift)
 {
 	u32 div = data >> shift;
@@ -77,6 +80,11 @@ static void adf_disable_ring_irq(struct adf_etr_bank_data *bank, u32 ring)
 				      bank->irq_mask);
 }
 
+bool adf_ring_nearly_full(struct adf_etr_ring_data *ring)
+{
+	return atomic_read(ring->inflights) > ring->threshold;
+}
+
 int adf_send_message(struct adf_etr_ring_data *ring, u32 *msg)
 {
 	struct adf_hw_csr_ops *csr_ops = GET_CSR_OPS(ring->bank->accel_dev);
@@ -217,6 +225,7 @@ int adf_create_ring(struct adf_accel_dev *accel_dev, const char *section,
 	struct adf_etr_bank_data *bank;
 	struct adf_etr_ring_data *ring;
 	char val[ADF_CFG_MAX_VAL_LEN_IN_BYTES];
+	int max_inflights;
 	u32 ring_num;
 	int ret;
 
@@ -263,6 +272,8 @@ int adf_create_ring(struct adf_accel_dev *accel_dev, const char *section,
 	ring->ring_size = adf_verify_ring_size(msg_size, num_msgs);
 	ring->head = 0;
 	ring->tail = 0;
+	max_inflights = ADF_MAX_INFLIGHTS(ring->ring_size, ring->msg_size);
+	ring->threshold = ADF_PERCENT(max_inflights, ADF_MAX_RING_THRESHOLD);
 	atomic_set(ring->inflights, 0);
 	ret = adf_init_ring(ring);
 	if (ret)
diff --git a/drivers/crypto/qat/qat_common/adf_transport.h b/drivers/crypto/qat/qat_common/adf_transport.h
index 2c95f1697c76..e6ef6f9b7691 100644
--- a/drivers/crypto/qat/qat_common/adf_transport.h
+++ b/drivers/crypto/qat/qat_common/adf_transport.h
@@ -14,6 +14,7 @@ int adf_create_ring(struct adf_accel_dev *accel_dev, const char *section,
 		    const char *ring_name, adf_callback_fn callback,
 		    int poll_mode, struct adf_etr_ring_data **ring_ptr);
 
+bool adf_ring_nearly_full(struct adf_etr_ring_data *ring);
 int adf_send_message(struct adf_etr_ring_data *ring, u32 *msg);
 void adf_remove_ring(struct adf_etr_ring_data *ring);
 #endif
diff --git a/drivers/crypto/qat/qat_common/adf_transport_internal.h b/drivers/crypto/qat/qat_common/adf_transport_internal.h
index 501bcf0f1809..8b2c92ba7ca1 100644
--- a/drivers/crypto/qat/qat_common/adf_transport_internal.h
+++ b/drivers/crypto/qat/qat_common/adf_transport_internal.h
@@ -22,6 +22,7 @@ struct adf_etr_ring_data {
 	spinlock_t lock;	/* protects ring data struct */
 	u16 head;
 	u16 tail;
+	u32 threshold;
 	u8 ring_number;
 	u8 ring_size;
 	u8 msg_size;
diff --git a/drivers/crypto/qat/qat_common/qat_algs.c b/drivers/crypto/qat/qat_common/qat_algs.c
index 6017ae82c713..873533dc43a7 100644
--- a/drivers/crypto/qat/qat_common/qat_algs.c
+++ b/drivers/crypto/qat/qat_common/qat_algs.c
@@ -935,19 +935,25 @@ void qat_alg_callback(void *resp)
 	struct icp_qat_fw_la_resp *qat_resp = resp;
 	struct qat_crypto_request *qat_req =
 				(void *)(__force long)qat_resp->opaque_data;
+	struct qat_instance_backlog *backlog = qat_req->alg_req.backlog;
 
 	qat_req->cb(qat_resp, qat_req);
+
+	qat_alg_send_backlog(backlog);
 }
 
 static int qat_alg_send_sym_message(struct qat_crypto_request *qat_req,
-				    struct qat_crypto_instance *inst)
+				    struct qat_crypto_instance *inst,
+				    struct crypto_async_request *base)
 {
-	struct qat_alg_req req;
+	struct qat_alg_req *alg_req = &qat_req->alg_req;
 
-	req.fw_req = (u32 *)&qat_req->req;
-	req.tx_ring = inst->sym_tx;
+	alg_req->fw_req = (u32 *)&qat_req->req;
+	alg_req->tx_ring = inst->sym_tx;
+	alg_req->base = base;
+	alg_req->backlog = &inst->backlog;
 
-	return qat_alg_send_message(&req);
+	return qat_alg_send_message(alg_req);
 }
 
 static int qat_alg_aead_dec(struct aead_request *areq)
@@ -987,7 +993,7 @@ static int qat_alg_aead_dec(struct aead_request *areq)
 	auth_param->auth_off = 0;
 	auth_param->auth_len = areq->assoclen + cipher_param->cipher_length;
 
-	ret = qat_alg_send_sym_message(qat_req, ctx->inst);
+	ret = qat_alg_send_sym_message(qat_req, ctx->inst, &areq->base);
 	if (ret == -ENOSPC)
 		qat_alg_free_bufl(ctx->inst, qat_req);
 
@@ -1031,7 +1037,7 @@ static int qat_alg_aead_enc(struct aead_request *areq)
 	auth_param->auth_off = 0;
 	auth_param->auth_len = areq->assoclen + areq->cryptlen;
 
-	ret = qat_alg_send_sym_message(qat_req, ctx->inst);
+	ret = qat_alg_send_sym_message(qat_req, ctx->inst, &areq->base);
 	if (ret == -ENOSPC)
 		qat_alg_free_bufl(ctx->inst, qat_req);
 
@@ -1212,7 +1218,7 @@ static int qat_alg_skcipher_encrypt(struct skcipher_request *req)
 
 	qat_alg_set_req_iv(qat_req);
 
-	ret = qat_alg_send_sym_message(qat_req, ctx->inst);
+	ret = qat_alg_send_sym_message(qat_req, ctx->inst, &req->base);
 	if (ret == -ENOSPC)
 		qat_alg_free_bufl(ctx->inst, qat_req);
 
@@ -1278,7 +1284,7 @@ static int qat_alg_skcipher_decrypt(struct skcipher_request *req)
 	qat_alg_set_req_iv(qat_req);
 	qat_alg_update_iv(qat_req);
 
-	ret = qat_alg_send_sym_message(qat_req, ctx->inst);
+	ret = qat_alg_send_sym_message(qat_req, ctx->inst, &req->base);
 	if (ret == -ENOSPC)
 		qat_alg_free_bufl(ctx->inst, qat_req);
 
diff --git a/drivers/crypto/qat/qat_common/qat_algs_send.c b/drivers/crypto/qat/qat_common/qat_algs_send.c
index 78f1bb8c26c0..ff5b4347f783 100644
--- a/drivers/crypto/qat/qat_common/qat_algs_send.c
+++ b/drivers/crypto/qat/qat_common/qat_algs_send.c
@@ -6,7 +6,7 @@
 
 #define ADF_MAX_RETRIES		20
 
-int qat_alg_send_message(struct qat_alg_req *req)
+static int qat_alg_send_message_retry(struct qat_alg_req *req)
 {
 	int ret = 0, ctr = 0;
 
@@ -19,3 +19,68 @@ int qat_alg_send_message(struct qat_alg_req *req)
 
 	return -EINPROGRESS;
 }
+
+void qat_alg_send_backlog(struct qat_instance_backlog *backlog)
+{
+	struct qat_alg_req *req, *tmp;
+
+	spin_lock_bh(&backlog->lock);
+	list_for_each_entry_safe(req, tmp, &backlog->list, list) {
+		if (adf_send_message(req->tx_ring, req->fw_req)) {
+			/* The HW ring is full. Do nothing.
+			 * qat_alg_send_backlog() will be invoked again by
+			 * another callback.
+			 */
+			break;
+		}
+		list_del(&req->list);
+		req->base->complete(req->base, -EINPROGRESS);
+	}
+	spin_unlock_bh(&backlog->lock);
+}
+
+static void qat_alg_backlog_req(struct qat_alg_req *req,
+				struct qat_instance_backlog *backlog)
+{
+	INIT_LIST_HEAD(&req->list);
+
+	spin_lock_bh(&backlog->lock);
+	list_add_tail(&req->list, &backlog->list);
+	spin_unlock_bh(&backlog->lock);
+}
+
+static int qat_alg_send_message_maybacklog(struct qat_alg_req *req)
+{
+	struct qat_instance_backlog *backlog = req->backlog;
+	struct adf_etr_ring_data *tx_ring = req->tx_ring;
+	u32 *fw_req = req->fw_req;
+
+	/* If any request is already backlogged, then add to backlog list */
+	if (!list_empty(&backlog->list))
+		goto enqueue;
+
+	/* If ring is nearly full, then add to backlog list */
+	if (adf_ring_nearly_full(tx_ring))
+		goto enqueue;
+
+	/* If adding request to HW ring fails, then add to backlog list */
+	if (adf_send_message(tx_ring, fw_req))
+		goto enqueue;
+
+	return -EINPROGRESS;
+
+enqueue:
+	qat_alg_backlog_req(req, backlog);
+
+	return -EBUSY;
+}
+
+int qat_alg_send_message(struct qat_alg_req *req)
+{
+	u32 flags = req->base->flags;
+
+	if (flags & CRYPTO_TFM_REQ_MAY_BACKLOG)
+		return qat_alg_send_message_maybacklog(req);
+	else
+		return qat_alg_send_message_retry(req);
+}
diff --git a/drivers/crypto/qat/qat_common/qat_algs_send.h b/drivers/crypto/qat/qat_common/qat_algs_send.h
index 3fa685d0c293..5ce9f4f69d8f 100644
--- a/drivers/crypto/qat/qat_common/qat_algs_send.h
+++ b/drivers/crypto/qat/qat_common/qat_algs_send.h
@@ -6,5 +6,6 @@
 #include "qat_crypto.h"
 
 int qat_alg_send_message(struct qat_alg_req *req);
+void qat_alg_send_backlog(struct qat_instance_backlog *backlog);
 
 #endif
diff --git a/drivers/crypto/qat/qat_common/qat_asym_algs.c b/drivers/crypto/qat/qat_common/qat_asym_algs.c
index 08b8d83e070a..ff7249c093c9 100644
--- a/drivers/crypto/qat/qat_common/qat_asym_algs.c
+++ b/drivers/crypto/qat/qat_common/qat_asym_algs.c
@@ -136,17 +136,21 @@ struct qat_asym_request {
 	} areq;
 	int err;
 	void (*cb)(struct icp_qat_fw_pke_resp *resp);
+	struct qat_alg_req alg_req;
 } __aligned(64);
 
 static int qat_alg_send_asym_message(struct qat_asym_request *qat_req,
-				     struct qat_crypto_instance *inst)
+				     struct qat_crypto_instance *inst,
+				     struct crypto_async_request *base)
 {
-	struct qat_alg_req req;
+	struct qat_alg_req *alg_req = &qat_req->alg_req;
 
-	req.fw_req = (u32 *)&qat_req->req;
-	req.tx_ring = inst->pke_tx;
+	alg_req->fw_req = (u32 *)&qat_req->req;
+	alg_req->tx_ring = inst->pke_tx;
+	alg_req->base = base;
+	alg_req->backlog = &inst->backlog;
 
-	return qat_alg_send_message(&req);
+	return qat_alg_send_message(alg_req);
 }
 
 static void qat_dh_cb(struct icp_qat_fw_pke_resp *resp)
@@ -350,7 +354,7 @@ static int qat_dh_compute_value(struct kpp_request *req)
 	msg->input_param_count = n_input_params;
 	msg->output_param_count = 1;
 
-	ret = qat_alg_send_asym_message(qat_req, ctx->inst);
+	ret = qat_alg_send_asym_message(qat_req, inst, &req->base);
 	if (ret == -ENOSPC)
 		goto unmap_all;
 
@@ -557,8 +561,11 @@ void qat_alg_asym_callback(void *_resp)
 {
 	struct icp_qat_fw_pke_resp *resp = _resp;
 	struct qat_asym_request *areq = (void *)(__force long)resp->opaque;
+	struct qat_instance_backlog *backlog = areq->alg_req.backlog;
 
 	areq->cb(resp);
+
+	qat_alg_send_backlog(backlog);
 }
 
 #define PKE_RSA_EP_512 0x1c161b21
@@ -748,7 +755,7 @@ static int qat_rsa_enc(struct akcipher_request *req)
 	msg->input_param_count = 3;
 	msg->output_param_count = 1;
 
-	ret = qat_alg_send_asym_message(qat_req, ctx->inst);
+	ret = qat_alg_send_asym_message(qat_req, inst, &req->base);
 	if (ret == -ENOSPC)
 		goto unmap_all;
 
@@ -901,7 +908,7 @@ static int qat_rsa_dec(struct akcipher_request *req)
 
 	msg->output_param_count = 1;
 
-	ret = qat_alg_send_asym_message(qat_req, ctx->inst);
+	ret = qat_alg_send_asym_message(qat_req, inst, &req->base);
 	if (ret == -ENOSPC)
 		goto unmap_all;
 
diff --git a/drivers/crypto/qat/qat_common/qat_crypto.c b/drivers/crypto/qat/qat_common/qat_crypto.c
index 67c9588e89df..80d905ed102e 100644
--- a/drivers/crypto/qat/qat_common/qat_crypto.c
+++ b/drivers/crypto/qat/qat_common/qat_crypto.c
@@ -353,6 +353,9 @@ static int qat_crypto_create_instances(struct adf_accel_dev *accel_dev)
 				      &inst->pke_rx);
 		if (ret)
 			goto err;
+
+		INIT_LIST_HEAD(&inst->backlog.list);
+		spin_lock_init(&inst->backlog.lock);
 	}
 	return 0;
 err:
diff --git a/drivers/crypto/qat/qat_common/qat_crypto.h b/drivers/crypto/qat/qat_common/qat_crypto.h
index 0dcba6fc358c..245b6d9a3650 100644
--- a/drivers/crypto/qat/qat_common/qat_crypto.h
+++ b/drivers/crypto/qat/qat_common/qat_crypto.h
@@ -9,9 +9,17 @@
 #include "adf_accel_devices.h"
 #include "icp_qat_fw_la.h"
 
+struct qat_instance_backlog {
+	struct list_head list;
+	spinlock_t lock; /* protects backlog list */
+};
+
 struct qat_alg_req {
 	u32 *fw_req;
 	struct adf_etr_ring_data *tx_ring;
+	struct crypto_async_request *base;
+	struct list_head list;
+	struct qat_instance_backlog *backlog;
 };
 
 struct qat_crypto_instance {
@@ -24,6 +32,7 @@ struct qat_crypto_instance {
 	unsigned long state;
 	int id;
 	atomic_t refctr;
+	struct qat_instance_backlog backlog;
 };
 
 #define QAT_MAX_BUFF_DESC	4
@@ -82,6 +91,7 @@ struct qat_crypto_request {
 		u8 iv[AES_BLOCK_SIZE];
 	};
 	bool encryption;
+	struct qat_alg_req alg_req;
 };
 
 static inline bool adf_hw_dev_has_crypto(struct adf_accel_dev *accel_dev)
-- 
2.35.1




  parent reply	other threads:[~2022-07-27 17:45 UTC|newest]

Thread overview: 169+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-27 16:11 [PATCH 5.18 000/158] 5.18.15-rc1 review Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 001/158] pinctrl: armada-37xx: use raw spinlocks for regmap to avoid invalid wait context Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 002/158] pinctrl: stm32: fix optional IRQ support to gpios Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 003/158] riscv: add as-options for modules with assembly compontents Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 004/158] mlxsw: spectrum_router: Fix IPv4 nexthop gateway indication Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 005/158] lockdown: Fix kexec lockdown bypass with ima policy Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 006/158] mmc: sdhci-omap: Fix a lockdep warning for PM runtime init Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 007/158] mtd: rawnand: gpmi: Set WAIT_FOR_READY timeout based on program/erase times Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 008/158] drm/ttm: fix locking in vmap/vunmap TTM GEM helpers Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 009/158] drm/amd/display: Fix new dmub notification enabling in DM Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 010/158] drm/scheduler: Dont kill jobs in interrupt context Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 011/158] net: usb: ax88179_178a needs FLAG_SEND_ZLP Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 012/158] bus: mhi: host: pci_generic: add Telit FN980 v1 hardware revision Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 013/158] bus: mhi: host: pci_generic: add Telit FN990 Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 014/158] PCI: hv: Fix multi-MSI to allow more than one MSI vector Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 015/158] PCI: hv: Fix hv_arch_irq_unmask() for multi-MSI Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 016/158] PCI: hv: Reuse existing IRTE allocation in compose_msi_msg() Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 017/158] PCI: hv: Fix interrupt mapping for multi-MSI Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 018/158] r8152: fix a WOL issue Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 019/158] ip: Fix data-races around sysctl_ip_default_ttl Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 020/158] xfrm: xfrm_policy: fix a possible double xfrm_pols_put() in xfrm_bundle_lookup() Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 021/158] power: supply: ab8500_fg: add missing destroy_workqueue in ab8500_fg_probe Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 022/158] power/reset: arm-versatile: Fix refcount leak in versatile_reboot_probe Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 023/158] RDMA/irdma: Do not advertise 1GB page size for x722 Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 024/158] RDMA/irdma: Fix sleep from invalid context BUG Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 025/158] pinctrl: ralink: rename MT7628(an) functions to MT76X8 Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 026/158] pinctrl: ralink: rename pinctrl-rt2880 to pinctrl-ralink Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 027/158] pinctrl: ralink: Check for null return of devm_kcalloc Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 028/158] pinctrl: sunplus: Add check for kcalloc Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 029/158] perf/core: Fix data race between perf_event_set_output() and perf_mmap_close() Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 030/158] e1000e: Enable GPT clock before sending message to CSME Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 031/158] Revert "e1000e: Fix possible HW unit hang after an s0ix exit" Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 032/158] igc: Reinstate IGC_REMOVED logic and implement it properly Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 033/158] ip: Fix data-races around sysctl_ip_no_pmtu_disc Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 034/158] ip: Fix data-races around sysctl_ip_fwd_use_pmtu Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 035/158] ip: Fix data-races around sysctl_ip_fwd_update_priority Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 036/158] ip: Fix data-races around sysctl_ip_nonlocal_bind Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 037/158] ip: Fix a data-race around sysctl_ip_autobind_reuse Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 038/158] ip: Fix a data-race around sysctl_fwmark_reflect Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 039/158] tcp/dccp: Fix a data-race around sysctl_tcp_fwmark_accept Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 040/158] tcp: sk->sk_bound_dev_if once in inet_request_bound_dev_if() Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 041/158] tcp: Fix data-races around sysctl_tcp_l3mdev_accept Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 042/158] tcp: Fix data-races around sysctl_tcp_mtu_probing Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 043/158] tcp: Fix data-races around sysctl_tcp_base_mss Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 044/158] tcp: Fix data-races around sysctl_tcp_min_snd_mss Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 045/158] tcp: Fix a data-race around sysctl_tcp_mtu_probe_floor Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 046/158] tcp: Fix a data-race around sysctl_tcp_probe_threshold Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 047/158] tcp: Fix a data-race around sysctl_tcp_probe_interval Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 048/158] stmmac: dwmac-mediatek: fix clock issue Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 049/158] net: stmmac: fix pm runtime issue in stmmac_dvr_remove() Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 050/158] net: stmmac: fix unbalanced ptp clock issue in suspend/resume flow Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 051/158] net: dsa: microchip: ksz_common: Fix refcount leak bug Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 052/158] tcp/udp: Make early_demux back namespacified Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 053/158] i2c: mlxcpld: Fix register setting for 400KHz frequency Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 054/158] i2c: cadence: Change large transfer count reset logic to be unconditional Greg Kroah-Hartman
2022-07-27 16:11 ` [PATCH 5.18 055/158] perf tests: Stop Convert perf time to TSC test opening events twice Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 056/158] perf tests: Fix Convert perf time to TSC test for hybrid Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 057/158] pinctrl: ocelot: Fix pincfg for lan966x Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 058/158] pinctrl: ocelot: Fix pincfg Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 059/158] net: stmmac: fix dma queue left shift overflow issue Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 060/158] net/tls: Fix race in TLS device down flow Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 061/158] net: prestera: acl: use proper mask for port selector Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 062/158] igmp: Fix data-races around sysctl_igmp_llm_reports Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 063/158] igmp: Fix a data-race around sysctl_igmp_max_memberships Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 064/158] igmp: Fix data-races around sysctl_igmp_max_msf Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 065/158] igmp: Fix data-races around sysctl_igmp_qrv Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 066/158] tcp: Fix data-races around keepalive sysctl knobs Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 067/158] tcp: Fix data-races around sysctl_tcp_syn(ack)?_retries Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 068/158] tcp: Fix data-races around sysctl_tcp_syncookies Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 069/158] tcp: Fix data-races around sysctl_tcp_migrate_req Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 070/158] tcp: Fix data-races around sysctl_tcp_reordering Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 071/158] tcp: Fix data-races around some timeout sysctl knobs Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 072/158] tcp: Fix a data-race around sysctl_tcp_notsent_lowat Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 073/158] tcp: Fix a data-race around sysctl_tcp_tw_reuse Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 074/158] tcp: Fix data-races around sysctl_max_syn_backlog Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 075/158] tcp: Fix data-races around sysctl_tcp_fastopen Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 076/158] tcp: Fix data-races around sysctl_tcp_fastopen_blackhole_timeout Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 077/158] iavf: Fix VLAN_V2 addition/rejection Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 078/158] iavf: Disallow changing rx/tx-frames and rx/tx-frames-irq Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 079/158] iavf: Fix handling of dummy receive descriptors Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 080/158] iavf: Fix missing state logs Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 081/158] ACPI: CPPC: Dont require flexible address space if X86_FEATURE_CPPC is supported Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 082/158] pinctrl: armada-37xx: Reuse GPIO fwnode in armada_37xx_irqchip_register() Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 083/158] pinctrl: armada-37xx: make irq_lock a raw spinlock to avoid invalid wait context Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 084/158] net: lan966x: Fix taking rtnl_lock while holding spin_lock Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 085/158] net: lan966x: Fix usage of lan966x->mac_lock when entry is added Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 086/158] net: lan966x: Fix usage of lan966x->mac_lock when entry is removed Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 087/158] net: lan966x: Fix usage of lan966x->mac_lock inside lan966x_mac_irq_handler Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 088/158] net: lan966x: Fix usage of lan966x->mac_lock when used by FDB Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 089/158] i40e: Fix erroneous adapter reinitialization during recovery process Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 090/158] ixgbe: Add locking to prevent panic when setting sriov_numvfs to zero Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 091/158] net: dsa: fix dsa_port_vlan_filtering when global Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 092/158] net: dsa: move reset of VLAN filtering to dsa_port_switchdev_unsync_attrs Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 093/158] net: dsa: fix NULL pointer dereference in dsa_port_reset_vlan_filtering Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 094/158] net: stmmac: remove redunctant disable xPCS EEE call Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 095/158] gpio: pca953x: only use single read/write for No AI mode Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 096/158] gpio: pca953x: use the correct range when do regmap sync Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 097/158] gpio: pca953x: use the correct register address when regcache sync during init Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 098/158] be2net: Fix buffer overflow in be_get_module_eeprom Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 099/158] net: dsa: sja1105: silent spi_device_id warnings Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 100/158] net: dsa: vitesse-vsc73xx: " Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 101/158] amt: use workqueue for gateway side message handling Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 102/158] amt: remove unnecessary locks Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 103/158] amt: use READ_ONCE() in amt module Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 104/158] amt: add missing regeneration nonce logic in request logic Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 105/158] amt: drop unexpected advertisement message Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 106/158] amt: drop unexpected query message Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 107/158] amt: drop unexpected multicast data Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 108/158] amt: do not use amt->nr_tunnels outside of lock Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 109/158] drm/panel-edp: Fix variable typo when saving hpd absent delay from DT Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 110/158] drm/imx/dcss: Add missing of_node_put() in fail path Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 111/158] can: rcar_canfd: Add missing of_node_put() in rcar_canfd_probe() Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 112/158] ipv4: Fix a data-race around sysctl_fib_multipath_use_neigh Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 113/158] ipv4: Fix data-races around sysctl_fib_multipath_hash_policy Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 114/158] ipv4: Fix data-races around sysctl_fib_multipath_hash_fields Greg Kroah-Hartman
2022-07-27 16:12 ` [PATCH 5.18 115/158] ip: Fix data-races around sysctl_ip_prot_sock Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 116/158] udp: Fix a data-race around sysctl_udp_l3mdev_accept Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 117/158] tcp: Fix data-races around sysctl knobs related to SYN option Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 118/158] tcp: Fix a data-race around sysctl_tcp_early_retrans Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 119/158] tcp: Fix data-races around sysctl_tcp_recovery Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 120/158] tcp: Fix a data-race around sysctl_tcp_thin_linear_timeouts Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 121/158] tcp: Fix data-races around sysctl_tcp_slow_start_after_idle Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 122/158] tcp: Fix a data-race around sysctl_tcp_retrans_collapse Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 123/158] tcp: Fix a data-race around sysctl_tcp_stdurg Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 124/158] tcp: Fix a data-race around sysctl_tcp_rfc1337 Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 125/158] tcp: Fix a data-race around sysctl_tcp_abort_on_overflow Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 126/158] tcp: Fix data-races around sysctl_tcp_max_reordering Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 127/158] net/sched: cls_api: Fix flow action initialization Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 128/158] selftests: gpio: fix include path to kernel headers for out of tree builds Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 129/158] gpio: gpio-xilinx: Fix integer overflow Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 130/158] KVM: selftests: Fix target thread to be migrated in rseq_test Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 131/158] spi: bcm2835: bcm2835_spi_handle_err(): fix NULL pointer deref for non DMA transfers Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 132/158] KVM: Dont null dereference ops->destroy Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 133/158] mm/mempolicy: fix uninit-value in mpol_rebind_policy() Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 134/158] bpf: Make sure mac_header was set before using it Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 135/158] sched/deadline: Fix BUG_ON condition for deboosted tasks Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 136/158] perf/x86/intel/lbr: Fix unchecked MSR access error on HSW Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 137/158] x86/bugs: Warn when "ibrs" mitigation is selected on Enhanced IBRS parts Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 138/158] clk: lan966x: Fix the lan966x clock gate register address Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 139/158] dlm: fix pending remove if msg allocation fails Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 140/158] crypto: qat - set to zero DH parameters before free Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 141/158] crypto: qat - use pre-allocated buffers in datapath Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 142/158] crypto: qat - refactor submission logic Greg Kroah-Hartman
2022-07-27 16:13 ` Greg Kroah-Hartman [this message]
2022-07-27 16:13 ` [PATCH 5.18 144/158] crypto: qat - fix memory leak in RSA Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 145/158] crypto: qat - remove dma_free_coherent() for RSA Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 146/158] crypto: qat - remove dma_free_coherent() for DH Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 147/158] crypto: qat - add param check for RSA Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 148/158] crypto: qat - add param check for DH Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 149/158] crypto: qat - re-enable registration of algorithms Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 150/158] exfat: fix referencing wrong parent directory information after renaming Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 151/158] exfat: use updated exfat_chain directly during renaming Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 152/158] x86/amd: Use IBPB for firmware calls Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 153/158] x86/alternative: Report missing return thunk details Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 154/158] watchqueue: make sure to serialize wqueue->defunct properly Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 155/158] ASoC: SOF: pm: add explicit behavior for ACPI S1 and S2 Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 156/158] ASoC: SOF: pm: add definitions for S4 and S5 states Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 157/158] ASoC: SOF: Intel: disable IMR boot when resuming from ACPI " Greg Kroah-Hartman
2022-07-27 16:13 ` [PATCH 5.18 158/158] watch-queue: remove spurious double semicolon Greg Kroah-Hartman
2022-07-28  0:48 ` [PATCH 5.18 000/158] 5.18.15-rc1 review Florian Fainelli
2022-07-28  5:35 ` Naresh Kamboju
2022-07-28  6:17 ` Ron Economos
2022-07-28  8:51 ` Bagas Sanjaya
2022-07-28 10:04 ` Jiri Slaby
2022-07-28 14:32 ` Jon Hunter
2022-07-28 14:37 ` Shuah Khan
2022-07-28 16:01 ` Sudip Mukherjee (Codethink)
2022-07-28 22:59 ` Guenter Roeck
2022-07-29 15:29 ` Justin Forbes

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=20220727161027.078711608@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=giovanni.cabiddu@intel.com \
    --cc=herbert@gondor.apana.org.au \
    --cc=kyle.leet@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marco.chiappero@intel.com \
    --cc=mpatocka@redhat.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.