linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* ext4 still broken on arm (at least)
@ 2007-11-28  5:14 Andrew Morton
  2007-11-28  5:30 ` Aneesh Kumar K.V
  0 siblings, 1 reply; 5+ messages in thread
From: Andrew Morton @ 2007-11-28  5:14 UTC (permalink / raw)
  To: linux-ext4@vger.kernel.org

fs/ext4/mballoc.c: In function `ext4_mb_generate_buddy':
fs/ext4/mballoc.c:836: error: implicit declaration of function `ext2_find_next_bit'                                                                             

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: ext4 still broken on arm (at least)
  2007-11-28  5:14 ext4 still broken on arm (at least) Andrew Morton
@ 2007-11-28  5:30 ` Aneesh Kumar K.V
  2007-11-28  5:43   ` Andrew Morton
  0 siblings, 1 reply; 5+ messages in thread
From: Aneesh Kumar K.V @ 2007-11-28  5:30 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-ext4@vger.kernel.org

On Tue, Nov 27, 2007 at 09:14:44PM -0800, Andrew Morton wrote:
> fs/ext4/mballoc.c: In function `ext4_mb_generate_buddy':
> fs/ext4/mballoc.c:836: error: implicit declaration of function `ext2_find_next_bit'                                                                             


I actually sent in a patch which changes asking for review to
linux-arch. I haven't got the response yet. Attaching the patch
below 

Introduce ext4_find_next_bit

From: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>

This gets used by the ext4 multi block allocator patches.

Also add generic_find_next_le_bit

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Cc: <linux-ext4@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---

 include/asm-arm/bitops.h                     |    2 +
 include/asm-generic/bitops/ext2-non-atomic.h |    2 +
 include/asm-generic/bitops/le.h              |    4 ++
 include/asm-m68k/bitops.h                    |    2 +
 include/asm-m68knommu/bitops.h               |    2 +
 include/asm-powerpc/bitops.h                 |    4 ++
 include/asm-s390/bitops.h                    |    2 +
 include/linux/ext4_fs.h                      |    1 +
 lib/find_next_bit.c                          |   43 ++++++++++++++++++++++++++
 9 files changed, 62 insertions(+), 0 deletions(-)


diff --git a/include/asm-arm/bitops.h b/include/asm-arm/bitops.h
index 47a6b08..5c60bfc 100644
--- a/include/asm-arm/bitops.h
+++ b/include/asm-arm/bitops.h
@@ -310,6 +310,8 @@ static inline int constant_fls(int x)
 		_find_first_zero_bit_le(p,sz)
 #define ext2_find_next_zero_bit(p,sz,off)	\
 		_find_next_zero_bit_le(p,sz,off)
+#define ext2_find_next_bit(p, sz, off) \
+		_find_next_bit_le(p, sz, off)
 
 /*
  * Minix is defined to use little-endian byte ordering.
diff --git a/include/asm-generic/bitops/ext2-non-atomic.h b/include/asm-generic/bitops/ext2-non-atomic.h
index 1697404..63cf822 100644
--- a/include/asm-generic/bitops/ext2-non-atomic.h
+++ b/include/asm-generic/bitops/ext2-non-atomic.h
@@ -14,5 +14,7 @@
 	generic_find_first_zero_le_bit((unsigned long *)(addr), (size))
 #define ext2_find_next_zero_bit(addr, size, off) \
 	generic_find_next_zero_le_bit((unsigned long *)(addr), (size), (off))
+#define ext2_find_next_bit(addr, size, off) \
+	generic_find_next_le_bit((unsigned long *)(addr), (size), (off))
 
 #endif /* _ASM_GENERIC_BITOPS_EXT2_NON_ATOMIC_H_ */
diff --git a/include/asm-generic/bitops/le.h b/include/asm-generic/bitops/le.h
index b9c7e5d..80e3bf1 100644
--- a/include/asm-generic/bitops/le.h
+++ b/include/asm-generic/bitops/le.h
@@ -20,6 +20,8 @@
 #define generic___test_and_clear_le_bit(nr, addr) __test_and_clear_bit(nr, addr)
 
 #define generic_find_next_zero_le_bit(addr, size, offset) find_next_zero_bit(addr, size, offset)
+#define generic_find_next_le_bit(addr, size, offset) \
+			find_next_bit(addr, size, offset)
 
 #elif defined(__BIG_ENDIAN)
 
@@ -42,6 +44,8 @@
 
 extern unsigned long generic_find_next_zero_le_bit(const unsigned long *addr,
 		unsigned long size, unsigned long offset);
+extern unsigned long generic_find_next_le_bit(const unsigned long *addr,
+		unsigned long size, unsigned long offset);
 
 #else
 #error "Please fix <asm/byteorder.h>"
diff --git a/include/asm-m68k/bitops.h b/include/asm-m68k/bitops.h
index 2976b5d..83d1f28 100644
--- a/include/asm-m68k/bitops.h
+++ b/include/asm-m68k/bitops.h
@@ -410,6 +410,8 @@ static inline int ext2_find_next_zero_bit(const void *vaddr, unsigned size,
 	res = ext2_find_first_zero_bit (p, size - 32 * (p - addr));
 	return (p - addr) * 32 + res;
 }
+#define ext2_find_next_bit(addr, size, off) \
+	generic_find_next_le_bit((unsigned long *)(addr), (size), (off))
 
 #endif /* __KERNEL__ */
 
diff --git a/include/asm-m68knommu/bitops.h b/include/asm-m68knommu/bitops.h
index f8dfb7b..f43afe1 100644
--- a/include/asm-m68knommu/bitops.h
+++ b/include/asm-m68knommu/bitops.h
@@ -294,6 +294,8 @@ found_middle:
 	return result + ffz(__swab32(tmp));
 }
 
+#define ext2_find_next_bit(addr, size, off) \
+	generic_find_next_le_bit((unsigned long *)(addr), (size), (off))
 #include <asm-generic/bitops/minix.h>
 
 #endif /* __KERNEL__ */
diff --git a/include/asm-powerpc/bitops.h b/include/asm-powerpc/bitops.h
index 733b4af..220d9a7 100644
--- a/include/asm-powerpc/bitops.h
+++ b/include/asm-powerpc/bitops.h
@@ -359,6 +359,8 @@ static __inline__ int test_le_bit(unsigned long nr,
 unsigned long generic_find_next_zero_le_bit(const unsigned long *addr,
 				    unsigned long size, unsigned long offset);
 
+unsigned long generic_find_next_le_bit(const unsigned long *addr,
+				    unsigned long size, unsigned long offset);
 /* Bitmap functions for the ext2 filesystem */
 
 #define ext2_set_bit(nr,addr) \
@@ -378,6 +380,8 @@ unsigned long generic_find_next_zero_le_bit(const unsigned long *addr,
 #define ext2_find_next_zero_bit(addr, size, off) \
 	generic_find_next_zero_le_bit((unsigned long*)addr, size, off)
 
+#define ext2_find_next_bit(addr, size, off) \
+	generic_find_next_le_bit((unsigned long *)addr, size, off)
 /* Bitmap functions for the minix filesystem.  */
 
 #define minix_test_and_set_bit(nr,addr) \
diff --git a/include/asm-s390/bitops.h b/include/asm-s390/bitops.h
index 34d9a63..dba6fec 100644
--- a/include/asm-s390/bitops.h
+++ b/include/asm-s390/bitops.h
@@ -772,6 +772,8 @@ static inline int sched_find_first_bit(unsigned long *b)
 	test_and_clear_bit((nr)^(__BITOPS_WORDSIZE - 8), (unsigned long *)addr)
 #define ext2_test_bit(nr, addr)      \
 	test_bit((nr)^(__BITOPS_WORDSIZE - 8), (unsigned long *)addr)
+#define ext2_find_next_bit(addr, size, off) \
+	generic_find_next_le_bit((unsigned long *)(addr), (size), (off))
 
 #ifndef __s390x__
 
diff --git a/include/linux/ext4_fs.h b/include/linux/ext4_fs.h
index 85395c1..cf7e90e 100644
--- a/include/linux/ext4_fs.h
+++ b/include/linux/ext4_fs.h
@@ -493,6 +493,7 @@ do {									       \
 #define ext4_test_bit			ext2_test_bit
 #define ext4_find_first_zero_bit	ext2_find_first_zero_bit
 #define ext4_find_next_zero_bit		ext2_find_next_zero_bit
+#define ext4_find_next_bit		ext2_find_next_bit
 
 /*
  * Maximal mount counts between two filesystem checks
diff --git a/lib/find_next_bit.c b/lib/find_next_bit.c
index bda0d71..78ccd73 100644
--- a/lib/find_next_bit.c
+++ b/lib/find_next_bit.c
@@ -178,4 +178,47 @@ found_middle_swap:
 
 EXPORT_SYMBOL(generic_find_next_zero_le_bit);
 
+unsigned long generic_find_next_le_bit(const unsigned long *addr, unsigned
+		long size, unsigned long offset)
+{
+	const unsigned long *p = addr + BITOP_WORD(offset);
+	unsigned long result = offset & ~(BITS_PER_LONG - 1);
+	unsigned long tmp;
+
+	if (offset >= size)
+		return size;
+	size -= result;
+	offset &= (BITS_PER_LONG - 1UL);
+	if (offset) {
+		tmp = ext2_swabp(p++);
+		tmp &= (~0UL << offset);
+		if (size < BITS_PER_LONG)
+			goto found_first;
+		if (tmp)
+			goto found_middle;
+		size -= BITS_PER_LONG;
+		result += BITS_PER_LONG;
+	}
+
+	while (size & ~(BITS_PER_LONG - 1)) {
+		tmp = *(p++);
+		if (tmp)
+			goto found_middle_swap;
+		result += BITS_PER_LONG;
+		size -= BITS_PER_LONG;
+	}
+	if (!size)
+		return result;
+	tmp = ext2_swabp(p);
+found_first:
+	tmp &= (~0UL >> (BITS_PER_LONG - size));
+	if (tmp == 0UL)		/* Are any bits set? */
+		return result + size; /* Nope. */
+found_middle:
+	return result + __ffs(tmp);
+
+found_middle_swap:
+	return result + __ffs(ext2_swab(tmp));
+}
+EXPORT_SYMBOL(generic_find_next_le_bit);
 #endif /* __BIG_ENDIAN */

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: ext4 still broken on arm (at least)
  2007-11-28  5:30 ` Aneesh Kumar K.V
@ 2007-11-28  5:43   ` Andrew Morton
  2007-11-28  8:28     ` Russell King
  2007-11-28 16:45     ` Mingming Cao
  0 siblings, 2 replies; 5+ messages in thread
From: Andrew Morton @ 2007-11-28  5:43 UTC (permalink / raw)
  To: Aneesh Kumar K.V; +Cc: linux-ext4@vger.kernel.org, linux-arch

On Wed, 28 Nov 2007 11:00:20 +0530 "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com> wrote:

> On Tue, Nov 27, 2007 at 09:14:44PM -0800, Andrew Morton wrote:
> > fs/ext4/mballoc.c: In function `ext4_mb_generate_buddy':
> > fs/ext4/mballoc.c:836: error: implicit declaration of function `ext2_find_next_bit'                                                                             
> 
> 
> I actually sent in a patch which changes asking for review to
> linux-arch. I haven't got the response yet.

Don't expect one...

> Attaching the patch
> below 


> Introduce ext4_find_next_bit
> 
> From: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
> 
> This gets used by the ext4 multi block allocator patches.
> 
> Also add generic_find_next_le_bit
> 
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
> Cc: <linux-ext4@vger.kernel.org>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> ---
> 
>  include/asm-arm/bitops.h                     |    2 +
>  include/asm-generic/bitops/ext2-non-atomic.h |    2 +
>  include/asm-generic/bitops/le.h              |    4 ++
>  include/asm-m68k/bitops.h                    |    2 +
>  include/asm-m68knommu/bitops.h               |    2 +
>  include/asm-powerpc/bitops.h                 |    4 ++
>  include/asm-s390/bitops.h                    |    2 +
>  include/linux/ext4_fs.h                      |    1 +
>  lib/find_next_bit.c                          |   43 ++++++++++++++++++++++++++

May as well merge it I guess.  I'll do that.  Possibly it should be
merged into the ext4 tree instead, so that people can build the ext4 devel
tree on other architectures but obviously there's no call for that.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: ext4 still broken on arm (at least)
  2007-11-28  5:43   ` Andrew Morton
@ 2007-11-28  8:28     ` Russell King
  2007-11-28 16:45     ` Mingming Cao
  1 sibling, 0 replies; 5+ messages in thread
From: Russell King @ 2007-11-28  8:28 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Aneesh Kumar K.V, linux-ext4@vger.kernel.org, linux-arch

On Tue, Nov 27, 2007 at 09:43:08PM -0800, Andrew Morton wrote:
> On Wed, 28 Nov 2007 11:00:20 +0530 "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com> wrote:
> 
> > On Tue, Nov 27, 2007 at 09:14:44PM -0800, Andrew Morton wrote:
> > > fs/ext4/mballoc.c: In function `ext4_mb_generate_buddy':
> > > fs/ext4/mballoc.c:836: error: implicit declaration of function `ext2_find_next_bit'                                                                             
> > 
> > 
> > I actually sent in a patch which changes asking for review to
> > linux-arch. I haven't got the response yet.
> 
> Don't expect one...

Is ext4 merged into the mainline kernel?  So it is...  Okay, I'll
start caring about this patch.

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: ext4 still broken on arm (at least)
  2007-11-28  5:43   ` Andrew Morton
  2007-11-28  8:28     ` Russell King
@ 2007-11-28 16:45     ` Mingming Cao
  1 sibling, 0 replies; 5+ messages in thread
From: Mingming Cao @ 2007-11-28 16:45 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Aneesh Kumar K.V, linux-ext4@vger.kernel.org, linux-arch

Andrew Morton wrote:
> On Wed, 28 Nov 2007 11:00:20 +0530 "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com> wrote:
> 
>> On Tue, Nov 27, 2007 at 09:14:44PM -0800, Andrew Morton wrote:
>>> fs/ext4/mballoc.c: In function `ext4_mb_generate_buddy':
>>> fs/ext4/mballoc.c:836: error: implicit declaration of function `ext2_find_next_bit'                                                                             
>>
>> I actually sent in a patch which changes asking for review to
>> linux-arch. I haven't got the response yet.
> 
> Don't expect one...
> 
>> Attaching the patch
>> below 
> 
> 
>> Introduce ext4_find_next_bit
>>
>> From: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>>
>> This gets used by the ext4 multi block allocator patches.
>>
>> Also add generic_find_next_le_bit
>>
>> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>> Cc: <linux-ext4@vger.kernel.org>
>> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
>> ---
>>
>>  include/asm-arm/bitops.h                     |    2 +
>>  include/asm-generic/bitops/ext2-non-atomic.h |    2 +
>>  include/asm-generic/bitops/le.h              |    4 ++
>>  include/asm-m68k/bitops.h                    |    2 +
>>  include/asm-m68knommu/bitops.h               |    2 +
>>  include/asm-powerpc/bitops.h                 |    4 ++
>>  include/asm-s390/bitops.h                    |    2 +
>>  include/linux/ext4_fs.h                      |    1 +
>>  lib/find_next_bit.c                          |   43 ++++++++++++++++++++++++++
> 
> May as well merge it I guess.  I'll do that.  Possibly it should be
> merged into the ext4 tree instead, so that people can build the ext4 devel
> tree on other architectures but obviously there's no call for that.
> 
I will merge it to ext4 development tree.

Mingming
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-11-28 16:46 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-28  5:14 ext4 still broken on arm (at least) Andrew Morton
2007-11-28  5:30 ` Aneesh Kumar K.V
2007-11-28  5:43   ` Andrew Morton
2007-11-28  8:28     ` Russell King
2007-11-28 16:45     ` Mingming Cao

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).