crypto: qat - use min() in fw loader

Message ID ZJwxmUGPsIlTv+TG@gcabiddu-mobl1.ger.corp.intel.com
State New
Headers
Series crypto: qat - use min() in fw loader |

Commit Message

Cabiddu, Giovanni June 28, 2023, 1:11 p.m. UTC
  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 <giovanni.cabiddu@intel.com>
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 <giovanni.cabiddu@intel.com>
---
 drivers/crypto/intel/qat/qat_common/qat_uclo.c | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)
  

Comments

Andy Shevchenko June 28, 2023, 2:38 p.m. UTC | #1
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.
  

Patch

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++)