kernel-5.17-0.rc2.20220204gitdcb85f85fa6f.86
* Fri Feb 04 2022 Fedora Kernel Team <kernel-team@fedoraproject.org> [5.17-0.rc2.20220204gitdcb85f85fa6f.86] - mm/sparsemem: Fix 'mem_section' will never be NULL gcc 12 warning (Waiman Long) - Workaround for gcc12 compile issues in ubcmd-util.h (Justin M. Forbes) Resolves: rhbz# Signed-off-by: Justin M. Forbes <jforbes@fedoraproject.org>
This commit is contained in:
parent
79b7fc6dd1
commit
68ba353260
@ -12,7 +12,7 @@ RHEL_MINOR = 99
|
||||
#
|
||||
# Use this spot to avoid future merge conflicts.
|
||||
# Do not trim this comment.
|
||||
RHEL_RELEASE = 84
|
||||
RHEL_RELEASE = 86
|
||||
|
||||
#
|
||||
# Early y+1 numbering
|
||||
|
@ -1,8 +1,8 @@
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/302bf21126cacae897f8a8fd5257cfdb2e8668a9
|
||||
302bf21126cacae897f8a8fd5257cfdb2e8668a9 mm/sparsemem: Fix 'mem_section' will never be NULL gcc 12 warning
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/ced9da90d623af4a0d37b62e8399d3221ae06b3f
|
||||
ced9da90d623af4a0d37b62e8399d3221ae06b3f mm/sparsemem: Fix 'mem_section' will never be NULL gcc 12 warning
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/0a0a8b3fbe3d159111ab0117f62ad4d29ab194c6
|
||||
0a0a8b3fbe3d159111ab0117f62ad4d29ab194c6 Workaround for gcc12 compile issues in ubcmd-util.h
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/19d88acbb9804237648cc946164aba3d93e2f3de
|
||||
19d88acbb9804237648cc946164aba3d93e2f3de Workaround for gcc12 compile issues in ubcmd-util.h
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/4f79b3c547b8e3dbc014058a8adffe0fe8cd5e4b
|
||||
4f79b3c547b8e3dbc014058a8adffe0fe8cd5e4b objtool: check: give big enough buffer for pv_ops
|
||||
@ -10,9 +10,66 @@ https://gitlab.com/cki-project/kernel-ark/-/commit/4f79b3c547b8e3dbc014058a8adff
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/c1ee15318f4a2688057fd1aeee6272603d0871f0
|
||||
c1ee15318f4a2688057fd1aeee6272603d0871f0 Fixup merge in random.c
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/8de7ca8b26e143a48e66dd1d6309a5e4115ffcb6
|
||||
8de7ca8b26e143a48e66dd1d6309a5e4115ffcb6 kabi: Add kABI macros for enum type
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/3f4e8e79d3aaba0e7c9eecc47d2bb3fee741cb6a
|
||||
3f4e8e79d3aaba0e7c9eecc47d2bb3fee741cb6a kabi: expand and clarify documentation of aux structs
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/86b381142c544134ddef62469e8dd8a0eb64cdf4
|
||||
86b381142c544134ddef62469e8dd8a0eb64cdf4 kabi: introduce RH_KABI_USE_AUX_PTR
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/8fcb03036ae488acf9257f0babe477b4474b546c
|
||||
8fcb03036ae488acf9257f0babe477b4474b546c kabi: rename RH_KABI_SIZE_AND_EXTEND to AUX
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/07bd34c562953c1be1a12c3fcbd0ef15a87cfd4b
|
||||
07bd34c562953c1be1a12c3fcbd0ef15a87cfd4b kabi: more consistent _RH_KABI_SIZE_AND_EXTEND
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/e87ffabceba1712c7cf6f3a9b42d2242c3e9a220
|
||||
e87ffabceba1712c7cf6f3a9b42d2242c3e9a220 kabi: use fixed field name for extended part
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/da92a8cda48e7f1475e21b07282190ccbef93d0f
|
||||
da92a8cda48e7f1475e21b07282190ccbef93d0f kabi: fix dereference in RH_KABI_CHECK_EXT
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/f10725d312d109970c154eb160a52c16432724bf
|
||||
f10725d312d109970c154eb160a52c16432724bf kabi: fix RH_KABI_SET_SIZE macro
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/b5e2e9b785ae15c4513da11aac44e8b86af3ab94
|
||||
b5e2e9b785ae15c4513da11aac44e8b86af3ab94 kabi: expand and clarify documentation
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/c0af090ecabac4d176ea3501b68f576f517b4a09
|
||||
c0af090ecabac4d176ea3501b68f576f517b4a09 kabi: make RH_KABI_USE replace any number of reserved fields
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/79bee808c6a10aa8e722cc6e5e7d59dfd00b5ab7
|
||||
79bee808c6a10aa8e722cc6e5e7d59dfd00b5ab7 kabi: rename RH_KABI_USE2 to RH_KABI_USE_SPLIT
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/cc866b14f70b7b69cd1760c6778d020dd3b11dac
|
||||
cc866b14f70b7b69cd1760c6778d020dd3b11dac kabi: change RH_KABI_REPLACE2 to RH_KABI_REPLACE_SPLIT
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/681595d3ab5b38ead06cdccf6753ef8f6584e920
|
||||
681595d3ab5b38ead06cdccf6753ef8f6584e920 kabi: change RH_KABI_REPLACE_UNSAFE to RH_KABI_BROKEN_REPLACE
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/6b0b54eb111834c460fab7a1f9709e03ccd92287
|
||||
6b0b54eb111834c460fab7a1f9709e03ccd92287 kabi: introduce RH_KABI_ADD_MODIFIER
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/34fea3d44eb92556ec0b9b576c652cd21acec7e8
|
||||
34fea3d44eb92556ec0b9b576c652cd21acec7e8 kabi: Include kconfig.h
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/8638f77f36a8d0f5965583f4ede2a319aec0b0bb
|
||||
8638f77f36a8d0f5965583f4ede2a319aec0b0bb kabi: macros for intentional kABI breakage
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/31ed0967ebcc6f5b7d72717fc5d5c5417a6fa558
|
||||
31ed0967ebcc6f5b7d72717fc5d5c5417a6fa558 kabi: fix the note about terminating semicolon
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/f2a759d299ddcbb63cd3edc14e3f29f44f61278b
|
||||
f2a759d299ddcbb63cd3edc14e3f29f44f61278b kabi: introduce RH_KABI_HIDE_INCLUDE and RH_KABI_FAKE_INCLUDE
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/309ccf0b279d3f3e7a88fb8889defc10c5ffa818
|
||||
309ccf0b279d3f3e7a88fb8889defc10c5ffa818 lib/crypto: add prompts back to crypto libraries
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/e582ea6a9572e95b13cc26aefe65cacb892a55c7
|
||||
e582ea6a9572e95b13cc26aefe65cacb892a55c7 [redhat] virtio: enable virtio-mem on x86-64 as tech-preview
|
||||
|
||||
https://gitlab.com/cki-project/kernel-ark/-/commit/aa7ea266d2b6a3d865060945da1f8c674640e989
|
||||
aa7ea266d2b6a3d865060945da1f8c674640e989 pci.h: Fix static include
|
||||
|
||||
|
@ -13,7 +13,6 @@ CONFIG_8139TOO=m
|
||||
# CONFIG_A11Y_BRAILLE_CONSOLE is not set
|
||||
# CONFIG_ABP060MG is not set
|
||||
CONFIG_ACCESSIBILITY=y
|
||||
# CONFIG_ACER_WIRELESS is not set
|
||||
# CONFIG_ACORN_PARTITION is not set
|
||||
CONFIG_ACPI_AC=y
|
||||
# CONFIG_ACPI_ALS is not set
|
||||
@ -268,7 +267,7 @@ CONFIG_ARM64_ERRATUM_1463225=y
|
||||
CONFIG_ARM64_ERRATUM_1508412=y
|
||||
CONFIG_ARM64_ERRATUM_1530923=y
|
||||
CONFIG_ARM64_ERRATUM_1542419=y
|
||||
# CONFIG_ARM64_ERRATUM_2051678 is not set
|
||||
CONFIG_ARM64_ERRATUM_2051678=y
|
||||
CONFIG_ARM64_ERRATUM_2054223=y
|
||||
CONFIG_ARM64_ERRATUM_2067961=y
|
||||
CONFIG_ARM64_ERRATUM_2119858=y
|
||||
@ -816,11 +815,17 @@ CONFIG_CLS_U32_PERF=y
|
||||
# CONFIG_CM3232 is not set
|
||||
# CONFIG_CM3323 is not set
|
||||
# CONFIG_CM36651 is not set
|
||||
CONFIG_CMA_ALIGNMENT=8
|
||||
CONFIG_CMA_AREAS=7
|
||||
# CONFIG_CMA_DEBUGFS is not set
|
||||
# CONFIG_CMA_DEBUG is not set
|
||||
# CONFIG_CMA is not set
|
||||
CONFIG_CMA_SIZE_MBYTES=0
|
||||
# CONFIG_CMA_SIZE_SEL_MAX is not set
|
||||
CONFIG_CMA_SIZE_SEL_MBYTES=y
|
||||
# CONFIG_CMA_SIZE_SEL_MIN is not set
|
||||
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
|
||||
CONFIG_CMA_SYSFS=y
|
||||
CONFIG_CMA=y
|
||||
CONFIG_CMDLINE="console=ttyAMA0"
|
||||
# CONFIG_CMDLINE_FORCE is not set
|
||||
CONFIG_CMDLINE_FROM_BOOTLOADER=y
|
||||
@ -1207,7 +1212,7 @@ CONFIG_DMABUF_HEAPS=y
|
||||
CONFIG_DMABUF_MOVE_NOTIFY=y
|
||||
# CONFIG_DMABUF_SELFTESTS is not set
|
||||
# CONFIG_DMABUF_SYSFS_STATS is not set
|
||||
# CONFIG_DMA_CMA is not set
|
||||
CONFIG_DMA_CMA=y
|
||||
CONFIG_DMADEVICES_DEBUG=y
|
||||
CONFIG_DMADEVICES_VDEBUG=y
|
||||
CONFIG_DMADEVICES=y
|
||||
@ -5147,7 +5152,6 @@ CONFIG_SLIP_COMPRESSED=y
|
||||
CONFIG_SLIP=m
|
||||
# CONFIG_SLIP_MODE_SLIP6 is not set
|
||||
CONFIG_SLIP_SMART=y
|
||||
# CONFIG_SLS is not set
|
||||
CONFIG_SLUB_CPU_PARTIAL=y
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
@ -6789,7 +6793,6 @@ CONFIG_WWAN=y
|
||||
# CONFIG_WW_MUTEX_SELFTEST is not set
|
||||
# CONFIG_X25 is not set
|
||||
CONFIG_X86_AMD_PLATFORM_DEVICE=y
|
||||
# CONFIG_X86_AMD_PSTATE is not set
|
||||
CONFIG_X86_IOPL_IOPERM=y
|
||||
CONFIG_X86_PMEM_LEGACY_DEVICE=y
|
||||
CONFIG_X86_PMEM_LEGACY=m
|
||||
|
@ -13,7 +13,6 @@ CONFIG_8139TOO=m
|
||||
# CONFIG_A11Y_BRAILLE_CONSOLE is not set
|
||||
# CONFIG_ABP060MG is not set
|
||||
CONFIG_ACCESSIBILITY=y
|
||||
# CONFIG_ACER_WIRELESS is not set
|
||||
# CONFIG_ACORN_PARTITION is not set
|
||||
CONFIG_ACPI_AC=y
|
||||
# CONFIG_ACPI_ALS is not set
|
||||
@ -268,7 +267,7 @@ CONFIG_ARM64_ERRATUM_1463225=y
|
||||
CONFIG_ARM64_ERRATUM_1508412=y
|
||||
CONFIG_ARM64_ERRATUM_1530923=y
|
||||
CONFIG_ARM64_ERRATUM_1542419=y
|
||||
# CONFIG_ARM64_ERRATUM_2051678 is not set
|
||||
CONFIG_ARM64_ERRATUM_2051678=y
|
||||
CONFIG_ARM64_ERRATUM_2054223=y
|
||||
CONFIG_ARM64_ERRATUM_2067961=y
|
||||
CONFIG_ARM64_ERRATUM_2119858=y
|
||||
@ -816,11 +815,17 @@ CONFIG_CLS_U32_PERF=y
|
||||
# CONFIG_CM3232 is not set
|
||||
# CONFIG_CM3323 is not set
|
||||
# CONFIG_CM36651 is not set
|
||||
CONFIG_CMA_ALIGNMENT=8
|
||||
CONFIG_CMA_AREAS=7
|
||||
# CONFIG_CMA_DEBUGFS is not set
|
||||
# CONFIG_CMA_DEBUG is not set
|
||||
# CONFIG_CMA is not set
|
||||
CONFIG_CMA_SIZE_MBYTES=0
|
||||
# CONFIG_CMA_SIZE_SEL_MAX is not set
|
||||
CONFIG_CMA_SIZE_SEL_MBYTES=y
|
||||
# CONFIG_CMA_SIZE_SEL_MIN is not set
|
||||
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
|
||||
CONFIG_CMA_SYSFS=y
|
||||
CONFIG_CMA=y
|
||||
CONFIG_CMDLINE="console=ttyAMA0"
|
||||
# CONFIG_CMDLINE_FORCE is not set
|
||||
CONFIG_CMDLINE_FROM_BOOTLOADER=y
|
||||
@ -1199,7 +1204,7 @@ CONFIG_DMABUF_HEAPS=y
|
||||
CONFIG_DMABUF_MOVE_NOTIFY=y
|
||||
# CONFIG_DMABUF_SELFTESTS is not set
|
||||
# CONFIG_DMABUF_SYSFS_STATS is not set
|
||||
# CONFIG_DMA_CMA is not set
|
||||
CONFIG_DMA_CMA=y
|
||||
# CONFIG_DMADEVICES_DEBUG is not set
|
||||
# CONFIG_DMADEVICES_VDEBUG is not set
|
||||
CONFIG_DMADEVICES=y
|
||||
@ -5124,7 +5129,6 @@ CONFIG_SLIP_COMPRESSED=y
|
||||
CONFIG_SLIP=m
|
||||
# CONFIG_SLIP_MODE_SLIP6 is not set
|
||||
CONFIG_SLIP_SMART=y
|
||||
# CONFIG_SLS is not set
|
||||
CONFIG_SLUB_CPU_PARTIAL=y
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
@ -6764,7 +6768,6 @@ CONFIG_WWAN=y
|
||||
# CONFIG_WW_MUTEX_SELFTEST is not set
|
||||
# CONFIG_X25 is not set
|
||||
CONFIG_X86_AMD_PLATFORM_DEVICE=y
|
||||
# CONFIG_X86_AMD_PSTATE is not set
|
||||
CONFIG_X86_IOPL_IOPERM=y
|
||||
CONFIG_X86_PMEM_LEGACY_DEVICE=y
|
||||
CONFIG_X86_PMEM_LEGACY=m
|
||||
|
@ -907,6 +907,9 @@ CONFIG_CM32181=m
|
||||
CONFIG_CM3605=m
|
||||
# CONFIG_CM36651 is not set
|
||||
CONFIG_CMA_ALIGNMENT=8
|
||||
CONFIG_CMA_AREAS=7
|
||||
# CONFIG_CMA_DEBUGFS is not set
|
||||
# CONFIG_CMA_DEBUG is not set
|
||||
# CONFIG_CMA is not set
|
||||
CONFIG_CMA_SIZE_MBYTES=0
|
||||
# CONFIG_CMA_SIZE_SEL_MAX is not set
|
||||
|
@ -906,6 +906,9 @@ CONFIG_CM32181=m
|
||||
CONFIG_CM3605=m
|
||||
# CONFIG_CM36651 is not set
|
||||
CONFIG_CMA_ALIGNMENT=8
|
||||
CONFIG_CMA_AREAS=7
|
||||
# CONFIG_CMA_DEBUGFS is not set
|
||||
# CONFIG_CMA_DEBUG is not set
|
||||
# CONFIG_CMA is not set
|
||||
CONFIG_CMA_SIZE_MBYTES=0
|
||||
# CONFIG_CMA_SIZE_SEL_MAX is not set
|
||||
|
@ -14,7 +14,6 @@ CONFIG_842_DECOMPRESS=y
|
||||
# CONFIG_A11Y_BRAILLE_CONSOLE is not set
|
||||
# CONFIG_ABP060MG is not set
|
||||
CONFIG_ACCESSIBILITY=y
|
||||
# CONFIG_ACER_WIRELESS is not set
|
||||
# CONFIG_ACORN_PARTITION is not set
|
||||
CONFIG_ACPI_AC=y
|
||||
# CONFIG_ACPI_ALS is not set
|
||||
@ -220,7 +219,6 @@ CONFIG_ARM64_EPAN=y
|
||||
CONFIG_ARM64_ERRATUM_1319367=y
|
||||
CONFIG_ARM64_ERRATUM_1530923=y
|
||||
CONFIG_ARM64_ERRATUM_1542419=y
|
||||
# CONFIG_ARM64_ERRATUM_2051678 is not set
|
||||
CONFIG_ARM64_ERRATUM_2054223=y
|
||||
CONFIG_ARM64_ERRATUM_2067961=y
|
||||
CONFIG_ARM64_ERRATUM_2119858=y
|
||||
@ -4939,7 +4937,6 @@ CONFIG_SLIP_COMPRESSED=y
|
||||
CONFIG_SLIP=m
|
||||
# CONFIG_SLIP_MODE_SLIP6 is not set
|
||||
CONFIG_SLIP_SMART=y
|
||||
# CONFIG_SLS is not set
|
||||
CONFIG_SLUB_CPU_PARTIAL=y
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
@ -6555,7 +6552,6 @@ CONFIG_WWAN=y
|
||||
# CONFIG_WW_MUTEX_SELFTEST is not set
|
||||
# CONFIG_X25 is not set
|
||||
CONFIG_X86_AMD_PLATFORM_DEVICE=y
|
||||
# CONFIG_X86_AMD_PSTATE is not set
|
||||
CONFIG_X86_IOPL_IOPERM=y
|
||||
CONFIG_X86_PMEM_LEGACY_DEVICE=y
|
||||
CONFIG_X86_PMEM_LEGACY=m
|
||||
|
@ -14,7 +14,6 @@ CONFIG_842_DECOMPRESS=y
|
||||
# CONFIG_A11Y_BRAILLE_CONSOLE is not set
|
||||
# CONFIG_ABP060MG is not set
|
||||
CONFIG_ACCESSIBILITY=y
|
||||
# CONFIG_ACER_WIRELESS is not set
|
||||
# CONFIG_ACORN_PARTITION is not set
|
||||
CONFIG_ACPI_AC=y
|
||||
# CONFIG_ACPI_ALS is not set
|
||||
@ -220,7 +219,6 @@ CONFIG_ARM64_EPAN=y
|
||||
CONFIG_ARM64_ERRATUM_1319367=y
|
||||
CONFIG_ARM64_ERRATUM_1530923=y
|
||||
CONFIG_ARM64_ERRATUM_1542419=y
|
||||
# CONFIG_ARM64_ERRATUM_2051678 is not set
|
||||
CONFIG_ARM64_ERRATUM_2054223=y
|
||||
CONFIG_ARM64_ERRATUM_2067961=y
|
||||
CONFIG_ARM64_ERRATUM_2119858=y
|
||||
@ -4920,7 +4918,6 @@ CONFIG_SLIP_COMPRESSED=y
|
||||
CONFIG_SLIP=m
|
||||
# CONFIG_SLIP_MODE_SLIP6 is not set
|
||||
CONFIG_SLIP_SMART=y
|
||||
# CONFIG_SLS is not set
|
||||
CONFIG_SLUB_CPU_PARTIAL=y
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
@ -6534,7 +6531,6 @@ CONFIG_WWAN=y
|
||||
# CONFIG_WW_MUTEX_SELFTEST is not set
|
||||
# CONFIG_X25 is not set
|
||||
CONFIG_X86_AMD_PLATFORM_DEVICE=y
|
||||
# CONFIG_X86_AMD_PSTATE is not set
|
||||
CONFIG_X86_IOPL_IOPERM=y
|
||||
CONFIG_X86_PMEM_LEGACY_DEVICE=y
|
||||
CONFIG_X86_PMEM_LEGACY=m
|
||||
|
@ -13,7 +13,6 @@ CONFIG_8139TOO=m
|
||||
# CONFIG_A11Y_BRAILLE_CONSOLE is not set
|
||||
# CONFIG_ABP060MG is not set
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
# CONFIG_ACER_WIRELESS is not set
|
||||
# CONFIG_ACORN_PARTITION is not set
|
||||
CONFIG_ACPI_AC=y
|
||||
# CONFIG_ACPI_ALS is not set
|
||||
@ -220,7 +219,6 @@ CONFIG_ARM64_EPAN=y
|
||||
CONFIG_ARM64_ERRATUM_1319367=y
|
||||
CONFIG_ARM64_ERRATUM_1530923=y
|
||||
CONFIG_ARM64_ERRATUM_1542419=y
|
||||
# CONFIG_ARM64_ERRATUM_2051678 is not set
|
||||
CONFIG_ARM64_ERRATUM_2054223=y
|
||||
CONFIG_ARM64_ERRATUM_2067961=y
|
||||
CONFIG_ARM64_ERRATUM_2119858=y
|
||||
@ -4882,7 +4880,6 @@ CONFIG_SLIP_COMPRESSED=y
|
||||
# CONFIG_SLIP is not set
|
||||
# CONFIG_SLIP_MODE_SLIP6 is not set
|
||||
CONFIG_SLIP_SMART=y
|
||||
# CONFIG_SLS is not set
|
||||
CONFIG_SLUB_CPU_PARTIAL=y
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
@ -6511,7 +6508,6 @@ CONFIG_WWAN=y
|
||||
# CONFIG_WW_MUTEX_SELFTEST is not set
|
||||
# CONFIG_X25 is not set
|
||||
CONFIG_X86_AMD_PLATFORM_DEVICE=y
|
||||
# CONFIG_X86_AMD_PSTATE is not set
|
||||
CONFIG_X86_IOPL_IOPERM=y
|
||||
CONFIG_X86_PMEM_LEGACY_DEVICE=y
|
||||
CONFIG_X86_PMEM_LEGACY=m
|
||||
|
@ -13,7 +13,6 @@ CONFIG_8139TOO=m
|
||||
# CONFIG_A11Y_BRAILLE_CONSOLE is not set
|
||||
# CONFIG_ABP060MG is not set
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
# CONFIG_ACER_WIRELESS is not set
|
||||
# CONFIG_ACORN_PARTITION is not set
|
||||
CONFIG_ACPI_AC=y
|
||||
# CONFIG_ACPI_ALS is not set
|
||||
@ -220,7 +219,6 @@ CONFIG_ARM64_EPAN=y
|
||||
CONFIG_ARM64_ERRATUM_1319367=y
|
||||
CONFIG_ARM64_ERRATUM_1530923=y
|
||||
CONFIG_ARM64_ERRATUM_1542419=y
|
||||
# CONFIG_ARM64_ERRATUM_2051678 is not set
|
||||
CONFIG_ARM64_ERRATUM_2054223=y
|
||||
CONFIG_ARM64_ERRATUM_2067961=y
|
||||
CONFIG_ARM64_ERRATUM_2119858=y
|
||||
@ -4863,7 +4861,6 @@ CONFIG_SLIP_COMPRESSED=y
|
||||
# CONFIG_SLIP is not set
|
||||
# CONFIG_SLIP_MODE_SLIP6 is not set
|
||||
CONFIG_SLIP_SMART=y
|
||||
# CONFIG_SLS is not set
|
||||
CONFIG_SLUB_CPU_PARTIAL=y
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
@ -6490,7 +6487,6 @@ CONFIG_WWAN=y
|
||||
# CONFIG_WW_MUTEX_SELFTEST is not set
|
||||
# CONFIG_X25 is not set
|
||||
CONFIG_X86_AMD_PLATFORM_DEVICE=y
|
||||
# CONFIG_X86_AMD_PSTATE is not set
|
||||
CONFIG_X86_IOPL_IOPERM=y
|
||||
CONFIG_X86_PMEM_LEGACY_DEVICE=y
|
||||
CONFIG_X86_PMEM_LEGACY=m
|
||||
|
@ -13,7 +13,6 @@ CONFIG_8139TOO=m
|
||||
# CONFIG_A11Y_BRAILLE_CONSOLE is not set
|
||||
# CONFIG_ABP060MG is not set
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
# CONFIG_ACER_WIRELESS is not set
|
||||
# CONFIG_ACORN_PARTITION is not set
|
||||
CONFIG_ACPI_AC=y
|
||||
# CONFIG_ACPI_ALS is not set
|
||||
@ -220,7 +219,6 @@ CONFIG_ARM64_EPAN=y
|
||||
CONFIG_ARM64_ERRATUM_1319367=y
|
||||
CONFIG_ARM64_ERRATUM_1530923=y
|
||||
CONFIG_ARM64_ERRATUM_1542419=y
|
||||
# CONFIG_ARM64_ERRATUM_2051678 is not set
|
||||
CONFIG_ARM64_ERRATUM_2054223=y
|
||||
CONFIG_ARM64_ERRATUM_2067961=y
|
||||
CONFIG_ARM64_ERRATUM_2119858=y
|
||||
@ -4885,7 +4883,6 @@ CONFIG_SLIP_COMPRESSED=y
|
||||
# CONFIG_SLIP is not set
|
||||
# CONFIG_SLIP_MODE_SLIP6 is not set
|
||||
CONFIG_SLIP_SMART=y
|
||||
# CONFIG_SLS is not set
|
||||
CONFIG_SLUB_CPU_PARTIAL=y
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
@ -6519,7 +6516,6 @@ CONFIG_WWAN=y
|
||||
# CONFIG_WW_MUTEX_SELFTEST is not set
|
||||
# CONFIG_X25 is not set
|
||||
CONFIG_X86_AMD_PLATFORM_DEVICE=y
|
||||
# CONFIG_X86_AMD_PSTATE is not set
|
||||
CONFIG_X86_IOPL_IOPERM=y
|
||||
CONFIG_X86_PMEM_LEGACY_DEVICE=y
|
||||
CONFIG_X86_PMEM_LEGACY=m
|
||||
|
@ -14,7 +14,7 @@ CONFIG_8139TOO=m
|
||||
# CONFIG_ABP060MG is not set
|
||||
CONFIG_ACCESSIBILITY=y
|
||||
# CONFIG_ACERHDF is not set
|
||||
# CONFIG_ACER_WIRELESS is not set
|
||||
CONFIG_ACER_WIRELESS=m
|
||||
CONFIG_ACER_WMI=m
|
||||
# CONFIG_ACORN_PARTITION is not set
|
||||
CONFIG_ACPI_AC=y
|
||||
@ -243,7 +243,6 @@ CONFIG_ARM64_EPAN=y
|
||||
CONFIG_ARM64_ERRATUM_1319367=y
|
||||
CONFIG_ARM64_ERRATUM_1530923=y
|
||||
CONFIG_ARM64_ERRATUM_1542419=y
|
||||
# CONFIG_ARM64_ERRATUM_2051678 is not set
|
||||
CONFIG_ARM64_ERRATUM_2054223=y
|
||||
CONFIG_ARM64_ERRATUM_2067961=y
|
||||
CONFIG_ARM64_ERRATUM_2119858=y
|
||||
@ -5103,7 +5102,7 @@ CONFIG_SLIP_COMPRESSED=y
|
||||
CONFIG_SLIP=m
|
||||
# CONFIG_SLIP_MODE_SLIP6 is not set
|
||||
CONFIG_SLIP_SMART=y
|
||||
# CONFIG_SLS is not set
|
||||
CONFIG_SLS=y
|
||||
CONFIG_SLUB_CPU_PARTIAL=y
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
@ -6656,7 +6655,7 @@ CONFIG_VIRTIO_CONSOLE=m
|
||||
CONFIG_VIRTIO_FS=m
|
||||
CONFIG_VIRTIO_INPUT=m
|
||||
# CONFIG_VIRTIO_IOMMU is not set
|
||||
# CONFIG_VIRTIO_MEM is not set
|
||||
CONFIG_VIRTIO_MEM=m
|
||||
CONFIG_VIRTIO_MENU=y
|
||||
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
|
||||
# CONFIG_VIRTIO_MMIO is not set
|
||||
@ -6756,7 +6755,7 @@ CONFIG_X86_ACPI_CPUFREQ_CPB=y
|
||||
CONFIG_X86_ACPI_CPUFREQ=m
|
||||
CONFIG_X86_AMD_FREQ_SENSITIVITY=m
|
||||
CONFIG_X86_AMD_PLATFORM_DEVICE=y
|
||||
# CONFIG_X86_AMD_PSTATE is not set
|
||||
CONFIG_X86_AMD_PSTATE=y
|
||||
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
|
||||
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
|
||||
CONFIG_X86_CMPXCHG64=y
|
||||
|
@ -14,7 +14,7 @@ CONFIG_8139TOO=m
|
||||
# CONFIG_ABP060MG is not set
|
||||
CONFIG_ACCESSIBILITY=y
|
||||
# CONFIG_ACERHDF is not set
|
||||
# CONFIG_ACER_WIRELESS is not set
|
||||
CONFIG_ACER_WIRELESS=m
|
||||
CONFIG_ACER_WMI=m
|
||||
# CONFIG_ACORN_PARTITION is not set
|
||||
CONFIG_ACPI_AC=y
|
||||
@ -243,7 +243,6 @@ CONFIG_ARM64_EPAN=y
|
||||
CONFIG_ARM64_ERRATUM_1319367=y
|
||||
CONFIG_ARM64_ERRATUM_1530923=y
|
||||
CONFIG_ARM64_ERRATUM_1542419=y
|
||||
# CONFIG_ARM64_ERRATUM_2051678 is not set
|
||||
CONFIG_ARM64_ERRATUM_2054223=y
|
||||
CONFIG_ARM64_ERRATUM_2067961=y
|
||||
CONFIG_ARM64_ERRATUM_2119858=y
|
||||
@ -5081,7 +5080,7 @@ CONFIG_SLIP_COMPRESSED=y
|
||||
CONFIG_SLIP=m
|
||||
# CONFIG_SLIP_MODE_SLIP6 is not set
|
||||
CONFIG_SLIP_SMART=y
|
||||
# CONFIG_SLS is not set
|
||||
CONFIG_SLS=y
|
||||
CONFIG_SLUB_CPU_PARTIAL=y
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
@ -6632,7 +6631,7 @@ CONFIG_VIRTIO_CONSOLE=m
|
||||
CONFIG_VIRTIO_FS=m
|
||||
CONFIG_VIRTIO_INPUT=m
|
||||
# CONFIG_VIRTIO_IOMMU is not set
|
||||
# CONFIG_VIRTIO_MEM is not set
|
||||
CONFIG_VIRTIO_MEM=m
|
||||
CONFIG_VIRTIO_MENU=y
|
||||
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
|
||||
# CONFIG_VIRTIO_MMIO is not set
|
||||
@ -6732,7 +6731,7 @@ CONFIG_X86_ACPI_CPUFREQ_CPB=y
|
||||
CONFIG_X86_ACPI_CPUFREQ=m
|
||||
CONFIG_X86_AMD_FREQ_SENSITIVITY=m
|
||||
CONFIG_X86_AMD_PLATFORM_DEVICE=y
|
||||
# CONFIG_X86_AMD_PSTATE is not set
|
||||
CONFIG_X86_AMD_PSTATE=y
|
||||
# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set
|
||||
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
|
||||
CONFIG_X86_CMPXCHG64=y
|
||||
|
35
kernel.spec
35
kernel.spec
@ -87,7 +87,7 @@ Summary: The Linux kernel
|
||||
# the --with-release option overrides this setting.)
|
||||
%define debugbuildsenabled 0
|
||||
|
||||
%global distro_build 0.rc2.20220202git9f7fb8de5d9b.84
|
||||
%global distro_build 0.rc2.20220204gitdcb85f85fa6f.86
|
||||
|
||||
%if 0%{?fedora}
|
||||
%define secure_boot_arch x86_64
|
||||
@ -132,13 +132,13 @@ Summary: The Linux kernel
|
||||
|
||||
%define rpmversion 5.17.0
|
||||
%define patchversion 5.17
|
||||
%define pkgrelease 0.rc2.20220202git9f7fb8de5d9b.84
|
||||
%define pkgrelease 0.rc2.20220204gitdcb85f85fa6f.86
|
||||
|
||||
# This is needed to do merge window version magic
|
||||
%define patchlevel 17
|
||||
|
||||
# allow pkg_release to have configurable %%{?dist} tag
|
||||
%define specrelease 0.rc2.20220202git9f7fb8de5d9b.84%{?buildid}%{?dist}
|
||||
%define specrelease 0.rc2.20220204gitdcb85f85fa6f.86%{?buildid}%{?dist}
|
||||
|
||||
%define pkg_release %{specrelease}
|
||||
|
||||
@ -692,7 +692,7 @@ BuildRequires: lld
|
||||
# exact git commit you can run
|
||||
#
|
||||
# xzcat -qq ${TARBALL} | git get-tar-commit-id
|
||||
Source0: linux-5.17-rc2-39-g9f7fb8de5d9b.tar.xz
|
||||
Source0: linux-5.17-rc2-167-gdcb85f85fa6f.tar.xz
|
||||
|
||||
Source1: Makefile.rhelver
|
||||
|
||||
@ -1388,8 +1388,8 @@ ApplyOptionalPatch()
|
||||
fi
|
||||
}
|
||||
|
||||
%setup -q -n kernel-5.17-rc2-39-g9f7fb8de5d9b -c
|
||||
mv linux-5.17-rc2-39-g9f7fb8de5d9b linux-%{KVERREL}
|
||||
%setup -q -n kernel-5.17-rc2-167-gdcb85f85fa6f -c
|
||||
mv linux-5.17-rc2-167-gdcb85f85fa6f linux-%{KVERREL}
|
||||
|
||||
cd linux-%{KVERREL}
|
||||
cp -a %{SOURCE1} .
|
||||
@ -3002,10 +3002,31 @@ fi
|
||||
#
|
||||
#
|
||||
%changelog
|
||||
* Wed Feb 02 2022 Fedora Kernel Team <kernel-team@fedoraproject.org> [5.17-0.rc2.20220202git9f7fb8de5d9b.84]
|
||||
* Fri Feb 04 2022 Fedora Kernel Team <kernel-team@fedoraproject.org> [5.17-0.rc2.20220204gitdcb85f85fa6f.86]
|
||||
- mm/sparsemem: Fix 'mem_section' will never be NULL gcc 12 warning (Waiman Long)
|
||||
- Workaround for gcc12 compile issues in ubcmd-util.h (Justin M. Forbes)
|
||||
|
||||
* Thu Feb 03 2022 Fedora Kernel Team <kernel-team@fedoraproject.org> [5.17-0.rc2.20220203git88808fbbead4.84]
|
||||
- redhat/configs: Enable CONFIG_ACER_WIRELESS (Peter Georg) [2025985]
|
||||
- kabi: Add kABI macros for enum type (Čestmír Kalina) [2024595]
|
||||
- kabi: expand and clarify documentation of aux structs (Čestmír Kalina) [2024595]
|
||||
- kabi: introduce RH_KABI_USE_AUX_PTR (Čestmír Kalina) [2024595]
|
||||
- kabi: rename RH_KABI_SIZE_AND_EXTEND to AUX (Čestmír Kalina) [2024595]
|
||||
- kabi: more consistent _RH_KABI_SIZE_AND_EXTEND (Čestmír Kalina) [2024595]
|
||||
- kabi: use fixed field name for extended part (Čestmír Kalina) [2024595]
|
||||
- kabi: fix dereference in RH_KABI_CHECK_EXT (Čestmír Kalina) [2024595]
|
||||
- kabi: fix RH_KABI_SET_SIZE macro (Čestmír Kalina) [2024595]
|
||||
- kabi: expand and clarify documentation (Čestmír Kalina) [2024595]
|
||||
- kabi: make RH_KABI_USE replace any number of reserved fields (Čestmír Kalina) [2024595]
|
||||
- kabi: rename RH_KABI_USE2 to RH_KABI_USE_SPLIT (Čestmír Kalina) [2024595]
|
||||
- kabi: change RH_KABI_REPLACE2 to RH_KABI_REPLACE_SPLIT (Čestmír Kalina) [2024595]
|
||||
- kabi: change RH_KABI_REPLACE_UNSAFE to RH_KABI_BROKEN_REPLACE (Čestmír Kalina) [2024595]
|
||||
- kabi: introduce RH_KABI_ADD_MODIFIER (Čestmír Kalina) [2024595]
|
||||
- kabi: Include kconfig.h (Čestmír Kalina) [2024595]
|
||||
- kabi: macros for intentional kABI breakage (Čestmír Kalina) [2024595]
|
||||
- kabi: fix the note about terminating semicolon (Čestmír Kalina) [2024595]
|
||||
- kabi: introduce RH_KABI_HIDE_INCLUDE and RH_KABI_FAKE_INCLUDE (Čestmír Kalina) [2024595]
|
||||
|
||||
* Wed Feb 02 2022 Fedora Kernel Team <kernel-team@fedoraproject.org> [5.17-0.rc2.20220202git9f7fb8de5d9b.83]
|
||||
- spec: don't overwrite auto.conf with .config (Ondrej Mosnacek)
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Documentation/admin-guide/kernel-parameters.txt | 9 +
|
||||
Kconfig | 2 +
|
||||
Kconfig.redhat | 17 ++
|
||||
Kconfig.redhat | 17 +
|
||||
Makefile | 12 +-
|
||||
arch/arm/Kconfig | 4 +-
|
||||
arch/arm64/Kconfig | 3 +-
|
||||
@ -9,22 +9,22 @@
|
||||
arch/s390/kernel/ipl.c | 5 +
|
||||
arch/s390/kernel/setup.c | 4 +
|
||||
arch/x86/kernel/cpu/common.c | 1 +
|
||||
arch/x86/kernel/setup.c | 70 ++++-
|
||||
crypto/rng.c | 73 ++++-
|
||||
arch/x86/kernel/setup.c | 70 ++-
|
||||
crypto/rng.c | 73 ++-
|
||||
drivers/acpi/apei/hest.c | 8 +
|
||||
drivers/acpi/irq.c | 17 +-
|
||||
drivers/acpi/scan.c | 9 +
|
||||
drivers/ata/libahci.c | 18 ++
|
||||
drivers/char/ipmi/ipmi_dmi.c | 15 ++
|
||||
drivers/ata/libahci.c | 18 +
|
||||
drivers/char/ipmi/ipmi_dmi.c | 15 +
|
||||
drivers/char/ipmi/ipmi_msghandler.c | 16 +-
|
||||
drivers/char/random.c | 115 ++++++++
|
||||
drivers/char/random.c | 115 +++++
|
||||
drivers/firmware/efi/Makefile | 1 +
|
||||
drivers/firmware/efi/efi.c | 124 ++++++---
|
||||
drivers/firmware/efi/secureboot.c | 38 +++
|
||||
drivers/hid/hid-rmi.c | 64 -----
|
||||
drivers/hwtracing/coresight/coresight-etm4x-core.c | 19 ++
|
||||
drivers/input/rmi4/rmi_driver.c | 124 +++++----
|
||||
drivers/iommu/iommu.c | 22 ++
|
||||
drivers/firmware/efi/efi.c | 124 +++--
|
||||
drivers/firmware/efi/secureboot.c | 38 ++
|
||||
drivers/hid/hid-rmi.c | 64 ---
|
||||
drivers/hwtracing/coresight/coresight-etm4x-core.c | 19 +
|
||||
drivers/input/rmi4/rmi_driver.c | 124 +++--
|
||||
drivers/iommu/iommu.c | 22 +
|
||||
drivers/message/fusion/mptsas.c | 10 +
|
||||
drivers/message/fusion/mptspi.c | 11 +
|
||||
drivers/net/ethernet/intel/e1000/e1000_main.c | 2 +
|
||||
@ -33,8 +33,8 @@
|
||||
drivers/nvme/host/core.c | 22 +-
|
||||
drivers/nvme/host/multipath.c | 19 +-
|
||||
drivers/nvme/host/nvme.h | 4 +
|
||||
drivers/pci/pci-driver.c | 78 ++++++
|
||||
drivers/pci/quirks.c | 24 ++
|
||||
drivers/pci/pci-driver.c | 78 ++++
|
||||
drivers/pci/quirks.c | 24 +
|
||||
drivers/scsi/aacraid/linit.c | 2 +
|
||||
drivers/scsi/be2iscsi/be_main.c | 2 +
|
||||
drivers/scsi/hpsa.c | 4 +
|
||||
@ -44,27 +44,28 @@
|
||||
drivers/scsi/qla2xxx/qla_os.c | 6 +
|
||||
drivers/scsi/qla4xxx/ql4_os.c | 2 +
|
||||
drivers/usb/core/hub.c | 7 +
|
||||
drivers/virtio/virtio_mem.c | 13 +
|
||||
fs/ext4/super.c | 5 +
|
||||
fs/xfs/xfs_super.c | 5 +
|
||||
include/linux/efi.h | 22 +-
|
||||
include/linux/kernel.h | 19 ++
|
||||
include/linux/kernel.h | 19 +
|
||||
include/linux/lsm_hook_defs.h | 2 +
|
||||
include/linux/lsm_hooks.h | 6 +
|
||||
include/linux/mmzone.h | 4 +-
|
||||
include/linux/module.h | 1 +
|
||||
include/linux/panic.h | 19 +-
|
||||
include/linux/pci.h | 16 ++
|
||||
include/linux/pci.h | 16 +
|
||||
include/linux/random.h | 7 +
|
||||
include/linux/rh_kabi.h | 297 +++++++++++++++++++++
|
||||
include/linux/rh_kabi.h | 515 +++++++++++++++++++++
|
||||
include/linux/rmi.h | 1 +
|
||||
include/linux/security.h | 5 +
|
||||
init/Kconfig | 2 +-
|
||||
kernel/Makefile | 1 +
|
||||
kernel/bpf/syscall.c | 18 ++
|
||||
kernel/bpf/syscall.c | 18 +
|
||||
kernel/module.c | 2 +
|
||||
kernel/module_signing.c | 9 +-
|
||||
kernel/panic.c | 14 +
|
||||
kernel/rh_messages.c | 179 +++++++++++++
|
||||
kernel/rh_messages.c | 179 +++++++
|
||||
kernel/sysctl.c | 5 +
|
||||
mm/cma.c | 10 +
|
||||
scripts/mod/modpost.c | 8 +
|
||||
@ -75,7 +76,7 @@
|
||||
security/security.c | 6 +
|
||||
tools/lib/subcmd/subcmd-util.h | 9 +-
|
||||
tools/objtool/check.c | 2 +-
|
||||
77 files changed, 1518 insertions(+), 197 deletions(-)
|
||||
78 files changed, 1749 insertions(+), 197 deletions(-)
|
||||
|
||||
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
|
||||
index f5a27f067db9..f4dc42f2f82a 100644
|
||||
@ -2097,6 +2098,30 @@ index 47a1c8bddf86..e309d992e2ad 100644
|
||||
/* Lock the device, then check to see if we were
|
||||
* disconnected while waiting for the lock to succeed. */
|
||||
usb_lock_device(hdev);
|
||||
diff --git a/drivers/virtio/virtio_mem.c b/drivers/virtio/virtio_mem.c
|
||||
index 38becd8d578c..f4ec685879cf 100644
|
||||
--- a/drivers/virtio/virtio_mem.c
|
||||
+++ b/drivers/virtio/virtio_mem.c
|
||||
@@ -2792,6 +2792,19 @@ static int virtio_mem_probe(struct virtio_device *vdev)
|
||||
|
||||
/* trigger a config update to start processing the requested_size */
|
||||
if (!vm->in_kdump) {
|
||||
+#ifdef CONFIG_RHEL_DIFFERENCES
|
||||
+ static bool printed;
|
||||
+
|
||||
+ /*
|
||||
+ * virtio-mem, and especially its memory hot(un)plug
|
||||
+ * functionality, is tech-preview.
|
||||
+ */
|
||||
+ if (!printed) {
|
||||
+ printed = true;
|
||||
+ mark_tech_preview("virtio_mem", THIS_MODULE);
|
||||
+ }
|
||||
+#endif /* CONFIG_RHEL_DIFFERENCES */
|
||||
+
|
||||
atomic_set(&vm->config_changed, 1);
|
||||
queue_work(system_freezable_wq, &vm->wq);
|
||||
}
|
||||
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
|
||||
index ce60b5026bde..95211f35dae8 100644
|
||||
--- a/fs/ext4/super.c
|
||||
@ -2378,15 +2403,15 @@ index c45b2693e51f..4edfdb3e44a9 100644
|
||||
extern const struct file_operations random_fops, urandom_fops;
|
||||
diff --git a/include/linux/rh_kabi.h b/include/linux/rh_kabi.h
|
||||
new file mode 100644
|
||||
index 000000000000..ea9c136bf884
|
||||
index 000000000000..c7b42c1f1681
|
||||
--- /dev/null
|
||||
+++ b/include/linux/rh_kabi.h
|
||||
@@ -0,0 +1,297 @@
|
||||
@@ -0,0 +1,515 @@
|
||||
+/*
|
||||
+ * rh_kabi.h - Red Hat kABI abstraction header
|
||||
+ *
|
||||
+ * Copyright (c) 2014 Don Zickus
|
||||
+ * Copyright (c) 2015-2018 Jiri Benc
|
||||
+ * Copyright (c) 2015-2020 Jiri Benc
|
||||
+ * Copyright (c) 2015 Sabrina Dubroca, Hannes Frederic Sowa
|
||||
+ * Copyright (c) 2016-2018 Prarit Bhargava
|
||||
+ * Copyright (c) 2017 Paolo Abeni, Larry Woodman
|
||||
@ -2410,24 +2435,48 @@ index 000000000000..ea9c136bf884
|
||||
+#ifndef _LINUX_RH_KABI_H
|
||||
+#define _LINUX_RH_KABI_H
|
||||
+
|
||||
+#include <linux/kconfig.h>
|
||||
+#include <linux/compiler.h>
|
||||
+#include <linux/stringify.h>
|
||||
+
|
||||
+/*
|
||||
+ * NOTE
|
||||
+ * Unless indicated otherwise, don't use ';' after these macros as it
|
||||
+ * messes up the kABI checker by changing what the resulting token string
|
||||
+ * looks like. Instead let the macros add the ';' so it can be properly
|
||||
+ * hidden from the kABI checker (mainly for RH_KABI_EXTEND, but applied to
|
||||
+ * most macros for uniformity).
|
||||
+ *
|
||||
+ *
|
||||
+ * RH_KABI_CONST
|
||||
+ * Adds a new const modifier to a function parameter preserving the old
|
||||
+ * checksum.
|
||||
+ *
|
||||
+ * RH_KABI_ADD_MODIFIER
|
||||
+ * Adds a new modifier to a function parameter or a typedef, preserving
|
||||
+ * the old checksum. Useful e.g. for adding rcu annotations or changing
|
||||
+ * int to unsigned. Beware that this may change the semantics; if you're
|
||||
+ * sure this is safe, always explain why binary compatibility with 3rd
|
||||
+ * party modules is retained.
|
||||
+ *
|
||||
+ * RH_KABI_DEPRECATE
|
||||
+ * Mark the element as deprecated and make it unusable by modules while
|
||||
+ * preserving kABI checksums.
|
||||
+ * Marks the element as deprecated and make it unusable by modules while
|
||||
+ * keeping a hole in its place to preserve binary compatibility.
|
||||
+ *
|
||||
+ * RH_KABI_DEPRECATE_FN
|
||||
+ * Mark the function pointer as deprecated and make it unusable by modules
|
||||
+ * while preserving kABI checksums.
|
||||
+ * Marks the function pointer as deprecated and make it unusable by modules
|
||||
+ * while keeping a hole in its place to preserve binary compatibility.
|
||||
+ *
|
||||
+ * RH_KABI_EXTEND
|
||||
+ * Simple macro for adding a new element to a struct.
|
||||
+ * Adds a new field to a struct. This must always be added to the end of
|
||||
+ * the struct. Before using this macro, make sure this is actually safe
|
||||
+ * to do - there is a number of conditions under which it is *not* safe.
|
||||
+ * In particular (but not limited to), this macro cannot be used:
|
||||
+ * - if the struct in question is embedded in another struct, or
|
||||
+ * - if the struct is allocated by drivers either statically or
|
||||
+ * dynamically, or
|
||||
+ * - if the struct is allocated together with driver data (an example of
|
||||
+ * such behavior is struct net_device or struct request).
|
||||
+ *
|
||||
+ * RH_KABI_EXTEND_WITH_SIZE
|
||||
+ * Adds a new element (usually a struct) to a struct and reserves extra
|
||||
@ -2443,28 +2492,195 @@ index 000000000000..ea9c136bf884
|
||||
+ * guarantee.
|
||||
+ *
|
||||
+ * RH_KABI_FILL_HOLE
|
||||
+ * Simple macro for filling a hole in a struct.
|
||||
+ * Fills a hole in a struct.
|
||||
+ *
|
||||
+ * Warning: only use if a hole exists for _all_ arches. Use pahole to verify.
|
||||
+ *
|
||||
+ * RH_KABI_RENAME
|
||||
+ * Simple macro for renaming an element without changing its type. This
|
||||
+ * macro can be used in bitfields, for example.
|
||||
+ * Renames an element without changing its type. This macro can be used in
|
||||
+ * bitfields, for example.
|
||||
+ *
|
||||
+ * NOTE: does not include the final ';'
|
||||
+ * NOTE: this macro does not add the final ';'
|
||||
+ *
|
||||
+ * RH_KABI_REPLACE
|
||||
+ * Simple replacement of _orig with a union of _orig and _new.
|
||||
+ * Replaces the _orig field by the _new field. The size of the occupied
|
||||
+ * space is preserved, it's fine if the _new field is smaller than the
|
||||
+ * _orig field. If a _new field is larger or has a different alignment,
|
||||
+ * compilation will abort.
|
||||
+ *
|
||||
+ * The RH_KABI_REPLACE* macros attempt to add the ability to use the '_new'
|
||||
+ * element while preserving size alignment with the '_orig' element.
|
||||
+ * RH_KABI_REPLACE_SPLIT
|
||||
+ * Works the same as RH_KABI_REPLACE but replaces a single _orig field by
|
||||
+ * multiple new fields. The checks for size and alignment done by
|
||||
+ * RH_KABI_REPLACE are still applied.
|
||||
+ *
|
||||
+ * The #ifdef __GENKSYMS__ preserves the kABI agreement, while the anonymous
|
||||
+ * union structure preserves the size alignment (assuming the '_new' element
|
||||
+ * is not bigger than the '_orig' element).
|
||||
+ * RH_KABI_HIDE_INCLUDE
|
||||
+ * Hides the given include file from kABI checksum computations. This is
|
||||
+ * used when a newly added #include makes a previously opaque struct
|
||||
+ * visible.
|
||||
+ *
|
||||
+ * RH_KABI_REPLACE_UNSAFE
|
||||
+ * Unsafe version of RH_KABI_REPLACE. Only use for typedefs.
|
||||
+ * Example usage:
|
||||
+ * #include RH_KABI_HIDE_INCLUDE(<linux/poll.h>)
|
||||
+ *
|
||||
+ * RH_KABI_FAKE_INCLUDE
|
||||
+ * Pretends inclusion of the given file for kABI checksum computations.
|
||||
+ * This is used when upstream removed a particular #include but that made
|
||||
+ * some structures opaque that were previously visible and is causing kABI
|
||||
+ * checker failures.
|
||||
+ *
|
||||
+ * Example usage:
|
||||
+ * #include RH_KABI_FAKE_INCLUDE(<linux/rhashtable.h>)
|
||||
+ *
|
||||
+ * RH_KABI_RESERVE
|
||||
+ * Adds a reserved field to a struct. This is done prior to kABI freeze
|
||||
+ * for structs that cannot be expanded later using RH_KABI_EXTEND (for
|
||||
+ * example because they are embedded in another struct or because they are
|
||||
+ * allocated by drivers or because they use unusual memory layout). The
|
||||
+ * size of the reserved field is 'unsigned long' and is assumed to be
|
||||
+ * 8 bytes.
|
||||
+ *
|
||||
+ * The argument is a number unique for the given struct; usually, multiple
|
||||
+ * RH_KABI_RESERVE macros are added to a struct with numbers starting from
|
||||
+ * one.
|
||||
+ *
|
||||
+ * Example usage:
|
||||
+ * struct foo {
|
||||
+ * int a;
|
||||
+ * RH_KABI_RESERVE(1)
|
||||
+ * RH_KABI_RESERVE(2)
|
||||
+ * RH_KABI_RESERVE(3)
|
||||
+ * RH_KABI_RESERVE(4)
|
||||
+ * };
|
||||
+ *
|
||||
+ * RH_KABI_USE
|
||||
+ * Uses a previously reserved field or multiple fields. The arguments are
|
||||
+ * one or more numbers assigned to RH_KABI_RESERVE, followed by a field to
|
||||
+ * be put in their place. The compiler ensures that the new field is not
|
||||
+ * larger than the reserved area.
|
||||
+ *
|
||||
+ * Example usage:
|
||||
+ * struct foo {
|
||||
+ * int a;
|
||||
+ * RH_KABI_USE(1, int b)
|
||||
+ * RH_KABI_USE(2, 3, int c[3])
|
||||
+ * RH_KABI_RESERVE(4)
|
||||
+ * };
|
||||
+ *
|
||||
+ * RH_KABI_USE_SPLIT
|
||||
+ * Works the same as RH_KABI_USE but replaces a single reserved field by
|
||||
+ * multiple new fields.
|
||||
+ *
|
||||
+ * RH_KABI_AUX_EMBED
|
||||
+ * RH_KABI_AUX_PTR
|
||||
+ * Adds an extenstion of a struct in the form of "auxiliary structure".
|
||||
+ * This is done prior to kABI freeze for structs that cannot be expanded
|
||||
+ * later using RH_KABI_EXTEND. See also RH_KABI_RESERVED, these two
|
||||
+ * approaches can (and often are) combined.
|
||||
+ *
|
||||
+ * To use this for 'struct foo' (the "base structure"), define a new
|
||||
+ * structure called 'struct foo_rh'; this new struct is called "auxiliary
|
||||
+ * structure". Then add RH_KABI_AUX_EMBED or RH_KABI_AUX_PTR to the end
|
||||
+ * of the base structure. The argument is the name of the base structure,
|
||||
+ * without the 'struct' keyword.
|
||||
+ *
|
||||
+ * RH_KABI_AUX_PTR stores a pointer to the aux structure in the base
|
||||
+ * struct. The lifecycle of the aux struct needs to be properly taken
|
||||
+ * care of.
|
||||
+ *
|
||||
+ * RH_KABI_AUX_EMBED embeds the aux struct into the base struct. This
|
||||
+ * cannot be used when the base struct is itself embedded into another
|
||||
+ * struct, allocated in an array, etc.
|
||||
+ *
|
||||
+ * Both approaches (ptr and embed) work correctly even when the aux struct
|
||||
+ * is allocated by modules. To ensure this, the code responsible for
|
||||
+ * allocation/assignment of the aux struct has to properly set the size of
|
||||
+ * the aux struct; see the RH_KABI_AUX_SET_SIZE and RH_KABI_AUX_INIT_SIZE
|
||||
+ * macros.
|
||||
+ *
|
||||
+ * New fields can be later added to the auxiliary structure, always to its
|
||||
+ * end. Note the auxiliary structure cannot be shrunk in size later (i.e.,
|
||||
+ * fields cannot be removed, only deprecated). Any code accessing fields
|
||||
+ * from the aux struct must guard the access using the RH_KABI_AUX macro.
|
||||
+ * The access itself is then done via a '_rh' field in the base struct.
|
||||
+ *
|
||||
+ * The auxiliary structure is not guaranteed for access by modules unless
|
||||
+ * explicitly commented as such in the declaration of the aux struct
|
||||
+ * itself or some of its elements.
|
||||
+ *
|
||||
+ * Example:
|
||||
+ *
|
||||
+ * struct foo_rh {
|
||||
+ * int newly_added;
|
||||
+ * };
|
||||
+ *
|
||||
+ * struct foo {
|
||||
+ * bool big_hammer;
|
||||
+ * RH_KABI_AUX_PTR(foo)
|
||||
+ * };
|
||||
+ *
|
||||
+ * void use(struct foo *f)
|
||||
+ * {
|
||||
+ * if (RH_KABI_AUX(f, foo, newly_added))
|
||||
+ * f->_rh->newly_added = 123;
|
||||
+ * else
|
||||
+ * // the field 'newly_added' is not present in the passed
|
||||
+ * // struct, fall back to old behavior
|
||||
+ * f->big_hammer = true;
|
||||
+ * }
|
||||
+ *
|
||||
+ * static struct foo_rh my_foo_rh {
|
||||
+ * .newly_added = 0;
|
||||
+ * }
|
||||
+ *
|
||||
+ * static struct foo my_foo = {
|
||||
+ * .big_hammer = false,
|
||||
+ * ._rh = &my_foo_rh,
|
||||
+ * RH_KABI_AUX_INIT_SIZE(foo)
|
||||
+ * };
|
||||
+ *
|
||||
+ * RH_KABI_USE_AUX_PTR
|
||||
+ * Creates an auxiliary structure post kABI freeze. This works by using
|
||||
+ * two reserved fields (thus there has to be two reserved fields still
|
||||
+ * available) and converting them to RH_KABI_AUX_PTR.
|
||||
+ *
|
||||
+ * Example:
|
||||
+ *
|
||||
+ * struct foo_rh {
|
||||
+ * };
|
||||
+ *
|
||||
+ * struct foo {
|
||||
+ * int a;
|
||||
+ * RH_KABI_RESERVE(1)
|
||||
+ * RH_KABI_USE_AUX_PTR(2, 3, foo)
|
||||
+ * };
|
||||
+ *
|
||||
+ * RH_KABI_AUX_SET_SIZE
|
||||
+ * RH_KABI_AUX_INIT_SIZE
|
||||
+ * Calculates and stores the size of the auxiliary structure.
|
||||
+ *
|
||||
+ * RH_KABI_AUX_SET_SIZE is for dynamically allocated base structs,
|
||||
+ * RH_KABI_AUX_INIT_SIZE is for statically allocated case structs.
|
||||
+ *
|
||||
+ * These macros must be called from the allocation (RH_KABI_AUX_SET_SIZE)
|
||||
+ * or declaration (RH_KABI_AUX_INIT_SIZE) site, regardless of whether
|
||||
+ * that happens in the kernel or in a module. Without calling one of
|
||||
+ * these macros, the aux struct will appear to have no fields to the
|
||||
+ * kernel.
|
||||
+ *
|
||||
+ * Note: since RH_KABI_AUX_SET_SIZE is intended to be invoked outside of
|
||||
+ * a struct definition, it does not add the semicolon and must be
|
||||
+ * terminated by semicolon by the caller.
|
||||
+ *
|
||||
+ * RH_KABI_AUX
|
||||
+ * Verifies that the given field exists in the given auxiliary structure.
|
||||
+ * This MUST be called prior to accessing that field; failing to do that
|
||||
+ * may lead to invalid memory access.
|
||||
+ *
|
||||
+ * The first argument is a pointer to the base struct, the second argument
|
||||
+ * is the name of the base struct (without the 'struct' keyword), the
|
||||
+ * third argument is the field name.
|
||||
+ *
|
||||
+ * This macro works for structs extended by either of RH_KABI_AUX_EMBED,
|
||||
+ * RH_KABI_AUX_PTR and RH_KABI_USE_AUX_PTR.
|
||||
+ *
|
||||
+ * RH_KABI_FORCE_CHANGE
|
||||
+ * Force change of the symbol checksum. The argument of the macro is a
|
||||
@ -2499,25 +2715,75 @@ index 000000000000..ea9c136bf884
|
||||
+ * of the size is not allowed and would constitute a silent kABI breakage.
|
||||
+ * Beware that the RH_KABI_EXCLUDE macro does not do any size checks.
|
||||
+ *
|
||||
+ * NOTE
|
||||
+ * Don't use ';' after these macros as it messes up the kABI checker by
|
||||
+ * changing what the resulting token string looks like. Instead let this
|
||||
+ * macro add the ';' so it can be properly hidden from the kABI checker
|
||||
+ * (mainly for RH_KABI_EXTEND, but applied to all macros for uniformity).
|
||||
+ * RH_KABI_BROKEN_INSERT
|
||||
+ * RH_KABI_BROKEN_REMOVE
|
||||
+ * Insert a field to the middle of a struct / delete a field from a struct.
|
||||
+ * Note that this breaks kABI! It can be done only when it's certain that
|
||||
+ * no 3rd party driver can validly reach into the struct. A typical
|
||||
+ * example is a struct that is: both (a) referenced only through a long
|
||||
+ * chain of pointers from another struct that is part of a whitelisted
|
||||
+ * symbol and (b) kernel internal only, it should have never been visible
|
||||
+ * to genksyms in the first place.
|
||||
+ *
|
||||
+ * Another example are structs that are explicitly exempt from kABI
|
||||
+ * guarantee but we did not have enough foresight to use RH_KABI_EXCLUDE.
|
||||
+ * In this case, the warning for RH_KABI_EXCLUDE applies.
|
||||
+ *
|
||||
+ * A detailed explanation of correctness of every RH_KABI_BROKEN_* macro
|
||||
+ * use is especially important.
|
||||
+ *
|
||||
+ * RH_KABI_BROKEN_INSERT_BLOCK
|
||||
+ * RH_KABI_BROKEN_REMOVE_BLOCK
|
||||
+ * A version of RH_KABI_BROKEN_INSERT / REMOVE that allows multiple fields
|
||||
+ * to be inserted or removed together. All fields need to be terminated
|
||||
+ * by ';' inside(!) the macro parameter. The macro itself must not be
|
||||
+ * terminated by ';'.
|
||||
+ *
|
||||
+ * RH_KABI_BROKEN_REPLACE
|
||||
+ * Replace a field by a different one without doing any checking. This
|
||||
+ * allows replacing a field by another with a different size. Similarly
|
||||
+ * to other RH_KABI_BROKEN macros, use of this indicates a kABI breakage.
|
||||
+ *
|
||||
+ * RH_KABI_BROKEN_INSERT_ENUM
|
||||
+ * RH_KABI_BROKEN_REMOVE_ENUM
|
||||
+ * Insert a field to the middle of an enumaration type / delete a field from
|
||||
+ * an enumaration type. Note that this can break kABI especially if the
|
||||
+ * number of enum fields is used in an array within a structure. It can be
|
||||
+ * done only when it is certain that no 3rd party driver will use the
|
||||
+ * enumeration type or a structure that embeds an array with size determined
|
||||
+ * by an enumeration type.
|
||||
+ *
|
||||
+ * RH_KABI_EXTEND_ENUM
|
||||
+ * Adds a new field to an enumeration type. This must always be added to
|
||||
+ * the end of the enum. Before using this macro, make sure this is actually
|
||||
+ * safe to do.
|
||||
+ */
|
||||
+
|
||||
+#undef linux
|
||||
+#define linux linux
|
||||
+
|
||||
+#ifdef __GENKSYMS__
|
||||
+
|
||||
+# define RH_KABI_CONST
|
||||
+# define RH_KABI_ADD_MODIFIER(_new)
|
||||
+# define RH_KABI_EXTEND(_new)
|
||||
+# define RH_KABI_FILL_HOLE(_new)
|
||||
+# define RH_KABI_FORCE_CHANGE(ver) __attribute__((rh_kabi_change ## ver))
|
||||
+# define RH_KABI_RENAME(_orig, _new) _orig
|
||||
+# define RH_KABI_HIDE_INCLUDE(_file) <linux/rh_kabi.h>
|
||||
+# define RH_KABI_FAKE_INCLUDE(_file) _file
|
||||
+# define RH_KABI_BROKEN_INSERT(_new)
|
||||
+# define RH_KABI_BROKEN_REMOVE(_orig) _orig;
|
||||
+# define RH_KABI_BROKEN_INSERT_BLOCK(_new)
|
||||
+# define RH_KABI_BROKEN_REMOVE_BLOCK(_orig) _orig
|
||||
+# define RH_KABI_BROKEN_REPLACE(_orig, _new) _orig;
|
||||
+# define RH_KABI_BROKEN_INSERT_ENUM(_new)
|
||||
+# define RH_KABI_BROKEN_REMOVE_ENUM(_orig) _orig,
|
||||
+# define RH_KABI_EXTEND_ENUM(_new)
|
||||
+
|
||||
+# define _RH_KABI_DEPRECATE(_type, _orig) _type _orig
|
||||
+# define _RH_KABI_DEPRECATE_FN(_type, _orig, _args...) _type (*_orig)(_args)
|
||||
+# define _RH_KABI_REPLACE(_orig, _new) _orig
|
||||
+# define _RH_KABI_REPLACE_UNSAFE(_orig, _new) _orig
|
||||
+# define _RH_KABI_EXCLUDE(_elem)
|
||||
+
|
||||
+#else
|
||||
@ -2525,11 +2791,21 @@ index 000000000000..ea9c136bf884
|
||||
+# define RH_KABI_ALIGN_WARNING ". Disable CONFIG_RH_KABI_SIZE_ALIGN_CHECKS if debugging."
|
||||
+
|
||||
+# define RH_KABI_CONST const
|
||||
+# define RH_KABI_ADD_MODIFIER(_new) _new
|
||||
+# define RH_KABI_EXTEND(_new) _new;
|
||||
+# define RH_KABI_FILL_HOLE(_new) _new;
|
||||
+# define RH_KABI_FORCE_CHANGE(ver)
|
||||
+# define RH_KABI_RENAME(_orig, _new) _new
|
||||
+
|
||||
+# define RH_KABI_HIDE_INCLUDE(_file) _file
|
||||
+# define RH_KABI_FAKE_INCLUDE(_file) <linux/rh_kabi.h>
|
||||
+# define RH_KABI_BROKEN_INSERT(_new) _new;
|
||||
+# define RH_KABI_BROKEN_REMOVE(_orig)
|
||||
+# define RH_KABI_BROKEN_INSERT_BLOCK(_new) _new
|
||||
+# define RH_KABI_BROKEN_REMOVE_BLOCK(_orig)
|
||||
+# define RH_KABI_BROKEN_REPLACE(_orig, _new) _new;
|
||||
+# define RH_KABI_BROKEN_INSERT_ENUM(_new) _new,
|
||||
+# define RH_KABI_BROKEN_REMOVE_ENUM(_orig)
|
||||
+# define RH_KABI_EXTEND_ENUM(_new) _new,
|
||||
+
|
||||
+#if IS_BUILTIN(CONFIG_RH_KABI_SIZE_ALIGN_CHECKS)
|
||||
+# define __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new) \
|
||||
@ -2560,47 +2836,56 @@ index 000000000000..ea9c136bf884
|
||||
+ } RH_KABI_UNIQUE_ID; \
|
||||
+ __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new); \
|
||||
+ }
|
||||
+# define _RH_KABI_REPLACE_UNSAFE(_orig, _new) _new
|
||||
+
|
||||
+# define _RH_KABI_EXCLUDE(_elem) _elem
|
||||
+
|
||||
+#endif /* __GENKSYMS__ */
|
||||
+
|
||||
+/* semicolon added wrappers for the RH_KABI_REPLACE macros */
|
||||
+# define RH_KABI_DEPRECATE(_type, _orig) _RH_KABI_DEPRECATE(_type, _orig);
|
||||
+# define RH_KABI_DEPRECATE_FN(_type, _orig, _args...) \
|
||||
+ _RH_KABI_DEPRECATE_FN(_type, _orig, _args);
|
||||
+# define RH_KABI_REPLACE(_orig, _new) _RH_KABI_REPLACE(_orig, _new);
|
||||
+# define RH_KABI_REPLACE_UNSAFE(_orig, _new) _RH_KABI_REPLACE_UNSAFE(_orig, _new);
|
||||
+/*
|
||||
+ * Macro for breaking up a random element into two smaller chunks using an
|
||||
+ * anonymous struct inside an anonymous union.
|
||||
+ */
|
||||
+# define RH_KABI_REPLACE2(orig, _new1, _new2) RH_KABI_REPLACE(orig, struct{ _new1; _new2;})
|
||||
+
|
||||
+#define _RH_KABI_REPLACE1(_new) _new;
|
||||
+#define _RH_KABI_REPLACE2(_new, ...) _new; _RH_KABI_REPLACE1(__VA_ARGS__)
|
||||
+#define _RH_KABI_REPLACE3(_new, ...) _new; _RH_KABI_REPLACE2(__VA_ARGS__)
|
||||
+#define _RH_KABI_REPLACE4(_new, ...) _new; _RH_KABI_REPLACE3(__VA_ARGS__)
|
||||
+#define _RH_KABI_REPLACE5(_new, ...) _new; _RH_KABI_REPLACE4(__VA_ARGS__)
|
||||
+#define _RH_KABI_REPLACE6(_new, ...) _new; _RH_KABI_REPLACE5(__VA_ARGS__)
|
||||
+#define _RH_KABI_REPLACE7(_new, ...) _new; _RH_KABI_REPLACE6(__VA_ARGS__)
|
||||
+#define _RH_KABI_REPLACE8(_new, ...) _new; _RH_KABI_REPLACE7(__VA_ARGS__)
|
||||
+#define _RH_KABI_REPLACE9(_new, ...) _new; _RH_KABI_REPLACE8(__VA_ARGS__)
|
||||
+#define _RH_KABI_REPLACE10(_new, ...) _new; _RH_KABI_REPLACE9(__VA_ARGS__)
|
||||
+#define _RH_KABI_REPLACE11(_new, ...) _new; _RH_KABI_REPLACE10(__VA_ARGS__)
|
||||
+#define _RH_KABI_REPLACE12(_new, ...) _new; _RH_KABI_REPLACE11(__VA_ARGS__)
|
||||
+
|
||||
+#define RH_KABI_REPLACE_SPLIT(_orig, ...) _RH_KABI_REPLACE(_orig, \
|
||||
+ struct { __PASTE(_RH_KABI_REPLACE, COUNT_ARGS(__VA_ARGS__))(__VA_ARGS__) });
|
||||
+
|
||||
+# define RH_KABI_RESERVE(n) _RH_KABI_RESERVE(n);
|
||||
+/*
|
||||
+ * Simple wrappers to replace standard Red Hat reserved elements.
|
||||
+ */
|
||||
+# define RH_KABI_USE(n, _new) RH_KABI_REPLACE(_RH_KABI_RESERVE(n), _new)
|
||||
+/*
|
||||
+ * Macros for breaking up a reserved element into two smaller chunks using
|
||||
+ * an anonymous struct inside an anonymous union.
|
||||
+ */
|
||||
+# define RH_KABI_USE2(n, _new1, _new2) RH_KABI_REPLACE(_RH_KABI_RESERVE(n), struct{ _new1; _new2; })
|
||||
+
|
||||
+/*
|
||||
+ * We tried to standardize on Red Hat reserved names. These wrappers
|
||||
+ * leverage those common names making it easier to read and find in the
|
||||
+ * code.
|
||||
+ */
|
||||
+#define _RH_KABI_USE1(n, _new) _RH_KABI_RESERVE(n), _new
|
||||
+#define _RH_KABI_USE2(n, ...) _RH_KABI_RESERVE(n); _RH_KABI_USE1(__VA_ARGS__)
|
||||
+#define _RH_KABI_USE3(n, ...) _RH_KABI_RESERVE(n); _RH_KABI_USE2(__VA_ARGS__)
|
||||
+#define _RH_KABI_USE4(n, ...) _RH_KABI_RESERVE(n); _RH_KABI_USE3(__VA_ARGS__)
|
||||
+#define _RH_KABI_USE5(n, ...) _RH_KABI_RESERVE(n); _RH_KABI_USE4(__VA_ARGS__)
|
||||
+#define _RH_KABI_USE6(n, ...) _RH_KABI_RESERVE(n); _RH_KABI_USE5(__VA_ARGS__)
|
||||
+#define _RH_KABI_USE7(n, ...) _RH_KABI_RESERVE(n); _RH_KABI_USE6(__VA_ARGS__)
|
||||
+#define _RH_KABI_USE8(n, ...) _RH_KABI_RESERVE(n); _RH_KABI_USE7(__VA_ARGS__)
|
||||
+#define _RH_KABI_USE9(n, ...) _RH_KABI_RESERVE(n); _RH_KABI_USE8(__VA_ARGS__)
|
||||
+#define _RH_KABI_USE10(n, ...) _RH_KABI_RESERVE(n); _RH_KABI_USE9(__VA_ARGS__)
|
||||
+#define _RH_KABI_USE11(n, ...) _RH_KABI_RESERVE(n); _RH_KABI_USE10(__VA_ARGS__)
|
||||
+#define _RH_KABI_USE12(n, ...) _RH_KABI_RESERVE(n); _RH_KABI_USE11(__VA_ARGS__)
|
||||
+
|
||||
+#define _RH_KABI_USE(...) _RH_KABI_REPLACE(__VA_ARGS__)
|
||||
+#define RH_KABI_USE(n, ...) _RH_KABI_USE(__PASTE(_RH_KABI_USE, COUNT_ARGS(__VA_ARGS__))(n, __VA_ARGS__));
|
||||
+
|
||||
+# define RH_KABI_USE_SPLIT(n, ...) RH_KABI_REPLACE_SPLIT(_RH_KABI_RESERVE(n), __VA_ARGS__)
|
||||
+
|
||||
+# define _RH_KABI_RESERVE(n) unsigned long rh_reserved##n
|
||||
+
|
||||
+#define RH_KABI_EXCLUDE(_elem) _RH_KABI_EXCLUDE(_elem);
|
||||
+
|
||||
+/*
|
||||
+ * Extending a struct while reserving extra space.
|
||||
+ */
|
||||
+#define RH_KABI_EXTEND_WITH_SIZE(_new, _size) \
|
||||
+ RH_KABI_EXTEND(union { \
|
||||
+ _new; \
|
||||
@ -2608,74 +2893,32 @@ index 000000000000..ea9c136bf884
|
||||
+ __RH_KABI_CHECK_SIZE(_new, 8 * (_size)); \
|
||||
+ })
|
||||
+
|
||||
+/*
|
||||
+ * RHEL macros to extend structs.
|
||||
+ *
|
||||
+ * base struct: The struct being extended. For example, pci_dev.
|
||||
+ * extended struct: The Red Hat struct being added to the base struct.
|
||||
+ * For example, pci_dev_rh.
|
||||
+ *
|
||||
+ * These macros should be used to extend structs before KABI freeze.
|
||||
+ * They can be used post-KABI freeze in the limited case of the base
|
||||
+ * struct not being embedded in another struct.
|
||||
+ *
|
||||
+ * Extended structs cannot be shrunk in size as changes will break
|
||||
+ * the size & offset comparison.
|
||||
+ *
|
||||
+ * Extended struct elements are not guaranteed for access by modules unless
|
||||
+ * explicitly commented as such in the declaration of the extended struct or
|
||||
+ * the element in the extended struct.
|
||||
+ */
|
||||
+
|
||||
+/*
|
||||
+ * RH_KABI_SIZE_AND_EXTEND|_PTR() extends a struct by embedding or adding
|
||||
+ * a pointer in a base struct. The name of the new struct is the name
|
||||
+ * of the base struct appended with _rh.
|
||||
+ */
|
||||
+#define _RH_KABI_SIZE_AND_EXTEND_PTR(_struct) \
|
||||
+#define _RH_KABI_AUX_PTR(_struct) \
|
||||
+ size_t _struct##_size_rh; \
|
||||
+ RH_KABI_EXCLUDE(struct _struct##_rh *_struct##_rh)
|
||||
+#define RH_KABI_SIZE_AND_EXTEND_PTR(_struct) \
|
||||
+ _RH_KABI_SIZE_AND_EXTEND_PTR(_struct)
|
||||
+ _RH_KABI_EXCLUDE(struct _struct##_rh *_rh)
|
||||
+#define RH_KABI_AUX_PTR(_struct) \
|
||||
+ _RH_KABI_AUX_PTR(_struct);
|
||||
+
|
||||
+#define _RH_KABI_SIZE_AND_EXTEND(_struct) \
|
||||
+#define _RH_KABI_AUX_EMBED(_struct) \
|
||||
+ size_t _struct##_size_rh; \
|
||||
+ RH_KABI_EXCLUDE(struct _struct##_rh _struct##_rh)
|
||||
+#define RH_KABI_SIZE_AND_EXTEND(_struct) \
|
||||
+ _RH_KABI_SIZE_AND_EXTEND(_struct)
|
||||
+ _RH_KABI_EXCLUDE(struct _struct##_rh _rh)
|
||||
+#define RH_KABI_AUX_EMBED(_struct) \
|
||||
+ _RH_KABI_AUX_EMBED(_struct);
|
||||
+
|
||||
+/*
|
||||
+ * RH_KABI_SET_SIZE calculates and sets the size of the extended struct and
|
||||
+ * stores it in the size_rh field for structs that are dynamically allocated.
|
||||
+ * This macro MUST be called when expanding a base struct with
|
||||
+ * RH_KABI_SIZE_AND_EXTEND, and it MUST be called from the allocation site
|
||||
+ * regardless of being allocated in the kernel or a module.
|
||||
+ * Note: since this macro is intended to be invoked outside of a struct,
|
||||
+ * a semicolon is necessary at the end of the line where it is invoked.
|
||||
+ */
|
||||
+#define RH_KABI_SET_SIZE(_name, _struct) ({ \
|
||||
+ _name->_struct##_size_rh = sizeof(struct _struct##_rh); \
|
||||
+#define RH_KABI_USE_AUX_PTR(n1, n2, _struct) \
|
||||
+ RH_KABI_USE(n1, n2, \
|
||||
+ struct { RH_KABI_AUX_PTR(_struct) })
|
||||
+
|
||||
+#define RH_KABI_AUX_SET_SIZE(_name, _struct) ({ \
|
||||
+ (_name)->_struct##_size_rh = sizeof(struct _struct##_rh); \
|
||||
+})
|
||||
+
|
||||
+/*
|
||||
+ * RH_KABI_INIT_SIZE calculates and sets the size of the extended struct and
|
||||
+ * stores it in the size_rh field for structs that are statically allocated.
|
||||
+ * This macro MUST be called when expanding a base struct with
|
||||
+ * RH_KABI_SIZE_AND_EXTEND, and it MUST be called from the declaration site
|
||||
+ * regardless of being allocated in the kernel or a module.
|
||||
+ */
|
||||
+#define RH_KABI_INIT_SIZE(_struct) \
|
||||
+#define RH_KABI_AUX_INIT_SIZE(_struct) \
|
||||
+ ._struct##_size_rh = sizeof(struct _struct##_rh),
|
||||
+
|
||||
+/*
|
||||
+ * RH_KABI_CHECK_EXT verifies allocated memory exists. This MUST be called to
|
||||
+ * verify that memory in the _rh struct is valid, and can be called
|
||||
+ * regardless if RH_KABI_SIZE_AND_EXTEND or RH_KABI_SIZE_AND_EXTEND_PTR is
|
||||
+ * used.
|
||||
+ */
|
||||
+#define RH_KABI_CHECK_EXT(_ptr, _struct, _field) ({ \
|
||||
+#define RH_KABI_AUX(_ptr, _struct, _field) ({ \
|
||||
+ size_t __off = offsetof(struct _struct##_rh, _field); \
|
||||
+ _ptr->_struct##_size_rh > __off ? true : false; \
|
||||
+ (_ptr)->_struct##_size_rh > __off ? true : false; \
|
||||
+})
|
||||
+
|
||||
+#endif /* _LINUX_RH_KABI_H */
|
||||
@ -2776,7 +3019,7 @@ index fa4505f9b611..1955a6f41b7b 100644
|
||||
IS_BUILTIN(CONFIG_BPF_UNPRIV_DEFAULT_OFF) ? 2 : 0;
|
||||
|
||||
diff --git a/kernel/module.c b/kernel/module.c
|
||||
index 24dab046e16c..0501ad302769 100644
|
||||
index 46a5c2ed1928..92c2306651ce 100644
|
||||
--- a/kernel/module.c
|
||||
+++ b/kernel/module.c
|
||||
@@ -743,6 +743,7 @@ static struct module_attribute modinfo_##field = { \
|
||||
|
6
sources
6
sources
@ -1,3 +1,3 @@
|
||||
SHA512 (linux-5.17-rc2-39-g9f7fb8de5d9b.tar.xz) = a7c7944a8e7b534e9c6047cc6d2ff843e652ed5cfe2239eb20baa24e9d7c0d06af7a7903397e749bbfa6761e6bc0584a4267e2da044b123e426688d3378ec6ad
|
||||
SHA512 (kernel-abi-stablelists-5.17.0-0.rc2.20220202git9f7fb8de5d9b.84.tar.bz2) = da3476aaa105c25cda78679b677a948081ca45d98a553b8f714923ae1a614e29b88e635771e3594ac12ce75568e68e8077e9bdf91d142ee2ff1f88b4471d8928
|
||||
SHA512 (kernel-kabi-dw-5.17.0-0.rc2.20220202git9f7fb8de5d9b.84.tar.bz2) = dd5a78a760cfcc643b90540ae9143b99ce069a30b37f557c943b27a1db3c89fdce4947aae0296b9955fc71501473bd3248458145dffaa0c01d61d0ad124a8182
|
||||
SHA512 (linux-5.17-rc2-167-gdcb85f85fa6f.tar.xz) = f9b84a039e5df5778bc4543fe326cf9099f146ef527731209474897d6e5ba9bdd402ac4d67fb0fbc800caf3bf638794a23c9282e4ca796576e4de1447f29138b
|
||||
SHA512 (kernel-abi-stablelists-5.17.0-0.rc2.20220204gitdcb85f85fa6f.86.tar.bz2) = 02101168f838b527fb876ff678f6a00f34ad5fc4c40f0918a6f5ffccc2159795efb7ce8d40cbd50ee61f6bb0c4f3fa869ad1c73610150dc2cb2da2e87dddda79
|
||||
SHA512 (kernel-kabi-dw-5.17.0-0.rc2.20220204gitdcb85f85fa6f.86.tar.bz2) = fc787e9fe1a9db729866a68206ef5888b15014aaabd317442686cbf991e01b22c2c51db986bd2992600b4588f92f46a1b777e2b434185bb0a101af5a267ef74c
|
||||
|
Loading…
Reference in New Issue
Block a user