diff mbox series

[6/9] vdso: Split linux/array_size.h

Message ID 20240903151437.1002990-7-vincenzo.frascino@arm.com (mailing list archive)
State New
Headers show
Series vdso: Use only headers from the vdso/ namespace | expand

Commit Message

Vincenzo Frascino Sept. 3, 2024, 3:14 p.m. UTC
The VDSO implementation includes headers from outside of the
vdso/ namespace.

Split linux/array_size.h to make sure that the generic library
uses only the allowed namespace.

Cc: Andy Lutomirski <luto@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
---
 include/linux/array_size.h |  8 +-------
 include/vdso/array_size.h  | 13 +++++++++++++
 2 files changed, 14 insertions(+), 7 deletions(-)
 create mode 100644 include/vdso/array_size.h

Comments

Christophe Leroy Sept. 4, 2024, 5:18 p.m. UTC | #1
Le 03/09/2024 à 17:14, Vincenzo Frascino a écrit :
> The VDSO implementation includes headers from outside of the
> vdso/ namespace.
> 
> Split linux/array_size.h to make sure that the generic library
> uses only the allowed namespace.

There is only one place using ARRAY_SIZE(x), can be open coded as 
sizeof(x)/sizeof(*x) instead.

Christophe

> 
> Cc: Andy Lutomirski <luto@kernel.org>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Jason A. Donenfeld <Jason@zx2c4.com>
> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
> ---
>   include/linux/array_size.h |  8 +-------
>   include/vdso/array_size.h  | 13 +++++++++++++
>   2 files changed, 14 insertions(+), 7 deletions(-)
>   create mode 100644 include/vdso/array_size.h
> 
> diff --git a/include/linux/array_size.h b/include/linux/array_size.h
> index 06d7d83196ca..ca9e63b419c4 100644
> --- a/include/linux/array_size.h
> +++ b/include/linux/array_size.h
> @@ -2,12 +2,6 @@
>   #ifndef _LINUX_ARRAY_SIZE_H
>   #define _LINUX_ARRAY_SIZE_H
>   
> -#include <linux/compiler.h>
> -
> -/**
> - * ARRAY_SIZE - get the number of elements in array @arr
> - * @arr: array to be sized
> - */
> -#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
> +#include <vdso/array_size.h>
>   
>   #endif  /* _LINUX_ARRAY_SIZE_H */
> diff --git a/include/vdso/array_size.h b/include/vdso/array_size.h
> new file mode 100644
> index 000000000000..4079f7a5f86e
> --- /dev/null
> +++ b/include/vdso/array_size.h
> @@ -0,0 +1,13 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +#ifndef _VDSO_ARRAY_SIZE_H
> +#define _VDSO_ARRAY_SIZE_H
> +
> +#include <linux/compiler.h>
> +
> +/**
> + * ARRAY_SIZE - get the number of elements in array @arr
> + * @arr: array to be sized
> + */
> +#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
> +
> +#endif  /* _VDSO_ARRAY_SIZE_H */
Vincenzo Frascino Sept. 6, 2024, 11:42 a.m. UTC | #2
On 04/09/2024 18:18, Christophe Leroy wrote:
> 
> 
> Le 03/09/2024 à 17:14, Vincenzo Frascino a écrit :
>> The VDSO implementation includes headers from outside of the
>> vdso/ namespace.
>>
>> Split linux/array_size.h to make sure that the generic library
>> uses only the allowed namespace.
> 
> There is only one place using ARRAY_SIZE(x), can be open coded as
> sizeof(x)/sizeof(*x) instead.
> 

Agreed, as per previous comment on MIN()/MAX(). I will refactor my code accordingly.

> Christophe
> 
>>
>> Cc: Andy Lutomirski <luto@kernel.org>
>> Cc: Thomas Gleixner <tglx@linutronix.de>
>> Cc: Jason A. Donenfeld <Jason@zx2c4.com>
>> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
>> ---
>>   include/linux/array_size.h |  8 +-------
>>   include/vdso/array_size.h  | 13 +++++++++++++
>>   2 files changed, 14 insertions(+), 7 deletions(-)
>>   create mode 100644 include/vdso/array_size.h
>>
>> diff --git a/include/linux/array_size.h b/include/linux/array_size.h
>> index 06d7d83196ca..ca9e63b419c4 100644
>> --- a/include/linux/array_size.h
>> +++ b/include/linux/array_size.h
>> @@ -2,12 +2,6 @@
>>   #ifndef _LINUX_ARRAY_SIZE_H
>>   #define _LINUX_ARRAY_SIZE_H
>>   -#include <linux/compiler.h>
>> -
>> -/**
>> - * ARRAY_SIZE - get the number of elements in array @arr
>> - * @arr: array to be sized
>> - */
>> -#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
>> +#include <vdso/array_size.h>
>>     #endif  /* _LINUX_ARRAY_SIZE_H */
>> diff --git a/include/vdso/array_size.h b/include/vdso/array_size.h
>> new file mode 100644
>> index 000000000000..4079f7a5f86e
>> --- /dev/null
>> +++ b/include/vdso/array_size.h
>> @@ -0,0 +1,13 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _VDSO_ARRAY_SIZE_H
>> +#define _VDSO_ARRAY_SIZE_H
>> +
>> +#include <linux/compiler.h>
>> +
>> +/**
>> + * ARRAY_SIZE - get the number of elements in array @arr
>> + * @arr: array to be sized
>> + */
>> +#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
>> +
>> +#endif  /* _VDSO_ARRAY_SIZE_H */
diff mbox series

Patch

diff --git a/include/linux/array_size.h b/include/linux/array_size.h
index 06d7d83196ca..ca9e63b419c4 100644
--- a/include/linux/array_size.h
+++ b/include/linux/array_size.h
@@ -2,12 +2,6 @@ 
 #ifndef _LINUX_ARRAY_SIZE_H
 #define _LINUX_ARRAY_SIZE_H
 
-#include <linux/compiler.h>
-
-/**
- * ARRAY_SIZE - get the number of elements in array @arr
- * @arr: array to be sized
- */
-#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
+#include <vdso/array_size.h>
 
 #endif  /* _LINUX_ARRAY_SIZE_H */
diff --git a/include/vdso/array_size.h b/include/vdso/array_size.h
new file mode 100644
index 000000000000..4079f7a5f86e
--- /dev/null
+++ b/include/vdso/array_size.h
@@ -0,0 +1,13 @@ 
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _VDSO_ARRAY_SIZE_H
+#define _VDSO_ARRAY_SIZE_H
+
+#include <linux/compiler.h>
+
+/**
+ * ARRAY_SIZE - get the number of elements in array @arr
+ * @arr: array to be sized
+ */
+#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
+
+#endif  /* _VDSO_ARRAY_SIZE_H */