Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1585625 > unrolled thread

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

Started bysimran singhal <singhalsimran0@gmail.com>
First post2017-02-21 20:00 +0100
Last post2017-02-22 08:30 +0100
Articles 3 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 2/7] staging: most: Using macro DIV_ROUND_UP simran singhal <singhalsimran0@gmail.com> - 2017-02-21 20:00 +0100
    Re: [Outreachy kernel] [PATCH 2/7] staging: most: Using macro  DIV_ROUND_UP Julia Lawall <julia.lawall@lip6.fr> - 2017-02-21 21:00 +0100
      Re: [Outreachy kernel] [PATCH 2/7] staging: most: Using macro  DIV_ROUND_UP Julia Lawall <julia.lawall@lip6.fr> - 2017-02-22 08:30 +0100

#1585625 — [PATCH 2/7] staging: most: Using macro DIV_ROUND_UP

Fromsimran singhal <singhalsimran0@gmail.com>
Date2017-02-21 20:00 +0100
Subject[PATCH 2/7] staging: most: Using macro DIV_ROUND_UP
Message-ID<tdnPk-6tO-7@gated-at.bofh.it>
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)
)

Signed-off-by: simran singhal <singhalsimran0@gmail.com>
---
 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

[toc] | [next] | [standalone]


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

FromJulia Lawall <julia.lawall@lip6.fr>
Date2017-02-21 21:00 +0100
SubjectRe: [Outreachy kernel] [PATCH 2/7] staging: most: Using macro DIV_ROUND_UP
Message-ID<tdoLo-78e-23@gated-at.bofh.it>
In reply to#1585625

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@gmail.com>
> ---
>  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@googlegroups.com.
> To post to this group, send email to outreachy-kernel@googlegroups.com.
> 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.
>

[toc] | [prev] | [next] | [standalone]


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

FromJulia Lawall <julia.lawall@lip6.fr>
Date2017-02-22 08:30 +0100
SubjectRe: [Outreachy kernel] [PATCH 2/7] staging: most: Using macro DIV_ROUND_UP
Message-ID<tdzx8-6xa-5@gated-at.bofh.it>
In reply to#1585698

[Multipart message — attachments visible in raw view] — view raw

On Tue, 21 Feb 2017, SIMRAN SINGHAL wrote:

>
>
> On Wednesday, February 22, 2017 at 1:28:52 AM UTC+5:30, Julia Lawall wrote:
>
>
>       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.
>
>
> yes, for sure I will make other rules also, but do I have to include other
> rules in
> this patch only and resend v2.  

It was just a suggestion for future work, not a complaint about this patch
:)

julia

>
>
>       julia
>
>       >
>       > Signed-off-by: simran singhal <singhal...@gmail.com>
>       > ---
>       >  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-kern...@googlegroups.com.
>       > To post to this group, send email to
>       outreach...@googlegroups.com.
>       > To view this discussion on the web visithttps://groups.google.com/d/msgid/outreachy-kernel/20170221185615.GA25627%4
>       0singhal-Inspiron-5558.
>       > For more options, visit https://groups.google.com/d/optout.
>       >
>
> --
> 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@googlegroups.com.
> To post to this group, send email to outreachy-kernel@googlegroups.com.
> To view this discussion on the web visithttps://groups.google.com/d/msgid/outreachy-kernel/e9a638db-16fe-4e85-a132-
> c45c39307df1%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
>

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web