mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] uapi: enforce non-asm rule for 128-bit bitmasks macros
@ 2024-08-03 13:37 Yury Norov
  2024-08-04 23:28 ` Anshuman Khandual
  0 siblings, 1 reply; 3+ messages in thread
From: Yury Norov @ 2024-08-03 13:37 UTC (permalink / raw)
  To: linux-kernel
  Cc: Yury Norov, Rasmus Villemoes, Arnd Bergmann, Anshuman Khandual

The macros wouldn't work in all assembler flavors for reasons described
in the comments on top of declarations. Enforce it for more by adding
!__ASSEMBLY__ guard.

Signed-off-by: Yury Norov <yury.norov@gmail.com>
---
 include/linux/bits.h       | 2 ++
 include/uapi/linux/const.h | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/include/linux/bits.h b/include/linux/bits.h
index bf99feb5570e..60044b608817 100644
--- a/include/linux/bits.h
+++ b/include/linux/bits.h
@@ -36,6 +36,7 @@
 #define GENMASK_ULL(h, l) \
 	(GENMASK_INPUT_CHECK(h, l) + __GENMASK_ULL(h, l))
 
+#if !defined(__ASSEMBLY__)
 /*
  * Missing asm support
  *
@@ -48,5 +49,6 @@
  */
 #define GENMASK_U128(h, l) \
 	(GENMASK_INPUT_CHECK(h, l) + __GENMASK_U128(h, l))
+#endif
 
 #endif	/* __LINUX_BITS_H */
diff --git a/include/uapi/linux/const.h b/include/uapi/linux/const.h
index 5be12e8f8f9c..e16be0d37746 100644
--- a/include/uapi/linux/const.h
+++ b/include/uapi/linux/const.h
@@ -28,6 +28,7 @@
 #define _BITUL(x)	(_UL(1) << (x))
 #define _BITULL(x)	(_ULL(1) << (x))
 
+#if !defined(__ASSEMBLY__)
 /*
  * Missing asm support
  *
@@ -42,6 +43,7 @@
  * GENMASK_U128() which would then start supporting asm code.
  */
 #define _BIT128(x)	((unsigned __int128)(1) << (x))
+#endif
 
 #define __ALIGN_KERNEL(x, a)		__ALIGN_KERNEL_MASK(x, (__typeof__(x))(a) - 1)
 #define __ALIGN_KERNEL_MASK(x, mask)	(((x) + (mask)) & ~(mask))
-- 
2.43.0


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

* Re: [PATCH] uapi: enforce non-asm rule for 128-bit bitmasks macros
  2024-08-03 13:37 [PATCH] uapi: enforce non-asm rule for 128-bit bitmasks macros Yury Norov
@ 2024-08-04 23:28 ` Anshuman Khandual
  2024-08-05 16:21   ` Yury Norov
  0 siblings, 1 reply; 3+ messages in thread
From: Anshuman Khandual @ 2024-08-04 23:28 UTC (permalink / raw)
  To: Yury Norov, linux-kernel; +Cc: Rasmus Villemoes, Arnd Bergmann

On 8/3/24 19:07, Yury Norov wrote:
> The macros wouldn't work in all assembler flavors for reasons described
> in the comments on top of declarations. Enforce it for more by adding
> !__ASSEMBLY__ guard.

Right, this makes sense, should have added in the original patch itself.

> 
> Signed-off-by: Yury Norov <yury.norov@gmail.com>

Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>

> ---
>  include/linux/bits.h       | 2 ++
>  include/uapi/linux/const.h | 2 ++
>  2 files changed, 4 insertions(+)
> 
> diff --git a/include/linux/bits.h b/include/linux/bits.h
> index bf99feb5570e..60044b608817 100644
> --- a/include/linux/bits.h
> +++ b/include/linux/bits.h
> @@ -36,6 +36,7 @@
>  #define GENMASK_ULL(h, l) \
>  	(GENMASK_INPUT_CHECK(h, l) + __GENMASK_ULL(h, l))
>  
> +#if !defined(__ASSEMBLY__)
>  /*
>   * Missing asm support
>   *
> @@ -48,5 +49,6 @@
>   */
>  #define GENMASK_U128(h, l) \
>  	(GENMASK_INPUT_CHECK(h, l) + __GENMASK_U128(h, l))
> +#endif
>  
>  #endif	/* __LINUX_BITS_H */
> diff --git a/include/uapi/linux/const.h b/include/uapi/linux/const.h
> index 5be12e8f8f9c..e16be0d37746 100644
> --- a/include/uapi/linux/const.h
> +++ b/include/uapi/linux/const.h
> @@ -28,6 +28,7 @@
>  #define _BITUL(x)	(_UL(1) << (x))
>  #define _BITULL(x)	(_ULL(1) << (x))
>  
> +#if !defined(__ASSEMBLY__)
>  /*
>   * Missing asm support
>   *
> @@ -42,6 +43,7 @@
>   * GENMASK_U128() which would then start supporting asm code.
>   */
>  #define _BIT128(x)	((unsigned __int128)(1) << (x))
> +#endif
>  
>  #define __ALIGN_KERNEL(x, a)		__ALIGN_KERNEL_MASK(x, (__typeof__(x))(a) - 1)
>  #define __ALIGN_KERNEL_MASK(x, mask)	(((x) + (mask)) & ~(mask))

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

* Re: [PATCH] uapi: enforce non-asm rule for 128-bit bitmasks macros
  2024-08-04 23:28 ` Anshuman Khandual
@ 2024-08-05 16:21   ` Yury Norov
  0 siblings, 0 replies; 3+ messages in thread
From: Yury Norov @ 2024-08-05 16:21 UTC (permalink / raw)
  To: Anshuman Khandual, l; +Cc: linux-kernel, Rasmus Villemoes, Arnd Bergmann

On Mon, Aug 05, 2024 at 04:58:25AM +0530, Anshuman Khandual wrote:
> On 8/3/24 19:07, Yury Norov wrote:
> > The macros wouldn't work in all assembler flavors for reasons described
> > in the comments on top of declarations. Enforce it for more by adding
> > !__ASSEMBLY__ guard.
> 
> Right, this makes sense, should have added in the original patch itself.
> 
> > 
> > Signed-off-by: Yury Norov <yury.norov@gmail.com>
> 
> Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>

Thanks, adding in bitmap-for-next.

Thanks,
Yury

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

end of thread, other threads:[~2024-08-05 16:21 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-08-03 13:37 [PATCH] uapi: enforce non-asm rule for 128-bit bitmasks macros Yury Norov
2024-08-04 23:28 ` Anshuman Khandual
2024-08-05 16:21   ` Yury Norov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®