Re: [PATCH] scsi: qedi: tidy up a size caculation

2018-07-02 Thread Martin K. Petersen


Dan,

> The id_tbl->table pointer points to unsigned long so static checkers
> complain that instead of 4 we should be allocating sizeof(long) bytes.
>
> We're trying to allocate enough bits for the bitmap.  The size variable
> is always 1024.  (1024 / 32 * 4) is the same as (1024 / 64 * 8) so this
> doesn't change runtime, but this is the more idiomatic way to do it and
> makes the static checker happy.

Applied to 4.19/scsi-queue, thanks!

-- 
Martin K. Petersen  Oracle Linux Engineering


RE: [PATCH] scsi: qedi: tidy up a size caculation

2018-06-28 Thread Rangankar, Manish


> -Original Message-
> From: Dan Carpenter 
> Sent: Thursday, June 28, 2018 2:53 PM
> To: Dept-Eng QLogic Storage Upstream  upstr...@cavium.com>; Rangankar, Manish
> 
> Cc: James E.J. Bottomley ; Martin K. Petersen
> ; linux-scsi@vger.kernel.org; kernel-
> janit...@vger.kernel.org
> Subject: [PATCH] scsi: qedi: tidy up a size caculation
> 
> External Email
> 
> The id_tbl->table pointer points to unsigned long so static checkers complain
> that instead of 4 we should be allocating sizeof(long) bytes.
> 
> We're trying to allocate enough bits for the bitmap.  The size variable is 
> always
> 1024.  (1024 / 32 * 4) is the same as (1024 / 64 * 8) so this doesn't change
> runtime, but this is the more idiomatic way to do it and makes the static 
> checker
> happy.
> 
> Signed-off-by: Dan Carpenter 
> 
> diff --git a/drivers/scsi/qedi/qedi_main.c b/drivers/scsi/qedi/qedi_main.c 
> index
> cf274a79e77a..682f3ce31014 100644
> --- a/drivers/scsi/qedi/qedi_main.c
> +++ b/drivers/scsi/qedi/qedi_main.c
> @@ -524,7 +524,7 @@ static int qedi_init_id_tbl(struct qedi_portid_tbl 
> *id_tbl,
> u16 size,
> id_tbl->max = size;
> id_tbl->next = next;
> spin_lock_init(_tbl->lock);
> -   id_tbl->table = kcalloc(DIV_ROUND_UP(size, 32), 4, GFP_KERNEL);
> +   id_tbl->table = kcalloc(BITS_TO_LONGS(size), sizeof(long),
> + GFP_KERNEL);
> if (!id_tbl->table)
> return -ENOMEM;

Thanks,

Acked-by: Manish Rangankar 


[PATCH] scsi: qedi: tidy up a size caculation

2018-06-28 Thread Dan Carpenter
The id_tbl->table pointer points to unsigned long so static checkers
complain that instead of 4 we should be allocating sizeof(long) bytes.

We're trying to allocate enough bits for the bitmap.  The size variable
is always 1024.  (1024 / 32 * 4) is the same as (1024 / 64 * 8) so this
doesn't change runtime, but this is the more idiomatic way to do it and
makes the static checker happy.

Signed-off-by: Dan Carpenter 

diff --git a/drivers/scsi/qedi/qedi_main.c b/drivers/scsi/qedi/qedi_main.c
index cf274a79e77a..682f3ce31014 100644
--- a/drivers/scsi/qedi/qedi_main.c
+++ b/drivers/scsi/qedi/qedi_main.c
@@ -524,7 +524,7 @@ static int qedi_init_id_tbl(struct qedi_portid_tbl *id_tbl, 
u16 size,
id_tbl->max = size;
id_tbl->next = next;
spin_lock_init(_tbl->lock);
-   id_tbl->table = kcalloc(DIV_ROUND_UP(size, 32), 4, GFP_KERNEL);
+   id_tbl->table = kcalloc(BITS_TO_LONGS(size), sizeof(long), GFP_KERNEL);
if (!id_tbl->table)
return -ENOMEM;