From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Adrian Bunk <bunk@kernel.org>,
sct@redhat.com, akpm@linux-foundation.org, adilger@clusterfs.com,
zippel@linux-m68k.org, linux-ext4@vger.kernel.org,
linux-m68k@vger.kernel.org
Subject: Re: ext4 compile error on m68k
Date: Thu, 10 Apr 2008 16:56:57 +0530 [thread overview]
Message-ID: <20080410112657.GC23116@skywalker> (raw)
In-Reply-To: <20080410104059.GA23116@skywalker>
On Thu, Apr 10, 2008 at 04:11:32PM +0530, Aneesh Kumar K.V wrote:
> On Sat, Apr 05, 2008 at 01:48:02PM +0200, Geert Uytterhoeven wrote:
> > On Sat, 5 Apr 2008, Adrian Bunk wrote:
> > > Commit aa02ad67d9b308290fde390682cd039b29f7ab85
> > > "ext4: Add ext4_find_next_bit()" causes the following regression:
> > >
> > > <-- snip -->
> > >
> > > ...
> > > CC [M] fs/ext4/mballoc.o
> > > /home/bunk/linux/kernel-2.6/git/linux-2.6/fs/ext4/mballoc.c: In function 'mb_find_next_bit':
> > > /home/bunk/linux/kernel-2.6/git/linux-2.6/fs/ext4/mballoc.c:696: error: implicit declaration of function 'generic_find_next_le_bit'
> > > make[3]: *** [fs/ext4/mballoc.o] Error 1
> > >
> > > <-- snip -->
> >
> > Known issue. The ext4 developers added a #define (with a different name than in
> > the patch comment) in the commit below, but forgot to make sure
> > generic_find_next_le_bit() is actually available.
> >
>
> generic_find_next_le_bit is defined in lib/find_next_bit.c.
>
> But m68k doesn't want to use the GENERIC_FIND_NEXT_BIT. Can I request
> somebody knowledgeable about m68k to give a try in implementing
> generic_find_next_le_bit equivalent on m68k ?
>
Is this ok ? It is derived out of the ext2_find_next_zero_bit
found in the same file. Compile tested with crosstools
diff --git a/include/asm-m68k/bitops.h b/include/asm-m68k/bitops.h
index 83d1f28..4795bd1 100644
--- a/include/asm-m68k/bitops.h
+++ b/include/asm-m68k/bitops.h
@@ -410,8 +410,51 @@ 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))
+
+static inline int ext2_find_first_bit(const void *vaddr, unsigned size)
+{
+ /* vaddr is long aligned */
+ const unsigned long *p = vaddr, *addr = vaddr;
+ int res;
+
+ if (!size)
+ return 0;
+
+ size = (size >> 5) + ((size & 31) > 0);
+ while (*p++ == 0UL)
+ {
+ if (--size == 0)
+ return (p - addr) << 5;
+ }
+
+ --p;
+ for (res = 0; res < 32; res++)
+ if (ext2_test_bit(res, p))
+ break;
+ return (p - addr) * 32 + res;
+}
+
+static inline unsigned long ext2_find_next_bit(const unsigned long *vaddr,
+ unsigned long size, unsigned long offset)
+{
+ const unsigned long *addr = vaddr;
+ const unsigned long *p = addr + (offset >> 5);
+ int bit = offset & 31UL, res;
+
+ if (bit) {
+ /* addr + offse is not long aligned so search till we
+ * have an aligned address
+ */
+ /* Look for one in first longword */
+ for (res = bit; res < 32; res++)
+ if (ext2_test_bit(res, p))
+ return (p - addr) * 32 + res;
+ p++;
+ }
+ /* No set bit yet, search remaining full bytes for a set bit */
+ res = ext2_find_first_bit(p, size - 32 * (p - addr));
+ return (p - addr) * 32 + res;
+}
#endif /* __KERNEL__ */
next prev parent reply other threads:[~2008-04-10 11:27 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-05 10:24 ext4 compile error on m68k Adrian Bunk
2008-04-05 10:24 ` Adrian Bunk
2008-04-05 11:48 ` Geert Uytterhoeven
2008-04-10 10:41 ` Aneesh Kumar K.V
2008-04-10 11:26 ` Aneesh Kumar K.V [this message]
2008-04-10 11:48 ` Andreas Schwab
2008-04-10 13:58 ` Aneesh Kumar K.V
2008-04-10 14:01 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080410112657.GC23116@skywalker \
--to=aneesh.kumar@linux.vnet.ibm.com \
--cc=adilger@clusterfs.com \
--cc=akpm@linux-foundation.org \
--cc=bunk@kernel.org \
--cc=geert@linux-m68k.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-m68k@vger.kernel.org \
--cc=sct@redhat.com \
--cc=zippel@linux-m68k.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.