Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1586009 > unrolled thread
| Started by | simran singhal <singhalsimran0@gmail.com> |
|---|---|
| First post | 2017-02-22 10:20 +0100 |
| Last post | 2017-02-22 12:40 +0100 |
| Articles | 4 — 3 participants |
Back to article view | Back to linux.kernel
[PATCH v2 2/7] staging: most: Using macro DIV_ROUND_UP simran singhal <singhalsimran0@gmail.com> - 2017-02-22 10:20 +0100
Re: [Outreachy kernel] [PATCH v2 2/7] staging: most: Using macro DIV_ROUND_UP Julia Lawall <julia.lawall@lip6.fr> - 2017-02-22 10:30 +0100
Re: [Outreachy kernel] [PATCH v2 2/7] staging: most: Using macro DIV_ROUND_UP Joe Perches <joe@perches.com> - 2017-02-22 11:10 +0100
Re: [Outreachy kernel] [PATCH v2 2/7] staging: most: Using macro DIV_ROUND_UP Julia Lawall <julia.lawall@lip6.fr> - 2017-02-22 12:40 +0100
| From | simran singhal <singhalsimran0@gmail.com> |
|---|---|
| Date | 2017-02-22 10:20 +0100 |
| Subject | [PATCH v2 2/7] staging: most: Using macro DIV_ROUND_UP |
| Message-ID | <tdBfz-7R6-11@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>
---
v2:
-Included kernel.h as DIV_ROUND_UP is defined in it,
before it was giving compilation error.
drivers/staging/most/hdm-dim2/dim2_hal.c | 7 ++++---
1 file changed, 4 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..d604ec09 100644
--- a/drivers/staging/most/hdm-dim2/dim2_hal.c
+++ b/drivers/staging/most/hdm-dim2/dim2_hal.c
@@ -18,6 +18,7 @@
#include "dim2_errors.h"
#include "dim2_reg.h"
#include <linux/stddef.h>
+#include <linux/kernel.h>
/*
* Size factor for isochronous DBR buffer.
@@ -49,7 +50,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 +118,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 +138,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]
| From | Julia Lawall <julia.lawall@lip6.fr> |
|---|---|
| Date | 2017-02-22 10:30 +0100 |
| Subject | Re: [Outreachy kernel] [PATCH v2 2/7] staging: most: Using macro DIV_ROUND_UP |
| Message-ID | <tdBpf-7UW-9@gated-at.bofh.it> |
| In reply to | #1586009 |
> @@ -117,7 +118,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);
Totally unrelated to DIV_ROUND_UP, would this code be a candidate for
GENMASK?
julia
>
> do {
> @@ -137,7 +138,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/20170222091015.GA11058%40singhal-Inspiron-5558.
> For more options, visit https://groups.google.com/d/optout.
>
[toc] | [prev] | [next] | [standalone]
| From | Joe Perches <joe@perches.com> |
|---|---|
| Date | 2017-02-22 11:10 +0100 |
| Subject | Re: [Outreachy kernel] [PATCH v2 2/7] staging: most: Using macro DIV_ROUND_UP |
| Message-ID | <tdC1X-8u2-15@gated-at.bofh.it> |
| In reply to | #1586013 |
On Wed, 2017-02-22 at 10:27 +0100, Julia Lawall wrote:
> > @@ -117,7 +118,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);
>
> Totally unrelated to DIV_ROUND_UP, would this code be a candidate for
> GENMASK?
Maybe "(1 << blocks) - 1" would be more intelligible.
[toc] | [prev] | [next] | [standalone]
| From | Julia Lawall <julia.lawall@lip6.fr> |
|---|---|
| Date | 2017-02-22 12:40 +0100 |
| Subject | Re: [Outreachy kernel] [PATCH v2 2/7] staging: most: Using macro DIV_ROUND_UP |
| Message-ID | <tdDr5-YS-33@gated-at.bofh.it> |
| In reply to | #1586013 |
[Multipart message — attachments visible in raw view] — view raw
On Wed, 22 Feb 2017, SIMRAN SINGHAL wrote:
>
>
> On Wednesday, February 22, 2017 at 2:57:17 PM UTC+5:30, Julia Lawall wrote:
> > @@ -117,7 +118,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);
>
> Totally unrelated to DIV_ROUND_UP, would this code be a
> candidate for
> GENMASK?
>
>
> Not sure, what you are trying to say.
There was a discussion on the list recently about GENMASK, which allows to
create a mask containing a sequence of 1s, like 000011110000. It looks
like that is what is being done here, because ~0 is 11111111 and then it
ie being shifted left and all the bits inverted. But Joe had another
suggestion. One could double check that his suggestion gives the right
result.
julia
>
>
>
> julia
>
> >
> > do {
> > @@ -137,7 +138,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/20170222091015.GA11058%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/d1716b00-a408-4f3c-8c17-
> 04a70acca4dd%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
>
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web