2009-11-13 07:06:59

by Akinobu Mita

[permalink] [raw]
Subject: [PATCH] qnx4: Use hweight8

Use hweight8 instead of counting for each bit

Signed-off-by: Akinobu Mita <[email protected]>
Cc: Anders Larsen <[email protected]>
Cc: Al Viro <[email protected]>
---
fs/qnx4/bitmap.c | 17 +----------------
1 files changed, 1 insertions(+), 16 deletions(-)

diff --git a/fs/qnx4/bitmap.c b/fs/qnx4/bitmap.c
index 0afba06..b913e3d 100644
--- a/fs/qnx4/bitmap.c
+++ b/fs/qnx4/bitmap.c
@@ -35,22 +35,7 @@ static void count_bits(register const char *bmPart, register int size,
}
do {
b = *bmPart++;
- if ((b & 1) == 0)
- tot++;
- if ((b & 2) == 0)
- tot++;
- if ((b & 4) == 0)
- tot++;
- if ((b & 8) == 0)
- tot++;
- if ((b & 16) == 0)
- tot++;
- if ((b & 32) == 0)
- tot++;
- if ((b & 64) == 0)
- tot++;
- if ((b & 128) == 0)
- tot++;
+ tot += hweight8(b);
size--;
} while (size != 0);
*tf = tot;
--
1.6.5.1


2009-11-13 09:25:25

by Anders Larsen

[permalink] [raw]
Subject: Re: [PATCH] qnx4: Use hweight8

On 2009-11-13 08:06:18, Akinobu Mita wrote:
> Use hweight8 instead of counting for each bit
>
> Signed-off-by: Akinobu Mita <[email protected]>
> Cc: Anders Larsen <[email protected]>
> Cc: Al Viro <[email protected]>

The original code counted the number of zeroes whereas hweight8() counts ones, so

NAK

(hint: "tot += 8 - hweight8(b)" should do the trick)

Cheers
Anders

> ---
> fs/qnx4/bitmap.c | 17 +----------------
> 1 files changed, 1 insertions(+), 16 deletions(-)
>
> diff --git a/fs/qnx4/bitmap.c b/fs/qnx4/bitmap.c
> index 0afba06..b913e3d 100644
> --- a/fs/qnx4/bitmap.c
> +++ b/fs/qnx4/bitmap.c
> @@ -35,22 +35,7 @@ static void count_bits(register const char *bmPart, register int size,
> }
> do {
> b = *bmPart++;
> - if ((b & 1) == 0)
> - tot++;
> - if ((b & 2) == 0)
> - tot++;
> - if ((b & 4) == 0)
> - tot++;
> - if ((b & 8) == 0)
> - tot++;
> - if ((b & 16) == 0)
> - tot++;
> - if ((b & 32) == 0)
> - tot++;
> - if ((b & 64) == 0)
> - tot++;
> - if ((b & 128) == 0)
> - tot++;
> + tot += hweight8(b);
> size--;
> } while (size != 0);
> *tf = tot;
> --
> 1.6.5.1

2009-11-13 09:58:51

by Akinobu Mita

[permalink] [raw]
Subject: [PATCH v2] qnx4: Use hweight8

> The original code counted the number of zeroes whereas hweight8() counts ones, so
>
> NAK
>
> (hint: "tot += 8 - hweight8(b)" should do the trick)

Oops,

Subject: [PATCH v2] qnx4: Use hweight8

Use hweight8 instead of counting for each bit

[ v2: count_bit() counts zero bits in the bitmap]

Signed-off-by: Akinobu Mita <[email protected]>
Cc: Anders Larsen <[email protected]>
Cc: Al Viro <[email protected]>
---
fs/qnx4/bitmap.c | 17 +----------------
1 files changed, 1 insertions(+), 16 deletions(-)

diff --git a/fs/qnx4/bitmap.c b/fs/qnx4/bitmap.c
index 0afba06..cbaae72 100644
--- a/fs/qnx4/bitmap.c
+++ b/fs/qnx4/bitmap.c
@@ -35,22 +35,7 @@ static void count_bits(register const char *bmPart, register int size,
}
do {
b = *bmPart++;
- if ((b & 1) == 0)
- tot++;
- if ((b & 2) == 0)
- tot++;
- if ((b & 4) == 0)
- tot++;
- if ((b & 8) == 0)
- tot++;
- if ((b & 16) == 0)
- tot++;
- if ((b & 32) == 0)
- tot++;
- if ((b & 64) == 0)
- tot++;
- if ((b & 128) == 0)
- tot++;
+ tot += 8 - hweight8(b);
size--;
} while (size != 0);
*tf = tot;
--
1.6.5.1

2009-11-13 10:12:21

by Anders Larsen

[permalink] [raw]
Subject: Re: [PATCH v2] qnx4: Use hweight8

On 2009-11-13 10:57:45, Akinobu Mita wrote:
> Oops,
>
> Subject: [PATCH v2] qnx4: Use hweight8
>
> Use hweight8 instead of counting for each bit
>
> [ v2: count_bit() counts zero bits in the bitmap]
>
> Signed-off-by: Akinobu Mita <[email protected]>
> Cc: Anders Larsen <[email protected]>
> Cc: Al Viro <[email protected]>

Acked-by: Anders Larsen <[email protected]>

> ---
> fs/qnx4/bitmap.c | 17 +----------------
> 1 files changed, 1 insertions(+), 16 deletions(-)
>
> diff --git a/fs/qnx4/bitmap.c b/fs/qnx4/bitmap.c
> index 0afba06..cbaae72 100644
> --- a/fs/qnx4/bitmap.c
> +++ b/fs/qnx4/bitmap.c
> @@ -35,22 +35,7 @@ static void count_bits(register const char *bmPart, register int size,
> }
> do {
> b = *bmPart++;
> - if ((b & 1) == 0)
> - tot++;
> - if ((b & 2) == 0)
> - tot++;
> - if ((b & 4) == 0)
> - tot++;
> - if ((b & 8) == 0)
> - tot++;
> - if ((b & 16) == 0)
> - tot++;
> - if ((b & 32) == 0)
> - tot++;
> - if ((b & 64) == 0)
> - tot++;
> - if ((b & 128) == 0)
> - tot++;
> + tot += 8 - hweight8(b);
> size--;
> } while (size != 0);
> *tf = tot;
> --
> 1.6.5.1