diff --git a/.gitignore b/.gitignore index e69de29bb..12d63e1fd 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,2 @@ +*.xz +*.bz2 diff --git a/Makefile.rhelver b/Makefile.rhelver new file mode 100644 index 000000000..d6af8b391 --- /dev/null +++ b/Makefile.rhelver @@ -0,0 +1,45 @@ +RHEL_MAJOR = 8 +RHEL_MINOR = 99 + +# +# RHEL_RELEASE +# ------------- +# +# Represents build number in 'release' part of RPM's name-version-release. +# name is , e.g. kernel +# version is upstream kernel version this kernel is based on, e.g. 4.18.0 +# release is .[], e.g. 100.el8 +# +# Use this spot to avoid future merge conflicts. +# Do not trim this comment. +RHEL_RELEASE = 41 + +# +# Early y+1 numbering +# -------------------- +# +# In early y+1 process, RHEL_RELEASE consists of 2 numbers: x.y +# First is RHEL_RELEASE inherited/merged from y as-is, second number +# is incremented with each build starting from 1. After merge from y, +# it resets back to 1. This way y+1 nvr reflects status of last merge. +# +# Example: +# +# rhel8.0 rhel-8.1 +# kernel-4.18.0-58.el8 --> kernel-4.18.0-58.1.el8 +# kernel-4.18.0-58.2.el8 +# kernel-4.18.0-59.el8 kernel-4.18.0-59.1.el8 +# kernel-4.18.0-60.el8 +# kernel-4.18.0-61.el8 --> kernel-4.18.0-61.1.el8 +# +# +# Use this spot to avoid future merge conflicts. +# Do not trim this comment. +EARLY_YSTREAM ?= no +EARLY_YBUILD:= +EARLY_YRELEASE:= +ifneq ("$(ZSTREAM)", "yes") + ifeq ("$(EARLY_YSTREAM)","yes") + RHEL_RELEASE:=$(RHEL_RELEASE).$(EARLY_YRELEASE) + endif +endif diff --git a/Module.kabi_aarch64 b/Module.kabi_aarch64 new file mode 100644 index 000000000..e69de29bb diff --git a/Module.kabi_dup_aarch64 b/Module.kabi_dup_aarch64 new file mode 100644 index 000000000..e69de29bb diff --git a/Module.kabi_dup_ppc64le b/Module.kabi_dup_ppc64le new file mode 100644 index 000000000..e69de29bb diff --git a/Module.kabi_dup_s390x b/Module.kabi_dup_s390x new file mode 100644 index 000000000..e69de29bb diff --git a/Module.kabi_dup_x86_64 b/Module.kabi_dup_x86_64 new file mode 100644 index 000000000..e69de29bb diff --git a/Module.kabi_ppc64le b/Module.kabi_ppc64le new file mode 100644 index 000000000..e69de29bb diff --git a/Module.kabi_s390x b/Module.kabi_s390x new file mode 100644 index 000000000..e69de29bb diff --git a/Module.kabi_x86_64 b/Module.kabi_x86_64 new file mode 100644 index 000000000..e69de29bb diff --git a/Patchlist.changelog b/Patchlist.changelog new file mode 100644 index 000000000..5f50ee085 --- /dev/null +++ b/Patchlist.changelog @@ -0,0 +1,219 @@ +https://gitlab.com/cki-project/kernel-ark/-/commit/514c3a2c3adc4a97d99c39c8e91327740a54807c + 514c3a2c3adc4a97d99c39c8e91327740a54807c Filter out LTO build options from the perl ccopts + +https://gitlab.com/cki-project/kernel-ark/-/commit/7638e86597c1d8e311a2934d4fc8d1baf86cc248 + 7638e86597c1d8e311a2934d4fc8d1baf86cc248 Work around for gcc bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96377 + +https://gitlab.com/cki-project/kernel-ark/-/commit/17b0f7f1d49df30661b517d668715ff5ee1bab09 + 17b0f7f1d49df30661b517d668715ff5ee1bab09 Fixes "acpi: prefer booting with ACPI over DTS" to be RHEL only + +https://gitlab.com/cki-project/kernel-ark/-/commit/e7c009cd91ababdbb5f726ef592c7800f0682d3a + e7c009cd91ababdbb5f726ef592c7800f0682d3a arch/x86: Remove vendor specific CPU ID checks + +https://gitlab.com/cki-project/kernel-ark/-/commit/7120b2a26fc4c7954fd0395973dc6739c110e091 + 7120b2a26fc4c7954fd0395973dc6739c110e091 redhat: Replace hardware.redhat.com link in Unsupported message + +https://gitlab.com/cki-project/kernel-ark/-/commit/7a28e2fde653a161913abb8eee943cdacb5ff2ae + 7a28e2fde653a161913abb8eee943cdacb5ff2ae x86: Fix compile issues with rh_check_supported() + +https://gitlab.com/cki-project/kernel-ark/-/commit/45f64c1a24e73af7987cffec3ea941e29364f87f + 45f64c1a24e73af7987cffec3ea941e29364f87f e1000e: bump up timeout to wait when ME un-configure ULP mode + +https://gitlab.com/cki-project/kernel-ark/-/commit/6c14763b1ce98698949ff45135c15e333aa6416d + 6c14763b1ce98698949ff45135c15e333aa6416d drm/sun4i: sun6i_mipi_dsi: fix horizontal timing calculation + +https://gitlab.com/cki-project/kernel-ark/-/commit/67a19b16012b12cffba0b515c6503e5f8cdbb798 + 67a19b16012b12cffba0b515c6503e5f8cdbb798 drm: panel: add Xingbangda XBD599 panel + +https://gitlab.com/cki-project/kernel-ark/-/commit/d220dbf98cef820367b5a2a2eeaacebee958bdd4 + d220dbf98cef820367b5a2a2eeaacebee958bdd4 dt-bindings: panel: add binding for Xingbangda XBD599 panel + +https://gitlab.com/cki-project/kernel-ark/-/commit/80660062260dec4bdca9540922577542c16145e8 + 80660062260dec4bdca9540922577542c16145e8 ARM: fix __get_user_check() in case uaccess_* calls are not inlined + +https://gitlab.com/cki-project/kernel-ark/-/commit/24d8743613b2a6a585fc68cfe95078d9a3d5b389 + 24d8743613b2a6a585fc68cfe95078d9a3d5b389 mm/kmemleak: skip late_init if not skip disable + +https://gitlab.com/cki-project/kernel-ark/-/commit/b697ff5e26974fee8fcd31a1e221e9dd41515efc + b697ff5e26974fee8fcd31a1e221e9dd41515efc KEYS: Make use of platform keyring for module signature verify + +https://gitlab.com/cki-project/kernel-ark/-/commit/081d2185e22479b449586c4e9843602ca0d49806 + 081d2185e22479b449586c4e9843602ca0d49806 Drop that for now + +https://gitlab.com/cki-project/kernel-ark/-/commit/5ef51389cf6673a0e9e004909c7be1dc785050b2 + 5ef51389cf6673a0e9e004909c7be1dc785050b2 Input: rmi4 - remove the need for artificial IRQ in case of HID + +https://gitlab.com/cki-project/kernel-ark/-/commit/c1788012ebf8de46e9dc80d18051ed0c77c811b6 + c1788012ebf8de46e9dc80d18051ed0c77c811b6 ARM: tegra: usb no reset + +https://gitlab.com/cki-project/kernel-ark/-/commit/577365feaa909db4c0949eabfcda7e4a972b8e54 + 577365feaa909db4c0949eabfcda7e4a972b8e54 arm: make CONFIG_HIGHPTE optional without CONFIG_EXPERT + +https://gitlab.com/cki-project/kernel-ark/-/commit/331be9c5a436057ee852075c102d9d90a9046a30 + 331be9c5a436057ee852075c102d9d90a9046a30 redhat: rh_kabi: deduplication friendly structs + +https://gitlab.com/cki-project/kernel-ark/-/commit/34d79fbfb327f732ebf3ece4db21a14f81fedf03 + 34d79fbfb327f732ebf3ece4db21a14f81fedf03 redhat: rh_kabi add a comment with warning about RH_KABI_EXCLUDE usage + +https://gitlab.com/cki-project/kernel-ark/-/commit/93a4b5f12d5a1c2d62cf1d7c440b31d9847eab07 + 93a4b5f12d5a1c2d62cf1d7c440b31d9847eab07 redhat: rh_kabi: introduce RH_KABI_EXTEND_WITH_SIZE + +https://gitlab.com/cki-project/kernel-ark/-/commit/8e5c06356457f5351289e9f687b991189d163dae + 8e5c06356457f5351289e9f687b991189d163dae redhat: rh_kabi: Indirect EXTEND macros so nesting of other macros will resolve. + +https://gitlab.com/cki-project/kernel-ark/-/commit/212cbccda77cc81fcb60123907eabdac8ad5adb7 + 212cbccda77cc81fcb60123907eabdac8ad5adb7 redhat: rh_kabi: Fix RH_KABI_SET_SIZE to use dereference operator + +https://gitlab.com/cki-project/kernel-ark/-/commit/6f7744b412e1fb86a67d8761e64df69cf891b4ad + 6f7744b412e1fb86a67d8761e64df69cf891b4ad redhat: rh_kabi: Add macros to size and extend structs + +https://gitlab.com/cki-project/kernel-ark/-/commit/049623d33998be30d79692c69b34acb502c496e3 + 049623d33998be30d79692c69b34acb502c496e3 Removing Obsolete hba pci-ids from rhel8 + +https://gitlab.com/cki-project/kernel-ark/-/commit/43ef1d631ecfe84084db3572c9ed1bedbdceb0f8 + 43ef1d631ecfe84084db3572c9ed1bedbdceb0f8 mptsas: pci-id table changes + +https://gitlab.com/cki-project/kernel-ark/-/commit/e5726695109dd1a73da92487b75de6a51d54c015 + e5726695109dd1a73da92487b75de6a51d54c015 mptsas: Taint kernel if mptsas is loaded + +https://gitlab.com/cki-project/kernel-ark/-/commit/ee4dcd6f04ca76ad35ab0f38c436ab2f7de53f16 + ee4dcd6f04ca76ad35ab0f38c436ab2f7de53f16 mptspi: pci-id table changes + +https://gitlab.com/cki-project/kernel-ark/-/commit/bd305f716d8b64be1926bc7aebe02468ac6bf599 + bd305f716d8b64be1926bc7aebe02468ac6bf599 qla2xxx: Remove PCI IDs of deprecated adapter + +https://gitlab.com/cki-project/kernel-ark/-/commit/803ff9a2c660c094e14d246ef05019bf6008d503 + 803ff9a2c660c094e14d246ef05019bf6008d503 be2iscsi: remove unsupported device IDs + +https://gitlab.com/cki-project/kernel-ark/-/commit/2cb24399321f555f18b0804d3fe02cf53949fba1 + 2cb24399321f555f18b0804d3fe02cf53949fba1 mptspi: Taint kernel if mptspi is loaded + +https://gitlab.com/cki-project/kernel-ark/-/commit/ad1740551ff4af49f1ef10a130783d9369e955a0 + ad1740551ff4af49f1ef10a130783d9369e955a0 hpsa: remove old cciss-based smartarray pci ids + +https://gitlab.com/cki-project/kernel-ark/-/commit/4197ba3e766656eea9175c11ed05903620d98a28 + 4197ba3e766656eea9175c11ed05903620d98a28 qla4xxx: Remove deprecated PCI IDs from RHEL 8 + +https://gitlab.com/cki-project/kernel-ark/-/commit/7e285aec22ab1213639afda877902db363473cb0 + 7e285aec22ab1213639afda877902db363473cb0 aacraid: Remove depreciated device and vendor PCI id's + +https://gitlab.com/cki-project/kernel-ark/-/commit/846109a16be92155e69731c36dde48761d375153 + 846109a16be92155e69731c36dde48761d375153 megaraid_sas: remove deprecated pci-ids + +https://gitlab.com/cki-project/kernel-ark/-/commit/6fd2019d01cee7ff36dc047d3ecdb504b968f222 + 6fd2019d01cee7ff36dc047d3ecdb504b968f222 mpt*: remove certain deprecated pci-ids + +https://gitlab.com/cki-project/kernel-ark/-/commit/dddcd5c1129b275ff160324036a662739db51fc3 + dddcd5c1129b275ff160324036a662739db51fc3 kernel: add SUPPORT_REMOVED kernel taint + +https://gitlab.com/cki-project/kernel-ark/-/commit/08d77161dba915d1ed0d9fede658085440ab4474 + 08d77161dba915d1ed0d9fede658085440ab4474 Rename RH_DISABLE_DEPRECATED to RHEL_DIFFERENCES + +https://gitlab.com/cki-project/kernel-ark/-/commit/e2dc2ca6a25a445bf22ceb6a8e38e02706605341 + e2dc2ca6a25a445bf22ceb6a8e38e02706605341 Add option of 13 for FORCE_MAX_ZONEORDER + +https://gitlab.com/cki-project/kernel-ark/-/commit/2384646bf71d8c282cf49bb20321fdf802c61cce + 2384646bf71d8c282cf49bb20321fdf802c61cce s390: Lock down the kernel when the IPL secure flag is set + +https://gitlab.com/cki-project/kernel-ark/-/commit/5850c93175b9d2e1081873f4bbe08dead202cb08 + 5850c93175b9d2e1081873f4bbe08dead202cb08 efi: Lock down the kernel if booted in secure boot mode + +https://gitlab.com/cki-project/kernel-ark/-/commit/53250b991f841be025fa4d264850dadc0fae2861 + 53250b991f841be025fa4d264850dadc0fae2861 efi: Add an EFI_SECURE_BOOT flag to indicate secure boot mode + +https://gitlab.com/cki-project/kernel-ark/-/commit/72223fd1241cc5c70b96a491db14d54c83beadd8 + 72223fd1241cc5c70b96a491db14d54c83beadd8 security: lockdown: expose a hook to lock the kernel down + +https://gitlab.com/cki-project/kernel-ark/-/commit/7ba28f03674fa9346610c3fea7fc93bc58f06d2a + 7ba28f03674fa9346610c3fea7fc93bc58f06d2a Make get_cert_list() use efi_status_to_str() to print error messages. + +https://gitlab.com/cki-project/kernel-ark/-/commit/2ae9082db0b54d831a9b3782c049d9917e37d89f + 2ae9082db0b54d831a9b3782c049d9917e37d89f Add efi_status_to_str() and rework efi_status_to_err(). + +https://gitlab.com/cki-project/kernel-ark/-/commit/cee1461ada1b7e4b92cd154e7ec241119afcd644 + cee1461ada1b7e4b92cd154e7ec241119afcd644 Add support for deprecating processors + +https://gitlab.com/cki-project/kernel-ark/-/commit/2420149f8f5fa9dd1e2dc793765b498022922a81 + 2420149f8f5fa9dd1e2dc793765b498022922a81 arm: aarch64: Drop the EXPERT setting from ARM64_FORCE_52BIT + +https://gitlab.com/cki-project/kernel-ark/-/commit/1d69b30b98b60aff639351f5788d20a3b17f6e27 + 1d69b30b98b60aff639351f5788d20a3b17f6e27 iommu/arm-smmu: workaround DMA mode issues + +https://gitlab.com/cki-project/kernel-ark/-/commit/6b2e73e508e7a117b1db91596097c00e5570f64a + 6b2e73e508e7a117b1db91596097c00e5570f64a rh_kabi: introduce RH_KABI_EXCLUDE + +https://gitlab.com/cki-project/kernel-ark/-/commit/ecb9206bce179eb600c52642a6753012a69ce4a2 + ecb9206bce179eb600c52642a6753012a69ce4a2 ipmi: do not configure ipmi for HPE m400 + +https://gitlab.com/cki-project/kernel-ark/-/commit/473be59fe72afa9969cf8d10609ef3f14f594631 + 473be59fe72afa9969cf8d10609ef3f14f594631 IB/rxe: Mark Soft-RoCE Transport driver as tech-preview + +https://gitlab.com/cki-project/kernel-ark/-/commit/b94117795261f9c074a7addca2252238871b5081 + b94117795261f9c074a7addca2252238871b5081 scsi: smartpqi: add inspur advantech ids + +https://gitlab.com/cki-project/kernel-ark/-/commit/cae871558c333880c1687cab6f2a71accf40d105 + cae871558c333880c1687cab6f2a71accf40d105 ice: mark driver as tech-preview + +https://gitlab.com/cki-project/kernel-ark/-/commit/7d9cb007404211ea6638bde4a28dd0fbe8d95de0 + 7d9cb007404211ea6638bde4a28dd0fbe8d95de0 kABI: Add generic kABI macros to use for kABI workarounds + +https://gitlab.com/cki-project/kernel-ark/-/commit/bd353e9aae8877dd490e6c92b67849e0dcfbab25 + bd353e9aae8877dd490e6c92b67849e0dcfbab25 add pci_hw_vendor_status() + +https://gitlab.com/cki-project/kernel-ark/-/commit/41a259999969bbdfe9f556ce71f2c3c07d7454f4 + 41a259999969bbdfe9f556ce71f2c3c07d7454f4 ahci: thunderx2: Fix for errata that affects stop engine + +https://gitlab.com/cki-project/kernel-ark/-/commit/2a107343529ce648c11bff62e9f72bbeec738f3f + 2a107343529ce648c11bff62e9f72bbeec738f3f Vulcan: AHCI PCI bar fix for Broadcom Vulcan early silicon + +https://gitlab.com/cki-project/kernel-ark/-/commit/03e48a48f400a51a182a1254cf22ff0c08706d76 + 03e48a48f400a51a182a1254cf22ff0c08706d76 bpf: Add tech preview taint for syscall + +https://gitlab.com/cki-project/kernel-ark/-/commit/607f0e89af7ef5682f79f2eea0a99638a1bc0c4f + 607f0e89af7ef5682f79f2eea0a99638a1bc0c4f bpf: set unprivileged_bpf_disabled to 1 by default, add a boot parameter + +https://gitlab.com/cki-project/kernel-ark/-/commit/31da227877eb734ddb484bc519aae85ce200802e + 31da227877eb734ddb484bc519aae85ce200802e add Red Hat-specific taint flags + +https://gitlab.com/cki-project/kernel-ark/-/commit/7a2e2c83be0230667756cccb5bc3687419dfbb8b + 7a2e2c83be0230667756cccb5bc3687419dfbb8b kdump: fix a grammar issue in a kernel message + +https://gitlab.com/cki-project/kernel-ark/-/commit/d345d54d33e7d496c9d845e4723550dd37cb3f88 + d345d54d33e7d496c9d845e4723550dd37cb3f88 tags.sh: Ignore redhat/rpm + +https://gitlab.com/cki-project/kernel-ark/-/commit/5c67dc1eb0783a5c4ca4eb5c545ff6fe05facff0 + 5c67dc1eb0783a5c4ca4eb5c545ff6fe05facff0 put RHEL info into generated headers + +https://gitlab.com/cki-project/kernel-ark/-/commit/ce12884c009ec3bed11100c9d19f6d97628cf8ae + ce12884c009ec3bed11100c9d19f6d97628cf8ae kdump: add support for crashkernel=auto + +https://gitlab.com/cki-project/kernel-ark/-/commit/18fb1389afccdc5535977a10669b49a37829b55a + 18fb1389afccdc5535977a10669b49a37829b55a kdump: round up the total memory size to 128M for crashkernel reservation + +https://gitlab.com/cki-project/kernel-ark/-/commit/5fb9821441cc0b77101ad9c0dfaa747957a4cce4 + 5fb9821441cc0b77101ad9c0dfaa747957a4cce4 acpi: prefer booting with ACPI over DTS + +https://gitlab.com/cki-project/kernel-ark/-/commit/0cf21a40db6fca5d89cf3d65808117c8c14e524e + 0cf21a40db6fca5d89cf3d65808117c8c14e524e aarch64: acpi scan: Fix regression related to X-Gene UARTs + +https://gitlab.com/cki-project/kernel-ark/-/commit/de13e14cc2388478d9a2c68c5d90affd92098f11 + de13e14cc2388478d9a2c68c5d90affd92098f11 ACPI / irq: Workaround firmware issue on X-Gene based m400 + +https://gitlab.com/cki-project/kernel-ark/-/commit/71c098f4afa38a15a95495c14f71fb087ab27308 + 71c098f4afa38a15a95495c14f71fb087ab27308 modules: add rhelversion MODULE_INFO tag + +https://gitlab.com/cki-project/kernel-ark/-/commit/3247f9c838f4aa91aa5d08c152b385d61554d4b5 + 3247f9c838f4aa91aa5d08c152b385d61554d4b5 ACPI: APEI: arm64: Ignore broken HPE moonshot APEI support + +https://gitlab.com/cki-project/kernel-ark/-/commit/e80982feaa68226ff60d2f83dace2016c35270d3 + e80982feaa68226ff60d2f83dace2016c35270d3 Add Red Hat tainting + +https://gitlab.com/cki-project/kernel-ark/-/commit/2987f9a606df106f5bdfa4113eb55356a21085a6 + 2987f9a606df106f5bdfa4113eb55356a21085a6 Introduce CONFIG_RH_DISABLE_DEPRECATED + +https://gitlab.com/cki-project/kernel-ark/-/commit/a99885a5e77af594dfdce586cc83e5911d8401ce + a99885a5e77af594dfdce586cc83e5911d8401ce Pull the RHEL version defines out of the Makefile + +https://gitlab.com/cki-project/kernel-ark/-/commit/cd3a5d30570279538623ea8a1255db0ee4b728f7 + cd3a5d30570279538623ea8a1255db0ee4b728f7 [initial commit] Add Red Hat variables in the top level makefile + diff --git a/README.rst b/README.rst new file mode 100644 index 000000000..5de37e5bb --- /dev/null +++ b/README.rst @@ -0,0 +1,25 @@ +=================== +The Kernel dist-git +=================== + +The kernel is maintained in a `source tree`_ rather than directly in dist-git. +The specfile is maintained as a `template`_ in the source tree along with a set +of build scripts to generate configurations, (S)RPMs, and to populate the +dist-git repository. + +The `documentation`_ for the source tree covers how to contribute and maintain +the tree. + +If you're looking for the downstream patch set it's available in the source +tree with "git log master..ark-patches" or +`online`_. + +Each release in dist-git is tagged in the source repository so you can easily +check out the source tree for a build. The tags are in the format +name-version-release, but note release doesn't contain the dist tag since the +source can be built in different build roots (Fedora, CentOS, etc.) + +.. _source tree: https://gitlab.com/cki-project/kernel-ark.git +.. _template: https://gitlab.com/cki-project/kernel-ark/-/blob/os-build/redhat/kernel.spec.template +.. _documentation: https://gitlab.com/cki-project/kernel-ark/-/wikis/home +.. _online: https://gitlab.com/cki-project/kernel-ark/-/commits/ark-patches diff --git a/check-kabi b/check-kabi new file mode 100755 index 000000000..f9d4dcb84 --- /dev/null +++ b/check-kabi @@ -0,0 +1,149 @@ +#!/usr/bin/python3 +# +# check-kabi - Red Hat kABI reference checking tool +# +# We use this script to check against reference Module.kabi files. +# +# Author: Jon Masters +# Copyright (C) 2007-2009 Red Hat, Inc. +# +# This software may be freely redistributed under the terms of the GNU +# General Public License (GPL). + +# Changelog: +# +# 2018/06/01 - Update for python3 by Petr Oros. +# 2009/08/15 - Updated for use in RHEL6. +# 2007/06/13 - Initial rewrite in python by Jon Masters. + +__author__ = "Jon Masters " +__version__ = "2.0" +__date__ = "2009/08/15" +__copyright__ = "Copyright (C) 2007-2009 Red Hat, Inc" +__license__ = "GPL" + +import getopt +import string +import sys + +true = 1 +false = 0 + + +def load_symvers(symvers, filename): + """Load a Module.symvers file.""" + + symvers_file = open(filename, "r") + + while true: + in_line = symvers_file.readline() + if in_line == "": + break + if in_line == "\n": + continue + checksum, symbol, directory, type = in_line.split() + + symvers[symbol] = in_line[0:-1] + + +def load_kabi(kabi, filename): + """Load a Module.kabi file.""" + + kabi_file = open(filename, "r") + + while true: + in_line = kabi_file.readline() + if in_line == "": + break + if in_line == "\n": + continue + checksum, symbol, directory, type = in_line.split() + + kabi[symbol] = in_line[0:-1] + + +def check_kabi(symvers, kabi): + """Check Module.kabi and Module.symvers files.""" + + fail = 0 + warn = 0 + changed_symbols = [] + moved_symbols = [] + + for symbol in kabi: + abi_hash, abi_sym, abi_dir, abi_type = kabi[symbol].split() + if symbol in symvers: + sym_hash, sym_sym, sym_dir, sym_type = symvers[symbol].split() + if abi_hash != sym_hash: + fail = 1 + changed_symbols.append(symbol) + + if abi_dir != sym_dir: + warn = 1 + moved_symbols.append(symbol) + else: + fail = 1 + changed_symbols.append(symbol) + + if fail: + print("*** ERROR - ABI BREAKAGE WAS DETECTED ***") + print("") + print("The following symbols have been changed (this will cause an ABI breakage):") + print("") + for symbol in changed_symbols: + print(symbol) + print("") + + if warn: + print("*** WARNING - ABI SYMBOLS MOVED ***") + print("") + print("The following symbols moved (typically caused by moving a symbol from being") + print("provided by the kernel vmlinux out to a loadable module):") + print("") + for symbol in moved_symbols: + print(symbol) + print("") + + """Halt the build, if we got errors and/or warnings. In either case, + double-checkig is required to avoid introducing / concealing + KABI inconsistencies.""" + if fail or warn: + sys.exit(1) + sys.exit(0) + + +def usage(): + print(""" +check-kabi: check Module.kabi and Module.symvers files. + + check-kabi [ -k Module.kabi ] [ -s Module.symvers ] + +""") + + +if __name__ == "__main__": + + symvers_file = "" + kabi_file = "" + + opts, args = getopt.getopt(sys.argv[1:], 'hk:s:') + + for o, v in opts: + if o == "-s": + symvers_file = v + if o == "-h": + usage() + sys.exit(0) + if o == "-k": + kabi_file = v + + if (symvers_file == "") or (kabi_file == ""): + usage() + sys.exit(1) + + symvers = {} + kabi = {} + + load_symvers(symvers, symvers_file) + load_kabi(kabi, kabi_file) + check_kabi(symvers, kabi) diff --git a/cpupower.config b/cpupower.config new file mode 100644 index 000000000..8629a4a3e --- /dev/null +++ b/cpupower.config @@ -0,0 +1,3 @@ +# See 'cpupower help' and cpupower(1) for more info +CPUPOWER_START_OPTS="frequency-set -g performance" +CPUPOWER_STOP_OPTS="frequency-set -g ondemand" diff --git a/cpupower.service b/cpupower.service new file mode 100644 index 000000000..5f10ab7ee --- /dev/null +++ b/cpupower.service @@ -0,0 +1,13 @@ +[Unit] +Description=Configure CPU power related settings +After=syslog.target + +[Service] +Type=oneshot +RemainAfterExit=yes +EnvironmentFile=/etc/sysconfig/cpupower +ExecStart=/usr/bin/cpupower $CPUPOWER_START_OPTS +ExecStop=/usr/bin/cpupower $CPUPOWER_STOP_OPTS + +[Install] +WantedBy=multi-user.target diff --git a/filter-aarch64.sh.fedora b/filter-aarch64.sh.fedora new file mode 100644 index 000000000..969c48236 --- /dev/null +++ b/filter-aarch64.sh.fedora @@ -0,0 +1,18 @@ +#! /bin/bash + +# This is the aarch64 override file for the core/drivers package split. The +# module directories listed here and in the generic list in filter-modules.sh +# will be moved to the resulting kernel-modules package for this arch. +# Anything not listed in those files will be in the kernel-core package. +# +# Please review the default list in filter-modules.sh before making +# modifications to the overrides below. If something should be removed across +# all arches, remove it in the default instead of per-arch. + +driverdirs="atm auxdisplay bcma bluetooth firewire fmc fpga infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia power ssb soundwire staging tty uio uwb w1" + +ethdrvs="3com adaptec arc alteon atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell micrel myricom neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti via wiznet xircom" + +drmdrvs="amd arm bridge ast exynos hisilicon i2c imx mgag200 meson msm nouveau panel pl111 radeon rockchip tegra sun4i sun4i-drm-hdmi tinydrm vc4" + +singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls rnbd-client rnbd-server mlx5_vdpa" diff --git a/filter-aarch64.sh.rhel b/filter-aarch64.sh.rhel new file mode 100644 index 000000000..e088c8e9f --- /dev/null +++ b/filter-aarch64.sh.rhel @@ -0,0 +1,18 @@ +#! /bin/bash + +# This is the aarch64 override file for the core/drivers package split. The +# module directories listed here and in the generic list in filter-modules.sh +# will be moved to the resulting kernel-modules package for this arch. +# Anything not listed in those files will be in the kernel-core package. +# +# Please review the default list in filter-modules.sh before making +# modifications to the overrides below. If something should be removed across +# all arches, remove it in the default instead of per-arch. + +driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn leds media memstick message mmc mtd mwave nfc ntb pcmcia platform power ssb staging tty uio uwb w1" + +ethdrvs="3com adaptec arc alteon atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell micrel myricom neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti via wiznet xircom" + +drmdrvs="amd arm bridge ast exynos hisilicon i2c imx mgag200 meson msm nouveau panel radeon rockchip tegra sun4i tinydrm vc4" + +singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls" diff --git a/filter-armv7hl.sh.fedora b/filter-armv7hl.sh.fedora new file mode 100644 index 000000000..3602743b1 --- /dev/null +++ b/filter-armv7hl.sh.fedora @@ -0,0 +1,18 @@ +#! /bin/bash + +# This is the armv7hl override file for the core/drivers package split. The +# module directories listed here and in the generic list in filter-modules.sh +# will be moved to the resulting kernel-modules package for this arch. +# Anything not listed in those files will be in the kernel-core package. +# +# Please review the default list in filter-modules.sh before making +# modifications to the overrides below. If something should be removed across +# all arches, remove it in the default instead of per-arch. + +driverdirs="atm auxdisplay bcma bluetooth firewire fmc fpga infiniband isdn media memstick message nfc ntb pcmcia ssb soundwire staging tty uio uwb w1" + +ethdrvs="3com adaptec alteon altera amd atheros broadcom cadence chelsio cisco dec dlink emulex icplus mellanox micrel myricom natsemi neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis sun tehuti via wiznet xircom" + +drmdrvs="amd arm armada bridge ast exynos etnaviv hisilicon i2c imx meson mgag200 msm nouveau omapdrm panel pl111 radeon rockchip sti stm sun4i sun4i-drm-hdmi tegra tilcdc tinydrm vc4" + +singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls bq27xxx_battery_hdq mlx5_vdpa" diff --git a/filter-armv7hl.sh.rhel b/filter-armv7hl.sh.rhel new file mode 100644 index 000000000..e69de29bb diff --git a/filter-i686.sh.fedora b/filter-i686.sh.fedora new file mode 100644 index 000000000..1a13ddf60 --- /dev/null +++ b/filter-i686.sh.fedora @@ -0,0 +1,14 @@ +#! /bin/bash + +# This is the i686 override file for the core/drivers package split. The +# module directories listed here and in the generic list in filter-modules.sh +# will be moved to the resulting kernel-modules package for this arch. +# Anything not listed in those files will be in the kernel-core package. +# +# Please review the default list in filter-modules.sh before making +# modifications to the overrides below. If something should be removed across +# all arches, remove it in the default instead of per-arch. + +driverdirs="atm auxdisplay bcma bluetooth firewire fmc fpga infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb soundwire staging tty uio uwb w1" + +singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub hid-sensor-magn-3d hid-sensor-incl-3d hid-sensor-gyro-3d hid-sensor-iio-common hid-sensor-accel-3d hid-sensor-trigger hid-sensor-als hid-sensor-rotation hid-sensor-temperature hid-sensor-humidity target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls parport_serial regmap-sdw hid-asus" diff --git a/filter-i686.sh.rhel b/filter-i686.sh.rhel new file mode 100644 index 000000000..e69de29bb diff --git a/filter-modules.sh.fedora b/filter-modules.sh.fedora new file mode 100755 index 000000000..3e84eeb5e --- /dev/null +++ b/filter-modules.sh.fedora @@ -0,0 +1,170 @@ +#! /bin/bash +# +# Called as filter-modules.sh list-of-modules Arch + +# This script filters the modules into the kernel-core and kernel-modules +# subpackages. We list out subsystems/subdirs to prune from the installed +# module directory. What is left is put into the kernel-core package. What is +# pruned is contained in the kernel-modules package. +# +# This file contains the default subsys/subdirs to prune from all architectures. +# If an architecture needs to differ, we source a per-arch filter-.sh file +# that contains the set of override lists to be used instead. If a module or +# subsys should be in kernel-modules on all arches, please change the defaults +# listed here. + +# Overrides is individual modules which need to remain in kernel-core due to deps. +overrides="cec" + +# Set the default dirs/modules to filter out +driverdirs="atm auxdisplay bcma bluetooth firewire fmc fpga infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb soundwire staging tty uio uwb w1" + +chardrvs="mwave pcmcia" + +netdrvs="appletalk can dsa hamradio ieee802154 irda ppp slip usb wireless" + +ethdrvs="3com adaptec alteon amd aquantia atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell mellanox neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti wiznet xircom" + +inputdrvs="gameport tablet touchscreen" + +scsidrvs="aacraid advansys aic7xxx aic94xx be2iscsi bfa bnx2i bnx2fc csiostor cxgbi esas2r fcoe fnic isci libsas lpfc megaraid mpt2sas mpt3sas mvsas pm8001 qla2xxx qla4xxx sym53c8xx_2 ufs qedf wd719x" + +usbdrvs="atm image misc serial wusbcore" + +fsdrvs="affs befs coda cramfs dlm ecryptfs hfs hfsplus jfs jffs2 minix ncpfs nilfs2 ocfs2 reiserfs romfs squashfs sysv ubifs ufs" + +netprots="6lowpan appletalk atm ax25 batman-adv bluetooth can dccp dsa ieee802154 irda l2tp mac80211 mac802154 mpls netrom nfc rds rfkill rose sctp smc wireless" + +drmdrvs="amd ast bridge gma500 i2c i915 mgag200 nouveau panel radeon" + +iiodrvs="accel adc afe common dac gyro health humidity light magnetometer multiplexer orientation potentiometer potentiostat pressure temperature" + +singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls parport_serial regmap-sdw hid-asus iTCO_wdt rnbd-client rnbd-server mlx5_vdpa" + +# Grab the arch-specific filter list overrides +source ./filter-$2.sh + +filter_dir() { + filelist=$1 + dir=$2 + + grep -v -e "${dir}/" ${filelist} > ${filelist}.tmp + + if [ $? -ne 0 ] + then + echo "Couldn't remove ${dir}. Skipping." + else + grep -e "${dir}/" ${filelist} >> k-d.list + mv ${filelist}.tmp $filelist + fi + + return 0 +} + +filter_ko() { + filelist=$1 + mod=$2 + + grep -v -e "${mod}.ko" ${filelist} > ${filelist}.tmp + + if [ $? -ne 0 ] + then + echo "Couldn't remove ${mod}.ko Skipping." + else + grep -e "${mod}.ko" ${filelist} >> k-d.list + mv ${filelist}.tmp $filelist + fi + + return 0 +} + +# Filter the drivers/ subsystems +for subsys in ${driverdirs} +do + filter_dir $1 drivers/${subsys} +done + +# Filter the networking drivers +for netdrv in ${netdrvs} +do + filter_dir $1 drivers/net/${netdrv} +done + +# Filter the char drivers +for char in ${chardrvs} +do + filter_dir $1 drivers/char/${input} +done + +# Filter the ethernet drivers +for eth in ${ethdrvs} +do + filter_dir $1 drivers/net/ethernet/${eth} +done + +# SCSI +for scsi in ${scsidrvs} +do + filter_dir $1 drivers/scsi/${scsi} +done + +# Input +for input in ${inputdrvs} +do + filter_dir $1 drivers/input/${input} +done + +# USB +for usb in ${usbdrvs} +do + filter_dir $1 drivers/usb/${usb} +done + +# Filesystems +for fs in ${fsdrvs} +do + filter_dir $1 fs/${fs} +done + +# Network protocols +for prot in ${netprots} +do + filter_dir $1 kernel/net/${prot} +done + +# DRM +for drm in ${drmdrvs} +do + filter_dir $1 drivers/gpu/drm/${drm} +done + +# Just kill sound. +filter_dir $1 kernel/sound + +# Now go through and filter any single .ko files that might have deps on the +# things we filtered above +for mod in ${singlemods} +do + filter_ko $1 ${mod} +done + +# Now process the override list to bring those modules back into core +for mod in ${overrides} +do + grep -v -e "/${mod}.ko" k-d.list > k-d.list.tmp + if [ $? -ne 0 ] + then + echo "Couldn't save ${mod}.ko Skipping." + else + grep -e "/${mod}.ko" k-d.list >> $filelist + mv k-d.list.tmp k-d.list + fi + +done + +# Go through our generated drivers list and remove the .ko files. We'll +# restore them later. +for mod in `cat k-d.list` +do + rm -rf $mod +done diff --git a/filter-modules.sh.rhel b/filter-modules.sh.rhel new file mode 100755 index 000000000..726a6d92c --- /dev/null +++ b/filter-modules.sh.rhel @@ -0,0 +1,168 @@ +#! /bin/bash +# +# Called as filter-modules.sh list-of-modules Arch + +# This script filters the modules into the kernel-core and kernel-modules +# subpackages. We list out subsystems/subdirs to prune from the installed +# module directory. What is left is put into the kernel-core package. What is +# pruned is contained in the kernel-modules package. +# +# This file contains the default subsys/subdirs to prune from all architectures. +# If an architecture needs to differ, we source a per-arch filter-.sh file +# that contains the set of override lists to be used instead. If a module or +# subsys should be in kernel-modules on all arches, please change the defaults +# listed here. + +# Overrides is individual modules which need to remain in kernel-core due to deps. +overrides="cec" + +# Set the default dirs/modules to filter out +driverdirs="atm auxdisplay bcma bluetooth firewire fmc iio infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb staging tty uio uwb w1" + +chardrvs="mwave pcmcia" + +netdrvs="appletalk can dsa hamradio ieee802154 irda ppp slip usb wireless" + +ethdrvs="3com adaptec alteon amd aquantia atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti wiznet xircom" + +inputdrvs="gameport tablet touchscreen" + +scsidrvs="aacraid aic7xxx aic94xx be2iscsi bfa bnx2i bnx2fc csiostor cxgbi esas2r fcoe fnic hisi_sas isci libsas lpfc megaraid mpt2sas mpt3sas mvsas pm8001 qla2xxx qla4xxx sym53c8xx_2 ufs qedf" + +usbdrvs="atm image misc serial wusbcore" + +fsdrvs="affs befs coda cramfs ecryptfs hfs hfsplus jfs minix ncpfs nilfs2 ocfs2 reiserfs romfs squashfs sysv ubifs ufs" + +netprots="6lowpan appletalk atm ax25 batman-adv bluetooth can dccp dsa ieee802154 irda l2tp mac80211 mac802154 mpls netrom nfc rds rfkill rose sctp smc wireless" + +drmdrvs="amd ast gma500 i2c i915 mgag200 nouveau radeon via " + +singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls parport_serial ism hid-asus" + +# Grab the arch-specific filter list overrides +source ./filter-$2.sh + +filter_dir() { + filelist=$1 + dir=$2 + + grep -v -e "${dir}/" ${filelist} > ${filelist}.tmp + + if [ $? -ne 0 ] + then + echo "Couldn't remove ${dir}. Skipping." + else + grep -e "${dir}/" ${filelist} >> k-d.list + mv ${filelist}.tmp $filelist + fi + + return 0 +} + +filter_ko() { + filelist=$1 + mod=$2 + + grep -v -e "${mod}.ko" ${filelist} > ${filelist}.tmp + + if [ $? -ne 0 ] + then + echo "Couldn't remove ${mod}.ko Skipping." + else + grep -e "${mod}.ko" ${filelist} >> k-d.list + mv ${filelist}.tmp $filelist + fi + + return 0 +} + +# Filter the drivers/ subsystems +for subsys in ${driverdirs} +do + filter_dir $1 drivers/${subsys} +done + +# Filter the networking drivers +for netdrv in ${netdrvs} +do + filter_dir $1 drivers/net/${netdrv} +done + +# Filter the char drivers +for char in ${chardrvs} +do + filter_dir $1 drivers/char/${input} +done + +# Filter the ethernet drivers +for eth in ${ethdrvs} +do + filter_dir $1 drivers/net/ethernet/${eth} +done + +# SCSI +for scsi in ${scsidrvs} +do + filter_dir $1 drivers/scsi/${scsi} +done + +# Input +for input in ${inputdrvs} +do + filter_dir $1 drivers/input/${input} +done + +# USB +for usb in ${usbdrvs} +do + filter_dir $1 drivers/usb/${usb} +done + +# Filesystems +for fs in ${fsdrvs} +do + filter_dir $1 fs/${fs} +done + +# Network protocols +for prot in ${netprots} +do + filter_dir $1 kernel/net/${prot} +done + +# DRM +for drm in ${drmdrvs} +do + filter_dir $1 drivers/gpu/drm/${drm} +done + +# Just kill sound. +filter_dir $1 kernel/sound + +# Now go through and filter any single .ko files that might have deps on the +# things we filtered above +for mod in ${singlemods} +do + filter_ko $1 ${mod} +done + +# Now process the override list to bring those modules back into core +for mod in ${overrides} +do + grep -v -e "/${mod}.ko" k-d.list > k-d.list.tmp + if [ $? -ne 0 ] + then + echo "Couldn't save ${mod}.ko Skipping." + else + grep -e "/${mod}.ko" k-d.list >> $filelist + mv k-d.list.tmp k-d.list + fi + +done + +# Go through our generated drivers list and remove the .ko files. We'll +# restore them later. +for mod in `cat k-d.list` +do + rm -rf $mod +done diff --git a/filter-ppc64le.sh.fedora b/filter-ppc64le.sh.fedora new file mode 100644 index 000000000..070149115 --- /dev/null +++ b/filter-ppc64le.sh.fedora @@ -0,0 +1,14 @@ +#! /bin/bash + +# This is the ppc64le override file for the core/drivers package split. The +# module directories listed here and in the generic list in filter-modules.sh +# will be moved to the resulting kernel-modules package for this arch. +# Anything not listed in those files will be in the kernel-core package. +# +# Please review the default list in filter-modules.sh before making +# modifications to the overrides below. If something should be removed across +# all arches, remove it in the default instead of per-arch. + +driverdirs="atm auxdisplay bcma bluetooth firewire fmc fpga infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging tty uio uwb w1" + +singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls rnbd-client rnbd-server mlx5_vdpa" diff --git a/filter-ppc64le.sh.rhel b/filter-ppc64le.sh.rhel new file mode 100644 index 000000000..d80956d2a --- /dev/null +++ b/filter-ppc64le.sh.rhel @@ -0,0 +1,14 @@ +#! /bin/bash + +# This is the ppc64le override file for the core/drivers package split. The +# module directories listed here and in the generic list in filter-modules.sh +# will be moved to the resulting kernel-modules package for this arch. +# Anything not listed in those files will be in the kernel-core package. +# +# Please review the default list in filter-modules.sh before making +# modifications to the overrides below. If something should be removed across +# all arches, remove it in the default instead of per-arch. + +driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn leds media memstick message mmc mtd mwave nfc ntb pcmcia platform power ssb staging tty uio uwb w1" + +singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls" diff --git a/filter-s390x.sh.fedora b/filter-s390x.sh.fedora new file mode 100644 index 000000000..04f7110ad --- /dev/null +++ b/filter-s390x.sh.fedora @@ -0,0 +1,12 @@ +#! /bin/bash + +# This is the s390x override file for the core/drivers package split. The +# module directories listed here and in the generic list in filter-modules.sh +# will be moved to the resulting kernel-modules package for this arch. +# Anything not listed in those files will be in the kernel-core package. +# +# Please review the default list in filter-modules.sh before making +# modifications to the overrides below. If something should be removed across +# all arches, remove it in the default instead of per-arch. + +# Defaults work so no need to override diff --git a/filter-s390x.sh.rhel b/filter-s390x.sh.rhel new file mode 100644 index 000000000..04f7110ad --- /dev/null +++ b/filter-s390x.sh.rhel @@ -0,0 +1,12 @@ +#! /bin/bash + +# This is the s390x override file for the core/drivers package split. The +# module directories listed here and in the generic list in filter-modules.sh +# will be moved to the resulting kernel-modules package for this arch. +# Anything not listed in those files will be in the kernel-core package. +# +# Please review the default list in filter-modules.sh before making +# modifications to the overrides below. If something should be removed across +# all arches, remove it in the default instead of per-arch. + +# Defaults work so no need to override diff --git a/filter-x86_64.sh.fedora b/filter-x86_64.sh.fedora new file mode 100644 index 000000000..1aa80f2e0 --- /dev/null +++ b/filter-x86_64.sh.fedora @@ -0,0 +1,12 @@ +#! /bin/bash + +# This is the x86_64 override file for the core/drivers package split. The +# module directories listed here and in the generic list in filter-modules.sh +# will be moved to the resulting kernel-modules package for this arch. +# Anything not listed in those files will be in the kernel-core package. +# +# Please review the default list in filter-modules.sh before making +# modifications to the overrides below. If something should be removed across +# all arches, remove it in the default instead of per-arch. + +# Defaults work so no need to override diff --git a/filter-x86_64.sh.rhel b/filter-x86_64.sh.rhel new file mode 100644 index 000000000..1aa80f2e0 --- /dev/null +++ b/filter-x86_64.sh.rhel @@ -0,0 +1,12 @@ +#! /bin/bash + +# This is the x86_64 override file for the core/drivers package split. The +# module directories listed here and in the generic list in filter-modules.sh +# will be moved to the resulting kernel-modules package for this arch. +# Anything not listed in those files will be in the kernel-core package. +# +# Please review the default list in filter-modules.sh before making +# modifications to the overrides below. If something should be removed across +# all arches, remove it in the default instead of per-arch. + +# Defaults work so no need to override diff --git a/generate_all_configs.sh b/generate_all_configs.sh new file mode 100755 index 000000000..9e3d5ecb7 --- /dev/null +++ b/generate_all_configs.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# Adjusts the configuration options to build the variants correctly +# +# arg1: configuration to go in the primary variant +# arg2: are we only generating debug configs + + +PRIMARY=$1 +DEBUGBUILDSENABLED=$2 + +if [ -z "$2" ]; then + exit 1 +fi + +if [ -z "$PRIMARY" ]; then + PRIMARY=rhel +fi + +if [ "$PRIMARY" = "fedora" ]; then + SECONDARY=rhel +else + SECONDARY=fedora +fi + +for i in kernel-*-"$PRIMARY".config; do + NEW=kernel-"$VERSION"-$(echo "$i" | cut -d - -f2- | sed s/-"$PRIMARY"//) + #echo $NEW + mv "$i" "$NEW" +done + +rm -f kernel-*-"$SECONDARY".config + +if [ "$DEBUGBUILDSENABLED" -eq 0 ]; then + for i in kernel-*debug*.config; do + base=$(echo "$i" | sed -r s/-?debug//g) + NEW=kernel-$(echo "$base" | cut -d - -f2-) + mv "$i" "$NEW" + done +fi diff --git a/generate_bls_conf.sh b/generate_bls_conf.sh new file mode 100755 index 000000000..f8415db24 --- /dev/null +++ b/generate_bls_conf.sh @@ -0,0 +1,31 @@ +#!/bin/bash +set -e + +. /etc/os-release + +kernelver=$1 && shift +rootfs=$1 && shift +variant=$1 && shift + +output="${rootfs}/lib/modules/${kernelver}/bls.conf" +date=$(date -u +%Y%m%d%H%M%S) + +if [ "${variant:-5}" = "debug" ]; then + debugname=" with debugging" + debugid="-debug" +else + debugname="" + debugid="" +fi + +cat >${output} < in your rpmbuild command or force values +# to 0 in here to disable them. +# +# standard kernel +%define with_up %{?_without_up: 0} %{?!_without_up: 1} +# kernel PAE (only valid for ARM (lpae)) +%define with_pae %{?_without_pae: 0} %{?!_without_pae: 1} +# kernel-debug +%define with_debug %{?_without_debug: 0} %{?!_without_debug: 1} +# kernel-doc +%define with_doc %{?_without_doc: 0} %{?!_without_doc: 1} +# kernel-headers +%define with_headers %{?_without_headers: 0} %{?!_without_headers: 1} +%define with_cross_headers %{?_without_cross_headers: 0} %{?!_without_cross_headers: 1} +# perf +%define with_perf %{?_without_perf: 0} %{?!_without_perf: 1} +# tools +%define with_tools %{?_without_tools: 0} %{?!_without_tools: 1} +# bpf tool +%define with_bpftool %{?_without_bpftool: 0} %{?!_without_bpftool: 1} +# kernel-debuginfo +%define with_debuginfo %{?_without_debuginfo: 0} %{?!_without_debuginfo: 1} +# Want to build a the vsdo directories installed +%define with_vdso_install %{?_without_vdso_install: 0} %{?!_without_vdso_install: 1} +# kernel-zfcpdump (s390 specific kernel for zfcpdump) +%define with_zfcpdump %{?_without_zfcpdump: 0} %{?!_without_zfcpdump: 1} +# kernel-abi-whitelists +%define with_kernel_abi_whitelists %{?_without_kernel_abi_whitelists: 0} %{?!_without_kernel_abi_whitelists: 1} +# internal samples and selftests +%define with_selftests %{?_without_selftests: 0} %{?!_without_selftests: 1} +# +# Additional options for user-friendly one-off kernel building: +# +# Only build the base kernel (--with baseonly): +%define with_baseonly %{?_with_baseonly: 1} %{?!_with_baseonly: 0} +# Only build the pae kernel (--with paeonly): +%define with_paeonly %{?_with_paeonly: 1} %{?!_with_paeonly: 0} +# Only build the debug kernel (--with dbgonly): +%define with_dbgonly %{?_with_dbgonly: 1} %{?!_with_dbgonly: 0} +# Control whether we perform a compat. check against published ABI. +%define with_kabichk %{?_without_kabichk: 0} %{?!_without_kabichk: 1} +# Temporarily disable kabi checks until RC. +%define with_kabichk 0 +# Control whether we perform a compat. check against DUP ABI. +%define with_kabidupchk %{?_with_kabidupchk: 1} %{?!_with_kabidupchk: 0} +# +# Control whether to run an extensive DWARF based kABI check. +# Note that this option needs to have baseline setup in SOURCE300. +%define with_kabidwchk %{?_without_kabidwchk: 0} %{?!_without_kabidwchk: 1} +%define with_kabidw_base %{?_with_kabidw_base: 1} %{?!_with_kabidw_base: 0} +# +# should we do C=1 builds with sparse +%define with_sparse %{?_with_sparse: 1} %{?!_with_sparse: 0} +# +# Cross compile requested? +%define with_cross %{?_with_cross: 1} %{?!_with_cross: 0} +# +# build a release kernel on rawhide +%define with_release %{?_with_release: 1} %{?!_with_release: 0} + +# verbose build, i.e. no silent rules and V=1 +%define with_verbose %{?_with_verbose: 1} %{?!_with_verbose: 0} + +# +# check for mismatched config options +%define with_configchecks %{?_without_configchecks: 0} %{?!_without_configchecks: 1} + +# +# gcov support +%define with_gcov %{?_with_gcov:1}%{?!_with_gcov:0} + +# +# ipa_clone support +%define with_ipaclones %{?_without_ipaclones: 0} %{?!_without_ipaclones: 1} + +# Want to build a vanilla kernel build without any non-upstream patches? +%define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0} + +# Set debugbuildsenabled to 1 for production (build separate debug kernels) +# and 0 for rawhide (all kernels are debug kernels). +# See also 'make debug' and 'make release'. +%define debugbuildsenabled 0 + +# The kernel tarball/base version +%define kversion 5.10 + +%if 0%{?fedora} +# Kernel headers are being split out into a separate package +%define with_headers 0 +%define with_cross_headers 0 +# no selftests for now +%define with_selftests 0 +# no ipa_clone for now +%define with_ipaclones 0 +# no whitelist +%define with_kernel_abi_whitelists 0 +# Fedora builds these separately +%define with_perf 0 +%define with_tools 0 +%define with_bpftool 0 +%endif + +%if %{with_verbose} +%define make_opts V=1 +%else +%define make_opts -s +%endif + +# turn off debug kernel and kabichk for gcov builds +%if %{with_gcov} +%define with_debug 0 +%define with_kabichk 0 +%define with_kabidupchk 0 +%define with_kabidwchk 0 +%endif + +# turn off kABI DWARF-based check if we're generating the base dataset +%if %{with_kabidw_base} +%define with_kabidwchk 0 +%endif + +# kpatch_kcflags are extra compiler flags applied to base kernel +# -fdump-ipa-clones is enabled only for base kernels on selected arches +%if %{with_ipaclones} +%ifarch x86_64 ppc64le +%define kpatch_kcflags -fdump-ipa-clones +%else +%define with_ipaclones 0 +%endif +%endif + +%define make_target bzImage +%define image_install_path boot + +%define KVERREL %{version}-%{release}.%{_target_cpu} +%define KVERREL_RE %(echo %KVERREL | sed 's/+/[+]/g') +%define hdrarch %_target_cpu +%define asmarch %_target_cpu + +%if 0%{!?nopatches:1} +%define nopatches 0 +%endif + +%if %{with_vanilla} +%define nopatches 1 +%endif + +%if %{nopatches} +%define variant -vanilla +%endif + +%if !%{debugbuildsenabled} +%define with_debug 0 +%endif + +%if !%{with_debuginfo} +%define _enable_debug_packages 0 +%endif +%define debuginfodir /usr/lib/debug +# Needed because we override almost everything involving build-ids +# and debuginfo generation. Currently we rely on the old alldebug setting. +%global _build_id_links alldebug + +# kernel PAE is only built on ARMv7 +%ifnarch armv7hl +%define with_pae 0 +%endif + +# if requested, only build base kernel +%if %{with_baseonly} +%define with_pae 0 +%define with_debug 0 +%endif + +# if requested, only build pae kernel +%if %{with_paeonly} +%define with_up 0 +%define with_debug 0 +%endif + +# if requested, only build debug kernel +%if %{with_dbgonly} +%define with_up 0 +%define with_tools 0 +%define with_perf 0 +%define with_bpftool 0 +%endif + +# turn off kABI DUP check and DWARF-based check if kABI check is disabled +%if !%{with_kabichk} +%define with_kabidupchk 0 +%define with_kabidwchk 0 +%endif + +%if %{with_vdso_install} +%define use_vdso 1 +%endif + + +%ifnarch noarch +%define with_kernel_abi_whitelists 0 +%endif + +# Overrides for generic default options + +# only package docs noarch +%ifnarch noarch +%define with_doc 0 +%define doc_build_fail true +%endif + +%if 0%{?fedora} +# don't do debug builds on anything but i686 and x86_64 +%ifnarch i686 x86_64 +%define with_debug 0 +%endif +%endif + +# don't build noarch kernels or headers (duh) +%ifarch noarch +%define with_up 0 +%define with_headers 0 +%define with_cross_headers 0 +%define with_tools 0 +%define with_perf 0 +%define with_bpftool 0 +%define with_selftests 0 +%define with_debug 0 +%define all_arch_configs kernel-%{version}-*.config +%endif + +# sparse blows up on ppc +%ifnarch ppc64le +%define with_sparse 0 +%endif + +# zfcpdump mechanism is s390 only +%ifnarch s390x +%define with_zfcpdump 0 +%endif + +%if 0%{?fedora} +# This is not for Fedora +%define with_zfcpdump 0 +%endif + +# Per-arch tweaks + +%ifarch i686 +%define asmarch x86 +%define hdrarch i386 +%define all_arch_configs kernel-%{version}-i?86*.config +%define kernel_image arch/x86/boot/bzImage +%endif + +%ifarch x86_64 +%define asmarch x86 +%define all_arch_configs kernel-%{version}-x86_64*.config +%define kernel_image arch/x86/boot/bzImage +%endif + +%ifarch ppc64le +%define asmarch powerpc +%define hdrarch powerpc +%define make_target vmlinux +%define kernel_image vmlinux +%define kernel_image_elf 1 +%define all_arch_configs kernel-%{version}-ppc64le*.config +%endif + +%ifarch s390x +%define asmarch s390 +%define hdrarch s390 +%define all_arch_configs kernel-%{version}-s390x.config +%define kernel_image arch/s390/boot/bzImage +%endif + +%ifarch %{arm} +%define all_arch_configs kernel-%{version}-arm*.config +%define skip_nonpae_vdso 1 +%define asmarch arm +%define hdrarch arm +%define make_target bzImage +%define kernel_image arch/arm/boot/zImage +# http://lists.infradead.org/pipermail/linux-arm-kernel/2012-March/091404.html +%define kernel_mflags KALLSYMS_EXTRA_PASS=1 +# we only build headers/perf/tools on the base arm arches +# just like we used to only build them on i386 for x86 +%ifnarch armv7hl +%define with_headers 0 +%define with_cross_headers 0 +%endif +# These currently don't compile on armv7 +%define with_selftests 0 +%endif + +%ifarch aarch64 +%define all_arch_configs kernel-%{version}-aarch64*.config +%define asmarch arm64 +%define hdrarch arm64 +%define make_target Image.gz +%define kernel_image arch/arm64/boot/Image.gz +%endif + +# Should make listnewconfig fail if there's config options +# printed out? +%if %{nopatches} +%define with_configchecks 0 +%endif + +# To temporarily exclude an architecture from being built, add it to +# %%nobuildarches. Do _NOT_ use the ExclusiveArch: line, because if we +# don't build kernel-headers then the new build system will no longer let +# us use the previous build of that package -- it'll just be completely AWOL. +# Which is a BadThing(tm). + +# We only build kernel-headers on the following... +%if 0%{?fedora} +%define nobuildarches i386 +%else +%define nobuildarches i386 i686 %{arm} +%endif + +%ifarch %nobuildarches +# disable BuildKernel commands +%define with_up 0 +%define with_debug 0 +%define with_pae 0 +%define with_zfcpdump 0 + +%define with_debuginfo 0 +%define with_perf 0 +%define with_tools 0 +%define with_bpftool 0 +%define with_selftests 0 +%define _enable_debug_packages 0 +%endif + +# Architectures we build tools/cpupower on +%if 0%{?fedora} +%define cpupowerarchs %{ix86} x86_64 ppc64le %{arm} aarch64 +%else +%define cpupowerarchs i686 x86_64 ppc64le aarch64 +%endif + +%if %{use_vdso} + +%if 0%{?skip_nonpae_vdso} +%define _use_vdso 0 +%else +%define _use_vdso 1 +%endif + +%else +%define _use_vdso 0 +%endif + +# +# Packages that need to be installed before the kernel is, because the %%post +# scripts use them. +# +%define kernel_prereq coreutils, systemd >= 203-2, /usr/bin/kernel-install +%define initrd_prereq dracut >= 027 + + +Name: kernel%{?variant} +License: GPLv2 and Redistributable, no modification permitted +URL: https://www.kernel.org/ +Version: %{rpmversion} +Release: %{pkg_release} +# DO NOT CHANGE THE 'ExclusiveArch' LINE TO TEMPORARILY EXCLUDE AN ARCHITECTURE BUILD. +# SET %%nobuildarches (ABOVE) INSTEAD +%if 0%{?fedora} +ExclusiveArch: x86_64 s390x %{arm} aarch64 ppc64le +%else +ExclusiveArch: noarch i386 i686 x86_64 s390x %{arm} aarch64 ppc64le +%endif +ExclusiveOS: Linux +%ifnarch %{nobuildarches} +Requires: kernel-core-uname-r = %{KVERREL}%{?variant} +Requires: kernel-modules-uname-r = %{KVERREL}%{?variant} +%endif + + +# +# List the packages used during the kernel build +# +BuildRequires: kmod, patch, bash, tar, git-core +BuildRequires: bzip2, xz, findutils, gzip, m4, perl-interpreter, perl-Carp, perl-devel, perl-generators, make, diffutils, gawk +BuildRequires: gcc, binutils, redhat-rpm-config, hmaccalc, bison, flex +BuildRequires: net-tools, hostname, bc, elfutils-devel +%if 0%{?fedora} +BuildRequires: dwarves +%endif +BuildRequires: python3-devel +%if %{with_headers} +BuildRequires: rsync +%endif +%if %{with_doc} +BuildRequires: xmlto, asciidoc, python3-sphinx, python3-sphinx_rtd_theme +%endif +%if %{with_sparse} +BuildRequires: sparse +%endif +%if %{with_perf} +BuildRequires: zlib-devel binutils-devel newt-devel perl(ExtUtils::Embed) bison flex xz-devel +BuildRequires: audit-libs-devel +BuildRequires: java-devel +%ifnarch %{arm} s390x +BuildRequires: numactl-devel +%endif +%endif +%if %{with_tools} +BuildRequires: gettext ncurses-devel +%ifnarch s390x +BuildRequires: pciutils-devel +%endif +%endif +%if %{with_bpftool} +BuildRequires: python3-docutils +BuildRequires: zlib-devel binutils-devel +%endif +%if %{with_selftests} +BuildRequires: clang llvm +%ifnarch %{arm} +BuildRequires: numactl-devel +%endif +BuildRequires: libcap-devel libcap-ng-devel rsync +%endif +BuildConflicts: rhbuildsys(DiskFree) < 500Mb +%if %{with_debuginfo} +BuildRequires: rpm-build, elfutils +BuildConflicts: rpm < 4.13.0.1-19 +%if 0%{?fedora} +BuildConflicts: dwarves < 1.13 +%endif +# Most of these should be enabled after more investigation +%undefine _include_minidebuginfo +%undefine _find_debuginfo_dwz_opts +%undefine _unique_build_ids +%undefine _unique_debug_names +%undefine _unique_debug_srcs +%undefine _debugsource_packages +%undefine _debuginfo_subpackages +%global _find_debuginfo_opts -r +%global _missing_build_ids_terminate_build 1 +%global _no_recompute_build_ids 1 +%endif +%if %{with_kabidwchk} || %{with_kabidw_base} +BuildRequires: kabi-dw +%endif + +%if %{signkernel}%{signmodules} +BuildRequires: openssl openssl-devel +%if %{signkernel} +%ifarch x86_64 aarch64 +BuildRequires: nss-tools +BuildRequires: pesign >= 0.10-4 +%endif +%endif +%endif + +%if %{with_cross} +BuildRequires: binutils-%{_build_arch}-linux-gnu, gcc-%{_build_arch}-linux-gnu +%define cross_opts CROSS_COMPILE=%{_build_arch}-linux-gnu- +%endif + +# These below are required to build man pages +%if %{with_perf} +BuildRequires: xmlto +%endif +%if %{with_perf} || %{with_tools} +BuildRequires: asciidoc +%endif + +# Because this is the kernel, it's hard to get a single upstream URL +# to represent the base without needing to do a bunch of patching. This +# tarball is generated from a src-git tree. If you want to see the +# exact git commit you can run +# +# xzcat -qq ${TARBALL} | git get-tar-commit-id +Source0: linux-20201014gitb5fc7a89e58b.tar.xz + +Source1: Makefile.rhelver + + +# Name of the packaged file containing signing key +%ifarch ppc64le +%define signing_key_filename kernel-signing-ppc.cer +%endif +%ifarch s390x +%define signing_key_filename kernel-signing-s390.cer +%endif + +Source10: x509.genkey.rhel +Source11: x509.genkey.fedora +%if %{?released_kernel} + +Source12: redhatsecurebootca5.cer +Source13: redhatsecurebootca1.cer +Source14: redhatsecureboot501.cer +Source15: redhatsecureboot301.cer +Source16: secureboot_s390.cer +Source17: secureboot_ppc.cer + +%define secureboot_ca_1 %{SOURCE12} +%define secureboot_ca_0 %{SOURCE13} +%ifarch x86_64 aarch64 +%define secureboot_key_1 %{SOURCE14} +%define pesign_name_1 redhatsecureboot501 +%define secureboot_key_0 %{SOURCE15} +%define pesign_name_0 redhatsecureboot301 +%endif +%ifarch s390x +%define secureboot_key_0 %{SOURCE16} +%define pesign_name_0 redhatsecureboot302 +%endif +%ifarch ppc64le +%define secureboot_key_0 %{SOURCE17} +%define pesign_name_0 redhatsecureboot303 +%endif + +# released_kernel +%else + +Source12: redhatsecurebootca4.cer +Source13: redhatsecurebootca2.cer +Source14: redhatsecureboot401.cer +Source15: redhatsecureboot003.cer + +%define secureboot_ca_1 %{SOURCE12} +%define secureboot_ca_0 %{SOURCE13} +%define secureboot_key_1 %{SOURCE14} +%define pesign_name_1 redhatsecureboot401 +%define secureboot_key_0 %{SOURCE15} +%define pesign_name_0 redhatsecureboot003 + +# released_kernel +%endif + +Source22: mod-extra.list.rhel +Source16: mod-extra.list.fedora +Source17: mod-blacklist.sh +Source18: mod-sign.sh +Source79: parallel_xz.sh + +Source80: filter-x86_64.sh.fedora +Source81: filter-armv7hl.sh.fedora +Source82: filter-i686.sh.fedora +Source83: filter-aarch64.sh.fedora +Source86: filter-ppc64le.sh.fedora +Source87: filter-s390x.sh.fedora +Source89: filter-modules.sh.fedora + +Source90: filter-x86_64.sh.rhel +Source91: filter-armv7hl.sh.rhel +Source92: filter-i686.sh.rhel +Source93: filter-aarch64.sh.rhel +Source96: filter-ppc64le.sh.rhel +Source97: filter-s390x.sh.rhel +Source99: filter-modules.sh.rhel +%define modsign_cmd %{SOURCE18} + +Source20: kernel-aarch64-rhel.config +Source21: kernel-aarch64-debug-rhel.config +Source30: kernel-ppc64le-rhel.config +Source31: kernel-ppc64le-debug-rhel.config +Source32: kernel-s390x-rhel.config +Source33: kernel-s390x-debug-rhel.config +Source34: kernel-s390x-zfcpdump-rhel.config +Source35: kernel-x86_64-rhel.config +Source36: kernel-x86_64-debug-rhel.config + +Source37: kernel-aarch64-fedora.config +Source38: kernel-aarch64-debug-fedora.config +Source39: kernel-armv7hl-fedora.config +Source40: kernel-armv7hl-debug-fedora.config +Source41: kernel-armv7hl-lpae-fedora.config +Source42: kernel-armv7hl-lpae-debug-fedora.config +Source43: kernel-i686-fedora.config +Source44: kernel-i686-debug-fedora.config +Source45: kernel-ppc64le-fedora.config +Source46: kernel-ppc64le-debug-fedora.config +Source47: kernel-s390x-fedora.config +Source48: kernel-s390x-debug-fedora.config +Source49: kernel-x86_64-fedora.config +Source50: kernel-x86_64-debug-fedora.config + + + +Source51: generate_all_configs.sh + +Source52: process_configs.sh +Source53: generate_bls_conf.sh +Source56: update_scripts.sh + +Source54: mod-internal.list + +Source200: check-kabi + +Source201: Module.kabi_aarch64 +Source202: Module.kabi_ppc64le +Source203: Module.kabi_s390x +Source204: Module.kabi_x86_64 + +Source210: Module.kabi_dup_aarch64 +Source211: Module.kabi_dup_ppc64le +Source212: Module.kabi_dup_s390x +Source213: Module.kabi_dup_x86_64 + +Source300: kernel-abi-whitelists-%{rpmversion}-%{distro_build}.tar.bz2 +Source301: kernel-kabi-dw-%{rpmversion}-%{distro_build}.tar.bz2 + +# Sources for kernel-tools +Source2000: cpupower.service +Source2001: cpupower.config + +# Some people enjoy building customized kernels from the dist-git in Fedora and +# use this to override configuration options. One day they may all use the +# source tree, but in the mean time we carry this to support the legacy workflow +Source3000: merge.pl +Source3001: kernel-local +Source3003: Patchlist.changelog + +Source4000: README.rst + +## Patches needed for building this package + +%if !%{nopatches} + +Patch1: patch-%{rpmversion}-redhat.patch +%endif + +# empty final patch to facilitate testing of kernel patches +Patch999999: linux-kernel-test.patch + +# END OF PATCH DEFINITIONS + +%description +The kernel meta package + +# +# This macro does requires, provides, conflicts, obsoletes for a kernel package. +# %%kernel_reqprovconf +# It uses any kernel__conflicts and kernel__obsoletes +# macros defined above. +# +%define kernel_reqprovconf \ +Provides: kernel = %{rpmversion}-%{pkg_release}\ +Provides: kernel-%{_target_cpu} = %{rpmversion}-%{pkg_release}%{?1:+%{1}}\ +Provides: kernel-drm-nouveau = 16\ +Provides: kernel-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\ +Requires(pre): %{kernel_prereq}\ +Requires(pre): %{initrd_prereq}\ +Requires(pre): linux-firmware >= 20150904-56.git6ebf5d57\ +Requires(preun): systemd >= 200\ +Conflicts: xfsprogs < 4.3.0-1\ +Conflicts: xorg-x11-drv-vmmouse < 13.0.99\ +%{expand:%%{?kernel%{?1:_%{1}}_conflicts:Conflicts: %%{kernel%{?1:_%{1}}_conflicts}}}\ +%{expand:%%{?kernel%{?1:_%{1}}_obsoletes:Obsoletes: %%{kernel%{?1:_%{1}}_obsoletes}}}\ +%{expand:%%{?kernel%{?1:_%{1}}_provides:Provides: %%{kernel%{?1:_%{1}}_provides}}}\ +# We can't let RPM do the dependencies automatic because it'll then pick up\ +# a correct but undesirable perl dependency from the module headers which\ +# isn't required for the kernel proper to function\ +AutoReq: no\ +AutoProv: yes\ +%{nil} + + +%package doc +Summary: Various documentation bits found in the kernel source +Group: Documentation +%description doc +This package contains documentation files from the kernel +source. Various bits of information about the Linux kernel and the +device drivers shipped with it are documented in these files. + +You'll want to install this package if you need a reference to the +options that can be passed to Linux kernel modules at load time. + + +%package headers +Summary: Header files for the Linux kernel for use by glibc +Obsoletes: glibc-kernheaders < 3.0-46 +Provides: glibc-kernheaders = 3.0-46 +%if "0%{?variant}" +Obsoletes: kernel-headers < %{rpmversion}-%{pkg_release} +Provides: kernel-headers = %{rpmversion}-%{pkg_release} +%endif +%description headers +Kernel-headers includes the C header files that specify the interface +between the Linux kernel and userspace libraries and programs. The +header files define structures and constants that are needed for +building most standard programs and are also needed for rebuilding the +glibc package. + +%package cross-headers +Summary: Header files for the Linux kernel for use by cross-glibc +%description cross-headers +Kernel-cross-headers includes the C header files that specify the interface +between the Linux kernel and userspace libraries and programs. The +header files define structures and constants that are needed for +building most standard programs and are also needed for rebuilding the +cross-glibc package. + + +%package debuginfo-common-%{_target_cpu} +Summary: Kernel source files used by %{name}-debuginfo packages +Provides: installonlypkg(kernel) +%description debuginfo-common-%{_target_cpu} +This package is required by %{name}-debuginfo subpackages. +It provides the kernel source files common to all builds. + +%if %{with_perf} +%package -n perf +Summary: Performance monitoring for the Linux kernel +License: GPLv2 +%description -n perf +This package contains the perf tool, which enables performance monitoring +of the Linux kernel. + +%package -n perf-debuginfo +Summary: Debug information for package perf +Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release} +AutoReqProv: no +%description -n perf-debuginfo +This package provides debug information for the perf package. + +# Note that this pattern only works right to match the .build-id +# symlinks because of the trailing nonmatching alternation and +# the leading .*, because of find-debuginfo.sh's buggy handling +# of matching the pattern against the symlinks file. +%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%%{_bindir}/perf(\.debug)?|.*%%{_libexecdir}/perf-core/.*|.*%%{_libdir}/traceevent/plugins/.*|.*%%{_libdir}/libperf-jvmti.so(\.debug)?|XXX' -o perf-debuginfo.list} + +%package -n python3-perf +Summary: Python bindings for apps which will manipulate perf events +%description -n python3-perf +The python3-perf package contains a module that permits applications +written in the Python programming language to use the interface +to manipulate perf events. + +%package -n python3-perf-debuginfo +Summary: Debug information for package perf python bindings +Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release} +AutoReqProv: no +%description -n python3-perf-debuginfo +This package provides debug information for the perf python bindings. + +# the python_sitearch macro should already be defined from above +%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%%{python3_sitearch}/perf.*so(\.debug)?|XXX' -o python3-perf-debuginfo.list} + +# with_perf +%endif + +%if %{with_tools} +%package -n kernel-tools +Summary: Assortment of tools for the Linux kernel +License: GPLv2 +%ifarch %{cpupowerarchs} +Provides: cpupowerutils = 1:009-0.6.p1 +Obsoletes: cpupowerutils < 1:009-0.6.p1 +Provides: cpufreq-utils = 1:009-0.6.p1 +Provides: cpufrequtils = 1:009-0.6.p1 +Obsoletes: cpufreq-utils < 1:009-0.6.p1 +Obsoletes: cpufrequtils < 1:009-0.6.p1 +Obsoletes: cpuspeed < 1:1.5-16 +Requires: kernel-tools-libs = %{version}-%{release} +%endif +%define __requires_exclude ^%{_bindir}/python +%description -n kernel-tools +This package contains the tools/ directory from the kernel source +and the supporting documentation. + +%package -n kernel-tools-libs +Summary: Libraries for the kernels-tools +License: GPLv2 +%description -n kernel-tools-libs +This package contains the libraries built from the tools/ directory +from the kernel source. + +%package -n kernel-tools-libs-devel +Summary: Assortment of tools for the Linux kernel +License: GPLv2 +Requires: kernel-tools = %{version}-%{release} +%ifarch %{cpupowerarchs} +Provides: cpupowerutils-devel = 1:009-0.6.p1 +Obsoletes: cpupowerutils-devel < 1:009-0.6.p1 +%endif +Requires: kernel-tools-libs = %{version}-%{release} +Provides: kernel-tools-devel +%description -n kernel-tools-libs-devel +This package contains the development files for the tools/ directory from +the kernel source. + +%package -n kernel-tools-debuginfo +Summary: Debug information for package kernel-tools +Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release} +AutoReqProv: no +%description -n kernel-tools-debuginfo +This package provides debug information for package kernel-tools. + +# Note that this pattern only works right to match the .build-id +# symlinks because of the trailing nonmatching alternation and +# the leading .*, because of find-debuginfo.sh's buggy handling +# of matching the pattern against the symlinks file. +%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%%{_bindir}/centrino-decode(\.debug)?|.*%%{_bindir}/powernow-k8-decode(\.debug)?|.*%%{_bindir}/cpupower(\.debug)?|.*%%{_libdir}/libcpupower.*|.*%%{_bindir}/turbostat(\.debug)?|.*%%{_bindir}/x86_energy_perf_policy(\.debug)?|.*%%{_bindir}/tmon(\.debug)?|.*%%{_bindir}/lsgpio(\.debug)?|.*%%{_bindir}/gpio-hammer(\.debug)?|.*%%{_bindir}/gpio-event-mon(\.debug)?|.*%%{_bindir}/iio_event_monitor(\.debug)?|.*%%{_bindir}/iio_generic_buffer(\.debug)?|.*%%{_bindir}/lsiio(\.debug)?|.*%%{_bindir}/intel-speed-select(\.debug)?|XXX' -o kernel-tools-debuginfo.list} + +# with_tools +%endif + +%if %{with_bpftool} + +%package -n bpftool +Summary: Inspection and simple manipulation of eBPF programs and maps +License: GPLv2 +%description -n bpftool +This package contains the bpftool, which allows inspection and simple +manipulation of eBPF programs and maps. + +%package -n bpftool-debuginfo +Summary: Debug information for package bpftool +Group: Development/Debug +Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release} +AutoReqProv: no +%description -n bpftool-debuginfo +This package provides debug information for the bpftool package. + +%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%%{_sbindir}/bpftool(\.debug)?|XXX' -o bpftool-debuginfo.list} + +# with_bpftool +%endif + +%if %{with_selftests} + +%package selftests-internal +Summary: Kernel samples and selftests +License: GPLv2 +Requires: binutils, bpftool, iproute-tc, nmap-ncat +Requires: kernel-modules-internal = %{version}-%{release} +%description selftests-internal +Kernel sample programs and selftests. + +# Note that this pattern only works right to match the .build-id +# symlinks because of the trailing nonmatching alternation and +# the leading .*, because of find-debuginfo.sh's buggy handling +# of matching the pattern against the symlinks file. +%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%%{_libexecdir}/(ksamples|kselftests)/.*|XXX' -o selftests-debuginfo.list} + +# with_selftests +%endif + +%if %{with_gcov} +%package gcov +Summary: gcov graph and source files for coverage data collection. +%description gcov +kernel-gcov includes the gcov graph and source files for gcov coverage collection. +%endif + +%package -n kernel-abi-whitelists +Summary: The Red Hat Enterprise Linux kernel ABI symbol whitelists +AutoReqProv: no +%description -n kernel-abi-whitelists +The kABI package contains information pertaining to the Red Hat Enterprise +Linux kernel ABI, including lists of kernel symbols that are needed by +external Linux kernel modules, and a yum plugin to aid enforcement. + +%if %{with_kabidw_base} +%package kabidw-base +Summary: The baseline dataset for kABI verification using DWARF data +Group: System Environment/Kernel +AutoReqProv: no +%description kabidw-base +The kabidw-base package contains data describing the current ABI of the Red Hat +Enterprise Linux kernel, suitable for the kabi-dw tool. +%endif + +# +# This macro creates a kernel--debuginfo package. +# %%kernel_debuginfo_package +# +# Explanation of the find_debuginfo_opts: We build multiple kernels (debug +# pae etc.) so the regex filters those kernels appropriately. We also +# have to package several binaries as part of kernel-devel but getting +# unique build-ids is tricky for these userspace binaries. We don't really +# care about debugging those so we just filter those out and remove it. +%define kernel_debuginfo_package() \ +%package %{?1:%{1}-}debuginfo\ +Summary: Debug information for package %{name}%{?1:-%{1}}\ +Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release}\ +Provides: %{name}%{?1:-%{1}}-debuginfo-%{_target_cpu} = %{version}-%{release}\ +Provides: installonlypkg(kernel)\ +AutoReqProv: no\ +%description %{?1:%{1}-}debuginfo\ +This package provides debug information for package %{name}%{?1:-%{1}}.\ +This is required to use SystemTap with %{name}%{?1:-%{1}}-%{KVERREL}.\ +%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*\/usr\/src\/kernels/.*|XXX' -o ignored-debuginfo.list -p '/.*/%%{KVERREL_RE}%{?1:[+]%{1}}/.*|/.*%%{KVERREL_RE}%{?1:\+%{1}}(\.debug)?' -o debuginfo%{?1}.list}\ +%{nil} + +# +# This macro creates a kernel--devel package. +# %%kernel_devel_package +# +%define kernel_devel_package() \ +%package %{?1:%{1}-}devel\ +Summary: Development package for building kernel modules to match the %{?2:%{2} }kernel\ +Provides: kernel%{?1:-%{1}}-devel-%{_target_cpu} = %{version}-%{release}\ +Provides: kernel-devel-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\ +Provides: kernel-devel-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\ +Provides: installonlypkg(kernel)\ +AutoReqProv: no\ +Requires(pre): findutils\ +Requires: findutils\ +Requires: perl-interpreter\ +%description %{?1:%{1}-}devel\ +This package provides kernel headers and makefiles sufficient to build modules\ +against the %{?2:%{2} }kernel package.\ +%{nil} + +# +# kernel--ipaclones-internal package +# +%define kernel_ipaclones_package() \ +%package %{?1:%{1}-}ipaclones-internal\ +Summary: *.ipa-clones files generated by -fdump-ipa-clones for kernel%{?1:-%{1}}\ +Group: System Environment/Kernel\ +AutoReqProv: no\ +%description %{?1:%{1}-}ipaclones-internal\ +This package provides *.ipa-clones files.\ +%{nil} + +# +# This macro creates a kernel--modules-internal package. +# %%kernel_modules_internal_package +# +%define kernel_modules_internal_package() \ +%package %{?1:%{1}-}modules-internal\ +Summary: Extra kernel modules to match the %{?2:%{2} }kernel\ +Group: System Environment/Kernel\ +Provides: kernel%{?1:-%{1}}-modules-internal-%{_target_cpu} = %{version}-%{release}\ +Provides: kernel%{?1:-%{1}}-modules-internal-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\ +Provides: kernel%{?1:-%{1}}-modules-internal = %{version}-%{release}%{?1:+%{1}}\ +Provides: installonlypkg(kernel-module)\ +Provides: kernel%{?1:-%{1}}-modules-internal-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\ +Requires: kernel-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\ +Requires: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\ +AutoReq: no\ +AutoProv: yes\ +%description %{?1:%{1}-}modules-internal\ +This package provides kernel modules for the %{?2:%{2} }kernel package for Red Hat internal usage.\ +%{nil} + +# +# This macro creates a kernel--modules-extra package. +# %%kernel_modules_extra_package +# +%define kernel_modules_extra_package() \ +%package %{?1:%{1}-}modules-extra\ +Summary: Extra kernel modules to match the %{?2:%{2} }kernel\ +Provides: kernel%{?1:-%{1}}-modules-extra-%{_target_cpu} = %{version}-%{release}\ +Provides: kernel%{?1:-%{1}}-modules-extra-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\ +Provides: kernel%{?1:-%{1}}-modules-extra = %{version}-%{release}%{?1:+%{1}}\ +Provides: installonlypkg(kernel-module)\ +Provides: kernel%{?1:-%{1}}-modules-extra-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\ +Requires: kernel-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\ +Requires: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\ +AutoReq: no\ +AutoProv: yes\ +%description %{?1:%{1}-}modules-extra\ +This package provides less commonly used kernel modules for the %{?2:%{2} }kernel package.\ +%{nil} + +# +# This macro creates a kernel--modules package. +# %%kernel_modules_package +# +%define kernel_modules_package() \ +%package %{?1:%{1}-}modules\ +Summary: kernel modules to match the %{?2:%{2}-}core kernel\ +Provides: kernel%{?1:-%{1}}-modules-%{_target_cpu} = %{version}-%{release}\ +Provides: kernel-modules-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\ +Provides: kernel-modules = %{version}-%{release}%{?1:+%{1}}\ +Provides: installonlypkg(kernel-module)\ +Provides: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\ +Requires: kernel-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\ +AutoReq: no\ +AutoProv: yes\ +%description %{?1:%{1}-}modules\ +This package provides commonly used kernel modules for the %{?2:%{2}-}core kernel package.\ +%{nil} + +# +# this macro creates a kernel- meta package. +# %%kernel_meta_package +# +%define kernel_meta_package() \ +%package %{1}\ +summary: kernel meta-package for the %{1} kernel\ +Requires: kernel-%{1}-core-uname-r = %{KVERREL}%{?variant}+%{1}\ +Requires: kernel-%{1}-modules-uname-r = %{KVERREL}%{?variant}+%{1}\ +Provides: installonlypkg(kernel)\ +%description %{1}\ +The meta-package for the %{1} kernel\ +%{nil} + +# +# This macro creates a kernel- and its -devel and -debuginfo too. +# %%define variant_summary The Linux kernel compiled for +# %%kernel_variant_package [-n ] +# +%define kernel_variant_package(n:) \ +%package %{?1:%{1}-}core\ +Summary: %{variant_summary}\ +Provides: kernel-%{?1:%{1}-}core-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\ +Provides: installonlypkg(kernel)\ +%{expand:%%kernel_reqprovconf}\ +%if %{?1:1} %{!?1:0} \ +%{expand:%%kernel_meta_package %{?1:%{1}}}\ +%endif\ +%{expand:%%kernel_devel_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\ +%{expand:%%kernel_modules_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\ +%{expand:%%kernel_modules_extra_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\ +%{expand:%%kernel_modules_internal_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\ +%{expand:%%kernel_debuginfo_package %{?1:%{1}}}\ +%{nil} + +# Now, each variant package. + +%if %{with_pae} +%define variant_summary The Linux kernel compiled for Cortex-A15 +%kernel_variant_package lpae +%description lpae-core +This package includes a version of the Linux kernel with support for +Cortex-A15 devices with LPAE and HW virtualisation support +%endif + +%if %{with_zfcpdump} +%define variant_summary The Linux kernel compiled for zfcpdump usage +%kernel_variant_package zfcpdump +%description zfcpdump-core +The kernel package contains the Linux kernel (vmlinuz) for use by the +zfcpdump infrastructure. +# with_zfcpdump +%endif + +%define variant_summary The Linux kernel compiled with extra debugging enabled +%kernel_variant_package debug +%description debug-core +The kernel package contains the Linux kernel (vmlinuz), the core of any +Linux operating system. The kernel handles the basic functions +of the operating system: memory allocation, process allocation, device +input and output, etc. + +This variant of the kernel has numerous debugging options enabled. +It should only be installed when trying to gather additional information +on kernel bugs, as some of these options impact performance noticably. + +# And finally the main -core package + +%define variant_summary The Linux kernel +%kernel_variant_package +%description core +The kernel package contains the Linux kernel (vmlinuz), the core of any +Linux operating system. The kernel handles the basic functions +of the operating system: memory allocation, process allocation, device +input and output, etc. + +%if %{with_ipaclones} +%kernel_ipaclones_package +%endif + +%prep +# do a few sanity-checks for --with *only builds +%if %{with_baseonly} +%if !%{with_up} +echo "Cannot build --with baseonly, up build is disabled" +exit 1 +%endif +%endif + +# more sanity checking; do it quietly +if [ "%{patches}" != "%%{patches}" ] ; then + for patch in %{patches} ; do + if [ ! -f $patch ] ; then + echo "ERROR: Patch ${patch##/*/} listed in specfile but is missing" + exit 1 + fi + done +fi 2>/dev/null + +patch_command='patch -p1 -F1 -s' +ApplyPatch() +{ + local patch=$1 + shift + if [ ! -f $RPM_SOURCE_DIR/$patch ]; then + exit 1 + fi + if ! grep -E "^Patch[0-9]+: $patch\$" %{_specdir}/${RPM_PACKAGE_NAME%%%%%{?variant}}.spec ; then + if [ "${patch:0:8}" != "patch-5." ] ; then + echo "ERROR: Patch $patch not listed as a source patch in specfile" + exit 1 + fi + fi 2>/dev/null + case "$patch" in + *.bz2) bunzip2 < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;; + *.gz) gunzip < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;; + *.xz) unxz < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;; + *) $patch_command ${1+"$@"} < "$RPM_SOURCE_DIR/$patch" ;; + esac +} + +# don't apply patch if it's empty +ApplyOptionalPatch() +{ + local patch=$1 + shift + if [ ! -f $RPM_SOURCE_DIR/$patch ]; then + exit 1 + fi + local C=$(wc -l $RPM_SOURCE_DIR/$patch | awk '{print $1}') + if [ "$C" -gt 9 ]; then + ApplyPatch $patch ${1+"$@"} + fi +} + +%setup -q -n kernel-20201014gitb5fc7a89e58b -c +mv linux-20201014gitb5fc7a89e58b linux-%{KVERREL} + +cd linux-%{KVERREL} +cp -a %{SOURCE1} . + +%if !%{nopatches} + +ApplyOptionalPatch patch-%{rpmversion}-redhat.patch +%endif + +ApplyOptionalPatch linux-kernel-test.patch + +# END OF PATCH APPLICATIONS + +# Any further pre-build tree manipulations happen here. + +chmod +x scripts/checkpatch.pl +mv COPYING COPYING-%{version}-%{release} + +# This Prevents scripts/setlocalversion from mucking with our version numbers. +touch .scmversion + +# Mangle /usr/bin/python shebangs to /usr/bin/python3 +# Mangle all Python shebangs to be Python 3 explicitly +# -p preserves timestamps +# -n prevents creating ~backup files +# -i specifies the interpreter for the shebang +# This fixes errors such as +# *** ERROR: ambiguous python shebang in /usr/bin/kvm_stat: #!/usr/bin/python. Change it to python3 (or python2) explicitly. +# We patch all sources below for which we got a report/error. +pathfix.py -i "%{__python3} %{py3_shbang_opts}" -p -n \ + tools/kvm/kvm_stat/kvm_stat \ + scripts/show_delta \ + scripts/diffconfig \ + scripts/bloat-o-meter \ + scripts/jobserver-exec \ + tools/perf/tests/attr.py \ + tools/perf/scripts/python/stat-cpi.py \ + tools/perf/scripts/python/sched-migration.py \ + tools/testing/selftests/drivers/net/mlxsw/sharedbuffer_configuration.py \ + Documentation \ + scripts/gen_compile_commands.py + +# only deal with configs if we are going to build for the arch +%ifnarch %nobuildarches + +if [ -L configs ]; then + rm -f configs +fi +mkdir configs +cd configs + +# Drop some necessary files from the source dir into the buildroot +cp $RPM_SOURCE_DIR/kernel-*.config . +cp %{SOURCE51} . +# merge.pl +cp %{SOURCE3000} . +# kernel-local +cp %{SOURCE3001} . +VERSION=%{version} ./generate_all_configs.sh %{primary_target} %{debugbuildsenabled} + +# Merge in any user-provided local config option changes +%ifnarch %nobuildarches +for i in %{all_arch_configs} +do + mv $i $i.tmp + ./merge.pl %{SOURCE3001} $i.tmp > $i + rm $i.tmp +done +%endif + +# enable GCOV kernel config options if gcov is on +%if %{with_gcov} +for i in *.config +do + sed -i 's/# CONFIG_GCOV_KERNEL is not set/CONFIG_GCOV_KERNEL=y\nCONFIG_GCOV_PROFILE_ALL=y\n/' $i +done +%endif + +cp %{SOURCE52} . +OPTS="" +%if %{with_configchecks} + OPTS="$OPTS -w -n -c" +%endif +./process_configs.sh $OPTS kernel %{rpmversion} + +cp %{SOURCE56} . +RPM_SOURCE_DIR=$RPM_SOURCE_DIR ./update_scripts.sh %{primary_target} + +# end of kernel config +%endif + +cd .. +# # End of Configs stuff + +# get rid of unwanted files resulting from patch fuzz +find . \( -name "*.orig" -o -name "*~" \) -delete >/dev/null + +# remove unnecessary SCM files +find . -name .gitignore -delete >/dev/null + +cd .. + +### +### build +### +%build + +%if %{with_sparse} +%define sparse_mflags C=1 +%endif + +cp_vmlinux() +{ + eu-strip --remove-comment -o "$2" "$1" +} + +# Note we need to disable these flags for cross builds because the flags +# from redhat-rpm-config assume that host == target so target arch +# flags cause issues with the host compiler. +%if !%{with_cross} +%define build_hostcflags %{?build_cflags} +%define build_hostldflags %{?build_ldflags} +%endif + +%define make %{__make} %{?cross_opts} %{?make_opts} HOSTCFLAGS="%{?build_hostcflags}" HOSTLDFLAGS="%{?build_hostldflags}" + +BuildKernel() { + MakeTarget=$1 + KernelImage=$2 + Flavour=$4 + DoVDSO=$3 + Flav=${Flavour:++${Flavour}} + InstallName=${5:-vmlinuz} + + DoModules=1 + if [ "$Flavour" = "zfcpdump" ]; then + DoModules=0 + fi + + # Pick the right config file for the kernel we're building + Config=kernel-%{version}-%{_target_cpu}${Flavour:+-${Flavour}}.config + DevelDir=/usr/src/kernels/%{KVERREL}${Flav} + + # When the bootable image is just the ELF kernel, strip it. + # We already copy the unstripped file into the debuginfo package. + if [ "$KernelImage" = vmlinux ]; then + CopyKernel=cp_vmlinux + else + CopyKernel=cp + fi + + KernelVer=%{version}-%{release}.%{_target_cpu}${Flav} + echo BUILDING A KERNEL FOR ${Flavour} %{_target_cpu}... + + # make sure EXTRAVERSION says what we want it to say + # Trim the release if this is a CI build, since KERNELVERSION is limited to 64 characters + ShortRel=$(perl -e "print \"%{release}\" =~ s/\.pr\.[0-9A-Fa-f]{32}//r") + perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -${ShortRel}.%{_target_cpu}${Flav}/" Makefile + + # if pre-rc1 devel kernel, must fix up PATCHLEVEL for our versioning scheme + # if we are post rc1 this should match anyway so this won't matter + perl -p -i -e 's/^PATCHLEVEL.*/PATCHLEVEL = %{patchlevel}/' Makefile + + # and now to start the build process + + %{make} %{?_smp_mflags} mrproper + cp configs/$Config .config + + %if %{signkernel}%{signmodules} + cp $RPM_SOURCE_DIR/x509.genkey certs/. + %endif + + Arch=`head -1 .config | cut -b 3-` + echo USING ARCH=$Arch + + KCFLAGS="%{?kcflags}" + + # add kpatch flags for base kernel + if [ "$Flavour" == "" ]; then + KCFLAGS="$KCFLAGS %{?kpatch_kcflags}" + fi + + %{make} ARCH=$Arch olddefconfig >/dev/null + + # This ensures build-ids are unique to allow parallel debuginfo + perl -p -i -e "s/^CONFIG_BUILD_SALT.*/CONFIG_BUILD_SALT=\"%{KVERREL}\"/" .config + %{make} ARCH=$Arch KCFLAGS="$KCFLAGS" WITH_GCOV="%{?with_gcov}" %{?_smp_mflags} $MakeTarget %{?sparse_mflags} %{?kernel_mflags} + if [ $DoModules -eq 1 ]; then + %{make} ARCH=$Arch KCFLAGS="$KCFLAGS" WITH_GCOV="%{?with_gcov}" %{?_smp_mflags} modules %{?sparse_mflags} || exit 1 + fi + + mkdir -p $RPM_BUILD_ROOT/%{image_install_path} + mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer +%if %{with_debuginfo} + mkdir -p $RPM_BUILD_ROOT%{debuginfodir}/%{image_install_path} +%endif + +%ifarch %{arm} aarch64 + %{make} ARCH=$Arch dtbs INSTALL_DTBS_PATH=$RPM_BUILD_ROOT/%{image_install_path}/dtb-$KernelVer + %{make} ARCH=$Arch dtbs_install INSTALL_DTBS_PATH=$RPM_BUILD_ROOT/%{image_install_path}/dtb-$KernelVer + cp -r $RPM_BUILD_ROOT/%{image_install_path}/dtb-$KernelVer $RPM_BUILD_ROOT/lib/modules/$KernelVer/dtb + find arch/$Arch/boot/dts -name '*.dtb' -type f -delete +%endif + + # Start installing the results + install -m 644 .config $RPM_BUILD_ROOT/boot/config-$KernelVer + install -m 644 .config $RPM_BUILD_ROOT/lib/modules/$KernelVer/config + install -m 644 System.map $RPM_BUILD_ROOT/boot/System.map-$KernelVer + install -m 644 System.map $RPM_BUILD_ROOT/lib/modules/$KernelVer/System.map + + # We estimate the size of the initramfs because rpm needs to take this size + # into consideration when performing disk space calculations. (See bz #530778) + dd if=/dev/zero of=$RPM_BUILD_ROOT/boot/initramfs-$KernelVer.img bs=1M count=20 + + if [ -f arch/$Arch/boot/zImage.stub ]; then + cp arch/$Arch/boot/zImage.stub $RPM_BUILD_ROOT/%{image_install_path}/zImage.stub-$KernelVer || : + cp arch/$Arch/boot/zImage.stub $RPM_BUILD_ROOT/lib/modules/$KernelVer/zImage.stub-$KernelVer || : + fi + + %if %{signkernel} + if [ "$KernelImage" = vmlinux ]; then + # We can't strip and sign $KernelImage in place, because + # we need to preserve original vmlinux for debuginfo. + # Use a copy for signing. + $CopyKernel $KernelImage $KernelImage.tosign + KernelImage=$KernelImage.tosign + CopyKernel=cp + fi + + # Sign the image if we're using EFI + # aarch64 kernels are gziped EFI images + KernelExtension=${KernelImage##*.} + if [ "$KernelExtension" == "gz" ]; then + SignImage=${KernelImage%.*} + else + SignImage=$KernelImage + fi + + %ifarch x86_64 aarch64 + %pesign -s -i $SignImage -o vmlinuz.tmp -a %{secureboot_ca_0} -c %{secureboot_key_0} -n %{pesign_name_0} + %pesign -s -i vmlinuz.tmp -o vmlinuz.signed -a %{secureboot_ca_1} -c %{secureboot_key_1} -n %{pesign_name_1} + rm vmlinuz.tmp + %endif + %ifarch s390x ppc64le + if [ -x /usr/bin/rpm-sign ]; then + rpm-sign --key "%{pesign_name_0}" --lkmsign $SignImage --output vmlinuz.signed + elif [ $DoModules -eq 1 ]; then + chmod +x scripts/sign-file + ./scripts/sign-file -p sha256 certs/signing_key.pem certs/signing_key.x509 $SignImage vmlinuz.signed + else + mv $SignImage vmlinuz.signed + fi + %endif + + if [ ! -s vmlinuz.signed ]; then + echo "pesigning failed" + exit 1 + fi + mv vmlinuz.signed $SignImage + if [ "$KernelExtension" == "gz" ]; then + gzip -f9 $SignImage + fi + # signkernel + %endif + + $CopyKernel $KernelImage \ + $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer + chmod 755 $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer + cp $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer $RPM_BUILD_ROOT/lib/modules/$KernelVer/$InstallName + + # hmac sign the kernel for FIPS + echo "Creating hmac file: $RPM_BUILD_ROOT/%{image_install_path}/.vmlinuz-$KernelVer.hmac" + ls -l $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer + sha512hmac $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer | sed -e "s,$RPM_BUILD_ROOT,," > $RPM_BUILD_ROOT/%{image_install_path}/.vmlinuz-$KernelVer.hmac; + cp $RPM_BUILD_ROOT/%{image_install_path}/.vmlinuz-$KernelVer.hmac $RPM_BUILD_ROOT/lib/modules/$KernelVer/.vmlinuz.hmac + + if [ $DoModules -eq 1 ]; then + # Override $(mod-fw) because we don't want it to install any firmware + # we'll get it from the linux-firmware package and we don't want conflicts + %{make} %{?_smp_mflags} ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT %{?_smp_mflags} modules_install KERNELRELEASE=$KernelVer mod-fw= + fi + +%if %{with_gcov} + # install gcov-needed files to $BUILDROOT/$BUILD/...: + # gcov_info->filename is absolute path + # gcno references to sources can use absolute paths (e.g. in out-of-tree builds) + # sysfs symlink targets (set up at compile time) use absolute paths to BUILD dir + find . \( -name '*.gcno' -o -name '*.[chS]' \) -exec install -D '{}' "$RPM_BUILD_ROOT/$(pwd)/{}" \; +%endif + + # add an a noop %%defattr statement 'cause rpm doesn't like empty file list files + echo '%%defattr(-,-,-)' > ../kernel${Flavour:+-${Flavour}}-ldsoconf.list + if [ $DoVDSO -ne 0 ]; then + %{make} ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT vdso_install KERNELRELEASE=$KernelVer + if [ -s ldconfig-kernel.conf ]; then + install -D -m 444 ldconfig-kernel.conf \ + $RPM_BUILD_ROOT/etc/ld.so.conf.d/kernel-$KernelVer.conf + echo /etc/ld.so.conf.d/kernel-$KernelVer.conf >> ../kernel${Flavour:+-${Flavour}}-ldsoconf.list + fi + + rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/vdso/.build-id + fi + + # And save the headers/makefiles etc for building modules against + # + # This all looks scary, but the end result is supposed to be: + # * all arch relevant include/ files + # * all Makefile/Kconfig files + # * all script/ files + + rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build + rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/source + mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build + (cd $RPM_BUILD_ROOT/lib/modules/$KernelVer ; ln -s build source) + # dirs for additional modules per module-init-tools, kbuild/modules.txt + mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/updates + mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/weak-updates + # CONFIG_KERNEL_HEADER_TEST generates some extra files in the process of + # testing so just delete + find . -name *.h.s -delete + # first copy everything + cp --parents `find -type f -name "Makefile*" -o -name "Kconfig*"` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build + if [ ! -e Module.symvers ]; then + touch Module.symvers + fi + cp Module.symvers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build + cp System.map $RPM_BUILD_ROOT/lib/modules/$KernelVer/build + if [ -s Module.markers ]; then + cp Module.markers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build + fi + + # create the kABI metadata for use in packaging + # NOTENOTE: the name symvers is used by the rpm backend + # NOTENOTE: to discover and run the /usr/lib/rpm/fileattrs/kabi.attr + # NOTENOTE: script which dynamically adds exported kernel symbol + # NOTENOTE: checksums to the rpm metadata provides list. + # NOTENOTE: if you change the symvers name, update the backend too + echo "**** GENERATING kernel ABI metadata ****" + gzip -c9 < Module.symvers > $RPM_BUILD_ROOT/boot/symvers-$KernelVer.gz + cp $RPM_BUILD_ROOT/boot/symvers-$KernelVer.gz $RPM_BUILD_ROOT/lib/modules/$KernelVer/symvers.gz + +%if %{with_kabichk} + echo "**** kABI checking is enabled in kernel SPEC file. ****" + chmod 0755 $RPM_SOURCE_DIR/check-kabi + if [ -e $RPM_SOURCE_DIR/Module.kabi_%{_target_cpu}$Flavour ]; then + cp $RPM_SOURCE_DIR/Module.kabi_%{_target_cpu}$Flavour $RPM_BUILD_ROOT/Module.kabi + $RPM_SOURCE_DIR/check-kabi -k $RPM_BUILD_ROOT/Module.kabi -s Module.symvers || exit 1 + # for now, don't keep it around. + rm $RPM_BUILD_ROOT/Module.kabi + else + echo "**** NOTE: Cannot find reference Module.kabi file. ****" + fi +%endif + +%if %{with_kabidupchk} + echo "**** kABI DUP checking is enabled in kernel SPEC file. ****" + if [ -e $RPM_SOURCE_DIR/Module.kabi_dup_%{_target_cpu}$Flavour ]; then + cp $RPM_SOURCE_DIR/Module.kabi_dup_%{_target_cpu}$Flavour $RPM_BUILD_ROOT/Module.kabi + $RPM_SOURCE_DIR/check-kabi -k $RPM_BUILD_ROOT/Module.kabi -s Module.symvers || exit 1 + # for now, don't keep it around. + rm $RPM_BUILD_ROOT/Module.kabi + else + echo "**** NOTE: Cannot find DUP reference Module.kabi file. ****" + fi +%endif + +%if %{with_kabidw_base} + # Don't build kabi base for debug kernels + if [ "$Flavour" != "kdump" -a "$Flavour" != "debug" ]; then + mkdir -p $RPM_BUILD_ROOT/kabi-dwarf + tar xjvf %{SOURCE301} -C $RPM_BUILD_ROOT/kabi-dwarf + + mkdir -p $RPM_BUILD_ROOT/kabi-dwarf/whitelists + tar xjvf %{SOURCE300} -C $RPM_BUILD_ROOT/kabi-dwarf/whitelists + + echo "**** GENERATING DWARF-based kABI baseline dataset ****" + chmod 0755 $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh + $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh generate \ + "$RPM_BUILD_ROOT/kabi-dwarf/whitelists/kabi-current/kabi_whitelist_%{_target_cpu}" \ + "$(pwd)" \ + "$RPM_BUILD_ROOT/kabidw-base/%{_target_cpu}${Flavour:+.${Flavour}}" || : + + rm -rf $RPM_BUILD_ROOT/kabi-dwarf + fi +%endif + +%if %{with_kabidwchk} + if [ "$Flavour" != "kdump" ]; then + mkdir -p $RPM_BUILD_ROOT/kabi-dwarf + tar xjvf %{SOURCE301} -C $RPM_BUILD_ROOT/kabi-dwarf + if [ -d "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Flavour:+.${Flavour}}" ]; then + mkdir -p $RPM_BUILD_ROOT/kabi-dwarf/whitelists + tar xjvf %{SOURCE300} -C $RPM_BUILD_ROOT/kabi-dwarf/whitelists + + echo "**** GENERATING DWARF-based kABI dataset ****" + chmod 0755 $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh + $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh generate \ + "$RPM_BUILD_ROOT/kabi-dwarf/whitelists/kabi-current/kabi_whitelist_%{_target_cpu}" \ + "$(pwd)" \ + "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Flavour:+.${Flavour}}.tmp" || : + + echo "**** kABI DWARF-based comparison report ****" + $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh compare \ + "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Flavour:+.${Flavour}}" \ + "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Flavour:+.${Flavour}}.tmp" || : + echo "**** End of kABI DWARF-based comparison report ****" + else + echo "**** Baseline dataset for kABI DWARF-BASED comparison report not found ****" + fi + + rm -rf $RPM_BUILD_ROOT/kabi-dwarf + fi +%endif + + # then drop all but the needed Makefiles/Kconfig files + rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts + rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include + cp .config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build + cp -a scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build + rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/tracing + rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/spdxcheck.py + + # Files for 'make scripts' to succeed with kernel-devel. + mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/security/selinux/include + cp -a --parents security/selinux/include/classmap.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build + cp -a --parents security/selinux/include/initial_sid_to_string.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build + mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/tools/include/tools + cp -a --parents tools/include/tools/be_byteshift.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build + cp -a --parents tools/include/tools/le_byteshift.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build + + if [ -f tools/objtool/objtool ]; then + cp -a tools/objtool/objtool $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/tools/objtool/ || : + fi + if [ -d arch/$Arch/scripts ]; then + cp -a arch/$Arch/scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch} || : + fi + if [ -f arch/$Arch/*lds ]; then + cp -a arch/$Arch/*lds $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch}/ || : + fi + if [ -f arch/%{asmarch}/kernel/module.lds ]; then + cp -a --parents arch/%{asmarch}/kernel/module.lds $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + fi + rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*.o + rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*/*.o +%ifarch ppc64le + cp -a --parents arch/powerpc/lib/crtsavres.[So] $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ +%endif + if [ -d arch/%{asmarch}/include ]; then + cp -a --parents arch/%{asmarch}/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + fi +%ifarch aarch64 + # arch/arm64/include/asm/xen references arch/arm + cp -a --parents arch/arm/include/asm/xen $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + # arch/arm64/include/asm/opcodes.h references arch/arm + cp -a --parents arch/arm/include/asm/opcodes.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ +%endif + # include the machine specific headers for ARM variants, if available. +%ifarch %{arm} + if [ -d arch/%{asmarch}/mach-${Flavour}/include ]; then + cp -a --parents arch/%{asmarch}/mach-${Flavour}/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + fi + # include a few files for 'make prepare' + cp -a --parents arch/arm/tools/gen-mach-types $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + cp -a --parents arch/arm/tools/mach-types $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + +%endif + cp -a include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include +%ifarch i686 x86_64 + # files for 'make prepare' to succeed with kernel-devel + cp -a --parents arch/x86/entry/syscalls/syscall_32.tbl $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + cp -a --parents arch/x86/entry/syscalls/syscalltbl.sh $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + cp -a --parents arch/x86/entry/syscalls/syscallhdr.sh $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + cp -a --parents arch/x86/entry/syscalls/syscall_64.tbl $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + cp -a --parents arch/x86/tools/relocs_32.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + cp -a --parents arch/x86/tools/relocs_64.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + cp -a --parents arch/x86/tools/relocs.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + cp -a --parents arch/x86/tools/relocs_common.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + cp -a --parents arch/x86/tools/relocs.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + cp -a --parents tools/include/tools/le_byteshift.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + cp -a --parents arch/x86/purgatory/purgatory.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + cp -a --parents arch/x86/purgatory/stack.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + cp -a --parents arch/x86/purgatory/setup-x86_64.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + cp -a --parents arch/x86/purgatory/entry64.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + cp -a --parents arch/x86/boot/string.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + cp -a --parents arch/x86/boot/string.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + cp -a --parents arch/x86/boot/ctype.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ +%endif + # Make sure the Makefile and version.h have a matching timestamp so that + # external modules can be built + touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Makefile $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/generated/uapi/linux/version.h + + # Copy .config to include/config/auto.conf so "make prepare" is unnecessary. + cp $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/.config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/config/auto.conf + +%if %{with_debuginfo} + eu-readelf -n vmlinux | grep "Build ID" | awk '{print $NF}' > vmlinux.id + cp vmlinux.id $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/vmlinux.id + + # + # save the vmlinux file for kernel debugging into the kernel-debuginfo rpm + # + mkdir -p $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer + cp vmlinux $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer +%endif + + find $RPM_BUILD_ROOT/lib/modules/$KernelVer -name "*.ko" -type f >modnames + + # mark modules executable so that strip-to-file can strip them + xargs --no-run-if-empty chmod u+x < modnames + + # Generate a list of modules for block and networking. + + grep -F /drivers/ modnames | xargs --no-run-if-empty nm -upA | + sed -n 's,^.*/\([^/]*\.ko\): *U \(.*\)$,\1 \2,p' > drivers.undef + + collect_modules_list() + { + sed -r -n -e "s/^([^ ]+) \\.?($2)\$/\\1/p" drivers.undef | + LC_ALL=C sort -u > $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$1 + if [ ! -z "$3" ]; then + sed -r -e "/^($3)\$/d" -i $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$1 + fi + } + + collect_modules_list networking \ + 'register_netdev|ieee80211_register_hw|usbnet_probe|phy_driver_register|rt(l_|2x00)(pci|usb)_probe|register_netdevice' + collect_modules_list block \ + 'ata_scsi_ioctl|scsi_add_host|scsi_add_host_with_dma|blk_alloc_queue|blk_init_queue|register_mtd_blktrans|scsi_esp_register|scsi_register_device_handler|blk_queue_physical_block_size' 'pktcdvd.ko|dm-mod.ko' + collect_modules_list drm \ + 'drm_open|drm_init' + collect_modules_list modesetting \ + 'drm_crtc_init' + + # detect missing or incorrect license tags + ( find $RPM_BUILD_ROOT/lib/modules/$KernelVer -name '*.ko' | xargs /sbin/modinfo -l | \ + grep -E -v 'GPL( v2)?$|Dual BSD/GPL$|Dual MPL/GPL$|GPL and additional rights$' ) && exit 1 + + # remove files that will be auto generated by depmod at rpm -i time + pushd $RPM_BUILD_ROOT/lib/modules/$KernelVer/ + rm -f modules.{alias*,builtin.bin,dep*,*map,symbols*,devname,softdep} + popd + + # Identify modules in the kernel-modules-extras package + %{SOURCE17} $RPM_BUILD_ROOT lib/modules/$KernelVer $RPM_SOURCE_DIR/mod-extra.list + # Identify modules in the kernel-modules-extras package + %{SOURCE17} $RPM_BUILD_ROOT lib/modules/$KernelVer %{SOURCE54} internal + + # + # Generate the kernel-core and kernel-modules files lists + # + + # Copy the System.map file for depmod to use, and create a backup of the + # full module tree so we can restore it after we're done filtering + cp System.map $RPM_BUILD_ROOT/. + pushd $RPM_BUILD_ROOT + mkdir restore + cp -r lib/modules/$KernelVer/* restore/. + + # don't include anything going into kernel-modules-extra in the file lists + xargs rm -rf < mod-extra.list + # don't include anything going int kernel-modules-internal in the file lists + xargs rm -rf < mod-internal.list + + if [ $DoModules -eq 1 ]; then + # Find all the module files and filter them out into the core and + # modules lists. This actually removes anything going into -modules + # from the dir. + find lib/modules/$KernelVer/kernel -name *.ko | sort -n > modules.list + cp $RPM_SOURCE_DIR/filter-*.sh . + ./filter-modules.sh modules.list %{_target_cpu} + rm filter-*.sh + + # Run depmod on the resulting module tree and make sure it isn't broken + depmod -b . -aeF ./System.map $KernelVer &> depmod.out + if [ -s depmod.out ]; then + echo "Depmod failure" + cat depmod.out + exit 1 + else + rm depmod.out + fi + else + # Ensure important files/directories exist to let the packaging succeed + echo '%%defattr(-,-,-)' > modules.list + echo '%%defattr(-,-,-)' > k-d.list + mkdir -p lib/modules/$KernelVer/kernel + # Add files usually created by make modules, needed to prevent errors + # thrown by depmod during package installation + touch lib/modules/$KernelVer/modules.order + touch lib/modules/$KernelVer/modules.builtin + fi + + # remove files that will be auto generated by depmod at rpm -i time + pushd $RPM_BUILD_ROOT/lib/modules/$KernelVer/ + rm -f modules.{alias*,builtin.bin,dep*,*map,symbols*,devname,softdep} + popd + + # Go back and find all of the various directories in the tree. We use this + # for the dir lists in kernel-core + find lib/modules/$KernelVer/kernel -mindepth 1 -type d | sort -n > module-dirs.list + + # Cleanup + rm System.map + cp -r restore/* lib/modules/$KernelVer/. + rm -rf restore + popd + + # Make sure the files lists start with absolute paths or rpmbuild fails. + # Also add in the dir entries + sed -e 's/^lib*/\/lib/' %{?zipsed} $RPM_BUILD_ROOT/k-d.list > ../kernel${Flavour:+-${Flavour}}-modules.list + sed -e 's/^lib*/%dir \/lib/' %{?zipsed} $RPM_BUILD_ROOT/module-dirs.list > ../kernel${Flavour:+-${Flavour}}-core.list + sed -e 's/^lib*/\/lib/' %{?zipsed} $RPM_BUILD_ROOT/modules.list >> ../kernel${Flavour:+-${Flavour}}-core.list + sed -e 's/^lib*/\/lib/' %{?zipsed} $RPM_BUILD_ROOT/mod-extra.list >> ../kernel${Flavour:+-${Flavour}}-modules-extra.list + sed -e 's/^lib*/\/lib/' %{?zipsed} $RPM_BUILD_ROOT/mod-internal.list >> ../kernel${Flavour:+-${Flavour}}-modules-internal.list + + # Cleanup + rm -f $RPM_BUILD_ROOT/k-d.list + rm -f $RPM_BUILD_ROOT/modules.list + rm -f $RPM_BUILD_ROOT/module-dirs.list + rm -f $RPM_BUILD_ROOT/mod-extra.list + rm -f $RPM_BUILD_ROOT/mod-internal.list + +%if %{signmodules} + if [ $DoModules -eq 1 ]; then + # Save the signing keys so we can sign the modules in __modsign_install_post + cp certs/signing_key.pem certs/signing_key.pem.sign${Flav} + cp certs/signing_key.x509 certs/signing_key.x509.sign${Flav} + fi +%endif + + # Move the devel headers out of the root file system + mkdir -p $RPM_BUILD_ROOT/usr/src/kernels + mv $RPM_BUILD_ROOT/lib/modules/$KernelVer/build $RPM_BUILD_ROOT/$DevelDir + + # This is going to create a broken link during the build, but we don't use + # it after this point. We need the link to actually point to something + # when kernel-devel is installed, and a relative link doesn't work across + # the F17 UsrMove feature. + ln -sf $DevelDir $RPM_BUILD_ROOT/lib/modules/$KernelVer/build + + # prune junk from kernel-devel + find $RPM_BUILD_ROOT/usr/src/kernels -name ".*.cmd" -delete + + # build a BLS config for this kernel + %{SOURCE53} "$KernelVer" "$RPM_BUILD_ROOT" "%{?variant}" + + # Red Hat UEFI Secure Boot CA cert, which can be used to authenticate the kernel + mkdir -p $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer + %ifarch x86_64 aarch64 + install -m 0644 %{secureboot_ca_0} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca-20200609.cer + install -m 0644 %{secureboot_ca_1} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca-20140212.cer + ln -s kernel-signing-ca-20200609.cer $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca.cer + %else + install -m 0644 %{secureboot_ca_0} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca.cer + %endif + %ifarch s390x ppc64le + if [ $DoModules -eq 1 ]; then + if [ -x /usr/bin/rpm-sign ]; then + install -m 0644 %{secureboot_key_0} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/%{signing_key_filename} + else + install -m 0644 certs/signing_key.x509.sign${Flav} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca.cer + openssl x509 -in certs/signing_key.pem.sign${Flav} -outform der -out $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/%{signing_key_filename} + chmod 0644 $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/%{signing_key_filename} + fi + fi + %endif + +%if %{with_ipaclones} + MAXPROCS=$(echo %{?_smp_mflags} | sed -n 's/-j\s*\([0-9]\+\)/\1/p') + if [ -z "$MAXPROCS" ]; then + MAXPROCS=1 + fi + if [ "$Flavour" == "" ]; then + mkdir -p $RPM_BUILD_ROOT/$DevelDir-ipaclones + find . -name '*.ipa-clones' | xargs -i{} -r -n 1 -P $MAXPROCS install -m 644 -D "{}" "$RPM_BUILD_ROOT/$DevelDir-ipaclones/{}" + fi +%endif + +} + +### +# DO it... +### + +# prepare directories +rm -rf $RPM_BUILD_ROOT +mkdir -p $RPM_BUILD_ROOT/boot +mkdir -p $RPM_BUILD_ROOT%{_libexecdir} + +cd linux-%{KVERREL} + + +%if %{with_debug} +BuildKernel %make_target %kernel_image %{_use_vdso} debug +%endif + +%if %{with_zfcpdump} +BuildKernel %make_target %kernel_image %{_use_vdso} zfcpdump +%endif + +%if %{with_pae} +BuildKernel %make_target %kernel_image %{use_vdso} lpae +%endif + +%if %{with_up} +BuildKernel %make_target %kernel_image %{_use_vdso} +%endif + +%global perf_make \ + %{__make} -s EXTRA_CFLAGS="${RPM_OPT_FLAGS}" LDFLAGS="%{__global_ldflags}" %{?cross_opts} -C tools/perf V=1 NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 WERROR=0 NO_LIBUNWIND=1 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 prefix=%{_prefix} PYTHON=%{__python3} +%if %{with_perf} +%global _lto_cflags %{nil} +# perf +# make sure check-headers.sh is executable +chmod +x tools/perf/check-headers.sh +%{perf_make} DESTDIR=$RPM_BUILD_ROOT all +%endif + +%global tools_make \ + %{make} CFLAGS="${RPM_OPT_FLAGS}" LDFLAGS="%{__global_ldflags}" V=1 + +%if %{with_tools} +%ifarch %{cpupowerarchs} +# cpupower +# make sure version-gen.sh is executable. +chmod +x tools/power/cpupower/utils/version-gen.sh +%{tools_make} %{?_smp_mflags} -C tools/power/cpupower CPUFREQ_BENCH=false +%ifarch x86_64 + pushd tools/power/cpupower/debug/x86_64 + %{tools_make} %{?_smp_mflags} centrino-decode powernow-k8-decode + popd +%endif +%ifarch x86_64 + pushd tools/power/x86/x86_energy_perf_policy/ + %{tools_make} + popd + pushd tools/power/x86/turbostat + %{tools_make} + popd + pushd tools/power/x86/intel-speed-select + %{make} + popd +%endif +%endif +pushd tools/thermal/tmon/ +%{tools_make} +popd +pushd tools/iio/ +# Needs to be fixed to pick up CFLAGS +%{__make} +popd +pushd tools/gpio/ +# Needs to be fixed to pick up CFLAGS +%{__make} +popd +%endif + +%global bpftool_make \ + %{__make} EXTRA_CFLAGS="${RPM_OPT_FLAGS}" EXTRA_LDFLAGS="%{__global_ldflags}" DESTDIR=$RPM_BUILD_ROOT V=1 +%if %{with_bpftool} +pushd tools/bpf/bpftool +%{bpftool_make} +popd +%endif + +%if %{with_selftests} +%{make} -s ARCH=$Arch V=1 samples/bpf/ +pushd tools/testing/selftests +# We need to install here because we need to call make with ARCH set which +# doesn't seem possible to do in the install section. +%{make} -s ARCH=$Arch V=1 TARGETS="bpf livepatch net" INSTALL_PATH=%{buildroot}%{_libexecdir}/kselftests install +popd +%endif + +%if %{with_doc} +# Make the HTML pages. +%{__make} PYTHON=/usr/bin/python3 htmldocs || %{doc_build_fail} + +# sometimes non-world-readable files sneak into the kernel source tree +chmod -R a=rX Documentation +find Documentation -type d | xargs chmod u+w +%endif + +# In the modsign case, we do 3 things. 1) We check the "flavour" and hard +# code the value in the following invocations. This is somewhat sub-optimal +# but we're doing this inside of an RPM macro and it isn't as easy as it +# could be because of that. 2) We restore the .tmp_versions/ directory from +# the one we saved off in BuildKernel above. This is to make sure we're +# signing the modules we actually built/installed in that flavour. 3) We +# grab the arch and invoke mod-sign.sh command to actually sign the modules. +# +# We have to do all of those things _after_ find-debuginfo runs, otherwise +# that will strip the signature off of the modules. +# +# Don't sign modules for the zfcpdump flavour as it is monolithic. + +%define __modsign_install_post \ + if [ "%{signmodules}" -eq "1" ]; then \ + if [ "%{with_pae}" -ne "0" ]; then \ + %{modsign_cmd} certs/signing_key.pem.sign+lpae certs/signing_key.x509.sign+lpae $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+lpae/ \ + fi \ + if [ "%{with_debug}" -ne "0" ]; then \ + %{modsign_cmd} certs/signing_key.pem.sign+debug certs/signing_key.x509.sign+debug $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+debug/ \ + fi \ + if [ "%{with_up}" -ne "0" ]; then \ + %{modsign_cmd} certs/signing_key.pem.sign certs/signing_key.x509.sign $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/ \ + fi \ + fi \ + if [ "%{zipmodules}" -eq "1" ]; then \ + find $RPM_BUILD_ROOT/lib/modules/ -type f -name '*.ko' | %{SOURCE79} %{?_smp_mflags}; \ + fi \ +%{nil} + +### +### Special hacks for debuginfo subpackages. +### + +# This macro is used by %%install, so we must redefine it before that. +%define debug_package %{nil} + +%if %{with_debuginfo} + +%ifnarch noarch +%global __debug_package 1 +%files -f debugfiles.list debuginfo-common-%{_target_cpu} +%endif + +%endif + +# We don't want to package debuginfo for self-tests and samples but +# we have to delete them to avoid an error messages about unpackaged +# files. +# Delete the debuginfo for kernel-devel files +%define __remove_unwanted_dbginfo_install_post \ + if [ "%{with_selftests}" -ne "0" ]; then \ + rm -rf $RPM_BUILD_ROOT/usr/lib/debug/usr/libexec/ksamples; \ + rm -rf $RPM_BUILD_ROOT/usr/lib/debug/usr/libexec/kselftests; \ + fi \ + rm -rf $RPM_BUILD_ROOT/usr/lib/debug/usr/src; \ +%{nil} + +# +# Disgusting hack alert! We need to ensure we sign modules *after* all +# invocations of strip occur, which is in __debug_install_post if +# find-debuginfo.sh runs, and __os_install_post if not. +# +%define __spec_install_post \ + %{?__debug_package:%{__debug_install_post}}\ + %{__arch_install_post}\ + %{__os_install_post}\ + %{__remove_unwanted_dbginfo_install_post}\ + %{__modsign_install_post} + +### +### install +### + +%install + +cd linux-%{KVERREL} + +%if %{with_doc} +docdir=$RPM_BUILD_ROOT%{_datadir}/doc/kernel-doc-%{rpmversion} + +# copy the source over +mkdir -p $docdir +tar -h -f - --exclude=man --exclude='.*' -c Documentation | tar xf - -C $docdir + +# with_doc +%endif + +# We have to do the headers install before the tools install because the +# kernel headers_install will remove any header files in /usr/include that +# it doesn't install itself. + +%if %{with_headers} +# Install kernel headers +%{__make} ARCH=%{hdrarch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr headers_install + +find $RPM_BUILD_ROOT/usr/include \ + \( -name .install -o -name .check -o \ + -name ..install.cmd -o -name ..check.cmd \) -delete + +%endif + +%if %{with_cross_headers} +%if 0%{?fedora} +HDR_ARCH_LIST='arm arm64 powerpc s390 x86' +%else +HDR_ARCH_LIST='arm64 powerpc s390 x86' +%endif +mkdir -p $RPM_BUILD_ROOT/usr/tmp-headers + +for arch in $HDR_ARCH_LIST; do + mkdir $RPM_BUILD_ROOT/usr/tmp-headers/arch-${arch} + %{__make} ARCH=${arch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr/tmp-headers/arch-${arch} headers_install +done + +find $RPM_BUILD_ROOT/usr/tmp-headers \ + \( -name .install -o -name .check -o \ + -name ..install.cmd -o -name ..check.cmd \) -delete + +# Copy all the architectures we care about to their respective asm directories +for arch in $HDR_ARCH_LIST ; do + mkdir -p $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include + mv $RPM_BUILD_ROOT/usr/tmp-headers/arch-${arch}/include/* $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include/ +done + +rm -rf $RPM_BUILD_ROOT/usr/tmp-headers +%endif + +%if %{with_kernel_abi_whitelists} +# kabi directory +INSTALL_KABI_PATH=$RPM_BUILD_ROOT/lib/modules/ +mkdir -p $INSTALL_KABI_PATH + +# install kabi releases directories +tar xjvf %{SOURCE300} -C $INSTALL_KABI_PATH +# with_kernel_abi_whitelists +%endif + +%if %{with_perf} +# perf tool binary and supporting scripts/binaries +%{perf_make} DESTDIR=$RPM_BUILD_ROOT lib=%{_lib} install-bin install-traceevent-plugins +# remove the 'trace' symlink. +rm -f %{buildroot}%{_bindir}/trace + +# For both of the below, yes, this should be using a macro but right now +# it's hard coded and we don't actually want it anyway right now. +# Whoever wants examples can fix it up! + +# remove examples +rm -rf %{buildroot}/usr/lib/perf/examples +# remove the stray files that somehow got packaged +rm -rf %{buildroot}/usr/lib/perf/include/bpf/bpf.h +rm -rf %{buildroot}/usr/lib/perf/include/bpf/stdio.h +rm -rf %{buildroot}/usr/lib/perf/include/bpf/linux/socket.h +rm -rf %{buildroot}/usr/lib/perf/include/bpf/pid_filter.h +rm -rf %{buildroot}/usr/lib/perf/include/bpf/unistd.h + +# python-perf extension +%{perf_make} DESTDIR=$RPM_BUILD_ROOT install-python_ext + +# perf man pages (note: implicit rpm magic compresses them later) +mkdir -p %{buildroot}/%{_mandir}/man1 +%{perf_make} DESTDIR=$RPM_BUILD_ROOT install-man +%endif + +%if %{with_tools} +%ifarch %{cpupowerarchs} +%{make} -C tools/power/cpupower DESTDIR=$RPM_BUILD_ROOT libdir=%{_libdir} mandir=%{_mandir} CPUFREQ_BENCH=false install +rm -f %{buildroot}%{_libdir}/*.{a,la} +%find_lang cpupower +mv cpupower.lang ../ +%ifarch x86_64 + pushd tools/power/cpupower/debug/x86_64 + install -m755 centrino-decode %{buildroot}%{_bindir}/centrino-decode + install -m755 powernow-k8-decode %{buildroot}%{_bindir}/powernow-k8-decode + popd +%endif +chmod 0755 %{buildroot}%{_libdir}/libcpupower.so* +mkdir -p %{buildroot}%{_unitdir} %{buildroot}%{_sysconfdir}/sysconfig +install -m644 %{SOURCE2000} %{buildroot}%{_unitdir}/cpupower.service +install -m644 %{SOURCE2001} %{buildroot}%{_sysconfdir}/sysconfig/cpupower +%endif +%ifarch x86_64 + mkdir -p %{buildroot}%{_mandir}/man8 + pushd tools/power/x86/x86_energy_perf_policy + %{tools_make} DESTDIR=%{buildroot} install + popd + pushd tools/power/x86/turbostat + %{tools_make} DESTDIR=%{buildroot} install + popd + pushd tools/power/x86/intel-speed-select + %{tools_make} CFLAGS+="-D_GNU_SOURCE -Iinclude" DESTDIR=%{buildroot} install + popd +%endif +pushd tools/thermal/tmon +%{tools_make} INSTALL_ROOT=%{buildroot} install +popd +pushd tools/iio +%{__make} DESTDIR=%{buildroot} install +popd +pushd tools/gpio +%{__make} DESTDIR=%{buildroot} install +popd +pushd tools/kvm/kvm_stat +%{__make} INSTALL_ROOT=%{buildroot} install-tools +%{__make} INSTALL_ROOT=%{buildroot} install-man +popd +%endif + +%if %{with_bpftool} +pushd tools/bpf/bpftool +%{bpftool_make} prefix=%{_prefix} bash_compdir=%{_sysconfdir}/bash_completion.d/ mandir=%{_mandir} install doc-install +popd +%endif + +%if %{with_selftests} +pushd samples +install -d %{buildroot}%{_libexecdir}/ksamples +# install bpf samples +pushd bpf +install -d %{buildroot}%{_libexecdir}/ksamples/bpf +find -type f -executable -exec install -m755 {} %{buildroot}%{_libexecdir}/ksamples/bpf \; +install -m755 *.sh %{buildroot}%{_libexecdir}/ksamples/bpf +# test_lwt_bpf.sh compiles test_lwt_bpf.c when run; this works only from the +# kernel tree. Just remove it. +rm %{buildroot}%{_libexecdir}/ksamples/bpf/test_lwt_bpf.sh +install -m644 tcp_bpf.readme %{buildroot}%{_libexecdir}/ksamples/bpf +popd +# install pktgen samples +pushd pktgen +install -d %{buildroot}%{_libexecdir}/ksamples/pktgen +find . -type f -executable -exec install -m755 {} %{buildroot}%{_libexecdir}/ksamples/pktgen/{} \; +find . -type f ! -executable -exec install -m644 {} %{buildroot}%{_libexecdir}/ksamples/pktgen/{} \; +popd +popd +# install drivers/net/mlxsw selftests +pushd tools/testing/selftests/drivers/net/mlxsw +find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/drivers/net/mlxsw/{} \; +find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/drivers/net/mlxsw/{} \; +find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/drivers/net/mlxsw/{} \; +popd +# install net/forwarding selftests +pushd tools/testing/selftests/net/forwarding +find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/net/forwarding/{} \; +find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/net/forwarding/{} \; +find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/net/forwarding/{} \; +popd +# install tc-testing selftests +pushd tools/testing/selftests/tc-testing +find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/tc-testing/{} \; +find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/tc-testing/{} \; +find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/tc-testing/{} \; +popd +# install livepatch selftests +pushd tools/testing/selftests/livepatch +find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/livepatch/{} \; +find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/livepatch/{} \; +find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/livepatch/{} \; +popd +%endif + +# We have to do the headers checksum calculation after the tools install because +# these might end up installing their own set of headers on top of kernel's +%if %{with_headers} +# compute a content hash to export as Provides: kernel-headers-checksum +HEADERS_CHKSUM=$(export LC_ALL=C; find $RPM_BUILD_ROOT/usr/include -type f -name "*.h" \ + ! -path $RPM_BUILD_ROOT/usr/include/linux/version.h | \ + sort | xargs cat | sha1sum - | cut -f 1 -d ' '); +# export the checksum via usr/include/linux/version.h, so the dynamic +# find-provides can grab the hash to update it accordingly +echo "#define KERNEL_HEADERS_CHECKSUM \"$HEADERS_CHKSUM\"" >> $RPM_BUILD_ROOT/usr/include/linux/version.h +%endif + +### +### clean +### + +### +### scripts +### + +%if %{with_tools} +%post -n kernel-tools-libs +/sbin/ldconfig + +%postun -n kernel-tools-libs +/sbin/ldconfig +%endif + +# +# This macro defines a %%post script for a kernel*-devel package. +# %%kernel_devel_post [] +# Note we don't run hardlink if ostree is in use, as ostree is +# a far more sophisticated hardlink implementation. +# https://github.com/projectatomic/rpm-ostree/commit/58a79056a889be8814aa51f507b2c7a4dccee526 +# +%define kernel_devel_post() \ +%{expand:%%post %{?1:%{1}-}devel}\ +if [ -f /etc/sysconfig/kernel ]\ +then\ + . /etc/sysconfig/kernel || exit $?\ +fi\ +if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink -a ! -e /run/ostree-booted ] \ +then\ + (cd /usr/src/kernels/%{KVERREL}%{?1:+%{1}} &&\ + /usr/bin/find . -type f | while read f; do\ + hardlink -c /usr/src/kernels/*%{?dist}.*/$f $f\ + done)\ +fi\ +%{nil} + +# +# This macro defines a %%post script for a kernel*-modules-extra package. +# It also defines a %%postun script that does the same thing. +# %%kernel_modules_extra_post [] +# +%define kernel_modules_extra_post() \ +%{expand:%%post %{?1:%{1}-}modules-extra}\ +/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ +%{nil}\ +%{expand:%%postun %{?1:%{1}-}modules-extra}\ +/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ +%{nil} + +# +# This macro defines a %%post script for a kernel*-modules-internal package. +# It also defines a %%postun script that does the same thing. +# %%kernel_modules_internal_post [] +# +%define kernel_modules_internal_post() \ +%{expand:%%post %{?1:%{1}-}modules-internal}\ +/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ +%{nil}\ +%{expand:%%postun %{?1:%{1}-}modules-internal}\ +/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ +%{nil} + +# +# This macro defines a %%post script for a kernel*-modules package. +# It also defines a %%postun script that does the same thing. +# %%kernel_modules_post [] +# +%define kernel_modules_post() \ +%{expand:%%post %{?1:%{1}-}modules}\ +/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ +%{nil}\ +%{expand:%%postun %{?1:%{1}-}modules}\ +/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ +%{nil} + +# This macro defines a %%posttrans script for a kernel package. +# %%kernel_variant_posttrans [] +# More text can follow to go at the end of this variant's %%post. +# +%define kernel_variant_posttrans() \ +%{expand:%%posttrans %{?1:%{1}-}core}\ +if [ -x %{_sbindir}/weak-modules ]\ +then\ + %{_sbindir}/weak-modules --add-kernel %{KVERREL}%{?1:+%{1}} || exit $?\ +fi\ +/bin/kernel-install add %{KVERREL}%{?1:+%{1}} /lib/modules/%{KVERREL}%{?1:+%{1}}/vmlinuz || exit $?\ +%{nil} + +# +# This macro defines a %%post script for a kernel package and its devel package. +# %%kernel_variant_post [-v ] [-r ] +# More text can follow to go at the end of this variant's %%post. +# +%define kernel_variant_post(v:r:) \ +%{expand:%%kernel_devel_post %{?-v*}}\ +%{expand:%%kernel_modules_post %{?-v*}}\ +%{expand:%%kernel_modules_extra_post %{?-v*}}\ +%{expand:%%kernel_modules_internal_post %{?-v*}}\ +%{expand:%%kernel_variant_posttrans %{?-v*}}\ +%{expand:%%post %{?-v*:%{-v*}-}core}\ +%{-r:\ +if [ `uname -i` == "x86_64" -o `uname -i` == "i386" ] &&\ + [ -f /etc/sysconfig/kernel ]; then\ + /bin/sed -r -i -e 's/^DEFAULTKERNEL=%{-r*}$/DEFAULTKERNEL=kernel%{?-v:-%{-v*}}/' /etc/sysconfig/kernel || exit $?\ +fi}\ +%{nil} + +# +# This macro defines a %%preun script for a kernel package. +# %%kernel_variant_preun +# +%define kernel_variant_preun() \ +%{expand:%%preun %{?1:%{1}-}core}\ +/bin/kernel-install remove %{KVERREL}%{?1:+%{1}} /lib/modules/%{KVERREL}%{?1:+%{1}}/vmlinuz || exit $?\ +if [ -x %{_sbindir}/weak-modules ]\ +then\ + %{_sbindir}/weak-modules --remove-kernel %{KVERREL}%{?1:+%{1}} || exit $?\ +fi\ +%{nil} + +%kernel_variant_preun +%kernel_variant_post -r kernel-smp + +%if %{with_pae} +%kernel_variant_preun lpae +%kernel_variant_post -v lpae -r (kernel|kernel-smp) +%endif + +%kernel_variant_preun debug +%kernel_variant_post -v debug + +%if %{with_zfcpdump} +%kernel_variant_preun zfcpdump +%kernel_variant_post -v zfcpdump +%endif + +if [ -x /sbin/ldconfig ] +then + /sbin/ldconfig -X || exit $? +fi + +### +### file lists +### + +%if %{with_headers} +%files headers +/usr/include/* +%endif + +%if %{with_cross_headers} +%files cross-headers +/usr/*-linux-gnu/include/* +%endif + +%if %{with_kernel_abi_whitelists} +%files -n kernel-abi-whitelists +/lib/modules/kabi-* +%endif + +%if %{with_kabidw_base} +%ifarch x86_64 s390x ppc64 ppc64le aarch64 +%files kabidw-base +%defattr(-,root,root) +/kabidw-base/%{_target_cpu}/* +%endif +%endif + +# only some architecture builds need kernel-doc +%if %{with_doc} +%files doc +%defattr(-,root,root) +%{_datadir}/doc/kernel-doc-%{rpmversion}/Documentation/* +%dir %{_datadir}/doc/kernel-doc-%{rpmversion}/Documentation +%dir %{_datadir}/doc/kernel-doc-%{rpmversion} +%endif + +%if %{with_perf} +%files -n perf +%{_bindir}/perf +%{_libdir}/libperf-jvmti.so +%dir %{_libdir}/traceevent/plugins +%{_libdir}/traceevent/plugins/* +%dir %{_libexecdir}/perf-core +%{_libexecdir}/perf-core/* +%{_datadir}/perf-core/* +%{_mandir}/man[1-8]/perf* +%{_sysconfdir}/bash_completion.d/perf +%doc linux-%{KVERREL}/tools/perf/Documentation/examples.txt +%{_docdir}/perf-tip/tips.txt + +%files -n python3-perf +%{python3_sitearch}/* + +%if %{with_debuginfo} +%files -f perf-debuginfo.list -n perf-debuginfo + +%files -f python3-perf-debuginfo.list -n python3-perf-debuginfo +%endif +# with_perf +%endif + +%if %{with_tools} +%ifnarch %{cpupowerarchs} +%files -n kernel-tools +%else +%files -n kernel-tools -f cpupower.lang +%{_bindir}/cpupower +%{_datadir}/bash-completion/completions/cpupower +%ifarch x86_64 +%{_bindir}/centrino-decode +%{_bindir}/powernow-k8-decode +%endif +%{_unitdir}/cpupower.service +%{_mandir}/man[1-8]/cpupower* +%config(noreplace) %{_sysconfdir}/sysconfig/cpupower +%ifarch x86_64 +%{_bindir}/x86_energy_perf_policy +%{_mandir}/man8/x86_energy_perf_policy* +%{_bindir}/turbostat +%{_mandir}/man8/turbostat* +%{_bindir}/intel-speed-select +%endif +# cpupowerarchs +%endif +%{_bindir}/tmon +%{_bindir}/iio_event_monitor +%{_bindir}/iio_generic_buffer +%{_bindir}/lsiio +%{_bindir}/lsgpio +%{_bindir}/gpio-hammer +%{_bindir}/gpio-event-mon +%{_bindir}/gpio-watch +%{_mandir}/man1/kvm_stat* +%{_bindir}/kvm_stat + +%if %{with_debuginfo} +%files -f kernel-tools-debuginfo.list -n kernel-tools-debuginfo +%endif + +%ifarch %{cpupowerarchs} +%files -n kernel-tools-libs +%{_libdir}/libcpupower.so.0 +%{_libdir}/libcpupower.so.0.0.1 + +%files -n kernel-tools-libs-devel +%{_libdir}/libcpupower.so +%{_includedir}/cpufreq.h +%endif +# with_tools +%endif + +%if %{with_bpftool} +%files -n bpftool +%{_sbindir}/bpftool +%{_sysconfdir}/bash_completion.d/bpftool +%{_mandir}/man8/bpftool-cgroup.8.gz +%{_mandir}/man8/bpftool-gen.8.gz +%{_mandir}/man8/bpftool-iter.8.gz +%{_mandir}/man8/bpftool-link.8.gz +%{_mandir}/man8/bpftool-map.8.gz +%{_mandir}/man8/bpftool-prog.8.gz +%{_mandir}/man8/bpftool-perf.8.gz +%{_mandir}/man8/bpftool.8.gz +%{_mandir}/man7/bpf-helpers.7.gz +%{_mandir}/man8/bpftool-net.8.gz +%{_mandir}/man8/bpftool-feature.8.gz +%{_mandir}/man8/bpftool-btf.8.gz +%{_mandir}/man8/bpftool-struct_ops.8.gz + +%if %{with_debuginfo} +%files -f bpftool-debuginfo.list -n bpftool-debuginfo +%defattr(-,root,root) +%endif +%endif + +%if %{with_selftests} +%files selftests-internal +%{_libexecdir}/ksamples +%{_libexecdir}/kselftests +%endif + +# empty meta-package +%ifnarch %nobuildarches noarch +%files +%endif + +%if %{with_gcov} +%ifarch x86_64 s390x ppc64le aarch64 +%files gcov +%{_builddir} +%endif +%endif + +# This is %%{image_install_path} on an arch where that includes ELF files, +# or empty otherwise. +%define elf_image_install_path %{?kernel_image_elf:%{image_install_path}} + +# +# This macro defines the %%files sections for a kernel package +# and its devel and debuginfo packages. +# %%kernel_variant_files [-k vmlinux] +# +%define kernel_variant_files(k:) \ +%if %{2}\ +%{expand:%%files -f kernel-%{?3:%{3}-}core.list %{?1:-f kernel-%{?3:%{3}-}ldsoconf.list} %{?3:%{3}-}core}\ +%{!?_licensedir:%global license %%doc}\ +%license linux-%{KVERREL}/COPYING-%{version}-%{release}\ +/lib/modules/%{KVERREL}%{?3:+%{3}}/%{?-k:%{-k*}}%{!?-k:vmlinuz}\ +%ghost /%{image_install_path}/%{?-k:%{-k*}}%{!?-k:vmlinuz}-%{KVERREL}%{?3:+%{3}}\ +/lib/modules/%{KVERREL}%{?3:+%{3}}/.vmlinuz.hmac \ +%ghost /%{image_install_path}/.vmlinuz-%{KVERREL}%{?3:+%{3}}.hmac \ +%ifarch %{arm} aarch64\ +/lib/modules/%{KVERREL}%{?3:+%{3}}/dtb \ +%ghost /%{image_install_path}/dtb-%{KVERREL}%{?3:+%{3}} \ +%endif\ +%attr(600,root,root) /lib/modules/%{KVERREL}%{?3:+%{3}}/System.map\ +%ghost /boot/System.map-%{KVERREL}%{?3:+%{3}}\ +/lib/modules/%{KVERREL}%{?3:+%{3}}/symvers.gz\ +/lib/modules/%{KVERREL}%{?3:+%{3}}/config\ +%ghost /boot/symvers-%{KVERREL}%{?3:+%{3}}.gz\ +%ghost /boot/config-%{KVERREL}%{?3:+%{3}}\ +%ghost /boot/initramfs-%{KVERREL}%{?3:+%{3}}.img\ +%dir /lib/modules\ +%dir /lib/modules/%{KVERREL}%{?3:+%{3}}\ +%dir /lib/modules/%{KVERREL}%{?3:+%{3}}/kernel\ +/lib/modules/%{KVERREL}%{?3:+%{3}}/build\ +/lib/modules/%{KVERREL}%{?3:+%{3}}/source\ +/lib/modules/%{KVERREL}%{?3:+%{3}}/updates\ +/lib/modules/%{KVERREL}%{?3:+%{3}}/bls.conf\ +/lib/modules/%{KVERREL}%{?3:+%{3}}/weak-updates\ +%{_datadir}/doc/kernel-keys/%{KVERREL}%{?3:+%{3}}\ +%if %{1}\ +/lib/modules/%{KVERREL}%{?3:+%{3}}/vdso\ +%endif\ +/lib/modules/%{KVERREL}%{?3:+%{3}}/modules.*\ +%{expand:%%files -f kernel-%{?3:%{3}-}modules.list %{?3:%{3}-}modules}\ +%{expand:%%files %{?3:%{3}-}devel}\ +%defverify(not mtime)\ +/usr/src/kernels/%{KVERREL}%{?3:+%{3}}\ +%{expand:%%files -f kernel-%{?3:%{3}-}modules-extra.list %{?3:%{3}-}modules-extra}\ +%config(noreplace) /etc/modprobe.d/*-blacklist.conf\ +%{expand:%%files -f kernel-%{?3:%{3}-}modules-internal.list %{?3:%{3}-}modules-internal}\ +%if %{with_debuginfo}\ +%ifnarch noarch\ +%{expand:%%files -f debuginfo%{?3}.list %{?3:%{3}-}debuginfo}\ +%endif\ +%endif\ +%if %{?3:1} %{!?3:0}\ +%{expand:%%files %{3}}\ +%endif\ +%endif\ +%{nil} + +%kernel_variant_files %{_use_vdso} %{with_up} +%kernel_variant_files %{_use_vdso} %{with_debug} debug +%kernel_variant_files %{use_vdso} %{with_pae} lpae +%kernel_variant_files %{_use_vdso} %{with_zfcpdump} zfcpdump 1 + +%define kernel_variant_ipaclones(k:) \ +%if %{1}\ +%if %{with_ipaclones}\ +%{expand:%%files %{?2:%{2}-}ipaclones-internal}\ +%defattr(-,root,root)\ +%defverify(not mtime)\ +/usr/src/kernels/%{KVERREL}%{?2:+%{2}}-ipaclones\ +%endif\ +%endif\ +%{nil} + +%kernel_variant_ipaclones %{with_up} + +# plz don't put in a version string unless you're going to tag +# and build. +# +# +%changelog +* Wed Oct 14 2020 Fedora Kernel Team [5.10.0-0.rc0.20201014gitb5fc7a89e58b.40] +- Filter out LTO build options from the perl ccopts ("Justin M. Forbes") +- Work around for gcc bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96377 ("Justin M. Forbes") + +* Wed Oct 14 2020 Fedora Kernel Team [5.10.0-0.rc0.20201014gitb5fc7a89e58b.39.test] +- b5fc7a89e58b rebase + +* Tue Oct 13 2020 Fedora Kernel Team [5.10.0-0.rc0.20201013gitc4439713e82a.38.test] +- c4439713e82a rebase + +* Tue Oct 13 2020 Fedora Kernel Team [5.10.0-0.rc0.20201013git865c50e1d279.37.test] +- 865c50e1d279 rebase + +* Tue Oct 13 2020 Fedora Kernel Team [5.9.0-35.test] +- Disable Speakup synth DECEXT ("Justin M. Forbes") +- Enable Speakup for Fedora since it is out of staging ("Justin M. Forbes") + +* Mon Oct 12 2020 Fedora Kernel Team [5.9.0-34.test] +- v5.9 rebase + +* Mon Oct 12 2020 Fedora Kernel Team [5.9.0-0.rc8.20201012gitda690031a5d6.33.test] +- da690031a5d6 rebase + +* Sun Oct 11 2020 Fedora Kernel Team [5.9.0-0.rc8.20201011git6f2f486d57c4.32.test] +- 6f2f486d57c4 rebase + +* Sat Oct 10 2020 Fedora Kernel Team [5.9.0-0.rc8.20201010git583090b1b823.31.test] +- 583090b1b823 rebase +- redhat/self-test: Initial commit (Ben Crocker) +- generate_all_configs.sh: Fix syntax flagged by shellcheck (Ben Crocker) +- process_configs.sh: Fix syntax flagged by shellcheck (Ben Crocker) + +* Fri Oct 09 2020 Fedora Kernel Team [5.9.0-0.rc8.20201009git7575fdda569b.31] +- Modify patchlist changelog output (Don Zickus) +- Filter out LTO build options from the perl ccopts ("Justin M. Forbes") +- Temporarily remove cdomain from sphinx documentation ("Justin M. Forbes") +- Work around for gcc bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96377 ("Justin M. Forbes") + +* Fri Oct 09 2020 Fedora Kernel Team [5.9.0-0.rc8.20201009git7575fdda569b.30.test] +- Updated changelog for the release based on 7575fdda569b (Fedora Kernel Team) +- Fix path location for ark-update-configs.sh (Don Zickus) +- Stop merging ark-patches for release (Don Zickus) +- Combine Red Hat patches into single patch (Don Zickus) +- Fixes "acpi: prefer booting with ACPI over DTS" to be RHEL only (Peter Robinson) +- arch/x86: Remove vendor specific CPU ID checks (Prarit Bhargava) +- redhat: Replace hardware.redhat.com link in Unsupported message (Prarit Bhargava) +- x86: Fix compile issues with rh_check_supported() (Don Zickus) +- e1000e: bump up timeout to wait when ME un-configure ULP mode (Aaron Ma) +- drm/sun4i: sun6i_mipi_dsi: fix horizontal timing calculation (Icenowy Zheng) +- drm: panel: add Xingbangda XBD599 panel (Icenowy Zheng) +- dt-bindings: panel: add binding for Xingbangda XBD599 panel (Icenowy Zheng) +- ARM: fix __get_user_check() in case uaccess_* calls are not inlined (Masahiro Yamada) +- mm/kmemleak: skip late_init if not skip disable (Murphy Zhou) +- KEYS: Make use of platform keyring for module signature verify (Robert Holmes) +- Drop that for now (Laura Abbott) +- Input: rmi4 - remove the need for artificial IRQ in case of HID (Benjamin Tissoires) +- ARM: tegra: usb no reset (Peter Robinson) +- arm: make CONFIG_HIGHPTE optional without CONFIG_EXPERT (Jon Masters) +- redhat: rh_kabi: deduplication friendly structs (Jiri Benc) +- redhat: rh_kabi add a comment with warning about RH_KABI_EXCLUDE usage (Jiri Benc) +- redhat: rh_kabi: introduce RH_KABI_EXTEND_WITH_SIZE (Jiri Benc) +- redhat: rh_kabi: Indirect EXTEND macros so nesting of other macros will resolve. (Don Dutile) +- redhat: rh_kabi: Fix RH_KABI_SET_SIZE to use dereference operator (Tony Camuso) +- redhat: rh_kabi: Add macros to size and extend structs (Prarit Bhargava) +- Removing Obsolete hba pci-ids from rhel8 (Dick Kennedy) [1572321] +- mptsas: pci-id table changes (Laura Abbott) +- mptsas: Taint kernel if mptsas is loaded (Laura Abbott) +- mptspi: pci-id table changes (Laura Abbott) +- qla2xxx: Remove PCI IDs of deprecated adapter (Jeremy Cline) +- be2iscsi: remove unsupported device IDs (Chris Leech) [1574502] +- mptspi: Taint kernel if mptspi is loaded (Laura Abbott) +- hpsa: remove old cciss-based smartarray pci ids (Joseph Szczypek) [1471185] +- qla4xxx: Remove deprecated PCI IDs from RHEL 8 (Chad Dupuis) [1518874] +- aacraid: Remove depreciated device and vendor PCI id's (Raghava Aditya Renukunta) [1495307] +- megaraid_sas: remove deprecated pci-ids (Tomas Henzl) [1509329] +- mpt*: remove certain deprecated pci-ids (Jeremy Cline) +- kernel: add SUPPORT_REMOVED kernel taint (Tomas Henzl) [1602033] +- Rename RH_DISABLE_DEPRECATED to RHEL_DIFFERENCES (Don Zickus) +- Add option of 13 for FORCE_MAX_ZONEORDER (Peter Robinson) +- s390: Lock down the kernel when the IPL secure flag is set (Jeremy Cline) +- efi: Lock down the kernel if booted in secure boot mode (David Howells) +- efi: Add an EFI_SECURE_BOOT flag to indicate secure boot mode (David Howells) +- security: lockdown: expose a hook to lock the kernel down (Jeremy Cline) +- Make get_cert_list() use efi_status_to_str() to print error messages. (Peter Jones) +- Add efi_status_to_str() and rework efi_status_to_err(). (Peter Jones) +- Add support for deprecating processors (Laura Abbott) +- arm: aarch64: Drop the EXPERT setting from ARM64_FORCE_52BIT (Jeremy Cline) +- iommu/arm-smmu: workaround DMA mode issues (Laura Abbott) +- rh_kabi: introduce RH_KABI_EXCLUDE (Jakub Racek) [1652256] +- ipmi: do not configure ipmi for HPE m400 (Laura Abbott) [https://bugzilla.redhat.com/show_bug.cgi?id=1670017] +- IB/rxe: Mark Soft-RoCE Transport driver as tech-preview (Don Dutile) [1605216] +- scsi: smartpqi: add inspur advantech ids (Don Brace) [1503736] +- ice: mark driver as tech-preview (Jonathan Toppins) [1495347] +- kABI: Add generic kABI macros to use for kABI workarounds (Myron Stowe) [1546831] +- add pci_hw_vendor_status() (Maurizio Lombardi) [1590829] +- ahci: thunderx2: Fix for errata that affects stop engine (Robert Richter) [1563590] +- Vulcan: AHCI PCI bar fix for Broadcom Vulcan early silicon (Robert Richter) [1563590] +- bpf: Add tech preview taint for syscall (Eugene Syromiatnikov) [1559877] +- bpf: set unprivileged_bpf_disabled to 1 by default, add a boot parameter (Eugene Syromiatnikov) [1561171] +- add Red Hat-specific taint flags (Eugene Syromiatnikov) [1559877] +- kdump: fix a grammar issue in a kernel message (Dave Young) [1507353] +- tags.sh: Ignore redhat/rpm (Jeremy Cline) +- put RHEL info into generated headers (Laura Abbott) [https://bugzilla.redhat.com/show_bug.cgi?id=1663728] +- kdump: add support for crashkernel=auto (Jeremy Cline) +- kdump: round up the total memory size to 128M for crashkernel reservation (Dave Young) [1507353] +- acpi: prefer booting with ACPI over DTS (Mark Salter) [1576869] +- aarch64: acpi scan: Fix regression related to X-Gene UARTs (Mark Salter) [1519554] +- ACPI / irq: Workaround firmware issue on X-Gene based m400 (Mark Salter) [1519554] +- modules: add rhelversion MODULE_INFO tag (Laura Abbott) +- ACPI: APEI: arm64: Ignore broken HPE moonshot APEI support (Al Stone) [1518076] +- Add Red Hat tainting (Laura Abbott) +- Introduce CONFIG_RH_DISABLE_DEPRECATED (Laura Abbott) + +* Thu Oct 08 2020 Fedora Kernel Team [5.9.0-0.rc8.20201008git7575fdda569b.30] +- Merge ark-patches + +* Thu Oct 08 2020 Fedora Kernel Team [5.9.0-0.rc8.20201008git7575fdda569b.29.test] +- Updated changelog for the release based on 7575fdda569b (Fedora Kernel Team) + +* Wed Oct 07 2020 Fedora Kernel Team [5.9.0-0.rc8.20201007git7575fdda569b.29] +- Merge ark-patches + +* Wed Oct 07 2020 Fedora Kernel Team [5.9.0-0.rc8.20201007git7575fdda569b.28.test] +- 7575fdda569b rebase +- New configs in drivers/misc (Jeremy Cline) +- New configs in drivers/net/wireless ("Justin M. Forbes") +- New configs in drivers/phy (Fedora Kernel Team) +- New configs in drivers/tty (Fedora Kernel Team) + +* Tue Oct 06 2020 Fedora Kernel Team [5.9.0-0.rc8.28] +- Merge ark-patches + +* Tue Oct 06 2020 Fedora Kernel Team [5.9.0-0.rc8.27.test] +- Updated changelog for the release based on v5.9-rc8 (Fedora Kernel Team) + +* Mon Oct 05 2020 Fedora Kernel Team [5.9.0-0.rc8.27] +- Merge ark-patches + +* Mon Oct 05 2020 Fedora Kernel Team [5.9.0-0.rc8.26.test] +- v5.9-rc8 rebase +- Updated changelog for the release based on 22fbc037cd32 (Fedora Kernel Team) + +* Mon Oct 05 2020 Fedora Kernel Team [5.9.0-0.rc7.20201005git22fbc037cd32.26] +- Merge ark-patches + +* Mon Oct 05 2020 Fedora Kernel Team [5.9.0-0.rc7.20201005git22fbc037cd32.25.test] +- 22fbc037cd32 rebase +- Updated changelog for the release based on d3d45f8220d6 (Fedora Kernel Team) + +* Sun Oct 04 2020 Fedora Kernel Team [5.9.0-0.rc7.20201004gitd3d45f8220d6.25] +- Merge ark-patches + +* Sun Oct 04 2020 Fedora Kernel Team [5.9.0-0.rc7.20201004gitd3d45f8220d6.24.test] +- d3d45f8220d6 rebase +- Updated changelog for the release based on 472e5b056f00 (Fedora Kernel Team) + +* Sat Oct 03 2020 Fedora Kernel Team [5.9.0-0.rc7.20201003git472e5b056f00.24] +- Merge ark-patches + +* Sat Oct 03 2020 Fedora Kernel Team [5.9.0-0.rc7.20201003git472e5b056f00.23.test] +- 472e5b056f00 rebase +- Set SquashFS decompression options for all flavors to match RHEL (Bohdan Khomutskyi) +- Updated changelog for the release based on 60e720931556 (Fedora Kernel Team) + +* Fri Oct 02 2020 Fedora Kernel Team [5.9.0-0.rc7.20201002git60e720931556.23] +- Merge ark-patches + +* Fri Oct 02 2020 Fedora Kernel Team [5.9.0-0.rc7.20201002git60e720931556.22.test] +- 60e720931556 rebase +- New configs in drivers/pinctrl (Fedora Kernel Team) +- Updated changelog for the release based on 02de58b24d2e (Fedora Kernel Team) +- Update CONFIG_THERMAL_NETLINK (Justin Forbes) +- configs: Enable CONFIG_ENERGY_MODEL (Phil Auld) + +* Thu Oct 01 2020 Fedora Kernel Team [5.9.0-0.rc7.20201001git02de58b24d2e.22] +- Merge ark-patches + +* Thu Oct 01 2020 Fedora Kernel Team [5.9.0-0.rc7.20201001git02de58b24d2e.21.test] +- 02de58b24d2e rebase +- Updated changelog for the release based on fb0155a09b02 (Fedora Kernel Team) + +* Wed Sep 30 2020 Fedora Kernel Team [5.9.0-0.rc7.20200930gitfb0155a09b02.21] +- Merge ark-patches + +* Wed Sep 30 2020 Fedora Kernel Team [5.9.0-0.rc7.20200930gitfb0155a09b02.20.test] +- fb0155a09b02 rebase + +* Tue Sep 29 2020 Fedora Kernel Team [5.9.0-0.rc7.20] +- Merge ark-patches + +* Tue Sep 29 2020 Fedora Kernel Team [5.9.0-0.rc7.19.test] +- Separate merge-upstream and release stages (Don Zickus) +- Re-enable CONFIG_IR_SERIAL on Fedora (Prarit Bhargava) +- Updated changelog for the release based on v5.9-rc7 (Fedora Kernel Team) + +* Mon Sep 28 2020 Fedora Kernel Team [5.9.0-0.rc7.19] +- Merge ark-patches + +* Mon Sep 28 2020 Fedora Kernel Team [5.9.0-0.rc7.18.test] +- v5.9-rc7 rebase +- Updated changelog for the release based on a1bffa48745a (Fedora Kernel Team) + +* Sun Sep 27 2020 Fedora Kernel Team [5.9.0-0.rc6.20200927gita1bffa48745a.18] +- Merge ark-patches + +* Sun Sep 27 2020 Fedora Kernel Team [5.9.0-0.rc6.20200927gita1bffa48745a.17.test] +- a1bffa48745a rebase +- Updated changelog for the release based on 7c7ec3226f5f (Fedora Kernel Team) +- Create Patchlist.changelog file (Don Zickus) + +* Sat Sep 26 2020 Fedora Kernel Team [5.9.0-0.rc6.20200926git7c7ec3226f5f.17] +- Merge ark-patches + +* Sat Sep 26 2020 Fedora Kernel Team [5.9.0-0.rc6.20200926git7c7ec3226f5f.16.test] +- 7c7ec3226f5f rebase +- Filter out upstream commits from changelog (Don Zickus) +- Merge Upstream script fixes (Don Zickus) +- Updated changelog for the release based on 171d4ff79f96 (Fedora Kernel Team) + +* Fri Sep 25 2020 Fedora Kernel Team [5.9.0-0.rc6.20200925git171d4ff79f96.16] +- Merge ark-patches + +* Fri Sep 25 2020 Fedora Kernel Team [5.9.0-0.rc6.20200925git171d4ff79f96.15.test] +- 171d4ff79f96 rebase +- mm: fix misplaced unlock_page in do_wp_page() (Linus Torvalds) +- Updated changelog for the release based on c9c9e6a49f89 (Fedora Kernel Team) +- Revert "ALSA: usb-audio: Disable Lenovo P620 Rear line-in volume control" (Kai-Heng Feng) +- media: dt-bindings: media: imx274: Convert to json-schema (Jacopo Mondi) +- Revert "ALSA: hda - Fix silent audio output and corrupted input on MSI X570-A PRO" (Takashi Iwai) +- ALSA: usb-audio: Add delay quirk for H570e USB headsets (Joakim Tjernlund) +- ALSA: hda/realtek: Enable front panel headset LED on Lenovo ThinkStation P520 (Kai-Heng Feng) +- ALSA: hda/realtek - Couldn't detect Mic if booting with headset plugged (Hui Wang) +- ALSA: asihpi: fix iounmap in error handler (Tom Rix) +- media: media/v4l2: remove V4L2_FLAG_MEMORY_NON_CONSISTENT flag (Sergey Senozhatsky) +- mmc: mmc_spi: Fix mmc_spi_dma_alloc() return type for !HAS_DMA (Geert Uytterhoeven) +- media: cec-adap.c: don't use flush_scheduled_work() (Hans Verkuil) + +* Thu Sep 24 2020 Fedora Kernel Team [5.9.0-0.rc6.20200924gitc9c9e6a49f89.15] +- Merge ark-patches + +* Thu Sep 24 2020 Fedora Kernel Team [5.9.0-0.rc6.20200924gitc9c9e6a49f89.14.test] +- c9c9e6a49f89 rebase +- mm: move the copy_one_pte() pte_present check into the caller (Linus Torvalds) +- mm: split out the non-present case from copy_one_pte() (Linus Torvalds) +- Updated changelog for the release based on 805c6d3c1921 (Fedora Kernel Team) +- dm crypt: document encrypted keyring key option (Milan Broz) +- dm crypt: document new no_workqueue flags (Milan Broz) +- btrfs: fix put of uninitialized kobject after seed device delete (Anand Jain) +- tools/bootconfig: Add testcase for tailing space (Masami Hiramatsu) +- tools/bootconfig: Add testcases for repeated key with brace (Masami Hiramatsu) +- lib/bootconfig: Fix to remove tailing spaces after value (Masami Hiramatsu) +- lib/bootconfig: Fix a bug of breaking existing tree nodes (Masami Hiramatsu) +- dm: fix comment in dm_process_bio() (Mike Snitzer) +- dm: fix bio splitting and its bio completion order for regular IO (Mike Snitzer) +- btrfs: fix overflow when copying corrupt csums for a message (Johannes Thumshirn) + +* Wed Sep 23 2020 Fedora Kernel Team [5.9.0-0.rc6.20200923git805c6d3c1921.14] +- Merge ark-patches + +* Wed Sep 23 2020 Fedora Kernel Team [5.9.0-0.rc6.20200923git805c6d3c1921.13.test] +- 805c6d3c1921 rebase +- Updated changelog for the release based on 98477740630f (Fedora Kernel Team) +- net: mscc: ocelot: fix some key offsets for IP4_TCP_UDP VCAP IS2 entries (Vladimir Oltean) +- net: dsa: seville: fix some key offsets for IP4_TCP_UDP VCAP IS2 entries (Vladimir Oltean) +- net: dsa: felix: fix some key offsets for IP4_TCP_UDP VCAP IS2 entries (Xiaoliang Yang) +- inet_diag: validate INET_DIAG_REQ_PROTOCOL attribute (Eric Dumazet) +- net: bridge: br_vlan_get_pvid_rcu() should dereference the VLAN group under RCU (Vladimir Oltean) +- net: Update MAINTAINERS for MediaTek switch driver (Sean Wang) +- net/mlx5e: mlx5e_fec_in_caps() returns a boolean (Saeed Mahameed) +- net/mlx5e: kTLS, Avoid kzalloc(GFP_KERNEL) under spinlock (Saeed Mahameed) +- net/mlx5e: kTLS, Fix leak on resync error flow (Saeed Mahameed) +- net/mlx5e: kTLS, Add missing dma_unmap in RX resync (Saeed Mahameed) +- net/mlx5e: kTLS, Fix napi sync and possible use-after-free (Tariq Toukan) +- net/mlx5e: TLS, Do not expose FPGA TLS counter if not supported (Tariq Toukan) +- net/mlx5e: Fix using wrong stats_grps in mlx5e_update_ndo_stats() (Alaa Hleihel) +- net/mlx5e: Fix multicast counter not up-to-date in "ip -s" (Ron Diskin) +- net/mlx5e: Fix endianness when calculating pedit mask first bit (Maor Dickman) +- net/mlx5e: Enable adding peer miss rules only if merged eswitch is supported (Maor Dickman) +- net/mlx5e: CT: Fix freeing ct_label mapping (Roi Dayan) +- net/mlx5e: Fix memory leak of tunnel info when rule under multipath not ready (Jianbo Liu) +- net/mlx5e: Use synchronize_rcu to sync with NAPI (Maxim Mikityanskiy) +- net/mlx5e: Use RCU to protect rq->xdp_prog (Maxim Mikityanskiy) +- net/mlx5: Fix FTE cleanup (Maor Gottlieb) +- ipv6: route: convert comma to semicolon (Xu Wang) +- sfc: Fix error code in probe (Dan Carpenter) +- io_uring: fix openat/openat2 unified prep handling (Jens Axboe) +- io_uring: mark statx/files_update/epoll_ctl as non-SQPOLL (Jens Axboe) +- tools/io_uring: fix compile breakage (Douglas Gilbert) +- io_uring: don't use retry based buffered reads for non-async bdev (Jens Axboe) +- io_uring: don't re-setup vecs/iter in io_resumit_prep() is already there (Jens Axboe) +- bnxt_en: Fix wrong flag value passed to HWRM_PORT_QSTATS_EXT fw call. (Michael Chan) +- bnxt_en: Fix HWRM_FUNC_QSTATS_EXT firmware call. (Michael Chan) +- bnxt_en: Return -EOPNOTSUPP for ETHTOOL_GREGS on VFs. (Vasundhara Volam) +- bnxt_en: Protect bnxt_set_eee() and bnxt_set_pauseparam() with mutex. (Michael Chan) +- bnxt_en: return proper error codes in bnxt_show_temp (Edwin Peer) +- bnxt_en: Use memcpy to copy VPD field info. (Vasundhara Volam) +- net: sctp: Fix IPv6 ancestor_size calc in sctp_copy_descendant (Henry Ptasinski) +- net: mvneta: recycle the page in case of out-of-order (Lorenzo Bianconi) +- rhashtable: fix indentation of a continue statement (Colin Ian King) +- bootconfig: init: make xbc_namebuf static (Jason Yan) +- MAINTAINERS: Update ibmveth maintainer (Cristobal Forno) +- net: ipv6: fix kconfig dependency warning for IPV6_SEG6_HMAC (Necip Fazil Yildiran) +- dpaa2-eth: fix a build warning in dpmac.c (Yangbo Lu) +- hinic: fix sending pkts from core while self testing (Luo bin) +- net: mscc: ocelot: deinitialize only initialized ports (Vladimir Oltean) +- net: mscc: ocelot: unregister net devices on unbind (Vladimir Oltean) +- net: mscc: ocelot: refactor ports parsing code into a dedicated function (Vladimir Oltean) +- net: mscc: ocelot: error checking when calling ocelot_init() (Vladimir Oltean) +- net: mscc: ocelot: check for errors on memory allocation of ports (Vladimir Oltean) +- net: dsa: seville: fix buffer size of the queue system (Vladimir Oltean) +- net: mscc: ocelot: add locking for the port TX timestamp ID (Vladimir Oltean) +- net: mscc: ocelot: fix race condition with TX timestamping (Vladimir Oltean) +- kprobes: tracing/kprobes: Fix to kill kprobes on initmem after boot (Masami Hiramatsu) +- tracing: fix double free (Tom Rix) +- ftrace: Let ftrace_enable_sysctl take a kernel pointer buffer (Tobias Klauser) +- tracing: Make the space reserved for the pid wider (Sebastian Andrzej Siewior) +- ftrace: Fix missing synchronize_rcu() removing trampoline from kallsyms (Adrian Hunter) +- ftrace: Free the trampoline when ftrace_startup() fails (Miroslav Benes) +- kprobes: Fix to check probe enabled before disarm_kprobe_ftrace() (Masami Hiramatsu) +- mac80211: fix 80 MHz association to 160/80+80 AP on 6 GHz (John Crispin) +- mac80211: do not allow bigger VHT MPDUs than the hardware supports (Felix Fietkau) +- cfg80211: fix 6 GHz channel conversion (Johannes Berg) +- mac80211: do not disable HE if HT is missing on 2.4 GHz (Wen Gong) +- mac80211: Fix radiotap header channel flag for 6GHz band (Aloka Dixit) +- lib80211: fix unmet direct dependendices config warning when !CRYPTO (Necip Fazil Yildiran) +- mac80211: add AQL support for VHT160 tx rates (Felix Fietkau) +- mac80211: extend AQL aggregation estimation to HE and fix unit mismatch (Felix Fietkau) +- nfp: use correct define to return NONE fec (Jakub Kicinski) +- hinic: fix potential resource leak (Wei Li) +- net: phy: Do not warn in phy_stop() on PHY_DOWN (Florian Fainelli) +- net: phy: Avoid NPD upon phy_detach() when driver is unbound (Florian Fainelli) +- ethtool: add and use message type for tunnel info reply (Michal Kubecek) +- drivers/net/wan/hdlc: Set skb->protocol before transmitting (Xie He) +- drivers/net/wan/lapbether: Make skb->protocol consistent with the header (Xie He) +- cxgb4: fix memory leak during module unload (Raju Rangoju) +- hv_netvsc: Add validation for untrusted Hyper-V values (Andres Beltran) +- fuse: fix the ->direct_IO() treatment of iov_iter (Al Viro) +- nvmet: get transport reference for passthru ctrl (Christoph Hellwig) +- nvme-core: get/put ctrl and transport module in nvme_dev_open/release() (Chaitanya Kulkarni) +- net: dsa: microchip: ksz8795: really set the correct number of ports (Matthias Schiffer) +- geneve: add transport ports in route lookup for geneve (Mark Gray) +- net: hns: kerneldoc fixes (Lu Wei) +- fs: fix cast in fsparam_u32hex() macro (Alexey Dobriyan) +- bpf: Fix a rcu warning for bpffs map pretty-print (Yonghong Song) +- bpf: Bpf_skc_to_* casting helpers require a NULL check on sk (Martin KaFai Lau) +- ipv4: Update exception handling for multipath routes via same device (David Ahern) +- net: tipc: kerneldoc fixes (Lu Wei) +- ibmvnic: update MAINTAINERS (Dany Madden) +- batman-adv: mcast: fix duplicate mcast packets from BLA backbone to mesh (=?UTF-8?q?Linus=20L=C3=BCssing?=) +- batman-adv: mcast: fix duplicate mcast packets in BLA backbone from mesh (=?UTF-8?q?Linus=20L=C3=BCssing?=) +- batman-adv: mcast: fix duplicate mcast packets in BLA backbone from LAN (=?UTF-8?q?Linus=20L=C3=BCssing?=) +- nvme-tcp: fix kconfig dependency warning when !CRYPTO (Necip Fazil Yildiran) +- nvme-pci: disable the write zeros command for Intel 600P/P3100 (David Milburn) +- docs/bpf: Remove source code links (Andrii Nakryiko) +- s390/dasd: Fix zero write for FBA devices (=?UTF-8?q?Jan=20H=C3=B6ppner?=) +- xsk: Fix number of pinned pages/umem size discrepancy (=?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?=) +- net: sched: initialize with 0 before setting erspan md->u (Xin Long) +- lwtunnel: only keep the available bits when setting vxlan md->gbp (Xin Long) +- net: sched: only keep the available bits when setting vxlan md->gbp (Xin Long) +- tipc: use skb_unshare() instead in tipc_buf_append() (Xin Long) +- tipc: Fix memory leak in tipc_group_create_member() (Peilin Ye) +- ipv4: Initialize flowi4_multipath_hash in data path (David Ahern) +- net: lantiq: Disable IRQs only if NAPI gets scheduled (Hauke Mehrtens) +- net: lantiq: Use napi_complete_done() (Hauke Mehrtens) +- net: lantiq: use netif_tx_napi_add() for TX NAPI (Hauke Mehrtens) +- net: lantiq: Wake TX queue again (Hauke Mehrtens) +- rndis_host: increase sleep time in the query-response loop (Olympia Giannou) +- batman-adv: Add missing include for in_interrupt() (Sven Eckelmann) +- io_uring: don't run task work on an exiting task (Jens Axboe) +- io_uring: drop 'ctx' ref on task work cancelation (Jens Axboe) +- io_uring: grab any needed state during defer prep (Jens Axboe) +- net: ethernet: ti: cpsw_new: fix suspend/resume (Grygorii Strashko) +- net: ipa: fix u32_replace_bits by u32p_xxx version (Vadym Kochan) +- hinic: fix rewaking txq after netif_tx_disable (Luo bin) +- taprio: Fix allowing too small intervals (Vinicius Costa Gomes) +- enetc: Fix mdio bus removal on PF probe bailout (Claudiu Manoil) +- docs/bpf: Fix ringbuf documentation (Andrii Nakryiko) +- net: dec: de2104x: Increase receive ring size for Tulip (Lucy Yan) +- netlink: fix doc about nlmsg_parse/nla_validate (Nicolas Dichtel) +- net: DCB: Validate DCB_ATTR_DCB_BUFFER argument (Petr Machata) +- selftests: rtnetlink: Test bridge enslavement with different parent IDs (Ido Schimmel) +- net: Fix bridge enslavement failure (Ido Schimmel) +- net: mvneta: fix possible use-after-free in mvneta_xdp_put_buff (Lorenzo Bianconi) +- s390/qeth: delay draining the TX buffers (Julian Wiedmann) +- net: Fix broken NETIF_F_CSUM_MASK spell in netdev_features.h (Miaohe Lin) +- net: Correct the comment of dst_dev_put() (Miaohe Lin) +- hdlc_ppp: add range checks in ppp_cp_parse_cr() (Dan Carpenter) +- net: phy: call phy_disable_interrupts() in phy_attach_direct() instead (Yoshihiro Shimoda) +- hv_netvsc: Cache the current data path to avoid duplicate call and message (Dexuan Cui) +- hv_netvsc: Switch the data path at the right time during hibernation (Dexuan Cui) +- net: sch_generic: aviod concurrent reset and enqueue op for lockless qdisc (Yunsheng Lin) +- net: dsa: microchip: look for phy-mode in port nodes (Helmut Grohne) +- mptcp: fix kmalloc flag in mptcp_pm_nl_get_local_id (Geliang Tang) +- mptcp: fix subflow's remote_id issues (Geliang Tang) +- mptcp: fix subflow's local_id issues (Geliang Tang) +- tipc: fix shutdown() of connection oriented socket (Tetsuo Handa) +- connector: Move maintainence under networking drivers umbrella. ("David S. Miller") +- igc: Fix not considering the TX delay for timestamps (Vinicius Costa Gomes) +- igc: Fix wrong timestamp latency numbers (Vinicius Costa Gomes) +- i40e: always propagate error value in i40e_set_vsi_promisc() (Stefan Assmann) +- i40e: fix return of uninitialized aq_ret in i40e_set_vsi_promisc (Stefan Assmann) +- net: qed: RDMA personality shouldn't fail VF load (Dmitry Bogdanov) +- net: qede: Disable aRFS for NPAR and 100G (Dmitry Bogdanov) +- net: qed: Disable aRFS for NPAR and 100G (Dmitry Bogdanov) +- wireguard: peerlookup: take lock before checking hash in replace operation ("Jason A. Donenfeld") +- wireguard: noise: take lock when removing handshake entry from table ("Jason A. Donenfeld") +- hsr: avoid newline at end of message in NL_SET_ERR_MSG_MOD (Ye Bin) +- net: add __must_check to skb_put_padto() (Eric Dumazet) +- net: qrtr: check skb_put_padto() return value (Eric Dumazet) +- ip: fix tos reflection in ack and reset packets (Wei Wang) +- MAINTAINERS: remove John Allen from ibmvnic (Jakub Kicinski) +- fib: fix fib_rule_ops indirect call wrappers when CONFIG_IPV6=m (Brian Vazquez) +- ipv6: avoid lockdep issue in fib6_del() (Eric Dumazet) +- net: dsa: link interfaces with the DSA master to get rid of lockdep warnings (Vladimir Oltean) +- tools/libbpf: Avoid counting local symbols in ABI check (Tony Ambardar) +- bpf: Fix clobbering of r2 in bpf_gen_ld_abs (Daniel Borkmann) +- mac802154: tx: fix use-after-free (Eric Dumazet) +- netfilter: nft_meta: use socket user_ns to retrieve skuid and skgid (Pablo Neira Ayuso) +- netfilter: conntrack: nf_conncount_init is failing with IPv6 disabled (Eelco Chaudron) +- netfilter: ctnetlink: fix mark based dump filtering regression (Martin Willi) +- netfilter: nf_tables: coalesce multiple notifications into one skbuff (Pablo Neira Ayuso) +- netfilter: ctnetlink: add a range check for l3/l4 protonum (Will McVicker) +- hv_netvsc: Fix hibernation for mlx5 VF driver (Dexuan Cui) +- Revert "netns: don't disable BHs when locking "nsid_lock"" (Taehee Yoo) +- ibmvnic: add missing parenthesis in do_reset() (Jakub Kicinski) +- netdevice.h: fix xdp_state kernel-doc warning (Randy Dunlap) +- netdevice.h: fix proto_down_reason kernel-doc warning (Randy Dunlap) +- bnxt_en: Fix NULL ptr dereference crash in bnxt_fw_reset_task() (Vasundhara Volam) +- bnxt_en: Avoid sending firmware messages when AER error is detected. (Vasundhara Volam) +- Revert "wlcore: Adding suppoprt for IGTK key in wlcore driver" (Mauro Carvalho Chehab) +- net: dsa: rtl8366: Properly clear member config (Linus Walleij) +- net: macb: fix for pause frame receive enable bit (Parshuram Thombare) +- cxgb4: Fix offset when clearing filter byte counters (Ganji Aravind) +- hinic: bump up the timeout of UPDATE_FW cmd (Luo bin) +- hinic: bump up the timeout of SET_FUNC_STATE cmd (Luo bin) +- batman-adv: mcast/TT: fix wrongly dropped or rerouted packets (=?UTF-8?q?Linus=20L=C3=BCssing?=) +- act_ife: load meta modules before tcf_idr_check_alloc() (Cong Wang) +- atm: eni: fix the missed pci_disable_device() for eni_init_one() (Jing Xiangfeng) +- drivers/net/wan/hdlc_fr: Add needed_headroom for PVC devices (Xie He) +- selftests/bpf: Add bpf_{update, delete}_map_elem in hashmap iter program (Yonghong Song) +- bpf: Do not use bucket_lock for hashmap iterator (Yonghong Song) +- libbpf: Remove arch-specific include path in Makefile ("Naveen N. Rao") +- tools/bpf: build: Make sure resolve_btfids cleans up after itself (=?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?=) +- libbpf: Fix build failure from uninitialized variable warning (Tony Ambardar) +- batman-adv: bla: fix type misuse for backbone_gw hash indexing (=?UTF-8?q?Linus=20L=C3=BCssing?=) +- mwifiex: Increase AES key storage size to 256 bits (Maximilian Luz) +- mt76: mt7915: use ieee80211_free_txskb to free tx skbs (Felix Fietkau) +- mt76: mt7615: use v1 MCU API on MT7615 to fix issues with adding/removing stations (Felix Fietkau) +- vboxsf: Fix the check for the old binary mount-arguments struct (Hans de Goede) +- brcmfmac: reserve tx credit only when txctl is ready to send (Wright Feng) +- ieee802154/adf7242: check status of adf7242_read_reg (Tom Rix) +- ieee802154: fix one possible memleak in ca8210_dev_com_init (Liu Jian) + +* Tue Sep 22 2020 Fedora Kernel Team [5.9.0-0.rc6.20200922git98477740630f.13] +- Merge ark-patches + +* Tue Sep 22 2020 Fedora Kernel Team [5.9.0-0.rc6.20200922git98477740630f.12.test] +- 98477740630f rebase +- dax: Fix compilation for CONFIG_DAX && !CONFIG_FS_DAX (Jan Kara) +- Updated changelog for the release based on v5.9-rc6 (Fedora Kernel Team) +- Revert "KVM: Check the allocation of pv cpu mask" (Vitaly Kuznetsov) +- KVM: arm64: Remove S1PTW check from kvm_vcpu_dabt_iswrite() (Marc Zyngier) +- KVM: arm64: Assume write fault on S1PTW permission fault on instruction fetch (Marc Zyngier) +- rcu-tasks: Prevent complaints of unused show_rcu_tasks_classic_gp_kthread() ("Paul E. McKenney") +- docs: kvm: add documentation for KVM_CAP_S390_DIAG318 (Collin Walling) + +* Mon Sep 21 2020 Fedora Kernel Team [5.9.0-0.rc6.12] +- Merge ark-patches + +* Mon Sep 21 2020 Fedora Kernel Team [5.9.0-0.rc6.11.test] +- v5.9-rc6 rebase +- Linux 5.9-rc6 (Linus Torvalds) +- mm: fix wake_page_function() comment typos (Linus Torvalds) +- dax: Fix stack overflow when mounting fsdax pmem device (Adrian Huang) +- dm: Call proper helper to determine dax support (Jan Kara) +- dm/dax: Fix table reference counts (Dan Williams) +- kconfig: qconf: revive help message in the info view (Masahiro Yamada) +- kconfig: qconf: fix incomplete type 'struct gstr' warning (Masahiro Yamada) +- RISC-V: Resurrect the MMIO timer implementation for M-mode systems (Palmer Dabbelt) +- riscv: Fix Kendryte K210 device tree (Damien Le Moal) +- riscv: Add sfence.vma after early page table changes (Greentime Hu) +- kcsan: kconfig: move to menu 'Generic Kernel Debugging Instruments' (Changbin Du) +- fs/fs-writeback.c: adjust dirtytime_interval_handler definition to match prototype (Tobias Klauser) +- stackleak: let stack_erasing_sysctl take a kernel pointer buffer (Tobias Klauser) +- ftrace: let ftrace_enable_sysctl take a kernel pointer buffer (Tobias Klauser) +- mm/memory_hotplug: drain per-cpu pages again during memory offline (Pavel Tatashin) +- selftests/vm: fix display of page size in map_hugetlb (Christophe Leroy) +- mm/thp: fix __split_huge_pmd_locked() for migration PMD (Ralph Campbell) +- kprobes: fix kill kprobe which has been marked as gone (Muchun Song) +- tmpfs: restore functionality of nr_inodes=0 (Byron Stanoszek) +- mlock: fix unevictable_pgs event counts on THP (Hugh Dickins) +- mm: fix check_move_unevictable_pages() on THP (Hugh Dickins) +- mm: migration of hugetlbfs page skip memcg (Hugh Dickins) +- ksm: reinstate memcg charge on copied pages (Hugh Dickins) +- mailmap: add older email addresses for Kees Cook (Kees Cook) +- i2c: mxs: use MXS_DMA_CTRL_WAIT4END instead of DMA_CTRL_ACK (Matthias Schiffer) +- i2c: mediatek: Send i2c master code at more than 1MHz (Qii Wang) +- i2c: mediatek: Fix generic definitions for bus frequency (Qii Wang) +- objtool: Fix noreturn detection for ignored functions (Josh Poimboeuf) +- kconfig: qconf: use delete[] instead of delete to free array (again) (Masahiro Yamada) +- iommu/amd: Restore IRTE.RemapEn bit for amd_iommu_activate_guest_mode (Suravee Suthikulpanit) +- iommu/amd: Fix potential @entry null deref (Joao Martins) +- x86/unwind/fp: Fix FP unwinding in ret_from_fork (Josh Poimboeuf) +- i2c: core: Call i2c_acpi_install_space_handler() before i2c_acpi_register_devices() (Hans de Goede) +- percpu: fix first chunk size calculation for populated bitmap (Sunghyun Jin) +- mm: allow a controlled amount of unfairness in the page lock (Linus Torvalds) +- arm64: paravirt: Initialize steal time when cpu is online (Andrew Jones) +- usblp: fix race between disconnect() and read() (Oliver Neukum) +- arm64: bpf: Fix branch offset in JIT (Ilias Apalodimas) +- ehci-hcd: Move include to keep CRC stable (Quentin Perret) +- drm/amd/display: Don't log hdcp module warnings in dmesg (Bhawanpreet Lakha) +- drm/amdgpu: declare ta firmware for navy_flounder (Jiansong Chen) +- drm/mediatek: Add missing put_device() call in mtk_hdmi_dt_parse_pdata() (Yu Kuai) +- drm/mediatek: Add missing put_device() call in mtk_drm_kms_init() (Yu Kuai) +- drm/mediatek: Add exception handing in mtk_drm_probe() if component init fail (Yu Kuai) +- drm/mediatek: Add missing put_device() call in mtk_ddp_comp_init() (Yu Kuai) +- drm/mediatek: Use CPU when fail to get cmdq event (Chun-Kuang Hu) +- drm/mediatek: Remove duplicated include (Wang Hai) +- MIPS: SNI: Fix spurious interrupts (Thomas Bogendoerfer) +- MAINTAINERS: Fix Max's and Shravan's emails (Leon Romanovsky) +- ACPI: processor: Take over RCU-idle for C3-BM idle (Peter Zijlstra) +- cpuidle: Allow cpuidle drivers to take over RCU-idle (Peter Zijlstra) +- ACPI: processor: Use CPUIDLE_FLAG_TLB_FLUSHED (Peter Zijlstra) +- ACPI: processor: Use CPUIDLE_FLAG_TIMER_STOP (Peter Zijlstra) +- locking/percpu-rwsem: Use this_cpu_{inc,dec}() for read_count (Hou Tao) +- perf stat: Fix the ratio comments of miss-events (Qi Liu) +- fbcon: Fix user font detection test at fbcon_resize(). (Tetsuo Handa) +- powercap: RAPL: Add support for Lakefield (Ricardo Neri) +- serial: 8250_pci: Add Realtek 816a and 816b (Tobias Diedrich) +- serial: core: fix console port-lock regression (Johan Hovold) +- serial: core: fix port-lock initialisation (Johan Hovold) +- usb: typec: intel_pmc_mux: Handle SCU IPC error conditions (Madhusudanarao Amara) +- USB: quirks: Add USB_QUIRK_IGNORE_REMOTE_WAKEUP quirk for BYD zhaoxin notebook (Penghao) +- USB: UAS: fix disconnect by unplugging a hub (Oliver Neukum) +- usb: typec: ucsi: Prevent mode overrun (Heikki Krogerus) +- usb: typec: ucsi: acpi: Increase command completion timeout value (Heikki Krogerus) +- drm/i915: Filter wake_flags passed to default_wake_function (Chris Wilson) +- drm/i915: Be wary of data races when reading the active execlists (Chris Wilson) +- drm/i915/gem: Reduce context termination list iteration guard to RCU (Chris Wilson) +- drm/i915/gem: Delay tracking the GEM context until it is registered (Chris Wilson) +- drm/amdgpu/dc: Require primary plane to be enabled whenever the CRTC is (=?UTF-8?q?Michel=20D=C3=A4nzer?=) +- drm/radeon: revert "Prefer lower feedback dividers" (=?UTF-8?q?Christian=20K=C3=B6nig?=) +- drm/amdgpu: Include sienna_cichlid in USBC PD FW support. (Andrey Grodzovsky) +- drm/amd/display: update nv1x stutter latencies (Jun Lei) +- drm/amd/display: Don't use DRM_ERROR() for DTM add topology (Bhawanpreet Lakha) +- drm/amd/pm: support runtime pptable update for sienna_cichlid etc. (Jiansong Chen) +- drm/amdkfd: fix a memory leak issue (Dennis Li) +- drm/kfd: fix a system crash issue during GPU recovery (Dennis Li) +- efi: efibc: check for efivars write capability (Ard Biesheuvel) +- perf test: Free formats for perf pmu parse test (Namhyung Kim) +- perf metric: Do not free metric when failed to resolve (Namhyung Kim) +- perf metric: Free metric when it failed to resolve (Namhyung Kim) +- perf metric: Release expr_parse_ctx after testing (Namhyung Kim) +- perf test: Fix memory leaks in parse-metric test (Namhyung Kim) +- perf parse-event: Fix memory leak in evsel->unit (Namhyung Kim) +- perf evlist: Fix cpu/thread map leak (Namhyung Kim) +- perf metric: Fix some memory leaks - part 2 (Namhyung Kim) +- perf metric: Fix some memory leaks (Namhyung Kim) +- perf test: Free aliases for PMU event map aliases test (Namhyung Kim) +- perf vendor events amd: Remove trailing commas (Henry Burns) +- MIPS: SNI: Fix MIPS_L1_CACHE_SHIFT (Thomas Bogendoerfer) +- EDAC/ghes: Check whether the driver is on the safe list correctly (Borislav Petkov) +- EDAC/ghes: Clear scanned data on unload (Borislav Petkov) +- Updated changelog for the release based on fc4f28bb3daf (Fedora Kernel Team) +- perf test: Leader sampling shouldn't clear sample period (Ian Rogers) +- perf record: Don't clear event's period if set by a term (Ian Rogers) +- tools headers UAPI: update linux/in.h copy (Arnaldo Carvalho de Melo) +- tools headers UAPI: Sync kvm.h headers with the kernel sources (Arnaldo Carvalho de Melo) +- perf record: Prevent override of attr->sample_period for libpfm4 events (Stephane Eranian) +- perf record: Set PERF_RECORD_PERIOD if attr->freq is set. (David Sharp) +- perf bench: Fix 2 memory sanitizer warnings (Ian Rogers) +- perf test: Fix the "signal" test inline assembly (Jiri Olsa) +- core/entry: Report syscall correctly for trace and audit (Kees Cook) +- Input: trackpoint - add new trackpoint variant IDs (Vincent Huang) +- Revert "mtd: spi-nor: Add capability to disable flash quad mode" (Yicong Yang) +- Revert "mtd: spi-nor: Disable the flash quad mode in spi_nor_restore()" (Yicong Yang) +- Drivers: hv: vmbus: Add timeout to vmbus_wait_for_unload (Michael Kelley) +- x86/boot/compressed: Disable relocation relaxation (Arvind Sankar) +- s390: add 3f program exception handler (Janosch Frank) +- lockdep: fix order in trace_hardirqs_off_caller() (Sven Schnelle) +- s390/pci: fix leak of DMA tables on hard unplug (Niklas Schnelle) +- s390/init: add missing __init annotations (Ilya Leoshkevich) +- s390/zcrypt: fix kmalloc 256k failure (Harald Freudenberger) +- s390/idle: fix suspicious RCU usage (Peter Zijlstra) +- i2c: i801: Simplify the suspend callback (Jean Delvare) +- i2c: i801: Fix resume bug (=?UTF-8?q?Volker=20R=C3=BCmelin?=) +- i2c: aspeed: Mask IRQ status to relevant bits (Eddie James) +- sh: fix syscall tracing (Rich Felker) +- sh: remove spurious circular inclusion from asm/smp.h (Rich Felker) +- arm64: Allow CPUs unffected by ARM erratum 1418040 to come in late (Marc Zyngier) +- RISC-V: Take text_mutex in ftrace_init_nop() (Palmer Dabbelt) +- clk: qcom: lpass: Correct goto target in lpass_core_sc7180_probe() (Jing Xiangfeng) +- clk: versatile: Add of_node_put() before return statement (Sumera Priyadarsini) +- clk: bcm: dvp: Select the reset framework (Maxime Ripard) +- scsi: libsas: Fix error path in sas_notify_lldd_dev_found() (Dan Carpenter) +- Drivers: hv: vmbus: hibernation: do not hang forever in vmbus_bus_resume() (Dexuan Cui) +- thunderbolt: Retry DROM read once if parsing fails (Mika Westerberg) +- ALSA: hda/realtek - The Mic on a RedmiBook doesn't work (Hui Wang) +- x86/defconfigs: Explicitly unset CONFIG_64BIT in i386_defconfig (=?UTF-8?q?Daniel=20D=C3=ADaz?=) +- powerpc/papr_scm: Limit the readability of 'perf_stats' sysfs attribute (Vaibhav Jain) +- Input: i8042 - add Entroware Proteus EL07R4 to nomux and reset lists (Hans de Goede) +- ASoC: tlv320adcx140: Wake up codec before accessing register (Camel Guo) +- cpuidle: pseries: Fix CEDE latency conversion from tb to us ("Gautham R. Shenoy") +- powerpc/dma: Fix dma_map_ops::get_required_mask (Alexey Kardashevskiy) +- ASoC: core: Do not cleanup uninitialized dais on soc_pcm_open failure (Cezary Rojewski) +- ALSA: hda: fixup headset for ASUS GX502 laptop (Luke D Jones) +- locking/lockdep: Fix "USED" <- "IN-NMI" inversions ("peterz@infradead.org") +- Revert "powerpc/build: vdso linker warning for orphan sections" (Michael Ellerman) +- ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN Converter9 2-in-1 (Hans de Goede) +- powerpc/mm: Remove DEBUG_VM_PGTABLE support on powerpc ("Aneesh Kumar K.V") +- ASoC: Intel: haswell: Fix power transition refactor (Cezary Rojewski) +- ASoC: tlv320adcx140: Fix accessing uninitialized adcx140->dev (Camel Guo) +- selftests/powerpc: Skip PROT_SAO test in guests/LPARS (Michael Ellerman) +- ASoC: wm8994: Ensure the device is resumed in wm89xx_mic_detect functions (Sylwester Nawrocki) +- ASoC: wm8994: Skip setting of the WM8994_MICBIAS register for WM1811 (Sylwester Nawrocki) +- ASoC: meson: axg-toddr: fix channel order on g12 platforms (Jerome Brunet) +- ASoC: soc-core: add snd_soc_find_dai_with_mutex() (Kuninori Morimoto) +- powerpc/book3s64/radix: Fix boot failure with large amount of guest memory ("Aneesh Kumar K.V") +- drm/mediatek: dsi: Fix scrolling of panel with small hfp or hbp (Jitao Shi) +- ASoC: qcom: common: Fix refcount imbalance on error (Dinghao Liu) +- ASoC: rt700: Fix return check for devm_regmap_init_sdw() (Vinod Koul) +- ASoC: rt715: Fix return check for devm_regmap_init_sdw() (Vinod Koul) +- ASoC: rt711: Fix return check for devm_regmap_init_sdw() (Vinod Koul) +- ASoC: rt1308-sdw: Fix return check for devm_regmap_init_sdw() (Vinod Koul) +- ASoC: max98373: Fix return check for devm_regmap_init_sdw() (Vinod Koul) +- ASoC: ti: fixup ams_delta_mute() function name (Kuninori Morimoto) +- ASoC: pcm3168a: ignore 0 Hz settings (Kuninori Morimoto) +- ASoC: Intel: tgl_max98373: fix a runtime pm issue in multi-thread case (Rander Wang) +- ASoC: qcom: Set card->owner to avoid warnings (Stephan Gerhold) +- ASoC: intel: atom: Add period size constraint (Brent Lu) +- device_cgroup: Fix RCU list debugging warning (Amol Grover) +- ASoC: Intel: skl_hda_dsp_generic: Fix NULLptr dereference in autosuspend delay (Mateusz Gorski) +- clk: rockchip: Fix initialization of mux_pll_src_4plls_p (Nathan Chancellor) +- clk: davinci: Use the correct size when allocating memory (Christophe JAILLET) + +* Tue Sep 15 2020 Fedora Kernel Team [5.9.0-0.rc5.20200915gitfc4f28bb3daf.11] +- Merge ark-patches + +* Tue Sep 15 2020 Fedora Kernel Team [5.9.0-0.rc5.20200915gitfc4f28bb3daf.10.test] +- fc4f28bb3daf rebase +- vgacon: remove software scrollback support (Linus Torvalds) +- fbcon: remove now unusued 'softback_lines' cursor() argument (Linus Torvalds) +- fbcon: remove soft scrollback code (Linus Torvalds) +- btrfs: fix wrong address when faulting in pages in the search ioctl (Filipe Manana) +- Updated changelog for the release based on v5.9-rc5 (Fedora Kernel Team) + +* Mon Sep 14 2020 Fedora Kernel Team [5.9.0-0.rc5.10] +- Merge ark-patches + +* Mon Sep 14 2020 Fedora Kernel Team [5.9.0-0.rc5.9.test] +- v5.9-rc5 rebase +- Linux 5.9-rc5 (Linus Torvalds) +- Updated changelog for the release based on ef2e9a563b0c (Fedora Kernel Team) +- KVM: emulator: more strict rsm checks. (Maxim Levitsky) +- KVM: nSVM: more strict SMM checks when returning to nested guest (Maxim Levitsky) +- SVM: nSVM: setup nested msr permission bitmap on nested state load (Maxim Levitsky) +- SVM: nSVM: correctly restore GIF on vmexit from nesting after migration (Maxim Levitsky) +- openrisc: Fix issue with get_user for 64-bit values (Stafford Horne) +- x86/kvm: don't forget to ACK async PF IRQ (Vitaly Kuznetsov) +- x86/kvm: properly use DEFINE_IDTENTRY_SYSVEC() macro (Vitaly Kuznetsov) +- KVM: VMX: Don't freeze guest when event delivery causes an APIC-access exit (Wanpeng Li) +- KVM: SVM: avoid emulation with stale next_rip (Wanpeng Li) +- KVM: x86: always allow writing '0' to MSR_KVM_ASYNC_PF_EN (Vitaly Kuznetsov) +- KVM: SVM: Periodically schedule when unregistering regions on destroy (David Rientjes) +- KVM: MIPS: Change the definition of kvm type (Huacai Chen) +- kvm x86/mmu: use KVM_REQ_MMU_SYNC to sync when needed (Lai Jiangshan) +- KVM: nVMX: Fix the update value of nested load IA32_PERF_GLOBAL_CTRL control (Chenyi Qiang) +- KVM: fix memory leak in kvm_io_bus_unregister_dev() (Rustam Kovhaev) +- KVM: Check the allocation of pv cpu mask (Haiwei Li) +- KVM: nVMX: Update VMCS02 when L2 PAE PDPTE updates detected (Peter Shier) +- Revert "dyndbg: accept query terms like file=bar and module=foo" (Greg Kroah-Hartman) +- Revert "dyndbg: fix problem parsing format="foo bar"" (Greg Kroah-Hartman) +- test_firmware: Test platform fw loading on non-EFI systems (Kees Cook) +- arm64: dts: ns2: Fixed QSPI compatible string (Florian Fainelli) +- ARM: dts: BCM5301X: Fixed QSPI compatible string (Florian Fainelli) +- ARM: dts: NSP: Fixed QSPI compatible string (Florian Fainelli) +- ARM: dts: bcm: HR2: Fixed QSPI compatible string (Florian Fainelli) +- dt-bindings: spi: Fix spi-bcm-qspi compatible ordering (Florian Fainelli) +- usb: typec: intel_pmc_mux: Do not configure SBU and HSL Orientation in Alternate modes (Utkarsh Patel) +- usb: typec: intel_pmc_mux: Do not configure Altmode HPD High (Utkarsh Patel) +- scripts/tags.sh: exclude tools directory from tags generation (Rustam Kovhaev) +- openrisc: Fix cache API compile issue when not inlining (Stafford Horne) +- openrisc: Reserve memblock for initrd (Stafford Horne) +- kobject: Drop unneeded conditional in __kobject_del() (Andy Shevchenko) +- ARM: dts: imx6sx: fix the pad QSPI1B_SCLK mux mode for uart3 (Fugang Duan) +- arm64: dts: imx8mp: correct sdma1 clk setting (Robin Gong) +- driver core: Fix device_pm_lock() locking for device links (Saravana Kannan) +- MAINTAINERS: Add the security document to SECURITY CONTACT (Krzysztof Kozlowski) +- driver code: print symbolic error code (=?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?=) +- debugfs: Fix module state check condition (Vladis Dronov) +- video: fbdev: fix OOB read in vga_8planes_imageblit() (Tetsuo Handa) +- dyndbg: fix problem parsing format="foo bar" (Jim Cromie) +- dyndbg: refine export, rename to dynamic_debug_exec_queries() (Jim Cromie) +- dyndbg: give 3u width in pr-format, cosmetic only (Jim Cromie) +- usb: core: fix slab-out-of-bounds Read in read_descriptors (Zeng Tao) +- Revert "usb: dwc3: meson-g12a: fix shared reset control use" (Amjad Ouled-Ameur) +- usb: typec: ucsi: acpi: Check the _DEP dependencies (Heikki Krogerus) +- usb: typec: intel_pmc_mux: Un-register the USB role switch (Madhusudanarao Amara) +- usb: Fix out of sync data toggle if a configured device is reconfigured (Mathias Nyman) +- KVM: arm64: Update page shift if stage 2 block mapping not supported (Alexandru Elisei) +- KVM: arm64: Fix address truncation in traces (Marc Zyngier) +- KVM: arm64: Do not try to map PUDs when they are folded into PMD (Marc Zyngier) +- interconnect: qcom: Fix small BW votes being truncated to zero (Mike Tipton) +- soundwire: fix double free of dangling pointer (Tom Rix) +- interconnect: Show bandwidth for disabled paths as zero in debugfs (Matthias Kaehlcke) +- iio: adc: mcp3422: fix locking on error path (Angelo Compagnucci) +- habanalabs: fix report of RAZWI initiator coordinates (Ofir Bitton) +- habanalabs: prevent user buff overflow (Moti Haimovski) +- iio: adc: mcp3422: fix locking scope (Angelo Compagnucci) +- iio: adc: meson-saradc: Use the parent device to look up the calib data (Martin Blumenstingl) +- iio:adc:max1118 Fix alignment of timestamp and data leak issues (Jonathan Cameron) +- iio:adc:ina2xx Fix timestamp alignment issue. (Jonathan Cameron) +- iio:adc:ti-adc084s021 Fix alignment and data leak issues. (Jonathan Cameron) +- iio:adc:ti-adc081c Fix alignment and data leak issues (Jonathan Cameron) +- phy: omap-usb2-phy: disable PHY charger detect (Roger Quadros) +- USB: serial: option: support dynamic Quectel USB compositions (=?UTF-8?q?Bj=C3=B8rn=20Mork?=) +- USB: serial: option: add support for SIM7070/SIM7080/SIM7090 modules (Aleksander Morgado) +- arm64: dts: imx8mq: Fix TMU interrupt property (Krzysztof Kozlowski) +- kobject: Restore old behaviour of kobject_del(NULL) (Andy Shevchenko) +- firmware_loader: fix memory leak for paged buffer (Prateek Sood) +- thunderbolt: Use maximum USB3 link rate when reclaiming if link is not up (Mika Westerberg) +- thunderbolt: Disable ports that are not implemented ("Nikunj A. Dadhania") +- ARM: dts: imx7d-zii-rmu2: fix rgmii phy-mode for ksz9031 phy (Chris Healy) +- USB: serial: ftdi_sio: add IDs for Xsens Mti USB converter (Patrick Riphagen) +- phy: qcom-qmp: Use correct values for ipq8074 PCIe Gen2 PHY init (Sivaprakash Murugesan) +- ARM: dts: vfxxx: Add syscon compatible with OCOTP (Chris Healy) +- ARM: dts: imx6q-logicpd: Fix broken PWM (Adam Ford) +- arm64: dts: imx: Add missing imx8mm-beacon-kit.dtb to build (Rob Herring) +- ARM: dts: imx6q-prtwd2: Remove unneeded i2c unit name (Fabio Estevam) +- ARM: dts: imx6qdl-gw51xx: Remove unneeded #address-cells/#size-cells (Fabio Estevam) +- ARM: dts: imx7ulp: Correct gpio ranges (Anson Huang) +- iio:magnetometer:ak8975 Fix alignment and data leak issues. (Jonathan Cameron) +- iio:light:ltr501 Fix timestamp alignment issue. (Jonathan Cameron) +- iio:light:max44000 Fix timestamp alignment and prevent data leak. (Jonathan Cameron) +- iio:chemical:ccs811: Fix timestamp alignment and prevent data leak. (Jonathan Cameron) +- iio:proximity:mb1232: Fix timestamp alignment and prevent data leak. (Jonathan Cameron) +- iio:accel:mma7455: Fix timestamp alignment and prevent data leak. (Jonathan Cameron) +- iio:accel:bmc150-accel: Fix timestamp alignment and prevent data leak. (Jonathan Cameron) +- iio:accel:mma8452: Fix timestamp alignment and prevent data leak. (Jonathan Cameron) +- iio: accel: kxsd9: Fix alignment of local buffer. (Jonathan Cameron) +- iio: adc: rockchip_saradc: select IIO_TRIGGERED_BUFFER (Michael Walle) +- iio: adc: ti-ads1015: fix conversion when CONFIG_PM is not set (Maxim Kochetkov) +- counter: microchip-tcb-capture: check the correct variable (Dan Carpenter) +- iio: cros_ec: Set Gyroscope default frequency to 25Hz (Gwendal Grignou) +- ARM: dts: ls1021a: fix QuadSPI-memory reg range (Matthias Schiffer) +- arm64/x86: KVM: Introduce steal-time cap (Andrew Jones) +- KVM: Documentation: Minor fixups (Andrew Jones) +- KVM: arm64: pvtime: Fix stolen time accounting across migration (Andrew Jones) +- KVM: arm64: Drop type input from kvm_put_guest (Andrew Jones) +- KVM: arm64: pvtime: Fix potential loss of stolen time (Andrew Jones) +- KVM: arm64: pvtime: steal-time is only supported when configured (Andrew Jones) +- arm64: defconfig: Enable ptn5150 extcon driver (Krzysztof Kozlowski) +- arm64: defconfig: Enable USB gadget with configfs (Krzysztof Kozlowski) +- ARM: configs: Update Integrator defconfig (Linus Walleij) +- soundwire: bus: fix typo in comment on INTSTAT registers (Pierre-Louis Bossart) +- ARM: dts: omap5: Fix DSI base address and clocks (David Shah) +- staging: greybus: audio: fix uninitialized value issue (Vaibhav Agarwal) +- staging: wlan-ng: fix out of bounds read in prism2sta_probe_usb() (Rustam Kovhaev) +- staging: greybus: audio: Uninitialized variable in gbaudio_remove_controls() (Dan Carpenter) +- ARM: dts: socfpga: fix register entry for timer3 on Arria10 (Dinh Nguyen) +- ARM: dts: logicpd-som-lv-baseboard: Fix missing video (Adam Ford) +- ARM: dts: logicpd-som-lv-baseboard: Fix broken audio (Adam Ford) +- ARM: dts: logicpd-torpedo-baseboard: Fix broken audio (Adam Ford) +- ARM: OMAP2+: Fix an IS_ERR() vs NULL check in _get_pwrdm() (Jing Xiangfeng) +- arm64: dts: xilinx: Align IOMMU nodename with dtschema (Krzysztof Kozlowski) +- arm64: dts: zynqmp: Add GTR transceivers (Laurent Pinchart) +- phy: qualcomm: fix return value check in qcom_ipq806x_usb_phy_probe() (Wei Yongjun) +- phy: qualcomm: fix platform_no_drv_owner.cocci warnings (YueHaibing) + +* Sun Sep 13 2020 Fedora Kernel Team [5.9.0-0.rc4.20200913gitef2e9a563b0c.9] +- Merge ark-patches + +* Sun Sep 13 2020 Fedora Kernel Team [5.9.0-0.rc4.20200913gitef2e9a563b0c.8.test] +- ef2e9a563b0c rebase +- Updated changelog for the release based on 729e3d091984 (Fedora Kernel Team) +- seccomp: don't leave dangling ->notif if file allocation fails (Tycho Andersen) +- mailmap, MAINTAINERS: move to tycho.pizza (Tycho Andersen) +- seccomp: don't leak memory when filter install races (Tycho Andersen) +- btrfs: fix NULL pointer dereference after failure to create snapshot (Filipe Manana) +- btrfs: free data reloc tree on failed mount (Josef Bacik) +- btrfs: require only sector size alignment for parent eb bytenr (Qu Wenruo) +- btrfs: fix lockdep splat in add_missing_dev (Josef Bacik) +- cifs: fix DFS mount with cifsacl/modefromsid (Ronnie Sahlberg) +- dax: fix detection of dax support for non-persistent memory block devices (Coly Li) + +* Sat Sep 12 2020 Fedora Kernel Team [5.9.0-0.rc4.20200912git729e3d091984.8] +- Merge ark-patches + +* Sat Sep 12 2020 Fedora Kernel Team [5.9.0-0.rc4.20200912git729e3d091984.7.test] +- 729e3d091984 rebase +- dist-merge-upstream: Checkout known branch for ci scripts (Don Zickus) +- gcov: add support for GCC 10.1 (Peter Oberparleiter) +- Updated changelog for the release based on 581cb3a26baf (Fedora Kernel Team) +- powercap: make documentation reflect code (Amit Kucheria) +- PM: : fix @em_pd kernel-doc warning (Randy Dunlap) +- powercap/intel_rapl: add support for AlderLake (Zhang Rui) +- powercap/intel_rapl: add support for RocketLake (Zhang Rui) +- powercap/intel_rapl: add support for TigerLake Desktop (Zhang Rui) +- IB/isert: Fix unaligned immediate-data handling (Sagi Grimberg) +- RDMA/rtrs-srv: Set .release function for rtrs srv device during device init (Md Haris Iqbal) +- RDMA/bnxt_re: Remove set but not used variable 'qplib_ctx' (YueHaibing) +- block: Set same_page to false in __bio_try_merge_page if ret is false (Ritesh Harjani) +- spi: stm32: fix pm_runtime_get_sync() error checking (Dan Carpenter) +- spi: Fix memory leak on splited transfers (Gustav Wiklander) +- i2c: algo: pca: Reapply i2c bus settings after reset (Evan Nimmo) +- nvme-fabrics: allow to queue requests for live queues (Sagi Grimberg) +- block: only call sched requeue_request() for scheduled requests (Omar Sandoval) +- nvme-tcp: cancel async events before freeing event struct (David Milburn) +- nvme-rdma: cancel async events before freeing event struct (David Milburn) +- nvme-fc: cancel async events before freeing event struct (David Milburn) +- nvme: Revert: Fix controller creation races with teardown flow (James Smart) +- spi: spi-cadence-quadspi: Fix mapping of buffers for DMA reads (Vignesh Raghavendra) +- block: restore a specific error code in bdev_del_partition (Christoph Hellwig) +- drm/i915: fix regression leading to display audio probe failure on GLK (Kai Vehmanen) +- i2c: npcm7xx: Fix timeout calculation (Tali Perry) +- spi: stm32: Rate-limit the 'Communication suspended' message (Marek Vasut) +- rbd: require global CAP_SYS_ADMIN for mapping and unmapping (Ilya Dryomov) +- mmc: sdio: Use mmc_pre_req() / mmc_post_req() (Adrian Hunter) +- mmc: sdhci-of-esdhc: Don't walk device-tree on every interrupt (Chris Packham) +- mmc: mmc_spi: Allow the driver to be built when CONFIG_HAS_DMA is unset (Ulf Hansson) +- mmc: sdhci-msm: Add retries when all tuning phases are found valid (Douglas Anderson) +- mmc: sdhci-acpi: Clear amd_sdhci_host on reset (Raul E Rangel) +- drm: xlnx: dpsub: Fix DMADEVICES Kconfig dependency (Laurent Pinchart) +- rapidio: Replace 'select' DMAENGINES 'with depends on' (Laurent Pinchart) +- drm/virtio: drop virtio_gpu_output->enabled (Gerd Hoffmann) +- drm/sun4i: backend: Disable alpha on the lowest plane on the A20 (Maxime Ripard) +- drm/sun4i: backend: Support alpha property on lowest plane (Maxime Ripard) +- drm/sun4i: Fix DE2 YVU handling (Jernej Skrabec) +- drm/tve200: Stabilize enable/disable (Linus Walleij) +- dma-buf: fence-chain: Document missing dma_fence_chain_init() parameter in kerneldoc (Krzysztof Kozlowski) +- dma-buf: Fix kerneldoc of dma_buf_set_name() (Krzysztof Kozlowski) +- RDMA/core: Fix reported speed and width (Kamal Heib) +- RDMA/core: Fix unsafe linked list traversal after failing to allocate CQ (Xi Wang) +- spi: spi-loopback-test: Fix out-of-bounds read (Vincent Whitchurch) +- regulator: pwm: Fix machine constraints application (Vincent Whitchurch) +- drm/virtio: fix unblank (Gerd Hoffmann) +- regulator: core: Fix slab-out-of-bounds in regulator_unlock_recursive() (Dmitry Osipenko) +- Documentation: fix dma-buf.rst underline length warning (Randy Dunlap) +- misc: eeprom: at24: register nvmem only after eeprom is ready to use (Vadym Kochan) +- drm/sun4i: Fix dsi dcs long write function (Ondrej Jirman) +- drm/ingenic: Fix driver not probing when IPU port is missing (Paul Cercueil) +- drm/ingenic: Fix leak of device_node pointer (Paul Cercueil) +- drm/sun4i: add missing put_device() call in sun8i_r40_tcon_tv_set_mux() (Yu Kuai) +- RDMA/bnxt_re: Remove the qp from list only if the qp destroy succeeds (Selvin Xavier) +- RDMA/bnxt_re: Fix driver crash on unaligned PSN entry address (Naresh Kumar PBS) +- RDMA/bnxt_re: Restrict the max_gids to 256 (Naresh Kumar PBS) +- RDMA/bnxt_re: Static NQ depth allocation (Naresh Kumar PBS) +- RDMA/bnxt_re: Fix the qp table indexing (Selvin Xavier) +- RDMA/bnxt_re: Do not report transparent vlan from QP1 (Selvin Xavier) +- RDMA/mlx4: Read pkey table length instead of hardcoded value (Mark Bloch) +- RDMA/rxe: Fix panic when calling kmem_cache_create() (Kamal Heib) +- RDMA/rxe: Fix memleak in rxe_mem_init_user (Dinghao Liu) +- drm/virtio: Revert "drm/virtio: Call the right shmem helpers" (Gurchetan Singh) +- spi: spi-cadence-quadspi: Populate get_name() interface (Vignesh Raghavendra) +- RDMA/rxe: Fix the parent sysfs read when the interface has 15 chars (Yi Zhang) +- RDMA/rtrs-srv: Replace device_register with device_initialize and device_add (Md Haris Iqbal) +- MAINTAINERS: add myself as maintainer for spi-fsl-dspi driver (Vladimir Oltean) +- regulator: remove superfluous lock in regulator_resolve_coupling() (=?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?=) +- regulator: cleanup regulator_ena_gpio_free() (=?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?=) +- regulator: plug of_node leak in regulator_register()'s error path (=?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?=) +- regulator: push allocation in set_consumer_device_supply() out of lock (=?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?=) +- regulator: push allocations in create_regulator() outside of lock (=?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?=) +- regulator: push allocation in regulator_ena_gpio_request() out of lock (=?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?=) +- regulator: push allocation in regulator_init_coupling() outside of lock (=?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?=) +- regulator: fix spelling mistake "Cant" -> "Can't" (Colin Ian King) +- regulator: cros-ec-regulator: Add NULL test for devm_kmemdup call (Axel Lin) + +* Fri Sep 11 2020 Fedora Kernel Team [5.9.0-0.rc4.20200911git581cb3a26baf.7] +- Merge ark-patches + +* Fri Sep 11 2020 Fedora Kernel Team [5.9.0-0.rc4.20200911git581cb3a26baf.6.test] +- 581cb3a26baf rebase +- f2fs: Return EOF on unaligned end of file DIO read (Gabriel Krisman Bertazi) +- f2fs: fix indefinite loop scanning for free nid (Sahitya Tummala) +- f2fs: Fix type of section block count variables (Shin'ichiro Kawasaki) + +* Thu Sep 10 2020 Fedora Kernel Team [5.9.0-0.rc4.20200910git7fe10096c150.5.test] +- 7fe10096c150 rebase +- kernel.spec: don't override upstream compiler flags for ppc64le (=?UTF-8?q?Dan=20Hor=C3=A1k?=) +- SUNRPC: stop printk reading past end of string ("J. Bruce Fields") +- NFS: Zero-stateid SETATTR should first return delegation (Chuck Lever) +- padata: fix possible padata_works_lock deadlock (Daniel Jordan) +- NFSv4.1 handle ERR_DELAY error reclaiming locking state on delegation recall (Olga Kornievskaia) +- xprtrdma: Release in-flight MRs on disconnect (Chuck Lever) + +* Wed Sep 09 2020 Fedora Kernel Team [5.9.0-0.rc4.20200909git34d4ddd359db.4.test] +- 34d4ddd359db rebase +- Revert "drm/i915/gem: Delete unused code" (Dave Airlie) +- Revert "drm/i915/gem: Async GPU relocations only" (Dave Airlie) +- Revert "drm/i915: Remove i915_gem_object_get_dirty_page()" (Dave Airlie) +- Updated changelog for the release based on v5.9-rc4 (Fedora Kernel Team) +- drm/msm: Disable the RPTR shadow (Jordan Crouse) +- drm/msm: Disable preemption on all 5xx targets (Jordan Crouse) +- drm/msm: Enable expanded apriv support for a650 (Jordan Crouse) +- drm/msm: Split the a5xx preemption record (Jordan Crouse) +- Revert "kbuild: use -flive-patching when CONFIG_LIVEPATCH is enabled" (Josh Poimboeuf) +- scsi: mpt3sas: Don't call disable_irq from IRQ poll handler (Tomas Henzl) +- scsi: megaraid_sas: Don't call disable_irq from process IRQ poll (Tomas Henzl) +- scsi: target: iscsi: Fix hang in iscsit_access_np() when getting tpg->np_login_sem (Hou Pu) +- scsi: libsas: Set data_dir as DMA_NONE if libata marks qc as NODATA (Luo Jiaxing) +- scsi: target: iscsi: Fix data digest calculation (Varun Prakash) +- scsi: lpfc: Update lpfc version to 12.8.0.4 (James Smart) +- scsi: lpfc: Extend the RDF FPIN Registration descriptor for additional events (James Smart) +- scsi: lpfc: Fix FLOGI/PLOGI receive race condition in pt2pt discovery (James Smart) +- scsi: lpfc: Fix setting IRQ affinity with an empty CPU mask (James Smart) +- scsi: qla2xxx: Fix regression on sparc64 (=?UTF-8?q?Ren=C3=A9=20Rebe?=) +- scsi: libfc: Fix for double free() (Javed Hasan) +- scsi: pm8001: Fix memleak in pm8001_exec_internal_task_abort (Dinghao Liu) +- selftests/timers: Turn off timeout setting (Po-Hsu Lin) + +* Mon Sep 07 2020 Fedora Kernel Team [5.9.0-0.rc4.4] +- Merge ark-patches + +* Mon Sep 07 2020 Fedora Kernel Team [5.9.0-0.rc4.3.test] +- v5.9-rc4 rebase +- Linux 5.9-rc4 (Linus Torvalds) +- Updated changelog for the release based on dd9fb9bb3340 (Fedora Kernel Team) +- io_uring: fix linked deferred ->files cancellation (Pavel Begunkov) +- io_uring: fix cancel of deferred reqs with ->files (Pavel Begunkov) +- io_uring: fix explicit async read/write mapping for large segments (Jens Axboe) +- x86/entry: Unbreak 32bit fast syscall (Thomas Gleixner) +- x86/debug: Allow a single level of #DB recursion (Andy Lutomirski) +- x86/entry: Fix AC assertion (Peter Zijlstra) +- tracing/kprobes, x86/ptrace: Fix regs argument order for i386 (Vamshi K Sthambamkadi) +- iommu/vt-d: Handle 36bit addressing for x86-32 (Chris Wilson) +- iommu/amd: Do not use IOMMUv2 functionality when SME is active (Joerg Roedel) +- iommu/amd: Do not force direct mapping when SME is active (Joerg Roedel) +- iommu/amd: Use cmpxchg_double() when updating 128-bit IRTE (Suravee Suthikulpanit) +- iommu/amd: Restore IRTE.RemapEn bit after programming IRTE (Suravee Suthikulpanit) +- iommu/vt-d: Fix NULL pointer dereference in dev_iommu_priv_set() (Lu Baolu) +- iommu/vt-d: Serialize IOMMU GCMD register modifications (Lu Baolu) +- MAINTAINERS: Update QUALCOMM IOMMU after Arm SMMU drivers move (Lukas Bulwahn) +- xen: add helpers to allocate unpopulated memory (Roger Pau Monne) +- memremap: rename MEMORY_DEVICE_DEVDAX to MEMORY_DEVICE_GENERIC (Roger Pau Monne) +- xen/balloon: add header guard (Roger Pau Monne) +- x86, fakenuma: Fix invalid starting node ID (Huang Ying) +- x86/mm/32: Bring back vmalloc faulting on x86_32 (Joerg Roedel) +- x86/cmdline: Disable jump tables for cmdline.c (Arvind Sankar) + +* Sun Sep 06 2020 Fedora Kernel Team [5.9.0-0.rc3.20200906gitdd9fb9bb3340.3] +- Merge ark-patches + +* Sun Sep 06 2020 Fedora Kernel Team [5.9.0-0.rc3.20200906gitdd9fb9bb3340.2.test] +- dd9fb9bb3340 rebase +- include/linux/log2.h: add missing () around n in roundup_pow_of_two() (Jason Gunthorpe) +- mm/khugepaged.c: fix khugepaged's request size in collapse_file (David Howells) +- mm/hugetlb: fix a race between hugetlb sysctl handlers (Muchun Song) +- mm/hugetlb: try preferred node first when alloc gigantic page from cma (Li Xinhai) +- mm/migrate: preserve soft dirty in remove_migration_pte() (Ralph Campbell) +- mm/migrate: remove unnecessary is_zone_device_page() check (Ralph Campbell) +- mm/rmap: fixup copying of soft dirty and uffd ptes (Alistair Popple) +- mm/migrate: fixup setting UFFD_WP flag (Alistair Popple) +- mm: madvise: fix vma user-after-free (Yang Shi) +- checkpatch: fix the usage of capture group ( ... ) (Mrinal Pandey) +- fork: adjust sysctl_max_threads definition to match prototype (Tobias Klauser) +- ipc: adjust proc_ipc_sem_dointvec definition to match prototype (Tobias Klauser) +- mm: track page table modifications in __apply_to_page_range() (Joerg Roedel) +- MAINTAINERS: IA64: mark Status as Odd Fixes only (Randy Dunlap) +- MAINTAINERS: add LLVM maintainers (Nick Desaulniers) +- MAINTAINERS: update Cavium/Marvell entries (Robert Richter) +- mm: slub: fix conversion of freelist_corrupted() (Eugeniu Rosca) +- mm: memcg: fix memcg reclaim soft lockup (Xunlei Pang) +- memcg: fix use-after-free in uncharge_batch (Michal Hocko) +- xfs: don't update mtime on COW faults (Mikulas Patocka) +- ext2: don't update mtime on COW faults (Mikulas Patocka) +- Updated changelog for the release based on c70672d8d316 (Fedora Kernel Team) +- xfs: fix xfs_bmap_validate_extent_raw when checking attr fork of rt files ("Darrick J. Wong") +- ARC: [plat-hsdk]: Switch ethernet phy-mode to rgmii-id (Evgeniy Didin) +- arc: fix memory initialization for systems with two memory banks (Mike Rapoport) +- clang-format: Update with the latest for_each macro list (Miguel Ojeda) +- sparse: use static inline for __chk_{user,io}_ptr() (Luc Van Oostenryck) +- irqchip/eznps: Fix build error for !ARC700 builds (Vineet Gupta) +- ARC: show_regs: fix r12 printing and simplify (Vineet Gupta) +- Compiler Attributes: fix comment concerning GCC 4.6 (Luc Van Oostenryck) +- Compiler Attributes: remove comment about sparse not supporting __has_attribute (Luc Van Oostenryck) +- ARC: HSDK: wireup perf irq (Vineet Gupta) +- ARC: perf: don't bail setup if pct irq missing in device-tree (Vineet Gupta) +- ARC: pgalloc.h: delete a duplicated word + other fixes (Randy Dunlap) +- auxdisplay: Replace HTTP links with HTTPS ones ("Alexander A. Klimov") + +* Sat Sep 05 2020 Fedora Kernel Team [5.9.0-0.rc3.20200905gitc70672d8d316.2] +- Merge ark-patches + +* Sat Sep 05 2020 Fedora Kernel Team [5.9.0-0.rc3.20200905gitc70672d8d316.1.test] +- c70672d8d316 rebase +- Fedora confi gupdate ("Justin M. Forbes") +- net/packet: fix overflow in tpacket_rcv (Or Cohen) +- mm: Add PGREUSE counter (Peter Xu) +- mm/gup: Remove enfornced COW mechanism (Peter Xu) +- mm/ksm: Remove reuse_ksm_page() (Peter Xu) +- mm: do_wp_page() simplification (Linus Torvalds) +- gcov: Disable gcov build with GCC 10 (Leon Romanovsky) +- init: fix error check in clean_path() (Barret Rhoden) +- thermal: core: Fix use-after-free in thermal_zone_device_unregister() (Dmitry Osipenko) +- thermal: qcom-spmi-temp-alarm: Don't suppress negative temp (Veera Vegivada) +- thermal: ti-soc-thermal: Fix bogus thermal shutdowns for omap4430 (Tony Lindgren) +- Updated changelog for the release based on 59126901f200 (Fedora Kernel Team) +- ALSA: hda/realtek - Improved routing for Thinkpad X1 7th/8th Gen (Takashi Iwai) +- MIPS: SNI: Fix SCSI interrupt (Thomas Bogendoerfer) +- MIPS: add missing MSACSR and upper MSA initialization (Huang Pei) +- dmaengine: ti: k3-udma: Update rchan_oes_offset for am654 SYSFW ABI 3.0 (Peter Ujfalusi) +- drm/nouveau/kms/nv50-gp1xx: add WAR for EVO push buffer HW bug (Ben Skeggs) +- drm/nouveau/kms/nv50-gp1xx: disable notifies again after core update (Ben Skeggs) +- drm/nouveau/kms/nv50-: add some whitespace before debug message (Ben Skeggs) +- drm/nouveau/kms/gv100-: Include correct push header in crcc37d.c (Lyude Paul) +- drm/radeon: Prefer lower feedback dividers (Kai-Heng Feng) +- drm/amdgpu: Fix bug in reporting voltage for CIK (Sandeep Raghuraman) +- drm/amdgpu: Specify get_argument function for ci_smu_funcs (Sandeep Raghuraman) +- drm/amd/pm: enable MP0 DPM for sienna_cichlid (Jiansong Chen) +- drm/amd/pm: avoid false alarm due to confusing softwareshutdowntemp setting (Evan Quan) +- drm/amd/pm: fix is_dpm_running() run error on 32bit system (Kevin Wang) +- kconfig: remove redundant assignment prompt = prompt (Denis Efremov) +- kbuild: Documentation: clean up makefiles.rst (Randy Dunlap) +- kconfig: streamline_config.pl: check defined(ENV variable) before using it (Randy Dunlap) +- block: allow for_each_bvec to support zero len bvec (Ming Lei) +- ALSA: hda: use consistent HDAudio spelling in comments/docs (Pierre-Louis Bossart) +- libata: implement ATA_HORKAGE_MAX_TRIM_128M and apply to Sandisks (Tejun Heo) +- ALSA: hda: add dev_dbg log when driver is not selected (Pierre-Louis Bossart) +- ALSA: hda: fix a runtime pm issue in SOF when integrated GPU is disabled (Rander Wang) +- ALSA: hda: hdmi - add Rocketlake support (Rander Wang) +- io_uring: no read/write-retry on -EAGAIN error and O_NONBLOCK marked file (Jens Axboe) +- io_uring: set table->files[i] to NULL when io_sqe_file_register failed (Jiufei Xue) +- ALSA: ua101: convert tasklets to use new tasklet_setup() API (Allen Pais) +- ALSA: usb-audio: convert tasklets to use new tasklet_setup() API (Allen Pais) +- ASoC: txx9: convert tasklets to use new tasklet_setup() API (Allen Pais) +- ASoC: siu: convert tasklets to use new tasklet_setup() API (Allen Pais) +- ASoC: fsl_esai: convert tasklets to use new tasklet_setup() API (Allen Pais) +- ALSA: hdsp: convert tasklets to use new tasklet_setup() API (Allen Pais) +- ALSA: riptide: convert tasklets to use new tasklet_setup() API (Allen Pais) +- ALSA: pci/asihpi: convert tasklets to use new tasklet_setup() API (Allen Pais) +- ALSA: firewire: convert tasklets to use new tasklet_setup() API (Allen Pais) +- ALSA: core: convert tasklets to use new tasklet_setup() API (Allen Pais) +- s390: update defconfigs (Heiko Carstens) +- s390: fix GENERIC_LOCKBREAK dependency typo in Kconfig (Eric Farman) +- drm/i915: Clear the repeater bit on HDCP disable (Sean Paul) +- drm/i915: Fix sha_text population code (Sean Paul) +- drm/i915/display: Ensure that ret is always initialized in icl_combo_phy_verify_state (Nathan Chancellor) +- arm64/module: set trampoline section flags regardless of CONFIG_DYNAMIC_FTRACE (Jessica Yu) +- arm64: Remove exporting cpu_logical_map symbol (Sudeep Holla) +- blk-stat: make q->stats->lock irqsafe (Tejun Heo) +- blk-iocost: ioc_pd_free() shouldn't assume irq disabled (Tejun Heo) +- cpufreq: intel_pstate: Fix intel_pstate_get_hwp_max() for turbo disabled (Francisco Jerez) +- cpufreq: intel_pstate: Free memory only when turning off ("Rafael J. Wysocki") +- cpufreq: intel_pstate: Add ->offline and ->online callbacks ("Rafael J. Wysocki") +- cpufreq: intel_pstate: Tweak the EPP sysfs interface ("Rafael J. Wysocki") +- cpufreq: intel_pstate: Update cached EPP in the active mode ("Rafael J. Wysocki") +- cpufreq: intel_pstate: Refuse to turn off with HWP enabled ("Rafael J. Wysocki") +- block: fix locking in bdev_del_partition (Christoph Hellwig) +- block: release disk reference in hd_struct_free_work (Ming Lei) +- io_uring: fix removing the wrong file in __io_sqe_files_update() (Jiufei Xue) +- block: ensure bdi->io_pages is always initialized (Jens Axboe) +- ALSA: pcm: oss: Remove superfluous WARN_ON() for mulaw sanity check (Takashi Iwai) +- MIPS: perf: Fix wrong check condition of Loongson event IDs (Tiezhu Yang) +- Documentation/llvm: Improve formatting of commands, variables, and arguments (Nathan Chancellor) +- opp: Don't drop reference for an OPP table that was never parsed (Viresh Kumar) +- ALSA: hda - Fix silent audio output and corrupted input on MSI X570-A PRO (Dan Crawford) +- nvme-pci: cancel nvme device request before disabling (Tong Zhang) +- nvme: only use power of two io boundaries (Keith Busch) +- nvme: fix controller instance leak (Keith Busch) +- nvmet-fc: Fix a missed _irqsave version of spin_lock in 'nvmet_fc_fod_op_done()' (Christophe JAILLET) +- nvme: Fix NULL dereference for pci nvme controllers (Sagi Grimberg) +- nvme-rdma: fix reset hang if controller died in the middle of a reset (Sagi Grimberg) +- nvme-rdma: fix timeout handler (Sagi Grimberg) +- nvme-rdma: serialize controller teardown sequences (Sagi Grimberg) +- nvme-tcp: fix reset hang if controller died in the middle of a reset (Sagi Grimberg) +- nvme-tcp: fix timeout handler (Sagi Grimberg) +- nvme-tcp: serialize controller teardown sequences (Sagi Grimberg) +- nvme: have nvme_wait_freeze_timeout return if it timed out (Sagi Grimberg) +- nvme-fabrics: don't check state NVME_CTRL_NEW for request acceptance (Sagi Grimberg) +- nvmet-tcp: Fix NULL dereference when a connect data comes in h2cdata pdu (Ziye Yang) +- ALSA: hda/hdmi: always check pin power status in i915 pin fixup (Kai Vehmanen) +- ALSA: hda/realtek: Add quirk for Samsung Galaxy Book Ion NT950XCJ-X716A (Adrien Crivelli) +- ALSA: usb-audio: Add basic capture support for Pioneer DJ DJM-250MK2 (=?UTF-8?q?Franti=C5=A1ek=20Ku=C4=8Dera?=) +- ALSA: usb-audio: Add implicit feedback quirk for UR22C (Joshua Sivec) +- drivers/dma/dma-jz4780: Fix race condition between probe and irq handler (Madhuparna Bhowmik) +- dmaengine: dw-edma: Fix scatter-gather address calculation (Gustavo Pimentel) +- dmaengine: ti: k3-udma: Fix the TR initialization for prep_slave_sg (Peter Ujfalusi) +- dmaengine: pl330: Fix burst length if burst size is smaller than bus width (Marek Szyprowski) +- Revert "ALSA: hda: Add support for Loongson 7A1000 controller" (Tiezhu Yang) +- ALSA: hda/tegra: Program WAKEEN register for Tegra (Mohan Kumar) +- ALSA: hda: Fix 2 channel swapping for Tegra (Mohan Kumar) +- ALSA: ca0106: fix error code handling (Tong Zhang) +- Documentation: sound/cards: fix heading underline lengths for https: changes (Randy Dunlap) +- ALSA: usb-audio: Disable autosuspend for Lenovo ThinkStation P620 (Kai-Heng Feng) +- ALSA: firewire-digi00x: exclude Avid Adrenaline from detection (Takashi Sakamoto) +- ALSA; firewire-tascam: exclude Tascam FE-8 from detection (Takashi Sakamoto) +- mips/oprofile: Fix fallthrough placement (He Zhe) +- MIPS: Loongson64: Remove unnecessary inclusion of boot_param.h (WANG Xuerui) +- MIPS: BMIPS: Also call bmips_cpu_setup() for secondary cores (Florian Fainelli) +- MIPS: mm: BMIPS5000 has inclusive physical caches (Florian Fainelli) +- dmaengine: at_hdmac: add missing kfree() call in at_dma_xlate() (Yu Kuai) +- dmaengine: at_hdmac: add missing put_device() call in at_dma_xlate() (Yu Kuai) +- dmaengine: at_hdmac: check return value of of_find_device_by_node() in at_dma_xlate() (Yu Kuai) +- MIPS: Loongson64: Do not override watch and ejtag feature (Jiaxun Yang) +- dmaengine: of-dma: Fix of_dma_router_xlate's of_dma_xlate handling (Peter Ujfalusi) +- dmaengine: idxd: reset states after device disable or reset (Dave Jiang) +- dmaengine: acpi: Put the CSRT table after using it (Hanjun Guo) +- ata: ahci: use ata_link_info() instead of ata_link_printk() (Xu Wang) + +* Fri Sep 04 2020 Fedora Kernel Team [5.9.0-0.rc3.20200904git59126901f200.1] +- Merge ark-patches + +* Fri Sep 04 2020 Fedora Kernel Team [5.9.0-0.rc3.20200904git59126901f200.0.test] +- 59126901f200 rebase +- Updated changelog for the release based on fc3abb53250a (Fedora Kernel Team) +- Swap how ark-latest is built (Don Zickus) +- Add extra version bump to os-build branch (Don Zickus) +- dist-release: Avoid needless version bump. (Don Zickus) +- Add dist-fedora-release target (Don Zickus) +- Remove redundant code in dist-release (Don Zickus) +- Makefile.common rename TAG to _TAG (Don Zickus) + +* Thu Sep 03 2020 Fedora Kernel Team [5.9.0-0.rc3.20200903gitfc3abb53250a.1] +- fc3abb53250a rebase +- Fedora config change ("Justin M. Forbes") +- Updated changelog for the release based on 9c7d619be5a0 (Fedora Kernel Team) + +* Wed Sep 02 2020 Fedora Kernel Team [5.9.0-0.rc3.20200902git9c7d619be5a0.1] +- 9c7d619be5a0 rebase +- Updated changelog for the release based on b51594df17d0 (Fedora Kernel Team) + +* Tue Sep 01 2020 Fedora Kernel Team [5.9.0-0.rc3.20200901gitb51594df17d0.1] +- b51594df17d0 rebase +- Fedora filter update ("Justin M. Forbes") +- Config update for Fedora ("Justin M. Forbes") +- Updated changelog for the release based on v5.9-rc3 (Fedora Kernel Team) + +* Mon Aug 31 2020 Fedora Kernel Team [5.9.0-0.rc3.1] +- v5.9-rc3 rebase +- Updated changelog for the release based on 1127b219ce94 (Fedora Kernel Team) + +* Sun Aug 30 2020 Fedora Kernel Team [5.9.0-0.rc2.20200830git1127b219ce94.1] +- 1127b219ce94 rebase +- Updated changelog for the release based on 4d41ead6ead9 (Fedora Kernel Team) + +* Sat Aug 29 2020 Fedora Kernel Team [5.9.0-0.rc2.20200829git4d41ead6ead9.1] +- 4d41ead6ead9 rebase +- mod-sign.sh: Fix syntax flagged by shellcheck (Ben Crocker) +- Updated changelog for the release based on 15bc20c6af4c (Fedora Kernel Team) + +* Thu Aug 27 2020 Fedora Kernel Team [5.9.0-0.rc2.20200827git15bc20c6af4c.1] +- 15bc20c6af4c rebase +- Updated changelog for the release based on 2ac69819ba9e (Fedora Kernel Team) + +* Wed Aug 26 2020 Fedora Kernel Team [5.9.0-0.rc2.20200826git2ac69819ba9e.1] +- 2ac69819ba9e rebase +- Updated changelog for the release based on 6a9dc5fd6170 (Fedora Kernel Team) + +* Tue Aug 25 2020 Fedora Kernel Team [5.9.0-0.rc2.20200825git6a9dc5fd6170.1] +- 6a9dc5fd6170 rebase +- Updated changelog for the release based on v5.9-rc2 (Fedora Kernel Team) + +* Mon Aug 24 2020 Fedora Kernel Team [5.9.0-0.rc2.1] +- v5.9-rc2 rebase +- Updated changelog for the release based on c3d8f220d012 (Fedora Kernel Team) + +* Sun Aug 23 2020 Fedora Kernel Team [5.9.0-0.rc1.20200823gitc3d8f220d012.1] +- c3d8f220d012 rebase +- Updated changelog for the release based on f873db9acd3c (Fedora Kernel Team) + +* Sat Aug 22 2020 Fedora Kernel Team [5.9.0-0.rc1.20200822gitf873db9acd3c.1] +- f873db9acd3c rebase +- Updated changelog for the release based on da2968ff879b (Fedora Kernel Team) + +* Fri Aug 21 2020 Fedora Kernel Team [5.9.0-0.rc1.20200821gitda2968ff879b.1] +- da2968ff879b rebase +- Temporarily remove cdomain from sphinx documentation ("Justin M. Forbes") +- Work around for gcc bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96377 ("Justin M. Forbes") +- Updated changelog for the release based on 18445bf405cb (Fedora Kernel Team) +- enable PROTECTED_VIRTUALIZATION_GUEST for all s390x kernels (=?UTF-8?q?Dan=20Hor=C3=A1k?=) + +* Wed Aug 19 2020 Fedora Kernel Team [5.9.0-0.rc1.20200819git18445bf405cb.1] +- 18445bf405cb rebase +- Add mlx5_vdpa to module filter for Fedora ("Justin M. Forbes") +- Add python3-sphinx_rtd_theme buildreq for docs ("Justin M. Forbes") +- kernel.spec: Remove kernel-keys directory on rpm erase (Prarit Bhargava) +- More Fedora config updates ("Justin M. Forbes") +- New config deps ("Justin M. Forbes") +- Updated changelog for the release based on 06a4ec1d9dc6 (Fedora Kernel Team) +- redhat: ark: enable CONFIG_NET_SCH_TAPRIO (Davide Caratti) +- redhat: ark: enable CONFIG_NET_SCH_ETF (Davide Caratti) + +* Tue Aug 18 2020 Fedora Kernel Team [5.9.0-0.rc1.20200818git06a4ec1d9dc6.1] +- 06a4ec1d9dc6 rebase +- First half of config updates for Fedora ("Justin M. Forbes") +- Add config options that only show up when we prep on arm ("Justin M. Forbes") +- Config updates for Fedora ("Justin M. Forbes") +- fedora: enable enery model (Peter Robinson) +- iio: enable LTR-559 light and proximity sensor (Peter Robinson) +- iio: chemical: enable some popular chemical and partical sensors (Peter Robinson) +- More mismatches ("Justin M. Forbes") +- Fedora config change due to deps ("Justin M. Forbes") +- CONFIG_SND_SOC_MAX98390 is now selected by SND_SOC_INTEL_DA7219_MAX98357A_GENERIC ("Justin M. Forbes") +- Config change required for build part 2 ("Justin M. Forbes") +- Config change required for build ("Justin M. Forbes") +- Updates for Fedora arm architectures for the 5.9 window (Peter Robinson) +- Enable ARM_SMCCC_SOC_ID on all aarch64 kernels (Peter Robinson) +- Enable ZSTD compression algorithm on all kernels (Peter Robinson) +- Fedora config update ("Justin M. Forbes") +- Revert "Merge branch 'make_configs_fix' into 'os-build'" (Justin Forbes) +- Use the configs/generic config for SND_HDA_INTEL everywhere (Peter Robinson) +- redhat/configs/process_configs.sh: Remove *.config.orig files (Prarit Bhargava) +- redhat/configs/process_configs.sh: Add process_configs_known_broken flag (Prarit Bhargava) +- redhat/Makefile: Fix '*-configs' targets (Prarit Bhargava) +- Updated changelog for the release based on v5.8 (Fedora Kernel Team) +- Add ability to sync upstream through Makefile (Don Zickus) +- Add master merge check (Don Zickus) +- Replace hardcoded values 'os-build' and project id with variables (Don Zickus) +- gitattributes: Remove unnecesary export restrictions (Prarit Bhargava) +- redhat/Makefile.common: Fix MARKER (Prarit Bhargava) + +* Mon Aug 03 2020 Fedora Kernel Team [5.8.0-1] +- v5.8 rebase +- Updated changelog for the release based on ac3a0c847296 (Fedora Kernel Team) + +* Sun Aug 02 2020 Fedora Kernel Team [5.8.0-0.rc7.20200802gitac3a0c847296.1] +- ac3a0c847296 rebase +- Updated changelog for the release based on 7dc6fd0f3b84 (Fedora Kernel Team) + +* Sat Aug 01 2020 Fedora Kernel Team [5.8.0-0.rc7.20200801git7dc6fd0f3b84.1] +- 7dc6fd0f3b84 rebase +- Updated changelog for the release based on 417385c47ef7 (Fedora Kernel Team) + +* Fri Jul 31 2020 Fedora Kernel Team [5.8.0-0.rc7.20200731git417385c47ef7.1] +- 417385c47ef7 rebase +- Add new certs for dual signing with boothole ("Justin M. Forbes") +- Update secureboot signing for dual keys ("Justin M. Forbes") +- Updated changelog for the release based on d3590ebf6f91 (Fedora Kernel Team) + +* Thu Jul 30 2020 Fedora Kernel Team [5.8.0-0.rc7.20200730gitd3590ebf6f91.1] +- d3590ebf6f91 rebase +- Updated changelog for the release based on 6ba1b005ffc3 (Fedora Kernel Team) + +* Wed Jul 29 2020 Fedora Kernel Team [5.8.0-0.rc7.20200729git6ba1b005ffc3.1] +- 6ba1b005ffc3 rebase +- Revert "dt-bindings: Add doc for Pine64 Pinebook Pro" (Peter Robinson) +- fedora: enable LEDS_SGM3140 for arm configs (Peter Robinson) +- Updated changelog for the release based on v5.8-rc7 (Fedora Kernel Team) + +* Mon Jul 27 2020 Fedora Kernel Team [5.8.0-0.rc7.1] +- v5.8-rc7 rebase +- Updated changelog for the release based on 04300d66f0a0 (Fedora Kernel Team) + +* Sun Jul 26 2020 Fedora Kernel Team [5.8.0-0.rc6.20200726git04300d66f0a0.1] +- 04300d66f0a0 rebase +- Updated changelog for the release based on 23ee3e4e5bd2 (Fedora Kernel Team) + +* Sat Jul 25 2020 Fedora Kernel Team [5.8.0-0.rc6.20200725git23ee3e4e5bd2.1] +- 23ee3e4e5bd2 rebase +- Enable CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG ("Justin M. Forbes") +- Updated changelog for the release based on f37e99aca03f (Fedora Kernel Team) + +* Fri Jul 24 2020 Fedora Kernel Team [5.8.0-0.rc6.20200724gitf37e99aca03f.1] +- f37e99aca03f rebase +- Updated changelog for the release based on d15be546031c (Fedora Kernel Team) + +* Thu Jul 23 2020 Fedora Kernel Team [5.8.0-0.rc6.20200723gitd15be546031c.1] +- d15be546031c rebase +- fedora: arm: Update some meson config options (Peter Robinson) +- Updated changelog for the release based on 4fa640dc5230 (Fedora Kernel Team) + +* Tue Jul 21 2020 Fedora Kernel Team [5.8.0-0.rc6.20200721git4fa640dc5230.1] +- 4fa640dc5230 rebase +- Updated changelog for the release based on 5714ee50bb43 (Fedora Kernel Team) +- redhat/docs: Add Fedora RPM tagging date (Prarit Bhargava) + +* Mon Jul 20 2020 Fedora Kernel Team [5.8.0-0.rc6.20200720git5714ee50bb43.1] +- 5714ee50bb43 rebase +- Updated changelog for the release based on f932d58abc38 (Fedora Kernel Team) + +* Sun Jul 19 2020 Fedora Kernel Team [5.8.0-0.rc5.20200719gitf932d58abc38.1] +- f932d58abc38 rebase +- Updated changelog for the release based on 6a70f89cc58f (Fedora Kernel Team) + +* Sat Jul 18 2020 Fedora Kernel Team [5.8.0-0.rc5.20200718git6a70f89cc58f.1] +- 6a70f89cc58f rebase +- Updated changelog for the release based on 07a56bb875af (Fedora Kernel Team) + +* Fri Jul 17 2020 Fedora Kernel Team [5.8.0-0.rc5.20200717git07a56bb875af.1] +- 07a56bb875af rebase +- redhat/configs: Fix common CONFIGs (Prarit Bhargava) +- redhat/configs: General CONFIG cleanups (Prarit Bhargava) +- redhat/configs: Update & generalize evaluate_configs (Prarit Bhargava) +- arch/x86: Remove vendor specific CPU ID checks (Prarit Bhargava) +- Updated changelog for the release based on e9919e11e219 (Fedora Kernel Team) + +* Wed Jul 15 2020 Fedora Kernel Team [5.8.0-0.rc5.20200715gite9919e11e219.1] +- e9919e11e219 rebase +- arm64: dts: sun50i-a64-pinephone: Add touchscreen support (Ondrej Jirman) +- arm64: dts: sun50i-a64-pinephone: Enable LCD support on PinePhone (Icenowy Zheng) +- drm/panel: st7703: Assert reset prior to powering down the regulators (Ondrej Jirman) +- drm/panel: st7703: Enter sleep after display off (Ondrej Jirman) +- drm/panel: st7703: Add support for Xingbangda XBD599 (Ondrej Jirman) +- drm/panel: st7703: Move generic part of init sequence to enable callback (Ondrej Jirman) +- drm/panel: st7703: Move code specific to jh057n closer together (Ondrej Jirman) +- drm/panel: st7703: Prepare for supporting multiple panels (Ondrej Jirman) +- drm/panel: st7703: Rename functions from jh057n prefix to st7703 (Ondrej Jirman) +- drm/panel: rocktech-jh057n00900: Rename the driver to st7703 (Ondrej Jirman) +- dt-bindings: panel: Add compatible for Xingbangda XBD599 panel (Ondrej Jirman) +- dt-bindings: panel: Convert rocktech, jh057n00900 to yaml (Ondrej Jirman) +- dt-bindings: vendor-prefixes: Add Xingbangda (Icenowy Zheng) +- Revert "arm64: allwinner: dts: a64: add LCD-related device nodes for PinePhone" (Peter Robinson) +- Revert "drm/sun4i: sun6i_mipi_dsi: fix horizontal timing calculation" (Peter Robinson) +- Revert "drm: panel: add Xingbangda XBD599 panel" (Peter Robinson) +- Revert "dt-bindings: panel: add binding for Xingbangda XBD599 panel" (Peter Robinson) +- selinux: allow reading labels before policy is loaded (Jonathan Lebon) +- Fixes "acpi: prefer booting with ACPI over DTS" to be RHEL only (Peter Robinson) +- Update config for renamed panel driver. (Peter Robinson) +- Enable SERIAL_SC16IS7XX for SPI interfaces (Peter Robinson) +- Updated changelog for the release based on dcde237b9b0e (Fedora Kernel Team) + +* Wed Jul 08 2020 Fedora Kernel Team [5.8.0-0.rc4.20200708gitdcde237b9b0e.1] +- dcde237b9b0e rebase +- Updated changelog for the release based on v5.8-rc4 (Fedora Kernel Team) + +* Mon Jul 06 2020 Fedora Kernel Team [5.8.0-0.rc4.1] +- v5.8-rc4 rebase +- Updated changelog for the release based on cd77006e01b3 (Fedora Kernel Team) + +* Thu Jul 02 2020 Fedora Kernel Team [5.8.0-0.rc3.20200702gitcd77006e01b3.1] +- cd77006e01b3 rebase +- Updated changelog for the release based on v5.8-rc3 (Fedora Kernel Team) + +* Mon Jun 29 2020 Fedora Kernel Team [5.8.0-0.rc3.1] +- v5.8-rc3 rebase +- s390x-zfcpdump: Handle missing Module.symvers file (Don Zickus) +- Updated changelog for the release based on 8be3a53e18e0 (Fedora Kernel Team) + +* Thu Jun 25 2020 Fedora Kernel Team [5.8.0-0.rc2.20200625git8be3a53e18e0.1] +- 8be3a53e18e0 rebase +- redhat: Replace hardware.redhat.com link in Unsupported message (Prarit Bhargava) +- redhat/configs: Add .tmp files to .gitignore (Prarit Bhargava) +- disable uncommon TCP congestion control algorithms (Davide Caratti) +- Updated changelog for the release based on dd0d718152e4 (Fedora Kernel Team) + +* Tue Jun 23 2020 Fedora Kernel Team [5.8.0-0.rc2.20200623gitdd0d718152e4.1] +- dd0d718152e4 rebase +- Add new bpf man pages ("Justin M. Forbes") +- Add default option for CONFIG_ARM64_BTI_KERNEL to pending-common so that eln kernels build ("Justin M. Forbes") +- Updated changelog for the release based on 625d3449788f (Fedora Kernel Team) + +* Mon Jun 22 2020 Fedora Kernel Team [5.8.0-0.rc2.20200622git625d3449788f.1] +- 625d3449788f rebase +- Updated changelog for the release based on 1b5044021070 (Fedora Kernel Team) + +* Thu Jun 18 2020 Fedora Kernel Team [5.8.0-0.rc1.20200618git1b5044021070.1] +- 1b5044021070 rebase +- redhat/Makefile: Add fedora-configs and rh-configs make targets (Prarit Bhargava) +- Updated changelog for the release based on 69119673bd50 (Fedora Kernel Team) +- redhat/configs: Use SHA512 for module signing (Prarit Bhargava) +- genspec.sh: 'touch' empty Patchlist file for single tarball (Don Zickus) + +* Wed Jun 17 2020 Fedora Kernel Team [5.8.0-0.rc1.20200617git69119673bd50.1] +- 69119673bd50 rebase +- Updated changelog for the release based on a5dc8300df75 (Fedora Kernel Team) + +* Tue Jun 16 2020 Fedora Kernel Team [5.8.0-0.rc1.20200616gita5dc8300df75.1] +- a5dc8300df75 rebase +- Fedora config update for rc1 ("Justin M. Forbes") +- Updated changelog for the release based on v5.8-rc1 (Fedora Kernel Team) + +* Sun Jun 14 2020 Fedora Kernel Team [5.8.0-0.rc1.1] +- v5.8-rc1 rebase +- Updated changelog for the release based on df2fbf5bfa0e (Fedora Kernel Team) + +* Sat Jun 13 2020 Fedora Kernel Team [5.8.0-0.rc0.20200613gitdf2fbf5bfa0e.1] +- df2fbf5bfa0e rebase +- Updated changelog for the release based on b791d1bdf921 (Fedora Kernel Team) + +* Fri Jun 12 2020 Fedora Kernel Team [5.8.0-0.rc0.20200612gitb791d1bdf921.1] +- b791d1bdf921 rebase +- PCI: tegra: Revert raw_violation_fixup for tegra124 (Nicolas Chauvet) +- One more Fedora config update ("Justin M. Forbes") +- Change ark CONFIG_COMMON_CLK to yes, it is selected already by other options ("Justin M. Forbes") +- Fix PATCHLEVEL for merge window ("Justin M. Forbes") +- More module filtering for Fedora ("Justin M. Forbes") +- Update filters for rnbd in Fedora ("Justin M. Forbes") +- redhat/Makefile.common: fix RPMKSUBLEVEL condition (Ondrej Mosnacek) +- redhat/Makefile: silence KABI tar output (Ondrej Mosnacek) +- Fix up module filtering for 5.8 ("Justin M. Forbes") +- More Fedora config work ("Justin M. Forbes") +- RTW88BE and CE have been extracted to their own modules ("Justin M. Forbes") +- Set CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK for Fedora ("Justin M. Forbes") +- Arm64 Use Branch Target Identification for kernel ("Justin M. Forbes") +- Fedora config updates ("Justin M. Forbes") +- Change value of CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE ("Justin M. Forbes") +- Fix configs for Fedora ("Justin M. Forbes") +- Fix update_scripts.sh unselective pattern sub (David Howells) +- Updated changelog for the release based on b0c3ba31be3e ("CKI@GitLab") +- Drop the static path configuration for the Sphinx docs (Jeremy Cline) +- Sign off generated configuration patches (Jeremy Cline) +- Use __make macro instead of make (Tom Stellard) +- redhat/configs: Enable CONFIG_SMC91X and disable CONFIG_SMC911X (Prarit Bhargava) [http://bugzilla.redhat.com/1722136] + +* Thu May 28 2020 CKI@GitLab [5.7.0-0.rc7.20200528gitb0c3ba31be3e.1] +- b0c3ba31be3e rebase +- Updated changelog for the release based on 444fc5cde643 ("CKI@GitLab") + +* Wed May 27 2020 CKI@GitLab [5.7.0-0.rc7.20200527git444fc5cde643.1] +- 444fc5cde643 rebase +- platform/x86: sony-laptop: SNC calls should handle BUFFER types (Mattia Dongili) +- virt: vbox: Log unknown ioctl requests as error (Hans de Goede) +- virt: vbox: Add a few new vmmdev request types to the userspace whitelist (Hans de Goede) +- virt: vbox: Add support for the new VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl (Hans de Goede) +- virt: vbox: Add vbg_set_host_capabilities() helper function (Hans de Goede) +- virt: vbox: Rename guest_caps struct members to set_guest_caps (Hans de Goede) +- virt: vbox: Fix guest capabilities mask check (Hans de Goede) +- virt: vbox: Fix VBGL_IOCTL_VMMDEV_REQUEST_BIG and _LOG req numbers to match upstream (Hans de Goede) +- kms/nv50-: Share DP SST mode_valid() handling with MST (Lyude Paul) +- kms/nv50-: Move 8BPC limit for MST into nv50_mstc_get_modes() (Lyude Paul) +- kms/gv100-: Add support for interlaced modes (Lyude Paul) +- kms/nv50-: Probe SOR and PIOR caps for DP interlacing support (Lyude Paul) +- kms/nv50-: Initialize core channel in nouveau_display_create() (Lyude Paul) +- disp/hda/gv100-: NV_PDISP_SF_AUDIO_CNTRL0 register moved (Ben Skeggs) +- disp/hda/gf119-: select HDA device entry based on bound head (Ben Skeggs) +- disp/hda/gf119-: add HAL for programming device entry in SF (Ben Skeggs) +- disp/hda/gt215-: pass head to nvkm_ior.hda.eld() (Ben Skeggs) +- disp/nv50-: increase timeout on pio channel free() polling (Ben Skeggs) +- kms: Fix regression by audio component transition (Takashi Iwai) +- device: use regular PRI accessors in chipset detection (Ben Skeggs) +- device: detect vGPUs (Karol Herbst) +- device: detect if changing endianness failed (Karol Herbst) +- device: rework mmio mapping code to get rid of second map (Karol Herbst) +- mmu: Remove unneeded semicolon (Zheng Bin) +- drm: Use generic helper to check _PR3 presence (Kai-Heng Feng) +- acr: Use kmemdup instead of kmalloc and memcpy (Zou Wei) +- core/memory: remove redundant assignments to variable ret (Colin Ian King) +- disp/gv100-: expose capabilities class (Ben Skeggs) +- Remove typoed config file aarch64CONFIG_SM_GCC_8150 ("Justin M. Forbes") +- Updated changelog for the release based on v5.7-rc7 ("CKI@GitLab") +- redhat: Add dummy-module kernel module (Prarit Bhargava) +- redhat: enable CONFIG_LWTUNNEL_BPF (Jiri Benc) + +* Mon May 25 2020 CKI@GitLab [5.7.0-0.rc7.1] +- v5.7-rc7 rebase +- Updated changelog for the release based on caffb99b6929 ("CKI@GitLab") + +* Sun May 24 2020 CKI@GitLab [5.7.0-0.rc6.20200524gitcaffb99b6929.1] +- caffb99b6929 rebase +- Updated changelog for the release based on 444565650a5f ("CKI@GitLab") + +* Sat May 23 2020 CKI@GitLab [5.7.0-0.rc6.20200523git444565650a5f.1] +- 444565650a5f rebase +- x86: Fix compile issues with rh_check_supported() (Don Zickus) +- redhat/Makefile: Fix RHEL8 python warning (Prarit Bhargava) +- kernel.spec: fix 'make scripts' for kernel-devel package (Brian Masney) +- Makefile: correct help text for dist-cross--rpms (Brian Masney) +- Add Documentation back to kernel-devel as it has Kconfig now ("Justin M. Forbes") +- Updated changelog for the release based on 642b151f45dd ("CKI@GitLab") +- redhat: Change Makefile target names to dist- (Prarit Bhargava) +- configs: Disable Serial IR driver (Prarit Bhargava) + +* Tue May 19 2020 CKI@GitLab [5.7.0-0.rc6.20200519git642b151f45dd.1] +- 642b151f45dd rebase +- pwm: lpss: Fix get_state runtime-pm reference handling (Hans de Goede) +- Updated changelog for the release based on v5.7-rc6 ("CKI@GitLab") + +* Mon May 18 2020 CKI@GitLab [5.7.0-0.rc6.1] +- v5.7-rc6 rebase +- Updated changelog for the release based on 3d1c1e5931ce ("CKI@GitLab") + +* Sun May 17 2020 CKI@GitLab [5.7.0-0.rc5.20200517git3d1c1e5931ce.1] +- 3d1c1e5931ce rebase +- Updated changelog for the release based on 12bf0b632ed0 ("CKI@GitLab") + +* Sat May 16 2020 CKI@GitLab [5.7.0-0.rc5.20200516git12bf0b632ed0.1] +- 12bf0b632ed0 rebase +- Updated changelog for the release based on 1ae7efb38854 ("CKI@GitLab") + +* Fri May 15 2020 CKI@GitLab [5.7.0-0.rc5.20200515git1ae7efb38854.1] +- 1ae7efb38854 rebase +- Updated changelog for the release based on 24085f70a6e1 ("CKI@GitLab") + +* Wed May 13 2020 CKI@GitLab [5.7.0-0.rc5.20200513git24085f70a6e1.1] +- 24085f70a6e1 rebase +- Updated changelog for the release based on 152036d1379f ("CKI@GitLab") + +* Tue May 12 2020 CKI@GitLab [5.7.0-0.rc5.20200512git152036d1379f.1] +- 152036d1379f rebase +- Updated changelog for the release based on v5.7-rc5 ("CKI@GitLab") +- Fix "multiple files for package kernel-tools" (Pablo Greco) + +* Mon May 11 2020 CKI@GitLab [5.7.0-0.rc5.1] +- v5.7-rc5 rebase +- Updated changelog for the release based on e99332e7b4cd ("CKI@GitLab") + +* Sun May 10 2020 CKI@GitLab [5.7.0-0.rc4.20200510gite99332e7b4cd.1] +- e99332e7b4cd rebase +- Updated changelog for the release based on d5eeab8d7e26 ("CKI@GitLab") + +* Sat May 09 2020 CKI@GitLab [5.7.0-0.rc4.20200509gitd5eeab8d7e26.1] +- d5eeab8d7e26 rebase +- Add zero-commit to format-patch options ("Justin M. Forbes") +- Updated changelog for the release based on 79dede78c057 ("CKI@GitLab") +- Introduce a Sphinx documentation project (Jeremy Cline) + +* Fri May 08 2020 CKI@GitLab [5.7.0-0.rc4.20200508git79dede78c057.1] +- 79dede78c057 rebase +- Updated changelog for the release based on a811c1fa0a02 ("CKI@GitLab") + +* Thu May 07 2020 CKI@GitLab [5.7.0-0.rc4.20200507gita811c1fa0a02.1] +- a811c1fa0a02 rebase +- perf cs-etm: Move defined of traceid_list (Leo Yan) +- Updated changelog for the release based on dc56c5acd850 ("CKI@GitLab") + +* Wed May 06 2020 CKI@GitLab [5.7.0-0.rc4.20200506gitdc56c5acd850.1] +- dc56c5acd850 rebase +- Updated changelog for the release based on 47cf1b422e60 ("CKI@GitLab") + +* Tue May 05 2020 CKI@GitLab [5.7.0-0.rc4.20200505git47cf1b422e60.1] +- 47cf1b422e60 rebase +- Build ARK against ELN (Don Zickus) +- Updated changelog for the release based on v5.7-rc4 ("CKI@GitLab") + +* Mon May 04 2020 CKI@GitLab [5.7.0-0.rc4.1] +- v5.7-rc4 rebase +- Updated changelog for the release based on f66ed1ebbfde ("CKI@GitLab") + +* Sun May 03 2020 CKI@GitLab [5.7.0-0.rc3.20200503gitf66ed1ebbfde.1] +- f66ed1ebbfde rebase +- Updated changelog for the release based on 690e2aba7beb ("CKI@GitLab") + +* Sat May 02 2020 CKI@GitLab [5.7.0-0.rc3.20200502git690e2aba7beb.1] +- 690e2aba7beb rebase +- Updated changelog for the release based on c45e8bccecaf ("CKI@GitLab") +- Drop the requirement to have a remote called linus (Jeremy Cline) +- Rename 'internal' branch to 'os-build' (Don Zickus) + +* Fri May 01 2020 CKI@GitLab [5.7.0-0.rc3.20200501gitc45e8bccecaf.1] +- c45e8bccecaf rebase +- Updated changelog for the release based on 1d2cc5ac6f66 ("CKI@GitLab") + +* Wed Apr 29 2020 CKI@GitLab [5.7.0-0.rc3.20200429git1d2cc5ac6f66.1] +- 1d2cc5ac6f66 rebase +- Add cec to the filter overrides ("Justin M. Forbes") +- Add overrides to filter-modules.sh ("Justin M. Forbes") +- Copy Makefile.rhelver as a source file rather than a patch (Jeremy Cline) +- Move the sed to clear the patch templating outside of conditionals ("Justin M. Forbes") +- Only include open merge requests with "Include in Releases" label (Jeremy Cline) +- Exit non-zero if the tag already exists for a release (Jeremy Cline) +- Adjust the changelog update script to not push anything (Jeremy Cline) +- Drop --target noarch from the rh-rpms make target (Jeremy Cline) + +* Fri Apr 24 2020 CKI@GitLab [5.7.0-0.rc2.20200424gitb4f633221f0a.1] +- b4f633221f0a rebase + +* Thu Apr 23 2020 CKI@GitLab [5.7.0-0.rc2.20200423git7adc4b399952.1] +- 7adc4b399952 rebase +- Match template format in kernel.spec.template ("Justin M. Forbes") +- Break out the Patches into individual files for dist-git ("Justin M. Forbes") +- Break the Red Hat patch into individual commits (Jeremy Cline) +- Adjust module filtering so CONFIG_DRM_DP_CEC can be set (Jeremy Cline) +- Add a script to generate release tags and branches (Jeremy Cline) +- Set CONFIG_VDPA for fedora ("Justin M. Forbes") +- Provide defaults in ark-rebase-patches.sh (Jeremy Cline) +- Default ark-rebase-patches.sh to not report issues (Jeremy Cline) + +* Mon Apr 20 2020 Jeremy Cline [5.7.0-0.rc2.2] +- Package gpio-watch in kernel-tools (Jeremy Cline) + +* Mon Apr 20 2020 Jeremy Cline [5.7.0-0.rc2.1] +- v5.7-rc2 rebase +- Add a README to the dist-git repository (Jeremy Cline) +- Copy distro files rather than moving them (Jeremy Cline) +- Drop DIST from release commits and tags (Jeremy Cline) +- Place the buildid before the dist in the release (Jeremy Cline) +- Sync up with Fedora arm configuration prior to merging (Jeremy Cline) +- Disable CONFIG_PROTECTED_VIRTUALIZATION_GUEST for zfcpdump (Jeremy Cline) + +* Tue Apr 14 2020 Jeremy Cline [5.7.0-0.rc1.3.fc33] +- Include bpftool-struct_ops man page in the bpftool package (Jeremy Cline) + +* Mon Apr 13 2020 Jeremy Cline [5.7.0-0.rc1.2.fc33] +- Add sharedbuffer_configuration.py to the pathfix.py script (Jeremy Cline) + +* Mon Apr 13 2020 Jeremy Cline [5.7.0-0.rc1.1.fc33] +- v5.7-rc1 rebase +- tty/sysrq: Export sysrq_mask() (Dmitry Safonov) +- e1000e: bump up timeout to wait when ME un-configure ULP mode (Aaron Ma) +- Drop RH_FEDORA in favor of the now-merged RHEL_DIFFERENCES (Jeremy Cline) +- Sync up Fedora configs from the first week of the merge window (Jeremy Cline) +- Add a script to test if all commits are signed off (Jeremy Cline) +- Fix a painfully obvious YAML syntax error in .gitlab-ci.yml (Jeremy Cline) +- Migrate blacklisting floppy.ko to mod-blacklist.sh (Don Zickus) +- kernel packaging: Combine mod-blacklist.sh and mod-extra-blacklist.sh (Don Zickus) +- kernel packaging: Fix extra namespace collision (Don Zickus) +- mod-extra.sh: Rename to mod-blacklist.sh (Don Zickus) +- mod-extra.sh: Make file generic (Don Zickus) +- Fix make rh-configs-arch (Don Zickus) +- Add in armv7hl kernel header support (Don Zickus) +- Disable all BuildKernel commands when only building headers (Don Zickus) +- Add RHMAINTAINERS file and supporting conf (Don Zickus) + +* Mon Mar 30 2020 Jeremy Cline [5.6.0-0.rc7.1.elrdy] +- v5.6-rc7 rebase +- Drop any gitlab-ci patches from ark-patches (Jeremy Cline) +- Build the srpm for internal branch CI using the vanilla tree (Jeremy Cline) +- arm64: allwinner: dts: a64: add LCD-related device nodes for PinePhone (Icenowy Zheng) +- drm/sun4i: sun6i_mipi_dsi: fix horizontal timing calculation (Icenowy Zheng) +- drm: panel: add Xingbangda XBD599 panel (Icenowy Zheng) +- dt-bindings: panel: add binding for Xingbangda XBD599 panel (Icenowy Zheng) +- Pull in the latest ARM configurations for Fedora (Jeremy Cline) +- USB: pci-quirks: Add Raspberry Pi 4 quirk (Nicolas Saenz Julienne) +- PCI: brcmstb: Wait for Raspberry Pi's firmware when present (Nicolas Saenz Julienne) +- firmware: raspberrypi: Introduce vl805 init routine (Nicolas Saenz Julienne) +- soc: bcm2835: Sync xHCI reset firmware property with downstream (Nicolas Saenz Julienne) +- drm/i915: Force DPCD backlight mode for some Dell CML 2020 panels (Lyude Paul) +- drm/i915: Force DPCD backlight mode on X1 Extreme 2nd Gen 4K AMOLED panel (Lyude Paul) +- drm/dp: Introduce EDID-based quirks (Lyude Paul) +- drm/i915: Auto detect DPCD backlight support by default (Lyude Paul) +- drm/i915: Fix DPCD register order in intel_dp_aux_enable_backlight() (Lyude Paul) +- drm/i915: Assume 100 brightness when not in DPCD control mode (Lyude Paul) +- drm/i915: Fix eDP DPCD aux max backlight calculations (Lyude Paul) +- drm/dp_mst: Fix drm_dp_check_mstb_guid() return code (Lyude Paul) +- drm/dp_mst: Make drm_dp_mst_dpcd_write() consistent with drm_dp_dpcd_write() (Lyude Paul) +- drm/dp_mst: Fix W=1 warnings (Benjamin Gaignard) +- ARM: fix __get_user_check() in case uaccess_* calls are not inlined (Masahiro Yamada) +- mm/kmemleak: skip late_init if not skip disable (Murphy Zhou) +- KEYS: Make use of platform keyring for module signature verify (Robert Holmes) +- Drop that for now (Laura Abbott) +- Input: rmi4 - remove the need for artificial IRQ in case of HID (Benjamin Tissoires) +- arm64: dts: rockchip: Add initial support for Pinebook Pro (Tobias Schramm) +- dt-bindings: Add doc for Pine64 Pinebook Pro (Emmanuel Vadot) +- arm64: dts: allwinner: Add initial support for Pine64 PinePhone (Ondrej Jirman) +- dt-bindings: arm: sunxi: Add PinePhone 1.0 and 1.1 bindings (Ondrej Jirman) +- arm64: dts: sun50i-a64: Add i2c2 pins (Ondrej Jirman) +- arm64: dts: allwinner: a64: add support for PineTab (Icenowy Zheng) +- dt-bindings: arm: sunxi: add binding for PineTab tablet (Icenowy Zheng) +- arm64: allwinner: a64: enable LCD-related hardware for Pinebook (Icenowy Zheng) +- drm/panel: simple: Add NewEast Optoelectronics CO., LTD WJFH116008A panel support (Vasily Khoruzhick) +- dt-bindings: display: simple: Add NewEast Optoelectronics WJFH116008A compatible (Vasily Khoruzhick) +- dt-bindings: Add Guangdong Neweast Optoelectronics CO. LTD vendor prefix (Vasily Khoruzhick) +- drm/bridge: anx6345: don't print error message if regulator is not ready (Vasily Khoruzhick) +- drm/bridge: anx6345: Fix getting anx6345 regulators (Samuel Holland) +- arm64: dts: allwinner: a64: Add MBUS controller node (Jernej Skrabec) +- dt-bindings: interconnect: sunxi: Add A64 MBUS compatible (Jernej Skrabec) +- arm64: dts: allwinner: pinebook: Remove unused AXP803 regulators (Samuel Holland) +- arm64: dts: allwinner: pinebook: Fix 5v0 boost regulator (Samuel Holland) +- arm64: dts: allwinner: pinebook: Fix backlight regulator (Samuel Holland) +- arm64: dts: allwinner: pinebook: Add GPIO port regulators (Samuel Holland) +- arm64: dts: allwinner: pinebook: Document MMC0 CD pin name (Samuel Holland) +- arm64: dts: allwinner: pinebook: Make simplefb more consistent (Samuel Holland) +- arm64: dts: allwinner: pinebook: Sort device tree nodes (Samuel Holland) +- arm64: dts: allwinner: pinebook: Remove unused vcc3v3 regulator (Samuel Holland) +- arm64: dts: imx8mq-phanbell: Add support for ethernet (Alifer Moraes) +- backlight: lp855x: Ensure regulators are disabled on probe failure (Jon Hunter) +- regulator: pwm: Don't warn on probe deferral (Jon Hunter) +- ARM64: tegra: Fix Tegra194 PCIe compatible string ("Signed-off-by: Jon Hunter") +- serial: 8250_tegra: Create Tegra specific 8250 driver (Jeff Brasen) +- ARM64: tegra: Populate LP8557 backlight regulator (Jon Hunter) +- ARM64: tegra: Fix Tegra186 SOR supply (Jon Hunter) +- ARM64: tegra: Add EEPROM supplies (Jon Hunter) +- ARM64: Tegra: Enable I2C controller for EEPROM (Jon Hunter) +- ARM: dts: bcm2711: Move emmc2 into its own bus (Nicolas Saenz Julienne) +- irqchip/bcm2835: Quiesce IRQs left enabled by bootloader (Lukas Wunner) +- ARM: dts: bcm2711-rpi-4-b: Add SoC GPIO labels (Stefan Wahren) +- pinctrl: bcm2835: Add support for all GPIOs on BCM2711 (Stefan Wahren) +- pinctrl: bcm2835: Refactor platform data (Stefan Wahren) +- pinctrl: bcm2835: Drop unused define (Stefan Wahren) +- ARM: tegra: usb no reset (Peter Robinson) +- arm: make CONFIG_HIGHPTE optional without CONFIG_EXPERT (Jon Masters) +- Revert "Add a SysRq option to lift kernel lockdown" (Jeremy Cline) +- Fix xz memory usage issue (Neil Horman) +- Use ark-latest instead of master for update script (Jeremy Cline) +- Move the CI jobs back into the ARK repository (Jeremy Cline) +- Revert "[redhat] Apply a second patch set in Fedora build roots" (Jeremy Cline) +- Sync up ARK's Fedora config with the dist-git repository (Jeremy Cline) + +* Mon Mar 09 2020 Jeremy Cline [5.6.0-0.rc5.1.elrdy] +- v5.6-rc5 rebase +- Pull in the latest configuration changes from Fedora (Jeremy Cline) +- configs: enable CONFIG_NET_SCH_CBS (Marcelo Ricardo Leitner) + +* Fri Mar 06 2020 Jeremy Cline [5.6.0-0.rc4.2.elrdy] +- Disable CONFIG_DRM_DP_CEC temporarily (Jeremy Cline) + +* Fri Mar 06 2020 Jeremy Cline [5.6.0-0.rc4.1.elrdy] +- v5.6-rc4 rebase +- redhat: rh_kabi: deduplication friendly structs (Jiri Benc) +- redhat: rh_kabi add a comment with warning about RH_KABI_EXCLUDE usage (Jiri Benc) +- redhat: rh_kabi: introduce RH_KABI_EXTEND_WITH_SIZE (Jiri Benc) +- redhat: rh_kabi: Indirect EXTEND macros so nesting of other macros will resolve. (Don Dutile) +- redhat: rh_kabi: Fix RH_KABI_SET_SIZE to use dereference operator (Tony Camuso) +- redhat: rh_kabi: Add macros to size and extend structs (Prarit Bhargava) +- mptsas: pci-id table changes (Laura Abbott) +- mptsas: Taint kernel if mptsas is loaded (Laura Abbott) +- mptspi: pci-id table changes (Laura Abbott) +- mptspi: Taint kernel if mptspi is loaded (Laura Abbott) +- kernel: add SUPPORT_REMOVED kernel taint (Tomas Henzl) [1602033] +- Rename RH_DISABLE_DEPRECATED to RHEL_DIFFERENCES (Don Zickus) +- Revert "Drop references to SCSI PCI IDs we remove" (Don Zickus) +- Revert "mpt*: remove certain deprecated pci-ids" (Don Zickus) +- Revert "megaraid_sas: remove deprecated pci-ids" (Don Zickus) +- Revert "aacraid: Remove depreciated device and vendor PCI id's" (Don Zickus) +- Revert "qla4xxx: Remove deprecated PCI IDs from RHEL 8" (Don Zickus) +- Revert "hpsa: remove old cciss-based smartarray pci ids" (Don Zickus) +- Revert "hpsa: modify hpsa driver version" (Don Zickus) +- Revert "Removing Obsolete hba pci-ids from rhel8" (Don Zickus) +- Revert "be2iscsi: remove unsupported device IDs" (Don Zickus) +- Revert "be2iscsi: remove BE3 family support" (Don Zickus) +- Revert "qla2xxx: Remove PCI IDs of deprecated adapter" (Don Zickus) +- Drop configuration options in fedora/ that no longer exist (Jeremy Cline) +- Set RH_FEDORA for ARK and Fedora (Jeremy Cline) +- Add option of 13 for FORCE_MAX_ZONEORDER (Peter Robinson) +- Introduce RH_FEDORA config for Fedora-specific patches (Jeremy Cline) +- redhat/kernel.spec: Include the release in the kernel COPYING file (Jeremy Cline) + +* Mon Feb 17 2020 Jeremy Cline [5.6.0-0.rc2.2.elrdy] +- Disable CONFIG_DRM_DP_CEC temporarily (Jeremy Cline) +- Drop references to SCSI PCI IDs we remove (Jeremy Cline) + +* Mon Feb 17 2020 Jeremy Cline [5.6.0-0.rc2.1.elrdy] +- v5.6-rc2 rebase +- redhat/kernel.spec: add scripts/jobserver-exec to py3_shbang_opts list (Jeremy Cline) +- redhat/kernel.spec: package bpftool-gen man page (Jeremy Cline) + +* Thu Feb 13 2020 Jeremy Cline [5.6.0-0.rc1.4.elrdy] +- Package bpftool-gen man page (Jeremy Cline) + +* Thu Feb 13 2020 Jeremy Cline [5.6.0-0.rc1.3.elrdy] +- Used Python 3 for scripts/jobserver-exec (Jeremy Cline) + +* Wed Feb 12 2020 Jeremy Cline [5.6.0-0.rc1.2.elrdy] +- Disable CONFIG_DRM_DP_CEC temporarily (Jeremy Cline) + +* Wed Feb 12 2020 Jeremy Cline [5.6.0-0.rc1.1.elrdy] +- v5.6-rc1 rebase +- Fix up the EFI secureboot rebase (Jeremy Cline) +- distgit-changelog: handle multiple y-stream BZ numbers (Bruno Meneguele) +- redhat/kernel.spec: remove all inline comments (Bruno Meneguele) +- redhat/genspec: awk unknown whitespace regex pattern (Bruno Meneguele) +- Improve the readability of gen_config_patches.sh (Jeremy Cline) +- Fix some awkward edge cases in gen_config_patches.sh (Jeremy Cline) +- Updated changelog (Jeremy Cline) +- Update the CI environment to use Fedora 31 (Jeremy Cline) + +* Tue Jan 28 2020 Jeremy Cline [5.5.0-1.elrdy] +- v5.5 rebase +- Revert "Turn off CONFIG_AX25" (Laura Abbott) + +* Thu Jan 23 2020 Jeremy Cline [5.5.0-0.rc7.1.elrdy] +- v5.5-rc7 rebase + +* Wed Jan 15 2020 Jeremy Cline [5.5.0-0.rc6.1.elrdy] +- v5.5-rc6 rebase +- s390: Lock down the kernel when the IPL secure flag is set (Jeremy Cline) +- configs: Enable CONFIG_KEY_DH_OPERATIONS on ARK (Ondrej Mosnacek) +- redhat: drop whitespace from with_gcov macro (Jan Stancek) [INTERNAL] + +* Mon Jan 06 2020 Jeremy Cline [5.5.0-0.rc5.1.elrdy] +- v5.5-rc5 rebase + +* Mon Jan 06 2020 Jeremy Cline [5.5.0-0.rc4.1.elrdy] +- v5.5-rc4 rebase + +* Fri Jan 03 2020 Jeremy Cline [5.5.0-0.rc3.1.elrdy] +- v5.5-rc3 rebase +- Turn on BLAKE2B for Fedora (Jeremy Cline) +- configs: Adjust CONFIG_MPLS_ROUTING and CONFIG_MPLS_IPTUNNEL (Laura Abbott) +- New configs in lib/crypto (Jeremy Cline) +- New configs in drivers/char (Jeremy Cline) + +* Fri Jan 03 2020 Jeremy Cline [5.5.0-0.rc2.1.elrdy] +- v5.5-rc2 rebase +- Convert pr_warning to pr_warn in secureboot.c (Jeremy Cline) +- Enable CRYPTO_BLAKE2B as its being selected automatically (Jeremy Cline) +- kernel.spec.template: Clean up stray *.h.s files (Laura Abbott) +- Build the SRPM in the CI job (Jeremy Cline) +- Fix up released_kernel case (Laura Abbott) +- Add label so the Gitlab to email bridge ignores the changelog (Jeremy Cline) +- New configs in net/tls (Jeremy Cline) +- New configs in net/tipc (Jeremy Cline) +- New configs in lib/kunit (Jeremy Cline) +- New configs in lib/Kconfig.debug (Jeremy Cline) +- New configs in drivers/ptp (Jeremy Cline) +- New configs in drivers/nvme (Jeremy Cline) +- New configs in drivers/net/phy (Jeremy Cline) +- New configs in drivers/crypto (Jeremy Cline) +- New configs in crypto/Kconfig (Jeremy Cline) +- New configs in arch/arm64 (Jeremy Cline) + +* Fri Dec 13 2019 Jeremy Cline [5.5.0-0.rc1.1.elrdy] +- v5.5-rc1 rebase +- Used Python 3 for scripts/jobserver-exec (Jeremy Cline) +- Drop references to SCSI PCI IDs we remove (Jeremy Cline) +- Disable documentation build, it is broken. (Jeremy Cline) +- Temporarily switch TUNE_DEFAULT to y (Jeremy Cline) +- Run config test for merge requests and internal (Jeremy Cline) +- Turn off CONFIG_AX25 (Laura Abbott) +- Add missing licensedir line (Laura Abbott) + +* Tue Nov 26 2019 Jeremy Cline [5.4.0-1.elrdy] +- v5.4 rebase +- redhat/scripts: Remove redhat/scripts/rh_get_maintainer.pl (Prarit Bhargava) +- configs: Take CONFIG_DEFAULT_MMAP_MIN_ADDR from Fedra (Laura Abbott) +- configs: Turn off ISDN (Laura Abbott) +- kernel-packaging: Remove kernel files from kernel-modules-extra package (Prarit Bhargava) +- Add a script to generate configuration patches (Laura Abbott) +- Introduce rh-configs-commit (Laura Abbott) + +* Fri Nov 22 2019 Jeremy Cline [5.4.0-0.rc8.1.elrdy] +- v5.4-rc8 rebase +- kconfig: Add option to get the full help text with listnewconfig (Laura Abbott) +- configs: Enable CONFIG_DEBUG_WX (Laura Abbott) +- configs: Disable wireless USB (Laura Abbott) +- Clean up some temporary config files (Laura Abbott) +- configs: New config in drivers/gpu for v5.4-rc1 (Jeremy Cline) +- configs: New config in arch/powerpc for v5.4-rc1 (Jeremy Cline) +- configs: New config in crypto for v5.4-rc1 (Jeremy Cline) +- configs: New config in drivers/usb for v5.4-rc1 (Jeremy Cline) +- AUTOMATIC: New configs (Jeremy Cline) + +* Wed Nov 13 2019 Jeremy Cline [5.4.0-0.rc7.1.elrdy] +- v5.4-rc7 rebase +- Temporarily add VBOXSF_FS config (Jeremy Cline) +- Add support for deprecating processors (Laura Abbott) +- Add Red Hat tainting (Laura Abbott) +- Introduce CONFIG_RH_DISABLE_DEPRECATED (Laura Abbott) +- configs: New config in fs/erofs for v5.4-rc1 (Jeremy Cline) +- configs: New config in mm for v5.4-rc1 (Jeremy Cline) +- configs: New config in drivers/md for v5.4-rc1 (Jeremy Cline) +- configs: New config in init for v5.4-rc1 (Jeremy Cline) + +* Wed Nov 06 2019 Jeremy Cline [5.4.0-0.rc6.2.elrdy] +- v5.4-rc6 rebase +- iommu/arm-smmu: workaround DMA mode issues (Laura Abbott) +- rh_taint: correct loaddable module support dependencies (Philipp Rudo) [1652266] +- rh_kabi: introduce RH_KABI_EXCLUDE (Jakub Racek) [1652256] +- mark intel knights landing and knights mill unsupported (David Arcari) [1610493] +- mark whiskey-lake processor supported (David Arcari) [1609604] +- ipmi: do not configure ipmi for HPE m400 (Laura Abbott) [https://bugzilla.redhat.com/show_bug.cgi?id=1670017] +- IB/rxe: Mark Soft-RoCE Transport driver as tech-preview (Don Dutile) [1605216] +- scsi: smartpqi: add inspur advantech ids (Don Brace) [1503736] +- ice: mark driver as tech-preview (Jonathan Toppins) [1495347] +- be2iscsi: remove BE3 family support (Maurizio Lombardi) [1598366] +- update rh_check_supported processor list (David Arcari) [1595918] +- kABI: Add generic kABI macros to use for kABI workarounds (Myron Stowe) [1546831] +- add pci_hw_vendor_status() (Maurizio Lombardi) [1590829] +- ahci: thunderx2: Fix for errata that affects stop engine (Robert Richter) [1563590] +- Vulcan: AHCI PCI bar fix for Broadcom Vulcan early silicon (Robert Richter) [1563590] +- bpf: Add tech preview taint for syscall (Eugene Syromiatnikov) [1559877] +- bpf: set unprivileged_bpf_disabled to 1 by default, add a boot parameter (Eugene Syromiatnikov) [1561171] +- add Red Hat-specific taint flags (Eugene Syromiatnikov) [1559877] +- kdump: fix a grammar issue in a kernel message (Dave Young) [1507353] +- tags.sh: Ignore redhat/rpm (Jeremy Cline) +- put RHEL info into generated headers (Laura Abbott) [https://bugzilla.redhat.com/show_bug.cgi?id=1663728] +- kdump: add support for crashkernel=auto (Jeremy Cline) +- kdump: round up the total memory size to 128M for crashkernel reservation (Dave Young) [1507353] +- acpi: prefer booting with ACPI over DTS (Mark Salter) [1576869] +- aarch64: acpi scan: Fix regression related to X-Gene UARTs (Mark Salter) [1519554] +- ACPI / irq: Workaround firmware issue on X-Gene based m400 (Mark Salter) [1519554] +- add rh_check_supported (David Arcari) [1565717] +- qla2xxx: Remove PCI IDs of deprecated adapter (Jeremy Cline) +- be2iscsi: remove unsupported device IDs (Chris Leech) [1574502] +- Removing Obsolete hba pci-ids from rhel8 (Dick Kennedy) [1572321] +- hpsa: modify hpsa driver version (Jeremy Cline) +- hpsa: remove old cciss-based smartarray pci ids (Joseph Szczypek) [1471185] +- rh_taint: add support for marking driver as unsupported (Jonathan Toppins) [1565704] +- rh_taint: add support (David Arcari) [1565704] +- qla4xxx: Remove deprecated PCI IDs from RHEL 8 (Chad Dupuis) [1518874] +- aacraid: Remove depreciated device and vendor PCI id's (Raghava Aditya Renukunta) [1495307] +- megaraid_sas: remove deprecated pci-ids (Tomas Henzl) [1509329] +- mpt*: remove certain deprecated pci-ids (Jeremy Cline) +- modules: add rhelversion MODULE_INFO tag (Laura Abbott) +- ACPI: APEI: arm64: Ignore broken HPE moonshot APEI support (Al Stone) [1518076] +- configs: New config in fs/fuse for v5.4-rc1 (Jeremy Cline) +- merge.pl: Avoid comments but do not skip them (Don Zickus) +- configs: New config in drivers/net/ethernet/pensando for v5.4-rc1 (Jeremy Cline) +- Update a comment about what released kernel means (Laura Abbott) +- Provide both Fedora and RHEL files in the SRPM (Laura Abbott) +- kernel.spec.template: Trim EXTRAVERSION in the Makefile (Laura Abbott) +- kernel.spec.template: Add macros for building with nopatches (Laura Abbott) +- kernel.spec.template: Add some macros for Fedora differences (Laura Abbott) +- kernel.spec.template: Consolodate the options (Laura Abbott) +- configs: Add pending direcory to Fedora (Laura Abbott) +- kernel.spec.template: Don't run hardlink if rpm-ostree is in use (Laura Abbott) +- configs: New config in net/can for v5.4-rc1 (Jeremy Cline) +- configs: New config in drivers/net/phy for v5.4-rc1 (Jeremy Cline) +- Updated changelog ("CKI@GitLab") + +* Mon Oct 28 2019 Jeremy Cline [5.4.0-0.rc5.1.elrdy] +- v5.4-rc5 rebase +- arm: aarch64: Drop the EXPERT setting from ARM64_FORCE_52BIT (Jeremy Cline) +- configs: turn on ARM64_FORCE_52BIT for debug builds (Jeremy Cline) +- kernel.spec.template: Tweak the python3 mangling (Laura Abbott) +- kernel.spec.template: Add --with verbose option (Laura Abbott) +- kernel.spec.template: Switch to using install instead of __install (Laura Abbott) +- kernel.spec.template: Make the kernel.org URL https (Laura Abbott) +- kernel.spec.template: Update message about secure boot signing (Laura Abbott) +- kernel.spec.template: Move some with flags definitions up (Laura Abbott) +- kernel.spec.template: Update some BuildRequires (Laura Abbott) +- kernel.spec.template: Get rid of clean (Laura Abbott) +- configs: New config in drivers/char for v5.4-rc1 (Jeremy Cline) +- configs: New config in net/sched for v5.4-rc1 (Jeremy Cline) +- configs: New config in lib for v5.4-rc1 (Jeremy Cline) +- configs: New config in fs/verity for v5.4-rc1 (Jeremy Cline) +- configs: New config in arch/aarch64 for v5.4-rc4 (Jeremy Cline) +- configs: New config in arch/arm64 for v5.4-rc1 (Jeremy Cline) +- Flip off CONFIG_ARM64_VA_BITS_52 so the bundle that turns it on applies (Jeremy Cline) +- configs: Increase x86_64 NR_UARTS to 64 (Prarit Bhargava) [http://bugzilla.redhat.com/1730649] +- Update changelog (Laura Abbott) +- New configuration options for v5.4-rc4 (Jeremy Cline) +- Correctly name tarball for single tarball builds (Laura Abbott) +- configs: New config in drivers/pci for v5.4-rc1 (Jeremy Cline) +- Allow overriding the dist tag on the command line (Laura Abbott) +- Allow scratch branch target to be overridden (Laura Abbott) +- Remove long dead BUILD_DEFAULT_TARGET (Laura Abbott) + +* Thu Oct 17 2019 Jeremy Cline [5.4.0-0.rc3.1.elrdy] +- v5.4-rc3 rebase +- Amend the changelog when rebasing (Laura Abbott) +- configs: New config in drivers/platform for v5.4-rc1 (Jeremy Cline) +- configs: New config in drivers/pinctrl for v5.4-rc1 (Jeremy Cline) +- configs: New config in drivers/net/wireless for v5.4-rc1 (Jeremy Cline) +- configs: New config in drivers/net/ethernet/mellanox for v5.4-rc1 (Jeremy Cline) +- configs: New config in drivers/net/can for v5.4-rc1 (Jeremy Cline) +- configs: New config in drivers/hid for v5.4-rc1 (Jeremy Cline) +- configs: New config in drivers/dma-buf for v5.4-rc1 (Jeremy Cline) +- configs: New config in block for v5.4-rc1 (Jeremy Cline) +- configs: New config in drivers/cpuidle for v5.4-rc1 (Jeremy Cline) +- redhat: configs: Split CONFIG_CRYPTO_SHA512 (Laura Abbott) +- redhat: Set Fedora options (Laura Abbott) + +* Wed Oct 09 2019 Jeremy Cline [5.4.0-0.rc2.1.elrdy] +- Skip ksamples for bpf, they are broken (Jeremy Cline) +- Add a SysRq option to lift kernel lockdown (Kyle McMartin) +- efi: Lock down the kernel if booted in secure boot mode (David Howells) +- efi: Add an EFI_SECURE_BOOT flag to indicate secure boot mode (David Howells) +- security: lockdown: expose a hook to lock the kernel down (Jeremy Cline) +- Make get_cert_list() use efi_status_to_str() to print error messages. (Peter Jones) +- Add efi_status_to_str() and rework efi_status_to_err(). (Peter Jones) +- Make get_cert_list() not complain about cert lists that aren't present. (Peter Jones) +- [iommu] iommu/arm-smmu: workaround DMA mode issues (Laura Abbott) +- [kernel] rh_taint: correct loaddable module support dependencies (Philipp Rudo) [1652266] +- [kernel] rh_kabi: introduce RH_KABI_EXCLUDE (Jakub Racek) [1652256] +- [x86] mark intel knights landing and knights mill unsupported (David Arcari) [1610493] +- [x86] mark whiskey-lake processor supported (David Arcari) [1609604] +- [char] ipmi: do not configure ipmi for HPE m400 (Laura Abbott) [https://bugzilla.redhat.com/show_bug.cgi?id=1670017] +- [infiniband] IB/rxe: Mark Soft-RoCE Transport driver as tech-preview (Don Dutile) [1605216] +- [scsi] scsi: smartpqi: add inspur advantech ids (Don Brace) [1503736] +- [netdrv] ice: mark driver as tech-preview (Jonathan Toppins) [1495347] +- [scsi] be2iscsi: remove BE3 family support (Maurizio Lombardi) [1598366] +- [x86] update rh_check_supported processor list (David Arcari) [1595918] +- [kernel] kABI: Add generic kABI macros to use for kABI workarounds (Myron Stowe) [1546831] +- [pci] add pci_hw_vendor_status() (Maurizio Lombardi) [1590829] +- [ata] ahci: thunderx2: Fix for errata that affects stop engine (Robert Richter) [1563590] +- [pci] Vulcan: AHCI PCI bar fix for Broadcom Vulcan early silicon (Robert Richter) [1563590] +- [kernel] bpf: Add tech preview taint for syscall (Eugene Syromiatnikov) [1559877] +- [kernel] bpf: set unprivileged_bpf_disabled to 1 by default, add a boot parameter (Eugene Syromiatnikov) [1561171] +- [kernel] add Red Hat-specific taint flags (Eugene Syromiatnikov) [1559877] +- [kernel] kdump: fix a grammar issue in a kernel message (Dave Young) [1507353] +- [scripts] tags.sh: Ignore redhat/rpm (Jeremy Cline) +- [kernel] put RHEL info into generated headers (Laura Abbott) [https://bugzilla.redhat.com/show_bug.cgi?id=1663728] +- [kernel] kdump: add support for crashkernel=auto (Jeremy Cline) +- [kernel] kdump: round up the total memory size to 128M for crashkernel reservation (Dave Young) [1507353] +- [arm64] acpi: prefer booting with ACPI over DTS (Mark Salter) [1576869] +- [acpi] aarch64: acpi scan: Fix regression related to X-Gene UARTs (Mark Salter) [1519554] +- [acpi] ACPI / irq: Workaround firmware issue on X-Gene based m400 (Mark Salter) [1519554] +- [x86] add rh_check_supported (David Arcari) [1565717] +- [scsi] qla2xxx: Remove PCI IDs of deprecated adapter (Jeremy Cline) +- [scsi] be2iscsi: remove unsupported device IDs (Chris Leech) [1574502] +- [scsi] Removing Obsolete hba pci-ids from rhel8 (Dick Kennedy) [1572321] +- [scsi] hpsa: modify hpsa driver version (Jeremy Cline) +- [scsi] hpsa: remove old cciss-based smartarray pci ids (Joseph Szczypek) [1471185] +- [kernel] rh_taint: add support for marking driver as unsupported (Jonathan Toppins) [1565704] +- [kernel] rh_taint: add support (David Arcari) [1565704] +- [scsi] qla4xxx: Remove deprecated PCI IDs from RHEL 8 (Chad Dupuis) [1518874] +- [scsi] aacraid: Remove depreciated device and vendor PCI id's (Raghava Aditya Renukunta) [1495307] +- [scsi] megaraid_sas: remove deprecated pci-ids (Tomas Henzl) [1509329] +- [scsi] mpt*: remove certain deprecated pci-ids (Jeremy Cline) +- [kernel] modules: add rhelversion MODULE_INFO tag (Laura Abbott) +- [acpi] ACPI: APEI: arm64: Ignore broken HPE moonshot APEI support (Al Stone) [1518076] +- gitlab: Add CI job for packaging scripts (Major Hayden) +- Set CRYPTO_SHA3_*_S390 to builtin on zfcpdump (Jeremy Cline) +- configs: New config in drivers/edac for v5.4-rc1 (Jeremy Cline) +- configs: New config in drivers/firmware for v5.4-rc1 (Jeremy Cline) +- configs: New config in drivers/hwmon for v5.4-rc1 (Jeremy Cline) +- configs: New config in drivers/iio for v5.4-rc1 (Jeremy Cline) +- configs: New config in drivers/mmc for v5.4-rc1 (Jeremy Cline) +- configs: New config in drivers/tty for v5.4-rc1 (Jeremy Cline) +- configs: New config in arch/s390 for v5.4-rc1 (Jeremy Cline) +- configs: New config in drivers/bus for v5.4-rc1 (Jeremy Cline) +- Add option to allow mismatched configs on the command line (Laura Abbott) +- configs: New config in drivers/crypto for v5.4-rc1 (Jeremy Cline) +- configs: New config in sound/pci for v5.4-rc1 (Jeremy Cline) +- configs: New config in sound/soc for v5.4-rc1 (Jeremy Cline) +- Speed up CI with CKI image (Major Hayden) +- configs: Fix the pending default for CONFIG_ARM64_VA_BITS_52 (Jeremy Cline) +- configs: Turn on OPTIMIZE_INLINING for everything (Jeremy Cline) +- configs: Set valid pending defaults for CRYPTO_ESSIV (Jeremy Cline) +- Add an initial CI configuration for the internal branch (Jeremy Cline) +- New drop of configuration options for v5.4-rc1 (Jeremy Cline) +- Disable e1000 driver in ARK (Neil Horman) +- New drop of configuration options for v5.4-rc1 (Jeremy Cline) +- configs: Adjust CONFIG_FORCE_MAX_ZONEORDER for Fedora (Laura Abbott) +- configs: Add README for some other arches (Laura Abbott) +- configs: Sync up Fedora configs (Laura Abbott) +- Pull the RHEL version defines out of the Makefile (Jeremy Cline) +- Sync up the ARK build scripts (Jeremy Cline) +- Sync up the Fedora Rawhide configs (Jeremy Cline) +- Sync up the ARK config files (Jeremy Cline) +- [initial commit] Add structure for building with git (Laura Abbott) +- [initial commit] Add Red Hat variables in the top level makefile (Laura Abbott) +- [initial commit] Red Hat gitignore and attributes (Laura Abbott) +- [initial commit] Add changelog (Laura Abbott) +- [initial commit] Add makefile (Laura Abbott) +- [initial commit] Add files for generating the kernel.spec (Laura Abbott) +- [initial commit] Add rpm directory (Laura Abbott) +- [initial commit] Add files for packaging (Laura Abbott) +- [initial commit] Add kabi files (Laura Abbott) +- [initial commit] Add scripts (Laura Abbott) +- [initial commit] Add configs (Laura Abbott) +- [initial commit] Add Makefiles (Laura Abbott) + +# The following bit is important for automation so please do not remove +# END OF CHANGELOG + +### +# The following Emacs magic makes C-c C-e use UTC dates. +# Local Variables: +# rpm-change-log-uses-utc: t +# End: +### diff --git a/linux-kernel-test.patch b/linux-kernel-test.patch new file mode 100644 index 000000000..e69de29bb diff --git a/merge.pl b/merge.pl new file mode 100755 index 000000000..dbaf5927b --- /dev/null +++ b/merge.pl @@ -0,0 +1,72 @@ +#! /usr/bin/perl + +my @args=@ARGV; +my %configvalues; +my @configoptions; +my $configcounter = 0; + +# optionally print out the architecture as the first line of our output +my $arch = $args[2]; +if (defined $arch) { + print "# $arch\n"; +} + +# first, read the override file + +open (FILE,"$args[0]") || die "Could not open $args[0]"; +while () { + my $str = $_; + my $configname; + + if (/\# ([\w]+) is not set/) { + $configname = $1; + } elsif (/^\#/) { + # fall through on comments like 'avoid CONFIG_FOO=y' + ; + } elsif (/([\w]+)=/) { + $configname = $1; + } + + if (defined($configname) && !exists($configvalues{$configname})) { + $configvalues{$configname} = $str; + $configoptions[$configcounter] = $configname; + $configcounter ++; + } +}; + +# now, read and output the entire configfile, except for the overridden +# parts... for those the new value is printed. + +open (FILE2,"$args[1]") || die "Could not open $args[1]"; +while () { + my $configname; + + if (/\# ([\w]+) is not set/) { + $configname = $1; + } elsif (/^\#/) { + # fall through on comments like 'avoid CONFIG_FOO=y' + ; + } elsif (/([\w]+)=/) { + $configname = $1; + } + + if (defined($configname) && exists($configvalues{$configname})) { + print "$configvalues{$configname}"; + delete($configvalues{$configname}); + } else { + print "$_"; + } +} + +# now print the new values from the overridden configfile +my $counter = 0; + +while ($counter < $configcounter) { + my $configname = $configoptions[$counter]; + if (exists($configvalues{$configname})) { + print "$configvalues{$configname}"; + } + $counter++; +} + +1; diff --git a/mod-blacklist.sh b/mod-blacklist.sh new file mode 100755 index 000000000..f2f801b5e --- /dev/null +++ b/mod-blacklist.sh @@ -0,0 +1,160 @@ +#! /bin/bash + +RpmDir=$1 +ModDir=$2 +Dir="$1/$2" +# Note the list filename must have the format mod-[PACKAGE].list, for example, +# mod-internal.list or mod-extra.list. The PACKAGE is used to create a +# override directory for the modules. +List=$3 +Dest="$4" + +blacklist() +{ + cat > "$RpmDir/etc/modprobe.d/$1-blacklist.conf" <<-__EOF__ + # This kernel module can be automatically loaded by non-root users. To + # enhance system security, the module is blacklisted by default to ensure + # system administrators make the module available for use as needed. + # See https://access.redhat.com/articles/3760101 for more details. + # + # Remove the blacklist by adding a comment # at the start of the line. + blacklist $1 +__EOF__ +} + +check_blacklist() +{ + mod=$(find $RpmDir/$ModDir -name "$1") + [ ! "$mod" ] && return 0 + if modinfo $mod | grep -q '^alias:\s\+net-'; then + mod="${1##*/}" + mod="${mod%.ko*}" + echo "$mod has an alias that allows auto-loading. Blacklisting." + blacklist "$mod" + fi +} + +find_depends() +{ + dep=$1 + depends=`modinfo $dep | sed -n -e "/^depends/ s/^depends:[ \t]*//p"` + [ -z "$depends" ] && exit + for mod in ${depends//,/ } + do + match=$(grep "^$mod.ko" "$ListName") + [ -z "$match" ] && continue + # check if the module we are looking at is in mod-* too. + # if so we do not need to mark the dep as required. + mod2=${dep##*/} # same as `basename $dep`, but faster + match2=$(grep "^$mod2" "$ListName") + if [ -n "$match2" ] + then + #echo $mod2 >> notreq.list + continue + fi + echo $mod.ko >> req.list + done +} + +foreachp() +{ + P=$(nproc) + bgcount=0 + while read mod; do + $1 "$mod" & + + bgcount=$((bgcount + 1)) + if [ $bgcount -eq $P ]; then + wait -n + bgcount=$((bgcount - 1)) + fi + done + + wait +} + +# Destination was specified on the command line +test -n "$4" && echo "$0: Override Destination $Dest has been specified." + +pushd $Dir + +OverrideDir=$(basename $List) +OverrideDir=${OverrideDir%.*} +OverrideDir=${OverrideDir#*-} +mkdir -p $OverrideDir + +rm -rf modnames +find . -name "*.ko" -type f > modnames +# Look through all of the modules, and throw any that have a dependency in +# our list into the list as well. +rm -rf dep.list dep2.list +rm -rf req.list req2.list +touch dep.list req.list +cp "$List" . + +# This variable needs to be exported because it is used in sub-script +# executed by xargs +export ListName=$(basename "$List") + +foreachp find_depends < modnames + +sort -u req.list > req2.list +sort -u "$ListName" > modules2.list +join -v 1 modules2.list req2.list > modules3.list + +for mod in $(cat modules3.list) +do + # get the path for the module + modpath=`grep /$mod modnames` + [ -z "$modpath" ] && continue + echo $modpath >> dep.list +done + +sort -u dep.list > dep2.list + +if [ -n "$Dest" ]; then + # now move the modules into the $Dest directory + for mod in `cat dep2.list` + do + newpath=`dirname $mod | sed -e "s/kernel\\//$Dest\//"` + mkdir -p $newpath + mv $mod $newpath + echo $mod | sed -e "s/kernel\\//$Dest\//" | sed -e "s|^.|${ModDir}|g" >> $RpmDir/$ListName + done +fi + +popd + +# If we're signing modules, we can't leave the .mod files for the .ko files +# we've moved in .tmp_versions/. Remove them so the Kbuild 'modules_sign' +# target doesn't try to sign a non-existent file. This is kinda ugly, but +# so are the modules-* packages. + +for mod in `cat ${Dir}/dep2.list` +do + modfile=`basename $mod | sed -e 's/.ko/.mod/'` + rm .tmp_versions/$modfile +done + +if [ ! -n "$Dest" ]; then + sed -e "s|^.|${ModDir}|g" ${Dir}/dep2.list > $RpmDir/$ListName + echo "./$RpmDir/$ListName created." + [ -d "$RpmDir/etc/modprobe.d/" ] || mkdir -p "$RpmDir/etc/modprobe.d/" + foreachp check_blacklist < $List +fi + +# Many BIOS-es export a PNP-id which causes the floppy driver to autoload +# even though most modern systems don't have a 3.5" floppy driver anymore +# this replaces the old die_floppy_die.patch which removed the PNP-id from +# the module +if [ -f $RpmDir/$ModDir/extra/drivers/block/floppy.ko* ]; then + blacklist "floppy" +fi + +# avoid an empty kernel-extra package +echo "$ModDir/$OverrideDir" >> $RpmDir/$ListName + +pushd $Dir +rm modnames dep.list dep2.list req.list req2.list +rm "$ListName" modules2.list modules3.list +popd diff --git a/mod-extra.list.fedora b/mod-extra.list.fedora new file mode 100644 index 000000000..8140f5c9e --- /dev/null +++ b/mod-extra.list.fedora @@ -0,0 +1,196 @@ +6pack.ko +a3d.ko +act200l-sir.ko +actisys-sir.ko +adi.ko +aer_inject.ko +af_802154.ko +affs.ko +ali-ircc.ko +analog.ko +appletalk.ko +atm.ko +avma1_cs.ko +avm_cs.ko +avmfritz.ko +ax25.ko +b1.ko +bas_gigaset.ko +batman-adv.ko +baycom_par.ko +baycom_ser_fdx.ko +baycom_ser_hdx.ko +befs.ko +bpqether.ko +br2684.ko +capi.ko +c_can.ko +c_can_platform.ko +clip.ko +cobra.ko +coda.ko +cuse.ko +db9.ko +dccp_diag.ko +dccp_ipv4.ko +dccp_ipv6.ko +dccp.ko +dccp_probe.ko +diva_idi.ko +divas.ko +dlm.ko +ds1wm.ko +ds2482.ko +ds2490.ko +dss1_divert.ko +elsa_cs.ko +ems_pci.ko +ems_usb.ko +esd_usb2.ko +esi-sir.ko +floppy.ko +gamecon.ko +gf2k.ko +gfs2.ko +gigaset.ko +girbil-sir.ko +grip.ko +grip_mp.ko +guillemot.ko +hdlcdrv.ko +hfc4s8s_l1.ko +hfcmulti.ko +hfcpci.ko +hisax.ko +hwa-rc.ko +hysdn.ko +i2400m.ko +i2400m-sdio.ko +i2400m-usb.ko +ieee802154.ko +iforce.ko +interact.ko +ipddp.ko +ipx.ko +isdn.ko +joydump.ko +kingsun-sir.ko +ks959-sir.ko +ksdazzle-sir.ko +kvaser_pci.ko +l2tp_core.ko +l2tp_debugfs.ko +l2tp_eth.ko +l2tp_ip.ko +l2tp_netlink.ko +l2tp_ppp.ko +lec.ko +ma600-sir.ko +magellan.ko +mcp2120-sir.ko +mISDN_core.ko +mISDN_dsp.ko +mkiss.ko +mptbase.ko +mptctl.ko +mptfc.ko +nci.ko +ncpfs.ko +netjet.ko +netrom.ko +nfc.ko +nilfs2.ko +ocfs2_dlmfs.ko +ocfs2_dlm.ko +ocfs2.ko +ocfs2_nodemanager.ko +ocfs2_stackglue.ko +ocfs2_stack_o2cb.ko +ocfs2_stack_user.ko +old_belkin-sir.ko +orinoco_cs.ko +orinoco.ko +orinoco_nortel.ko +orinoco_pci.ko +orinoco_plx.ko +orinoco_usb.ko +pcspkr.ko +plx_pci.ko +pn_pep.ko +pppoatm.ko +rds.ko +rds_rdma.ko +rds_tcp.ko +rose.ko +sch_atm.ko +sch_cbq.ko +sch_choke.ko +sch_drr.ko +sch_dsmark.ko +sch_etf.ko +sch_gred.ko +sch_mqprio.ko +sch_multiq.ko +sch_netem.ko +sch_qfq.ko +sch_red.ko +sch_sfb.ko +sch_teql.ko +sctp.ko +sctp_probe.ko +sidewinder.ko +sja1000.ko +sja1000_platform.ko +slcan.ko +slip.ko +softing_cs.ko +softing.ko +spaceball.ko +spaceorb.ko +stinger.ko +sysv.ko +tcp_bic.ko +tcp_highspeed.ko +tcp_htcp.ko +tcp_hybla.ko +tcp_illinois.ko +tcp_lp.ko +tcp_scalable.ko +tcp_vegas.ko +tcp_veno.ko +tcp_westwood.ko +tcp_yeah.ko +tekram-sir.ko +tmdc.ko +toim3232-sir.ko +trancevibrator.ko +turbografx.ko +twidjoy.ko +ubifs.ko +ufs.ko +umc.ko +usbip-core.ko +usbip-host.ko +uwb.ko +vcan.ko +vhci-hcd.ko +w1_bq27000.ko +w1_ds2408.ko +w1_ds2423.ko +w1_ds2431.ko +w1_ds2433.ko +w1_ds2760.ko +w1_ds2780.ko +w1_ds2781.ko +w1_ds28e04.ko +w1_smem.ko +w1_therm.ko +w6692.ko +walkera0701.ko +wanrouter.ko +warrior.ko +whci.ko +wire.ko +xpad.ko +yam.ko +zhenhua.ko diff --git a/mod-extra.list.rhel b/mod-extra.list.rhel new file mode 100644 index 000000000..c0c730e56 --- /dev/null +++ b/mod-extra.list.rhel @@ -0,0 +1,191 @@ +6pack.ko +a3d.ko +act200l-sir.ko +actisys-sir.ko +adi.ko +aer_inject.ko +af_802154.ko +affs.ko +ali-ircc.ko +analog.ko +appletalk.ko +atm.ko +avma1_cs.ko +avm_cs.ko +avmfritz.ko +ax25.ko +b1.ko +bas_gigaset.ko +batman-adv.ko +baycom_par.ko +baycom_ser_fdx.ko +baycom_ser_hdx.ko +befs.ko +bpqether.ko +br2684.ko +capi.ko +c_can.ko +c_can_platform.ko +clip.ko +cobra.ko +coda.ko +cuse.ko +db9.ko +dccp_diag.ko +dccp_ipv4.ko +dccp_ipv6.ko +dccp.ko +dccp_probe.ko +diva_idi.ko +divas.ko +ds1wm.ko +ds2482.ko +ds2490.ko +dss1_divert.ko +elsa_cs.ko +ems_pci.ko +ems_usb.ko +esd_usb2.ko +esi-sir.ko +gamecon.ko +gf2k.ko +gigaset.ko +girbil-sir.ko +grip.ko +grip_mp.ko +guillemot.ko +hdlcdrv.ko +hfc4s8s_l1.ko +hfcmulti.ko +hfcpci.ko +hisax.ko +hwa-rc.ko +hysdn.ko +i2400m.ko +i2400m-sdio.ko +i2400m-usb.ko +ieee802154.ko +iforce.ko +interact.ko +ipddp.ko +ipx.ko +isdn.ko +joydump.ko +kingsun-sir.ko +ks959-sir.ko +ksdazzle-sir.ko +kvaser_pci.ko +l2tp_core.ko +l2tp_debugfs.ko +l2tp_eth.ko +l2tp_ip.ko +l2tp_netlink.ko +l2tp_ppp.ko +lec.ko +ma600-sir.ko +magellan.ko +mcp2120-sir.ko +mISDN_core.ko +mISDN_dsp.ko +mkiss.ko +mptbase.ko +mptctl.ko +mptfc.ko +nci.ko +ncpfs.ko +netjet.ko +netrom.ko +nfc.ko +nilfs2.ko +ocfs2_dlmfs.ko +ocfs2_dlm.ko +ocfs2.ko +ocfs2_nodemanager.ko +ocfs2_stackglue.ko +ocfs2_stack_o2cb.ko +ocfs2_stack_user.ko +old_belkin-sir.ko +orinoco_cs.ko +orinoco.ko +orinoco_nortel.ko +orinoco_pci.ko +orinoco_plx.ko +orinoco_usb.ko +plx_pci.ko +pn_pep.ko +pppoatm.ko +rds.ko +rds_rdma.ko +rds_tcp.ko +rose.ko +sch_atm.ko +sch_cbq.ko +sch_choke.ko +sch_drr.ko +sch_dsmark.ko +sch_gred.ko +sch_mqprio.ko +sch_multiq.ko +sch_netem.ko +sch_qfq.ko +sch_red.ko +sch_sfb.ko +sch_teql.ko +sctp.ko +sctp_probe.ko +sidewinder.ko +sja1000.ko +sja1000_platform.ko +slcan.ko +slip.ko +softing_cs.ko +softing.ko +spaceball.ko +spaceorb.ko +stinger.ko +sysv.ko +tcp_bic.ko +tcp_highspeed.ko +tcp_htcp.ko +tcp_hybla.ko +tcp_illinois.ko +tcp_lp.ko +tcp_scalable.ko +tcp_vegas.ko +tcp_veno.ko +tcp_westwood.ko +tcp_yeah.ko +tekram-sir.ko +tmdc.ko +toim3232-sir.ko +trancevibrator.ko +turbografx.ko +twidjoy.ko +ubifs.ko +ufs.ko +umc.ko +usbip-core.ko +usbip-host.ko +uwb.ko +vcan.ko +vhci-hcd.ko +w1_bq27000.ko +w1_ds2408.ko +w1_ds2423.ko +w1_ds2431.ko +w1_ds2433.ko +w1_ds2760.ko +w1_ds2780.ko +w1_ds2781.ko +w1_ds28e04.ko +w1_smem.ko +w1_therm.ko +w6692.ko +walkera0701.ko +wanrouter.ko +warrior.ko +whci.ko +wire.ko +xpad.ko +yam.ko +zhenhua.ko diff --git a/mod-internal.list b/mod-internal.list new file mode 100644 index 000000000..9270dcc3f --- /dev/null +++ b/mod-internal.list @@ -0,0 +1,4 @@ +mac80211_hwsim +netdevsim +pktgen +rocker diff --git a/mod-sign.sh b/mod-sign.sh new file mode 100755 index 000000000..1afe136e2 --- /dev/null +++ b/mod-sign.sh @@ -0,0 +1,37 @@ +#! /bin/bash + +# The modules_sign target checks for corresponding .o files for every .ko that +# is signed. This doesn't work for package builds which re-use the same build +# directory for every flavour, and the .config may change between flavours. +# So instead of using this script to just sign lib/modules/$KernelVer/extra, +# sign all .ko in the buildroot. + +# This essentially duplicates the 'modules_sign' Kbuild target and runs the +# same commands for those modules. + +MODSECKEY=$1 +MODPUBKEY=$2 +moddir=$3 + +modules=$(find "$moddir" -type f -name '*.ko') + +NPROC=$(nproc) +[ -z "$NPROC" ] && NPROC=1 + +# NB: this loop runs 2000+ iterations. Try to be fast. +echo "$modules" | xargs -r -n16 -P $NPROC sh -c " +for mod; do + ./scripts/sign-file sha256 $MODSECKEY $MODPUBKEY \$mod + rm -f \$mod.sig \$mod.dig +done +" DUMMYARG0 # xargs appends ARG1 ARG2..., which go into $mod in for loop. + +RANDOMMOD=$(echo "$modules" | sort -R | head -n 1) +if [ "~Module signature appended~" != "$(tail -c 28 "$RANDOMMOD")" ]; then + echo "*****************************" + echo "*** Modules are unsigned! ***" + echo "*****************************" + exit 1 +fi + +exit 0 diff --git a/parallel_xz.sh b/parallel_xz.sh new file mode 100755 index 000000000..bc08a548d --- /dev/null +++ b/parallel_xz.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# Reads filenames on stdin, xz-compresses each in place. +# Not optimal for "compress relatively few, large files" scenario! + +# How many xz's to run in parallel: +procgroup="" +while test "$#" != 0; do + # Get it from -jNUM + N="${1#-j}" + if test "$N" = "$1"; then + # Not -j - warn and ignore + echo "parallel_xz: warning: unrecognized argument: '$1'" + else + procgroup="$N" + fi + shift +done + +# If told to use only one cpu: +test "$procgroup" || exec xargs -r xz +test "$procgroup" = 1 && exec xargs -r xz + +# xz has some startup cost. If files are really small, +# this cost might be significant. To combat this, +# process several files (in sequence) by each xz process via -n 16: +exec xargs -r -n 16 -P $procgroup xz diff --git a/patch-5.10.0-redhat.patch b/patch-5.10.0-redhat.patch new file mode 100644 index 000000000..cd4d3700c --- /dev/null +++ b/patch-5.10.0-redhat.patch @@ -0,0 +1,3121 @@ + Documentation/admin-guide/kdump/kdump.rst | 11 + + Documentation/admin-guide/kernel-parameters.txt | 8 + + .../bindings/display/panel/xingbangda,xbd599.yaml | 50 +++ + Kconfig | 2 + + Kconfig.redhat | 17 + + Makefile | 14 +- + arch/arm/Kconfig | 4 +- + arch/arm/include/asm/uaccess.h | 8 +- + arch/arm64/Kconfig | 3 +- + arch/arm64/kernel/acpi.c | 4 + + arch/s390/include/asm/ipl.h | 1 + + arch/s390/kernel/ipl.c | 5 + + arch/s390/kernel/setup.c | 4 + + arch/x86/kernel/cpu/common.c | 1 + + arch/x86/kernel/setup.c | 71 +++- + crypto/aegis128-neon-inner.c | 4 +- + 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/char/ipmi/ipmi_msghandler.c | 16 +- + drivers/firmware/efi/Makefile | 1 + + drivers/firmware/efi/efi.c | 124 +++++-- + drivers/firmware/efi/secureboot.c | 38 +++ + drivers/gpu/drm/panel/Kconfig | 9 + + drivers/gpu/drm/panel/Makefile | 1 + + drivers/gpu/drm/panel/panel-xingbangda-xbd599.c | 366 +++++++++++++++++++++ + drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 10 +- + drivers/hid/hid-rmi.c | 64 ---- + drivers/infiniband/sw/rxe/rxe.c | 2 + + 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/e1000e/ich8lan.c | 4 +- + drivers/net/ethernet/intel/ice/ice_main.c | 1 + + drivers/pci/pci-driver.c | 29 ++ + drivers/pci/quirks.c | 24 ++ + drivers/scsi/aacraid/linit.c | 2 + + drivers/scsi/be2iscsi/be_main.c | 2 + + drivers/scsi/hpsa.c | 4 + + drivers/scsi/lpfc/lpfc_ids.h | 14 + + drivers/scsi/megaraid/megaraid_sas_base.c | 2 + + drivers/scsi/mpt3sas/mpt3sas_scsih.c | 4 + + drivers/scsi/qla2xxx/qla_os.c | 6 + + drivers/scsi/qla4xxx/ql4_os.c | 2 + + drivers/scsi/smartpqi/smartpqi_init.c | 16 + + drivers/usb/core/hub.c | 7 + + include/linux/efi.h | 21 +- + include/linux/kernel.h | 34 +- + include/linux/lsm_hook_defs.h | 2 + + include/linux/lsm_hooks.h | 6 + + include/linux/module.h | 1 + + include/linux/pci.h | 4 + + include/linux/rh_kabi.h | 297 +++++++++++++++++ + include/linux/rmi.h | 1 + + include/linux/security.h | 5 + + kernel/Makefile | 2 + + kernel/bpf/syscall.c | 27 +- + kernel/crash_core.c | 28 +- + kernel/module.c | 2 + + kernel/module_signing.c | 9 +- + kernel/panic.c | 14 + + kernel/rh_taint.c | 93 ++++++ + mm/kmemleak.c | 5 + + scripts/mod/modpost.c | 8 + + scripts/tags.sh | 2 + + security/integrity/platform_certs/load_uefi.c | 6 +- + security/lockdown/Kconfig | 13 + + security/lockdown/lockdown.c | 1 + + security/security.c | 6 + + tools/perf/Makefile.config | 1 + + 73 files changed, 1585 insertions(+), 192 deletions(-) + +diff --git a/Documentation/admin-guide/kdump/kdump.rst b/Documentation/admin-guide/kdump/kdump.rst +index 75a9dd98e76e..3ff3291551f9 100644 +--- a/Documentation/admin-guide/kdump/kdump.rst ++++ b/Documentation/admin-guide/kdump/kdump.rst +@@ -285,6 +285,17 @@ This would mean: + 2) if the RAM size is between 512M and 2G (exclusive), then reserve 64M + 3) if the RAM size is larger than 2G, then reserve 128M + ++Or you can use crashkernel=auto if you have enough memory. The threshold ++is 2G on x86_64, arm64, ppc64 and ppc64le. The threshold is 4G for s390x. ++If your system memory is less than the threshold crashkernel=auto will not ++reserve memory. ++ ++The automatically reserved memory size varies based on architecture. ++The size changes according to system memory size like below: ++ x86_64: 1G-64G:160M,64G-1T:256M,1T-:512M ++ s390x: 4G-64G:160M,64G-1T:256M,1T-:512M ++ arm64: 2G-:512M ++ ppc64: 2G-4G:384M,4G-16G:512M,16G-64G:1G,64G-128G:2G,128G-:4G + + + Boot into System Kernel +diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt +index 0fa47ddf4c46..f24d4c43dc19 100644 +--- a/Documentation/admin-guide/kernel-parameters.txt ++++ b/Documentation/admin-guide/kernel-parameters.txt +@@ -5378,6 +5378,14 @@ + unknown_nmi_panic + [X86] Cause panic on unknown NMI. + ++ unprivileged_bpf_disabled= ++ Format: { "0" | "1" } ++ Sets the initial value of ++ kernel.unprivileged_bpf_disabled sysctl knob. ++ 0 - unprivileged bpf() syscall access is enabled. ++ 1 - unprivileged bpf() syscall access is disabled. ++ Default value is 1. ++ + usbcore.authorized_default= + [USB] Default USB device authorization: + (default -1 = authorized except for wireless USB, +diff --git a/Documentation/devicetree/bindings/display/panel/xingbangda,xbd599.yaml b/Documentation/devicetree/bindings/display/panel/xingbangda,xbd599.yaml +new file mode 100644 +index 000000000000..b27bcf11198f +--- /dev/null ++++ b/Documentation/devicetree/bindings/display/panel/xingbangda,xbd599.yaml +@@ -0,0 +1,50 @@ ++# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/display/panel/xingbangda,xbd599.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Xingbangda XBD599 5.99in MIPI-DSI LCD panel ++ ++maintainers: ++ - Icenowy Zheng ++ ++allOf: ++ - $ref: panel-common.yaml# ++ ++properties: ++ compatible: ++ const: xingbangda,xbd599 ++ reg: true ++ backlight: true ++ reset-gpios: true ++ vcc-supply: ++ description: regulator that supplies the VCC voltage ++ iovcc-supply: ++ description: regulator that supplies the IOVCC voltage ++ ++required: ++ - compatible ++ - reg ++ - backlight ++ - vcc-supply ++ - iovcc-supply ++ ++additionalProperties: false ++ ++examples: ++ - | ++ dsi { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ panel@0 { ++ compatible = "xingbangda,xbd599"; ++ reg = <0>; ++ backlight = <&backlight>; ++ iovcc-supply = <®_dldo2>; ++ vcc-supply = <®_ldo_io0>; ++ }; ++ }; ++ ++... +diff --git a/Kconfig b/Kconfig +index 745bc773f567..f57ff40109d7 100644 +--- a/Kconfig ++++ b/Kconfig +@@ -30,3 +30,5 @@ source "lib/Kconfig" + source "lib/Kconfig.debug" + + source "Documentation/Kconfig" ++ ++source "Kconfig.redhat" +diff --git a/Kconfig.redhat b/Kconfig.redhat +new file mode 100644 +index 000000000000..effb81d04bfd +--- /dev/null ++++ b/Kconfig.redhat +@@ -0,0 +1,17 @@ ++# SPDX-License-Identifier: GPL-2.0-only ++# ++# Red Hat specific options ++# ++ ++menu "Red Hat options" ++ ++config RHEL_DIFFERENCES ++ bool "Remove support for deprecated features" ++ help ++ Red Hat may choose to deprecate certain features in its kernels. ++ Enable this option to remove support for hardware that is no ++ longer supported. ++ ++ Unless you want a restricted kernel, say N here. ++ ++endmenu +diff --git a/Makefile b/Makefile +index 51540b291738..cb84fca3accc 100644 +--- a/Makefile ++++ b/Makefile +@@ -18,6 +18,10 @@ $(if $(filter __%, $(MAKECMDGOALS)), \ + PHONY := __all + __all: + ++# Set RHEL variables ++# Use this spot to avoid future merge conflicts ++include Makefile.rhelver ++ + # We are using a recursive build, so we need to do a little thinking + # to get the ordering right. + # +@@ -497,7 +501,7 @@ KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE + KBUILD_CFLAGS := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \ + -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \ + -Werror=implicit-function-declaration -Werror=implicit-int \ +- -Wno-format-security \ ++ -Wno-format-security -Wno-address-of-packed-member \ + -std=gnu89 + KBUILD_CPPFLAGS := -D__KERNEL__ + KBUILD_AFLAGS_KERNEL := +@@ -1245,7 +1249,13 @@ endef + define filechk_version.h + echo \#define LINUX_VERSION_CODE $(shell \ + expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 0$(SUBLEVEL)); \ +- echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))' ++ echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'; \ ++ echo '#define RHEL_MAJOR $(RHEL_MAJOR)'; \ ++ echo '#define RHEL_MINOR $(RHEL_MINOR)'; \ ++ echo '#define RHEL_RELEASE_VERSION(a,b) (((a) << 8) + (b))'; \ ++ echo '#define RHEL_RELEASE_CODE \ ++ $(shell expr $(RHEL_MAJOR) \* 256 + $(RHEL_MINOR))'; \ ++ echo '#define RHEL_RELEASE "$(RHEL_RELEASE)"' + endef + + $(version_h): FORCE +diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig +index 82d0b00bc7a5..c8acc3eaebf4 100644 +--- a/arch/arm/Kconfig ++++ b/arch/arm/Kconfig +@@ -1516,9 +1516,9 @@ config HIGHMEM + If unsure, say n. + + config HIGHPTE +- bool "Allocate 2nd-level pagetables from highmem" if EXPERT ++ bool "Allocate 2nd-level pagetables from highmem" + depends on HIGHMEM +- default y ++ default n + help + The VM uses one page of physical memory for each page table. + For systems with a lot of processes, this can use a lot of +diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h +index a13d90206472..6a6aae01755b 100644 +--- a/arch/arm/include/asm/uaccess.h ++++ b/arch/arm/include/asm/uaccess.h +@@ -195,11 +195,12 @@ extern int __get_user_64t_4(void *); + #define __get_user_check(x, p) \ + ({ \ + unsigned long __limit = current_thread_info()->addr_limit - 1; \ ++ unsigned int __ua_flags = uaccess_save_and_enable(); \ + register typeof(*(p)) __user *__p asm("r0") = (p); \ + register __inttype(x) __r2 asm("r2"); \ + register unsigned long __l asm("r1") = __limit; \ + register int __e asm("r0"); \ +- unsigned int __ua_flags = uaccess_save_and_enable(); \ ++ unsigned int __err; \ + switch (sizeof(*(__p))) { \ + case 1: \ + if (sizeof((x)) >= 8) \ +@@ -227,9 +228,10 @@ extern int __get_user_64t_4(void *); + break; \ + default: __e = __get_user_bad(); break; \ + } \ +- uaccess_restore(__ua_flags); \ ++ __err = __e; \ + x = (typeof(*(p))) __r2; \ +- __e; \ ++ uaccess_restore(__ua_flags); \ ++ __err; \ + }) + + #define get_user(x, p) \ +diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig +index 9cd317f00034..584d7353b48d 100644 +--- a/arch/arm64/Kconfig ++++ b/arch/arm64/Kconfig +@@ -869,7 +869,7 @@ endchoice + + config ARM64_FORCE_52BIT + bool "Force 52-bit virtual addresses for userspace" +- depends on ARM64_VA_BITS_52 && EXPERT ++ depends on ARM64_VA_BITS_52 + help + For systems with 52-bit userspace VAs enabled, the kernel will attempt + to maintain compatibility with older software by providing 48-bit VAs +@@ -1128,6 +1128,7 @@ config XEN + config FORCE_MAX_ZONEORDER + int + default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE) ++ default "13" if (ARCH_THUNDER && !ARM64_64K_PAGES && !RHEL_DIFFERENCES) + default "12" if (ARM64_16K_PAGES && TRANSPARENT_HUGEPAGE) + default "11" + help +diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c +index cada0b816c8a..77b30bf451aa 100644 +--- a/arch/arm64/kernel/acpi.c ++++ b/arch/arm64/kernel/acpi.c +@@ -40,7 +40,11 @@ int acpi_pci_disabled = 1; /* skip ACPI PCI scan and IRQ initialization */ + EXPORT_SYMBOL(acpi_pci_disabled); + + static bool param_acpi_off __initdata; ++#ifdef CONFIG_RHEL_DIFFERENCES ++static bool param_acpi_on __initdata = true; ++#else + static bool param_acpi_on __initdata; ++#endif + static bool param_acpi_force __initdata; + + static int __init parse_acpi(char *arg) +diff --git a/arch/s390/include/asm/ipl.h b/arch/s390/include/asm/ipl.h +index 7d5cfdda5277..be66ee5d0437 100644 +--- a/arch/s390/include/asm/ipl.h ++++ b/arch/s390/include/asm/ipl.h +@@ -120,6 +120,7 @@ int ipl_report_add_component(struct ipl_report *report, struct kexec_buf *kbuf, + unsigned char flags, unsigned short cert); + int ipl_report_add_certificate(struct ipl_report *report, void *key, + unsigned long addr, unsigned long len); ++bool ipl_get_secureboot(void); + + /* + * DIAG 308 support +diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c +index 90a2a17239b0..be3b72c53656 100644 +--- a/arch/s390/kernel/ipl.c ++++ b/arch/s390/kernel/ipl.c +@@ -2110,3 +2110,8 @@ int ipl_report_free(struct ipl_report *report) + } + + #endif ++ ++bool ipl_get_secureboot(void) ++{ ++ return !!ipl_secure_flag; ++} +diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c +index c2c1b4e723ea..1247f80a3bf0 100644 +--- a/arch/s390/kernel/setup.c ++++ b/arch/s390/kernel/setup.c +@@ -49,6 +49,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -1085,6 +1086,9 @@ void __init setup_arch(char **cmdline_p) + + log_component_list(); + ++ if (ipl_get_secureboot()) ++ security_lock_kernel_down("Secure IPL mode", LOCKDOWN_INTEGRITY_MAX); ++ + /* Have one command line that is parsed and saved in /proc/cmdline */ + /* boot_command_line has been already set up in early.c */ + *cmdline_p = boot_command_line; +diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c +index c51158914ea2..38d0794b7675 100644 +--- a/arch/x86/kernel/cpu/common.c ++++ b/arch/x86/kernel/cpu/common.c +@@ -1307,6 +1307,7 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c) + cpu_detect(c); + get_cpu_vendor(c); + get_cpu_cap(c); ++ get_model_name(c); /* RHEL: get model name for unsupported check */ + get_cpu_address_sizes(c); + setup_force_cpu_cap(X86_FEATURE_CPUID); + cpu_parse_early_param(); +diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c +index fa16b906ea3f..76c93ac0f037 100644 +--- a/arch/x86/kernel/setup.c ++++ b/arch/x86/kernel/setup.c +@@ -18,6 +18,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -46,6 +47,7 @@ + #include + #include + #include ++#include + + /* + * max_low_pfn_mapped: highest directly mapped pfn < 4 GB +@@ -755,7 +757,51 @@ static void __init trim_low_memory_range(void) + { + memblock_reserve(0, ALIGN(reserve_low, PAGE_SIZE)); + } +- ++ ++#ifdef CONFIG_RHEL_DIFFERENCES ++ ++static void rh_check_supported(void) ++{ ++ bool guest; ++ ++ guest = (x86_hyper_type != X86_HYPER_NATIVE || boot_cpu_has(X86_FEATURE_HYPERVISOR)); ++ ++ /* RHEL supports single cpu on guests only */ ++ if (((boot_cpu_data.x86_max_cores * smp_num_siblings) == 1) && ++ !guest && is_kdump_kernel()) { ++ pr_crit("Detected single cpu native boot.\n"); ++ pr_crit("Important: In this kernel, single threaded, single CPU 64-bit physical systems are unsupported."); ++ } ++ ++ /* ++ * If the RHEL kernel does not support this hardware, the kernel will ++ * attempt to boot, but no support is provided for this hardware ++ */ ++ switch (boot_cpu_data.x86_vendor) { ++ case X86_VENDOR_AMD: ++ case X86_VENDOR_INTEL: ++ break; ++ default: ++ pr_crit("Detected processor %s %s\n", ++ boot_cpu_data.x86_vendor_id, ++ boot_cpu_data.x86_model_id); ++ mark_hardware_unsupported("Processor"); ++ break; ++ } ++ ++ /* ++ * Due to the complexity of x86 lapic & ioapic enumeration, and PCI IRQ ++ * routing, ACPI is required for x86. acpi=off is a valid debug kernel ++ * parameter, so just print out a loud warning in case something ++ * goes wrong (which is most of the time). ++ */ ++ if (acpi_disabled && !guest) ++ pr_crit("ACPI has been disabled or is not available on this hardware. This may result in a single cpu boot, incorrect PCI IRQ routing, or boot failure.\n"); ++} ++#else ++#define rh_check_supported() ++#endif ++ + /* + * Dump out kernel offset information on panic. + */ +@@ -980,6 +1026,13 @@ void __init setup_arch(char **cmdline_p) + if (efi_enabled(EFI_BOOT)) + efi_init(); + ++ efi_set_secure_boot(boot_params.secure_boot); ++ ++#ifdef CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT ++ if (efi_enabled(EFI_SECURE_BOOT)) ++ security_lock_kernel_down("EFI Secure Boot mode", LOCKDOWN_INTEGRITY_MAX); ++#endif ++ + dmi_setup(); + + /* +@@ -1132,19 +1185,7 @@ void __init setup_arch(char **cmdline_p) + /* Allocate bigger log buffer */ + setup_log_buf(1); + +- if (efi_enabled(EFI_BOOT)) { +- switch (boot_params.secure_boot) { +- case efi_secureboot_mode_disabled: +- pr_info("Secure boot disabled\n"); +- break; +- case efi_secureboot_mode_enabled: +- pr_info("Secure boot enabled\n"); +- break; +- default: +- pr_info("Secure boot could not be determined\n"); +- break; +- } +- } ++ efi_set_secure_boot(boot_params.secure_boot); + + reserve_initrd(); + +@@ -1252,6 +1293,8 @@ void __init setup_arch(char **cmdline_p) + efi_apply_memmap_quirks(); + #endif + ++ rh_check_supported(); ++ + unwind_init(); + } + +diff --git a/crypto/aegis128-neon-inner.c b/crypto/aegis128-neon-inner.c +index 2a660ac1bc3a..fa87ff6a2a71 100644 +--- a/crypto/aegis128-neon-inner.c ++++ b/crypto/aegis128-neon-inner.c +@@ -148,8 +148,8 @@ void crypto_aegis128_init_neon(void *state, const void *key, const void *iv) + kiv, + vld1q_u8(const1), + vld1q_u8(const0), +- k ^ vld1q_u8(const0), +- k ^ vld1q_u8(const1), ++ (uint8x16_t) (k ^ vld1q_u8(const0)), ++ (uint8x16_t) (k ^ vld1q_u8(const1)), + }}; + int i; + +diff --git a/drivers/acpi/apei/hest.c b/drivers/acpi/apei/hest.c +index 6e980fe16772..37bc003e7a83 100644 +--- a/drivers/acpi/apei/hest.c ++++ b/drivers/acpi/apei/hest.c +@@ -88,6 +88,14 @@ int apei_hest_parse(apei_hest_func_t func, void *data) + if (hest_disable || !hest_tab) + return -EINVAL; + ++#ifdef CONFIG_ARM64 ++ /* Ignore broken firmware */ ++ if (!strncmp(hest_tab->header.oem_id, "HPE ", 6) && ++ !strncmp(hest_tab->header.oem_table_id, "ProLiant", 8) && ++ MIDR_IMPLEMENTOR(read_cpuid_id()) == ARM_CPU_IMP_APM) ++ return -EINVAL; ++#endif ++ + hest_hdr = (struct acpi_hest_header *)(hest_tab + 1); + for (i = 0; i < hest_tab->error_source_count; i++) { + len = hest_esrc_len(hest_hdr); +diff --git a/drivers/acpi/irq.c b/drivers/acpi/irq.c +index e209081d644b..7484bcf59a1b 100644 +--- a/drivers/acpi/irq.c ++++ b/drivers/acpi/irq.c +@@ -126,6 +126,7 @@ struct acpi_irq_parse_one_ctx { + unsigned int index; + unsigned long *res_flags; + struct irq_fwspec *fwspec; ++ bool skip_producer_check; + }; + + /** +@@ -197,7 +198,8 @@ static acpi_status acpi_irq_parse_one_cb(struct acpi_resource *ares, + return AE_CTRL_TERMINATE; + case ACPI_RESOURCE_TYPE_EXTENDED_IRQ: + eirq = &ares->data.extended_irq; +- if (eirq->producer_consumer == ACPI_PRODUCER) ++ if (!ctx->skip_producer_check && ++ eirq->producer_consumer == ACPI_PRODUCER) + return AE_OK; + if (ctx->index >= eirq->interrupt_count) { + ctx->index -= eirq->interrupt_count; +@@ -232,8 +234,19 @@ static acpi_status acpi_irq_parse_one_cb(struct acpi_resource *ares, + static int acpi_irq_parse_one(acpi_handle handle, unsigned int index, + struct irq_fwspec *fwspec, unsigned long *flags) + { +- struct acpi_irq_parse_one_ctx ctx = { -EINVAL, index, flags, fwspec }; ++ struct acpi_irq_parse_one_ctx ctx = { -EINVAL, index, flags, fwspec, false }; + ++ /* ++ * Firmware on arm64-based HPE m400 platform incorrectly marks ++ * its UART interrupt as ACPI_PRODUCER rather than ACPI_CONSUMER. ++ * Don't do the producer/consumer check for that device. ++ */ ++ if (IS_ENABLED(CONFIG_ARM64)) { ++ struct acpi_device *adev = acpi_bus_get_acpi_device(handle); ++ ++ if (adev && !strcmp(acpi_device_hid(adev), "APMC0D08")) ++ ctx.skip_producer_check = true; ++ } + acpi_walk_resources(handle, METHOD_NAME__CRS, acpi_irq_parse_one_cb, &ctx); + return ctx.rc; + } +diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c +index 2142f1554761..f5fdf6f3650c 100644 +--- a/drivers/acpi/scan.c ++++ b/drivers/acpi/scan.c +@@ -1574,6 +1574,15 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device) + if (!acpi_match_device_ids(device, i2c_multi_instantiate_ids)) + return false; + ++ /* ++ * Firmware on some arm64 X-Gene platforms will make the UART ++ * device appear as both a UART and a slave of that UART. Just ++ * bail out here for X-Gene UARTs. ++ */ ++ if (IS_ENABLED(CONFIG_ARM64) && ++ !strcmp(acpi_device_hid(device), "APMC0D08")) ++ return false; ++ + INIT_LIST_HEAD(&resource_list); + acpi_dev_get_resources(device, &resource_list, + acpi_check_serial_bus_slave, +diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c +index ea5bf5f4cbed..71c55cae27ac 100644 +--- a/drivers/ata/libahci.c ++++ b/drivers/ata/libahci.c +@@ -666,6 +666,24 @@ int ahci_stop_engine(struct ata_port *ap) + tmp &= ~PORT_CMD_START; + writel(tmp, port_mmio + PORT_CMD); + ++#ifdef CONFIG_ARM64 ++ /* Rev Ax of Cavium CN99XX needs a hack for port stop */ ++ if (dev_is_pci(ap->host->dev) && ++ to_pci_dev(ap->host->dev)->vendor == 0x14e4 && ++ to_pci_dev(ap->host->dev)->device == 0x9027 && ++ midr_is_cpu_model_range(read_cpuid_id(), ++ MIDR_CPU_MODEL(ARM_CPU_IMP_BRCM, BRCM_CPU_PART_VULCAN), ++ MIDR_CPU_VAR_REV(0, 0), ++ MIDR_CPU_VAR_REV(0, MIDR_REVISION_MASK))) { ++ tmp = readl(hpriv->mmio + 0x8000); ++ udelay(100); ++ writel(tmp | (1 << 26), hpriv->mmio + 0x8000); ++ udelay(100); ++ writel(tmp & ~(1 << 26), hpriv->mmio + 0x8000); ++ dev_warn(ap->host->dev, "CN99XX SATA reset workaround applied\n"); ++ } ++#endif ++ + /* wait for engine to stop. This could be as long as 500 msec */ + tmp = ata_wait_register(ap, port_mmio + PORT_CMD, + PORT_CMD_LIST_ON, PORT_CMD_LIST_ON, 1, 500); +diff --git a/drivers/char/ipmi/ipmi_dmi.c b/drivers/char/ipmi/ipmi_dmi.c +index bbf7029e224b..cf7faa970dd6 100644 +--- a/drivers/char/ipmi/ipmi_dmi.c ++++ b/drivers/char/ipmi/ipmi_dmi.c +@@ -215,6 +215,21 @@ static int __init scan_for_dmi_ipmi(void) + { + const struct dmi_device *dev = NULL; + ++#ifdef CONFIG_ARM64 ++ /* RHEL-only ++ * If this is ARM-based HPE m400, return now, because that platform ++ * reports the host-side ipmi address as intel port-io space, which ++ * does not exist in the ARM architecture. ++ */ ++ const char *dmistr = dmi_get_system_info(DMI_PRODUCT_NAME); ++ ++ if (dmistr && (strcmp("ProLiant m400 Server", dmistr) == 0)) { ++ pr_debug("%s does not support host ipmi\n", dmistr); ++ return 0; ++ } ++ /* END RHEL-only */ ++#endif ++ + while ((dev = dmi_find_device(DMI_DEV_TYPE_IPMI, NULL, dev))) + dmi_decode_ipmi((const struct dmi_header *) dev->device_data); + +diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c +index 737c0b6b24ea..7901e780323b 100644 +--- a/drivers/char/ipmi/ipmi_msghandler.c ++++ b/drivers/char/ipmi/ipmi_msghandler.c +@@ -34,6 +34,7 @@ + #include + #include + #include ++#include + + #define IPMI_DRIVER_VERSION "39.2" + +@@ -5153,8 +5154,21 @@ static int __init ipmi_init_msghandler_mod(void) + { + int rv; + +- pr_info("version " IPMI_DRIVER_VERSION "\n"); ++#ifdef CONFIG_ARM64 ++ /* RHEL-only ++ * If this is ARM-based HPE m400, return now, because that platform ++ * reports the host-side ipmi address as intel port-io space, which ++ * does not exist in the ARM architecture. ++ */ ++ const char *dmistr = dmi_get_system_info(DMI_PRODUCT_NAME); + ++ if (dmistr && (strcmp("ProLiant m400 Server", dmistr) == 0)) { ++ pr_debug("%s does not support host ipmi\n", dmistr); ++ return -ENOSYS; ++ } ++ /* END RHEL-only */ ++#endif ++ pr_info("version " IPMI_DRIVER_VERSION "\n"); + mutex_lock(&ipmi_interfaces_mutex); + rv = ipmi_register_driver(); + mutex_unlock(&ipmi_interfaces_mutex); +diff --git a/drivers/firmware/efi/Makefile b/drivers/firmware/efi/Makefile +index e8da782280b6..95e357f42761 100644 +--- a/drivers/firmware/efi/Makefile ++++ b/drivers/firmware/efi/Makefile +@@ -25,6 +25,7 @@ obj-$(CONFIG_EFI_FAKE_MEMMAP) += fake_map.o + obj-$(CONFIG_EFI_BOOTLOADER_CONTROL) += efibc.o + obj-$(CONFIG_EFI_TEST) += test/ + obj-$(CONFIG_EFI_DEV_PATH_PARSER) += dev-path-parser.o ++obj-$(CONFIG_EFI) += secureboot.o + obj-$(CONFIG_APPLE_PROPERTIES) += apple-properties.o + obj-$(CONFIG_EFI_RCI2_TABLE) += rci2-table.o + obj-$(CONFIG_EFI_EMBEDDED_FIRMWARE) += embedded-firmware.o +diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c +index 5e5480a0a32d..bb5d61fc82bb 100644 +--- a/drivers/firmware/efi/efi.c ++++ b/drivers/firmware/efi/efi.c +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + + #include + +@@ -840,40 +841,101 @@ int efi_mem_type(unsigned long phys_addr) + } + #endif + ++struct efi_error_code { ++ efi_status_t status; ++ int errno; ++ const char *description; ++}; ++ ++static const struct efi_error_code efi_error_codes[] = { ++ { EFI_SUCCESS, 0, "Success"}, ++#if 0 ++ { EFI_LOAD_ERROR, -EPICK_AN_ERRNO, "Load Error"}, ++#endif ++ { EFI_INVALID_PARAMETER, -EINVAL, "Invalid Parameter"}, ++ { EFI_UNSUPPORTED, -ENOSYS, "Unsupported"}, ++ { EFI_BAD_BUFFER_SIZE, -ENOSPC, "Bad Buffer Size"}, ++ { EFI_BUFFER_TOO_SMALL, -ENOSPC, "Buffer Too Small"}, ++ { EFI_NOT_READY, -EAGAIN, "Not Ready"}, ++ { EFI_DEVICE_ERROR, -EIO, "Device Error"}, ++ { EFI_WRITE_PROTECTED, -EROFS, "Write Protected"}, ++ { EFI_OUT_OF_RESOURCES, -ENOMEM, "Out of Resources"}, ++#if 0 ++ { EFI_VOLUME_CORRUPTED, -EPICK_AN_ERRNO, "Volume Corrupt"}, ++ { EFI_VOLUME_FULL, -EPICK_AN_ERRNO, "Volume Full"}, ++ { EFI_NO_MEDIA, -EPICK_AN_ERRNO, "No Media"}, ++ { EFI_MEDIA_CHANGED, -EPICK_AN_ERRNO, "Media changed"}, ++#endif ++ { EFI_NOT_FOUND, -ENOENT, "Not Found"}, ++#if 0 ++ { EFI_ACCESS_DENIED, -EPICK_AN_ERRNO, "Access Denied"}, ++ { EFI_NO_RESPONSE, -EPICK_AN_ERRNO, "No Response"}, ++ { EFI_NO_MAPPING, -EPICK_AN_ERRNO, "No mapping"}, ++ { EFI_TIMEOUT, -EPICK_AN_ERRNO, "Time out"}, ++ { EFI_NOT_STARTED, -EPICK_AN_ERRNO, "Not started"}, ++ { EFI_ALREADY_STARTED, -EPICK_AN_ERRNO, "Already started"}, ++#endif ++ { EFI_ABORTED, -EINTR, "Aborted"}, ++#if 0 ++ { EFI_ICMP_ERROR, -EPICK_AN_ERRNO, "ICMP Error"}, ++ { EFI_TFTP_ERROR, -EPICK_AN_ERRNO, "TFTP Error"}, ++ { EFI_PROTOCOL_ERROR, -EPICK_AN_ERRNO, "Protocol Error"}, ++ { EFI_INCOMPATIBLE_VERSION, -EPICK_AN_ERRNO, "Incompatible Version"}, ++#endif ++ { EFI_SECURITY_VIOLATION, -EACCES, "Security Policy Violation"}, ++#if 0 ++ { EFI_CRC_ERROR, -EPICK_AN_ERRNO, "CRC Error"}, ++ { EFI_END_OF_MEDIA, -EPICK_AN_ERRNO, "End of Media"}, ++ { EFI_END_OF_FILE, -EPICK_AN_ERRNO, "End of File"}, ++ { EFI_INVALID_LANGUAGE, -EPICK_AN_ERRNO, "Invalid Languages"}, ++ { EFI_COMPROMISED_DATA, -EPICK_AN_ERRNO, "Compromised Data"}, ++ ++ // warnings ++ { EFI_WARN_UNKOWN_GLYPH, -EPICK_AN_ERRNO, "Warning Unknown Glyph"}, ++ { EFI_WARN_DELETE_FAILURE, -EPICK_AN_ERRNO, "Warning Delete Failure"}, ++ { EFI_WARN_WRITE_FAILURE, -EPICK_AN_ERRNO, "Warning Write Failure"}, ++ { EFI_WARN_BUFFER_TOO_SMALL, -EPICK_AN_ERRNO, "Warning Buffer Too Small"}, ++#endif ++}; ++ ++static int ++efi_status_cmp_bsearch(const void *key, const void *item) ++{ ++ u64 status = (u64)(uintptr_t)key; ++ struct efi_error_code *code = (struct efi_error_code *)item; ++ ++ if (status < code->status) ++ return -1; ++ if (status > code->status) ++ return 1; ++ return 0; ++} ++ + int efi_status_to_err(efi_status_t status) + { +- int err; +- +- switch (status) { +- case EFI_SUCCESS: +- err = 0; +- break; +- case EFI_INVALID_PARAMETER: +- err = -EINVAL; +- break; +- case EFI_OUT_OF_RESOURCES: +- err = -ENOSPC; +- break; +- case EFI_DEVICE_ERROR: +- err = -EIO; +- break; +- case EFI_WRITE_PROTECTED: +- err = -EROFS; +- break; +- case EFI_SECURITY_VIOLATION: +- err = -EACCES; +- break; +- case EFI_NOT_FOUND: +- err = -ENOENT; +- break; +- case EFI_ABORTED: +- err = -EINTR; +- break; +- default: +- err = -EINVAL; +- } ++ struct efi_error_code *found; ++ size_t num = sizeof(efi_error_codes) / sizeof(struct efi_error_code); + +- return err; ++ found = bsearch((void *)(uintptr_t)status, efi_error_codes, ++ sizeof(struct efi_error_code), num, ++ efi_status_cmp_bsearch); ++ if (!found) ++ return -EINVAL; ++ return found->errno; ++} ++ ++const char * ++efi_status_to_str(efi_status_t status) ++{ ++ struct efi_error_code *found; ++ size_t num = sizeof(efi_error_codes) / sizeof(struct efi_error_code); ++ ++ found = bsearch((void *)(uintptr_t)status, efi_error_codes, ++ sizeof(struct efi_error_code), num, ++ efi_status_cmp_bsearch); ++ if (!found) ++ return "Unknown error code"; ++ return found->description; + } + + static DEFINE_SPINLOCK(efi_mem_reserve_persistent_lock); +diff --git a/drivers/firmware/efi/secureboot.c b/drivers/firmware/efi/secureboot.c +new file mode 100644 +index 000000000000..de0a3714a5d4 +--- /dev/null ++++ b/drivers/firmware/efi/secureboot.c +@@ -0,0 +1,38 @@ ++/* Core kernel secure boot support. ++ * ++ * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved. ++ * Written by David Howells (dhowells@redhat.com) ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public Licence ++ * as published by the Free Software Foundation; either version ++ * 2 of the Licence, or (at your option) any later version. ++ */ ++ ++#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt ++ ++#include ++#include ++#include ++ ++/* ++ * Decide what to do when UEFI secure boot mode is enabled. ++ */ ++void __init efi_set_secure_boot(enum efi_secureboot_mode mode) ++{ ++ if (efi_enabled(EFI_BOOT)) { ++ switch (mode) { ++ case efi_secureboot_mode_disabled: ++ pr_info("Secure boot disabled\n"); ++ break; ++ case efi_secureboot_mode_enabled: ++ set_bit(EFI_SECURE_BOOT, &efi.flags); ++ pr_info("Secure boot enabled\n"); ++ break; ++ default: ++ pr_warn("Secure boot could not be determined (mode %u)\n", ++ mode); ++ break; ++ } ++ } ++} +diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig +index de2f2a452be5..3ce658de416b 100644 +--- a/drivers/gpu/drm/panel/Kconfig ++++ b/drivers/gpu/drm/panel/Kconfig +@@ -462,6 +462,15 @@ config DRM_PANEL_VISIONOX_RM69299 + Say Y here if you want to enable support for Visionox + RM69299 DSI Video Mode panel. + ++config DRM_PANEL_XINGBANGDA_XBD599 ++ tristate "Xingbangda XBD599 panel" ++ depends on OF ++ depends on DRM_MIPI_DSI ++ depends on BACKLIGHT_CLASS_DEVICE ++ help ++ Say Y here if you want to enable support for the Xingbangda XBD599 ++ MIPI DSI Video Mode panel. ++ + config DRM_PANEL_XINPENG_XPP055C272 + tristate "Xinpeng XPP055C272 panel driver" + depends on OF +diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile +index e45ceac6286f..bd10617430ec 100644 +--- a/drivers/gpu/drm/panel/Makefile ++++ b/drivers/gpu/drm/panel/Makefile +@@ -49,4 +49,5 @@ obj-$(CONFIG_DRM_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o + obj-$(CONFIG_DRM_PANEL_TPO_TPG110) += panel-tpo-tpg110.o + obj-$(CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA) += panel-truly-nt35597.o + obj-$(CONFIG_DRM_PANEL_VISIONOX_RM69299) += panel-visionox-rm69299.o ++obj-$(CONFIG_DRM_PANEL_XINGBANGDA_XBD599) += panel-xingbangda-xbd599.o + obj-$(CONFIG_DRM_PANEL_XINPENG_XPP055C272) += panel-xinpeng-xpp055c272.o +diff --git a/drivers/gpu/drm/panel/panel-xingbangda-xbd599.c b/drivers/gpu/drm/panel/panel-xingbangda-xbd599.c +new file mode 100644 +index 000000000000..b483f96ee1db +--- /dev/null ++++ b/drivers/gpu/drm/panel/panel-xingbangda-xbd599.c +@@ -0,0 +1,366 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * Xingbangda XBD599 MIPI-DSI panel driver ++ * ++ * Copyright (C) 2019-2020 Icenowy Zheng ++ * ++ * Based on panel-rocktech-jh057n00900.c, which is: ++ * Copyright (C) Purism SPC 2019 ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++/* Manufacturer specific Commands send via DSI */ ++#define ST7703_CMD_ALL_PIXEL_OFF 0x22 ++#define ST7703_CMD_ALL_PIXEL_ON 0x23 ++#define ST7703_CMD_SETDISP 0xB2 ++#define ST7703_CMD_SETRGBIF 0xB3 ++#define ST7703_CMD_SETCYC 0xB4 ++#define ST7703_CMD_SETBGP 0xB5 ++#define ST7703_CMD_SETVCOM 0xB6 ++#define ST7703_CMD_SETOTP 0xB7 ++#define ST7703_CMD_SETPOWER_EXT 0xB8 ++#define ST7703_CMD_SETEXTC 0xB9 ++#define ST7703_CMD_SETMIPI 0xBA ++#define ST7703_CMD_SETVDC 0xBC ++#define ST7703_CMD_SETSCR 0xC0 ++#define ST7703_CMD_SETPOWER 0xC1 ++#define ST7703_CMD_UNK_C6 0xC6 ++#define ST7703_CMD_SETPANEL 0xCC ++#define ST7703_CMD_SETGAMMA 0xE0 ++#define ST7703_CMD_SETEQ 0xE3 ++#define ST7703_CMD_SETGIP1 0xE9 ++#define ST7703_CMD_SETGIP2 0xEA ++ ++static const char * const regulator_names[] = { ++ "iovcc", ++ "vcc", ++}; ++ ++struct xbd599 { ++ struct device *dev; ++ struct drm_panel panel; ++ struct gpio_desc *reset_gpio; ++ struct regulator_bulk_data supplies[ARRAY_SIZE(regulator_names)]; ++ bool prepared; ++}; ++ ++static inline struct xbd599 *panel_to_xbd599(struct drm_panel *panel) ++{ ++ return container_of(panel, struct xbd599, panel); ++} ++ ++#define dsi_dcs_write_seq(dsi, cmd, seq...) do { \ ++ static const u8 d[] = { seq }; \ ++ int ret; \ ++ ret = mipi_dsi_dcs_write(dsi, cmd, d, ARRAY_SIZE(d)); \ ++ if (ret < 0) \ ++ return ret; \ ++ } while (0) ++ ++static int xbd599_init_sequence(struct xbd599 *ctx) ++{ ++ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev); ++ struct device *dev = ctx->dev; ++ int ret; ++ ++ /* ++ * Init sequence was supplied by the panel vendor. ++ */ ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETEXTC, ++ 0xF1, 0x12, 0x83); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETMIPI, ++ 0x33, 0x81, 0x05, 0xF9, 0x0E, 0x0E, 0x20, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x25, ++ 0x00, 0x91, 0x0a, 0x00, 0x00, 0x02, 0x4F, 0x11, ++ 0x00, 0x00, 0x37); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETPOWER_EXT, ++ 0x25, 0x22, 0x20, 0x03); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETRGBIF, ++ 0x10, 0x10, 0x05, 0x05, 0x03, 0xFF, 0x00, 0x00, ++ 0x00, 0x00); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETSCR, ++ 0x73, 0x73, 0x50, 0x50, 0x00, 0xC0, 0x08, 0x70, ++ 0x00); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETVDC, 0x4E); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETPANEL, 0x0B); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETCYC, 0x80); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETDISP, 0xF0, 0x12, 0xF0); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETEQ, ++ 0x00, 0x00, 0x0B, 0x0B, 0x10, 0x10, 0x00, 0x00, ++ 0x00, 0x00, 0xFF, 0x00, 0xC0, 0x10); ++ dsi_dcs_write_seq(dsi, 0xC6, 0x01, 0x00, 0xFF, 0xFF, 0x00); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETPOWER, ++ 0x74, 0x00, 0x32, 0x32, 0x77, 0xF1, 0xFF, 0xFF, ++ 0xCC, 0xCC, 0x77, 0x77); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETBGP, 0x07, 0x07); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETVCOM, 0x2C, 0x2C); ++ dsi_dcs_write_seq(dsi, 0xBF, 0x02, 0x11, 0x00); ++ ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETGIP1, ++ 0x82, 0x10, 0x06, 0x05, 0xA2, 0x0A, 0xA5, 0x12, ++ 0x31, 0x23, 0x37, 0x83, 0x04, 0xBC, 0x27, 0x38, ++ 0x0C, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x00, ++ 0x03, 0x00, 0x00, 0x00, 0x75, 0x75, 0x31, 0x88, ++ 0x88, 0x88, 0x88, 0x88, 0x88, 0x13, 0x88, 0x64, ++ 0x64, 0x20, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, ++ 0x02, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETGIP2, ++ 0x02, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x02, 0x46, 0x02, 0x88, ++ 0x88, 0x88, 0x88, 0x88, 0x88, 0x64, 0x88, 0x13, ++ 0x57, 0x13, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, ++ 0x75, 0x88, 0x23, 0x14, 0x00, 0x00, 0x02, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0A, ++ 0xA5, 0x00, 0x00, 0x00, 0x00); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETGAMMA, ++ 0x00, 0x09, 0x0D, 0x23, 0x27, 0x3C, 0x41, 0x35, ++ 0x07, 0x0D, 0x0E, 0x12, 0x13, 0x10, 0x12, 0x12, ++ 0x18, 0x00, 0x09, 0x0D, 0x23, 0x27, 0x3C, 0x41, ++ 0x35, 0x07, 0x0D, 0x0E, 0x12, 0x13, 0x10, 0x12, ++ 0x12, 0x18); ++ msleep(20); ++ ++ ret = mipi_dsi_dcs_exit_sleep_mode(dsi); ++ if (ret < 0) { ++ DRM_DEV_ERROR(dev, "Failed to exit sleep mode\n"); ++ return ret; ++ } ++ msleep(250); ++ ++ ret = mipi_dsi_dcs_set_display_on(dsi); ++ if (ret) ++ return ret; ++ msleep(50); ++ ++ DRM_DEV_DEBUG_DRIVER(dev, "Panel init sequence done\n"); ++ return 0; ++} ++ ++static int xbd599_prepare(struct drm_panel *panel) ++{ ++ struct xbd599 *ctx = panel_to_xbd599(panel); ++ int ret; ++ ++ if (ctx->prepared) ++ return 0; ++ ++ ret = regulator_bulk_enable(ARRAY_SIZE(ctx->supplies), ctx->supplies); ++ if (ret) ++ return ret; ++ ++ DRM_DEV_DEBUG_DRIVER(ctx->dev, "Resetting the panel\n"); ++ gpiod_set_value_cansleep(ctx->reset_gpio, 1); ++ usleep_range(20, 40); ++ gpiod_set_value_cansleep(ctx->reset_gpio, 0); ++ msleep(20); ++ ++ ctx->prepared = true; ++ ++ return 0; ++} ++ ++static int xbd599_enable(struct drm_panel *panel) ++{ ++ struct xbd599 *ctx = panel_to_xbd599(panel); ++ int ret; ++ ++ ret = xbd599_init_sequence(ctx); ++ if (ret < 0) { ++ DRM_DEV_ERROR(ctx->dev, "Panel init sequence failed: %d\n", ++ ret); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static int xbd599_disable(struct drm_panel *panel) ++{ ++ struct xbd599 *ctx = panel_to_xbd599(panel); ++ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev); ++ ++ return mipi_dsi_dcs_set_display_off(dsi); ++} ++ ++static int xbd599_unprepare(struct drm_panel *panel) ++{ ++ struct xbd599 *ctx = panel_to_xbd599(panel); ++ ++ if (!ctx->prepared) ++ return 0; ++ ++ gpiod_set_value_cansleep(ctx->reset_gpio, 1); ++ regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies); ++ ctx->prepared = false; ++ ++ return 0; ++} ++ ++static const struct drm_display_mode xbd599_default_mode = { ++ .hdisplay = 720, ++ .hsync_start = 720 + 40, ++ .hsync_end = 720 + 40 + 40, ++ .htotal = 720 + 40 + 40 + 40, ++ .vdisplay = 1440, ++ .vsync_start = 1440 + 18, ++ .vsync_end = 1440 + 18 + 10, ++ .vtotal = 1440 + 18 + 10 + 17, ++ .vrefresh = 60, ++ .clock = 69000, ++ .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC, ++ ++ .width_mm = 68, ++ .height_mm = 136, ++ .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED, ++}; ++ ++static int xbd599_get_modes(struct drm_panel *panel, ++ struct drm_connector *connector) ++{ ++ struct xbd599 *ctx = panel_to_xbd599(panel); ++ struct drm_display_mode *mode; ++ ++ mode = drm_mode_duplicate(connector->dev, &xbd599_default_mode); ++ if (!mode) { ++ DRM_DEV_ERROR(ctx->dev, "Failed to add mode\n"); ++ return -ENOMEM; ++ } ++ ++ drm_mode_set_name(mode); ++ ++ mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; ++ connector->display_info.width_mm = mode->width_mm; ++ connector->display_info.height_mm = mode->height_mm; ++ drm_mode_probed_add(connector, mode); ++ ++ return 1; ++} ++ ++static const struct drm_panel_funcs xbd599_drm_funcs = { ++ .prepare = xbd599_prepare, ++ .enable = xbd599_enable, ++ .disable = xbd599_disable, ++ .unprepare = xbd599_unprepare, ++ .get_modes = xbd599_get_modes, ++}; ++ ++static int xbd599_probe(struct mipi_dsi_device *dsi) ++{ ++ struct device *dev = &dsi->dev; ++ struct xbd599 *ctx; ++ int i, ret; ++ ++ ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL); ++ if (!ctx) ++ return -ENOMEM; ++ ++ for (i = 0; i < ARRAY_SIZE(ctx->supplies); i++) ++ ctx->supplies[i].supply = regulator_names[i]; ++ ++ ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(ctx->supplies), ++ ctx->supplies); ++ if (ret < 0) { ++ DRM_DEV_ERROR(&dsi->dev, "cannot get regulators\n"); ++ return ret; ++ } ++ ++ ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW); ++ if (IS_ERR(ctx->reset_gpio)) { ++ DRM_DEV_ERROR(dev, "cannot get reset gpio\n"); ++ return PTR_ERR(ctx->reset_gpio); ++ } ++ ++ mipi_dsi_set_drvdata(dsi, ctx); ++ ++ ctx->dev = dev; ++ ++ dsi->lanes = 4; ++ dsi->format = MIPI_DSI_FMT_RGB888; ++ dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE; ++ ++ drm_panel_init(&ctx->panel, &dsi->dev, &xbd599_drm_funcs, ++ DRM_MODE_CONNECTOR_DSI); ++ ++ ret = drm_panel_of_backlight(&ctx->panel); ++ if (ret) ++ return ret; ++ ++ drm_panel_add(&ctx->panel); ++ ++ ret = mipi_dsi_attach(dsi); ++ if (ret < 0) { ++ DRM_DEV_ERROR(dev, "mipi_dsi_attach failed. Is host ready?\n"); ++ drm_panel_remove(&ctx->panel); ++ return ret; ++ } ++ ++ DRM_DEV_INFO(dev, "%ux%u@%u %ubpp dsi %udl - ready\n", ++ xbd599_default_mode.hdisplay, ++ xbd599_default_mode.vdisplay, ++ xbd599_default_mode.vrefresh, ++ mipi_dsi_pixel_format_to_bpp(dsi->format), dsi->lanes); ++ ++ return 0; ++} ++ ++static void xbd599_shutdown(struct mipi_dsi_device *dsi) ++{ ++ struct xbd599 *ctx = mipi_dsi_get_drvdata(dsi); ++ int ret; ++ ++ ret = drm_panel_unprepare(&ctx->panel); ++ if (ret < 0) ++ DRM_DEV_ERROR(&dsi->dev, "Failed to unprepare panel: %d\n", ++ ret); ++} ++ ++static int xbd599_remove(struct mipi_dsi_device *dsi) ++{ ++ struct xbd599 *ctx = mipi_dsi_get_drvdata(dsi); ++ int ret; ++ ++ xbd599_shutdown(dsi); ++ ++ ret = mipi_dsi_detach(dsi); ++ if (ret < 0) ++ DRM_DEV_ERROR(&dsi->dev, "Failed to detach from DSI host: %d\n", ++ ret); ++ ++ drm_panel_remove(&ctx->panel); ++ ++ return 0; ++} ++ ++static const struct of_device_id xbd599_of_match[] = { ++ { .compatible = "xingbangda,xbd599", }, ++ { /* sentinel */ } ++}; ++MODULE_DEVICE_TABLE(of, xbd599_of_match); ++ ++static struct mipi_dsi_driver xbd599_driver = { ++ .probe = xbd599_probe, ++ .remove = xbd599_remove, ++ .shutdown = xbd599_shutdown, ++ .driver = { ++ .name = "panel-xingbangda-xbd599", ++ .of_match_table = xbd599_of_match, ++ }, ++}; ++module_mipi_dsi_driver(xbd599_driver); ++ ++MODULE_AUTHOR("Icenowy Zheng "); ++MODULE_DESCRIPTION("DRM driver for Xingbangda XBD599 MIPI DSI panel"); ++MODULE_LICENSE("GPL v2"); +diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +index de8a11abd66a..7e8c1a3c9b8f 100644 +--- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c ++++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +@@ -556,7 +556,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, + */ + #define HSA_PACKET_OVERHEAD 10 + hsa = max((unsigned int)HSA_PACKET_OVERHEAD, +- (mode->hsync_end - mode->hsync_start) * Bpp - HSA_PACKET_OVERHEAD); ++ (mode->hsync_end - mode->hsync_start) * Bpp) - HSA_PACKET_OVERHEAD; + + /* + * The backporch is set using a blanking packet (4 +@@ -565,7 +565,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, + */ + #define HBP_PACKET_OVERHEAD 6 + hbp = max((unsigned int)HBP_PACKET_OVERHEAD, +- (mode->htotal - mode->hsync_end) * Bpp - HBP_PACKET_OVERHEAD); ++ (mode->htotal - mode->hsync_end) * Bpp) - HBP_PACKET_OVERHEAD; + + /* + * The frontporch is set using a sync event (4 bytes) +@@ -575,7 +575,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, + */ + #define HFP_PACKET_OVERHEAD 16 + hfp = max((unsigned int)HFP_PACKET_OVERHEAD, +- (mode->hsync_start - mode->hdisplay) * Bpp - HFP_PACKET_OVERHEAD); ++ (mode->hsync_start - mode->hdisplay) * Bpp) - HFP_PACKET_OVERHEAD; + + /* + * The blanking is set using a sync event (4 bytes) +@@ -584,8 +584,8 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, + */ + #define HBLK_PACKET_OVERHEAD 10 + hblk = max((unsigned int)HBLK_PACKET_OVERHEAD, +- (mode->htotal - (mode->hsync_end - mode->hsync_start)) * Bpp - +- HBLK_PACKET_OVERHEAD); ++ (mode->htotal - (mode->hsync_end - mode->hsync_start)) * Bpp) - ++ HBLK_PACKET_OVERHEAD; + + /* + * And I'm not entirely sure what vblk is about. The driver in +diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c +index 7f41213d5ae3..86a23ede344c 100644 +--- a/drivers/hid/hid-rmi.c ++++ b/drivers/hid/hid-rmi.c +@@ -322,19 +322,12 @@ static int rmi_input_event(struct hid_device *hdev, u8 *data, int size) + { + struct rmi_data *hdata = hid_get_drvdata(hdev); + struct rmi_device *rmi_dev = hdata->xport.rmi_dev; +- unsigned long flags; + + if (!(test_bit(RMI_STARTED, &hdata->flags))) + return 0; + +- local_irq_save(flags); +- + rmi_set_attn_data(rmi_dev, data[1], &data[2], size - 2); + +- generic_handle_irq(hdata->rmi_irq); +- +- local_irq_restore(flags); +- + return 1; + } + +@@ -591,56 +584,6 @@ static const struct rmi_transport_ops hid_rmi_ops = { + .reset = rmi_hid_reset, + }; + +-static void rmi_irq_teardown(void *data) +-{ +- struct rmi_data *hdata = data; +- struct irq_domain *domain = hdata->domain; +- +- if (!domain) +- return; +- +- irq_dispose_mapping(irq_find_mapping(domain, 0)); +- +- irq_domain_remove(domain); +- hdata->domain = NULL; +- hdata->rmi_irq = 0; +-} +- +-static int rmi_irq_map(struct irq_domain *h, unsigned int virq, +- irq_hw_number_t hw_irq_num) +-{ +- irq_set_chip_and_handler(virq, &dummy_irq_chip, handle_simple_irq); +- +- return 0; +-} +- +-static const struct irq_domain_ops rmi_irq_ops = { +- .map = rmi_irq_map, +-}; +- +-static int rmi_setup_irq_domain(struct hid_device *hdev) +-{ +- struct rmi_data *hdata = hid_get_drvdata(hdev); +- int ret; +- +- hdata->domain = irq_domain_create_linear(hdev->dev.fwnode, 1, +- &rmi_irq_ops, hdata); +- if (!hdata->domain) +- return -ENOMEM; +- +- ret = devm_add_action_or_reset(&hdev->dev, &rmi_irq_teardown, hdata); +- if (ret) +- return ret; +- +- hdata->rmi_irq = irq_create_mapping(hdata->domain, 0); +- if (hdata->rmi_irq <= 0) { +- hid_err(hdev, "Can't allocate an IRQ\n"); +- return hdata->rmi_irq < 0 ? hdata->rmi_irq : -ENXIO; +- } +- +- return 0; +-} +- + static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id) + { + struct rmi_data *data = NULL; +@@ -713,18 +656,11 @@ static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id) + + mutex_init(&data->page_mutex); + +- ret = rmi_setup_irq_domain(hdev); +- if (ret) { +- hid_err(hdev, "failed to allocate IRQ domain\n"); +- return ret; +- } +- + if (data->device_flags & RMI_DEVICE_HAS_PHYS_BUTTONS) + rmi_hid_pdata.f30_data.disable = true; + + data->xport.dev = hdev->dev.parent; + data->xport.pdata = rmi_hid_pdata; +- data->xport.pdata.irq = data->rmi_irq; + data->xport.proto_name = "hid"; + data->xport.ops = &hid_rmi_ops; + +diff --git a/drivers/infiniband/sw/rxe/rxe.c b/drivers/infiniband/sw/rxe/rxe.c +index 77f2c7cd1216..aea28fb3d6a9 100644 +--- a/drivers/infiniband/sw/rxe/rxe.c ++++ b/drivers/infiniband/sw/rxe/rxe.c +@@ -305,6 +305,8 @@ static int __init rxe_module_init(void) + { + int err; + ++ mark_tech_preview("Soft-RoCE Transport Driver", THIS_MODULE); ++ + /* initialize slab caches for managed objects */ + err = rxe_cache_init(); + if (err) { +diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c +index 258d5fe3d395..f7298e3dc8f3 100644 +--- a/drivers/input/rmi4/rmi_driver.c ++++ b/drivers/input/rmi4/rmi_driver.c +@@ -182,34 +182,47 @@ void rmi_set_attn_data(struct rmi_device *rmi_dev, unsigned long irq_status, + attn_data.data = fifo_data; + + kfifo_put(&drvdata->attn_fifo, attn_data); ++ ++ schedule_work(&drvdata->attn_work); + } + EXPORT_SYMBOL_GPL(rmi_set_attn_data); + +-static irqreturn_t rmi_irq_fn(int irq, void *dev_id) ++static void attn_callback(struct work_struct *work) + { +- struct rmi_device *rmi_dev = dev_id; +- struct rmi_driver_data *drvdata = dev_get_drvdata(&rmi_dev->dev); ++ struct rmi_driver_data *drvdata = container_of(work, ++ struct rmi_driver_data, ++ attn_work); + struct rmi4_attn_data attn_data = {0}; + int ret, count; + + count = kfifo_get(&drvdata->attn_fifo, &attn_data); +- if (count) { +- *(drvdata->irq_status) = attn_data.irq_status; +- drvdata->attn_data = attn_data; +- } ++ if (!count) ++ return; + +- ret = rmi_process_interrupt_requests(rmi_dev); ++ *(drvdata->irq_status) = attn_data.irq_status; ++ drvdata->attn_data = attn_data; ++ ++ ret = rmi_process_interrupt_requests(drvdata->rmi_dev); + if (ret) +- rmi_dbg(RMI_DEBUG_CORE, &rmi_dev->dev, ++ rmi_dbg(RMI_DEBUG_CORE, &drvdata->rmi_dev->dev, + "Failed to process interrupt request: %d\n", ret); + +- if (count) { +- kfree(attn_data.data); +- drvdata->attn_data.data = NULL; +- } ++ kfree(attn_data.data); ++ drvdata->attn_data.data = NULL; + + if (!kfifo_is_empty(&drvdata->attn_fifo)) +- return rmi_irq_fn(irq, dev_id); ++ schedule_work(&drvdata->attn_work); ++} ++ ++static irqreturn_t rmi_irq_fn(int irq, void *dev_id) ++{ ++ struct rmi_device *rmi_dev = dev_id; ++ int ret; ++ ++ ret = rmi_process_interrupt_requests(rmi_dev); ++ if (ret) ++ rmi_dbg(RMI_DEBUG_CORE, &rmi_dev->dev, ++ "Failed to process interrupt request: %d\n", ret); + + return IRQ_HANDLED; + } +@@ -217,7 +230,6 @@ static irqreturn_t rmi_irq_fn(int irq, void *dev_id) + static int rmi_irq_init(struct rmi_device *rmi_dev) + { + struct rmi_device_platform_data *pdata = rmi_get_platform_data(rmi_dev); +- struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev); + int irq_flags = irq_get_trigger_type(pdata->irq); + int ret; + +@@ -235,8 +247,6 @@ static int rmi_irq_init(struct rmi_device *rmi_dev) + return ret; + } + +- data->enabled = true; +- + return 0; + } + +@@ -886,23 +896,27 @@ void rmi_enable_irq(struct rmi_device *rmi_dev, bool clear_wake) + if (data->enabled) + goto out; + +- enable_irq(irq); +- data->enabled = true; +- if (clear_wake && device_may_wakeup(rmi_dev->xport->dev)) { +- retval = disable_irq_wake(irq); +- if (retval) +- dev_warn(&rmi_dev->dev, +- "Failed to disable irq for wake: %d\n", +- retval); +- } ++ if (irq) { ++ enable_irq(irq); ++ data->enabled = true; ++ if (clear_wake && device_may_wakeup(rmi_dev->xport->dev)) { ++ retval = disable_irq_wake(irq); ++ if (retval) ++ dev_warn(&rmi_dev->dev, ++ "Failed to disable irq for wake: %d\n", ++ retval); ++ } + +- /* +- * Call rmi_process_interrupt_requests() after enabling irq, +- * otherwise we may lose interrupt on edge-triggered systems. +- */ +- irq_flags = irq_get_trigger_type(pdata->irq); +- if (irq_flags & IRQ_TYPE_EDGE_BOTH) +- rmi_process_interrupt_requests(rmi_dev); ++ /* ++ * Call rmi_process_interrupt_requests() after enabling irq, ++ * otherwise we may lose interrupt on edge-triggered systems. ++ */ ++ irq_flags = irq_get_trigger_type(pdata->irq); ++ if (irq_flags & IRQ_TYPE_EDGE_BOTH) ++ rmi_process_interrupt_requests(rmi_dev); ++ } else { ++ data->enabled = true; ++ } + + out: + mutex_unlock(&data->enabled_mutex); +@@ -922,20 +936,22 @@ void rmi_disable_irq(struct rmi_device *rmi_dev, bool enable_wake) + goto out; + + data->enabled = false; +- disable_irq(irq); +- if (enable_wake && device_may_wakeup(rmi_dev->xport->dev)) { +- retval = enable_irq_wake(irq); +- if (retval) +- dev_warn(&rmi_dev->dev, +- "Failed to enable irq for wake: %d\n", +- retval); +- } +- +- /* make sure the fifo is clean */ +- while (!kfifo_is_empty(&data->attn_fifo)) { +- count = kfifo_get(&data->attn_fifo, &attn_data); +- if (count) +- kfree(attn_data.data); ++ if (irq) { ++ disable_irq(irq); ++ if (enable_wake && device_may_wakeup(rmi_dev->xport->dev)) { ++ retval = enable_irq_wake(irq); ++ if (retval) ++ dev_warn(&rmi_dev->dev, ++ "Failed to enable irq for wake: %d\n", ++ retval); ++ } ++ } else { ++ /* make sure the fifo is clean */ ++ while (!kfifo_is_empty(&data->attn_fifo)) { ++ count = kfifo_get(&data->attn_fifo, &attn_data); ++ if (count) ++ kfree(attn_data.data); ++ } + } + + out: +@@ -981,6 +997,8 @@ static int rmi_driver_remove(struct device *dev) + irq_domain_remove(data->irqdomain); + data->irqdomain = NULL; + ++ cancel_work_sync(&data->attn_work); ++ + rmi_f34_remove_sysfs(rmi_dev); + rmi_free_function_list(rmi_dev); + +@@ -1219,9 +1237,15 @@ static int rmi_driver_probe(struct device *dev) + } + } + +- retval = rmi_irq_init(rmi_dev); +- if (retval < 0) +- goto err_destroy_functions; ++ if (pdata->irq) { ++ retval = rmi_irq_init(rmi_dev); ++ if (retval < 0) ++ goto err_destroy_functions; ++ } ++ ++ data->enabled = true; ++ ++ INIT_WORK(&data->attn_work, attn_callback); + + if (data->f01_container->dev.driver) { + /* Driver already bound, so enable ATTN now. */ +diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c +index 0e4fbdc0f5e5..4f07b4ebc936 100644 +--- a/drivers/iommu/iommu.c ++++ b/drivers/iommu/iommu.c +@@ -7,6 +7,7 @@ + #define pr_fmt(fmt) "iommu: " fmt + + #include ++#include + #include + #include + #include +@@ -2849,3 +2850,24 @@ u32 iommu_sva_get_pasid(struct iommu_sva *handle) + return ops->sva_get_pasid(handle); + } + EXPORT_SYMBOL_GPL(iommu_sva_get_pasid); ++ ++#ifdef CONFIG_ARM64 ++static int __init iommu_quirks(void) ++{ ++ const char *vendor, *name; ++ ++ vendor = dmi_get_system_info(DMI_SYS_VENDOR); ++ name = dmi_get_system_info(DMI_PRODUCT_NAME); ++ ++ if (vendor && ++ (strncmp(vendor, "GIGABYTE", 8) == 0 && name && ++ (strncmp(name, "R120", 4) == 0 || ++ strncmp(name, "R270", 4) == 0))) { ++ pr_warn("Gigabyte %s detected, force iommu passthrough mode", name); ++ iommu_def_domain_type = IOMMU_DOMAIN_IDENTITY; ++ } ++ ++ return 0; ++} ++arch_initcall(iommu_quirks); ++#endif +diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c +index 18b91ea1a353..b71f77a5799f 100644 +--- a/drivers/message/fusion/mptsas.c ++++ b/drivers/message/fusion/mptsas.c +@@ -5290,6 +5290,11 @@ mptsas_probe(struct pci_dev *pdev, const struct pci_device_id *id) + ioc, MPI_SAS_OP_CLEAR_ALL_PERSISTENT); + } + ++#ifdef CONFIG_RHEL_DIFFERENCES ++ add_taint(TAINT_SUPPORT_REMOVED, LOCKDEP_STILL_OK); ++ pr_warn("MPTSAS MODULE IS NOT SUPPORTED\n"); ++#endif ++ + error = scsi_add_host(sh, &ioc->pcidev->dev); + if (error) { + dprintk(ioc, printk(MYIOC_s_ERR_FMT +@@ -5353,6 +5358,10 @@ static void mptsas_remove(struct pci_dev *pdev) + } + + static struct pci_device_id mptsas_pci_table[] = { ++#ifdef CONFIG_RHEL_DIFFERENCES ++ { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068, ++ PCI_VENDOR_ID_VMWARE, PCI_ANY_ID }, ++#else + { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1064, + PCI_ANY_ID, PCI_ANY_ID }, + { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068, +@@ -5365,6 +5374,7 @@ static struct pci_device_id mptsas_pci_table[] = { + PCI_ANY_ID, PCI_ANY_ID }, + { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068_820XELP, + PCI_ANY_ID, PCI_ANY_ID }, ++#endif + {0} /* Terminating entry */ + }; + MODULE_DEVICE_TABLE(pci, mptsas_pci_table); +diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c +index eabc4de5816c..1f458e35effb 100644 +--- a/drivers/message/fusion/mptspi.c ++++ b/drivers/message/fusion/mptspi.c +@@ -1238,12 +1238,17 @@ static struct spi_function_template mptspi_transport_functions = { + */ + + static struct pci_device_id mptspi_pci_table[] = { ++#ifdef CONFIG_RHEL_DIFFERENCES ++ { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_53C1030, ++ PCI_VENDOR_ID_VMWARE, PCI_ANY_ID }, ++#else + { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_53C1030, + PCI_ANY_ID, PCI_ANY_ID }, + { PCI_VENDOR_ID_ATTO, MPI_MANUFACTPAGE_DEVID_53C1030, + PCI_ANY_ID, PCI_ANY_ID }, + { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_53C1035, + PCI_ANY_ID, PCI_ANY_ID }, ++#endif + {0} /* Terminating entry */ + }; + MODULE_DEVICE_TABLE(pci, mptspi_pci_table); +@@ -1534,6 +1539,12 @@ mptspi_probe(struct pci_dev *pdev, const struct pci_device_id *id) + 0, 0, 0, 0, 5); + + scsi_scan_host(sh); ++ ++#ifdef CONFIG_RHEL_DIFFERENCES ++ add_taint(TAINT_SUPPORT_REMOVED, LOCKDEP_STILL_OK); ++ pr_warn("MPTSPI MODULE IS NOT SUPPORTED\n"); ++#endif ++ + return 0; + + out_mptspi_probe: +diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c +index b2f2fcfdf732..a9e4c059d402 100644 +--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c ++++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c +@@ -1245,9 +1245,9 @@ static s32 e1000_disable_ulp_lpt_lp(struct e1000_hw *hw, bool force) + ew32(H2ME, mac_reg); + } + +- /* Poll up to 300msec for ME to clear ULP_CFG_DONE. */ ++ /* Poll up to 2.5sec for ME to clear ULP_CFG_DONE. */ + while (er32(FWSM) & E1000_FWSM_ULP_CFG_DONE) { +- if (i++ == 30) { ++ if (i++ == 250) { + ret_val = -E1000_ERR_PHY; + goto out; + } +diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c +index 54a7f55eb8c1..4b409e3c9b7c 100644 +--- a/drivers/net/ethernet/intel/ice/ice_main.c ++++ b/drivers/net/ethernet/intel/ice/ice_main.c +@@ -4780,6 +4780,7 @@ static int __init ice_module_init(void) + + pr_info("%s\n", ice_driver_string); + pr_info("%s\n", ice_copyright); ++ mark_tech_preview(DRV_SUMMARY, THIS_MODULE); + + ice_wq = alloc_workqueue("%s", WQ_MEM_RECLAIM, 0, KBUILD_MODNAME); + if (!ice_wq) { +diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c +index 449466f71040..f5678ed743bf 100644 +--- a/drivers/pci/pci-driver.c ++++ b/drivers/pci/pci-driver.c +@@ -19,6 +19,7 @@ + #include + #include + #include ++#include + #include "pci.h" + #include "pcie/portdrv.h" + +@@ -279,6 +280,34 @@ static const struct pci_device_id *pci_match_device(struct pci_driver *drv, + return found_id; + } + ++/** ++ * pci_hw_vendor_status - Tell if a PCI device is supported by the HW vendor ++ * @ids: array of PCI device id structures to search in ++ * @dev: the PCI device structure to match against ++ * ++ * Used by a driver to check whether this device is in its list of unsupported ++ * devices. Returns the matching pci_device_id structure or %NULL if there is ++ * no match. ++ * ++ * Reserved for Internal Red Hat use only. ++ */ ++const struct pci_device_id *pci_hw_vendor_status( ++ const struct pci_device_id *ids, ++ struct pci_dev *dev) ++{ ++ char devinfo[64]; ++ const struct pci_device_id *ret = pci_match_id(ids, dev); ++ ++ if (ret) { ++ snprintf(devinfo, sizeof(devinfo), "%s %s", ++ dev_driver_string(&dev->dev), dev_name(&dev->dev)); ++ mark_hardware_deprecated(devinfo); ++ } ++ ++ return ret; ++} ++EXPORT_SYMBOL(pci_hw_vendor_status); ++ + struct drv_dev_and_id { + struct pci_driver *drv; + struct pci_dev *dev; +diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c +index 2a589b6d6ed8..a2b2333e6ab1 100644 +--- a/drivers/pci/quirks.c ++++ b/drivers/pci/quirks.c +@@ -4196,6 +4196,30 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9000, + DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9084, + quirk_bridge_cavm_thrx2_pcie_root); + ++/* ++ * PCI BAR 5 is not setup correctly for the on-board AHCI controller ++ * on Broadcom's Vulcan processor. Added a quirk to fix BAR 5 by ++ * using BAR 4's resources which are populated correctly and NOT ++ * actually used by the AHCI controller. ++ */ ++static void quirk_fix_vulcan_ahci_bars(struct pci_dev *dev) ++{ ++ struct resource *r = &dev->resource[4]; ++ ++ if (!(r->flags & IORESOURCE_MEM) || (r->start == 0)) ++ return; ++ ++ /* Set BAR5 resource to BAR4 */ ++ dev->resource[5] = *r; ++ ++ /* Update BAR5 in pci config space */ ++ pci_write_config_dword(dev, PCI_BASE_ADDRESS_5, r->start); ++ ++ /* Clear BAR4's resource */ ++ memset(r, 0, sizeof(*r)); ++} ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9027, quirk_fix_vulcan_ahci_bars); ++ + /* + * Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) + * class code. Fix it. +diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c +index a3aee146537b..cf50fa206890 100644 +--- a/drivers/scsi/aacraid/linit.c ++++ b/drivers/scsi/aacraid/linit.c +@@ -78,6 +78,7 @@ char aac_driver_version[] = AAC_DRIVER_FULL_VERSION; + * Note: The last field is used to index into aac_drivers below. + */ + static const struct pci_device_id aac_pci_tbl[] = { ++#ifndef CONFIG_RHEL_DIFFERENCES + { 0x1028, 0x0001, 0x1028, 0x0001, 0, 0, 0 }, /* PERC 2/Si (Iguana/PERC2Si) */ + { 0x1028, 0x0002, 0x1028, 0x0002, 0, 0, 1 }, /* PERC 3/Di (Opal/PERC3Di) */ + { 0x1028, 0x0003, 0x1028, 0x0003, 0, 0, 2 }, /* PERC 3/Si (SlimFast/PERC3Si */ +@@ -145,6 +146,7 @@ static const struct pci_device_id aac_pci_tbl[] = { + { 0x9005, 0x0285, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 59 }, /* Adaptec Catch All */ + { 0x9005, 0x0286, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 60 }, /* Adaptec Rocket Catch All */ + { 0x9005, 0x0288, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 61 }, /* Adaptec NEMER/ARK Catch All */ ++#endif + { 0x9005, 0x028b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 62 }, /* Adaptec PMC Series 6 (Tupelo) */ + { 0x9005, 0x028c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 63 }, /* Adaptec PMC Series 7 (Denali) */ + { 0x9005, 0x028d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 64 }, /* Adaptec PMC Series 8 */ +diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c +index 5c3513a4b450..0d59aca2cf58 100644 +--- a/drivers/scsi/be2iscsi/be_main.c ++++ b/drivers/scsi/be2iscsi/be_main.c +@@ -370,11 +370,13 @@ static int beiscsi_eh_device_reset(struct scsi_cmnd *sc) + + /*------------------- PCI Driver operations and data ----------------- */ + static const struct pci_device_id beiscsi_pci_id_table[] = { ++#ifndef CONFIG_RHEL_DIFFERENCES + { PCI_DEVICE(BE_VENDOR_ID, BE_DEVICE_ID1) }, + { PCI_DEVICE(BE_VENDOR_ID, BE_DEVICE_ID2) }, + { PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID1) }, + { PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID2) }, + { PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID3) }, ++#endif + { PCI_DEVICE(ELX_VENDOR_ID, OC_SKH_ID1) }, + { 0 } + }; +diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c +index 48d5da59262b..84d90eedb067 100644 +--- a/drivers/scsi/hpsa.c ++++ b/drivers/scsi/hpsa.c +@@ -82,7 +82,9 @@ MODULE_DESCRIPTION("Driver for HP Smart Array Controller version " \ + MODULE_SUPPORTED_DEVICE("HP Smart Array Controllers"); + MODULE_VERSION(HPSA_DRIVER_VERSION); + MODULE_LICENSE("GPL"); ++#ifndef CONFIG_RHEL_DIFFERENCES + MODULE_ALIAS("cciss"); ++#endif + + static int hpsa_simple_mode; + module_param(hpsa_simple_mode, int, S_IRUGO|S_IWUSR); +@@ -144,10 +146,12 @@ static const struct pci_device_id hpsa_pci_device_id[] = { + {PCI_VENDOR_ID_HP_3PAR, 0x0075, 0x1590, 0x007D}, + {PCI_VENDOR_ID_HP_3PAR, 0x0075, 0x1590, 0x0088}, + {PCI_VENDOR_ID_HP, 0x333f, 0x103c, 0x333f}, ++#ifndef CONFIG_RHEL_DIFFERENCES + {PCI_VENDOR_ID_HP, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, + PCI_CLASS_STORAGE_RAID << 8, 0xffff << 8, 0}, + {PCI_VENDOR_ID_COMPAQ, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, + PCI_CLASS_STORAGE_RAID << 8, 0xffff << 8, 0}, ++#endif + {0,} + }; + +diff --git a/drivers/scsi/lpfc/lpfc_ids.h b/drivers/scsi/lpfc/lpfc_ids.h +index d48414e295a0..ba0e384412c9 100644 +--- a/drivers/scsi/lpfc/lpfc_ids.h ++++ b/drivers/scsi/lpfc/lpfc_ids.h +@@ -24,6 +24,7 @@ + #include + + const struct pci_device_id lpfc_id_table[] = { ++#ifndef CONFIG_RHEL_DIFFERENCES + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_VIPER, + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_FIREFLY, +@@ -54,14 +55,19 @@ const struct pci_device_id lpfc_id_table[] = { + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HELIOS_DCSP, + PCI_ANY_ID, PCI_ANY_ID, }, ++#endif + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BMID, + PCI_ANY_ID, PCI_ANY_ID, }, ++#ifndef CONFIG_RHEL_DIFFERENCES + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BSMB, + PCI_ANY_ID, PCI_ANY_ID, }, ++#endif + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR, + PCI_ANY_ID, PCI_ANY_ID, }, ++#ifndef CONFIG_RHEL_DIFFERENCES + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HORNET, + PCI_ANY_ID, PCI_ANY_ID, }, ++#endif + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR_SCSP, + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR_DCSP, +@@ -70,6 +76,7 @@ const struct pci_device_id lpfc_id_table[] = { + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZSMB, + PCI_ANY_ID, PCI_ANY_ID, }, ++#ifndef CONFIG_RHEL_DIFFERENCES + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_TFLY, + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LP101, +@@ -80,6 +87,7 @@ const struct pci_device_id lpfc_id_table[] = { + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LPE11000S, + PCI_ANY_ID, PCI_ANY_ID, }, ++#endif + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT, + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_MID, +@@ -92,6 +100,7 @@ const struct pci_device_id lpfc_id_table[] = { + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_S, + PCI_ANY_ID, PCI_ANY_ID, }, ++#ifndef CONFIG_RHEL_DIFFERENCES + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_PROTEUS_VF, + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_PROTEUS_PF, +@@ -102,18 +111,23 @@ const struct pci_device_id lpfc_id_table[] = { + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_SERVERENGINE, PCI_DEVICE_ID_TOMCAT, + PCI_ANY_ID, PCI_ANY_ID, }, ++#endif + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_FALCON, + PCI_ANY_ID, PCI_ANY_ID, }, ++#ifndef CONFIG_RHEL_DIFFERENCES + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BALIUS, + PCI_ANY_ID, PCI_ANY_ID, }, ++#endif + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_FC, + PCI_ANY_ID, PCI_ANY_ID, }, ++#ifndef CONFIG_RHEL_DIFFERENCES + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_FCOE, + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_FC_VF, + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_FCOE_VF, + PCI_ANY_ID, PCI_ANY_ID, }, ++#endif + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_G6_FC, + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_G7_FC, +diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c +index 020270ce790b..de841140216b 100644 +--- a/drivers/scsi/megaraid/megaraid_sas_base.c ++++ b/drivers/scsi/megaraid/megaraid_sas_base.c +@@ -138,6 +138,7 @@ static void megasas_get_pd_info(struct megasas_instance *instance, + */ + static struct pci_device_id megasas_pci_table[] = { + ++#ifndef CONFIG_RHEL_DIFFERENCES + {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS1064R)}, + /* xscale IOP */ + {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS1078R)}, +@@ -156,6 +157,7 @@ static struct pci_device_id megasas_pci_table[] = { + /* xscale IOP, vega */ + {PCI_DEVICE(PCI_VENDOR_ID_DELL, PCI_DEVICE_ID_DELL_PERC5)}, + /* xscale IOP */ ++#endif + {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_FUSION)}, + /* Fusion */ + {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_PLASMA)}, +diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c +index 2e2756d8a49b..a67a47d3fce1 100644 +--- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c ++++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c +@@ -11033,6 +11033,7 @@ bool scsih_ncq_prio_supp(struct scsi_device *sdev) + * The pci device ids are defined in mpi/mpi2_cnfg.h. + */ + static const struct pci_device_id mpt3sas_pci_table[] = { ++#ifndef CONFIG_RHEL_DIFFERENCES + /* Spitfire ~ 2004 */ + { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2004, + PCI_ANY_ID, PCI_ANY_ID }, +@@ -11051,6 +11052,7 @@ static const struct pci_device_id mpt3sas_pci_table[] = { + PCI_ANY_ID, PCI_ANY_ID }, + { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2116_2, + PCI_ANY_ID, PCI_ANY_ID }, ++#endif + /* Thunderbolt ~ 2208 */ + { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2208_1, + PCI_ANY_ID, PCI_ANY_ID }, +@@ -11075,9 +11077,11 @@ static const struct pci_device_id mpt3sas_pci_table[] = { + PCI_ANY_ID, PCI_ANY_ID }, + { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SWITCH_MPI_EP_1, + PCI_ANY_ID, PCI_ANY_ID }, ++#ifndef CONFIG_RHEL_DIFFERENCES + /* SSS6200 */ + { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SSS6200, + PCI_ANY_ID, PCI_ANY_ID }, ++#endif + /* Fury ~ 3004 and 3008 */ + { MPI2_MFGPAGE_VENDORID_LSI, MPI25_MFGPAGE_DEVID_SAS3004, + PCI_ANY_ID, PCI_ANY_ID }, +diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c +index 8da00ba54aec..cf5ccbdd7fbc 100644 +--- a/drivers/scsi/qla2xxx/qla_os.c ++++ b/drivers/scsi/qla2xxx/qla_os.c +@@ -7796,6 +7796,7 @@ static const struct pci_error_handlers qla2xxx_err_handler = { + }; + + static struct pci_device_id qla2xxx_pci_tbl[] = { ++#ifndef CONFIG_RHEL_DIFFERENCES + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2100) }, + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2200) }, + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2300) }, +@@ -7808,13 +7809,18 @@ static struct pci_device_id qla2xxx_pci_tbl[] = { + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8432) }, + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP5422) }, + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP5432) }, ++#endif + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2532) }, + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2031) }, ++#ifndef CONFIG_RHEL_DIFFERENCES + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8001) }, + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8021) }, ++#endif + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8031) }, ++#ifndef CONFIG_RHEL_DIFFERENCES + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISPF001) }, + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8044) }, ++#endif + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2071) }, + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2271) }, + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2261) }, +diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c +index 676778cbc550..e41772d11f26 100644 +--- a/drivers/scsi/qla4xxx/ql4_os.c ++++ b/drivers/scsi/qla4xxx/ql4_os.c +@@ -9868,6 +9868,7 @@ static struct pci_device_id qla4xxx_pci_tbl[] = { + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + }, ++#ifndef CONFIG_RHEL_DIFFERENCES + { + .vendor = PCI_VENDOR_ID_QLOGIC, + .device = PCI_DEVICE_ID_QLOGIC_ISP8022, +@@ -9886,6 +9887,7 @@ static struct pci_device_id qla4xxx_pci_tbl[] = { + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + }, ++#endif + {0, 0}, + }; + MODULE_DEVICE_TABLE(pci, qla4xxx_pci_tbl); +diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c +index ca1e6cf6a38e..af3ce8608ed3 100644 +--- a/drivers/scsi/smartpqi/smartpqi_init.c ++++ b/drivers/scsi/smartpqi/smartpqi_init.c +@@ -8250,6 +8250,18 @@ static const struct pci_device_id pqi_pci_id_table[] = { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + 0x19e5, 0xd22c) + }, ++ { ++ PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, ++ 0x1bd4, 0x004a) ++ }, ++ { ++ PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, ++ 0x1bd4, 0x004b) ++ }, ++ { ++ PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, ++ 0x1bd4, 0x004c) ++ }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + PCI_VENDOR_ID_ADAPTEC2, 0x0110) +@@ -8386,6 +8398,10 @@ static const struct pci_device_id pqi_pci_id_table[] = { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + PCI_VENDOR_ID_ADVANTECH, 0x8312) + }, ++ { ++ PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, ++ PCI_VENDOR_ID_ADVANTECH, 0x8312) ++ }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + PCI_VENDOR_ID_DELL, 0x1fe0) +diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c +index 5b768b80d1ee..6929b6b5186b 100644 +--- a/drivers/usb/core/hub.c ++++ b/drivers/usb/core/hub.c +@@ -5517,6 +5517,13 @@ static void hub_event(struct work_struct *work) + (u16) hub->change_bits[0], + (u16) hub->event_bits[0]); + ++ /* Don't disconnect USB-SATA on TrimSlice */ ++ if (strcmp(dev_name(hdev->bus->controller), "tegra-ehci.0") == 0) { ++ if ((hdev->state == 7) && (hub->change_bits[0] == 0) && ++ (hub->event_bits[0] == 0x2)) ++ hub->event_bits[0] = 0; ++ } ++ + /* 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/include/linux/efi.h b/include/linux/efi.h +index d7c0e73af2b9..c2af576741d5 100644 +--- a/include/linux/efi.h ++++ b/include/linux/efi.h +@@ -43,6 +43,8 @@ + #define EFI_ABORTED (21 | (1UL << (BITS_PER_LONG-1))) + #define EFI_SECURITY_VIOLATION (26 | (1UL << (BITS_PER_LONG-1))) + ++#define EFI_IS_ERROR(x) ((x) & (1UL << (BITS_PER_LONG-1))) ++ + typedef unsigned long efi_status_t; + typedef u8 efi_bool_t; + typedef u16 efi_char16_t; /* UNICODE character */ +@@ -786,6 +788,14 @@ extern int __init efi_setup_pcdp_console(char *); + #define EFI_MEM_ATTR 10 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */ + #define EFI_MEM_NO_SOFT_RESERVE 11 /* Is the kernel configured to ignore soft reservations? */ + #define EFI_PRESERVE_BS_REGIONS 12 /* Are EFI boot-services memory segments available? */ ++#define EFI_SECURE_BOOT 13 /* Are we in Secure Boot mode? */ ++ ++enum efi_secureboot_mode { ++ efi_secureboot_mode_unset, ++ efi_secureboot_mode_unknown, ++ efi_secureboot_mode_disabled, ++ efi_secureboot_mode_enabled, ++}; + + #ifdef CONFIG_EFI + /* +@@ -797,6 +807,8 @@ static inline bool efi_enabled(int feature) + } + extern void efi_reboot(enum reboot_mode reboot_mode, const char *__unused); + ++extern void __init efi_set_secure_boot(enum efi_secureboot_mode mode); ++ + bool __pure __efi_soft_reserve_enabled(void); + + static inline bool __pure efi_soft_reserve_enabled(void) +@@ -823,6 +835,8 @@ efi_capsule_pending(int *reset_type) + return false; + } + ++static inline void efi_set_secure_boot(enum efi_secureboot_mode mode) {} ++ + static inline bool efi_soft_reserve_enabled(void) + { + return false; +@@ -835,6 +849,7 @@ static inline bool efi_rt_services_supported(unsigned int mask) + #endif + + extern int efi_status_to_err(efi_status_t status); ++extern const char *efi_status_to_str(efi_status_t status); + + /* + * Variable Attributes +@@ -1083,12 +1098,6 @@ static inline bool efi_runtime_disabled(void) { return true; } + extern void efi_call_virt_check_flags(unsigned long flags, const char *call); + extern unsigned long efi_call_virt_save_flags(void); + +-enum efi_secureboot_mode { +- efi_secureboot_mode_unset, +- efi_secureboot_mode_unknown, +- efi_secureboot_mode_disabled, +- efi_secureboot_mode_enabled, +-}; + enum efi_secureboot_mode efi_get_secureboot(void); + + #ifdef CONFIG_RESET_ATTACK_MITIGATION +diff --git a/include/linux/kernel.h b/include/linux/kernel.h +index e4aa29b1ad62..958f058db539 100644 +--- a/include/linux/kernel.h ++++ b/include/linux/kernel.h +@@ -601,7 +601,24 @@ extern enum system_states { + #define TAINT_LIVEPATCH 15 + #define TAINT_AUX 16 + #define TAINT_RANDSTRUCT 17 +-#define TAINT_FLAGS_COUNT 18 ++/* Start of Red Hat-specific taint flags */ ++#define TAINT_18 18 ++#define TAINT_19 19 ++#define TAINT_20 20 ++#define TAINT_21 21 ++#define TAINT_22 22 ++#define TAINT_23 23 ++#define TAINT_24 24 ++#define TAINT_25 25 ++#define TAINT_26 26 ++#define TAINT_SUPPORT_REMOVED 27 ++/* Bits 28 - 31 are reserved for Red Hat use only */ ++#define TAINT_RESERVED28 28 ++#define TAINT_RESERVED29 29 ++#define TAINT_RESERVED30 30 ++#define TAINT_UNPRIVILEGED_BPF 31 ++/* End of Red Hat-specific taint flags */ ++#define TAINT_FLAGS_COUNT 32 + #define TAINT_FLAGS_MAX ((1UL << TAINT_FLAGS_COUNT) - 1) + + struct taint_flag { +@@ -1036,4 +1053,19 @@ static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { } + /* OTHER_WRITABLE? Generally considered a bad idea. */ \ + BUILD_BUG_ON_ZERO((perms) & 2) + \ + (perms)) ++ ++struct module; ++ ++#ifdef CONFIG_RHEL_DIFFERENCES ++void mark_hardware_unsupported(const char *msg); ++void mark_hardware_deprecated(const char *msg); ++void mark_tech_preview(const char *msg, struct module *mod); ++void mark_driver_unsupported(const char *name); ++#else ++static inline void mark_hardware_unsupported(const char *msg) { } ++static inline void mark_hardware_deprecated(const char *msg) { } ++static inline void mark_tech_preview(const char *msg, struct module *mod) { } ++static inline void mark_driver_unsupported(const char *name) { } ++#endif ++ + #endif +diff --git a/include/linux/lsm_hook_defs.h b/include/linux/lsm_hook_defs.h +index 2a8c74d99015..0d3129588b78 100644 +--- a/include/linux/lsm_hook_defs.h ++++ b/include/linux/lsm_hook_defs.h +@@ -383,6 +383,8 @@ LSM_HOOK(void, LSM_RET_VOID, bpf_prog_free_security, struct bpf_prog_aux *aux) + #endif /* CONFIG_BPF_SYSCALL */ + + LSM_HOOK(int, 0, locked_down, enum lockdown_reason what) ++LSM_HOOK(int, 0, lock_kernel_down, const char *where, enum lockdown_reason level) ++ + + #ifdef CONFIG_PERF_EVENTS + LSM_HOOK(int, 0, perf_event_open, struct perf_event_attr *attr, int type) +diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h +index 9e2e3e63719d..317660f68b4f 100644 +--- a/include/linux/lsm_hooks.h ++++ b/include/linux/lsm_hooks.h +@@ -1507,6 +1507,12 @@ + * + * @what: kernel feature being accessed + * ++ * @lock_kernel_down ++ * Put the kernel into lock-down mode. ++ * ++ * @where: Where the lock-down is originating from (e.g. command line option) ++ * @level: The lock-down level (can only increase) ++ * + * Security hooks for perf events + * + * @perf_event_open: +diff --git a/include/linux/module.h b/include/linux/module.h +index a29187f7c360..9a9b05e946d7 100644 +--- a/include/linux/module.h ++++ b/include/linux/module.h +@@ -372,6 +372,7 @@ struct module { + struct module_attribute *modinfo_attrs; + const char *version; + const char *srcversion; ++ const char *rhelversion; + struct kobject *holders_dir; + + /* Exported symbols */ +diff --git a/include/linux/pci.h b/include/linux/pci.h +index 835530605c0d..1a5afb3b706f 100644 +--- a/include/linux/pci.h ++++ b/include/linux/pci.h +@@ -1406,6 +1406,10 @@ int pci_add_dynid(struct pci_driver *drv, + unsigned long driver_data); + const struct pci_device_id *pci_match_id(const struct pci_device_id *ids, + struct pci_dev *dev); ++/* Reserved for Internal Red Hat use only */ ++const struct pci_device_id *pci_hw_vendor_status( ++ const struct pci_device_id *ids, ++ struct pci_dev *dev); + int pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max, + int pass); + +diff --git a/include/linux/rh_kabi.h b/include/linux/rh_kabi.h +new file mode 100644 +index 000000000000..ea9c136bf884 +--- /dev/null ++++ b/include/linux/rh_kabi.h +@@ -0,0 +1,297 @@ ++/* ++ * rh_kabi.h - Red Hat kABI abstraction header ++ * ++ * Copyright (c) 2014 Don Zickus ++ * Copyright (c) 2015-2018 Jiri Benc ++ * Copyright (c) 2015 Sabrina Dubroca, Hannes Frederic Sowa ++ * Copyright (c) 2016-2018 Prarit Bhargava ++ * Copyright (c) 2017 Paolo Abeni, Larry Woodman ++ * ++ * This file is released under the GPLv2. ++ * See the file COPYING for more details. ++ * ++ * These kabi macros hide the changes from the kabi checker and from the ++ * process that computes the exported symbols' checksums. ++ * They have 2 variants: one (defined under __GENKSYMS__) used when ++ * generating the checksums, and the other used when building the kernel's ++ * binaries. ++ * ++ * The use of these macros does not guarantee that the usage and modification ++ * of code is correct. As with all Red Hat only changes, an engineer must ++ * explain why the use of the macro is valid in the patch containing the ++ * changes. ++ * ++ */ ++ ++#ifndef _LINUX_RH_KABI_H ++#define _LINUX_RH_KABI_H ++ ++#include ++#include ++ ++/* ++ * RH_KABI_CONST ++ * Adds a new const modifier to a function parameter preserving the old ++ * checksum. ++ * ++ * RH_KABI_DEPRECATE ++ * Mark the element as deprecated and make it unusable by modules while ++ * preserving kABI checksums. ++ * ++ * RH_KABI_DEPRECATE_FN ++ * Mark the function pointer as deprecated and make it unusable by modules ++ * while preserving kABI checksums. ++ * ++ * RH_KABI_EXTEND ++ * Simple macro for adding a new element to a struct. ++ * ++ * RH_KABI_EXTEND_WITH_SIZE ++ * Adds a new element (usually a struct) to a struct and reserves extra ++ * space for the new element. The provided 'size' is the total space to ++ * be added in longs (i.e. it's 8 * 'size' bytes), including the size of ++ * the added element. It is automatically checked that the new element ++ * does not overflow the reserved space, now nor in the future. However, ++ * no attempt is done to check the content of the added element (struct) ++ * for kABI conformance - kABI checking inside the added element is ++ * effectively switched off. ++ * For any struct being added by RH_KABI_EXTEND_WITH_SIZE, it is ++ * recommended its content to be documented as not covered by kABI ++ * guarantee. ++ * ++ * RH_KABI_FILL_HOLE ++ * Simple macro for filling 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. ++ * ++ * NOTE: does not include the final ';' ++ * ++ * RH_KABI_REPLACE ++ * Simple replacement of _orig with a union of _orig and _new. ++ * ++ * The RH_KABI_REPLACE* macros attempt to add the ability to use the '_new' ++ * element while preserving size alignment with the '_orig' element. ++ * ++ * 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_REPLACE_UNSAFE ++ * Unsafe version of RH_KABI_REPLACE. Only use for typedefs. ++ * ++ * RH_KABI_FORCE_CHANGE ++ * Force change of the symbol checksum. The argument of the macro is a ++ * version for cases we need to do this more than once. ++ * ++ * This macro does the opposite: it changes the symbol checksum without ++ * actually changing anything about the exported symbol. It is useful for ++ * symbols that are not whitelisted, we're changing them in an ++ * incompatible way and want to prevent 3rd party modules to silently ++ * corrupt memory. Instead, by changing the symbol checksum, such modules ++ * won't be loaded by the kernel. This macro should only be used as a ++ * last resort when all other KABI workarounds have failed. ++ * ++ * RH_KABI_EXCLUDE ++ * !!! WARNING: DANGEROUS, DO NOT USE unless you are aware of all the !!! ++ * !!! implications. This should be used ONLY EXCEPTIONALLY and only !!! ++ * !!! under specific circumstances. Very likely, this macro does not !!! ++ * !!! do what you expect it to do. Note that any usage of this macro !!! ++ * !!! MUST be paired with a RH_KABI_FORCE_CHANGE annotation of !!! ++ * !!! a suitable symbol (or an equivalent safeguard) and the commit !!! ++ * !!! log MUST explain why the chosen solution is appropriate. !!! ++ * ++ * Exclude the element from checksum generation. Any such element is ++ * considered not to be part of the kABI whitelist and may be changed at ++ * will. Note however that it's the responsibility of the developer ++ * changing the element to ensure 3rd party drivers using this element ++ * won't panic, for example by not allowing them to be loaded. That can ++ * be achieved by changing another, non-whitelisted symbol they use, ++ * either by nature of the change or by using RH_KABI_FORCE_CHANGE. ++ * ++ * Also note that any change to the element must preserve its size. Change ++ * 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). ++ * ++ */ ++#ifdef __GENKSYMS__ ++ ++# define RH_KABI_CONST ++# 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_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 ++ ++# define RH_KABI_ALIGN_WARNING ". Disable CONFIG_RH_KABI_SIZE_ALIGN_CHECKS if debugging." ++ ++# define RH_KABI_CONST const ++# 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 ++ ++ ++#if IS_BUILTIN(CONFIG_RH_KABI_SIZE_ALIGN_CHECKS) ++# define __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new) \ ++ union { \ ++ _Static_assert(sizeof(struct{_new;}) <= sizeof(struct{_orig;}), \ ++ __FILE__ ":" __stringify(__LINE__) ": " __stringify(_new) " is larger than " __stringify(_orig) RH_KABI_ALIGN_WARNING); \ ++ _Static_assert(__alignof__(struct{_new;}) <= __alignof__(struct{_orig;}), \ ++ __FILE__ ":" __stringify(__LINE__) ": " __stringify(_orig) " is not aligned the same as " __stringify(_new) RH_KABI_ALIGN_WARNING); \ ++ } ++# define __RH_KABI_CHECK_SIZE(_item, _size) \ ++ _Static_assert(sizeof(struct{_item;}) <= _size, \ ++ __FILE__ ":" __stringify(__LINE__) ": " __stringify(_item) " is larger than the reserved size (" __stringify(_size) " bytes)" RH_KABI_ALIGN_WARNING) ++#else ++# define __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new) ++# define __RH_KABI_CHECK_SIZE(_item, _size) ++#endif ++ ++#define RH_KABI_UNIQUE_ID __PASTE(rh_kabi_hidden_, __LINE__) ++ ++# define _RH_KABI_DEPRECATE(_type, _orig) _type rh_reserved_##_orig ++# define _RH_KABI_DEPRECATE_FN(_type, _orig, _args...) \ ++ _type (* rh_reserved_##_orig)(_args) ++# define _RH_KABI_REPLACE(_orig, _new) \ ++ union { \ ++ _new; \ ++ struct { \ ++ _orig; \ ++ } 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_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_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; \ ++ unsigned long RH_KABI_UNIQUE_ID[_size]; \ ++ __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) \ ++ 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) ++ ++#define _RH_KABI_SIZE_AND_EXTEND(_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_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); \ ++}) ++ ++/* ++ * 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) \ ++ ._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) ({ \ ++ size_t __off = offsetof(struct _struct##_rh, _field); \ ++ _ptr->_struct##_size_rh > __off ? true : false; \ ++}) ++ ++#endif /* _LINUX_RH_KABI_H */ +diff --git a/include/linux/rmi.h b/include/linux/rmi.h +index 8ed37f93f3c8..d7ad35a15acb 100644 +--- a/include/linux/rmi.h ++++ b/include/linux/rmi.h +@@ -363,6 +363,7 @@ struct rmi_driver_data { + + struct rmi4_attn_data attn_data; + DECLARE_KFIFO(attn_fifo, struct rmi4_attn_data, 16); ++ struct work_struct attn_work; + }; + + int rmi_register_transport_device(struct rmi_transport_dev *xport); +diff --git a/include/linux/security.h b/include/linux/security.h +index 0a0a03b36a3b..26869f44416b 100644 +--- a/include/linux/security.h ++++ b/include/linux/security.h +@@ -451,6 +451,7 @@ int security_inode_notifysecctx(struct inode *inode, void *ctx, u32 ctxlen); + int security_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen); + int security_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen); + int security_locked_down(enum lockdown_reason what); ++int security_lock_kernel_down(const char *where, enum lockdown_reason level); + #else /* CONFIG_SECURITY */ + + static inline int call_blocking_lsm_notifier(enum lsm_event event, void *data) +@@ -1291,6 +1292,10 @@ static inline int security_locked_down(enum lockdown_reason what) + { + return 0; + } ++static inline int security_lock_kernel_down(const char *where, enum lockdown_reason level) ++{ ++ return 0; ++} + #endif /* CONFIG_SECURITY */ + + #if defined(CONFIG_SECURITY) && defined(CONFIG_WATCH_QUEUE) +diff --git a/kernel/Makefile b/kernel/Makefile +index b74820d8b264..f334ed22187b 100644 +--- a/kernel/Makefile ++++ b/kernel/Makefile +@@ -13,6 +13,8 @@ obj-y = fork.o exec_domain.o panic.o \ + async.o range.o smpboot.o ucount.o regset.o + + obj-$(CONFIG_BPFILTER) += usermode_driver.o ++obj-$(CONFIG_RH_DISABLE_DEPRECATED) += rh_taint.o ++obj-$(CONFIG_RHEL_DIFFERENCES) += rh_taint.o + obj-$(CONFIG_MODULES) += kmod.o + obj-$(CONFIG_MULTIUSER) += groups.o + +diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c +index b999e7ff2583..ce77b8dfe47a 100644 +--- a/kernel/bpf/syscall.c ++++ b/kernel/bpf/syscall.c +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -48,7 +49,25 @@ static DEFINE_SPINLOCK(map_idr_lock); + static DEFINE_IDR(link_idr); + static DEFINE_SPINLOCK(link_idr_lock); + +-int sysctl_unprivileged_bpf_disabled __read_mostly; ++/* RHEL-only: default to 1 */ ++int sysctl_unprivileged_bpf_disabled __read_mostly = 1; ++ ++static int __init unprivileged_bpf_setup(char *str) ++{ ++ unsigned long disabled; ++ if (!kstrtoul(str, 0, &disabled)) ++ sysctl_unprivileged_bpf_disabled = !!disabled; ++ ++ if (!sysctl_unprivileged_bpf_disabled) { ++ pr_warn("Unprivileged BPF has been enabled " ++ "(unprivileged_bpf_disabled=0 has been supplied " ++ "in boot parameters), tainting the kernel"); ++ add_taint(TAINT_UNPRIVILEGED_BPF, LOCKDEP_STILL_OK); ++ } ++ ++ return 1; ++} ++__setup("unprivileged_bpf_disabled=", unprivileged_bpf_setup); + + static const struct bpf_map_ops * const bpf_map_types[] = { + #define BPF_PROG_TYPE(_id, _name, prog_ctx_type, kern_ctx_type) +@@ -4136,11 +4155,17 @@ static int bpf_iter_create(union bpf_attr *attr) + SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, size) + { + union bpf_attr attr; ++ static int marked; + int err; + + if (sysctl_unprivileged_bpf_disabled && !bpf_capable()) + return -EPERM; + ++ if (!marked) { ++ mark_tech_preview("eBPF syscall", NULL); ++ marked = true; ++ } ++ + err = bpf_check_uarg_tail_zero(uattr, sizeof(attr), size); + if (err) + return err; +diff --git a/kernel/crash_core.c b/kernel/crash_core.c +index 106e4500fd53..09a4870fe1fb 100644 +--- a/kernel/crash_core.c ++++ b/kernel/crash_core.c +@@ -7,6 +7,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -41,6 +42,15 @@ static int __init parse_crashkernel_mem(char *cmdline, + unsigned long long *crash_base) + { + char *cur = cmdline, *tmp; ++ unsigned long long total_mem = system_ram; ++ ++ /* ++ * Firmware sometimes reserves some memory regions for it's own use. ++ * so we get less than actual system memory size. ++ * Workaround this by round up the total size to 128M which is ++ * enough for most test cases. ++ */ ++ total_mem = roundup(total_mem, SZ_128M); + + /* for each entry of the comma-separated list */ + do { +@@ -85,13 +95,13 @@ static int __init parse_crashkernel_mem(char *cmdline, + return -EINVAL; + } + cur = tmp; +- if (size >= system_ram) { ++ if (size >= total_mem) { + pr_warn("crashkernel: invalid size\n"); + return -EINVAL; + } + + /* match ? */ +- if (system_ram >= start && system_ram < end) { ++ if (total_mem >= start && total_mem < end) { + *crash_size = size; + break; + } +@@ -250,6 +260,20 @@ static int __init __parse_crashkernel(char *cmdline, + if (suffix) + return parse_crashkernel_suffix(ck_cmdline, crash_size, + suffix); ++ ++ if (strncmp(ck_cmdline, "auto", 4) == 0) { ++#ifdef CONFIG_X86_64 ++ ck_cmdline = "1G-64G:160M,64G-1T:256M,1T-:512M"; ++#elif defined(CONFIG_S390) ++ ck_cmdline = "4G-64G:160M,64G-1T:256M,1T-:512M"; ++#elif defined(CONFIG_ARM64) ++ ck_cmdline = "2G-:512M"; ++#elif defined(CONFIG_PPC64) ++ ck_cmdline = "2G-4G:384M,4G-16G:512M,16G-64G:1G,64G-128G:2G,128G-:4G"; ++#endif ++ pr_info("Using crashkernel=auto, the size chosen is a best effort estimation.\n"); ++ } ++ + /* + * if the commandline contains a ':', then that's the extended + * syntax -- if not, it must be the classic syntax +diff --git a/kernel/module.c b/kernel/module.c +index c075a18103fb..502171299962 100644 +--- a/kernel/module.c ++++ b/kernel/module.c +@@ -805,6 +805,7 @@ static struct module_attribute modinfo_##field = { \ + + MODINFO_ATTR(version); + MODINFO_ATTR(srcversion); ++MODINFO_ATTR(rhelversion); + + static char last_unloaded_module[MODULE_NAME_LEN+1]; + +@@ -1267,6 +1268,7 @@ static struct module_attribute *modinfo_attrs[] = { + &module_uevent, + &modinfo_version, + &modinfo_srcversion, ++ &modinfo_rhelversion, + &modinfo_initstate, + &modinfo_coresize, + &modinfo_initsize, +diff --git a/kernel/module_signing.c b/kernel/module_signing.c +index 9d9fc678c91d..84ad75a53c83 100644 +--- a/kernel/module_signing.c ++++ b/kernel/module_signing.c +@@ -38,8 +38,15 @@ int mod_verify_sig(const void *mod, struct load_info *info) + modlen -= sig_len + sizeof(ms); + info->len = modlen; + +- return verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, ++ ret = verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, + VERIFY_USE_SECONDARY_KEYRING, + VERIFYING_MODULE_SIGNATURE, + NULL, NULL); ++ if (ret == -ENOKEY && IS_ENABLED(CONFIG_INTEGRITY_PLATFORM_KEYRING)) { ++ ret = verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, ++ VERIFY_USE_PLATFORM_KEYRING, ++ VERIFYING_MODULE_SIGNATURE, ++ NULL, NULL); ++ } ++ return ret; + } +diff --git a/kernel/panic.c b/kernel/panic.c +index aef8872ba843..e1f2bf843901 100644 +--- a/kernel/panic.c ++++ b/kernel/panic.c +@@ -386,6 +386,20 @@ const struct taint_flag taint_flags[TAINT_FLAGS_COUNT] = { + [ TAINT_LIVEPATCH ] = { 'K', ' ', true }, + [ TAINT_AUX ] = { 'X', ' ', true }, + [ TAINT_RANDSTRUCT ] = { 'T', ' ', true }, ++ [ TAINT_18 ] = { '?', '-', false }, ++ [ TAINT_19 ] = { '?', '-', false }, ++ [ TAINT_20 ] = { '?', '-', false }, ++ [ TAINT_21 ] = { '?', '-', false }, ++ [ TAINT_22 ] = { '?', '-', false }, ++ [ TAINT_23 ] = { '?', '-', false }, ++ [ TAINT_24 ] = { '?', '-', false }, ++ [ TAINT_25 ] = { '?', '-', false }, ++ [ TAINT_26 ] = { '?', '-', false }, ++ [ TAINT_SUPPORT_REMOVED ] = { 'h', ' ', false }, ++ [ TAINT_RESERVED28 ] = { '?', '-', false }, ++ [ TAINT_RESERVED29 ] = { '?', '-', false }, ++ [ TAINT_RESERVED30 ] = { '?', '-', false }, ++ [ TAINT_UNPRIVILEGED_BPF ] = { 'u', ' ', false }, + }; + + /** +diff --git a/kernel/rh_taint.c b/kernel/rh_taint.c +new file mode 100644 +index 000000000000..4050b6dead75 +--- /dev/null ++++ b/kernel/rh_taint.c +@@ -0,0 +1,93 @@ ++#include ++#include ++ ++/* ++ * The following functions are used by Red Hat to indicate to users that ++ * hardware and drivers are unsupported, or have limited support in RHEL major ++ * and minor releases. These functions output loud warning messages to the end ++ * user and should be USED WITH CAUTION. ++ * ++ * Any use of these functions _MUST_ be documented in the RHEL Release Notes, ++ * and have approval of management. ++ */ ++ ++/** ++ * mark_hardware_unsupported() - Mark hardware, class, or type as unsupported. ++ * @msg: Hardware name, class, or type ++ * ++ * Called to mark a device, class of devices, or types of devices as not having ++ * support in any RHEL minor release. This does not TAINT the kernel. Red Hat ++ * will not fix bugs against this hardware in this minor release. Red Hat may ++ * declare support in a future major or minor update release. This cannot be ++ * used to mark drivers unsupported. ++ */ ++void mark_hardware_unsupported(const char *msg) ++{ ++ /* Print one single message */ ++ pr_crit("Warning: %s - this hardware has not undergone testing by Red Hat and might not be certified. Please consult https://catalog.redhat.com for certified hardware.\n", msg); ++} ++EXPORT_SYMBOL(mark_hardware_unsupported); ++ ++/** ++ * mark_hardware_deprecated() - Mark hardware, class, or type as deprecated. ++ * @msg: Hardware name, class, or type ++ * ++ * Called to minimize the support status of a previously supported device in ++ * a minor release. This does not TAINT the kernel. Marking hardware ++ * deprecated is usually done in conjunction with the hardware vendor. Future ++ * RHEL major releases may not include this driver. Driver updates and fixes ++ * for this device will be limited to critical issues in future minor releases. ++ */ ++void mark_hardware_deprecated(const char *msg) ++{ ++ pr_crit("Warning: %s - this hardware is not recommended for new deployments. It continues to be supported in this RHEL release, but it is likely to be removed in the next major release. Driver updates and fixes for this device will be limited to critical issues. Please contact Red Hat Support or your device's hardware vendor for additional information.\n", msg); ++} ++EXPORT_SYMBOL(mark_hardware_deprecated); ++ ++/** ++ * mark_tech_preview() - Mark driver or kernel subsystem as 'Tech Preview' ++ * @msg: Driver or kernel subsystem name ++ * ++ * Called to minimize the support status of a new driver. This does TAINT the ++ * kernel. Calling this function indicates that the driver or subsystem has ++ * had limited testing and is not marked for full support within this RHEL ++ * minor release. The next RHEL minor release may contain full support for ++ * this driver. Red Hat does not guarantee that bugs reported against this ++ * driver or subsystem will be resolved. ++ */ ++void mark_tech_preview(const char *msg, struct module *mod) ++{ ++ const char *str = NULL; ++ ++ if (msg) ++ str = msg; ++#ifdef CONFIG_MODULES ++ else if (mod && mod->name) ++ str = mod->name; ++#endif ++ ++ pr_warn("TECH PREVIEW: %s may not be fully supported.\n" ++ "Please review provided documentation for limitations.\n", ++ (str ? str : "kernel")); ++ add_taint(TAINT_AUX, LOCKDEP_STILL_OK); ++#ifdef CONFIG_MODULES ++ if (mod) ++ mod->taints |= (1U << TAINT_AUX); ++#endif ++} ++EXPORT_SYMBOL(mark_tech_preview); ++ ++/** ++ * mark_driver_unsupported - drivers that we know we don't want to support ++ * @name: the name of the driver ++ * ++ * In some cases Red Hat has chosen to build a driver for internal QE ++ * use. Use this function to mark those drivers as unsupported for ++ * customers. ++ */ ++void mark_driver_unsupported(const char *name) ++{ ++ pr_crit("Warning: %s - This driver has not undergone sufficient testing by Red Hat for this release and therefore cannot be used in production systems.\n", ++ name ? name : "kernel"); ++} ++EXPORT_SYMBOL(mark_driver_unsupported); +diff --git a/mm/kmemleak.c b/mm/kmemleak.c +index 5e252d91eb14..c6e1a9443e9e 100644 +--- a/mm/kmemleak.c ++++ b/mm/kmemleak.c +@@ -1960,6 +1960,11 @@ void __init kmemleak_init(void) + */ + static int __init kmemleak_late_init(void) + { ++ if (!kmemleak_skip_disable) { ++ kmemleak_disable(); ++ return 0; ++ } ++ + kmemleak_initialized = 1; + + debugfs_create_file("kmemleak", 0644, NULL, NULL, &kmemleak_fops); +diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c +index 69341b36f271..dbc63328187c 100644 +--- a/scripts/mod/modpost.c ++++ b/scripts/mod/modpost.c +@@ -21,6 +21,7 @@ + #include + #include "modpost.h" + #include "../../include/linux/license.h" ++#include "../../include/generated/uapi/linux/version.h" + + /* Are we using CONFIG_MODVERSIONS? */ + static int modversions = 0; +@@ -2393,6 +2394,12 @@ static void write_buf(struct buffer *b, const char *fname) + } + } + ++static void add_rhelversion(struct buffer *b, struct module *mod) ++{ ++ buf_printf(b, "MODULE_INFO(rhelversion, \"%d.%d\");\n", RHEL_MAJOR, ++ RHEL_MINOR); ++} ++ + static void write_if_changed(struct buffer *b, const char *fname) + { + char *tmp; +@@ -2645,6 +2652,7 @@ int main(int argc, char **argv) + add_depends(&buf, mod); + add_moddevtable(&buf, mod); + add_srcversion(&buf, mod); ++ add_rhelversion(&buf, mod); + + sprintf(fname, "%s.mod.c", mod->name); + write_if_changed(&buf, fname); +diff --git a/scripts/tags.sh b/scripts/tags.sh +index fd96734deff1..5b540f3dcff1 100755 +--- a/scripts/tags.sh ++++ b/scripts/tags.sh +@@ -16,6 +16,8 @@ fi + ignore="$(echo "$RCS_FIND_IGNORE" | sed 's|\\||g' )" + # tags and cscope files should also ignore MODVERSION *.mod.c files + ignore="$ignore ( -name *.mod.c ) -prune -o" ++# RHEL tags and cscope should also ignore redhat/rpm ++ignore="$ignore ( -path redhat/rpm ) -prune -o" + + # Use make KBUILD_ABS_SRCTREE=1 {tags|cscope} + # to force full paths for a non-O= build +diff --git a/security/integrity/platform_certs/load_uefi.c b/security/integrity/platform_certs/load_uefi.c +index ee4b4c666854..eff9ff593405 100644 +--- a/security/integrity/platform_certs/load_uefi.c ++++ b/security/integrity/platform_certs/load_uefi.c +@@ -46,7 +46,8 @@ static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid, + return NULL; + + if (*status != EFI_BUFFER_TOO_SMALL) { +- pr_err("Couldn't get size: 0x%lx\n", *status); ++ pr_err("Couldn't get size: %s (0x%lx)\n", ++ efi_status_to_str(*status), *status); + return NULL; + } + +@@ -57,7 +58,8 @@ static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid, + *status = efi.get_variable(name, guid, NULL, &lsize, db); + if (*status != EFI_SUCCESS) { + kfree(db); +- pr_err("Error reading db var: 0x%lx\n", *status); ++ pr_err("Error reading db var: %s (0x%lx)\n", ++ efi_status_to_str(*status), *status); + return NULL; + } + +diff --git a/security/lockdown/Kconfig b/security/lockdown/Kconfig +index e84ddf484010..d0501353a4b9 100644 +--- a/security/lockdown/Kconfig ++++ b/security/lockdown/Kconfig +@@ -16,6 +16,19 @@ config SECURITY_LOCKDOWN_LSM_EARLY + subsystem is fully initialised. If enabled, lockdown will + unconditionally be called before any other LSMs. + ++config LOCK_DOWN_IN_EFI_SECURE_BOOT ++ bool "Lock down the kernel in EFI Secure Boot mode" ++ default n ++ depends on EFI && SECURITY_LOCKDOWN_LSM_EARLY ++ help ++ UEFI Secure Boot provides a mechanism for ensuring that the firmware ++ will only load signed bootloaders and kernels. Secure boot mode may ++ be determined from EFI variables provided by the system firmware if ++ not indicated by the boot parameters. ++ ++ Enabling this option results in kernel lockdown being triggered if ++ EFI Secure Boot is set. ++ + choice + prompt "Kernel default lockdown mode" + default LOCK_DOWN_KERNEL_FORCE_NONE +diff --git a/security/lockdown/lockdown.c b/security/lockdown/lockdown.c +index 87cbdc64d272..18555cf18da7 100644 +--- a/security/lockdown/lockdown.c ++++ b/security/lockdown/lockdown.c +@@ -73,6 +73,7 @@ static int lockdown_is_locked_down(enum lockdown_reason what) + + static struct security_hook_list lockdown_hooks[] __lsm_ro_after_init = { + LSM_HOOK_INIT(locked_down, lockdown_is_locked_down), ++ LSM_HOOK_INIT(lock_kernel_down, lock_kernel_down), + }; + + static int __init lockdown_lsm_init(void) +diff --git a/security/security.c b/security/security.c +index 70a7ad357bc6..23e16e773bc2 100644 +--- a/security/security.c ++++ b/security/security.c +@@ -2516,6 +2516,12 @@ int security_locked_down(enum lockdown_reason what) + } + EXPORT_SYMBOL(security_locked_down); + ++int security_lock_kernel_down(const char *where, enum lockdown_reason level) ++{ ++ return call_int_hook(lock_kernel_down, 0, where, level); ++} ++EXPORT_SYMBOL(security_lock_kernel_down); ++ + #ifdef CONFIG_PERF_EVENTS + int security_perf_event_open(struct perf_event_attr *attr, int type) + { +diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config +index 190be4fa5c21..28beab03575a 100644 +--- a/tools/perf/Makefile.config ++++ b/tools/perf/Makefile.config +@@ -748,6 +748,7 @@ else + PERL_EMBED_LIBADD = $(call grep-libs,$(PERL_EMBED_LDOPTS)) + PERL_EMBED_CCOPTS = $(shell perl -MExtUtils::Embed -e ccopts 2>/dev/null) + PERL_EMBED_CCOPTS := $(filter-out -specs=%,$(PERL_EMBED_CCOPTS)) ++ PERL_EMBED_CCOPTS := $(filter-out -flto=auto -ffat-lto-objects, $(PERL_EMBED_CCOPTS)) + PERL_EMBED_LDOPTS := $(filter-out -specs=%,$(PERL_EMBED_LDOPTS)) + FLAGS_PERL_EMBED=$(PERL_EMBED_CCOPTS) $(PERL_EMBED_LDOPTS) + diff --git a/process_configs.sh b/process_configs.sh new file mode 100755 index 000000000..c1e81ca16 --- /dev/null +++ b/process_configs.sh @@ -0,0 +1,346 @@ +#!/bin/bash +# +# This script takes the merged config files and processes them through oldconfig +# and listnewconfig +# +# Globally disable suggestion of appending '|| exit' or '|| return' to cd/pushd/popd commands +# shellcheck disable=SC2164 + +usage() +{ + # alphabetical order please + echo "process_configs.sh [ options ] package_name kernel_version" + echo " -a: report all errors, equivalent to [-c -n -w -i]" + echo " -c: error on mismatched config options" + echo " -i: continue on error" + echo " -n: error on unset config options" + echo " -t: test run, do not overwrite original config" + echo " -w: error on misconfigured config options" + echo " -z: commit new configs to pending directory" + echo "" + echo " A special CONFIG file tag, process_configs_known_broken can be added as a" + echo " comment to any CONFIG file. This tag indicates that there is no way to " + echo " fix a CONFIG's entry. This tag should only be used in extreme cases" + echo " and is not to be used as a workaround to solve CONFIG problems." + exit 1 +} + +die() +{ + echo "$1" + exit 1 +} + +# stupid function to find top of tree to do kernel make configs +switch_to_toplevel() +{ + path="$(pwd)" + while test -n "$path" + do + test -e "$path"/MAINTAINERS && \ + test -d "$path"/drivers && \ + break + + path=$(dirname "$path") + done + + test -n "$path" || die "Can't find toplevel" + echo "$path" +} + +checkoptions() +{ + /usr/bin/awk ' + + /is not set/ { + split ($0, a, "#"); + split(a[2], b); + if (NR==FNR) { + configs[b[1]]="is not set"; + } else { + if (configs[b[1]] != "" && configs[b[1]] != "is not set") + print "Found # "b[1] " is not set, after generation, had " b[1] " " configs[b[1]] " in Source tree"; + } + } + + /=/ { + split ($0, a, "="); + if (NR==FNR) { + configs[a[1]]=a[2]; + } else { + if (configs[a[1]] != "" && configs[a[1]] != a[2]) + print "Found "a[1]"="a[2]" after generation, had " a[1]"="configs[a[1]]" in Source tree"; + } + } + ' "$1" "$2" > .mismatches + + checkoptions_error=false + if test -s .mismatches + then + while read -r LINE + do + if find ./ -name "$(echo "$LINE" | awk -F "=" ' { print $1 } ' | awk ' { print $2 }')" | xargs -0 grep ^ | grep -q "process_configs_known_broken"; then + # This is a known broken config. + # See script help warning. + checkoptions_error=false + else + checkoptions_error=true + break + fi + done < .mismatches + + ! $checkoptions_error && return + + echo "Error: Mismatches found in configuration files" + cat .mismatches + RETURNCODE=1 + [ "$CONTINUEONERROR" ] || exit 1 + fi +} + +parsenewconfigs() +{ + tmpdir=$(mktemp -d) + + # This awk script reads the output of make listnewconfig + # and puts it into CONFIG_FOO files. Using the output of + # listnewconfig is much easier to ensure we get the default + # output. + /usr/bin/awk -v BASE="$tmpdir" ' + /is not set/ { + split ($0, a, "#"); + split(a[2], b); + OUT_FILE=BASE"/"b[1]; + print $0 >> OUT_FILE; + } + + /=/ { + split ($0, a, "="); + OUT_FILE=BASE"/"a[1]; + if (a[2] == "n") + print "# " a[1] " is not set" >> OUT_FILE; + else + print $0 >> OUT_FILE; + } + + ' .newoptions + + # This awk script parses the output of helpnewconfig. + # Each option is separated between ----- markers + # The goal is to put all the help text as a comment in + # each CONFIG_FOO file. Because of how awk works + # there's a lot of moving files around and catting to + # get what we need. + /usr/bin/awk -v BASE="$tmpdir" ' + BEGIN { inpatch=0; + outfile="none"; + symbol="none"; } + /^CONFIG_.*:$/ { + split($0, a, ":"); + symbol=a[1]; + outfile=BASE "/fake_"symbol + } + /-----/ { + if (inpatch == 0) { + inpatch = 1; + } + else { + if (symbol != "none") { + system("cat " outfile " " BASE "/" symbol " > " BASE "/tmpf"); + system("mv " BASE "/tmpf " BASE "/" symbol); + symbol="none" + } + outfile="none" + inpatch = 0; + } + } + !/-----/ { + if (inpatch == 1 && outfile != "none") { + print "# "$0 >> outfile; + } + } + + + ' .helpnewconfig + + pushd "$tmpdir" &> /dev/null + rm fake_* + popd &> /dev/null + for f in "$tmpdir"/*; do + [[ -e "$f" ]] || break + cp "$f" "$SCRIPT_DIR/pending$FLAVOR/generic/" + done + + rm -rf "$tmpdir" +} + +function commit_new_configs() +{ + # assume we are in $source_tree/configs, need to get to top level + pushd "$(switch_to_toplevel)" &>/dev/null + + for cfg in "$SCRIPT_DIR/${PACKAGE_NAME}${KVERREL}${SUBARCH}"*.config + do + arch=$(head -1 "$cfg" | cut -b 3-) + cfgtmp="${cfg}.tmp" + cfgorig="${cfg}.orig" + cat "$cfg" > "$cfgorig" + + if [ "$arch" = "EMPTY" ] + then + # This arch is intentionally left blank + continue + fi + echo -n "Checking for new configs in $cfg ... " + + make ARCH="$arch" KCONFIG_CONFIG="$cfgorig" listnewconfig >& .listnewconfig + grep -E 'CONFIG_' .listnewconfig > .newoptions + if test -s .newoptions + then + make ARCH="$arch" KCONFIG_CONFIG="$cfgorig" helpnewconfig >& .helpnewconfig + parsenewconfigs + fi + rm .newoptions + echo "done" + done + + git add "$SCRIPT_DIR/pending$FLAVOR" + git commit -m "[redhat] AUTOMATIC: New configs" +} + +function process_configs() +{ + # assume we are in $source_tree/configs, need to get to top level + pushd "$(switch_to_toplevel)" &>/dev/null + + for cfg in "$SCRIPT_DIR/${PACKAGE_NAME}${KVERREL}${SUBARCH}"*.config + do + arch=$(head -1 "$cfg" | cut -b 3-) + cfgtmp="${cfg}.tmp" + cfgorig="${cfg}.orig" + cat "$cfg" > "$cfgorig" + + if [ "$arch" = "EMPTY" ] + then + # This arch is intentionally left blank + continue + fi + echo -n "Processing $cfg ... " + + make ARCH="$arch" KCONFIG_CONFIG="$cfgorig" listnewconfig >& .listnewconfig + grep -E 'CONFIG_' .listnewconfig > .newoptions + if test -n "$NEWOPTIONS" && test -s .newoptions + then + echo "Found unset config items, please set them to an appropriate value" + cat .newoptions + rm .newoptions + RETURNCODE=1 + [ "$CONTINUEONERROR" ] || exit 1 + fi + rm .newoptions + + grep -E 'config.*warning' .listnewconfig > .warnings + if test -n "$CHECKWARNINGS" && test -s .warnings + then + echo "Found misconfigured config items, please set them to an appropriate value" + cat .warnings + rm .warnings + RETURNCODE=1 + [ "$CONTINUEONERROR" ] || exit 1 + fi + rm .warnings + + rm .listnewconfig + + make ARCH="$arch" KCONFIG_CONFIG="$cfgorig" olddefconfig > /dev/null || exit 1 + echo "# $arch" > "$cfgtmp" + cat "$cfgorig" >> "$cfgtmp" + if test -n "$CHECKOPTIONS" + then + checkoptions "$cfg" "$cfgtmp" + fi + # if test run, don't overwrite original + if test -n "$TESTRUN" + then + rm -f "$cfgtmp" + else + mv "$cfgtmp" "$cfg" + fi + rm -f "$cfgorig" + echo "done" + done + rm "$SCRIPT_DIR"/*.config*.old + popd > /dev/null + + echo "Processed config files are in $SCRIPT_DIR" +} + +CHECKOPTIONS="" +CONTINUEONERROR="" +NEWOPTIONS="" +TESTRUN="" +CHECKWARNINGS="" + +RETURNCODE=0 + +while [[ $# -gt 0 ]] +do + key="$1" + case $key in + -a) + CHECKOPTIONS="x" + CONTINUEONERROR="x" + NEWOPTIONS="x" + CHECKWARNINGS="x" + ;; + -c) + CHECKOPTIONS="x" + ;; + -h) + usage + ;; + -i) + CONTINUEONERROR="x" + ;; + -n) + NEWOPTIONS="x" + ;; + -t) + TESTRUN="x" + ;; + -w) + CHECKWARNINGS="x" + ;; + -z) + COMMITNEWCONFIGS="x" + ;; + *) + break;; + esac + shift +done + +PACKAGE_NAME="${1:-kernel}" # defines the package name used +KVERREL="$(test -n "$2" && echo "-$2" || echo "")" +SUBARCH="$(test -n "$3" && echo "-$3" || echo "")" +FLAVOR="$(test -n "$4" && echo "-$4" || echo "-common")" +SCRIPT=$(readlink -f "$0") +SCRIPT_DIR=$(dirname "$SCRIPT") + +# Most RHEL options are options we want in Fedora so RHEL pending settings head +# to common/ +if [ "$FLAVOR" = "-rhel" ] +then + FLAVOR="-common" +fi + +# to handle this script being a symlink +cd "$SCRIPT_DIR" + +if test -n "$COMMITNEWCONFIGS"; then + commit_new_configs +else + process_configs +fi + +exit $RETURNCODE diff --git a/redhatsecureboot003.cer b/redhatsecureboot003.cer new file mode 100644 index 000000000..439b75bf3 Binary files /dev/null and b/redhatsecureboot003.cer differ diff --git a/redhatsecureboot401.cer b/redhatsecureboot401.cer new file mode 100644 index 000000000..247666cfe Binary files /dev/null and b/redhatsecureboot401.cer differ diff --git a/redhatsecurebootca2.cer b/redhatsecurebootca2.cer new file mode 100644 index 000000000..43502d6bc Binary files /dev/null and b/redhatsecurebootca2.cer differ diff --git a/redhatsecurebootca4.cer b/redhatsecurebootca4.cer new file mode 100644 index 000000000..8cb32e68c Binary files /dev/null and b/redhatsecurebootca4.cer differ diff --git a/sources b/sources new file mode 100644 index 000000000..b5e028ea2 --- /dev/null +++ b/sources @@ -0,0 +1,3 @@ +SHA512 (linux-20201014gitb5fc7a89e58b.tar.xz) = 20afa74d91a0b5d74ff4db67e2fd40c94a40753810d2bfdc280db50a2eac2eff88859e8fd8ac3fc0614d79eedfd57ee9e66e6986dcf02dd2ad2ffff7420cf0d6 +SHA512 (kernel-abi-whitelists-5.10.0-0.rc0.20201014gitb5fc7a89e58b.41.tar.bz2) = eec67d1571512a94e374d1478e02a2cb14a992298177d127d594efacdb472e292db660af6992771f3940b5342e8310da3f69e70ddae805fac49a26046651bfbb +SHA512 (kernel-kabi-dw-5.10.0-0.rc0.20201014gitb5fc7a89e58b.41.tar.bz2) = f3b87f663b5e62c824528a0c046af1c34ff575f4733bf70e1f7b9ae33f2e3e3d4eb9c2ecfee778e5a246f0287262d9ddf845b91d21095727f9df3857a62961a3 diff --git a/update_scripts.sh b/update_scripts.sh new file mode 100755 index 000000000..5c3dbaeb9 --- /dev/null +++ b/update_scripts.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +if [ -z $1 ]; then + exit 1 +fi + +TARGET=$1 + +for i in $RPM_SOURCE_DIR/*.$TARGET; do + NEW=${i%.$TARGET} + cp $i $NEW +done diff --git a/x509.genkey.fedora b/x509.genkey.fedora new file mode 100644 index 000000000..2f90e1bce --- /dev/null +++ b/x509.genkey.fedora @@ -0,0 +1,16 @@ +[ req ] +default_bits = 4096 +distinguished_name = req_distinguished_name +prompt = no +x509_extensions = myexts + +[ req_distinguished_name ] +O = Fedora +CN = Fedora kernel signing key +emailAddress = kernel-team@fedoraproject.org + +[ myexts ] +basicConstraints=critical,CA:FALSE +keyUsage=digitalSignature +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid diff --git a/x509.genkey.rhel b/x509.genkey.rhel new file mode 100644 index 000000000..b1bbe387f --- /dev/null +++ b/x509.genkey.rhel @@ -0,0 +1,16 @@ +[ req ] +default_bits = 3072 +distinguished_name = req_distinguished_name +prompt = no +x509_extensions = myexts + +[ req_distinguished_name ] +O = Red Hat +CN = Red Hat Enterprise Linux kernel signing key +emailAddress = secalert@redhat.com + +[ myexts ] +basicConstraints=critical,CA:FALSE +keyUsage=digitalSignature +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid