[PATCH v2 1/3] bits: split the definition of the asm and non-asm GENMASK*()

2025-06-08 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol In an upcoming change, the non-asm GENMASK*() will all be unified to depend on GENMASK_TYPE() which indirectly depend on sizeof(), something not available in asm. Instead of adding further complexity to GENMASK_TYPE() to make it work for both asm and non asm, just split the

[PATCH v2 3/3] test_bits: add tests for __GENMASK() and __GENMASK_ULL()

2025-06-08 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol The definitions of GENMASK() and GENMASK_ULL() do not depend any more on __GENMASK() and __GENMASK_ULL(). Duplicate the existing unit tests so that __GENMASK{,ULL}() are still covered. Because __GENMASK() and __GENMASK_ULL() do use GENMASK_INPUT_CHECK(), drop the TEST_GENMA

[PATCH v2 2/3] bits: unify the non-asm GENMASK*()

2025-06-08 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol The newly introduced GENMASK_TYPE() macro can also be used to generate the pre-existing non-asm GENMASK*() variants. Apply GENMASK_TYPE() to GENMASK(), GENMASK_ULL() and GENMASK_U128(). Signed-off-by: Vincent Mailhol --- Changelog: v1 -> v2: - No changes --- incl

[PATCH v2 0/3] bits: Split asm and non-asm GENMASK*() and unify definitions

2025-06-08 Thread Vincent Mailhol via B4 Relay
This is a subset of below series: bits: Fixed-type GENMASK_U*() and BIT_U*() Link: https://lore.kernel.org/r/20250308-fixed-type-genmasks-v6-0-f59315e73...@wanadoo.fr Yury suggested to split the above series in two steps: #1 Introduce the new fixed type GENMASK_U*() (already merged upstre

[PATCH v8 1/6] bits: add comments and newlines to #if, #else and #endif directives

2025-03-25 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol This is a preparation for the upcoming GENMASK_U*() and BIT_U*() changes. After introducing those new macros, there will be a lot of scrolling between the #if, #else and #endif. Add a comment to the #else and #endif preprocessor macros to help keep track of which context we

[PATCH v8 6/6] test_bits: add tests for BIT_U*()

2025-03-25 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol Add some additional tests in lib/tests/test_bits.c to cover the expected results of the fixed type BIT_U*() macros. Signed-off-by: Vincent Mailhol Reviewed-by: Lucas De Marchi --- Changelog: v7 -> v8: - In commit db6fe4d61ece ("lib: Move KUnit tests into tests/

[PATCH v7 3/5] drm/i915: Convert REG_GENMASK*() to fixed-width GENMASK_U*()

2025-03-25 Thread Vincent Mailhol via B4 Relay
From: Lucas De Marchi Now that include/linux/bits.h implements fixed-width GENMASK_U*(), use them to implement the i915/xe specific macros. Converting each driver to use the generic macros are left for later, when/if other driver-specific macros are also generalized. Signed-off-by: Lucas De Marc

[PATCH v8 2/6] bits: introduce fixed-type GENMASK_U*()

2025-03-25 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol Add GENMASK_TYPE() which generalizes __GENMASK() to support different types, and implement fixed-types versions of GENMASK() based on it. The fixed-type version allows more strict checks to the min/max values accepted, which is useful for defining registers like implemented

[PATCH v8 3/6] bits: introduce fixed-type BIT_U*()

2025-03-25 Thread Vincent Mailhol via B4 Relay
From: Lucas De Marchi Implement fixed-type BIT_U*() to help drivers add stricter checks, like it was done for GENMASK_U*(). Signed-off-by: Lucas De Marchi Acked-by: Jani Nikula Co-developed-by: Vincent Mailhol Signed-off-by: Vincent Mailhol --- Changelog: v7 -> v8: - s/shift-count-ov

[PATCH v8 0/6] bits: Fixed-type GENMASK_U*() and BIT_U*()

2025-03-25 Thread Vincent Mailhol via B4 Relay
Introduce some fixed width variant of the GENMASK() and the BIT() macros in bits.h. For example: GENMASK_U16(16, 0) will raise a build bug. This series is a continuation of: https://lore.kernel.org/intel-xe/20240208074521.577076-1-lucas.demar...@intel.com from Lucas De Marchi. Above serie

[PATCH v8 5/6] test_bits: add tests for GENMASK_U*()

2025-03-25 Thread Vincent Mailhol via B4 Relay
From: Lucas De Marchi Add some additional tests in lib/tests/test_bits.c to cover the expected/non-expected values of the fixed-type GENMASK_U*() macros. Also check that the result value matches the expected type. Since those are known at build time, use static_assert() instead of normal kunit t

[PATCH v8 4/6] drm/i915: Convert REG_GENMASK*() to fixed-width GENMASK_U*()

2025-03-25 Thread Vincent Mailhol via B4 Relay
From: Lucas De Marchi Now that include/linux/bits.h implements fixed-width GENMASK_U*(), use them to implement the i915/xe specific macros. Converting each driver to use the generic macros are left for later, when/if other driver-specific macros are also generalized. Signed-off-by: Lucas De Marc

[PATCH 2/3] bits: unify the non-asm GENMASK*()

2025-03-22 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol The newly introduced GENMASK_TYPE() macro can also be used to generate the pre-existing non-asm GENMASK*() variants. Apply GENMASK_TYPE() to GENMASK(), GENMASK_ULL() and GENMASK_U128(). Signed-off-by: Vincent Mailhol --- include/linux/bits.h | 26

[PATCH 3/3] test_bits: add tests for __GENMASK() and __GENMASK_ULL()

2025-03-22 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol The definitions of GENMASK() and GENMASK_ULL() do not depend any more on __GENMASK() and __GENMASK_ULL(). Duplicate the existing unit tests so that __GENMASK{,ULL}() are still covered. Because __GENMASK() and __GENMASK_ULL() do use GENMASK_INPUT_CHECK(), drop the TEST_GENMA

[PATCH 1/3] bits: split the definition of the asm and non-asm GENMASK*()

2025-03-22 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol In an upcoming change, the non-asm GENMASK*() will all be unified to depend on GENMASK_TYPE() which indirectly depend on sizeof(), something not available in asm. Instead of adding further complexity to GENMASK_TYPE() to make it work for both asm and non asm, just split the

[PATCH 0/3] bits: Split asm and non-asm GENMASK*() and unify definitions

2025-03-22 Thread Vincent Mailhol via B4 Relay
This is a subset of below series: bits: Fixed-type GENMASK_U*() and BIT_U*() Link: https://lore.kernel.org/r/20250308-fixed-type-genmasks-v6-0-f59315e73...@wanadoo.fr Yury suggested to split the above series in two steps: #1 Introduce the new fixed type GENMASK_U*() #2 Consolidate the e

[PATCH v7 2/5] bits: introduce fixed-type BIT_U*()

2025-03-22 Thread Vincent Mailhol via B4 Relay
From: Lucas De Marchi Implement fixed-type BIT_U*() to help drivers add stricter checks, like it was done for GENMASK_U*(). Signed-off-by: Lucas De Marchi Acked-by: Jani Nikula Co-developed-by: Vincent Mailhol Signed-off-by: Vincent Mailhol --- Changelog: v6 -> v7: v5 -> v6: - No c

[PATCH v7 4/5] test_bits: add tests for GENMASK_U*()

2025-03-22 Thread Vincent Mailhol via B4 Relay
From: Lucas De Marchi Add some additional tests in lib/test_bits.c to cover the expected/non-expected values of the fixed-type GENMASK_U*() macros. Also check that the result value matches the expected type. Since those are known at build time, use static_assert() instead of normal kunit tests.

[PATCH v7 1/5] bits: introduce fixed-type GENMASK_U*()

2025-03-22 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol Add GENMASK_TYPE() which generalizes __GENMASK() to support different types, and implement fixed-types versions of GENMASK() based on it. The fixed-type version allows more strict checks to the min/max values accepted, which is useful for defining registers like implemented

[PATCH v7 5/5] test_bits: add tests for BIT_U*()

2025-03-22 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol Add some additional tests in lib/test_bits.c to cover the expected results of the fixed type BIT_U*() macros. Signed-off-by: Vincent Mailhol Reviewed-by: Lucas De Marchi --- Changelog: v6 -> v7: - Add Lucas's Reviewed-by tag. v5 -> v6: - No changes. v4

[PATCH v7 0/5] bits: Fixed-type GENMASK_U*() and BIT_U*()

2025-03-22 Thread Vincent Mailhol via B4 Relay
Introduce some fixed width variant of the GENMASK() and the BIT() macros in bits.h. Note that the main goal is not to get the correct type, but rather to enforce more checks at compile time. For example: GENMASK_U16(16, 0) will raise a build bug. This series is a continuation of: https://l

[PATCH v5 1/7] bits: split the definition of the asm and non-asm GENMASK()

2025-03-11 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol In an upcoming change, GENMASK() and its friends will indirectly depend on sizeof() which is not available in asm. Instead of adding further complexity to __GENMASK() to make it work for both asm and non asm, just split the definition of the two variants. Signed-off-by: Vi

[PATCH v5 7/7] test_bits: add tests for BIT_U*()

2025-03-08 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol Add some additional tests in lib/test_bits.c to cover the expected results of the fixed type BIT_U*() macros. Signed-off-by: Vincent Mailhol --- Changelog v4 -> v5: - BIT_U8()/BIT_U16() are now back to u8/u16. v3 -> v4: - New patch. --- lib/test_bits.c | 1

[PATCH v6 1/7] bits: split the definition of the asm and non-asm GENMASK()

2025-03-07 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol In an upcoming change, GENMASK() and its friends will indirectly depend on sizeof() which is not available in asm. Instead of adding further complexity to __GENMASK() to make it work for both asm and non asm, just split the definition of the two variants. Signed-off-by: Vi

[PATCH v6 7/7] test_bits: add tests for BIT_U*()

2025-03-07 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol Add some additional tests in lib/test_bits.c to cover the expected results of the fixed type BIT_U*() macros. Signed-off-by: Vincent Mailhol --- Changelog: v5 -> v6: - No changes. v4 -> v5: - BIT_U8()/BIT_U16() are now back to u8/u16. v3 -> v4: - Ne

[PATCH v6 3/7] bits: introduce fixed-type BIT_U*()

2025-03-07 Thread Vincent Mailhol via B4 Relay
From: Lucas De Marchi Implement fixed-type BIT_U*() to help drivers add stricter checks, like it was done for GENMASK_U*(). Signed-off-by: Lucas De Marchi Acked-by: Jani Nikula Co-developed-by: Vincent Mailhol Signed-off-by: Vincent Mailhol --- Changelog: v5 -> v6: - No changes. v

[PATCH v6 4/7] drm/i915: Convert REG_GENMASK*() to fixed-width GENMASK_U*()

2025-03-07 Thread Vincent Mailhol via B4 Relay
From: Lucas De Marchi Now that include/linux/bits.h implements fixed-width GENMASK_U*(), use them to implement the i915/xe specific macros. Converting each driver to use the generic macros are left for later, when/if other driver-specific macros are also generalized. Signed-off-by: Lucas De Marc

[PATCH v6 6/7] test_bits: add tests for GENMASK_U*()

2025-03-07 Thread Vincent Mailhol via B4 Relay
From: Lucas De Marchi Add some additional tests in lib/test_bits.c to cover the expected/non-expected values of the fixed-type GENMASK_U*() macros. Also check that the result value matches the expected type. Since those are known at build time, use static_assert() instead of normal kunit tests.

[PATCH v6 0/7] bits: Fixed-type GENMASK_U*() and BIT_U*()

2025-03-07 Thread Vincent Mailhol via B4 Relay
Introduce some fixed width variant of the GENMASK() and the BIT() macros in bits.h. Note that the main goal is not to get the correct type, but rather to enforce more checks at compile time. For example: GENMASK_U16(16, 0) will raise a build bug. This series is a continuation of: https://l

[PATCH v6 2/7] bits: introduce fixed-type genmasks

2025-03-07 Thread Vincent Mailhol via B4 Relay
From: Yury Norov Add GENMASK_TYPE() which generalizes __GENMASK() to support different types, and implement fixed-types versions of GENMASK() based on it. The fixed-type version allows more strict checks to the min/max values accepted, which is useful for defining registers like implemented by i9

[PATCH v6 5/7] test_bits: add tests for __GENMASK() and __GENMASK_ULL()

2025-03-07 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol The definitions of GENMASK() and GENMASK_ULL() do not depend any more on __GENMASK() and __GENMASK_ULL(). Duplicate the existing unit tests so that __GENMASK{,ULL}() is still covered. It would be good to have a small assembly test case for GENMASK*() in case somebody decide

[PATCH v5 0/7] bits: Fixed-type GENMASK()/BIT()

2025-03-06 Thread Vincent Mailhol via B4 Relay
Introduce some fixed width variant of the GENMASK() and the BIT() macros in bits.h. Note that the main goal is not to get the correct type, but rather to enforce more checks at compile time. For example: GENMASK_U16(16, 0) will raise a build bug. This series is a continuation of: https://l

[PATCH v5 6/7] test_bits: add tests for GENMASK_U*()

2025-03-06 Thread Vincent Mailhol via B4 Relay
From: Lucas De Marchi Add some additional tests in lib/test_bits.c to cover the expected/non-expected values of the fixed-type GENMASK_U*() macros. Also check that the result value matches the expected type. Since those are known at build time, use static_assert() instead of normal kunit tests.

[PATCH v5 4/7] drm/i915: Convert REG_GENMASK*() to fixed-width GENMASK_U*()

2025-03-06 Thread Vincent Mailhol via B4 Relay
From: Lucas De Marchi Now that include/linux/bits.h implements fixed-width GENMASK_U*(), use them to implement the i915/xe specific macros. Converting each driver to use the generic macros are left for later, when/if other driver-specific macros are also generalized. Signed-off-by: Lucas De Marc

[PATCH v5 2/7] bits: introduce fixed-type genmasks

2025-03-06 Thread Vincent Mailhol via B4 Relay
From: Yury Norov Add GENMASK_TYPE() which generalizes __GENMASK() to support different types, and implement fixed-types versions of GENMASK() based on it. The fixed-type version allows more strict checks to the min/max values accepted, which is useful for defining registers like implemented by i9

[PATCH v5 5/7] test_bits: add tests for __GENMASK() and __GENMASK_ULL()

2025-03-06 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol The definitions of GENMASK() and GENMASK_ULL() do not depend any more on __GENMASK() and __GENMASK_ULL(). Duplicate the existing unit tests so that __GENMASK{,ULL}() is still covered. Signed-off-by: Vincent Mailhol --- lib/test_bits.c | 18 ++ 1 file chang

[PATCH v5 3/7] bits: introduce fixed-type BIT_U*()

2025-03-06 Thread Vincent Mailhol via B4 Relay
From: Lucas De Marchi Implement fixed-type BIT_U*() to help drivers add stricter checks, like was done for GENMASK_U*(). Signed-off-by: Lucas De Marchi Acked-by: Jani Nikula Co-developed-by: Vincent Mailhol Signed-off-by: Vincent Mailhol --- Changelog: v4 -> v5: - Rename GENMASK_t()

[PATCH v4 4/8] bits: introduce fixed-type BIT

2025-03-05 Thread Vincent Mailhol via B4 Relay
From: Lucas De Marchi Implement fixed-type BIT to help drivers add stricter checks, like was done for GENMASK(). Signed-off-by: Lucas De Marchi Acked-by: Jani Nikula Signed-off-by: Vincent Mailhol --- Changelog: v3 -> v4: - Use const_true() to simplify BIT_INPUT_CHECK(). - Make B

[PATCH v4 0/8] bits: Fixed-type GENMASK()/BIT()

2025-03-05 Thread Vincent Mailhol via B4 Relay
Introduce some fixed width variant of the GENMASK() and the BIT() macros in bits.h. Note that the main goal is not to get the correct type, but rather to enforce more checks at compile time. For example: GENMASK_U16(16, 0) will raise a build bug. This series is a continuation of: https://l

[PATCH v4 5/8] drm/i915: Convert REG_GENMASK* to fixed-width GENMASK_*

2025-03-05 Thread Vincent Mailhol via B4 Relay
From: Lucas De Marchi Now that include/linux/bits.h implements fixed-width GENMASK_*, use them to implement the i915/xe specific macros. Converting each driver to use the generic macros are left for later, when/if other driver-specific macros are also generalized. Signed-off-by: Lucas De Marchi

[PATCH v4 6/8] test_bits: add tests for __GENMASK() and __GENMASK_ULL()

2025-03-05 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol The definitions of GENMASK() and GENMASK_ULL() do not depend any more on __GENMASK() and __GENMASK_ULL(). Duplicate the existing unit tests so that __GENMASK{,ULL}() is still covered. Signed-off-by: Vincent Mailhol --- lib/test_bits.c | 18 ++ 1 file chang

[PATCH v4 7/8] test_bits: add tests for fixed-type genmasks

2025-03-05 Thread Vincent Mailhol via B4 Relay
From: Lucas De Marchi Add some additional tests in lib/test_bits.c to cover the expected/non-expected values of the fixed-type genmasks. Also check that the result value matches the expected type. Since those are known at build time, use static_assert() instead of normal kunit tests. Signed-off

[PATCH v4 3/8] bits: introduce fixed-type genmasks

2025-03-05 Thread Vincent Mailhol via B4 Relay
From: Yury Norov Add __GENMASK_t() which generalizes __GENMASK() to support different types, and implement fixed-types versions of GENMASK() based on it. The fixed-type version allows more strict checks to the min/max values accepted, which is useful for defining registers like implemented by i91

[PATCH v4 8/8] test_bits: add tests for fixed-type BIT

2025-03-05 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol Add some additional tests in lib/test_bits.c to cover the expected results of the BIT_U*() macros. Signed-off-by: Vincent Mailhol --- lib/test_bits.c | 10 ++ 1 file changed, 10 insertions(+) diff --git a/lib/test_bits.c b/lib/test_bits.c index c3a40995a25773222

[PATCH v4 2/8] bits: split the definition of the asm and non-asm GENMASK()

2025-03-05 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol In an upcoming change, GENMASK() and its friends will indirectly depend on sizeof() which is not available in asm. Instead of adding further complexity to __GENMASK() to make it work for both asm and non asm, just split the definition of the two variants. Signed-off-by: Vi

[PATCH v4 1/8] bits: fix typo 'unsigned __init128' -> 'unsigned __int128'

2025-03-05 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol "int" was misspelled as "init" in GENMASK_U128() comments. Fix the typo. Signed-off-by: Vincent Mailhol --- include/linux/bits.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/bits.h b/include/linux/bits.h index 61a75d3f294bfa96267383b5

[PATCH 05/10] minmax: simplify __clamp_once() by using is_const_false()

2024-12-02 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol In __clamp_once(), __builtin_choose_expr(__is_constexpr((lo) > (hi)), (lo) <= (hi), true) is equivalent to: !is_const_false((lo) <= (hi)) Apply is_const_false() to simplify __clamp_once(). Signed-off-by: Vincent Mailhol --- include/linux/minmax.h | 3 +-- 1 file c

[PATCH 09/10] coresight: etm4x: replace __is_const_expr() by is_const()

2024-12-02 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol is_const() is a one to one replacement of __is_constexpr(). Do the replacement so that __is_constexpr() can be removed. Refer to [1] for an explaination of why __builtin_constant_p() can not be used as a replacement here. [1] commit 4d45bc82df66 ("coresight: etm4x: avoid b

[PATCH 00/10] compiler.h: refactor __is_constexpr() into is_const{,_true,_false}()

2024-12-02 Thread Vincent Mailhol via B4 Relay
This series is the spiritual successor of [1] which introduced const_true(). In [1], following a comment from David Laight, Linus came with a suggestion to simplify __is_constexpr() and its derived macros using a _Generic() selection. Because of the total change of scope, I am starting a new series

[PATCH 01/10] compiler.h: add statically_false()

2024-12-02 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol For completion, add statically_false() which is the equivalent of statically_true() except that it will return true only if the input is known to be false at compile time. The == operator is used instead of the ! negation to prevent a -Wint-in-bool-context compiler warning

[PATCH 02/10] compiler.h: add is_const() as a replacement of __is_constexpr()

2024-12-02 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol __is_constexpr(), while being one of the most glorious one liner hack ever witnessed by mankind, is overly complex. Following the adoption of C11 in the kernel, this macro can be simplified through the use of a _Generic() selection. First, split the macro in two: - __is_

[PATCH 04/10] linux/bits.h: simplify GENMASK_INPUT_CHECK() by using is_const_true()

2024-12-02 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol In GENMASK_INPUT_CHECK(), __builtin_choose_expr(__is_constexpr((l) > (h)), (l) > (h), 0) is equivalent to: is_const_true((l) > (h)) Apply is_const_true() to simplify GENMASK_INPUT_CHECK(). Signed-off-by: Vincent Mailhol --- This change passes the unit tests from CO

[PATCH 08/10] drm/i915/reg: replace __is_const_expr() by is_const_true() or is_const()

2024-12-02 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol Most of the use of __is_const_expr() in i915_reg_defs.h are just to test whether an expression is known to be true. Because those checks are all done in a BUILD_BUG_ON_ZERO(), replace those with is_const_true(). Replace the few other occurrences of __is_const_expr() with is

[PATCH 03/10] compiler.h: add is_const_true() and is_const_false()

2024-12-02 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol __builtin_constant_p() is known for not always being able to produce constant expression [1] which led to the introduction of __is_constexpr() [2]. Because of its dependency on __builtin_constant_p(), statically_true() suffers from the same issues. For example: void foo(

[PATCH 07/10] overflow: replace __is_constexpr() by is_const()

2024-12-02 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol is_const() is a one to one replacement of __is_constexpr(). Do the replacement so that __is_constexpr() can be removed. Signed-off-by: Vincent Mailhol --- include/linux/overflow.h | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/linux/ov

[PATCH 10/10] compiler.h: remove __is_constexpr()

2024-12-02 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol Now that all the users of __is_constexpr() have been migrated to is_const() or one of its friends, remove it. The homage to Martin Uecker's genius hack remains in the documentation of __is_const_zero(). Signed-off-by: Vincent Mailhol --- include/linux/compiler.h | 47 ---

[PATCH 06/10] fortify: replace __is_constexpr() by is_const() in strlen()

2024-12-02 Thread Vincent Mailhol via B4 Relay
From: Vincent Mailhol is_const() is a one to one replacement of __is_constexpr(). Do the replacement so that __is_constexpr() can be removed. Signed-off-by: Vincent Mailhol --- include/linux/fortify-string.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/linux/