| /* SPDX-License-Identifier: GPL-2.0-only */ | |
| /* | |
| * Landlock - Errata information | |
| * | |
| * Copyright © 2025 Microsoft Corporation | |
| */ | |
| #ifndef _SECURITY_LANDLOCK_ERRATA_H | |
| #define _SECURITY_LANDLOCK_ERRATA_H | |
| #include <linux/init.h> | |
| struct landlock_erratum { | |
| const int abi; | |
| const u8 number; | |
| }; | |
| /* clang-format off */ | |
| #define LANDLOCK_ERRATUM(NUMBER) \ | |
| { \ | |
| .abi = LANDLOCK_ERRATA_ABI, \ | |
| .number = NUMBER, \ | |
| }, | |
| /* clang-format on */ | |
| /* | |
| * Some fixes may require user space to check if they are applied on the running | |
| * kernel before using a specific feature. For instance, this applies when a | |
| * restriction was previously too restrictive and is now getting relaxed (for | |
| * compatibility or semantic reasons). However, non-visible changes for | |
| * legitimate use (e.g. security fixes) do not require an erratum. | |
| */ | |
| static const struct landlock_erratum landlock_errata_init[] __initconst = { | |
| /* | |
| * Only Sparse may not implement __has_include. If a compiler does not | |
| * implement __has_include, a warning will be printed at boot time (see | |
| * setup.c). | |
| */ | |
| #ifdef __has_include | |
| #define LANDLOCK_ERRATA_ABI 1 | |
| #if __has_include("errata/abi-1.h") | |
| #include "errata/abi-1.h" | |
| #endif | |
| #undef LANDLOCK_ERRATA_ABI | |
| #define LANDLOCK_ERRATA_ABI 2 | |
| #if __has_include("errata/abi-2.h") | |
| #include "errata/abi-2.h" | |
| #endif | |
| #undef LANDLOCK_ERRATA_ABI | |
| #define LANDLOCK_ERRATA_ABI 3 | |
| #if __has_include("errata/abi-3.h") | |
| #include "errata/abi-3.h" | |
| #endif | |
| #undef LANDLOCK_ERRATA_ABI | |
| #define LANDLOCK_ERRATA_ABI 4 | |
| #if __has_include("errata/abi-4.h") | |
| #include "errata/abi-4.h" | |
| #endif | |
| #undef LANDLOCK_ERRATA_ABI | |
| #define LANDLOCK_ERRATA_ABI 5 | |
| #if __has_include("errata/abi-5.h") | |
| #include "errata/abi-5.h" | |
| #endif | |
| #undef LANDLOCK_ERRATA_ABI | |
| #define LANDLOCK_ERRATA_ABI 6 | |
| #if __has_include("errata/abi-6.h") | |
| #include "errata/abi-6.h" | |
| #endif | |
| #undef LANDLOCK_ERRATA_ABI | |
| /* | |
| * For each new erratum, we need to include all the ABI files up to the impacted | |
| * ABI to make all potential future intermediate errata easy to backport. | |
| * | |
| * If such change involves more than one ABI addition, then it must be in a | |
| * dedicated commit with the same Fixes tag as used for the actual fix. | |
| * | |
| * Each commit creating a new security/landlock/errata/abi-*.h file must have a | |
| * Depends-on tag to reference the commit that previously added the line to | |
| * include this new file, except if the original Fixes tag is enough. | |
| * | |
| * Each erratum must be documented in its related ABI file, and a dedicated | |
| * commit must update Documentation/userspace-api/landlock.rst to include this | |
| * erratum. This commit will not be backported. | |
| */ | |
| #endif | |
| {} | |
| }; | |
| #endif /* _SECURITY_LANDLOCK_ERRATA_H */ |