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

From: Julia Lawall
Date: Wed Feb 22 2017 - 06:38:16 EST




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