From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev,
Giovanni Cabiddu <giovanni.cabiddu@intel.com>,
Fiona Trahe <fiona.trahe@intel.com>,
Wojciech Ziemba <wojciech.ziemba@intel.com>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Herbert Xu <herbert@gondor.apana.org.au>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.10 094/191] crypto: qat - mask device capabilities with soft straps
Date: Wed, 15 Nov 2023 15:46:09 -0500 [thread overview]
Message-ID: <20231115204650.213350779@linuxfoundation.org> (raw)
In-Reply-To: <20231115204644.490636297@linuxfoundation.org>
5.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
[ Upstream commit 7b07ed5042c5d21467af5aa055f2b49b2e661a83 ]
Enable acceleration engines (AEs) and accelerators based on soft straps
and fuses. When looping with a number of AEs or accelerators, ignore the
ones that are disabled.
This patch is based on earlier work done by Conor McLoughlin.
Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Reviewed-by: Fiona Trahe <fiona.trahe@intel.com>
Reviewed-by: Wojciech Ziemba <wojciech.ziemba@intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Stable-dep-of: 4e4e2ed22d50 ("crypto: qat - increase size of buffers")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
.../crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c | 34 +++++++++++++++----
.../crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.h | 1 +
drivers/crypto/qat/qat_c3xxx/adf_drv.c | 6 ++--
.../qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c | 4 +--
drivers/crypto/qat/qat_c3xxxvf/adf_drv.c | 4 +--
.../crypto/qat/qat_c62x/adf_c62x_hw_data.c | 34 +++++++++++++++----
.../crypto/qat/qat_c62x/adf_c62x_hw_data.h | 1 +
drivers/crypto/qat/qat_c62x/adf_drv.c | 6 ++--
.../qat/qat_c62xvf/adf_c62xvf_hw_data.c | 4 +--
drivers/crypto/qat/qat_c62xvf/adf_drv.c | 4 +--
.../crypto/qat/qat_common/adf_accel_devices.h | 5 +--
drivers/crypto/qat/qat_common/qat_hal.c | 27 ++++++++-------
.../qat/qat_dh895xcc/adf_dh895xcc_hw_data.c | 20 +++++++----
drivers/crypto/qat/qat_dh895xcc/adf_drv.c | 4 +--
.../qat_dh895xccvf/adf_dh895xccvf_hw_data.c | 4 +--
drivers/crypto/qat/qat_dh895xccvf/adf_drv.c | 4 +--
16 files changed, 109 insertions(+), 53 deletions(-)
diff --git a/drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c b/drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c
index aee494d3da529..4b2f5aa833919 100644
--- a/drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c
+++ b/drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c
@@ -17,15 +17,33 @@ static struct adf_hw_device_class c3xxx_class = {
.instances = 0
};
-static u32 get_accel_mask(u32 fuse)
+static u32 get_accel_mask(struct adf_hw_device_data *self)
{
- return (~fuse) >> ADF_C3XXX_ACCELERATORS_REG_OFFSET &
- ADF_C3XXX_ACCELERATORS_MASK;
+ u32 straps = self->straps;
+ u32 fuses = self->fuses;
+ u32 accel;
+
+ accel = ~(fuses | straps) >> ADF_C3XXX_ACCELERATORS_REG_OFFSET;
+ accel &= ADF_C3XXX_ACCELERATORS_MASK;
+
+ return accel;
}
-static u32 get_ae_mask(u32 fuse)
+static u32 get_ae_mask(struct adf_hw_device_data *self)
{
- return (~fuse) & ADF_C3XXX_ACCELENGINES_MASK;
+ u32 straps = self->straps;
+ u32 fuses = self->fuses;
+ unsigned long disabled;
+ u32 ae_disable;
+ int accel;
+
+ /* If an accel is disabled, then disable the corresponding two AEs */
+ disabled = ~get_accel_mask(self) & ADF_C3XXX_ACCELERATORS_MASK;
+ ae_disable = BIT(1) | BIT(0);
+ for_each_set_bit(accel, &disabled, ADF_C3XXX_MAX_ACCELERATORS)
+ straps |= ae_disable << (accel << 1);
+
+ return ~(fuses | straps) & ADF_C3XXX_ACCELENGINES_MASK;
}
static u32 get_num_accels(struct adf_hw_device_data *self)
@@ -109,11 +127,13 @@ static void adf_enable_error_correction(struct adf_accel_dev *accel_dev)
{
struct adf_hw_device_data *hw_device = accel_dev->hw_device;
struct adf_bar *misc_bar = &GET_BARS(accel_dev)[ADF_C3XXX_PMISC_BAR];
+ unsigned long accel_mask = hw_device->accel_mask;
+ unsigned long ae_mask = hw_device->ae_mask;
void __iomem *csr = misc_bar->virt_addr;
unsigned int val, i;
/* Enable Accel Engine error detection & correction */
- for (i = 0; i < hw_device->get_num_aes(hw_device); i++) {
+ for_each_set_bit(i, &ae_mask, GET_MAX_ACCELENGINES(accel_dev)) {
val = ADF_CSR_RD(csr, ADF_C3XXX_AE_CTX_ENABLES(i));
val |= ADF_C3XXX_ENABLE_AE_ECC_ERR;
ADF_CSR_WR(csr, ADF_C3XXX_AE_CTX_ENABLES(i), val);
@@ -123,7 +143,7 @@ static void adf_enable_error_correction(struct adf_accel_dev *accel_dev)
}
/* Enable shared memory error detection & correction */
- for (i = 0; i < hw_device->get_num_accels(hw_device); i++) {
+ for_each_set_bit(i, &accel_mask, ADF_C3XXX_MAX_ACCELERATORS) {
val = ADF_CSR_RD(csr, ADF_C3XXX_UERRSSMSH(i));
val |= ADF_C3XXX_ERRSSMSH_EN;
ADF_CSR_WR(csr, ADF_C3XXX_UERRSSMSH(i), val);
diff --git a/drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.h b/drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.h
index 8b5dd2c94ebfa..94097816f68ae 100644
--- a/drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.h
+++ b/drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.h
@@ -18,6 +18,7 @@
#define ADF_C3XXX_SMIAPF1_MASK_OFFSET (0x3A000 + 0x30)
#define ADF_C3XXX_SMIA0_MASK 0xFFFF
#define ADF_C3XXX_SMIA1_MASK 0x1
+#define ADF_C3XXX_SOFTSTRAP_CSR_OFFSET 0x2EC
/* Error detection and correction */
#define ADF_C3XXX_AE_CTX_ENABLES(i) (i * 0x1000 + 0x20818)
#define ADF_C3XXX_AE_MISC_CONTROL(i) (i * 0x1000 + 0x20960)
diff --git a/drivers/crypto/qat/qat_c3xxx/adf_drv.c b/drivers/crypto/qat/qat_c3xxx/adf_drv.c
index ed0e8e33fe4b3..da6e880269881 100644
--- a/drivers/crypto/qat/qat_c3xxx/adf_drv.c
+++ b/drivers/crypto/qat/qat_c3xxx/adf_drv.c
@@ -126,10 +126,12 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
pci_read_config_byte(pdev, PCI_REVISION_ID, &accel_pci_dev->revid);
pci_read_config_dword(pdev, ADF_DEVICE_FUSECTL_OFFSET,
&hw_data->fuses);
+ pci_read_config_dword(pdev, ADF_C3XXX_SOFTSTRAP_CSR_OFFSET,
+ &hw_data->straps);
/* Get Accelerators and Accelerators Engines masks */
- hw_data->accel_mask = hw_data->get_accel_mask(hw_data->fuses);
- hw_data->ae_mask = hw_data->get_ae_mask(hw_data->fuses);
+ hw_data->accel_mask = hw_data->get_accel_mask(hw_data);
+ hw_data->ae_mask = hw_data->get_ae_mask(hw_data);
accel_pci_dev->sku = hw_data->get_sku(hw_data);
/* If the device has no acceleration engines then ignore it. */
if (!hw_data->accel_mask || !hw_data->ae_mask ||
diff --git a/drivers/crypto/qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c b/drivers/crypto/qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c
index 9709f29b64540..26b13973f9ac9 100644
--- a/drivers/crypto/qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c
+++ b/drivers/crypto/qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c
@@ -11,12 +11,12 @@ static struct adf_hw_device_class c3xxxiov_class = {
.instances = 0
};
-static u32 get_accel_mask(u32 fuse)
+static u32 get_accel_mask(struct adf_hw_device_data *self)
{
return ADF_C3XXXIOV_ACCELERATORS_MASK;
}
-static u32 get_ae_mask(u32 fuse)
+static u32 get_ae_mask(struct adf_hw_device_data *self)
{
return ADF_C3XXXIOV_ACCELENGINES_MASK;
}
diff --git a/drivers/crypto/qat/qat_c3xxxvf/adf_drv.c b/drivers/crypto/qat/qat_c3xxxvf/adf_drv.c
index ea932b6c4534f..067ca5e17d387 100644
--- a/drivers/crypto/qat/qat_c3xxxvf/adf_drv.c
+++ b/drivers/crypto/qat/qat_c3xxxvf/adf_drv.c
@@ -119,8 +119,8 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
adf_init_hw_data_c3xxxiov(accel_dev->hw_device);
/* Get Accelerators and Accelerators Engines masks */
- hw_data->accel_mask = hw_data->get_accel_mask(hw_data->fuses);
- hw_data->ae_mask = hw_data->get_ae_mask(hw_data->fuses);
+ hw_data->accel_mask = hw_data->get_accel_mask(hw_data);
+ hw_data->ae_mask = hw_data->get_ae_mask(hw_data);
accel_pci_dev->sku = hw_data->get_sku(hw_data);
/* Create dev top level debugfs entry */
diff --git a/drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.c b/drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.c
index 844ad5ed33fcd..c0b5751e96821 100644
--- a/drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.c
+++ b/drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.c
@@ -22,15 +22,33 @@ static struct adf_hw_device_class c62x_class = {
.instances = 0
};
-static u32 get_accel_mask(u32 fuse)
+static u32 get_accel_mask(struct adf_hw_device_data *self)
{
- return (~fuse) >> ADF_C62X_ACCELERATORS_REG_OFFSET &
- ADF_C62X_ACCELERATORS_MASK;
+ u32 straps = self->straps;
+ u32 fuses = self->fuses;
+ u32 accel;
+
+ accel = ~(fuses | straps) >> ADF_C62X_ACCELERATORS_REG_OFFSET;
+ accel &= ADF_C62X_ACCELERATORS_MASK;
+
+ return accel;
}
-static u32 get_ae_mask(u32 fuse)
+static u32 get_ae_mask(struct adf_hw_device_data *self)
{
- return (~fuse) & ADF_C62X_ACCELENGINES_MASK;
+ u32 straps = self->straps;
+ u32 fuses = self->fuses;
+ unsigned long disabled;
+ u32 ae_disable;
+ int accel;
+
+ /* If an accel is disabled, then disable the corresponding two AEs */
+ disabled = ~get_accel_mask(self) & ADF_C62X_ACCELERATORS_MASK;
+ ae_disable = BIT(1) | BIT(0);
+ for_each_set_bit(accel, &disabled, ADF_C62X_MAX_ACCELERATORS)
+ straps |= ae_disable << (accel << 1);
+
+ return ~(fuses | straps) & ADF_C62X_ACCELENGINES_MASK;
}
static u32 get_num_accels(struct adf_hw_device_data *self)
@@ -119,11 +137,13 @@ static void adf_enable_error_correction(struct adf_accel_dev *accel_dev)
{
struct adf_hw_device_data *hw_device = accel_dev->hw_device;
struct adf_bar *misc_bar = &GET_BARS(accel_dev)[ADF_C62X_PMISC_BAR];
+ unsigned long accel_mask = hw_device->accel_mask;
+ unsigned long ae_mask = hw_device->ae_mask;
void __iomem *csr = misc_bar->virt_addr;
unsigned int val, i;
/* Enable Accel Engine error detection & correction */
- for (i = 0; i < hw_device->get_num_aes(hw_device); i++) {
+ for_each_set_bit(i, &ae_mask, GET_MAX_ACCELENGINES(accel_dev)) {
val = ADF_CSR_RD(csr, ADF_C62X_AE_CTX_ENABLES(i));
val |= ADF_C62X_ENABLE_AE_ECC_ERR;
ADF_CSR_WR(csr, ADF_C62X_AE_CTX_ENABLES(i), val);
@@ -133,7 +153,7 @@ static void adf_enable_error_correction(struct adf_accel_dev *accel_dev)
}
/* Enable shared memory error detection & correction */
- for (i = 0; i < hw_device->get_num_accels(hw_device); i++) {
+ for_each_set_bit(i, &accel_mask, ADF_C62X_MAX_ACCELERATORS) {
val = ADF_CSR_RD(csr, ADF_C62X_UERRSSMSH(i));
val |= ADF_C62X_ERRSSMSH_EN;
ADF_CSR_WR(csr, ADF_C62X_UERRSSMSH(i), val);
diff --git a/drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.h b/drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.h
index 88504d2bf30d5..a2e2961a21022 100644
--- a/drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.h
+++ b/drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.h
@@ -19,6 +19,7 @@
#define ADF_C62X_SMIAPF1_MASK_OFFSET (0x3A000 + 0x30)
#define ADF_C62X_SMIA0_MASK 0xFFFF
#define ADF_C62X_SMIA1_MASK 0x1
+#define ADF_C62X_SOFTSTRAP_CSR_OFFSET 0x2EC
/* Error detection and correction */
#define ADF_C62X_AE_CTX_ENABLES(i) (i * 0x1000 + 0x20818)
#define ADF_C62X_AE_MISC_CONTROL(i) (i * 0x1000 + 0x20960)
diff --git a/drivers/crypto/qat/qat_c62x/adf_drv.c b/drivers/crypto/qat/qat_c62x/adf_drv.c
index d8e7c9c255903..3da697a566ad7 100644
--- a/drivers/crypto/qat/qat_c62x/adf_drv.c
+++ b/drivers/crypto/qat/qat_c62x/adf_drv.c
@@ -126,10 +126,12 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
pci_read_config_byte(pdev, PCI_REVISION_ID, &accel_pci_dev->revid);
pci_read_config_dword(pdev, ADF_DEVICE_FUSECTL_OFFSET,
&hw_data->fuses);
+ pci_read_config_dword(pdev, ADF_C62X_SOFTSTRAP_CSR_OFFSET,
+ &hw_data->straps);
/* Get Accelerators and Accelerators Engines masks */
- hw_data->accel_mask = hw_data->get_accel_mask(hw_data->fuses);
- hw_data->ae_mask = hw_data->get_ae_mask(hw_data->fuses);
+ hw_data->accel_mask = hw_data->get_accel_mask(hw_data);
+ hw_data->ae_mask = hw_data->get_ae_mask(hw_data);
accel_pci_dev->sku = hw_data->get_sku(hw_data);
/* If the device has no acceleration engines then ignore it. */
if (!hw_data->accel_mask || !hw_data->ae_mask ||
diff --git a/drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c b/drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c
index 5e6909d6cfc65..ff5a57824eca4 100644
--- a/drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c
+++ b/drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c
@@ -11,12 +11,12 @@ static struct adf_hw_device_class c62xiov_class = {
.instances = 0
};
-static u32 get_accel_mask(u32 fuse)
+static u32 get_accel_mask(struct adf_hw_device_data *self)
{
return ADF_C62XIOV_ACCELERATORS_MASK;
}
-static u32 get_ae_mask(u32 fuse)
+static u32 get_ae_mask(struct adf_hw_device_data *self)
{
return ADF_C62XIOV_ACCELENGINES_MASK;
}
diff --git a/drivers/crypto/qat/qat_c62xvf/adf_drv.c b/drivers/crypto/qat/qat_c62xvf/adf_drv.c
index 6200ad448b119..51ea88c0b17d7 100644
--- a/drivers/crypto/qat/qat_c62xvf/adf_drv.c
+++ b/drivers/crypto/qat/qat_c62xvf/adf_drv.c
@@ -119,8 +119,8 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
adf_init_hw_data_c62xiov(accel_dev->hw_device);
/* Get Accelerators and Accelerators Engines masks */
- hw_data->accel_mask = hw_data->get_accel_mask(hw_data->fuses);
- hw_data->ae_mask = hw_data->get_ae_mask(hw_data->fuses);
+ hw_data->accel_mask = hw_data->get_accel_mask(hw_data);
+ hw_data->ae_mask = hw_data->get_ae_mask(hw_data);
accel_pci_dev->sku = hw_data->get_sku(hw_data);
/* Create dev top level debugfs entry */
diff --git a/drivers/crypto/qat/qat_common/adf_accel_devices.h b/drivers/crypto/qat/qat_common/adf_accel_devices.h
index 06952ece53d91..411a505e1f59f 100644
--- a/drivers/crypto/qat/qat_common/adf_accel_devices.h
+++ b/drivers/crypto/qat/qat_common/adf_accel_devices.h
@@ -104,8 +104,8 @@ struct adf_etr_ring_data;
struct adf_hw_device_data {
struct adf_hw_device_class *dev_class;
- u32 (*get_accel_mask)(u32 fuse);
- u32 (*get_ae_mask)(u32 fuse);
+ u32 (*get_accel_mask)(struct adf_hw_device_data *self);
+ u32 (*get_ae_mask)(struct adf_hw_device_data *self);
u32 (*get_sram_bar_id)(struct adf_hw_device_data *self);
u32 (*get_misc_bar_id)(struct adf_hw_device_data *self);
u32 (*get_etr_bar_id)(struct adf_hw_device_data *self);
@@ -131,6 +131,7 @@ struct adf_hw_device_data {
const char *fw_name;
const char *fw_mmp_name;
u32 fuses;
+ u32 straps;
u32 accel_capabilities_mask;
u32 instance_id;
u16 accel_mask;
diff --git a/drivers/crypto/qat/qat_common/qat_hal.c b/drivers/crypto/qat/qat_common/qat_hal.c
index b40e81e0088f0..76d8470651b85 100644
--- a/drivers/crypto/qat/qat_common/qat_hal.c
+++ b/drivers/crypto/qat/qat_common/qat_hal.c
@@ -346,11 +346,12 @@ static void qat_hal_put_wakeup_event(struct icp_qat_fw_loader_handle *handle,
static int qat_hal_check_ae_alive(struct icp_qat_fw_loader_handle *handle)
{
+ unsigned long ae_mask = handle->hal_handle->ae_mask;
unsigned int base_cnt, cur_cnt;
unsigned char ae;
int times = MAX_RETRY_TIMES;
- for (ae = 0; ae < handle->hal_handle->ae_max_num; ae++) {
+ for_each_set_bit(ae, &ae_mask, handle->hal_handle->ae_max_num) {
base_cnt = qat_hal_rd_ae_csr(handle, ae, PROFILE_COUNT);
base_cnt &= 0xffff;
@@ -384,6 +385,7 @@ int qat_hal_check_ae_active(struct icp_qat_fw_loader_handle *handle,
static void qat_hal_reset_timestamp(struct icp_qat_fw_loader_handle *handle)
{
+ unsigned long ae_mask = handle->hal_handle->ae_mask;
unsigned int misc_ctl;
unsigned char ae;
@@ -393,7 +395,7 @@ static void qat_hal_reset_timestamp(struct icp_qat_fw_loader_handle *handle)
SET_GLB_CSR(handle, MISC_CONTROL, misc_ctl &
(~MC_TIMESTAMP_ENABLE));
- for (ae = 0; ae < handle->hal_handle->ae_max_num; ae++) {
+ for_each_set_bit(ae, &ae_mask, handle->hal_handle->ae_max_num) {
qat_hal_wr_ae_csr(handle, ae, TIMESTAMP_LOW, 0);
qat_hal_wr_ae_csr(handle, ae, TIMESTAMP_HIGH, 0);
}
@@ -438,6 +440,7 @@ static int qat_hal_init_esram(struct icp_qat_fw_loader_handle *handle)
#define SHRAM_INIT_CYCLES 2060
int qat_hal_clr_reset(struct icp_qat_fw_loader_handle *handle)
{
+ unsigned long ae_mask = handle->hal_handle->ae_mask;
unsigned int ae_reset_csr;
unsigned char ae;
unsigned int clk_csr;
@@ -464,7 +467,7 @@ int qat_hal_clr_reset(struct icp_qat_fw_loader_handle *handle)
goto out_err;
/* Set undefined power-up/reset states to reasonable default values */
- for (ae = 0; ae < handle->hal_handle->ae_max_num; ae++) {
+ for_each_set_bit(ae, &ae_mask, handle->hal_handle->ae_max_num) {
qat_hal_wr_ae_csr(handle, ae, CTX_ENABLES,
INIT_CTX_ENABLE_VALUE);
qat_hal_wr_indr_csr(handle, ae, ICP_QAT_UCLO_AE_ALL_CTX,
@@ -570,10 +573,11 @@ static void qat_hal_enable_ctx(struct icp_qat_fw_loader_handle *handle,
static void qat_hal_clear_xfer(struct icp_qat_fw_loader_handle *handle)
{
+ unsigned long ae_mask = handle->hal_handle->ae_mask;
unsigned char ae;
unsigned short reg;
- for (ae = 0; ae < handle->hal_handle->ae_max_num; ae++) {
+ for_each_set_bit(ae, &ae_mask, handle->hal_handle->ae_max_num) {
for (reg = 0; reg < ICP_QAT_UCLO_MAX_GPR_REG; reg++) {
qat_hal_init_rd_xfer(handle, ae, 0, ICP_SR_RD_ABS,
reg, 0);
@@ -585,6 +589,7 @@ static void qat_hal_clear_xfer(struct icp_qat_fw_loader_handle *handle)
static int qat_hal_clear_gpr(struct icp_qat_fw_loader_handle *handle)
{
+ unsigned long ae_mask = handle->hal_handle->ae_mask;
unsigned char ae;
unsigned int ctx_mask = ICP_QAT_UCLO_AE_ALL_CTX;
int times = MAX_RETRY_TIMES;
@@ -592,7 +597,7 @@ static int qat_hal_clear_gpr(struct icp_qat_fw_loader_handle *handle)
unsigned int savctx = 0;
int ret = 0;
- for (ae = 0; ae < handle->hal_handle->ae_max_num; ae++) {
+ for_each_set_bit(ae, &ae_mask, handle->hal_handle->ae_max_num) {
csr_val = qat_hal_rd_ae_csr(handle, ae, AE_MISC_CONTROL);
csr_val &= ~(1 << MMC_SHARE_CS_BITPOS);
qat_hal_wr_ae_csr(handle, ae, AE_MISC_CONTROL, csr_val);
@@ -613,7 +618,7 @@ static int qat_hal_clear_gpr(struct icp_qat_fw_loader_handle *handle)
qat_hal_wr_ae_csr(handle, ae, CTX_SIG_EVENTS_ACTIVE, 0);
qat_hal_enable_ctx(handle, ae, ctx_mask);
}
- for (ae = 0; ae < handle->hal_handle->ae_max_num; ae++) {
+ for_each_set_bit(ae, &ae_mask, handle->hal_handle->ae_max_num) {
/* wait for AE to finish */
do {
ret = qat_hal_wait_cycles(handle, ae, 20, 1);
@@ -654,6 +659,8 @@ int qat_hal_init(struct adf_accel_dev *accel_dev)
struct adf_hw_device_data *hw_data = accel_dev->hw_device;
struct adf_bar *misc_bar =
&pci_info->pci_bars[hw_data->get_misc_bar_id(hw_data)];
+ unsigned long ae_mask = hw_data->ae_mask;
+ unsigned int csr_val = 0;
struct adf_bar *sram_bar;
handle = kzalloc(sizeof(*handle), GFP_KERNEL);
@@ -689,9 +696,7 @@ int qat_hal_init(struct adf_accel_dev *accel_dev)
/* create AE objects */
handle->hal_handle->upc_mask = 0x1ffff;
handle->hal_handle->max_ustore = 0x4000;
- for (ae = 0; ae < ICP_QAT_UCLO_MAX_AE; ae++) {
- if (!(hw_data->ae_mask & (1 << ae)))
- continue;
+ for_each_set_bit(ae, &ae_mask, ICP_QAT_UCLO_MAX_AE) {
handle->hal_handle->aes[ae].free_addr = 0;
handle->hal_handle->aes[ae].free_size =
handle->hal_handle->max_ustore;
@@ -714,9 +719,7 @@ int qat_hal_init(struct adf_accel_dev *accel_dev)
}
/* Set SIGNATURE_ENABLE[0] to 0x1 in order to enable ALU_OUT csr */
- for (ae = 0; ae < handle->hal_handle->ae_max_num; ae++) {
- unsigned int csr_val = 0;
-
+ for_each_set_bit(ae, &ae_mask, handle->hal_handle->ae_max_num) {
csr_val = qat_hal_rd_ae_csr(handle, ae, SIGNATURE_ENABLE);
csr_val |= 0x1;
qat_hal_wr_ae_csr(handle, ae, SIGNATURE_ENABLE, csr_val);
diff --git a/drivers/crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c b/drivers/crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c
index b975c263446db..6a0d01103136f 100644
--- a/drivers/crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c
+++ b/drivers/crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c
@@ -24,15 +24,19 @@ static struct adf_hw_device_class dh895xcc_class = {
.instances = 0
};
-static u32 get_accel_mask(u32 fuse)
+static u32 get_accel_mask(struct adf_hw_device_data *self)
{
- return (~fuse) >> ADF_DH895XCC_ACCELERATORS_REG_OFFSET &
- ADF_DH895XCC_ACCELERATORS_MASK;
+ u32 fuses = self->fuses;
+
+ return ~fuses >> ADF_DH895XCC_ACCELERATORS_REG_OFFSET &
+ ADF_DH895XCC_ACCELERATORS_MASK;
}
-static u32 get_ae_mask(u32 fuse)
+static u32 get_ae_mask(struct adf_hw_device_data *self)
{
- return (~fuse) & ADF_DH895XCC_ACCELENGINES_MASK;
+ u32 fuses = self->fuses;
+
+ return ~fuses & ADF_DH895XCC_ACCELENGINES_MASK;
}
static u32 get_num_accels(struct adf_hw_device_data *self)
@@ -131,11 +135,13 @@ static void adf_enable_error_correction(struct adf_accel_dev *accel_dev)
{
struct adf_hw_device_data *hw_device = accel_dev->hw_device;
struct adf_bar *misc_bar = &GET_BARS(accel_dev)[ADF_DH895XCC_PMISC_BAR];
+ unsigned long accel_mask = hw_device->accel_mask;
+ unsigned long ae_mask = hw_device->ae_mask;
void __iomem *csr = misc_bar->virt_addr;
unsigned int val, i;
/* Enable Accel Engine error detection & correction */
- for (i = 0; i < hw_device->get_num_aes(hw_device); i++) {
+ for_each_set_bit(i, &ae_mask, GET_MAX_ACCELENGINES(accel_dev)) {
val = ADF_CSR_RD(csr, ADF_DH895XCC_AE_CTX_ENABLES(i));
val |= ADF_DH895XCC_ENABLE_AE_ECC_ERR;
ADF_CSR_WR(csr, ADF_DH895XCC_AE_CTX_ENABLES(i), val);
@@ -145,7 +151,7 @@ static void adf_enable_error_correction(struct adf_accel_dev *accel_dev)
}
/* Enable shared memory error detection & correction */
- for (i = 0; i < hw_device->get_num_accels(hw_device); i++) {
+ for_each_set_bit(i, &accel_mask, ADF_DH895XCC_MAX_ACCELERATORS) {
val = ADF_CSR_RD(csr, ADF_DH895XCC_UERRSSMSH(i));
val |= ADF_DH895XCC_ERRSSMSH_EN;
ADF_CSR_WR(csr, ADF_DH895XCC_UERRSSMSH(i), val);
diff --git a/drivers/crypto/qat/qat_dh895xcc/adf_drv.c b/drivers/crypto/qat/qat_dh895xcc/adf_drv.c
index ecb4f6f20e22b..d7941bc2bafd6 100644
--- a/drivers/crypto/qat/qat_dh895xcc/adf_drv.c
+++ b/drivers/crypto/qat/qat_dh895xcc/adf_drv.c
@@ -128,8 +128,8 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
&hw_data->fuses);
/* Get Accelerators and Accelerators Engines masks */
- hw_data->accel_mask = hw_data->get_accel_mask(hw_data->fuses);
- hw_data->ae_mask = hw_data->get_ae_mask(hw_data->fuses);
+ hw_data->accel_mask = hw_data->get_accel_mask(hw_data);
+ hw_data->ae_mask = hw_data->get_ae_mask(hw_data);
accel_pci_dev->sku = hw_data->get_sku(hw_data);
/* If the device has no acceleration engines then ignore it. */
if (!hw_data->accel_mask || !hw_data->ae_mask ||
diff --git a/drivers/crypto/qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c b/drivers/crypto/qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c
index fc4cf141b1dea..7930e4c7883db 100644
--- a/drivers/crypto/qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c
+++ b/drivers/crypto/qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c
@@ -11,12 +11,12 @@ static struct adf_hw_device_class dh895xcciov_class = {
.instances = 0
};
-static u32 get_accel_mask(u32 fuse)
+static u32 get_accel_mask(struct adf_hw_device_data *self)
{
return ADF_DH895XCCIOV_ACCELERATORS_MASK;
}
-static u32 get_ae_mask(u32 fuse)
+static u32 get_ae_mask(struct adf_hw_device_data *self)
{
return ADF_DH895XCCIOV_ACCELENGINES_MASK;
}
diff --git a/drivers/crypto/qat/qat_dh895xccvf/adf_drv.c b/drivers/crypto/qat/qat_dh895xccvf/adf_drv.c
index 737508ded37b4..29999da716cc9 100644
--- a/drivers/crypto/qat/qat_dh895xccvf/adf_drv.c
+++ b/drivers/crypto/qat/qat_dh895xccvf/adf_drv.c
@@ -119,8 +119,8 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
adf_init_hw_data_dh895xcciov(accel_dev->hw_device);
/* Get Accelerators and Accelerators Engines masks */
- hw_data->accel_mask = hw_data->get_accel_mask(hw_data->fuses);
- hw_data->ae_mask = hw_data->get_ae_mask(hw_data->fuses);
+ hw_data->accel_mask = hw_data->get_accel_mask(hw_data);
+ hw_data->ae_mask = hw_data->get_ae_mask(hw_data);
accel_pci_dev->sku = hw_data->get_sku(hw_data);
/* Create dev top level debugfs entry */
--
2.42.0
next prev parent reply other threads:[~2023-11-15 20:55 UTC|newest]
Thread overview: 210+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-15 20:44 [PATCH 5.10 000/191] 5.10.201-rc1 review Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 001/191] iov_iter, x86: Be consistent about the __user tag on copy_mc_to_user() Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 002/191] sched/uclamp: Ignore (util == 0) optimization in feec() when p_util_max = 0 Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 003/191] vfs: fix readahead(2) on block devices Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 004/191] x86/srso: Fix SBPB enablement for (possible) future fixed HW Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 005/191] futex: Dont include process MM in futex key on no-MMU Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 006/191] x86/boot: Fix incorrect startup_gdt_descr.size Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 007/191] pstore/platform: Add check for kstrdup Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 008/191] genirq/matrix: Exclude managed interrupts in irq_matrix_allocated() Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 009/191] i40e: fix potential memory leaks in i40e_remove() Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 010/191] wifi: iwlwifi: Use FW rate for non-data frames Greg Kroah-Hartman
2023-11-15 21:35 ` Johannes Berg
2023-11-15 21:45 ` Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 011/191] udp: add missing WRITE_ONCE() around up->encap_rcv Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 012/191] tcp: call tcp_try_undo_recovery when an RTOd TFO SYNACK is ACKed Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 013/191] overflow: Implement size_t saturating arithmetic helpers Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 014/191] gve: Use size_add() in call to struct_size() Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 015/191] mlxsw: Use size_mul() " Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 016/191] tipc: Use size_add() in calls " Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 017/191] net: spider_net: Use size_add() in call " Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 018/191] wifi: rtw88: debug: Fix the NULL vs IS_ERR() bug for debugfs_create_file() Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 019/191] wifi: mt76: mt7603: rework/fix rx pse hang check Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 020/191] tcp_metrics: add missing barriers on delete Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 021/191] tcp_metrics: properly set tp->snd_ssthresh in tcp_init_metrics() Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 022/191] tcp_metrics: do not create an entry from tcp_init_metrics() Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 023/191] wifi: rtlwifi: fix EDCA limit set by BT coexistence Greg Kroah-Hartman
2023-11-15 20:44 ` [PATCH 5.10 024/191] can: dev: can_restart(): dont crash kernel if carrier is OK Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 025/191] can: dev: can_restart(): fix race condition between controller restart and netif_carrier_on() Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 026/191] PM / devfreq: rockchip-dfi: Make pmu regmap mandatory Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 027/191] thermal: core: prevent potential string overflow Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 028/191] r8169: use tp_to_dev instead of open code Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 029/191] r8169: fix rare issue with broken rx after link-down on RTL8125 Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 030/191] chtls: fix tp->rcv_tstamp initialization Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 031/191] tcp: fix cookie_init_timestamp() overflows Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 032/191] ACPI: sysfs: Fix create_pnp_modalias() and create_of_modalias() Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 033/191] ipv6: avoid atomic fragment on GSO packets Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 034/191] net: add DEV_STATS_READ() helper Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 035/191] ipvlan: properly track tx_errors Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 036/191] regmap: debugfs: Fix a erroneous check after snprintf() Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 037/191] clk: qcom: clk-rcg2: Fix clock rate overflow for high parent frequencies Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 038/191] clk: qcom: mmcc-msm8998: Add hardware clockgating registers to some clks Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 039/191] clk: qcom: mmcc-msm8998: Dont check halt bit on some branch clks Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 040/191] clk: qcom: mmcc-msm8998: Set bimc_smmu_gdsc always on Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 041/191] clk: qcom: mmcc-msm8998: Fix the SMMU GDSC Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 042/191] clk: qcom: gcc-sm8150: use ARRAY_SIZE instead of specifying num_parents Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 043/191] clk: qcom: gcc-sm8150: Fix gcc_sdcc2_apps_clk_src Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 044/191] clk: imx: Select MXC_CLK for CLK_IMX8QXP Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 045/191] clk: imx: imx8mq: correct error handling path Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 046/191] clk: asm9260: use parent index to link the reference clock Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 047/191] clk: linux/clk-provider.h: fix kernel-doc warnings and typos Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 048/191] spi: nxp-fspi: use the correct ioremap function Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 049/191] clk: keystone: pll: fix a couple NULL vs IS_ERR() checks Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 050/191] clk: ti: Add ti_dt_clk_name() helper to use clock-output-names Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 051/191] clk: ti: Update pll and clockdomain clocks to use ti_dt_clk_name() Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 052/191] clk: ti: Update component " Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 053/191] clk: ti: change ti_clk_register[_omap_hw]() API Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 054/191] clk: ti: fix double free in of_ti_divider_clk_setup() Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 055/191] clk: npcm7xx: Fix incorrect kfree Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 056/191] clk: mediatek: clk-mt6765: Add check for mtk_alloc_clk_data Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 057/191] clk: mediatek: clk-mt6779: " Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 058/191] clk: mediatek: clk-mt6797: " Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 059/191] clk: mediatek: clk-mt7629-eth: " Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 060/191] clk: mediatek: clk-mt7629: " Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 061/191] clk: mediatek: clk-mt2701: " Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 062/191] clk: qcom: config IPQ_APSS_6018 should depend on QCOM_SMEM Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 063/191] platform/x86: wmi: Fix probe failure when failing to register WMI devices Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 064/191] platform/x86: wmi: remove unnecessary initializations Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 065/191] platform/x86: wmi: Fix opening of char device Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 066/191] hwmon: (axi-fan-control) Support temperature vs pwm points Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 067/191] hwmon: (axi-fan-control) Fix possible NULL pointer dereference Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 068/191] hwmon: (coretemp) Fix potentially truncated sysfs attribute name Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 069/191] drm/rockchip: vop: Fix reset of state in duplicate state crtc funcs Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 070/191] drm/rockchip: vop: Fix call to crtc reset helper Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 071/191] drm/radeon: possible buffer overflow Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 072/191] drm/bridge: tc358768: Fix use of uninitialized variable Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 073/191] drm/bridge: tc358768: Disable non-continuous clock mode Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 074/191] drm/bridge: tc358768: Fix bit updates Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 075/191] drm/mediatek: Fix iommu fault during crtc enabling Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 076/191] drm/rockchip: cdn-dp: Fix some error handling paths in cdn_dp_probe() Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 077/191] arm64/arm: xen: enlighten: Fix KPTI checks Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 078/191] drm/rockchip: Fix type promotion bug in rockchip_gem_iommu_map() Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 079/191] xen-pciback: Consider INTx disabled when MSI/MSI-X is enabled Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 080/191] arm64: dts: qcom: msm8916: Fix iommu local address range Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 081/191] arm64: dts: qcom: sdm845-mtp: fix WiFi configuration Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 082/191] ARM: dts: qcom: mdm9615: populate vsdcc fixed regulator Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 083/191] soc: qcom: llcc: Handle a second device without data corruption Greg Kroah-Hartman
2023-11-15 20:45 ` [PATCH 5.10 084/191] firmware: ti_sci: Mark driver as non removable Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 085/191] clk: scmi: Free scmi_clk allocated when the clocks with invalid info are skipped Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 086/191] selftests/pidfd: Fix ksft print formats Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 087/191] selftests/resctrl: Ensure the benchmark commands fits to its array Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 088/191] crypto: hisilicon/hpre - Fix a erroneous check after snprintf() Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 089/191] hwrng: geode - fix accessing registers Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 090/191] libnvdimm/of_pmem: Use devm_kstrdup instead of kstrdup and check its return value Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 091/191] nd_btt: Make BTT lanes preemptible Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 092/191] crypto: caam/qi2 - fix Chacha20 + Poly1305 self test failure Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 093/191] crypto: caam/jr " Greg Kroah-Hartman
2023-11-15 20:46 ` Greg Kroah-Hartman [this message]
2023-11-15 20:46 ` [PATCH 5.10 095/191] crypto: qat - increase size of buffers Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 096/191] hid: cp2112: Fix duplicate workqueue initialization Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 097/191] ARM: 9321/1: memset: cast the constant byte to unsigned char Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 098/191] ext4: move ix sanity check to corrent position Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 099/191] ASoC: fsl: mpc5200_dma.c: Fix warning of Function parameter or member not described Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 100/191] IB/mlx5: Fix rdma counter binding for RAW QP Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 101/191] RDMA/hns: Fix uninitialized ucmd in hns_roce_create_qp_common() Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 102/191] RDMA/hns: Fix signed-unsigned mixed comparisons Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 103/191] ASoC: fsl: Fix PM disable depth imbalance in fsl_easrc_probe Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 104/191] scsi: ufs: core: Leave space for \0 in utf8 desc string Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 105/191] RDMA/hfi1: Workaround truncation compilation error Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 106/191] hid: cp2112: Fix IRQ shutdown stopping polling for all IRQs on chip Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 107/191] sh: bios: Revive earlyprintk support Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 108/191] Revert "HID: logitech-hidpp: add a module parameter to keep firmware gestures" Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 109/191] HID: logitech-hidpp: Remove HIDPP_QUIRK_NO_HIDINPUT quirk Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 110/191] HID: logitech-hidpp: Dont restart IO, instead defer hid_connect() only Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 111/191] HID: logitech-hidpp: Revert "Dont restart communication if not necessary" Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 112/191] HID: logitech-hidpp: Move get_wireless_feature_index() check to hidpp_connect_event() Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 113/191] ASoC: Intel: Skylake: Fix mem leak when parsing UUIDs fails Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 114/191] padata: Convert from atomic_t to refcount_t on parallel_data->refcnt Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 115/191] padata: Fix refcnt handling in padata_free_shell() Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 116/191] ASoC: ams-delta.c: use component after check Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 117/191] mfd: core: Un-constify mfd_cell.of_reg Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 118/191] mfd: core: Ensure disabled devices are skipped without aborting Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 119/191] mfd: dln2: Fix double put in dln2_probe Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 120/191] leds: pwm: Dont disable the PWM when the LED should be off Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 121/191] leds: trigger: ledtrig-cpu:: Fix output may be truncated issue for cpu Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 122/191] tty: tty_jobctrl: fix pid memleak in disassociate_ctty() Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 123/191] livepatch: Fix missing newline character in klp_resolve_symbols() Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 124/191] perf evlist: Add evlist__add_dummy_on_all_cpus() Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 125/191] perf tools: Get rid of evlist__add_on_all_cpus() Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 126/191] perf evlist: Avoid frequency mode for the dummy event Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 127/191] usb: dwc2: fix possible NULL pointer dereference caused by driver concurrency Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 128/191] dmaengine: ti: edma: handle irq_of_parse_and_map() errors Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 129/191] misc: st_core: Do not call kfree_skb() under spin_lock_irqsave() Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 130/191] tools: iio: privatize globals and functions in iio_generic_buffer.c file Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 131/191] tools: iio: iio_generic_buffer: Fix some integer type and calculation Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 132/191] tools: iio: iio_generic_buffer ensure alignment Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 133/191] USB: usbip: fix stub_dev hub disconnect Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 134/191] dmaengine: pxa_dma: Remove an erroneous BUG_ON() in pxad_free_desc() Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 135/191] f2fs: fix to initialize map.m_pblk in f2fs_precache_extents() Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 136/191] interconnect: qcom: sc7180: Retire DEFINE_QBCM Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 137/191] interconnect: qcom: sc7180: Set ACV enable_mask Greg Kroah-Hartman
2023-11-20 13:18 ` Sam James
2023-11-24 23:01 ` Sam James
2023-11-15 20:46 ` [PATCH 5.10 138/191] interconnect: qcom: osm-l3: Replace custom implementation of COUNT_ARGS() Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 139/191] modpost: fix tee MODULE_DEVICE_TABLE built on big-endian host Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 140/191] powerpc/40x: Remove stale PTE_ATOMIC_UPDATES macro Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 141/191] powerpc/xive: Fix endian conversion size Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 142/191] powerpc/imc-pmu: Use the correct spinlock initializer Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 143/191] powerpc/pseries: fix potential memory leak in init_cpu_associativity() Greg Kroah-Hartman
2023-11-15 20:46 ` [PATCH 5.10 144/191] xhci: Loosen RPM as default policy to cover for AMD xHC 1.1 Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 145/191] usb: host: xhci-plat: fix possible kernel oops while resuming Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 146/191] perf machine: Avoid out of bounds LBR memory read Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 147/191] perf hist: Add missing puts to hist__account_cycles Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 148/191] i3c: Fix potential refcount leak in i3c_master_register_new_i3c_devs Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 149/191] rtc: pcf85363: fix wrong mask/val parameters in regmap_update_bits call Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 150/191] pcmcia: cs: fix possible hung task and memory leak pccardd() Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 151/191] pcmcia: ds: fix refcount leak in pcmcia_device_add() Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 152/191] pcmcia: ds: fix possible name leak in error path " Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 153/191] media: i2c: max9286: Fix some redundant of_node_put() calls Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 154/191] media: bttv: fix use after free error due to btv->timeout timer Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 155/191] media: s3c-camif: Avoid inappropriate kfree() Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 156/191] media: vidtv: psi: Add check for kstrdup Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 157/191] media: vidtv: mux: Add check and kfree " Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 158/191] media: cedrus: Fix clock/reset sequence Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 159/191] media: dvb-usb-v2: af9035: fix missing unlock Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 160/191] regmap: prevent noinc writes from clobbering cache Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 161/191] pwm: sti: Avoid conditional gotos Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 162/191] pwm: sti: Reduce number of allocations and drop usage of chip_data Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 163/191] pwm: brcmstb: Utilize appropriate clock APIs in suspend/resume Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 164/191] Input: synaptics-rmi4 - fix use after free in rmi_unregister_function() Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 165/191] llc: verify mac len before reading mac header Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 166/191] hsr: Prevent use after free in prp_create_tagged_frame() Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 167/191] tipc: Change nla_policy for bearer-related names to NLA_NUL_STRING Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 168/191] inet: shrink struct flowi_common Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 169/191] dccp: Call security_inet_conn_request() after setting IPv4 addresses Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 170/191] dccp/tcp: Call security_inet_conn_request() after setting IPv6 addresses Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 171/191] net: r8169: Disable multicast filter for RTL8168H and RTL8107E Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 172/191] Fix termination state for idr_for_each_entry_ul() Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 173/191] net: stmmac: xgmac: Enable support for multiple Flexible PPS outputs Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 174/191] net/smc: fix dangling sock under state SMC_APPFINCLOSEWAIT Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 175/191] net/smc: allow cdc msg send rather than drop it with NULL sndbuf_desc Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 176/191] net/smc: put sk reference if close work was canceled Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 177/191] tg3: power down device only on SYSTEM_POWER_OFF Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 178/191] r8169: respect userspace disabling IFF_MULTICAST Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 179/191] netfilter: xt_recent: fix (increase) ipv6 literal buffer length Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 180/191] netfilter: nft_redir: use `struct nf_nat_range2` throughout and deduplicate eval call-backs Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 181/191] netfilter: nat: fix ipv6 nat redirect with mapped and scoped addresses Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 182/191] x86: Share definition of __is_canonical_address() Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 183/191] x86/sev-es: Allow copy_from_kernel_nofault() in earlier boot Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 184/191] drm/syncobj: fix DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 185/191] spi: spi-zynq-qspi: add spi-mem to driver kconfig dependencies Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 186/191] fbdev: imsttfb: Fix error path of imsttfb_probe() Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 187/191] fbdev: imsttfb: fix a resource leak in probe Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 188/191] fbdev: fsl-diu-fb: mark wr_reg_wa() static Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 189/191] tracing/kprobes: Fix the order of argument descriptions Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 190/191] Revert "mmc: core: Capture correct oemid-bits for eMMC cards" Greg Kroah-Hartman
2023-11-15 20:47 ` [PATCH 5.10 191/191] btrfs: use u64 for buffer sizes in the tree search ioctls Greg Kroah-Hartman
2023-11-15 23:09 ` [PATCH 5.10 000/191] 5.10.201-rc1 review Florian Fainelli
2023-11-16 7:21 ` Dominique Martinet
2023-11-16 18:18 ` Naresh Kamboju
2023-11-17 1:13 ` Guenter Roeck
2023-11-17 1:57 ` Dominique Martinet
2023-11-17 15:15 ` Guenter Roeck
2023-11-17 7:41 ` Naresh Kamboju
2023-11-17 14:58 ` Guenter Roeck
2023-11-17 17:06 ` Florian Fainelli
2023-11-20 10:05 ` Greg Kroah-Hartman
2023-11-20 18:17 ` Guenter Roeck
2023-11-20 19:01 ` Holger Hoffstätte
2023-11-17 1:25 ` Guenter Roeck
2023-11-17 17:01 ` Pavel Machek
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=20231115204650.213350779@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=fiona.trahe@intel.com \
--cc=giovanni.cabiddu@intel.com \
--cc=herbert@gondor.apana.org.au \
--cc=patches@lists.linux.dev \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
--cc=wojciech.ziemba@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.