| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- /* 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 */
|