diff options
author | Akinobu Mita <akinobu.mita@gmail.com> | 2009-11-13 02:04:53 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2009-12-16 20:57:16 -0500 |
commit | 13e79b462212ac46a046932af06117eaf7a9f77b (patch) | |
tree | 711fe1984506c22d241a2bdccd9a7b9bd0b1778e /arch/mips/mm/cerr-sb1.c | |
parent | a9e8641f4c252f93875cf30cb28c0f333539f0bf (diff) |
MIPS: Sibyte: Use hweight8 instead of counting bits
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: linux-mips@linux-mips.org
Patchwork: http://patchwork.linux-mips.org/patch/637/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/mm/cerr-sb1.c')
-rw-r--r-- | arch/mips/mm/cerr-sb1.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/arch/mips/mm/cerr-sb1.c b/arch/mips/mm/cerr-sb1.c index 1bd1f18ac23c..3571090ba178 100644 --- a/arch/mips/mm/cerr-sb1.c +++ b/arch/mips/mm/cerr-sb1.c | |||
@@ -567,13 +567,10 @@ static uint32_t extract_dc(unsigned short addr, int data) | |||
567 | datalo = ((unsigned long long)datalohi << 32) | datalolo; | 567 | datalo = ((unsigned long long)datalohi << 32) | datalolo; |
568 | ecc = dc_ecc(datalo); | 568 | ecc = dc_ecc(datalo); |
569 | if (ecc != datahi) { | 569 | if (ecc != datahi) { |
570 | int bits = 0; | 570 | int bits; |
571 | bad_ecc |= 1 << (3-offset); | 571 | bad_ecc |= 1 << (3-offset); |
572 | ecc ^= datahi; | 572 | ecc ^= datahi; |
573 | while (ecc) { | 573 | bits = hweight8(ecc); |
574 | if (ecc & 1) bits++; | ||
575 | ecc >>= 1; | ||
576 | } | ||
577 | res |= (bits == 1) ? CP0_CERRD_DATA_SBE : CP0_CERRD_DATA_DBE; | 574 | res |= (bits == 1) ? CP0_CERRD_DATA_SBE : CP0_CERRD_DATA_DBE; |
578 | } | 575 | } |
579 | printk(" %02X-%016llX", datahi, datalo); | 576 | printk(" %02X-%016llX", datahi, datalo); |