2008-08-02 15:17:35

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 9/10] drivers/scsi/megaraid: Use DIV_ROUND_UP

From: Julia Lawall <[email protected]>

The kernel.h macro DIV_ROUND_UP performs the computation (((n) + (d) - 1) /
(d)) but is perhaps more readable.

An extract of the semantic patch that makes this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@haskernel@
@@

#include <linux/kernel.h>

@depends on haskernel@
expression n,d;
@@

(
- (n + d - 1) / d
+ DIV_ROUND_UP(n,d)
|
- (n + (d - 1)) / d
+ DIV_ROUND_UP(n,d)
)

@depends on haskernel@
expression n,d;
@@

- DIV_ROUND_UP((n),d)
+ DIV_ROUND_UP(n,d)

@depends on haskernel@
expression n,d;
@@

- DIV_ROUND_UP(n,(d))
+ DIV_ROUND_UP(n,d)
// </smpl>

Signed-off-by: Julia Lawall <[email protected]>

---
drivers/scsi/megaraid/megaraid_sas.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff -u -p a/drivers/scsi/megaraid/megaraid_sas.c b/drivers/scsi/megaraid/megaraid_sas.c
--- a/drivers/scsi/megaraid/megaraid_sas.c
+++ b/drivers/scsi/megaraid/megaraid_sas.c
@@ -1615,7 +1615,7 @@ static int megasas_create_frame_pool(str
* Calculated the number of 64byte frames required for SGL
*/
sgl_sz = sge_sz * instance->max_num_sge;
- frame_count = (sgl_sz + MEGAMFI_FRAME_SIZE - 1) / MEGAMFI_FRAME_SIZE;
+ frame_count = DIV_ROUND_UP(sgl_sz, MEGAMFI_FRAME_SIZE);

/*
* We need one extra frame for the MFI command


2008-08-04 12:40:52

by Yang, Bo

[permalink] [raw]
Subject: RE: [PATCH 9/10] drivers/scsi/megaraid: Use DIV_ROUND_UP

Julia,

Frame_count is the major parameter used by our megaraid sas FW. It may cause some issues after this change. Please keep the original implementation.

Thanks.

Bo Yang

-----Original Message-----
From: Julia Lawall [mailto:[email protected]]
Sent: Saturday, August 02, 2008 11:16 AM
To: DL-MegaRAID Linux; [email protected]; [email protected]; [email protected]
Subject: [PATCH 9/10] drivers/scsi/megaraid: Use DIV_ROUND_UP

From: Julia Lawall <[email protected]>

The kernel.h macro DIV_ROUND_UP performs the computation (((n) + (d) - 1) /
(d)) but is perhaps more readable.

An extract of the semantic patch that makes this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@haskernel@
@@

#include <linux/kernel.h>

@depends on haskernel@
expression n,d;
@@

(
- (n + d - 1) / d
+ DIV_ROUND_UP(n,d)
|
- (n + (d - 1)) / d
+ DIV_ROUND_UP(n,d)
)

@depends on haskernel@
expression n,d;
@@

- DIV_ROUND_UP((n),d)
+ DIV_ROUND_UP(n,d)

@depends on haskernel@
expression n,d;
@@

- DIV_ROUND_UP(n,(d))
+ DIV_ROUND_UP(n,d)
// </smpl>

Signed-off-by: Julia Lawall <[email protected]>

---
drivers/scsi/megaraid/megaraid_sas.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff -u -p a/drivers/scsi/megaraid/megaraid_sas.c b/drivers/scsi/megaraid/megaraid_sas.c
--- a/drivers/scsi/megaraid/megaraid_sas.c
+++ b/drivers/scsi/megaraid/megaraid_sas.c
@@ -1615,7 +1615,7 @@ static int megasas_create_frame_pool(str
* Calculated the number of 64byte frames required for SGL
*/
sgl_sz = sge_sz * instance->max_num_sge;
- frame_count = (sgl_sz + MEGAMFI_FRAME_SIZE - 1) / MEGAMFI_FRAME_SIZE;
+ frame_count = DIV_ROUND_UP(sgl_sz, MEGAMFI_FRAME_SIZE);

/*
* We need one extra frame for the MFI command

2008-08-04 13:27:20

by Alan

[permalink] [raw]
Subject: Re: [PATCH 9/10] drivers/scsi/megaraid: Use DIV_ROUND_UP

On Mon, 4 Aug 2008 06:40:27 -0600
"Yang, Bo" <[email protected]> wrote:

> Julia,
>
> Frame_count is the major parameter used by our megaraid sas FW. It may cause some issues after this change. Please keep the original implementation.

The two are identical code - please explain