On Fri, 29 Jul 2005, Mickey Stein wrote:Linus Torvalds wrote:
This is regarding *-rc4 and *-rc4-git1: I slapped together my favorite config
and gave it a test run. It had a bit of a problem and ground to a halt after
spewing these into the log.
If I can find the time tomorrow morning, I'll leave parport_pc commented out
of modprobe.conf and see if something else pops loose. I don't use the
parallel port, but I try to keep a fairly robust config for noticing bugs.
Hi Mick,
Can you please try the patch below from Linus (or -git2 tomorrow) and confirm that it fixes it for you?
thx,
-cp
--- a/include/asm-i386/bitops.h
+++ b/include/asm-i386/bitops.h
@@ -335,14 +335,13 @@ static inline unsigned long __ffs(unsign
static inline int find_first_bit(const unsigned long *addr, unsigned size)
{
int x = 0;
- do {
- if (*addr)
- return __ffs(*addr) + x;
- addr++;
- if (x >= size)
- break;
+
+ while (x < size) {
+ unsigned long val = *addr++;
+ if (val)
+ return __ffs(val) + x;
x += (sizeof(*addr)<<3);
- } while (1);
+ }
return x;
}
On Fri, 29 Jul 2005, Mickey Stein wrote:I'm running on *-rc4 at the moment, so thanks very much for the patch.
I've been quite low on time lately, so perhaps I missed something obvious in the notes. When I did the "$make xconfig" , there were no warnings about changes or new config params.
Does this fix it for you? (Already in the current git tree)
Linus
---
diff --git a/include/asm-i386/bitops.h b/include/asm-i386/bitops.h
--- a/include/asm-i386/bitops.h
+++ b/include/asm-i386/bitops.h
@@ -335,14 +335,13 @@ static inline unsigned long __ffs(unsign
static inline int find_first_bit(const unsigned long *addr, unsigned size)
{
int x = 0;
- do {
- if (*addr)
- return __ffs(*addr) + x;
- addr++;
- if (x >= size)
- break;
+
+ while (x < size) {
+ unsigned long val = *addr++;
+ if (val)
+ return __ffs(val) + x;
x += (sizeof(*addr)<<3);
- } while (1);
+ }
return x;
}