Subject: Re: linux-next: net tree build failure

From: Andy Grover <[email-masked]>
Date: Mon, 02 Mar 2009 19:22:55 -0800

Stephen Rothwell wrote:
> Hi Dave,
> 
> On Mon, 02 Mar 2009 01:49:58 -0800 (PST) David Miller <[email-masked]> wrote:
>> From: Stephen Rothwell <[email-masked]>
>> Date: Mon, 2 Mar 2009 18:05:14 +1100
>>
>>> Today's linux-next build (powerpc allyesconfig) failed like this:
>>>
>>> net/rds/cong.c: In function 'rds_cong_set_bit':
>>> net/rds/cong.c:284: error: implicit declaration of function 'generic___set_le_bit'
>>> net/rds/cong.c: In function 'rds_cong_clear_bit':
>>> net/rds/cong.c:298: error: implicit declaration of function 'generic___clear_le_bit'
>>> net/rds/cong.c: In function 'rds_cong_test_bit':
>>> net/rds/cong.c:309: error: implicit declaration of function 'generic_test_le_bit'
>> I've fixed this up as follows:
> 
> I was actually wondering if this was some API that powerpc had not
> implemented (most other architectures include asm-generic/bitops/le.h in
> their asm/bitops.h via asm-generic/bitops/ext2-non-atomic.h or
> asm-generic/bitops/minix-le.h) or whether RDS should be using some other
> API (since this is the first use of those functions outside the headers
> above).

My 2c,

I think the correct solution is for all archs to define 
generic_*_le_bit. In addition ext2_*_bit callers (there are a bunch 
besides ext2!) should be fixed.

Some examples:

include/linux/reiserfs_fs.h:#define reiserfs_test_and_set_le_bit 
ext2_set_bit
fs/udf/balloc.c:#define udf_clear_bit(nr, addr) ext2_clear_bit(nr, addr)
fs/ext4/ext4.h:#define ext4_set_bit                     ext2_set_bit

And this one:

lib/find_next_bit.c:static inline unsigned long ext2_swabp(const 
unsigned long *

^^^ cargo cult ext2 prefixing???

Regards -- Andy