* [PATCH v2 0/2] linux/types.h: Tidy __bitwise, add __CHECKER__ hints
@ 2022-03-15 15:30 Bjorn Helgaas
2022-03-15 15:30 ` [PATCH v2 1/2] linux/types.h: Remove unnecessary __bitwise__ Bjorn Helgaas
2022-03-15 15:30 ` [PATCH v2 2/2] Documentation/sparse: Add hints about __CHECKER__ Bjorn Helgaas
0 siblings, 2 replies; 6+ messages in thread
From: Bjorn Helgaas @ 2022-03-15 15:30 UTC (permalink / raw)
To: Andrew Morton, Jonathan Corbet
Cc: Nathan Chancellor, Nick Desaulniers, Michael S . Tsirkin, llvm,
linux-doc, linux-kernel, Bjorn Helgaas
From: Bjorn Helgaas <bhelgaas@google.com>
- Tidy up __bitwise__, which is unused except in the __bitwise definition
- Add hints about what __CHECKER__ means
Changes since v1:
- Also remove unnecessary __bitwise__ in tools/include/linux/types.h
(thanks to Andrew for pointing this out)
v1: https://lore.kernel.org/all/20220310220927.245704-1-helgaas@kernel.org/
Bjorn Helgaas (2):
linux/types.h: Remove unnecessary __bitwise__
Documentation/sparse: Add hints about __CHECKER__
Documentation/dev-tools/sparse.rst | 2 ++
include/linux/compiler_types.h | 1 +
include/uapi/linux/types.h | 6 +++---
tools/include/linux/types.h | 5 ++---
4 files changed, 8 insertions(+), 6 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 1/2] linux/types.h: Remove unnecessary __bitwise__
2022-03-15 15:30 [PATCH v2 0/2] linux/types.h: Tidy __bitwise, add __CHECKER__ hints Bjorn Helgaas
@ 2022-03-15 15:30 ` Bjorn Helgaas
2022-03-15 17:03 ` Michael S. Tsirkin
2022-05-25 6:51 ` Jiri Slaby
2022-03-15 15:30 ` [PATCH v2 2/2] Documentation/sparse: Add hints about __CHECKER__ Bjorn Helgaas
1 sibling, 2 replies; 6+ messages in thread
From: Bjorn Helgaas @ 2022-03-15 15:30 UTC (permalink / raw)
To: Andrew Morton, Jonathan Corbet
Cc: Nathan Chancellor, Nick Desaulniers, Michael S . Tsirkin, llvm,
linux-doc, linux-kernel, Bjorn Helgaas
From: Bjorn Helgaas <bhelgaas@google.com>
There are no users of "__bitwise__" except the definition of "__bitwise".
Remove __bitwise__ and define __bitwise directly.
This is a follow-up to 05de97003c77 ("linux/types.h: enable endian checks
for all sparse builds").
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
---
include/uapi/linux/types.h | 5 ++---
tools/include/linux/types.h | 5 ++---
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/include/uapi/linux/types.h b/include/uapi/linux/types.h
index f6d2f83cbe29..71696f424ac8 100644
--- a/include/uapi/linux/types.h
+++ b/include/uapi/linux/types.h
@@ -20,11 +20,10 @@
*/
#ifdef __CHECKER__
-#define __bitwise__ __attribute__((bitwise))
+#define __bitwise __attribute__((bitwise))
#else
-#define __bitwise__
+#define __bitwise
#endif
-#define __bitwise __bitwise__
typedef __u16 __bitwise __le16;
typedef __u16 __bitwise __be16;
diff --git a/tools/include/linux/types.h b/tools/include/linux/types.h
index 6e14a533ab4e..6c18c54e7d7f 100644
--- a/tools/include/linux/types.h
+++ b/tools/include/linux/types.h
@@ -43,11 +43,10 @@ typedef __u8 u8;
typedef __s8 s8;
#ifdef __CHECKER__
-#define __bitwise__ __attribute__((bitwise))
+#define __bitwise __attribute__((bitwise))
#else
-#define __bitwise__
+#define __bitwise
#endif
-#define __bitwise __bitwise__
#define __force
#define __user
--
2.25.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 2/2] Documentation/sparse: Add hints about __CHECKER__
2022-03-15 15:30 [PATCH v2 0/2] linux/types.h: Tidy __bitwise, add __CHECKER__ hints Bjorn Helgaas
2022-03-15 15:30 ` [PATCH v2 1/2] linux/types.h: Remove unnecessary __bitwise__ Bjorn Helgaas
@ 2022-03-15 15:30 ` Bjorn Helgaas
1 sibling, 0 replies; 6+ messages in thread
From: Bjorn Helgaas @ 2022-03-15 15:30 UTC (permalink / raw)
To: Andrew Morton, Jonathan Corbet
Cc: Nathan Chancellor, Nick Desaulniers, Michael S . Tsirkin, llvm,
linux-doc, linux-kernel, Bjorn Helgaas
From: Bjorn Helgaas <bhelgaas@google.com>
Several attributes depend on __CHECKER__, but previously there was no clue
in the tree about when __CHECKER__ might be defined. Add hints at the most
common places (__kernel, __user, __iomem, __bitwise) and in the sparse
documentation.
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
---
Documentation/dev-tools/sparse.rst | 2 ++
include/linux/compiler_types.h | 1 +
include/uapi/linux/types.h | 1 +
3 files changed, 4 insertions(+)
diff --git a/Documentation/dev-tools/sparse.rst b/Documentation/dev-tools/sparse.rst
index 02102be7ff49..dc791c8d84d1 100644
--- a/Documentation/dev-tools/sparse.rst
+++ b/Documentation/dev-tools/sparse.rst
@@ -100,3 +100,5 @@ have already built it.
The optional make variable CF can be used to pass arguments to sparse. The
build system passes -Wbitwise to sparse automatically.
+
+Note that sparse defines the __CHECKER__ preprocessor symbol.
diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h
index 3c1795fdb568..4b3915ce38a4 100644
--- a/include/linux/compiler_types.h
+++ b/include/linux/compiler_types.h
@@ -4,6 +4,7 @@
#ifndef __ASSEMBLY__
+/* sparse defines __CHECKER__; see Documentation/dev-tools/sparse.rst */
#ifdef __CHECKER__
/* address spaces */
# define __kernel __attribute__((address_space(0)))
diff --git a/include/uapi/linux/types.h b/include/uapi/linux/types.h
index 71696f424ac8..c4dc597f3dcf 100644
--- a/include/uapi/linux/types.h
+++ b/include/uapi/linux/types.h
@@ -19,6 +19,7 @@
* any application/library that wants linux/types.h.
*/
+/* sparse defines __CHECKER__; see Documentation/dev-tools/sparse.rst */
#ifdef __CHECKER__
#define __bitwise __attribute__((bitwise))
#else
--
2.25.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] linux/types.h: Remove unnecessary __bitwise__
2022-03-15 15:30 ` [PATCH v2 1/2] linux/types.h: Remove unnecessary __bitwise__ Bjorn Helgaas
@ 2022-03-15 17:03 ` Michael S. Tsirkin
2022-05-25 6:51 ` Jiri Slaby
1 sibling, 0 replies; 6+ messages in thread
From: Michael S. Tsirkin @ 2022-03-15 17:03 UTC (permalink / raw)
To: Bjorn Helgaas
Cc: Andrew Morton, Jonathan Corbet, Nathan Chancellor,
Nick Desaulniers, llvm, linux-doc, linux-kernel, Bjorn Helgaas
On Tue, Mar 15, 2022 at 10:30:47AM -0500, Bjorn Helgaas wrote:
> From: Bjorn Helgaas <bhelgaas@google.com>
>
> There are no users of "__bitwise__" except the definition of "__bitwise".
> Remove __bitwise__ and define __bitwise directly.
>
> This is a follow-up to 05de97003c77 ("linux/types.h: enable endian checks
> for all sparse builds").
>
> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
> Cc: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
> ---
> include/uapi/linux/types.h | 5 ++---
> tools/include/linux/types.h | 5 ++---
> 2 files changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/include/uapi/linux/types.h b/include/uapi/linux/types.h
> index f6d2f83cbe29..71696f424ac8 100644
> --- a/include/uapi/linux/types.h
> +++ b/include/uapi/linux/types.h
> @@ -20,11 +20,10 @@
> */
>
> #ifdef __CHECKER__
> -#define __bitwise__ __attribute__((bitwise))
> +#define __bitwise __attribute__((bitwise))
> #else
> -#define __bitwise__
> +#define __bitwise
> #endif
> -#define __bitwise __bitwise__
>
> typedef __u16 __bitwise __le16;
> typedef __u16 __bitwise __be16;
> diff --git a/tools/include/linux/types.h b/tools/include/linux/types.h
> index 6e14a533ab4e..6c18c54e7d7f 100644
> --- a/tools/include/linux/types.h
> +++ b/tools/include/linux/types.h
> @@ -43,11 +43,10 @@ typedef __u8 u8;
> typedef __s8 s8;
>
> #ifdef __CHECKER__
> -#define __bitwise__ __attribute__((bitwise))
> +#define __bitwise __attribute__((bitwise))
> #else
> -#define __bitwise__
> +#define __bitwise
> #endif
> -#define __bitwise __bitwise__
>
> #define __force
> #define __user
> --
> 2.25.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] linux/types.h: Remove unnecessary __bitwise__
2022-03-15 15:30 ` [PATCH v2 1/2] linux/types.h: Remove unnecessary __bitwise__ Bjorn Helgaas
2022-03-15 17:03 ` Michael S. Tsirkin
@ 2022-05-25 6:51 ` Jiri Slaby
2022-05-25 14:34 ` Bjorn Helgaas
1 sibling, 1 reply; 6+ messages in thread
From: Jiri Slaby @ 2022-05-25 6:51 UTC (permalink / raw)
To: Bjorn Helgaas, Andrew Morton, Jonathan Corbet
Cc: Nathan Chancellor, Nick Desaulniers, Michael S . Tsirkin, llvm,
linux-doc, linux-kernel, Bjorn Helgaas
On 15. 03. 22, 16:30, Bjorn Helgaas wrote:
> From: Bjorn Helgaas <bhelgaas@google.com>
>
> There are no users of "__bitwise__" except the definition of "__bitwise".
> Remove __bitwise__ and define __bitwise directly.
>
> This is a follow-up to 05de97003c77 ("linux/types.h: enable endian checks
> for all sparse builds").
>
> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
> Cc: Michael S. Tsirkin <mst@redhat.com>
> ---
> include/uapi/linux/types.h | 5 ++---
> tools/include/linux/types.h | 5 ++---
> 2 files changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/include/uapi/linux/types.h b/include/uapi/linux/types.h
> index f6d2f83cbe29..71696f424ac8 100644
> --- a/include/uapi/linux/types.h
> +++ b/include/uapi/linux/types.h
> @@ -20,11 +20,10 @@
> */
>
> #ifdef __CHECKER__
> -#define __bitwise__ __attribute__((bitwise))
> +#define __bitwise __attribute__((bitwise))
> #else
> -#define __bitwise__
> +#define __bitwise
> #endif
> -#define __bitwise __bitwise__
Hi,
this broke userspace, like open-iscsi:
> [ 34s] In file included from session_info.h:9,
> [ 34s] from iscsi_util.c:38:
> [ 34s] ../include/iscsi_proto.h:66:30: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'itt_t'
> [ 34s] 66 | typedef uint32_t __bitwise__ itt_t;
> [ 34s] | ^~~~~
It looks like we need __bitwise__ back.
thanks,
--
js
suse labs
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] linux/types.h: Remove unnecessary __bitwise__
2022-05-25 6:51 ` Jiri Slaby
@ 2022-05-25 14:34 ` Bjorn Helgaas
0 siblings, 0 replies; 6+ messages in thread
From: Bjorn Helgaas @ 2022-05-25 14:34 UTC (permalink / raw)
To: Jiri Slaby
Cc: Andrew Morton, Jonathan Corbet, Nathan Chancellor,
Nick Desaulniers, Michael S . Tsirkin, llvm, linux-doc,
linux-kernel, Bjorn Helgaas
On Wed, May 25, 2022 at 08:51:29AM +0200, Jiri Slaby wrote:
> On 15. 03. 22, 16:30, Bjorn Helgaas wrote:
> > From: Bjorn Helgaas <bhelgaas@google.com>
> >
> > There are no users of "__bitwise__" except the definition of "__bitwise".
> > Remove __bitwise__ and define __bitwise directly.
> >
> > This is a follow-up to 05de97003c77 ("linux/types.h: enable endian checks
> > for all sparse builds").
> >
> > Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
> > Cc: Michael S. Tsirkin <mst@redhat.com>
> > ---
> > include/uapi/linux/types.h | 5 ++---
> > tools/include/linux/types.h | 5 ++---
> > 2 files changed, 4 insertions(+), 6 deletions(-)
> >
> > diff --git a/include/uapi/linux/types.h b/include/uapi/linux/types.h
> > index f6d2f83cbe29..71696f424ac8 100644
> > --- a/include/uapi/linux/types.h
> > +++ b/include/uapi/linux/types.h
> > @@ -20,11 +20,10 @@
> > */
> > #ifdef __CHECKER__
> > -#define __bitwise__ __attribute__((bitwise))
> > +#define __bitwise __attribute__((bitwise))
> > #else
> > -#define __bitwise__
> > +#define __bitwise
> > #endif
> > -#define __bitwise __bitwise__
>
> Hi,
>
> this broke userspace, like open-iscsi:
> > [ 34s] In file included from session_info.h:9,
> > [ 34s] from iscsi_util.c:38:
> > [ 34s] ../include/iscsi_proto.h:66:30: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'itt_t'
> > [ 34s] 66 | typedef uint32_t __bitwise__ itt_t;
> > [ 34s] | ^~~~~
>
> It looks like we need __bitwise__ back.
Crap, sorry. I don't know why I thought it would be safe to remove
something from uapi. I'll send a revert.
Bjorn
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-05-25 14:34 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-15 15:30 [PATCH v2 0/2] linux/types.h: Tidy __bitwise, add __CHECKER__ hints Bjorn Helgaas
2022-03-15 15:30 ` [PATCH v2 1/2] linux/types.h: Remove unnecessary __bitwise__ Bjorn Helgaas
2022-03-15 17:03 ` Michael S. Tsirkin
2022-05-25 6:51 ` Jiri Slaby
2022-05-25 14:34 ` Bjorn Helgaas
2022-03-15 15:30 ` [PATCH v2 2/2] Documentation/sparse: Add hints about __CHECKER__ Bjorn Helgaas
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.