xref: /linux/security/landlock/errata.h (revision 1260ed77798502de9c98020040d2995008de10cc)
115383a0dSMickaël Salaün /* SPDX-License-Identifier: GPL-2.0-only */
215383a0dSMickaël Salaün /*
315383a0dSMickaël Salaün  * Landlock - Errata information
415383a0dSMickaël Salaün  *
515383a0dSMickaël Salaün  * Copyright © 2025 Microsoft Corporation
615383a0dSMickaël Salaün  */
715383a0dSMickaël Salaün 
815383a0dSMickaël Salaün #ifndef _SECURITY_LANDLOCK_ERRATA_H
915383a0dSMickaël Salaün #define _SECURITY_LANDLOCK_ERRATA_H
1015383a0dSMickaël Salaün 
1115383a0dSMickaël Salaün #include <linux/init.h>
1215383a0dSMickaël Salaün 
1315383a0dSMickaël Salaün struct landlock_erratum {
1415383a0dSMickaël Salaün 	const int abi;
1515383a0dSMickaël Salaün 	const u8 number;
1615383a0dSMickaël Salaün };
1715383a0dSMickaël Salaün 
1815383a0dSMickaël Salaün /* clang-format off */
1915383a0dSMickaël Salaün #define LANDLOCK_ERRATUM(NUMBER) \
2015383a0dSMickaël Salaün 	{ \
2115383a0dSMickaël Salaün 		.abi = LANDLOCK_ERRATA_ABI, \
2215383a0dSMickaël Salaün 		.number = NUMBER, \
2315383a0dSMickaël Salaün 	},
2415383a0dSMickaël Salaün /* clang-format on */
2515383a0dSMickaël Salaün 
2615383a0dSMickaël Salaün /*
2715383a0dSMickaël Salaün  * Some fixes may require user space to check if they are applied on the running
2815383a0dSMickaël Salaün  * kernel before using a specific feature.  For instance, this applies when a
2915383a0dSMickaël Salaün  * restriction was previously too restrictive and is now getting relaxed (for
3015383a0dSMickaël Salaün  * compatibility or semantic reasons).  However, non-visible changes for
3115383a0dSMickaël Salaün  * legitimate use (e.g. security fixes) do not require an erratum.
3215383a0dSMickaël Salaün  */
3315383a0dSMickaël Salaün static const struct landlock_erratum landlock_errata_init[] __initconst = {
3415383a0dSMickaël Salaün 
3515383a0dSMickaël Salaün /*
3615383a0dSMickaël Salaün  * Only Sparse may not implement __has_include.  If a compiler does not
3715383a0dSMickaël Salaün  * implement __has_include, a warning will be printed at boot time (see
3815383a0dSMickaël Salaün  * setup.c).
3915383a0dSMickaël Salaün  */
4015383a0dSMickaël Salaün #ifdef __has_include
4115383a0dSMickaël Salaün 
4215383a0dSMickaël Salaün #define LANDLOCK_ERRATA_ABI 1
4315383a0dSMickaël Salaün #if __has_include("errata/abi-1.h")
4415383a0dSMickaël Salaün #include "errata/abi-1.h"
4515383a0dSMickaël Salaün #endif
4615383a0dSMickaël Salaün #undef LANDLOCK_ERRATA_ABI
4715383a0dSMickaël Salaün 
4815383a0dSMickaël Salaün #define LANDLOCK_ERRATA_ABI 2
4915383a0dSMickaël Salaün #if __has_include("errata/abi-2.h")
5015383a0dSMickaël Salaün #include "errata/abi-2.h"
5115383a0dSMickaël Salaün #endif
5215383a0dSMickaël Salaün #undef LANDLOCK_ERRATA_ABI
5315383a0dSMickaël Salaün 
5415383a0dSMickaël Salaün #define LANDLOCK_ERRATA_ABI 3
5515383a0dSMickaël Salaün #if __has_include("errata/abi-3.h")
5615383a0dSMickaël Salaün #include "errata/abi-3.h"
5715383a0dSMickaël Salaün #endif
5815383a0dSMickaël Salaün #undef LANDLOCK_ERRATA_ABI
5915383a0dSMickaël Salaün 
6015383a0dSMickaël Salaün #define LANDLOCK_ERRATA_ABI 4
6115383a0dSMickaël Salaün #if __has_include("errata/abi-4.h")
6215383a0dSMickaël Salaün #include "errata/abi-4.h"
6315383a0dSMickaël Salaün #endif
6415383a0dSMickaël Salaün #undef LANDLOCK_ERRATA_ABI
6515383a0dSMickaël Salaün 
66*6d9ac5e4SMickaël Salaün #define LANDLOCK_ERRATA_ABI 5
67*6d9ac5e4SMickaël Salaün #if __has_include("errata/abi-5.h")
68*6d9ac5e4SMickaël Salaün #include "errata/abi-5.h"
69*6d9ac5e4SMickaël Salaün #endif
70*6d9ac5e4SMickaël Salaün #undef LANDLOCK_ERRATA_ABI
71*6d9ac5e4SMickaël Salaün 
72*6d9ac5e4SMickaël Salaün #define LANDLOCK_ERRATA_ABI 6
73*6d9ac5e4SMickaël Salaün #if __has_include("errata/abi-6.h")
74*6d9ac5e4SMickaël Salaün #include "errata/abi-6.h"
75*6d9ac5e4SMickaël Salaün #endif
76*6d9ac5e4SMickaël Salaün #undef LANDLOCK_ERRATA_ABI
77*6d9ac5e4SMickaël Salaün 
7815383a0dSMickaël Salaün /*
7915383a0dSMickaël Salaün  * For each new erratum, we need to include all the ABI files up to the impacted
8015383a0dSMickaël Salaün  * ABI to make all potential future intermediate errata easy to backport.
8115383a0dSMickaël Salaün  *
8215383a0dSMickaël Salaün  * If such change involves more than one ABI addition, then it must be in a
8315383a0dSMickaël Salaün  * dedicated commit with the same Fixes tag as used for the actual fix.
8415383a0dSMickaël Salaün  *
8515383a0dSMickaël Salaün  * Each commit creating a new security/landlock/errata/abi-*.h file must have a
8615383a0dSMickaël Salaün  * Depends-on tag to reference the commit that previously added the line to
8715383a0dSMickaël Salaün  * include this new file, except if the original Fixes tag is enough.
8815383a0dSMickaël Salaün  *
8915383a0dSMickaël Salaün  * Each erratum must be documented in its related ABI file, and a dedicated
9015383a0dSMickaël Salaün  * commit must update Documentation/userspace-api/landlock.rst to include this
9115383a0dSMickaël Salaün  * erratum.  This commit will not be backported.
9215383a0dSMickaël Salaün  */
9315383a0dSMickaël Salaün 
9415383a0dSMickaël Salaün #endif
9515383a0dSMickaël Salaün 
9615383a0dSMickaël Salaün 	{}
9715383a0dSMickaël Salaün };
9815383a0dSMickaël Salaün 
9915383a0dSMickaël Salaün #endif /* _SECURITY_LANDLOCK_ERRATA_H */
100