Re: [Outreachy kernel] [PATCH 2/7] staging: most: Using macro DIV_ROUND_UP

From: Julia Lawall
Date: Tue Feb 21 2017 - 14:59:04 EST




On Wed, 22 Feb 2017, simran singhal wrote:

> The macro DIV_ROUND_UP performs the computation (((n) + (d) - 1) /(d)).
> It clarifies the divisor calculations. This occurence was detected using
> the coccinelle script:
>
> @@
> expression e1;
> expression e2;
> @@
> (
> - ((e1) + e2 - 1) / (e2)
> + DIV_ROUND_UP(e1,e2)
> |
> - ((e1) + (e2 - 1)) / (e2)
> + DIV_ROUND_UP(e1,e2)
> )


DIV_ROUND_UP is defined in kernel.h, which defines some other generally
useful things. Maybe there is an opportunity for making rules from some
of them also.

julia

>
> Signed-off-by: simran singhal <singhalsimran0@xxxxxxxxx>
> ---
> drivers/staging/most/hdm-dim2/dim2_hal.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/staging/most/hdm-dim2/dim2_hal.c b/drivers/staging/most/hdm-dim2/dim2_hal.c
> index 0b9816c..6824826 100644
> --- a/drivers/staging/most/hdm-dim2/dim2_hal.c
> +++ b/drivers/staging/most/hdm-dim2/dim2_hal.c
> @@ -49,7 +49,7 @@
> #define DBR_SIZE (16 * 1024) /* specified by IP */
> #define DBR_BLOCK_SIZE (DBR_SIZE / 32 / DBR_MAP_SIZE)
>
> -#define ROUND_UP_TO(x, d) (((x) + (d) - 1) / (d) * (d))
> +#define ROUND_UP_TO(x, d) (DIV_ROUND_UP(x, (d)) * (d))
>
> /* -------------------------------------------------------------------------- */
> /* generic helper functions and macros */
> @@ -117,7 +117,7 @@ static int alloc_dbr(u16 size)
> return DBR_SIZE; /* out of memory */
>
> for (i = 0; i < DBR_MAP_SIZE; i++) {
> - u32 const blocks = (size + DBR_BLOCK_SIZE - 1) / DBR_BLOCK_SIZE;
> + u32 const blocks = DIV_ROUND_UP(size, DBR_BLOCK_SIZE);
> u32 mask = ~((~(u32)0) << blocks);
>
> do {
> @@ -137,7 +137,7 @@ static int alloc_dbr(u16 size)
> static void free_dbr(int offs, int size)
> {
> int block_idx = offs / DBR_BLOCK_SIZE;
> - u32 const blocks = (size + DBR_BLOCK_SIZE - 1) / DBR_BLOCK_SIZE;
> + u32 const blocks = DIV_ROUND_UP(size, DBR_BLOCK_SIZE);
> u32 mask = ~((~(u32)0) << blocks);
>
> mask <<= block_idx % 32;
> --
> 2.7.4
>
> --
> You received this message because you are subscribed to the Google Groups "outreachy-kernel" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to outreachy-kernel+unsubscribe@xxxxxxxxxxxxxxxxx
> To post to this group, send email to outreachy-kernel@xxxxxxxxxxxxxxxxx
> To view this discussion on the web visit https://groups.google.com/d/msgid/outreachy-kernel/20170221185615.GA25627%40singhal-Inspiron-5558.
> For more options, visit https://groups.google.com/d/optout.
>