2023-06-27 07:20:15

by You Kangren

[permalink] [raw]
Subject: [PATCH v2] crypto: qat - Replace the if statement with min()

Replace the if statement with min_t() to simplify the code

Signed-off-by: You Kangren <[email protected]>
---
drivers/crypto/intel/qat/qat_common/qat_uclo.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/crypto/intel/qat/qat_common/qat_uclo.c b/drivers/crypto/intel/qat/qat_common/qat_uclo.c
index ce837bcc1cab..b42a4d22b9d2 100644
--- a/drivers/crypto/intel/qat/qat_common/qat_uclo.c
+++ b/drivers/crypto/intel/qat/qat_common/qat_uclo.c
@@ -1986,10 +1986,7 @@ static void qat_uclo_wr_uimage_raw_page(struct icp_qat_fw_loader_handle *handle,
uw_relative_addr = 0;
words_num = encap_page->micro_words_num;
while (words_num) {
- if (words_num < UWORD_CPYBUF_SIZE)
- cpylen = words_num;
- else
- cpylen = UWORD_CPYBUF_SIZE;
+ cpylen = min_t(unsigned int, words_num, UWORD_CPYBUF_SIZE);

/* load the buffer */
for (i = 0; i < cpylen; i++)
--
2.39.0



2023-06-28 10:51:47

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v2] crypto: qat - Replace the if statement with min()

On Tue, Jun 27, 2023 at 03:17:24PM +0800, You Kangren wrote:
> Replace the if statement with min_t() to simplify the code

...

> - if (words_num < UWORD_CPYBUF_SIZE)
> - cpylen = words_num;
> - else
> - cpylen = UWORD_CPYBUF_SIZE;
> + cpylen = min_t(unsigned int, words_num, UWORD_CPYBUF_SIZE);

min_t() can be dangerous some times.

To make it robust I would suggest to use min() and mark UWORD_CPYBUF_SIZE
with U suffix to make the type the same.

--
With Best Regards,
Andy Shevchenko



2023-06-28 13:26:44

by Cabiddu, Giovanni

[permalink] [raw]
Subject: [PATCH] crypto: qat - use min() in fw loader

On Wed, Jun 28, 2023 at 01:46:44PM +0300, Andy Shevchenko wrote:
> On Tue, Jun 27, 2023 at 03:17:24PM +0800, You Kangren wrote:
> > Replace the if statement with min_t() to simplify the code
>
> ...
>
> > - if (words_num < UWORD_CPYBUF_SIZE)
> > - cpylen = words_num;
> > - else
> > - cpylen = UWORD_CPYBUF_SIZE;
> > + cpylen = min_t(unsigned int, words_num, UWORD_CPYBUF_SIZE);
>
> min_t() can be dangerous some times.
>
> To make it robust I would suggest to use min() and mark UWORD_CPYBUF_SIZE
> with U suffix to make the type the same.
Thanks. I reworked it, added a missing include and ordered the includes
in the file.

----8<----
From: Giovanni Cabiddu <[email protected]>
Date: Wed, 28 Jun 2023 13:32:09 +0100
Subject: [PATCH] crypto: qat - use min() in fw loader
Organization: Intel Research and Development Ireland Ltd - Co. Reg. #308263 - Collinstown Industrial Park, Leixlip, County Kildare - Ireland

Use min() macro in firmware loaded instead of if statement.

While at it, reorder the includes on this file in alphabetical order.

Signed-off-by: Giovanni Cabiddu <[email protected]>
---
drivers/crypto/intel/qat/qat_common/qat_uclo.c | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/drivers/crypto/intel/qat/qat_common/qat_uclo.c b/drivers/crypto/intel/qat/qat_common/qat_uclo.c
index ce837bcc1cab..6a52a853e2b1 100644
--- a/drivers/crypto/intel/qat/qat_common/qat_uclo.c
+++ b/drivers/crypto/intel/qat/qat_common/qat_uclo.c
@@ -1,17 +1,19 @@
// SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0-only)
/* Copyright(c) 2014 - 2020 Intel Corporation */
-#include <linux/slab.h>
#include <linux/ctype.h>
-#include <linux/kernel.h>
#include <linux/delay.h>
+#include <linux/kernel.h>
+#include <linux/minmax.h>
#include <linux/pci_ids.h>
+#include <linux/slab.h>
+
#include "adf_accel_devices.h"
#include "adf_common_drv.h"
-#include "icp_qat_uclo.h"
-#include "icp_qat_hal.h"
#include "icp_qat_fw_loader_handle.h"
+#include "icp_qat_hal.h"
+#include "icp_qat_uclo.h"

-#define UWORD_CPYBUF_SIZE 1024
+#define UWORD_CPYBUF_SIZE 1024U
#define INVLD_UWORD 0xffffffffffull
#define PID_MINOR_REV 0xf
#define PID_MAJOR_REV (0xf << 4)
@@ -1986,10 +1988,7 @@ static void qat_uclo_wr_uimage_raw_page(struct icp_qat_fw_loader_handle *handle,
uw_relative_addr = 0;
words_num = encap_page->micro_words_num;
while (words_num) {
- if (words_num < UWORD_CPYBUF_SIZE)
- cpylen = words_num;
- else
- cpylen = UWORD_CPYBUF_SIZE;
+ cpylen = min(words_num, UWORD_CPYBUF_SIZE);

/* load the buffer */
for (i = 0; i < cpylen; i++)
--
2.40.1



2023-06-28 14:41:07

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH] crypto: qat - use min() in fw loader

On Wed, Jun 28, 2023 at 02:11:53PM +0100, Giovanni Cabiddu wrote:
> On Wed, Jun 28, 2023 at 01:46:44PM +0300, Andy Shevchenko wrote:
> > On Tue, Jun 27, 2023 at 03:17:24PM +0800, You Kangren wrote:

...

> > min_t() can be dangerous some times.
> >
> > To make it robust I would suggest to use min() and mark UWORD_CPYBUF_SIZE
> > with U suffix to make the type the same.
> Thanks. I reworked it, added a missing include and ordered the includes
> in the file.

I think it should be two patches then, but it's up to you and subsystem
maintainer.

--
With Best Regards,
Andy Shevchenko