diff mbox series

[108/147] bitops: move find_bit_*_le functions from le.h to find.h

Message ID 20210908025901.gV9fu4cei%akpm@linux-foundation.org (mailing list archive)
State New
Headers show
Series [001/147] mm, slub: don't call flush_all() from slab_debug_trace_open() | expand

Commit Message

Andrew Morton Sept. 8, 2021, 2:59 a.m. UTC
From: Yury Norov <yury.norov@gmail.com>
Subject: bitops: move find_bit_*_le functions from le.h to find.h

It's convenient to have all find_bit declarations in one place.

Link: https://lkml.kernel.org/r/20210814211713.180533-3-yury.norov@gmail.com
Signed-off-by: Yury Norov <yury.norov@gmail.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Cc: Alexander Lobakin <alobakin@pm.me>
Cc: Alexey Klimov <aklimov@redhat.com>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Dennis Zhou <dennis@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Ulf Hansson <ulf.hansson@linaro.org>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---

 include/asm-generic/bitops/find.h |  193 ----------------------------
 include/asm-generic/bitops/le.h   |   64 ---------
 2 files changed, 257 deletions(-)

Comments

Linus Torvalds Sept. 8, 2021, 6:37 p.m. UTC | #1
On Tue, Sep 7, 2021 at 7:59 PM Andrew Morton <akpm@linux-foundation.org> wrote:
>
> From: Yury Norov <yury.norov@gmail.com>
> Subject: bitops: move find_bit_*_le functions from le.h to find.h
>
> It's convenient to have all find_bit declarations in one place.

What what what?

The subject line says "move".

The body of the commit message doesn't imply anything else.

But the patch doesn't "move" anything at all:

>  include/asm-generic/bitops/find.h |  193 ----------------------------
>  include/asm-generic/bitops/le.h   |   64 ---------
>  2 files changed, 257 deletions(-)

What's going on?

Dropped just because I refuse to have anything to do with patches that
lie about what they are actually doing.

                Linus
Yury Norov Sept. 8, 2021, 7:38 p.m. UTC | #2
On Wed, Sep 08, 2021 at 11:37:54AM -0700, Linus Torvalds wrote:
> On Tue, Sep 7, 2021 at 7:59 PM Andrew Morton <akpm@linux-foundation.org> wrote:
> >
> > From: Yury Norov <yury.norov@gmail.com>
> > Subject: bitops: move find_bit_*_le functions from le.h to find.h
> >
> > It's convenient to have all find_bit declarations in one place.
> 
> What what what?
> 
> The subject line says "move".
> 
> The body of the commit message doesn't imply anything else.
> 
> But the patch doesn't "move" anything at all:
> 
> >  include/asm-generic/bitops/find.h |  193 ----------------------------
> >  include/asm-generic/bitops/le.h   |   64 ---------
> >  2 files changed, 257 deletions(-)
> 
> What's going on?
> 
> Dropped just because I refuse to have anything to do with patches that
> lie about what they are actually doing.

This is how the patch looks in my tree:
https://github.com/norov/linux/commit/4a92b733138e3fd71cd8a021ad53cbce68d61cfc

And in my submission:
http://lkml.iu.edu/hypermail/linux/kernel/2108.1/07330.html

So it actually does what it says. The following patch in this series
also differs from what I have in my tree. Something weird happened...

Andrew, Linus, are you OK if I resend the patchset?

Yury
Linus Torvalds Sept. 8, 2021, 7:46 p.m. UTC | #3
On Wed, Sep 8, 2021 at 12:38 PM Yury Norov <yury.norov@gmail.com> wrote:
>
> Andrew, Linus, are you OK if I resend the patchset?

I've removed the whole series from my queue, so yes, resending is the
right thing.

That said, by now it's starting to be the latter half of the second
week of the merge window, and by the time it has gone through the
queues, I'm not going to guarantee that I'll be in a mood to merge new
stuff any more.

This has not been a particularly huge merge window in number of
commits, but there's actually been an unusually large number of these
kinds of odd things where I go "that's just not right".

So I've been a bit testy with people (sorry about that), and I'm
getting to the point where I just am not feeling very generous to
stuff that wasn't all prim and proper and ready by the merge window.

              Linus
Andrew Morton Sept. 8, 2021, 7:49 p.m. UTC | #4
On Wed, 8 Sep 2021 12:38:27 -0700 Yury Norov <yury.norov@gmail.com> wrote:

> On Wed, Sep 08, 2021 at 11:37:54AM -0700, Linus Torvalds wrote:
> > On Tue, Sep 7, 2021 at 7:59 PM Andrew Morton <akpm@linux-foundation.org> wrote:
> > >
> > > From: Yury Norov <yury.norov@gmail.com>
> > > Subject: bitops: move find_bit_*_le functions from le.h to find.h
> > >
> > > It's convenient to have all find_bit declarations in one place.
> > 
> > What what what?
> > 
> > The subject line says "move".
> > 
> > The body of the commit message doesn't imply anything else.
> > 
> > But the patch doesn't "move" anything at all:
> > 
> > >  include/asm-generic/bitops/find.h |  193 ----------------------------
> > >  include/asm-generic/bitops/le.h   |   64 ---------
> > >  2 files changed, 257 deletions(-)
> > 
> > What's going on?
> > 
> > Dropped just because I refuse to have anything to do with patches that
> > lie about what they are actually doing.
> 
> This is how the patch looks in my tree:
> https://github.com/norov/linux/commit/4a92b733138e3fd71cd8a021ad53cbce68d61cfc
> 
> And in my submission:
> http://lkml.iu.edu/hypermail/linux/kernel/2108.1/07330.html
> 
> So it actually does what it says. The following patch in this series
> also differs from what I have in my tree. Something weird happened...

There were some competing changes in next for a while so I guess there
was damage.

> Andrew, Linus, are you OK if I resend the patchset?

Linus suggests other changes.  I suggest you get this tree into -next
as discussed and put the changes through another kernel cycle.
Linus Torvalds Sept. 8, 2021, 7:56 p.m. UTC | #5
On Wed, Sep 8, 2021 at 12:49 PM Andrew Morton <akpm@linux-foundation.org> wrote:
>
> Linus suggests other changes.

I _think_ my other objections were to patches in different groups
(same 147-email series, but different sub-series).

But I didn't check how you had split things up, so they may end up
being related.

I dropped all of the bit finding ones.

I'm in the middle of writing the merge message, I'll do my test
builds, and then push out, so you can see exactly what I merged (and
by implication, what I did not).

              Linus
Linus Torvalds Sept. 8, 2021, 8:08 p.m. UTC | #6
On Wed, Sep 8, 2021 at 12:56 PM Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> I'm in the middle of writing the merge message, I'll do my test
> builds, and then push out, so you can see exactly what I merged (and
> by implication, what I did not).

Ok, so no pr-tracker-bot for the manual patch merges, so here's the
equivalent manual "it's merged and pushed out now" notification..

           Linus
Yury Norov Sept. 8, 2021, 8:16 p.m. UTC | #7
On Wed, Sep 08, 2021 at 12:49:37PM -0700, Andrew Morton wrote:
> On Wed, 8 Sep 2021 12:38:27 -0700 Yury Norov <yury.norov@gmail.com> wrote:
> 
> > On Wed, Sep 08, 2021 at 11:37:54AM -0700, Linus Torvalds wrote:
> > > On Tue, Sep 7, 2021 at 7:59 PM Andrew Morton <akpm@linux-foundation.org> wrote:
> > > >
> > > > From: Yury Norov <yury.norov@gmail.com>
> > > > Subject: bitops: move find_bit_*_le functions from le.h to find.h
> > > >
> > > > It's convenient to have all find_bit declarations in one place.
> > > 
> > > What what what?
> > > 
> > > The subject line says "move".
> > > 
> > > The body of the commit message doesn't imply anything else.
> > > 
> > > But the patch doesn't "move" anything at all:
> > > 
> > > >  include/asm-generic/bitops/find.h |  193 ----------------------------
> > > >  include/asm-generic/bitops/le.h   |   64 ---------
> > > >  2 files changed, 257 deletions(-)
> > > 
> > > What's going on?
> > > 
> > > Dropped just because I refuse to have anything to do with patches that
> > > lie about what they are actually doing.
> > 
> > This is how the patch looks in my tree:
> > https://github.com/norov/linux/commit/4a92b733138e3fd71cd8a021ad53cbce68d61cfc
> > 
> > And in my submission:
> > http://lkml.iu.edu/hypermail/linux/kernel/2108.1/07330.html
> > 
> > So it actually does what it says. The following patch in this series
> > also differs from what I have in my tree. Something weird happened...
> 
> There were some competing changes in next for a while so I guess there
> was damage.
> 
> > Andrew, Linus, are you OK if I resend the patchset?
> 
> Linus suggests other changes.  I suggest you get this tree into -next
> as discussed and put the changes through another kernel cycle.

OK, I'll resend next week.
diff mbox series

Patch

--- a/include/asm-generic/bitops/find.h
+++ /dev/null
@@ -1,193 +0,0 @@ 
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _ASM_GENERIC_BITOPS_FIND_H_
-#define _ASM_GENERIC_BITOPS_FIND_H_
-
-extern unsigned long _find_next_bit(const unsigned long *addr1,
-		const unsigned long *addr2, unsigned long nbits,
-		unsigned long start, unsigned long invert, unsigned long le);
-extern unsigned long _find_first_bit(const unsigned long *addr, unsigned long size);
-extern unsigned long _find_first_zero_bit(const unsigned long *addr, unsigned long size);
-extern unsigned long _find_last_bit(const unsigned long *addr, unsigned long size);
-
-#ifndef find_next_bit
-/**
- * find_next_bit - find the next set bit in a memory region
- * @addr: The address to base the search on
- * @offset: The bitnumber to start searching at
- * @size: The bitmap size in bits
- *
- * Returns the bit number for the next set bit
- * If no bits are set, returns @size.
- */
-static inline
-unsigned long find_next_bit(const unsigned long *addr, unsigned long size,
-			    unsigned long offset)
-{
-	if (small_const_nbits(size)) {
-		unsigned long val;
-
-		if (unlikely(offset >= size))
-			return size;
-
-		val = *addr & GENMASK(size - 1, offset);
-		return val ? __ffs(val) : size;
-	}
-
-	return _find_next_bit(addr, NULL, size, offset, 0UL, 0);
-}
-#endif
-
-#ifndef find_next_and_bit
-/**
- * find_next_and_bit - find the next set bit in both memory regions
- * @addr1: The first address to base the search on
- * @addr2: The second address to base the search on
- * @offset: The bitnumber to start searching at
- * @size: The bitmap size in bits
- *
- * Returns the bit number for the next set bit
- * If no bits are set, returns @size.
- */
-static inline
-unsigned long find_next_and_bit(const unsigned long *addr1,
-		const unsigned long *addr2, unsigned long size,
-		unsigned long offset)
-{
-	if (small_const_nbits(size)) {
-		unsigned long val;
-
-		if (unlikely(offset >= size))
-			return size;
-
-		val = *addr1 & *addr2 & GENMASK(size - 1, offset);
-		return val ? __ffs(val) : size;
-	}
-
-	return _find_next_bit(addr1, addr2, size, offset, 0UL, 0);
-}
-#endif
-
-#ifndef find_next_zero_bit
-/**
- * find_next_zero_bit - find the next cleared bit in a memory region
- * @addr: The address to base the search on
- * @offset: The bitnumber to start searching at
- * @size: The bitmap size in bits
- *
- * Returns the bit number of the next zero bit
- * If no bits are zero, returns @size.
- */
-static inline
-unsigned long find_next_zero_bit(const unsigned long *addr, unsigned long size,
-				 unsigned long offset)
-{
-	if (small_const_nbits(size)) {
-		unsigned long val;
-
-		if (unlikely(offset >= size))
-			return size;
-
-		val = *addr | ~GENMASK(size - 1, offset);
-		return val == ~0UL ? size : ffz(val);
-	}
-
-	return _find_next_bit(addr, NULL, size, offset, ~0UL, 0);
-}
-#endif
-
-#ifdef CONFIG_GENERIC_FIND_FIRST_BIT
-
-#ifndef find_first_bit
-/**
- * find_first_bit - find the first set bit in a memory region
- * @addr: The address to start the search at
- * @size: The maximum number of bits to search
- *
- * Returns the bit number of the first set bit.
- * If no bits are set, returns @size.
- */
-static inline
-unsigned long find_first_bit(const unsigned long *addr, unsigned long size)
-{
-	if (small_const_nbits(size)) {
-		unsigned long val = *addr & GENMASK(size - 1, 0);
-
-		return val ? __ffs(val) : size;
-	}
-
-	return _find_first_bit(addr, size);
-}
-#endif
-
-#ifndef find_first_zero_bit
-/**
- * find_first_zero_bit - find the first cleared bit in a memory region
- * @addr: The address to start the search at
- * @size: The maximum number of bits to search
- *
- * Returns the bit number of the first cleared bit.
- * If no bits are zero, returns @size.
- */
-static inline
-unsigned long find_first_zero_bit(const unsigned long *addr, unsigned long size)
-{
-	if (small_const_nbits(size)) {
-		unsigned long val = *addr | ~GENMASK(size - 1, 0);
-
-		return val == ~0UL ? size : ffz(val);
-	}
-
-	return _find_first_zero_bit(addr, size);
-}
-#endif
-
-#else /* CONFIG_GENERIC_FIND_FIRST_BIT */
-
-#ifndef find_first_bit
-#define find_first_bit(addr, size) find_next_bit((addr), (size), 0)
-#endif
-#ifndef find_first_zero_bit
-#define find_first_zero_bit(addr, size) find_next_zero_bit((addr), (size), 0)
-#endif
-
-#endif /* CONFIG_GENERIC_FIND_FIRST_BIT */
-
-#ifndef find_last_bit
-/**
- * find_last_bit - find the last set bit in a memory region
- * @addr: The address to start the search at
- * @size: The number of bits to search
- *
- * Returns the bit number of the last set bit, or size.
- */
-static inline
-unsigned long find_last_bit(const unsigned long *addr, unsigned long size)
-{
-	if (small_const_nbits(size)) {
-		unsigned long val = *addr & GENMASK(size - 1, 0);
-
-		return val ? __fls(val) : size;
-	}
-
-	return _find_last_bit(addr, size);
-}
-#endif
-
-/**
- * find_next_clump8 - find next 8-bit clump with set bits in a memory region
- * @clump: location to store copy of found clump
- * @addr: address to base the search on
- * @size: bitmap size in number of bits
- * @offset: bit offset at which to start searching
- *
- * Returns the bit offset for the next set clump; the found clump value is
- * copied to the location pointed by @clump. If no bits are set, returns @size.
- */
-extern unsigned long find_next_clump8(unsigned long *clump,
-				      const unsigned long *addr,
-				      unsigned long size, unsigned long offset);
-
-#define find_first_clump8(clump, bits, size) \
-	find_next_clump8((clump), (bits), (size), 0)
-
-#endif /*_ASM_GENERIC_BITOPS_FIND_H_ */
--- a/include/asm-generic/bitops/le.h~bitops-move-find_bit__le-functions-from-leh-to-findh
+++ a/include/asm-generic/bitops/le.h
@@ -2,83 +2,19 @@ 
 #ifndef _ASM_GENERIC_BITOPS_LE_H_
 #define _ASM_GENERIC_BITOPS_LE_H_
 
-#include <asm-generic/bitops/find.h>
 #include <asm/types.h>
 #include <asm/byteorder.h>
-#include <linux/swab.h>
 
 #if defined(__LITTLE_ENDIAN)
 
 #define BITOP_LE_SWIZZLE	0
 
-static inline unsigned long find_next_zero_bit_le(const void *addr,
-		unsigned long size, unsigned long offset)
-{
-	return find_next_zero_bit(addr, size, offset);
-}
-
-static inline unsigned long find_next_bit_le(const void *addr,
-		unsigned long size, unsigned long offset)
-{
-	return find_next_bit(addr, size, offset);
-}
-
-static inline unsigned long find_first_zero_bit_le(const void *addr,
-		unsigned long size)
-{
-	return find_first_zero_bit(addr, size);
-}
-
 #elif defined(__BIG_ENDIAN)
 
 #define BITOP_LE_SWIZZLE	((BITS_PER_LONG-1) & ~0x7)
 
-#ifndef find_next_zero_bit_le
-static inline
-unsigned long find_next_zero_bit_le(const void *addr, unsigned
-		long size, unsigned long offset)
-{
-	if (small_const_nbits(size)) {
-		unsigned long val = *(const unsigned long *)addr;
-
-		if (unlikely(offset >= size))
-			return size;
-
-		val = swab(val) | ~GENMASK(size - 1, offset);
-		return val == ~0UL ? size : ffz(val);
-	}
-
-	return _find_next_bit(addr, NULL, size, offset, ~0UL, 1);
-}
 #endif
 
-#ifndef find_next_bit_le
-static inline
-unsigned long find_next_bit_le(const void *addr, unsigned
-		long size, unsigned long offset)
-{
-	if (small_const_nbits(size)) {
-		unsigned long val = *(const unsigned long *)addr;
-
-		if (unlikely(offset >= size))
-			return size;
-
-		val = swab(val) & GENMASK(size - 1, offset);
-		return val ? __ffs(val) : size;
-	}
-
-	return _find_next_bit(addr, NULL, size, offset, 0UL, 1);
-}
-#endif
-
-#ifndef find_first_zero_bit_le
-#define find_first_zero_bit_le(addr, size) \
-	find_next_zero_bit_le((addr), (size), 0)
-#endif
-
-#else
-#error "Please fix <asm/byteorder.h>"
-#endif
 
 static inline int test_bit_le(int nr, const void *addr)
 {