From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Yury Norov <yury.norov@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
"H. Peter Anvin" <hpa@zytor.com>,
Lucas Stach <l.stach@pengutronix.de>,
Russell King <linux+etnaviv@armlinux.org.uk>,
Christian Gmeiner <christian.gmeiner@gmail.com>,
David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
Jean Delvare <jdelvare@suse.com>,
Guenter Roeck <linux@roeck-us.net>,
Rasmus Villemoes <linux@rasmusvillemoes.dk>,
Marc Zyngier <maz@kernel.org>,
David Woodhouse <dwmw@amazon.co.uk>,
Andrew Morton <akpm@linux-foundation.org>,
Wei Yang <richard.weiyang@linux.alibaba.com>,
Geert Uytterhoeven <geert+renesas@glider.be>,
Alexey Klimov <aklimov@redhat.com>,
x86@kernel.org, linux-kernel@vger.kernel.org,
etnaviv@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
linux-hwmon@vger.kernel.org
Subject: Re: [PATCH 1/3] include/linux: move for_each_bit() macros from bitops.h to find.h
Date: Sat, 19 Jun 2021 13:50:50 +0300 [thread overview]
Message-ID: <YM3MCrveAlIa1TES@smile.fi.intel.com> (raw)
In-Reply-To: <20210618195735.55933-2-yury.norov@gmail.com>
On Fri, Jun 18, 2021 at 12:57:33PM -0700, Yury Norov wrote:
> for_each_bit() macros depend on find_bit() machinery, and so the
> proper place for them is the find.h header.
Fine with me.
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Signed-off-by: Yury Norov <yury.norov@gmail.com>
> ---
> include/linux/bitops.h | 34 ----------------------------------
> include/linux/find.h | 34 ++++++++++++++++++++++++++++++++++
> 2 files changed, 34 insertions(+), 34 deletions(-)
>
> diff --git a/include/linux/bitops.h b/include/linux/bitops.h
> index 26bf15e6cd35..31ae1ae1a974 100644
> --- a/include/linux/bitops.h
> +++ b/include/linux/bitops.h
> @@ -31,40 +31,6 @@ extern unsigned long __sw_hweight64(__u64 w);
> */
> #include <asm/bitops.h>
>
> -#define for_each_set_bit(bit, addr, size) \
> - for ((bit) = find_first_bit((addr), (size)); \
> - (bit) < (size); \
> - (bit) = find_next_bit((addr), (size), (bit) + 1))
> -
> -/* same as for_each_set_bit() but use bit as value to start with */
> -#define for_each_set_bit_from(bit, addr, size) \
> - for ((bit) = find_next_bit((addr), (size), (bit)); \
> - (bit) < (size); \
> - (bit) = find_next_bit((addr), (size), (bit) + 1))
> -
> -#define for_each_clear_bit(bit, addr, size) \
> - for ((bit) = find_first_zero_bit((addr), (size)); \
> - (bit) < (size); \
> - (bit) = find_next_zero_bit((addr), (size), (bit) + 1))
> -
> -/* same as for_each_clear_bit() but use bit as value to start with */
> -#define for_each_clear_bit_from(bit, addr, size) \
> - for ((bit) = find_next_zero_bit((addr), (size), (bit)); \
> - (bit) < (size); \
> - (bit) = find_next_zero_bit((addr), (size), (bit) + 1))
> -
> -/**
> - * for_each_set_clump8 - iterate over bitmap for each 8-bit clump with set bits
> - * @start: bit offset to start search and to store the current iteration offset
> - * @clump: location to store copy of current 8-bit clump
> - * @bits: bitmap address to base the search on
> - * @size: bitmap size in number of bits
> - */
> -#define for_each_set_clump8(start, clump, bits, size) \
> - for ((start) = find_first_clump8(&(clump), (bits), (size)); \
> - (start) < (size); \
> - (start) = find_next_clump8(&(clump), (bits), (size), (start) + 8))
> -
> static inline int get_bitmask_order(unsigned int count)
> {
> int order;
> diff --git a/include/linux/find.h b/include/linux/find.h
> index 6048f8c97418..4500e8ab93e2 100644
> --- a/include/linux/find.h
> +++ b/include/linux/find.h
> @@ -279,4 +279,38 @@ unsigned long find_next_bit_le(const void *addr, unsigned
> #error "Please fix <asm/byteorder.h>"
> #endif
>
> +#define for_each_set_bit(bit, addr, size) \
> + for ((bit) = find_first_bit((addr), (size)); \
> + (bit) < (size); \
> + (bit) = find_next_bit((addr), (size), (bit) + 1))
> +
> +/* same as for_each_set_bit() but use bit as value to start with */
> +#define for_each_set_bit_from(bit, addr, size) \
> + for ((bit) = find_next_bit((addr), (size), (bit)); \
> + (bit) < (size); \
> + (bit) = find_next_bit((addr), (size), (bit) + 1))
> +
> +#define for_each_clear_bit(bit, addr, size) \
> + for ((bit) = find_first_zero_bit((addr), (size)); \
> + (bit) < (size); \
> + (bit) = find_next_zero_bit((addr), (size), (bit) + 1))
> +
> +/* same as for_each_clear_bit() but use bit as value to start with */
> +#define for_each_clear_bit_from(bit, addr, size) \
> + for ((bit) = find_next_zero_bit((addr), (size), (bit)); \
> + (bit) < (size); \
> + (bit) = find_next_zero_bit((addr), (size), (bit) + 1))
> +
> +/**
> + * for_each_set_clump8 - iterate over bitmap for each 8-bit clump with set bits
> + * @start: bit offset to start search and to store the current iteration offset
> + * @clump: location to store copy of current 8-bit clump
> + * @bits: bitmap address to base the search on
> + * @size: bitmap size in number of bits
> + */
> +#define for_each_set_clump8(start, clump, bits, size) \
> + for ((start) = find_first_clump8(&(clump), (bits), (size)); \
> + (start) < (size); \
> + (start) = find_next_clump8(&(clump), (bits), (size), (start) + 8))
> +
> #endif /*__LINUX_FIND_H_ */
> --
> 2.30.2
>
--
With Best Regards,
Andy Shevchenko
WARNING: multiple messages have this Message-ID (diff)
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Yury Norov <yury.norov@gmail.com>
Cc: Wei Yang <richard.weiyang@linux.alibaba.com>,
Geert Uytterhoeven <geert+renesas@glider.be>,
David Airlie <airlied@linux.ie>,
Rasmus Villemoes <linux@rasmusvillemoes.dk>,
dri-devel@lists.freedesktop.org, "H. Peter Anvin" <hpa@zytor.com>,
Marc Zyngier <maz@kernel.org>,
x86@kernel.org, Ingo Molnar <mingo@redhat.com>,
Russell King <linux+etnaviv@armlinux.org.uk>,
Guenter Roeck <linux@roeck-us.net>,
Jean Delvare <jdelvare@suse.com>,
Alexey Klimov <aklimov@redhat.com>,
etnaviv@lists.freedesktop.org, Borislav Petkov <bp@alien8.de>,
Thomas Gleixner <tglx@linutronix.de>,
linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
David Woodhouse <dwmw@amazon.co.uk>
Subject: Re: [PATCH 1/3] include/linux: move for_each_bit() macros from bitops.h to find.h
Date: Sat, 19 Jun 2021 13:50:50 +0300 [thread overview]
Message-ID: <YM3MCrveAlIa1TES@smile.fi.intel.com> (raw)
In-Reply-To: <20210618195735.55933-2-yury.norov@gmail.com>
On Fri, Jun 18, 2021 at 12:57:33PM -0700, Yury Norov wrote:
> for_each_bit() macros depend on find_bit() machinery, and so the
> proper place for them is the find.h header.
Fine with me.
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Signed-off-by: Yury Norov <yury.norov@gmail.com>
> ---
> include/linux/bitops.h | 34 ----------------------------------
> include/linux/find.h | 34 ++++++++++++++++++++++++++++++++++
> 2 files changed, 34 insertions(+), 34 deletions(-)
>
> diff --git a/include/linux/bitops.h b/include/linux/bitops.h
> index 26bf15e6cd35..31ae1ae1a974 100644
> --- a/include/linux/bitops.h
> +++ b/include/linux/bitops.h
> @@ -31,40 +31,6 @@ extern unsigned long __sw_hweight64(__u64 w);
> */
> #include <asm/bitops.h>
>
> -#define for_each_set_bit(bit, addr, size) \
> - for ((bit) = find_first_bit((addr), (size)); \
> - (bit) < (size); \
> - (bit) = find_next_bit((addr), (size), (bit) + 1))
> -
> -/* same as for_each_set_bit() but use bit as value to start with */
> -#define for_each_set_bit_from(bit, addr, size) \
> - for ((bit) = find_next_bit((addr), (size), (bit)); \
> - (bit) < (size); \
> - (bit) = find_next_bit((addr), (size), (bit) + 1))
> -
> -#define for_each_clear_bit(bit, addr, size) \
> - for ((bit) = find_first_zero_bit((addr), (size)); \
> - (bit) < (size); \
> - (bit) = find_next_zero_bit((addr), (size), (bit) + 1))
> -
> -/* same as for_each_clear_bit() but use bit as value to start with */
> -#define for_each_clear_bit_from(bit, addr, size) \
> - for ((bit) = find_next_zero_bit((addr), (size), (bit)); \
> - (bit) < (size); \
> - (bit) = find_next_zero_bit((addr), (size), (bit) + 1))
> -
> -/**
> - * for_each_set_clump8 - iterate over bitmap for each 8-bit clump with set bits
> - * @start: bit offset to start search and to store the current iteration offset
> - * @clump: location to store copy of current 8-bit clump
> - * @bits: bitmap address to base the search on
> - * @size: bitmap size in number of bits
> - */
> -#define for_each_set_clump8(start, clump, bits, size) \
> - for ((start) = find_first_clump8(&(clump), (bits), (size)); \
> - (start) < (size); \
> - (start) = find_next_clump8(&(clump), (bits), (size), (start) + 8))
> -
> static inline int get_bitmask_order(unsigned int count)
> {
> int order;
> diff --git a/include/linux/find.h b/include/linux/find.h
> index 6048f8c97418..4500e8ab93e2 100644
> --- a/include/linux/find.h
> +++ b/include/linux/find.h
> @@ -279,4 +279,38 @@ unsigned long find_next_bit_le(const void *addr, unsigned
> #error "Please fix <asm/byteorder.h>"
> #endif
>
> +#define for_each_set_bit(bit, addr, size) \
> + for ((bit) = find_first_bit((addr), (size)); \
> + (bit) < (size); \
> + (bit) = find_next_bit((addr), (size), (bit) + 1))
> +
> +/* same as for_each_set_bit() but use bit as value to start with */
> +#define for_each_set_bit_from(bit, addr, size) \
> + for ((bit) = find_next_bit((addr), (size), (bit)); \
> + (bit) < (size); \
> + (bit) = find_next_bit((addr), (size), (bit) + 1))
> +
> +#define for_each_clear_bit(bit, addr, size) \
> + for ((bit) = find_first_zero_bit((addr), (size)); \
> + (bit) < (size); \
> + (bit) = find_next_zero_bit((addr), (size), (bit) + 1))
> +
> +/* same as for_each_clear_bit() but use bit as value to start with */
> +#define for_each_clear_bit_from(bit, addr, size) \
> + for ((bit) = find_next_zero_bit((addr), (size), (bit)); \
> + (bit) < (size); \
> + (bit) = find_next_zero_bit((addr), (size), (bit) + 1))
> +
> +/**
> + * for_each_set_clump8 - iterate over bitmap for each 8-bit clump with set bits
> + * @start: bit offset to start search and to store the current iteration offset
> + * @clump: location to store copy of current 8-bit clump
> + * @bits: bitmap address to base the search on
> + * @size: bitmap size in number of bits
> + */
> +#define for_each_set_clump8(start, clump, bits, size) \
> + for ((start) = find_first_clump8(&(clump), (bits), (size)); \
> + (start) < (size); \
> + (start) = find_next_clump8(&(clump), (bits), (size), (start) + 8))
> +
> #endif /*__LINUX_FIND_H_ */
> --
> 2.30.2
>
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2021-06-19 10:51 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-18 19:57 [PATCH 0/3] for_each_*_bit: move to find.h and reconsider Yury Norov
2021-06-18 19:57 ` [PATCH 1/3] include/linux: move for_each_bit() macros from bitops.h to find.h Yury Norov
2021-06-19 10:50 ` Andy Shevchenko [this message]
2021-06-19 10:50 ` Andy Shevchenko
2021-06-18 19:57 ` [PATCH 2/3] find: micro-optimize for_each_{set,clear}_bit() Yury Norov
2021-06-19 10:50 ` Andy Shevchenko
2021-06-19 10:50 ` Andy Shevchenko
2021-06-19 16:24 ` Marc Zyngier
2021-06-19 16:24 ` Marc Zyngier
2021-06-19 17:28 ` Yury Norov
2021-06-19 17:28 ` Yury Norov
2021-06-27 16:47 ` Yury Norov
2021-06-27 16:47 ` Yury Norov
2021-06-18 19:57 ` [PATCH 3/3] Replace for_each_*_bit_from() with for_each_*_bit() where appropriate Yury Norov
2021-06-19 10:49 ` Andy Shevchenko
2021-06-19 10:49 ` Andy Shevchenko
2021-06-19 10:55 ` Andy Shevchenko
2021-06-19 10:55 ` Andy Shevchenko
2021-06-21 20:17 ` Guenter Roeck
2021-06-21 20:17 ` Guenter Roeck
2021-06-21 21:34 ` Yury Norov
2021-06-21 21:34 ` Yury Norov
2021-07-28 14:57 ` [PATCH 0/3] for_each_*_bit: move to find.h and reconsider Yury Norov
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=YM3MCrveAlIa1TES@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=airlied@linux.ie \
--cc=aklimov@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=bp@alien8.de \
--cc=christian.gmeiner@gmail.com \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=dwmw@amazon.co.uk \
--cc=etnaviv@lists.freedesktop.org \
--cc=geert+renesas@glider.be \
--cc=hpa@zytor.com \
--cc=jdelvare@suse.com \
--cc=l.stach@pengutronix.de \
--cc=linux+etnaviv@armlinux.org.uk \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=linux@roeck-us.net \
--cc=maz@kernel.org \
--cc=mingo@redhat.com \
--cc=richard.weiyang@linux.alibaba.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
--cc=yury.norov@gmail.com \
/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.