Upgrade to 5.10 Linux kernel.

Move to kernel version 5.10 using source from the Yocto Project.
1. Add STX patches for kernel 5.10.
2. Support git source for linux-yocto.
3. Add build_srpm from build-tools/default_build_srpm
   and modified for git repo from yocto
4. Modify std and rt config files.
5. Build python-perf instead of python3-perf for std kernel.
   python-perf is needed by tuned-2.8.0-5.el7.noarch.
6. Modify rt spec to build out package kernel-rt-tools and kernel-rt-kvm.
7. Add kernel-5.10.30-x86_64-rt.config.tis_extra and
   kernel-5.10.30-x86_64.config.tis_extra
8. Add a dist field to avoid undesired rebuilds.
9. Ensure -unsigned package is populated

Story: 2008921
Partial-Task: 42519

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Vefa Bicakci <vefa.bicakci@windriver.com>
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
Change-Id: Id1f635302f265826f7ff2860a3bed4b7755b2888
This commit is contained in:
Jiping Ma 2021-06-28 21:44:07 -07:00
parent 7b55e47e1d
commit 2cb3d041cd
94 changed files with 36555 additions and 1513 deletions

View File

@ -1 +0,0 @@
kernel-4.18.0-147.3.1.el8_1.src.rpm

279
kernel-rt/centos/build_srpm Executable file
View File

@ -0,0 +1,279 @@
#!/bin/bash
# set -x
#
# Copyright (c) 2018-2021 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
# Refer to build-tools/default_build_srpm and modify for git repo from linux-yocto.
#
source "$SRC_BASE/build-tools/spec-utils"
source "$SRC_BASE/build-tools/srpm-utils"
CUR_DIR=`pwd`
BUILD_DIR="$RPMBUILD_BASE"
if [ "x$DATA" == "x" ]; then
echo "ERROR: kernel build_srpm (${LINENO}): Environment variable 'DATA' not defined."
exit 1
fi
srpm_source_build_data "$DATA" "$SRC_BUILD_TYPE" "$SRPM_OR_SPEC_PATH"
if [ $? -ne 0 ]; then
echo "ERROR: kernel build_srpm (${LINENO}): Failed to source build data from $DATA"
exit 1
fi
if [ "x$PBR_VERSION" != "x" ] && [ "x$PBR_VERSION" != "xNA" ]; then
VERSION=$PBR_VERSION
fi
if [ "x$VERSION" == "x" ]; then
for SPEC in `find $SPECS_BASE -name '*.spec' | sort -V`; do
SPEC_PATH="$SPEC"
VERSION_DERIVED=`spec_evaluate '%{version}' "$SPEC_PATH" 2>> /dev/null`
if [ $? -ne 0 ]; then
echo "ERROR: kernel build_srpm (${LINENO}): '%{version}' not found in '$PKG_BASE/$SPEC_PATH'"
VERSION_DERIVED=""
fi
if [ "x$VERSION_DERIVED" != "x" ]; then
if [ "x$VERSION" == "x" ]; then
VERSION=$VERSION_DERIVED
else
if [ "x$SRC_DIR" != "x" ]; then
echo "ERROR: kernel build_srpm (${LINENO}): multiple spec files found, can't set VERSION automatically"
exit 1
fi
fi
fi
done
if [ "x$VERSION" == "x" ]; then
if [ -f $SRC_DIR/PKG-INFO ]; then
VERSION=$(grep '^Version:' $SRC_DIR/PKG-INFO | awk -F ': ' '{print $2}' | sed -e 's/^[[:space:]]*//')
fi
fi
if [ "x$VERSION" != "x" ]; then
echo "Derived VERSION=$VERSION"
else
echo "ERROR: kernel build_srpm (${LINENO}): Failed to derive a good VERSION from SPEC file, and none provided."
exit 1
fi
fi
if [ "x$TAR_NAME" == "x" ]; then
for SPEC in `find $SPECS_BASE -name '*.spec' | sort -V`; do
SPEC_PATH="$SPEC"
SERVICE=`spec_find_global service "$SPEC_PATH" 2>> /dev/null`
if [ $? -eq 0 ]; then
if [ "x$TAR_NAME" == "x" ]; then
TAR_NAME=$SERVICE
else
if [ "x$SRC_DIR" != "x" ]; then
echo "ERROR: kernel build_srpm (${LINENO}): multiple spec files found, can't set TAR_NAME automatically"
exit 1
fi
fi
else
NAME=`spec_find_tag Name "$SPEC_PATH" 2>> /dev/null`
if [ $? -eq 0 ]; then
if [ "x$TAR_NAME" == "x" ]; then
TAR_NAME=$NAME
else
if [ "x$SRC_DIR" != "x" ]; then
echo "ERROR: kernel build_srpm (${LINENO}): multiple spec files found, can't set TAR_NAME automatically"
exit 1
fi
fi
else
echo "WARNING: kernel build_srpm (${LINENO}): 'Name' not found in '$SPEC_PATH'"
NAME=""
fi
fi
done
if [ "x$TAR_NAME" == "x" ]; then
if [ -f $SRC_DIR/PKG-INFO ]; then
TAR_NAME=$(grep '^Name:' $SRC_DIR/PKG-INFO | awk -F ': ' '{print $2}' | sed -e 's/^[[:space:]]*//')
fi
fi
if [ "x$TAR_NAME" != "x" ]; then
echo "Derived TAR_NAME=$TAR_NAME"
else
echo "ERROR: kernel build_srpm (${LINENO}): Failed to derive a good TAR_NAME from SPEC file, and none provided."
exit 1
fi
fi
if [ "x$TAR" == "x" ]; then
TAR="$TAR_NAME-$VERSION.tar.gz"
fi
SOURCE_PATH="$BUILD_DIR/SOURCES"
TAR_PATH="$SOURCE_PATH/$TAR"
STAGING=""
if [ "x$COPY_LIST_TO_TAR" != "x" ] || [ "x$EXCLUDE_LIST_FROM_TAR" != "x" ]; then
STAGING="$BUILD_DIR/staging"
mkdir -p $STAGING
fi
mkdir -p "$BUILD_DIR/SRPMS"
mkdir -p "$SOURCE_PATH"
if [ "x$SRC_DIR" == "x" -a "x$COPY_LIST" == "x" -a "$ALLOW_EMPTY_RPM" != "true" ]; then
echo "ERROR: kernel build_srpm (${LINENO}): '$PWD/$DATA' failed to provide at least one of 'SRC_DIR' or 'COPY_LIST'"
exit 1
fi
if [ "x$SRC_DIR" != "x" ]; then
if [ ! -d "$SRC_DIR" ]; then
echo "ERROR: kernel build_srpm (${LINENO}): directory not found: '$SRC_DIR'"
exit 1
fi
fi
if [ "x$COPY_LIST" != "x" ]; then
echo "COPY_LIST: $COPY_LIST"
for p in $COPY_LIST; do
# echo "COPY_LIST: $p"
\cp -L -u -r -v $p $SOURCE_PATH
if [ $? -ne 0 ]; then
echo "ERROR: kernel build_srpm (${LINENO}): COPY_LIST: file not found: '$p'"
exit 1
fi
done
fi
if [ "x$STAGING" != "x" ]; then
\cp -L -u -r -v $SRC_DIR $STAGING
echo "COPY_LIST_TO_TAR: $COPY_LIST_TO_TAR"
for p in $COPY_LIST_TO_TAR; do
# echo "COPY_LIST_TO_TAR: $p"
\cp -L -u -r -v $p $STAGING/$SRC_DIR
if [ $? -ne 0 ]; then
echo "ERROR: kernel build_srpm (${LINENO}): COPY_LIST_TO_TAR: file not found: '$p'"
exit 1
fi
done
echo "EXCLUDE_LIST_FROM_TAR: $EXCLUDE_LIST_FROM_TAR"
for p in $EXCLUDE_LIST_FROM_TAR; do
# echo "EXCLUDE_LIST_FROM_TAR: $p"
echo "rm -rf $STAGING/$SRC_DIR/$p"
\rm -rf $STAGING/$SRC_DIR/$p
if [ $? -ne 0 ]; then
echo "ERROR: kernel build_srpm (${LINENO}): EXCLUDE_LIST_FROM_TAR: could not remove file: '$p'"
exit 1
fi
done
fi
TRANSFORM=`echo "$SRC_DIR" | sed 's/^\./\\./' | sed 's:^/::' | sed 's#^.*/\.\./##'`
if [ "x$STAGING" != "x" ]; then
pushd $STAGING
fi
TAR_NEEDED=0
if [ "x$SRC_DIR" != "x" ]; then
echo "SRC_DIR=$SRC_DIR"
if [ -f $TAR_PATH ]; then
n=`find . -cnewer $TAR_PATH -and ! -path './.git*' \
-and ! -path './.pc/*' \
-and ! -path './patches/*' \
-and ! -path "./$DISTRO/*" \
-and ! -path './pbr-*.egg/*' \
| wc -l`
if [ $n -gt 0 ]; then
TAR_NEEDED=1
fi
else
TAR_NEEDED=1
fi
fi
if [ $TAR_NEEDED -gt 0 ]; then
echo "Creating tar file: $TAR_PATH ... $TAR_NAME $VERSION"
#cd $SRC_DIR
#pwd
#git checkout -b linux-rt remotes/origin/v5.10/standard/preempt-rt/intel-x86
#cd -
echo "tar --exclude '.git*' --exclude='.pc' --exclude='patches' --exclude='$SRC_DIR/$DISTRO' --exclude='pbr-*.egg' --transform 's,^$TRANSFORM,$TAR_NAME-$VERSION,' -czf $TAR_PATH $SRC_DIR"
tar --exclude '.git*' --exclude='.pc' --exclude='patches' --exclude="$SRC_DIR/$DISTRO" --exclude='pbr-*.egg' --transform "s,^$TRANSFORM,$TAR_NAME-$VERSION," -czf "$TAR_PATH" "$SRC_DIR"
if [ $? -ne 0 ]; then
if [ "x$STAGING" != "x" ]; then
popd
fi
echo "ERROR: kernel build_srpm (${LINENO}): failed to create tar file, cmd: tar --exclude '.git*' --exclude='.pc' --exclude='patches' --exclude="$SRC_DIR/$DISTRO" --exclude='pbr-*.egg' --transform \"s,^$TRANSFORM,$TAR_NAME-$VERSION,\" -czf '$TAR_PATH' '$SRC_DIR'"
exit 1
fi
echo "Created tar file: $TAR_PATH"
else
echo "Tar file not needed."
fi
if [ "x$STAGING" != "x" ]; then
popd
fi
if [ ! -d $BUILD_DIR/SPECS ]; then
echo "Spec directory '$BUILD_DIR/SPECS' does not exist"
exit 1
fi
if [ $(ls -1 $BUILD_DIR/SPECS/*.spec | wc -l) -eq 0 ]; then
echo "No spec files found in spec directory '$BUILD_DIR/SPECS'"
exit 1
fi
for SPEC in `ls -1 $BUILD_DIR/SPECS`; do
SPEC_PATH="$BUILD_DIR/SPECS/$SPEC"
RELEASE=`spec_find_tag Release "$SPEC_PATH" 2>> /dev/null`
if [ $? -ne 0 ]; then
echo "ERROR: kernel build_srpm (${LINENO}): 'Release' not found in '$SPEC_PATH'"
fi
NAME=`spec_find_tag Name "$SPEC_PATH" 2>> /dev/null`
if [ $? -ne 0 ]; then
echo "ERROR: kernel build_srpm (${LINENO}): 'Name' not found in '$SPEC_PATH'"
fi
SRPM="$NAME-$VERSION-$RELEASE.src.rpm"
SRPM_PATH="$BUILD_DIR/SRPMS/$SRPM"
spec_validate_tis_release $SPEC_PATH
if [ $? -ne 0 ]; then
echo "TIS Validation of $SPEC_PATH failed"
exit 1
fi
BUILD_NEEDED=0
if [ -f $SRPM_PATH ]; then
n=`find . -cnewer $SRPM_PATH | wc -l`
if [ $n -gt 0 ]; then
BUILD_NEEDED=1
fi
else
BUILD_NEEDED=1
fi
if [ $BUILD_NEEDED -gt 0 ]; then
echo "SPEC file: $SPEC_PATH"
echo "SRPM build directory: $BUILD_DIR"
echo "TIS_PATCH_VER: $TIS_PATCH_VER"
echo "PBR_VERSION: $PBR_VERSION"
sed -i -e "1 i%define _tis_build_type $BUILD_TYPE" $SPEC_PATH
sed -i -e "1 i%define tis_patch_ver $TIS_PATCH_VER" $SPEC_PATH
sed -i -e "1 i%define pbr_version $PBR_VERSION" $SPEC_PATH
rpmbuild -bs $SPEC_PATH --define="%_topdir $BUILD_DIR" --undefine=dist --define="_tis_dist .tis"
else
echo "SRPM build not needed"
fi
done

View File

@ -1,5 +1,14 @@
COPY_LIST="files/*"
PKG_BASE_SRCREV=c0fee2da8ef34aa816ddd76690ed425b2ff94c90
TIS_PATCH_VER=PKG_GITREVCOUNT+1
SRC_DIR="$STX_BASE/git/linux-yocto-rt"
COPY_LIST=" \
$PKG_BASE/files/* \
$PKG_BASE/centos/patches/*"
BUILD_IS_BIG=21
BUILD_IS_SLOW=16
# The base branch is: v5.10/standard/preempt-rt/base
TIS_BASE_SRCREV=a8808e541750d4ed34105f615e295f6fbd9950fa
PKG_BASE_SRCREV=4013790c6ef43fd9f936579b0cac50b8e0c4505a
TIS_PATCH_VER=GITREVCOUNT+PKG_GITREVCOUNT

File diff suppressed because it is too large Load Diff

View File

@ -1,251 +0,0 @@
From 8f38a28fc2750dc526363dc4b7cce3c152bb913b Mon Sep 17 00:00:00 2001
Message-Id: <8f38a28fc2750dc526363dc4b7cce3c152bb913b.1588873412.git.Jim.Somerville@windriver.com>
From: Jim Somerville <Jim.Somerville@windriver.com>
Date: Mon, 23 Apr 2018 15:18:45 -0400
Subject: [PATCH 1/2] Build logic and sources for TiC
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Robin Lu <bin1.lu@intel.com>
Signed-off-by: Dongqi Chen <chen.dq@neusoft.com>
Signed-off-by: Davlet Panech <davlet.panech@windriver.com>
---
SPECS/kernel-rt.spec | 85 +++++++++++++++++++++++++++++++---------------------
1 file changed, 51 insertions(+), 34 deletions(-)
diff --git a/SPECS/kernel-rt.spec b/SPECS/kernel-rt.spec
index f9cfea3..9e6de9a 100644
--- a/SPECS/kernel-rt.spec
+++ b/SPECS/kernel-rt.spec
@@ -36,9 +36,9 @@ Summary: The Linux kernel
%define pkgrelease 147.3.1.rt24.96.el8_1
# allow pkg_release to have configurable %%{?dist} tag
-%define specrelease 147.3.1.rt24.96%{?dist}
+%define specrelease 147.3.1.rt24.96.el8_1
-%define pkg_release %{specrelease}%{?buildid}
+%define pkg_release %{specrelease}%{?buildid}%{?_tis_dist}.%{tis_patch_ver}
# What parts do we want to build? We must build at least one kernel.
# These are the kernels that are built IF the architecture allows it.
@@ -46,6 +46,7 @@ Summary: The Linux kernel
# by later arch-specific checks.
%define _with_kabidupchk 1
+%define _with_tools 1
# The following build options are enabled by default.
# Use either --without <opt> in your rpmbuild command or force values
# to 0 in here to disable them.
@@ -54,6 +55,8 @@ Summary: The Linux kernel
%define with_up %{?_without_up: 0} %{?!_without_up: 1}
# kernel-debug
%define with_debug %{?_without_debug: 0} %{?!_without_debug: 1}
+# STX: disable debug build
+%define with_debug 0
# kernel-headers
# realtime
%define with_realtime %{?_without_realtime: 0} %{?!_without_realtime: 1}
@@ -126,10 +129,11 @@ Summary: The Linux kernel
%global rttag .rt24
# realtimeN
%global rtbuild .96
-%define with_headers 0
+%define with_headers 1
%define with_cross_headers 0
%define with_perf 0
-%define with_tools 0
+# generate kernel-rt-tools
+%define with_tools 1
%define with_bpftool 0
%define with_zfcpdump 0
%define with_kabichk 0
@@ -291,7 +295,7 @@ Requires: rt-setup
#
BuildRequires: kmod, patch, bash, tar, git
BuildRequires: bzip2, xz, findutils, gzip, m4, perl-interpreter, perl-Carp, perl-devel, perl-generators, make, diffutils, gawk
-BuildRequires: gcc, binutils, redhat-rpm-config, hmaccalc, python3-devel
+BuildRequires: gcc, binutils, redhat-rpm-config, hmaccalc, python2-devel
BuildRequires: net-tools, hostname, bc, bison, flex, elfutils-devel
%if %{with_sparse}
BuildRequires: sparse
@@ -357,6 +361,7 @@ BuildRequires: xmlto
%if %{with_perf} || %{with_tools}
BuildRequires: asciidoc
%endif
+BuildRequires: kernel-headers
Source0: linux-%{rpmversion}-%{pkgrelease}.tar.xz
@@ -417,6 +422,12 @@ Source301: kernel-kabi-dw-%{rpmversion}-%{distro_build}.tar.bz2
Source2000: cpupower.service
Source2001: cpupower.config
+# Sources for stx
+Source3000: centos.cer
+
+#Stx config
+Source30000: kernel-rt-4.18.0-x86_64.config.tis_extra
+
## Patches needed for building this package
# END OF PATCH DEFINITIONS
@@ -915,6 +926,7 @@ ApplyOptionalPatch()
fi
}
+
%setup -q -n %{name}-%{rpmversion}-%{pkgrelease} -c
mv linux-%{rpmversion}-%{pkgrelease} linux-%{KVERREL}
@@ -938,20 +950,6 @@ mv COPYING COPYING-%{version}
# This Prevents scripts/setlocalversion from mucking with our version numbers.
touch .scmversion
-# Do not use "ambiguous" python shebangs. RHEL 8 now has a new script
-# (/usr/lib/rpm/redhat/brp-mangle-shebangs), which forces us to specify a
-# "non-ambiguous" python shebang for scripts we ship in buildroot. This
-# script throws an error like below:
-# *** 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} -p -n \
- tools/kvm/kvm_stat/kvm_stat \
- scripts/show_delta \
- scripts/diffconfig \
- scripts/bloat-o-meter \
- tools/perf/tests/attr.py \
- tools/perf/scripts/python/stat-cpi.py \
- tools/perf/scripts/python/sched-migration.py
%define make make %{?cross_opts} HOSTCFLAGS="%{?build_hostcflags}" HOSTLDFLAGS="%{?build_hostldflags}"
# only deal with configs if we are going to build for the arch
@@ -965,6 +963,9 @@ cd configs
# Drop some necessary files from the source dir into the buildroot
cp $RPM_SOURCE_DIR/kernel-*.config .
+# Copy stx config
+cp $RPM_SOURCE_DIR/kernel-rt-%{version}-*.config.tis_extra .
+
cp %{SOURCE41} .
VERSION=%{version} ./generate_all_configs.sh %{name}
@@ -984,8 +985,20 @@ do
done
%endif
+# Handle StarlingX Cloud customizations. Use -n to match oldnoconfig below. We want this before
+# the make line below so that the one below removes any dependencies of ones that we
+# turn off here. We also want it before "make listnewconfig" so that we can set the
+# config option for new configs introduced in the StarlingX Cloud patches.
+for i in *.config
+do
+ if [ -f ${i}.tis_extra ]; then
+ ../scripts/kconfig/merge_config.sh -m -n ${i} ${i}.tis_extra
+ mv .config ${i}
+ fi
+done
+
cp %{SOURCE42} .
-./process_configs.sh -w %{name} %{rpmversion}
+./process_configs.sh -w -c %{name} %{rpmversion}
# end of kernel config
%endif
@@ -1092,7 +1105,7 @@ BuildKernel() {
fi
%if %{signkernel}
# Sign the image if we're using EFI
- %pesign -s -i $KernelImage -o vmlinuz.signed -a %{SOURCE13} -c %{SOURCE14} -n %{pesign_name}
+ %pesign -s -i $KernelImage -o vmlinuz.signed -a %{SOURCE3000} -c %{SOURCE3000} -n %{pesign_name}
if [ ! -s vmlinuz.signed ]; then
echo "pesigning failed"
exit 1
@@ -1439,6 +1452,12 @@ BuildKernel() {
# 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}
+ # STX: Copy these keys as part of the devel package
+ # The Module signing keys are to ensure that only Out-of-tree
+ # built against the StarlingX Kernel get signed and loaded sans warnings
+ cp certs/signing_key.pem ${RPM_BUILD_ROOT}/lib/modules/${KernelVer}/build/
+ chmod 755 ${RPM_BUILD_ROOT}/lib/modules/${KernelVer}/build/signing_key.pem
+ cp certs/signing_key.x509 ${RPM_BUILD_ROOT}/lib/modules/${KernelVer}/build/
fi
%endif
@@ -1991,7 +2010,7 @@ fi
%endif # with_perf
%if %{with_tools}
-%files -n kernel-tools
+%files -n %{name}-tools
%defattr(-,root,root)
%ifarch %{cpupowerarchs}
%files -n %{name}-tools -f cpupower.lang
@@ -2087,26 +2106,24 @@ fi
%if %{with_realtime}\
%exclude /lib/modules/%{KVERREL}%{?3:+%{3}}/kernel/arch/x86/kvm\
%exclude /lib/modules/%{KVERREL}%{?3:+%{3}}/kernel/drivers/gpu/drm/i915/gvt\
-%exclude /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.kvm\
-%exclude /lib/modules/%{KVERREL}%{?3:+%{3}}/kernel/drivers/ptp/ptp_kvm*\
%endif\
%{!?_licensedir:%global license %%doc}\
%license linux-%{KVERREL}/COPYING-%{version}\
/lib/modules/%{KVERREL}%{?3:+%{3}}/%{?-k:%{-k*}}%{!?-k:vmlinuz}\
-%ghost /%{image_install_path}/%{?-k:%{-k*}}%{!?-k:vmlinuz}-%{KVERREL}%{?3:+%{3}}\
+/%{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 \
+/%{image_install_path}/.vmlinuz-%{KVERREL}%{?3:+%{3}}.hmac \
%ifarch aarch64\
/lib/modules/%{KVERREL}%{?3:+%{3}}/dtb \
-%ghost /%{image_install_path}/dtb-%{KVERREL}%{?3:+%{3}} \
+/%{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}}\
+/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\
+/boot/symvers-%{KVERREL}%{?3:+%{3}}.gz\
+/boot/config-%{KVERREL}%{?3:+%{3}}\
+/boot/initramfs-%{KVERREL}%{?3:+%{3}}.img\
%dir /lib/modules\
%dir /lib/modules/%{KVERREL}%{?3:+%{3}}\
%dir /lib/modules/%{KVERREL}%{?3:+%{3}}/kernel\
@@ -2127,7 +2144,6 @@ fi
%exclude /lib/modules/%{KVERREL}%{?3:+%{3}}/kernel/arch/x86/kvm\
%exclude /lib/modules/%{KVERREL}%{?3:+%{3}}/kernel/drivers/gpu/drm/i915/gvt\
%exclude /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.kvm\
-%exclude /lib/modules/%{KVERREL}%{?3:+%{3}}/kernel/drivers/ptp/ptp_kvm*\
%endif\
%{expand:%%files %{?3:%{3}-}devel}\
%defattr(-,root,root)\
@@ -2157,19 +2173,20 @@ fi
/lib/modules/%{KVERREL}%{?3:+%{3}}/modules.kvm\
/lib/modules/%{KVERREL}%{?3:+%{3}}/kernel/arch/x86/kvm\
/lib/modules/%{KVERREL}%{?3:+%{3}}/kernel/drivers/gpu/drm/i915/gvt/kvmgt.ko*\
-/lib/modules/%{KVERREL}%{?3:+%{3}}/kernel/drivers/ptp/ptp_kvm.ko*\
%if %{with_debuginfo}\
%{expand:%%files %{?3:%{3}-}kvm-debuginfo}\
%dir %{debuginfodir}/lib/modules/%{KVERREL}%{?3:+%{3}}/kernel/arch/x86/kvm\
%{debuginfodir}/lib/modules/%{KVERREL}%{?3:+%{3}}/kernel/arch/x86/kvm\
%{debuginfodir}/lib/modules/%{KVERREL}%{?3:+%{3}}/kernel/drivers/gpu/drm/i915/gvt\
-%{debuginfodir}/lib/modules/%{KVERREL}%{?3:+%{3}}/kernel/drivers/ptp/ptp_kvm*\
%endif\
%endif\
%{nil}
%kernel_variant_files %{with_vdso_install} %{with_up}
+# STX: disable debug build
+%if %{with_debug}
%kernel_variant_files %{with_vdso_install} %{with_debug} debug
+%endif
%if %{with_zfcpdump}
%kernel_variant_files %{with_vdso_install} %{with_zfcpdump} zfcpdump
%endif
--
1.8.3.1

View File

@ -1,68 +0,0 @@
From b736a139f26f6323d8da5e42f2b254c7935de3c9 Mon Sep 17 00:00:00 2001
Message-Id: <b736a139f26f6323d8da5e42f2b254c7935de3c9.1588873412.git.Jim.Somerville@windriver.com>
In-Reply-To: <8f38a28fc2750dc526363dc4b7cce3c152bb913b.1588873412.git.Jim.Somerville@windriver.com>
References: <8f38a28fc2750dc526363dc4b7cce3c152bb913b.1588873412.git.Jim.Somerville@windriver.com>
From: Jim Somerville <Jim.Somerville@windriver.com>
Date: Fri, 13 Mar 2020 16:15:29 -0400
Subject: [PATCH 2/2] Kernel source patches for TiC
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Dongqi Chen <chen.dq@neusoft.com>
---
SPECS/kernel-rt.spec | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/SPECS/kernel-rt.spec b/SPECS/kernel-rt.spec
index b89db57..68a91e0 100644
--- a/SPECS/kernel-rt.spec
+++ b/SPECS/kernel-rt.spec
@@ -431,6 +431,24 @@ Source3000: centos.cer
Source30000: kernel-rt-4.18.0-x86_64.config.tis_extra
## Patches needed for building this package
+# StarlingX Cloud patches here.
+Patch40002: Notification-of-death-of-arbitrary-processes.patch
+Patch40004: PCI-Add-ACS-quirk-for-Intel-Fortville-NICs.patch
+Patch40005: affine-compute-kernel-threads.patch
+Patch40006: Affine-irqs-and-workqueues-with-kthread_cpus.patch
+Patch40007: Make-kernel-start-eth-devices-at-offset.patch
+Patch40008: intel-iommu-allow-ignoring-Ethernet-device-RMRR-with.patch
+Patch40026: turn-off-write-same-in-smartqpi-driver.patch
+Patch40031: Allow-dmar-quirks-for-broken-bioses.patch
+# TPM built-in kernel-rt driver
+Patch40032: tpm-ignore-burstcount-to-improve-send-performance.patch
+
+# StarlingX Cloud rt patches here.
+
+Patch41000: debrand-rh-i686-cpu.patch
+Patch41001: debrand-rh_taint.patch
+Patch41002: debrand-single-cpu.patch
+Patch41003: restrict-iSCSI-kthreads-to-CPUs-in-cpu_kthread_mask.patch
# END OF PATCH DEFINITIONS
@@ -936,6 +954,21 @@ cd linux-%{KVERREL}
# END OF PATCH APPLICATIONS
+# StarlingX Cloud patches here.
+ApplyOptionalPatch Notification-of-death-of-arbitrary-processes.patch
+ApplyOptionalPatch PCI-Add-ACS-quirk-for-Intel-Fortville-NICs.patch
+ApplyOptionalPatch affine-compute-kernel-threads.patch
+ApplyOptionalPatch Affine-irqs-and-workqueues-with-kthread_cpus.patch
+ApplyOptionalPatch Make-kernel-start-eth-devices-at-offset.patch
+ApplyOptionalPatch intel-iommu-allow-ignoring-Ethernet-device-RMRR-with.patch
+ApplyOptionalPatch turn-off-write-same-in-smartqpi-driver.patch
+ApplyOptionalPatch Allow-dmar-quirks-for-broken-bioses.patch
+ApplyOptionalPatch tpm-ignore-burstcount-to-improve-send-performance.patch
+ApplyOptionalPatch debrand-rh-i686-cpu.patch
+ApplyOptionalPatch debrand-rh_taint.patch
+ApplyOptionalPatch debrand-single-cpu.patch
+ApplyOptionalPatch restrict-iSCSI-kthreads-to-CPUs-in-cpu_kthread_mask.patch
+
# Any further pre-build tree manipulations happen here.
%if %{with_realtime}
--
2.7.4

View File

@ -1,2 +0,0 @@
Build-logic-and-sources-for-TiC.patch
Kernel-source-patches-for-TiC.patch

View File

@ -1,6 +1,6 @@
From 220edc1ccc6a0bc3dfb94a92946bf2b9a6cc0c61 Mon Sep 17 00:00:00 2001
From 33efb73059c7e1f2facc7bb04f60d706c07f640d Mon Sep 17 00:00:00 2001
From: Chris Friesen <chris.friesen@windriver.com>
Date: Thu, 7 Apr 2016 11:16:19 -0600
Date: Thu, 17 Jun 2021 01:28:11 -0700
Subject: [PATCH] Notification of death of arbitrary processes
Note: this commit was copied from Titanium Cloud Rel2
@ -20,11 +20,12 @@ PR_DO_NOTIFY_TASK_STATE option.
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Zhang Zhiguo <zhangzhg@neusoft.com>
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
Signed-off-by: Austin Sun <austin.sun@intel.com>
[jm: Adapted the patch for context changes.]
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
include/linux/init_task.h | 9 ++
include/linux/sched.h | 6 +
include/uapi/linux/prctl.h | 18 +++
include/uapi/linux/prctl.h | 16 +++
init/Kconfig | 15 +++
init/init_task.c | 1 +
kernel/Makefile | 1 +
@ -34,23 +35,23 @@ Signed-off-by: Austin Sun <austin.sun@intel.com>
kernel/fork.c | 4 +
kernel/signal.c | 11 ++
kernel/sys.c | 8 ++
12 files changed, 353 insertions(+)
12 files changed, 351 insertions(+)
create mode 100644 kernel/death_notify.c
create mode 100644 kernel/death_notify.h
diff --git a/include/linux/init_task.h b/include/linux/init_task.h
index a7083a45a..1ad2341b3 100644
index b2412b4d4c20..7a0828daf59c 100644
--- a/include/linux/init_task.h
+++ b/include/linux/init_task.h
@@ -24,6 +24,15 @@
@@ -25,6 +25,15 @@
extern struct files_struct init_files;
extern struct fs_struct init_fs;
extern struct nsproxy init_nsproxy;
+
+#ifdef CONFIG_SIGEXIT
+#define INIT_SIGEXIT(tsk) \
+ .notify = LIST_HEAD_INIT(tsk.notify), \
+ .monitor = LIST_HEAD_INIT(tsk.monitor),
+ .notify = LIST_HEAD_INIT(tsk.notify), \
+ .monitor = LIST_HEAD_INIT(tsk.monitor),
+#else
+#define INIT_SIGEXIT(tsk)
+#endif
@ -59,10 +60,10 @@ index a7083a45a..1ad2341b3 100644
extern struct cred init_cred;
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 91596900f..5e34f5021 100644
index e688e9307a21..c4b43b5d439f 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1083,6 +1083,12 @@ struct task_struct {
@@ -1145,6 +1145,12 @@ struct task_struct {
short il_prev;
short pref_node_fork;
#endif
@ -76,16 +77,15 @@ index 91596900f..5e34f5021 100644
int numa_scan_seq;
unsigned int numa_scan_period;
diff --git a/include/uapi/linux/prctl.h b/include/uapi/linux/prctl.h
index 327319b88..708484598 100644
index 7f0827705c9a..dbd5a8b6e002 100644
--- a/include/uapi/linux/prctl.h
+++ b/include/uapi/linux/prctl.h
@@ -63,6 +63,24 @@
@@ -63,6 +63,22 @@
# define PR_ENDIAN_LITTLE 1 /* True little endian mode */
# define PR_ENDIAN_PPC_LITTLE 2 /* "PowerPC" pseudo little endian */
+#ifdef CONFIG_SIGEXIT
+#define PR_DO_NOTIFY_TASK_STATE 17 /* Set/get notification for task
+ state changes */
+#define PR_DO_NOTIFY_TASK_STATE 17 /* Set/get notification for task
+ state changes */
+
+/* This is the data structure for requestion process death
+ * (and other state change) information. Sig of -1 means
@ -95,68 +95,67 @@ index 327319b88..708484598 100644
+ * successful call.
+ */
+struct task_state_notify_info {
+ pid_t pid;
+ int pid;
+ int sig;
+ unsigned int events;
+};
+#endif
+
/* Get/set process seccomp mode */
#define PR_GET_SECCOMP 21
#define PR_SET_SECCOMP 22
diff --git a/init/Kconfig b/init/Kconfig
index 7625bea9c..f88a36fef 100644
index 7ba2b602b707..5a5f38706715 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -1610,6 +1610,21 @@ config VM_EVENT_COUNTERS
@@ -1852,6 +1852,21 @@ config VM_EVENT_COUNTERS
on EXPERT systems. /proc/vmstat will only show page counts
if VM event counters are disabled.
+config SIGEXIT
+ bool "Notification of death of arbitrary processes"
+ default n
+ help
+ When enabled this exposes a new feature which may be called to request
+ notification when an arbitrary process changes state. The caller specifies
+ a pid, signal number, and event mask, and when that pid dies, or is
+ stopped, or anything else that would normally cause a SIGCHLD, the
+ kernel will send the specified signal to the caller if the event is in
+ the event mask originally passed down. The siginfo_t struct will
+ contain the same information as would be included with SIGCHLD.
+ bool "Notification of death of arbitrary processes"
+ default n
+ help
+ When enabled this exposes a new feature which may be called to request
+ notification when an arbitrary process changes state. The caller specifies
+ a pid, signal number, and event mask, and when that pid dies, or is
+ stopped, or anything else that would normally cause a SIGCHLD, the
+ kernel will send the specified signal to the caller if the event is in
+ the event mask originally passed down. The siginfo_t struct will
+ contain the same information as would be included with SIGCHLD.
+
+ This is exposed to userspace via the prctl()
+ call with the PR_DO_NOTIFY_TASK_STATE option
+ This is exposed to userspace via the prctl()
+ call with the PR_DO_NOTIFY_TASK_STATE option
+
config SLUB_DEBUG
default y
bool "Enable SLUB debugging support" if EXPERT
diff --git a/init/init_task.c b/init/init_task.c
index f2d3b023f..1623a4273 100644
index 5fa18ed59d33..e1a245782828 100644
--- a/init/init_task.c
+++ b/init/init_task.c
@@ -123,6 +123,7 @@ struct task_struct init_task
@@ -128,6 +128,7 @@ struct task_struct init_task
.alloc_lock = __SPIN_LOCK_UNLOCKED(init_task.alloc_lock),
.journal_info = NULL,
INIT_CPU_TIMERS(init_task)
+ INIT_SIGEXIT(init_task)
.pi_lock = __RAW_SPIN_LOCK_UNLOCKED(init_task.pi_lock),
.timer_slack_ns = 50000, /* 50 usec default slack */
INIT_TIMER_LIST
.thread_pid = &init_struct_pid,
diff --git a/kernel/Makefile b/kernel/Makefile
index aebf6a889..2669df332 100644
index e7905bdf6e97..ba9997c7a59c 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -104,6 +104,7 @@ obj-$(CONFIG_TRACEPOINTS) += trace/
obj-$(CONFIG_IRQ_WORK) += irq_work.o
obj-$(CONFIG_CPU_PM) += cpu_pm.o
obj-$(CONFIG_BPF) += bpf/
@@ -108,6 +108,7 @@ obj-$(CONFIG_BPF) += bpf/
obj-$(CONFIG_KCSAN) += kcsan/
obj-$(CONFIG_SHADOW_CALL_STACK) += scs.o
obj-$(CONFIG_HAVE_STATIC_CALL_INLINE) += static_call.o
+obj-$(CONFIG_SIGEXIT) += death_notify.o
obj-$(CONFIG_PERF_EVENTS) += events/
diff --git a/kernel/death_notify.c b/kernel/death_notify.c
new file mode 100644
index 000000000..5819d35a2
index 000000000000..5819d35a2564
--- /dev/null
+++ b/kernel/death_notify.c
@@ -0,0 +1,228 @@
@ -390,7 +389,7 @@ index 000000000..5819d35a2
+
diff --git a/kernel/death_notify.h b/kernel/death_notify.h
new file mode 100644
index 000000000..14a0995b7
index 000000000000..14a0995b79af
--- /dev/null
+++ b/kernel/death_notify.h
@@ -0,0 +1,46 @@
@ -441,12 +440,12 @@ index 000000000..14a0995b7
+#endif
+
diff --git a/kernel/exit.c b/kernel/exit.c
index 6199d4812..0467ef691 100644
index f5933bd07932..3c328a630257 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -67,6 +67,9 @@
@@ -68,6 +68,9 @@
#include <linux/uaccess.h>
#include <asm/unistd.h>
#include <asm/pgtable.h>
#include <asm/mmu_context.h>
+#ifdef CONFIG_SIGEXIT
+#include "death_notify.h"
@ -454,21 +453,21 @@ index 6199d4812..0467ef691 100644
static void __unhash_process(struct task_struct *p, bool group_dead)
{
@@ -196,6 +199,9 @@ void release_task(struct task_struct *p)
proc_flush_task(p);
@@ -194,6 +197,9 @@ void release_task(struct task_struct *p)
cgroup_release(p);
write_lock_irq(&tasklist_lock);
+#ifdef CONFIG_SIGEXIT
+ release_notify_others(p);
+#endif
ptrace_release_task(p);
thread_pid = get_pid(p->thread_pid);
__exit_signal(p);
diff --git a/kernel/fork.c b/kernel/fork.c
index 63245141d..c20efb927 100644
index fb3fbfd44b25..94769fcf71ac 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -1953,6 +1953,10 @@ static __latent_entropy struct task_struct *copy_process(
@@ -2095,6 +2095,10 @@ static __latent_entropy struct task_struct *copy_process(
p->sequential_io = 0;
p->sequential_io_avg = 0;
#endif
@ -480,20 +479,20 @@ index 63245141d..c20efb927 100644
/* Perform scheduler related setup. Assign this task to a CPU. */
retval = sched_fork(clone_flags, p);
diff --git a/kernel/signal.c b/kernel/signal.c
index f4d847cc4..c25b78c05 100644
index 0be3c40c5662..1581b2a76823 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -53,6 +53,9 @@
@@ -56,6 +56,9 @@
#include <asm/unistd.h>
#include <asm/siginfo.h>
#include <asm/cacheflush.h>
#include "audit.h" /* audit_signal_info() */
+#ifdef CONFIG_SIGEXIT
+#include "death_notify.h"
+#endif
/*
* SLAB caches for signal bits.
@@ -1989,6 +1992,10 @@ bool do_notify_parent(struct task_struct *tsk, int sig)
@@ -2088,6 +2091,10 @@ bool do_notify_parent(struct task_struct *tsk, int sig)
__wake_up_parent(tsk, tsk->parent);
spin_unlock_irqrestore(&psig->siglock, flags);
@ -504,7 +503,7 @@ index f4d847cc4..c25b78c05 100644
return autoreap;
}
@@ -2061,6 +2068,10 @@ static void do_notify_parent_cldstop(struct task_struct *tsk,
@@ -2160,6 +2167,10 @@ static void do_notify_parent_cldstop(struct task_struct *tsk,
*/
__wake_up_parent(tsk, parent);
spin_unlock_irqrestore(&sighand->siglock, flags);
@ -516,11 +515,11 @@ index f4d847cc4..c25b78c05 100644
static inline bool may_ptrace_stop(void)
diff --git a/kernel/sys.c b/kernel/sys.c
index 8a0fab918..e957bd5a5 100644
index a730c03ee607..0f8decf763f1 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -75,6 +75,9 @@
#include <linux/nospec.h>
@@ -73,6 +73,9 @@
#include <asm/unistd.h>
#include "uid16.h"
+#ifdef CONFIG_SIGEXIT
@ -529,7 +528,7 @@ index 8a0fab918..e957bd5a5 100644
#ifndef SET_UNALIGN_CTL
# define SET_UNALIGN_CTL(a, b) (-EINVAL)
@@ -2409,6 +2412,11 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
@@ -2423,6 +2426,11 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
else
error = PR_MCE_KILL_DEFAULT;
break;
@ -542,5 +541,5 @@ index 8a0fab918..e957bd5a5 100644
error = prctl_set_mm(arg2, arg3, arg4, arg5);
break;
--
2.19.1
2.31.1

View File

@ -1,4 +1,4 @@
From 43ba972baa0e075a185e34a579f920e0a3e40455 Mon Sep 17 00:00:00 2001
From 9317be15490c339cd587292722efac013a2fb880 Mon Sep 17 00:00:00 2001
From: Dahir Osman <dahir.osman@windriver.com>
Date: Wed, 13 Jan 2016 10:01:11 -0500
Subject: [PATCH 02/10] PCI: Add ACS quirk for Intel Fortville NICs
@ -8,18 +8,19 @@ properly read the Fortville ACS capabilities.
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Zhang Zhiguo <zhangzhg@neusoft.com>
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
drivers/pci/quirks.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 36f8e32..03c25f9 100644
index b570f297e3ec..910026923549 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -4422,6 +4422,10 @@ static const struct pci_dev_acs_enabled {
/* I219 */
@@ -4740,6 +4740,10 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_INTEL, 0x15b7, pci_quirk_mf_endpoint_acs },
{ PCI_VENDOR_ID_INTEL, 0x15b8, pci_quirk_mf_endpoint_acs },
{ PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_rciep_acs },
+ /* I40 */
+ { PCI_VENDOR_ID_INTEL, 0x1572, pci_quirk_mf_endpoint_acs },
+ { PCI_VENDOR_ID_INTEL, 0x1586, pci_quirk_mf_endpoint_acs },
@ -28,5 +29,5 @@ index 36f8e32..03c25f9 100644
{ PCI_VENDOR_ID_QCOM, 0x0400, pci_quirk_qcom_rp_acs },
{ PCI_VENDOR_ID_QCOM, 0x0401, pci_quirk_qcom_rp_acs },
--
2.7.4
2.29.2

View File

@ -1,4 +1,4 @@
From 86a6c5a26e59c6cb938f5e08e33933723249bfe6 Mon Sep 17 00:00:00 2001
From c8cf8051b6e4118613fbdfccbca0c4a0c19ec4a5 Mon Sep 17 00:00:00 2001
From: Chris Friesen <chris.friesen@windriver.com>
Date: Tue, 24 Nov 2015 16:27:28 -0500
Subject: [PATCH] affine compute kernel threads
@ -28,40 +28,43 @@ Signed-off-by: Vu Tran <vu.tran@windriver.com>
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Zhang Zhiguo <zhangzhg@neusoft.com>
Signed-off-by: Vefa Bicakci <vefa.bicakci@windriver.com>
[jm: Adapted the patch for context changes.]
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
Documentation/admin-guide/kernel-parameters.txt | 9 +++++++++
include/linux/cpumask.h | 3 +++
init/main.c | 2 ++
kernel/cpu.c | 20 ++++++++++++++++++++
kernel/kthread.c | 4 ++--
kernel/umh.c | 3 +++
.../admin-guide/kernel-parameters.txt | 10 ++++++++++
include/linux/cpumask.h | 3 +++
init/main.c | 2 ++
kernel/cpu.c | 19 +++++++++++++++++++
kernel/kthread.c | 4 ++--
kernel/umh.c | 3 +++
6 files changed, 39 insertions(+), 2 deletions(-)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 5d43bff81f1d..928b52500e9e 100644
index 5a241afb4728..78a923d087c1 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -1968,6 +1968,15 @@
Default: on
Built with CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y,
the default is off.
+ kthread_cpus= [KNL, SMP] Only run kernel threads on the specified
+ list of processors. The kernel will start threads
+ on the indicated processors only (unless there
+ are specific reasons to run a thread with
+ different affinities). This can be used to make
+ init start on certain processors and also to
+ control where kmod and other user space threads
+ are being spawned. Allows to keep kernel threads
+ away from certain cores unless absoluteluy necessary.
@@ -2217,6 +2217,16 @@
See also Documentation/trace/kprobetrace.rst "Kernel
Boot Parameter" section.
+ kthread_cpus= [KNL, SMP] Only run kernel threads on the specified
+ list of processors. The kernel will start threads
+ on the indicated processors only (unless there
+ are specific reasons to run a thread with
+ different affinities). This can be used to make
+ init start on certain processors and also to
+ control where kmod and other user space threads
+ are being spawned. Allows to keep kernel threads
+ away from certain cores unless absoluteluy necessary.
+
kpti= [ARM64] Control page table isolation of user
and kernel address spaces.
Default: enabled on cores which need mitigation.
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
index 57f20a0a7794..452603496e53 100644
index 383684e30f12..8fcc67ea3d8c 100644
--- a/include/linux/cpumask.h
+++ b/include/linux/cpumask.h
@@ -54,6 +54,7 @@ extern unsigned int nr_cpu_ids;
@@ -55,6 +55,7 @@ extern unsigned int nr_cpu_ids;
* cpu_present_mask - has bit 'cpu' set iff cpu is populated
* cpu_online_mask - has bit 'cpu' set iff cpu available to scheduler
* cpu_active_mask - has bit 'cpu' set iff cpu available to migration
@ -69,7 +72,7 @@ index 57f20a0a7794..452603496e53 100644
*
* If !CONFIG_HOTPLUG_CPU, present == possible, and active == online.
*
@@ -90,10 +91,12 @@ extern struct cpumask __cpu_possible_mask;
@@ -91,10 +92,12 @@ extern struct cpumask __cpu_possible_mask;
extern struct cpumask __cpu_online_mask;
extern struct cpumask __cpu_present_mask;
extern struct cpumask __cpu_active_mask;
@ -80,28 +83,28 @@ index 57f20a0a7794..452603496e53 100644
#define cpu_active_mask ((const struct cpumask *)&__cpu_active_mask)
+#define cpu_kthread_mask ((const struct cpumask *)&__cpu_kthread_mask)
#if NR_CPUS > 1
#define num_online_cpus() cpumask_weight(cpu_online_mask)
extern atomic_t __num_online_cpus;
diff --git a/init/main.c b/init/main.c
index 42c2f2ed74a2..f248b7f07082 100644
index 0e4cc913695e..df9759f2859b 100644
--- a/init/main.c
+++ b/init/main.c
@@ -1142,6 +1142,8 @@ static noinline void __init kernel_init_freeable(void)
@@ -1542,6 +1542,8 @@ static noinline void __init kernel_init_freeable(void)
do_basic_setup();
+ set_cpus_allowed_ptr(current, cpu_kthread_mask);
+
/* Open the /dev/console on the rootfs, this should never fail */
if (ksys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
pr_err("Warning: unable to open an initial console.\n");
kunit_run_all_tests();
console_on_rootfs();
diff --git a/kernel/cpu.c b/kernel/cpu.c
index d94cf04ef0b8..0f3625c90996 100644
index 4e11e91010e1..52aa0ee41352 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -2243,6 +2243,26 @@ EXPORT_SYMBOL(__cpu_present_mask);
struct cpumask __cpu_active_mask __read_mostly;
EXPORT_SYMBOL(__cpu_active_mask);
@@ -2456,6 +2456,25 @@ EXPORT_SYMBOL(__cpu_active_mask);
atomic_t __num_online_cpus __read_mostly;
EXPORT_SYMBOL(__num_online_cpus);
+struct cpumask __cpu_kthread_mask __read_mostly
+ = {CPU_BITS_ALL};
@ -111,50 +114,49 @@ index d94cf04ef0b8..0f3625c90996 100644
+{
+ struct cpumask tmp_mask;
+ int err;
+
+
+ err = cpulist_parse(str, &tmp_mask);
+ if (!err)
+ cpumask_copy(&__cpu_kthread_mask, &tmp_mask);
+ cpumask_copy(&__cpu_kthread_mask, &tmp_mask);
+ else
+ pr_err("Cannot parse 'kthread_cpus=%s'; error %d\n", str, err);
+
+ pr_err("Cannot parse 'kthread_cpus=%s'; error %d\n", str, err);
+
+ return 1;
+}
+__setup("kthread_cpus=", kthread_setup);
+
+
void init_cpu_present(const struct cpumask *src)
{
cpumask_copy(&__cpu_present_mask, src);
diff --git a/kernel/kthread.c b/kernel/kthread.c
index 1f0bf2d0f207..3a5f1af5054e 100644
index cdfaf64263b3..251a753c852e 100644
--- a/kernel/kthread.c
+++ b/kernel/kthread.c
@@ -339,7 +339,7 @@ struct task_struct *__kthread_create_on_node(int (*threadfn)(void *data),
* The kernel thread should not inherit these properties.
*/
sched_setscheduler_nocheck(task, SCHED_NORMAL, &param);
- set_cpus_allowed_ptr(task, cpu_all_mask);
+ set_cpus_allowed_ptr(task, cpu_kthread_mask);
}
kfree(create);
return task;
@@ -562,7 +562,7 @@ int kthreadd(void *unused)
@@ -279,7 +279,7 @@ static int kthread(void *_create)
* back to default in case they have been changed.
*/
sched_setscheduler_nocheck(current, SCHED_NORMAL, &param);
- set_cpus_allowed_ptr(current, housekeeping_cpumask(HK_FLAG_KTHREAD));
+ set_cpus_allowed_ptr(current, cpu_kthread_mask);
/* OK, tell user we're spawned, wait for stop or wakeup */
__set_current_state(TASK_UNINTERRUPTIBLE);
@@ -634,7 +634,7 @@ int kthreadd(void *unused)
/* Setup a clean context for our children to inherit. */
set_task_comm(tsk, "kthreadd");
ignore_signals(tsk);
- set_cpus_allowed_ptr(tsk, cpu_all_mask);
- set_cpus_allowed_ptr(tsk, housekeeping_cpumask(HK_FLAG_KTHREAD));
+ set_cpus_allowed_ptr(tsk, cpu_kthread_mask);
set_mems_allowed(node_states[N_MEMORY]);
current->flags |= PF_NOFREEZE;
diff --git a/kernel/umh.c b/kernel/umh.c
index d937cbad903a..94715dff7d61 100644
index 3f646613a9d3..e5027cee43f7 100644
--- a/kernel/umh.c
+++ b/kernel/umh.c
@@ -74,6 +74,9 @@ static int call_usermodehelper_exec_async(void *data)
flush_signal_handlers(current, 1);
spin_unlock_irq(&current->sighand->siglock);
@@ -80,6 +80,9 @@ static int call_usermodehelper_exec_async(void *data)
*/
current->fs->umask = 0022;
+ /* We can run only where init is allowed to run. */
+ set_cpus_allowed_ptr(current, cpu_kthread_mask);
@ -163,5 +165,5 @@ index d937cbad903a..94715dff7d61 100644
* Our parent (unbound workqueue) runs with elevated scheduling
* priority. Avoid propagating that into the userspace child.
--
2.29.2
2.31.1

View File

@ -1,4 +1,4 @@
From 3ceddd371d3d53ef0bbe81bad548f2d6889ec3d2 Mon Sep 17 00:00:00 2001
From 36d1eeee008939d77f015d051970bd417ac6fcf1 Mon Sep 17 00:00:00 2001
From: Chris Friesen <chris.friesen@windriver.com>
Date: Tue, 24 Nov 2015 16:27:29 -0500
Subject: [PATCH 04/10] Affine irqs and workqueues with kthread_cpus
@ -21,16 +21,17 @@ Signed-off-by: Vu Tran <vu.tran@windriver.com>
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Zhang Zhiguo <zhangzhg@neusoft.com>
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
kernel/irq/manage.c | 7 +++++++
kernel/workqueue.c | 4 ++++
2 files changed, 11 insertions(+)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index c4e31f4..002dec3 100644
index de00a0599afe..84a120d3abef 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -400,6 +400,13 @@ int irq_setup_affinity(struct irq_desc *desc)
@@ -515,6 +515,13 @@ int irq_setup_affinity(struct irq_desc *desc)
if (cpumask_intersects(&mask, nodemask))
cpumask_and(&mask, &mask, nodemask);
}
@ -45,20 +46,20 @@ index c4e31f4..002dec3 100644
raw_spin_unlock(&mask_lock);
return ret;
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 4228207..c7fa0ec 100644
index c9a0c961d6e0..f69f10a220b6 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -5730,6 +5730,8 @@ int __init workqueue_init_early(void)
@@ -5960,6 +5960,8 @@ void __init workqueue_init_early(void)
BUG_ON(!(attrs = alloc_workqueue_attrs(GFP_KERNEL)));
BUG_ON(!(attrs = alloc_workqueue_attrs()));
attrs->nice = std_nice[i];
+ /* If we've specified a kthread mask apply it here too. */
+ cpumask_copy(attrs->cpumask, cpu_kthread_mask);
unbound_std_wq_attrs[i] = attrs;
/*
@@ -5740,6 +5742,8 @@ int __init workqueue_init_early(void)
BUG_ON(!(attrs = alloc_workqueue_attrs(GFP_KERNEL)));
@@ -5970,6 +5972,8 @@ void __init workqueue_init_early(void)
BUG_ON(!(attrs = alloc_workqueue_attrs()));
attrs->nice = std_nice[i];
attrs->no_numa = true;
+ /* If we've specified a kthread mask apply it here too. */
@ -67,5 +68,5 @@ index 4228207..c7fa0ec 100644
}
--
2.7.4
2.29.2

View File

@ -1,4 +1,4 @@
From ad08e36ea088aebb3c65f98b5ea87a9f095155b3 Mon Sep 17 00:00:00 2001
From 4a72347e026f8a82c9e8d748daf59b74345c47f1 Mon Sep 17 00:00:00 2001
From: Chris Friesen <chris.friesen@windriver.com>
Date: Thu, 12 May 2016 18:00:00 -0400
Subject: [PATCH 05/10] Make kernel start eth devices at offset
@ -9,15 +9,16 @@ will let us rename to a range starting at eth0.
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Zhang Zhiguo <zhangzhg@neusoft.com>
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
net/core/dev.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/net/core/dev.c b/net/core/dev.c
index 6a531ca..980860d 100644
index 623d2622f6be..e85cddf2fc83 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1100,6 +1100,12 @@ static int __dev_alloc_name(struct net *net, const char *name, char *buf)
@@ -1218,6 +1218,12 @@ static int __dev_alloc_name(struct net *net, const char *name, char *buf)
set_bit(i, inuse);
}
@ -31,5 +32,5 @@ index 6a531ca..980860d 100644
free_page((unsigned long) inuse);
}
--
2.7.4
2.29.2

View File

@ -1,8 +1,8 @@
From d5c26ebe8a51ee66a644973fb13b3dbd3152203e Mon Sep 17 00:00:00 2001
From c35ee3034b61e72bf9fef888a3c4702049a77bcc Mon Sep 17 00:00:00 2001
From: Matt Peters <matt.peters@windriver.com>
Date: Mon, 30 May 2016 10:51:02 -0400
Subject: [PATCH 06/10] intel-iommu: allow ignoring Ethernet device RMRR with
IOMMU passthrough
Subject: [PATCH] intel-iommu: allow ignoring Ethernet device RMRR with IOMMU
passthrough
Some BIOS's are reporting DMAR RMRR entries for Ethernet devices
which is causing problems when PCI passthrough is enabled. These
@ -17,16 +17,36 @@ Signed-off-by: Nam Ninh <nam.ninh@windriver.com>
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Zhang Zhiguo <zhangzhg@neusoft.com>
Signed-off-by: Dongqi Chen <chen.dq@neusoft.com>
[lz: Adapted the patch for context changes.]
Signed-off-by: Li Zhou <li.zhou@windriver.com>
[jp: fix warning: this 'else' clause does not guard]
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
Documentation/Intel-IOMMU.txt | 18 ++++++++++++++++++
Documentation/admin-guide/kernel-parameters.txt | 5 +++++
drivers/iommu/intel-iommu.c | 19 +++++++++++++++++++
3 files changed, 42 insertions(+)
.../admin-guide/kernel-parameters.txt | 5 +++++
Documentation/x86/intel-iommu.rst | 18 +++++++++++++++
drivers/iommu/intel/iommu.c | 22 ++++++++++++++++++-
3 files changed, 44 insertions(+), 1 deletion(-)
diff --git a/Documentation/Intel-IOMMU.txt b/Documentation/Intel-IOMMU.txt
index 9dae6b4..1080fcb 100644
--- a/Documentation/Intel-IOMMU.txt
+++ b/Documentation/Intel-IOMMU.txt
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 78a923d087c1..e7639eaa41b8 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -1861,6 +1861,11 @@
than 32-bit addressing. The default is to look
for translation below 32-bit and if not available
then look in the higher range.
+ eth_no_rmrr [Default Off]
+ With this option provided, the kernel will ignore
+ any specified RMRR regions specified by the BIOS
+ for PCI ethernet devices. Confirm with your hardware
+ vendor the RMRR regions are indeed invalid first.
strict [Default Off]
With this option on every unmap_single operation will
result in a hardware IOTLB flush operation as opposed
diff --git a/Documentation/x86/intel-iommu.rst b/Documentation/x86/intel-iommu.rst
index 099f13d51d5f..18e6a8d8b1ee 100644
--- a/Documentation/x86/intel-iommu.rst
+++ b/Documentation/x86/intel-iommu.rst
@@ -33,6 +33,24 @@ regions will fail. Hence BIOS uses RMRR to specify these regions along with
devices that need to access these regions. OS is expected to setup
unity mappings for these regions for these devices to access these regions.
@ -52,40 +72,24 @@ index 9dae6b4..1080fcb 100644
How is IOVA generated?
----------------------
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 928b525..cea7932 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -1672,6 +1672,11 @@
than 32-bit addressing. The default is to look
for translation below 32-bit and if not available
then look in the higher range.
+ eth_no_rmrr [Default Off]
+ With this option provided, the kernel will ignore
+ any specified RMRR regions specified by the BIOS
+ for PCI ethernet devices. Confirm with your hardware
+ vendor the RMRR regions are indeed invalid first.
strict [Default Off]
With this option on every unmap_single operation will
result in a hardware IOTLB flush operation as opposed
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index 0962d65..ea478fa 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -485,6 +485,7 @@ static int dmar_forcedac;
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
index db9bf5ac0722..f30df770243d 100644
--- a/drivers/iommu/intel/iommu.c
+++ b/drivers/iommu/intel/iommu.c
@@ -354,6 +354,7 @@ static int dmar_map_gfx = 1;
static int dmar_forcedac;
static int intel_iommu_strict;
static int intel_iommu_superpage = 1;
static int intel_iommu_ecs = 1;
+static int intel_iommu_ethrmrr = 1;
static int intel_iommu_pasid28;
static int iommu_identity_mapping;
@@ -569,6 +570,15 @@ static int __init intel_iommu_setup(char *str)
static int intel_no_bounce;
static int iommu_skip_te_disable;
@@ -448,6 +449,15 @@ static int __init intel_iommu_setup(char *str)
} else if (!strncmp(str, "forcedac", 8)) {
pr_info("Forcing DAC for PCI devices\n");
dmar_forcedac = 1;
+ } else if (!strncmp(str, "eth_no_rmrr", 11)) {
+ if (!iommu_pass_through) {
+ if (!iommu_default_passthrough()) {
+ printk(KERN_WARNING
+ "Intel-IOMMU: error - eth_no_rmrr requires iommu=pt\n");
+ } else {
@ -96,10 +100,12 @@ index 0962d65..ea478fa 100644
} else if (!strncmp(str, "strict", 6)) {
pr_info("Disable batched IOTLB flush\n");
intel_iommu_strict = 1;
@@ -2920,6 +2930,15 @@ static bool device_is_rmrr_locked(struct device *dev)
if (IS_USB_DEVICE(pdev) || IS_GFX_DEVICE(pdev))
return false;
@@ -2907,8 +2917,18 @@ static bool device_rmrr_is_relaxable(struct device *dev)
pdev = to_pci_dev(dev);
if (IS_USB_DEVICE(pdev) || IS_GFX_DEVICE(pdev))
return true;
- else
+ else {
+ /* As a temporary workaround for issues seen on ProLiant DL380p,
+ * allow the operator to ignore the RMRR settings for ethernet
+ * devices. Ideally the end user should contact their vendor
@ -108,10 +114,12 @@ index 0962d65..ea478fa 100644
+ * it seems that these make no sense at all.
+ */
+ if ((pdev->class >> 8) == PCI_CLASS_NETWORK_ETHERNET && !intel_iommu_ethrmrr)
+ return false;
}
+ return true;
return false;
+ }
}
return true;
/*
--
2.7.4
2.29.2

View File

@ -1,19 +1,20 @@
From 188641f520d4c12abc42a7112e75845e94b7993e Mon Sep 17 00:00:00 2001
From ecb3070f30a3328bca8844ba2a427e67bf9268ba Mon Sep 17 00:00:00 2001
From: Jim Somerville <Jim.Somerville@windriver.com>
Date: Tue, 6 Mar 2018 12:54:40 -0500
Subject: [PATCH 09/10] turn off write same in smartqpi driver
Subject: [PATCH 06/10] turn off write same in smartqpi driver
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Zhang Zhiguo <zhangzhg@neusoft.com>
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
drivers/scsi/smartpqi/smartpqi_init.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c
index 7810cb2..9895f7f 100644
index 5083e5d2b467..cb1280d0ea75 100644
--- a/drivers/scsi/smartpqi/smartpqi_init.c
+++ b/drivers/scsi/smartpqi/smartpqi_init.c
@@ -6413,6 +6413,7 @@ static struct scsi_host_template pqi_driver_template = {
@@ -6575,6 +6575,7 @@ static struct scsi_host_template pqi_driver_template = {
.map_queues = pqi_map_queues,
.sdev_attrs = pqi_sdev_attrs,
.shost_attrs = pqi_shost_attrs,
@ -22,5 +23,5 @@ index 7810cb2..9895f7f 100644
static int pqi_register_scsi(struct pqi_ctrl_info *ctrl_info)
--
2.7.4
2.29.2

View File

@ -1,7 +1,7 @@
From db29cbbf37d3b66cfd5deb9ebc32210e32a1b571 Mon Sep 17 00:00:00 2001
From ad3d09f2052d053ebe13220b5acb496a07fcf0da Mon Sep 17 00:00:00 2001
From: Jim Somerville <Jim.Somerville@windriver.com>
Date: Wed, 29 Jan 2020 14:19:22 -0500
Subject: [PATCH] Allow dmar quirks for broken bioses
Subject: [PATCH 07/10] Allow dmar quirks for broken bioses
Problem:
Broken bios creates inaccurate DMAR tables,
@ -26,15 +26,16 @@ Lu Baolu of Intel Corp to lkml
https://lkml.org/lkml/2019/12/24/15
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
drivers/iommu/dmar.c | 25 ++++++++++++++++++++++++-
drivers/iommu/intel/dmar.c | 25 ++++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/drivers/iommu/dmar.c b/drivers/iommu/dmar.c
index 1269583..51d2fb2 100644
--- a/drivers/iommu/dmar.c
+++ b/drivers/iommu/dmar.c
@@ -76,6 +76,26 @@ static void free_iommu(struct intel_iommu *iommu);
diff --git a/drivers/iommu/intel/dmar.c b/drivers/iommu/intel/dmar.c
index 02e7c10a4224..7d423ac36a44 100644
--- a/drivers/iommu/intel/dmar.c
+++ b/drivers/iommu/intel/dmar.c
@@ -66,6 +66,26 @@ static void free_iommu(struct intel_iommu *iommu);
extern const struct iommu_ops intel_iommu_ops;
@ -56,13 +57,13 @@ index 1269583..51d2fb2 100644
+ */
+/* Sky Lake-E PCI Express Root Port A */
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2030,
+ quirk_dmar_scope_mismatch);
+ quirk_dmar_scope_mismatch);
+
static void dmar_register_drhd_unit(struct dmar_drhd_unit *drhd)
{
/*
@@ -258,7 +278,10 @@ int dmar_insert_dev_scope(struct dmar_pci_notify_info *info,
info->dev->class >> 8 != PCI_CLASS_BRIDGE_OTHER))) {
@@ -255,7 +275,10 @@ int dmar_insert_dev_scope(struct dmar_pci_notify_info *info,
info->dev->class >> 16 != PCI_BASE_CLASS_BRIDGE))) {
pr_warn("Device scope type does not match for %s\n",
pci_name(info->dev));
- return -EINVAL;
@ -74,5 +75,5 @@ index 1269583..51d2fb2 100644
for_each_dev_scope(devices, devices_cnt, i, tmp)
--
2.7.4
2.29.2

View File

@ -1,7 +1,7 @@
From 4f19722fd1dfbd1f692f4158bcee0c47ba4b1869 Mon Sep 17 00:00:00 2001
From 7240ac0b8c98c99adc09a46d577c7dd1e8ca46dd Mon Sep 17 00:00:00 2001
From: Nayna Jain <nayna@linux.vnet.ibm.com>
Date: Fri, 10 Nov 2017 17:16:35 -0500
Subject: [PATCH 3/3] tpm: ignore burstcount to improve tpm_tis send()
Subject: [PATCH 08/10] tpm: ignore burstcount to improve tpm_tis send()
performance
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
@ -26,15 +26,16 @@ Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Dongqi Chen <chen.dq@neusoft.com>
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
drivers/char/tpm/tpm_tis_core.c | 43 ++++++++++++++---------------------------
drivers/char/tpm/tpm_tis_core.c | 43 ++++++++++++---------------------
1 file changed, 15 insertions(+), 28 deletions(-)
diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c
index b9f6468..54a6490 100644
index a2e0395cbe61..2c69fde1e4e5 100644
--- a/drivers/char/tpm/tpm_tis_core.c
+++ b/drivers/char/tpm/tpm_tis_core.c
@@ -367,7 +367,6 @@ static int tpm_tis_send_data(struct tpm_chip *chip, const u8 *buf, size_t len)
@@ -330,7 +330,6 @@ static int tpm_tis_send_data(struct tpm_chip *chip, const u8 *buf, size_t len)
{
struct tpm_tis_data *priv = dev_get_drvdata(&chip->dev);
int rc, status, burstcnt;
@ -42,7 +43,7 @@ index b9f6468..54a6490 100644
bool itpm = priv->flags & TPM_TIS_ITPM_WORKAROUND;
status = tpm_tis_status(chip);
@@ -380,36 +379,24 @@ static int tpm_tis_send_data(struct tpm_chip *chip, const u8 *buf, size_t len)
@@ -343,36 +342,24 @@ static int tpm_tis_send_data(struct tpm_chip *chip, const u8 *buf, size_t len)
goto out_err;
}
}
@ -95,5 +96,5 @@ index b9f6468..54a6490 100644
goto out_err;
--
2.7.4
2.29.2

View File

@ -1,23 +1,24 @@
From e2e6b3f625a3a6cc0202c60ce93ca9d300cb6b9b Mon Sep 17 00:00:00 2001
From 496b91a31568c382c50dd2fe7ce190142913eaf5 Mon Sep 17 00:00:00 2001
From: Alex Kozyrev <alex.kozyrev@windriver.com>
Date: Fri, 16 Mar 2018 15:50:57 -0400
Subject: [PATCH 1/2] restrict iSCSI kthreads to CPUs in cpu_kthread_mask
Subject: [PATCH 09/10] restrict iSCSI kthreads to CPUs in cpu_kthread_mask
Do not allow them to run on other CPUs to prevent interference with VMs.
Signed-off-by: Alex Kozyrev <alex.kozyrev@windriver.com>
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Austin Sun <austin.sun@intel.com>
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
drivers/target/iscsi/iscsi_target.c | 4 ++--
include/linux/cpumask.h | 1 +
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c
index 5ce6e2a40..a38c73525 100644
index a237f1cf9bd6..e00365a0538f 100644
--- a/drivers/target/iscsi/iscsi_target.c
+++ b/drivers/target/iscsi/iscsi_target.c
@@ -3543,8 +3543,8 @@ void iscsit_thread_get_cpumask(struct iscsi_conn *conn)
@@ -3593,8 +3593,8 @@ void iscsit_thread_get_cpumask(struct iscsi_conn *conn)
* iSCSI connection's RX/TX threads will be scheduled to
* execute upon.
*/
@ -29,10 +30,10 @@ index 5ce6e2a40..a38c73525 100644
cpumask_set_cpu(cpu, conn->conn_cpumask);
return;
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
index 57f20a0a7..7029aeae7 100644
index 8fcc67ea3d8c..b24159c028ac 100644
--- a/include/linux/cpumask.h
+++ b/include/linux/cpumask.h
@@ -770,6 +770,7 @@ extern const DECLARE_BITMAP(cpu_all_bits, NR_CPUS);
@@ -820,6 +820,7 @@ extern const DECLARE_BITMAP(cpu_all_bits, NR_CPUS);
#define for_each_possible_cpu(cpu) for_each_cpu((cpu), cpu_possible_mask)
#define for_each_online_cpu(cpu) for_each_cpu((cpu), cpu_online_mask)
#define for_each_present_cpu(cpu) for_each_cpu((cpu), cpu_present_mask)
@ -41,5 +42,5 @@ index 57f20a0a7..7029aeae7 100644
/* Wrappers for arch boot code to manipulate normally-constant masks */
void init_cpu_present(const struct cpumask *src);
--
2.19.1
2.29.2

View File

@ -1,27 +0,0 @@
From 472b6cdd9e6d8df5b1574b05ca8d9ef6511c0ce1 Mon Sep 17 00:00:00 2001
From: Jim Somerville <Jim.Somerville@windriver.com>
Date: Tue, 3 Apr 2018 18:07:37 -0400
Subject: [PATCH 2/2] debrand rh i686 cpu
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Austin Sun <austin.sun@intel.com>
---
arch/x86/boot/main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/boot/main.c b/arch/x86/boot/main.c
index 89f9e047b..0ea44ce3d 100644
--- a/arch/x86/boot/main.c
+++ b/arch/x86/boot/main.c
@@ -147,7 +147,7 @@ void main(void)
/* Make sure we have all the proper CPU support */
if (validate_cpu()) {
- puts("This processor is not supported in this version of RHEL.\n");
+ puts("This processor is not supported in this version of CentOS.\n");
die();
}
--
2.19.1

View File

@ -1,101 +0,0 @@
From 71f6d30a1acd723dfbb721fb690efb082d9fc2e0 Mon Sep 17 00:00:00 2001
Message-Id: <71f6d30a1acd723dfbb721fb690efb082d9fc2e0.1528226387.git.Jim.Somerville@windriver.com>
In-Reply-To: <c8270e79f6b7008fde44b8d5aa6314d8cf89d3ed.1528226387.git.Jim.Somerville@windriver.com>
References: <c8270e79f6b7008fde44b8d5aa6314d8cf89d3ed.1528226387.git.Jim.Somerville@windriver.com>
From: Jim Perrin <jperrin@centos.org>
Date: Thu, 19 Jun 2014 10:05:12 -0500
Subject: [PATCH 02/32] debrand rh_taint
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Sun Austin <austin.sun@intel.com>
Signed-off-by: Dongqi Chen <chen.dq@neusoft.com>
---
kernel/rh_taint.c | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/kernel/rh_taint.c b/kernel/rh_taint.c
index 22f0324..28c369f 100644
--- a/kernel/rh_taint.c
+++ b/kernel/rh_taint.c
@@ -2,12 +2,12 @@
#include <linux/module.h>
/*
- * 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
+ * The following functions are used by CentOS to indicate to users that
+ * hardware and drivers are unsupported, or have limited support in CentOS Linux 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,
+ * Any use of these functions _MUST_ be documented in the CentOS Linux Release Notes,
* and have approval of management.
*/
@@ -16,15 +16,15 @@
* @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
+ * support in any CentOS Linux minor release. This does not TAINT the kernel. CentOS
+ * will not fix bugs against this hardware in this minor release. CentOS 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://hardware.redhat.com for certified hardware.\n", msg);
+ pr_crit("Warning: %s - this hardware has not undergone upstream testing. Please consult http://wiki.centos.org/FAQ for more information\n", msg);
}
EXPORT_SYMBOL(mark_hardware_unsupported);
@@ -35,12 +35,12 @@ EXPORT_SYMBOL(mark_hardware_unsupported);
* 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
+ * CentOS Linux 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);
+ pr_crit("Warning: %s - this hardware is not recommended for new deployments. It continues to be supported in this CentOS Linux 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 CentOS Support or your device's hardware vendor for additional information.\n", msg);
}
EXPORT_SYMBOL(mark_hardware_deprecated);
@@ -50,9 +50,9 @@ EXPORT_SYMBOL(mark_hardware_deprecated);
*
* 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
+ * had limited testing and is not marked for full support within this CentOS Linux
+ * minor release. The next CentOS Linux minor release may contain full support for
+ * this driver. CentOS does not guarantee that bugs reported against this
* driver or subsystem will be resolved.
*/
void mark_tech_preview(const char *msg, struct module *mod)
@@ -81,13 +81,13 @@ 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
+ * In some cases CentOS 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",
+ pr_crit("Warning: %s - This driver has not undergone sufficient testing by CentOS for this release and therefore cannot be used in production systems.\n",
name ? name : "kernel");
}
EXPORT_SYMBOL(mark_driver_unsupported);
--
2.7.4

View File

@ -1,29 +0,0 @@
From c8270e79f6b7008fde44b8d5aa6314d8cf89d3ed Mon Sep 17 00:00:00 2001
Message-Id: <c8270e79f6b7008fde44b8d5aa6314d8cf89d3ed.1528226387.git.Jim.Somerville@windriver.com>
From: Jim Perrin <jperrin@centos.org>
Date: Thu, 19 Jun 2014 09:53:13 -0500
Subject: [PATCH 01/32] debrand single cpu
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Sun Austin <austin.sun@intel.com>
Signed-off-by: Dongqi Chen <chen.dq@neusoft.com>
---
arch/x86/kernel/setup.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index f27ca00..9eca4ac 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -926,7 +926,7 @@ static void rh_check_supported(void)
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 Red Hat Enterprise Linux 8, single threaded, single CPU 64-bit physical systems are unsupported by Red Hat. Please contact your Red Hat support representative for a list of certified and supported systems.");
+ pr_crit("Important: In CentOS 8, single threaded, single CPU 64-bit physical systems are unsupported. Please see http://wiki.centos.org/FAQ for more information");
}
/*
--
2.7.4

View File

@ -1 +0,0 @@
repo:stx/downloads/kernel-rt-4.18.0-147.3.1.rt24.96.el8_1.src.rpm

View File

@ -0,0 +1 @@
../../kernel-std/files/Module.kabi_dup_x86_64

View File

@ -0,0 +1 @@
../../kernel-std/files/Module.kabi_x86_64

View File

@ -0,0 +1 @@
../../kernel-std/files/centos-ca-secureboot.der

Binary file not shown.

1
kernel-rt/files/centos.pem Symbolic link
View File

@ -0,0 +1 @@
../../kernel-std/files/centos.pem

View File

@ -0,0 +1 @@
../../kernel-std/files/centossecureboot001.der

View File

@ -0,0 +1 @@
../../kernel-std/files/centossecureboot201.der

View File

@ -0,0 +1 @@
../../kernel-std/files/centossecurebootca2.der

1
kernel-rt/files/check-kabi Symbolic link
View File

@ -0,0 +1 @@
../../kernel-std/files/check-kabi

View File

@ -0,0 +1 @@
../../kernel-std/files/cpupower.config

View File

@ -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

View File

@ -0,0 +1 @@
../../kernel-std/files/filter-modules.sh

View File

@ -0,0 +1 @@
../../kernel-std/files/filter-x86_64.sh

View File

@ -0,0 +1 @@
../../kernel-std/files/generate_all_configs.sh

View File

@ -0,0 +1 @@
../../kernel-std/files/generate_bls_conf.sh

Binary file not shown.

View File

@ -0,0 +1 @@
../../kernel-std/files/ima_signing_key.pub

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +1,14 @@
# Add builtin
# CONFIG_MAXSMP is not set
CONFIG_NR_CPUS=256
# This file is intentionally left empty in the stock kernel. Its a nicety
# added for those wanting to do custom rebuilds with altered config opts.
CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_SR=y
CONFIG_SCSI_ISCSI_ATTRS=y
CONFIG_SCSI_SAS_ATTRS=y
CONFIG_ISCSI_TCP=y
# SCSI Related Drivers
# Let's enable lots of them, pretty much anything RAID capable
# # Let's enable lots of them, pretty much anything RAID capable
CONFIG_ATA=y
CONFIG_SCSI_SAS_LIBSAS=y
CONFIG_SCSI_SAS_ATA=y
CONFIG_BLK_DEV_3W_XXXX_RAID=y
CONFIG_SCSI_3W_9XXX=y
CONFIG_SCSI_3W_SAS=y
@ -26,67 +24,31 @@ CONFIG_SCSI_HPSA=y
CONFIG_MEGARAID_SAS=y
CONFIG_SCSI_SMARTPQI=y
# These two will only build as modules
CONFIG_SCSI_MPT2SAS=m
CONFIG_SCSI_MPT3SAS=m
CONFIG_SCSI_VIRTIO=y
CONFIG_FUSION_SAS=y
CONFIG_SCSI_AIC94XX=y
CONFIG_AIC94XX_DEBUG=y
CONFIG_SCSI_MVSAS=y
CONFIG_RAID_ATTRS=y
# This driver supports the 6Gb/s SAS capabilities
# of the storage control unit found
# in the Intel(R) C600 series chipset
CONFIG_SCSI_ISCI=y
CONFIG_SCSI_MVSAS_DEBUG=y
# CONFIG_SCSI_MVSAS_TASKLET is not set
#
CONFIG_SOFT_WATCHDOG=y
CONFIG_VIRTIO=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_MMIO=y
CONFIG_ISO9660_FS=y
CONFIG_FAT_FS=y
CONFIG_VFAT_FS=y
CONFIG_NLS_ISO8859_1=y
# CONFIG_GENERIC_CPU is not set
CONFIG_MCORE2=y
CONFIG_SIGEXIT=y
CONFIG_SCHEDSTATS=y
# Enable runtime Huge TLB support
CONFIG_DMA_CMA=y
CONFIG_CMA_SIZE_MBYTES=16
CONFIG_CMA_SIZE_SEL_MBYTES=y
CONFIG_CMA_ALIGNMENT=8
CONFIG_CMA_AREAS=7
# Turn on Intel IOMMU
CONFIG_INTEL_IOMMU_DEFAULT_ON=y
# Turn off network drivers that we want
# to build out-of-tree
# CONFIG_E1000E is not set
# CONFIG_E1000E_HWTS is not set
# CONFIG_I40E is not set
# CONFIG_I40EVF is not set
# CONFIG_IXGB is not set
# CONFIG_IXGBE is not set
# CONFIG_IXGBEVF is not set
# CONFIG_MLX4_EN is not set
# CONFIG_MLX4_CORE is not set
# CONFIG_MLX5_EN is not set
# CONFIG_MLX5_CORE is not set
# CONFIG_ICE is not set
# TPM built-in driver
CONFIG_TCG_TPM=m
CONFIG_TCG_TIS=m
CONFIG_HW_RANDOM_TPM=y
CONFIG_TRUSTED_KEYS=m
CONFIG_TCG_TIS_I2C_ATMEL=m
CONFIG_TCG_TIS_I2C_INFINEON=m
CONFIG_TCG_TIS_I2C_NUVOTON=m
CONFIG_TCG_NSC=m
CONFIG_TCG_ATMEL=m
CONFIG_TCG_INFINEON=m
CONFIG_TCG_CRB=m
# No support for legacy STMicroelectronics ST33ZP24 TPM drivers
# These are legacy drivers for the TPM 1.2 specification only,
@ -102,21 +64,6 @@ CONFIG_TCG_CRB=m
# CONFIG_INTEGRITY is not set
# CONFIG_IMA is not set
# CONFIG_EVM is not set
CONFIG_SIGNATURE=y
CONFIG_KEYS=y
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
CONFIG_PUBLIC_KEY_ALGO_RSA=y
CONFIG_X509_CERTIFICATE_PARSER=y
CONFIG_SECURITYFS=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=y
#Enable Intel RDT
CONFIG_KERNFS=y
CONFIG_INTEL_RDT_A=y
#Enable PTP clock support
CONFIG_PPS=y
@ -143,7 +90,7 @@ CONFIG_DP83640_PHY=y
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_FF_MEMLESS is not set
CONFIG_INPUT_FF_MEMLESS=m
# CONFIG_GAMEPORT is not set
# CONFIG_THUNDERBOLT is not set
# CONFIG_APPLE_PROPERTIES is not set
@ -311,7 +258,7 @@ CONFIG_DP83640_PHY=y
# CONFIG_SMSC_PHY is not set
# CONFIG_BCM87XX_PHY is not set
# CONFIG_ICPLUS_PHY is not set
# CONFIG_REALTEK_PHY is not set
CONFIG_REALTEK_PHY=m
# CONFIG_NATIONAL_PHY is not set
# CONFIG_STE10XP is not set
# CONFIG_LSI_ET1011C_PHY is not set
@ -610,7 +557,7 @@ CONFIG_DP83640_PHY=y
# CONFIG_USB_MON is not set
# CONFIG_USB_WUSB_CBAF is not set
# CONFIG_USB_OHCI_HCD is not set
# CONFIG_USB_ACM is not set
CONFIG_USB_ACM=m
# CONFIG_USB_PRINTER is not set
# CONFIG_USB_WDM is not set
# CONFIG_USB_TMC is not set
@ -708,7 +655,6 @@ CONFIG_DP83640_PHY=y
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
# CONFIG_LEDS_TRIGGER_CAMERA is not set
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set
# CONFIG_UIO_CIF is not set
# CONFIG_UIO_AEC is not set
@ -799,6 +745,7 @@ CONFIG_DP83640_PHY=y
# CONFIG_CRYPTO_USER_API_HASH is not set
# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
# CONFIG_CRYPTO_DEV_PADLOCK is not set
# CONFIG_FW_LOADER_USER_HELPER is not set
#Disable unused options from rt kernel
# CONFIG_WIRELESS_EXT is not set
@ -957,7 +904,6 @@ CONFIG_DP83640_PHY=y
# CONFIG_SND is not set
# CONFIG_IR_GPIO_CIR is not set
CONFIG_BLK_DEV_NBD=m
# CONFIG_AIC94XX_DEBUG is not set
# CONFIG_GPIO_BT8XX is not set
# Disable transparent huge pages
@ -973,7 +919,7 @@ CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_LOCK_TORTURE_TEST is not set
# Needed for opae fpga kernel module
# # as it turns on hidden option REGMAP_MMIO
# as it turns on hidden option REGMAP_MMIO
CONFIG_MFD_SYSCON=y
# Also need the following two options for opae fpga
CONFIG_SPI_BITBANG=m
@ -986,3 +932,160 @@ CONFIG_E1000=m
# qdisc for tsn
CONFIG_NET_SCH_ETF=m
CONFIG_NET_SCH_TAPRIO=m
# CONFIG_THERMAL_GOV_BANG_BANG is not set
CONFIG_DYNAMIC_DEBUG=y
# PREEMPT_RT depends on this
CONFIG_EXPERT=y
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_RT_BASE is not set
# CONFIG_PREEMPT_RT_FULL is not set
CONFIG_PREEMPT_RT=y
CONFIG_RCU_BOOST=y
CONFIG_RCU_BOOST_DELAY=500
# Fall-out from CONFIG_EXPERT
CONFIG_SYSFS_SYSCALL=y
CONFIG_POSIX_TIMERS=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
CONFIG_BASE_FULL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_IO_URING=y
CONFIG_ADVISE_SYSCALLS=y
CONFIG_RSEQ=y
# CONFIG_DEBUG_RSEQ is not set
# CONFIG_PC104 is not set
CONFIG_VM_EVENT_COUNTERS=y
# CONFIG_SLUB_MEMCG_SYSFS_ON is not set
CONFIG_SLOB=n
CONFIG_ZONE_DMA=y
# CONFIG_PROCESSOR_SELECT is not set
CONFIG_DMI=y
CONFIG_X86_16BIT=y
CONFIG_X86_VSYSCALL_EMULATION=y
CONFIG_X86_UMIP=y
CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0x0
CONFIG_MODIFY_LDT_SYSCALL=y
# CONFIG_SUSPEND_SKIP_SYNC is not set
# CONFIG_DPM_WATCHDOG is not set
# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
# CONFIG_PCI_CNB20LE_QUIRK is not set
# CONFIG_ISA_BUS is not set
CONFIG_FIRMWARE_MEMMAP=y
CONFIG_KVM_WERROR=y
CONFIG_ARCH_MMAP_RND_BITS=28
CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
CONFIG_BLOCK=y
CONFIG_PCI_QUIRKS=y
# CONFIG_PCIE_BUS_TUNE_OFF is not set
# CONFIG_PCIE_BUS_SAFE is not set
# CONFIG_PCIE_BUS_PERFORMANCE is not set
# CONFIG_PCIE_BUS_PEER2PEER is not set
CONFIG_ALLOW_DEV_COREDUMP=y
CONFIG_ATA_FORCE=y
# CONFIG_PATA_PLATFORM is not set
# CONFIG_MLX4_DEBUG is not set
# CONFIG_WIRELESS_WDS is not set
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_BYD=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
CONFIG_MOUSE_PS2_CYPRESS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
CONFIG_MOUSE_PS2_FOCALTECH=y
CONFIG_TTY=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_SERIAL_8250_PNP=y
CONFIG_SERIAL_8250_DMA=y
# CONFIG_TTY_PRINTK is not set
CONFIG_GPIO_CDEV=y
# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set
# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set
# CONFIG_DRM_I915_WERROR is not set
# CONFIG_DRM_I915_DEBUG is not set
# CONFIG_DRM_I915_DEBUG_MMIO is not set
# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
# CONFIG_DRM_I915_DEBUG_GUC is not set
# CONFIG_DRM_I915_SELFTEST is not set
# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
CONFIG_DRM_I915_FENCE_TIMEOUT=10000
CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000
CONFIG_DRM_I915_STOP_TIMEOUT=100
CONFIG_DRM_I915_TIMESLICE_DURATION=1
# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set
CONFIG_FILE_LOCKING=y
CONFIG_PROC_SYSCTL=y
# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set
CONFIG_XZ_DEC_IA64=y
CONFIG_XZ_DEC_ARM=y
CONFIG_XZ_DEC_ARMTHUMB=y
CONFIG_XZ_DEC_SPARC=y
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B is not set
# CONFIG_DEBUG_MEMORY_INIT is not set
# CONFIG_UNWINDER_GUESS is not set
CONFIG_ISA_DMA_API=y
CONFIG_PCIE_BUS_DEFAULT=y
# Enable DRBD
CONFIG_BLK_DEV_DRBD=m
CONFIG_DRBD_FAULT_INJECTION=y
# Infiniband and Mellanox out-of-tree module compatibility fixes
# Avoid module insertion errors due to unknown symbols and symbol
# version mismatches.
# CONFIG_NET_VENDOR_MELLANOX is not set
# CONFIG_MLX4_INFINIBAND is not set
# CONFIG_MLX5_CORE is not set
CONFIG_INFINIBAND=m
# CONFIG_INFINIBAND_ADDR_TRANS is not set
# CONFIG_INFINIBAND_BNXT_RE is not set
# CONFIG_INFINIBAND_CXGB4 is not set
# CONFIG_INFINIBAND_HFI1 is not set
# CONFIG_INFINIBAND_HNS is not set
# CONFIG_INFINIBAND_I40IW is not set
# CONFIG_INFINIBAND_IPOIB is not set
# CONFIG_INFINIBAND_ISER is not set
# CONFIG_INFINIBAND_ISERT is not set
# CONFIG_INFINIBAND_ON_DEMAND_PAGING is not set
# CONFIG_INFINIBAND_OPA_VNIC is not set
# CONFIG_INFINIBAND_QEDR is not set
# CONFIG_INFINIBAND_RDMAVT is not set
# CONFIG_INFINIBAND_SRP is not set
# CONFIG_INFINIBAND_SRPT is not set
# CONFIG_INFINIBAND_USER_ACCESS is not set
# CONFIG_INFINIBAND_USER_MAD is not set
# CONFIG_INFINIBAND_USER_MEM is not set
# CONFIG_INFINIBAND_USNIC is not set
# CONFIG_INFINIBAND_VMWARE_PVRDMA is not set
# CONFIG_DRM_LEGACY is not set
CONFIG_SCSI_AIC94XX=y
# CONFIG_AIC94XX_DEBUG is not set
CONFIG_SCSI_ISCI=y
# CONFIG_AT803X_PHY is not set
# CONFIG_FUNCTION_PROFILER is not set
# CONFIG_I40E is not set
# CONFIG_I40EVF is not set
# CONFIG_I40E_DCB is not set
# CONFIG_IAVF is not set
# CONFIG_ICE is not set
# CONFIG_INFINIBAND is not set
CONFIG_NF_DEFRAG_IPV6=m
# CONFIG_PANIC_ON_OOPS is not set
# CONFIG_PCCARD is not set
# CONFIG_SGI_IOC4 is not set

File diff suppressed because it is too large Load Diff

1
kernel-rt/files/merge.pl Symbolic link
View File

@ -0,0 +1 @@
../../kernel-std/files/merge.pl

View File

@ -0,0 +1 @@
../../kernel-std/files/mod-extra-blacklist.sh

View File

@ -0,0 +1 @@
../../kernel-std/files/mod-extra.list

View File

@ -0,0 +1 @@
../../kernel-std/files/mod-extra.sh

View File

@ -0,0 +1 @@
../../kernel-std/files/mod-internal.list

1
kernel-rt/files/mod-sign.sh Symbolic link
View File

@ -0,0 +1 @@
../../kernel-std/files/mod-sign.sh

View File

@ -0,0 +1 @@
../../kernel-std/files/parallel_xz.sh

View File

@ -0,0 +1 @@
../../kernel-std/files/process_configs.sh

1
kernel-rt/files/x509.genkey Symbolic link
View File

@ -0,0 +1 @@
../../kernel-std/files/x509.genkey

275
kernel-std/centos/build_srpm Executable file
View File

@ -0,0 +1,275 @@
#!/bin/bash
# set -x
#
# Copyright (c) 2018-2021 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
# Refer to build-tools/default_build_srpm and modify for git repo from linux-yocto.
#
source "$SRC_BASE/build-tools/spec-utils"
source "$SRC_BASE/build-tools/srpm-utils"
CUR_DIR=`pwd`
BUILD_DIR="$RPMBUILD_BASE"
if [ "x$DATA" == "x" ]; then
echo "ERROR: kernel build_srpm (${LINENO}): Environment variable 'DATA' not defined."
exit 1
fi
srpm_source_build_data "$DATA" "$SRC_BUILD_TYPE" "$SRPM_OR_SPEC_PATH"
if [ $? -ne 0 ]; then
echo "ERROR: kernel build_srpm (${LINENO}): Failed to source build data from $DATA"
exit 1
fi
if [ "x$PBR_VERSION" != "x" ] && [ "x$PBR_VERSION" != "xNA" ]; then
VERSION=$PBR_VERSION
fi
if [ "x$VERSION" == "x" ]; then
for SPEC in `find $SPECS_BASE -name '*.spec' | sort -V`; do
SPEC_PATH="$SPEC"
VERSION_DERIVED=`spec_evaluate '%{version}' "$SPEC_PATH" 2>> /dev/null`
if [ $? -ne 0 ]; then
echo "ERROR: kernel build_srpm (${LINENO}): '%{version}' not found in '$PKG_BASE/$SPEC_PATH'"
VERSION_DERIVED=""
fi
if [ "x$VERSION_DERIVED" != "x" ]; then
if [ "x$VERSION" == "x" ]; then
VERSION=$VERSION_DERIVED
else
if [ "x$SRC_DIR" != "x" ]; then
echo "ERROR: kernel build_srpm (${LINENO}): multiple spec files found, can't set VERSION automatically"
exit 1
fi
fi
fi
done
if [ "x$VERSION" == "x" ]; then
if [ -f $SRC_DIR/PKG-INFO ]; then
VERSION=$(grep '^Version:' $SRC_DIR/PKG-INFO | awk -F ': ' '{print $2}' | sed -e 's/^[[:space:]]*//')
fi
fi
if [ "x$VERSION" != "x" ]; then
echo "Derived VERSION=$VERSION"
else
echo "ERROR: kernel build_srpm (${LINENO}): Failed to derive a good VERSION from SPEC file, and none provided."
exit 1
fi
fi
if [ "x$TAR_NAME" == "x" ]; then
for SPEC in `find $SPECS_BASE -name '*.spec' | sort -V`; do
SPEC_PATH="$SPEC"
SERVICE=`spec_find_global service "$SPEC_PATH" 2>> /dev/null`
if [ $? -eq 0 ]; then
if [ "x$TAR_NAME" == "x" ]; then
TAR_NAME=$SERVICE
else
if [ "x$SRC_DIR" != "x" ]; then
echo "ERROR: kernel build_srpm (${LINENO}): multiple spec files found, can't set TAR_NAME automatically"
exit 1
fi
fi
else
NAME=`spec_find_tag Name "$SPEC_PATH" 2>> /dev/null`
if [ $? -eq 0 ]; then
if [ "x$TAR_NAME" == "x" ]; then
TAR_NAME=$NAME
else
if [ "x$SRC_DIR" != "x" ]; then
echo "ERROR: kernel build_srpm (${LINENO}): multiple spec files found, can't set TAR_NAME automatically"
exit 1
fi
fi
else
echo "WARNING: kernel build_srpm (${LINENO}): 'Name' not found in '$SPEC_PATH'"
NAME=""
fi
fi
done
if [ "x$TAR_NAME" == "x" ]; then
if [ -f $SRC_DIR/PKG-INFO ]; then
TAR_NAME=$(grep '^Name:' $SRC_DIR/PKG-INFO | awk -F ': ' '{print $2}' | sed -e 's/^[[:space:]]*//')
fi
fi
if [ "x$TAR_NAME" != "x" ]; then
echo "Derived TAR_NAME=$TAR_NAME"
else
echo "ERROR: kernel build_srpm (${LINENO}): Failed to derive a good TAR_NAME from SPEC file, and none provided."
exit 1
fi
fi
if [ "x$TAR" == "x" ]; then
TAR="$TAR_NAME-$VERSION.tar.gz"
fi
SOURCE_PATH="$BUILD_DIR/SOURCES"
TAR_PATH="$SOURCE_PATH/$TAR"
STAGING=""
if [ "x$COPY_LIST_TO_TAR" != "x" ] || [ "x$EXCLUDE_LIST_FROM_TAR" != "x" ]; then
STAGING="$BUILD_DIR/staging"
mkdir -p $STAGING
fi
mkdir -p "$BUILD_DIR/SRPMS"
mkdir -p "$SOURCE_PATH"
if [ "x$SRC_DIR" == "x" -a "x$COPY_LIST" == "x" -a "$ALLOW_EMPTY_RPM" != "true" ]; then
echo "ERROR: kernel build_srpm (${LINENO}): '$PWD/$DATA' failed to provide at least one of 'SRC_DIR' or 'COPY_LIST'"
exit 1
fi
if [ "x$SRC_DIR" != "x" ]; then
if [ ! -d "$SRC_DIR" ]; then
echo "ERROR: kernel build_srpm (${LINENO}): directory not found: '$SRC_DIR'"
exit 1
fi
fi
if [ "x$COPY_LIST" != "x" ]; then
echo "COPY_LIST: $COPY_LIST"
for p in $COPY_LIST; do
# echo "COPY_LIST: $p"
\cp -L -u -r -v $p $SOURCE_PATH
if [ $? -ne 0 ]; then
echo "ERROR: kernel build_srpm (${LINENO}): COPY_LIST: file not found: '$p'"
exit 1
fi
done
fi
if [ "x$STAGING" != "x" ]; then
\cp -L -u -r -v $SRC_DIR $STAGING
echo "COPY_LIST_TO_TAR: $COPY_LIST_TO_TAR"
for p in $COPY_LIST_TO_TAR; do
# echo "COPY_LIST_TO_TAR: $p"
\cp -L -u -r -v $p $STAGING/$SRC_DIR
if [ $? -ne 0 ]; then
echo "ERROR: kernel build_srpm (${LINENO}): COPY_LIST_TO_TAR: file not found: '$p'"
exit 1
fi
done
echo "EXCLUDE_LIST_FROM_TAR: $EXCLUDE_LIST_FROM_TAR"
for p in $EXCLUDE_LIST_FROM_TAR; do
# echo "EXCLUDE_LIST_FROM_TAR: $p"
echo "rm -rf $STAGING/$SRC_DIR/$p"
\rm -rf $STAGING/$SRC_DIR/$p
if [ $? -ne 0 ]; then
echo "ERROR: kernel build_srpm (${LINENO}): EXCLUDE_LIST_FROM_TAR: could not remove file: '$p'"
exit 1
fi
done
fi
TRANSFORM=`echo "$SRC_DIR" | sed 's/^\./\\./' | sed 's:^/::' | sed 's#^.*/\.\./##'`
if [ "x$STAGING" != "x" ]; then
pushd $STAGING
fi
TAR_NEEDED=0
if [ "x$SRC_DIR" != "x" ]; then
echo "SRC_DIR=$SRC_DIR"
if [ -f $TAR_PATH ]; then
n=`find . -cnewer $TAR_PATH -and ! -path './.git*' \
-and ! -path './.pc/*' \
-and ! -path './patches/*' \
-and ! -path "./$DISTRO/*" \
-and ! -path './pbr-*.egg/*' \
| wc -l`
if [ $n -gt 0 ]; then
TAR_NEEDED=1
fi
else
TAR_NEEDED=1
fi
fi
if [ $TAR_NEEDED -gt 0 ]; then
echo "Creating tar file: $TAR_PATH ..."
echo "tar --exclude '.git*' --exclude='.pc' --exclude='patches' --exclude='$SRC_DIR/$DISTRO' --exclude='pbr-*.egg' --transform 's,^$TRANSFORM,$TAR_NAME-$VERSION,' -czf $TAR_PATH $SRC_DIR"
tar --exclude '.git*' --exclude='.pc' --exclude='patches' --exclude="$SRC_DIR/$DISTRO" --exclude='pbr-*.egg' --transform "s,^$TRANSFORM,$TAR_NAME-$VERSION," -czf "$TAR_PATH" "$SRC_DIR"
if [ $? -ne 0 ]; then
if [ "x$STAGING" != "x" ]; then
popd
fi
echo "ERROR: kernel build_srpm (${LINENO}): failed to create tar file, cmd: tar --exclude '.git*' --exclude='.pc' --exclude='patches' --exclude="$SRC_DIR/$DISTRO" --exclude='pbr-*.egg' --transform \"s,^$TRANSFORM,$TAR_NAME-$VERSION,\" -czf '$TAR_PATH' '$SRC_DIR'"
exit 1
fi
echo "Created tar file: $TAR_PATH"
else
echo "Tar file not needed."
fi
if [ "x$STAGING" != "x" ]; then
popd
fi
if [ ! -d $BUILD_DIR/SPECS ]; then
echo "Spec directory '$BUILD_DIR/SPECS' does not exist"
exit 1
fi
if [ $(ls -1 $BUILD_DIR/SPECS/*.spec | wc -l) -eq 0 ]; then
echo "No spec files found in spec directory '$BUILD_DIR/SPECS'"
exit 1
fi
for SPEC in `ls -1 $BUILD_DIR/SPECS`; do
SPEC_PATH="$BUILD_DIR/SPECS/$SPEC"
RELEASE=`spec_find_tag Release "$SPEC_PATH" 2>> /dev/null`
if [ $? -ne 0 ]; then
echo "ERROR: kernel build_srpm (${LINENO}): 'Release' not found in '$SPEC_PATH'"
fi
NAME=`spec_find_tag Name "$SPEC_PATH" 2>> /dev/null`
if [ $? -ne 0 ]; then
echo "ERROR: kernel build_srpm (${LINENO}): 'Name' not found in '$SPEC_PATH'"
fi
SRPM="$NAME-$VERSION-$RELEASE.src.rpm"
SRPM_PATH="$BUILD_DIR/SRPMS/$SRPM"
spec_validate_tis_release $SPEC_PATH
if [ $? -ne 0 ]; then
echo "TIS Validation of $SPEC_PATH failed"
exit 1
fi
BUILD_NEEDED=0
if [ -f $SRPM_PATH ]; then
n=`find . -cnewer $SRPM_PATH | wc -l`
if [ $n -gt 0 ]; then
BUILD_NEEDED=1
fi
else
BUILD_NEEDED=1
fi
if [ $BUILD_NEEDED -gt 0 ]; then
echo "SPEC file: $SPEC_PATH"
echo "SRPM build directory: $BUILD_DIR"
echo "TIS_PATCH_VER: $TIS_PATCH_VER"
echo "PBR_VERSION: $PBR_VERSION"
sed -i -e "1 i%define _tis_build_type $BUILD_TYPE" $SPEC_PATH
sed -i -e "1 i%define tis_patch_ver $TIS_PATCH_VER" $SPEC_PATH
sed -i -e "1 i%define pbr_version $PBR_VERSION" $SPEC_PATH
rpmbuild -bs $SPEC_PATH --define="%_topdir $BUILD_DIR" --undefine=dist --define="_tis_dist .tis"
else
echo "SRPM build not needed"
fi
done

View File

@ -1,5 +1,14 @@
COPY_LIST="files/*"
PKG_BASE_SRCREV=145ff64b9734e5c45cfd8eb837a04e257b4b9581
TIS_PATCH_VER=PKG_GITREVCOUNT+1
SRC_DIR="$STX_BASE/git/linux-yocto-std"
COPY_LIST=" \
$PKG_BASE/files/* \
$PKG_BASE/centos/patches/*"
BUILD_IS_BIG=21
BUILD_IS_SLOW=16
# The base branch is: v5.10/standard/base
TIS_BASE_SRCREV=a8808e541750d4ed34105f615e295f6fbd9950fa
PKG_BASE_SRCREV=4013790c6ef43fd9f936579b0cac50b8e0c4505a
TIS_PATCH_VER=GITREVCOUNT+PKG_GITREVCOUNT

File diff suppressed because it is too large Load Diff

View File

@ -1,179 +0,0 @@
From ab74a468c73dc364eccba5e8200e31a7638534d4 Mon Sep 17 00:00:00 2001
From: Jim Somerville <Jim.Somerville@windriver.com>
Date: Fri, 20 Apr 2018 14:51:56 -0400
Subject: [PATCH 1/3] Build logic and sources for TiC
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: zhao.shuai <zhaos@neusoft.com>
Signed-off-by: Zhang Zhiguo <zhangzhg@neusoft.com>
Signed-off-by: Robin Lu <bin1.lu@intel.com>
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
---
SPECS/kernel.spec | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 56 insertions(+), 4 deletions(-)
diff --git a/SPECS/kernel.spec b/SPECS/kernel.spec
index 2755684..adc3580 100644
--- a/SPECS/kernel.spec
+++ b/SPECS/kernel.spec
@@ -12,6 +12,8 @@
# change below to w4T.xzdio):
%define _binary_payload w3T.xzdio
+%define dist .el8_1
+
# For a kernel released for public testing, released_kernel should be 1.
# For internal testing builds during development, it should be 0.
%global released_kernel 1
@@ -40,14 +42,18 @@
%endif
# define buildid .local
+# This is the STX patch release
+%define buildid .%{tis_patch_ver}.tis
+
%define rpmversion 4.18.0
-%define pkgrelease 147.3.1.el8_1
+%define _pkgrelease 147.3.1
+%define pkgrelease %{_pkgrelease}.el8_1
# allow pkg_release to have configurable %%{?dist} tag
%define specrelease 147.3.1%{?dist}
-%define pkg_release %{specrelease}%{?buildid}
+%define pkg_release %{specrelease}%{buildid}
# What parts do we want to build? We must build at least one kernel.
# These are the kernels that are built IF the architecture allows it.
@@ -92,9 +98,9 @@
# 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}
+%define with_kabichk 0
# Control whether we perform a compat. check against DUP ABI.
-%define with_kabidupchk %{?_with_kabidupchk: 1} %{?!_with_kabidupchk: 0}
+%define with_kabidupchk 1
#
# Control whether to run an extensive DWARF based kABI check.
# Note that this option needs to have baseline setup in SOURCE300.
@@ -372,6 +378,7 @@ BuildRequires: xmlto
%if %{with_perf} || %{with_tools}
BuildRequires: asciidoc
%endif
+BuildRequires: util-linux
Source0: linux-%{rpmversion}-%{pkgrelease}.tar.xz
@@ -456,6 +463,12 @@ Source2001: cpupower.config
# Sources for CentOS debranding
Source9000: centos.pem
+# StarlingX Cloud sources here.
+# Not sure if we need to worry about numerical collisions between
+# SourceX and PatchX, so let's not risk it
+Source30000: ima_signing_key.pub
+Source30001: kernel-4.18.0-x86_64.config.tis_extra
+
## Patches needed for building this package
Patch1000: debrand-single-cpu.patch
@@ -699,6 +712,13 @@ Kernel sample programs and selftests.
%endif # with_selftests
+%ifarch x86_64
+%package unsigned
+Summary: Unsigned build of the Linux kernel
+%description unsigned
+Contains an unsigned version of the Linux kernel
+%endif # x86_64
+
%if %{with_gcov}
%package gcov
Summary: gcov graph and source files for coverage data collection.
@@ -1018,6 +1038,8 @@ cd configs
# Drop some necessary files from the source dir into the buildroot
cp $RPM_SOURCE_DIR/kernel-*.config .
+# Copy any TiS-specific config changes
+cp $RPM_SOURCE_DIR/kernel-*.config.tis_extra .
cp %{SOURCE41} .
VERSION=%{version} ./generate_all_configs.sh
@@ -1037,6 +1059,18 @@ do
done
%endif
+# Handle StarlingX Cloud customizations. Use -n to match oldnoconfig below. We want this before
+# the make line below so that the one below removes any dependencies of ones that we
+# turn off here. We also want it before "make listnewconfig" so that we can set the
+# config option for new configs introduced in the StarlingX Cloud patches.
+for i in *.config
+do
+ if [ -f ${i}.tis_extra ]; then
+ ../scripts/kconfig/merge_config.sh -m -n ${i} ${i}.tis_extra
+ mv .config ${i}
+ fi
+done
+
cp %{SOURCE42} .
./process_configs.sh -w -c kernel %{rpmversion}
@@ -1102,6 +1136,7 @@ BuildKernel() {
# and now to start the build process
%{make} -s %{?_smp_mflags} mrproper
+ cp %{SOURCE30000} certs/. # ima_signing_key.pub
cp configs/$Config .config
%if %{signkernel}%{signmodules}
@@ -1188,6 +1223,8 @@ BuildKernel() {
echo "pesigning failed"
exit 1
fi
+ cp $KernelImage vmlinuz.unsigned
+ $CopyKernel vmlinuz.unsigned $RPM_BUILD_ROOT/%{image_install_path}/vmlinuz.unsigned
mv vmlinuz.signed $SignImage
if [ "$KernelExtension" == "gz" ]; then
gzip -f9 $SignImage
@@ -1529,6 +1566,12 @@ BuildKernel() {
# 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}
+ # STX: Copy these keys as part of the devel package
+ # The Module signing keys are to ensure that only Out-of-tree
+ # built against the StarlingX Kernel get signed and loaded sans warnings
+ cp certs/signing_key.pem ${RPM_BUILD_ROOT}/lib/modules/${KernelVer}/build/
+ chmod 755 ${RPM_BUILD_ROOT}/lib/modules/${KernelVer}/build/signing_key.pem
+ cp certs/signing_key.x509 ${RPM_BUILD_ROOT}/lib/modules/${KernelVer}/build/
fi
%endif
@@ -2017,6 +2060,10 @@ fi\
#
%define kernel_variant_posttrans() \
%{expand:%%posttrans %{?1:%{1}-}core}\
+# If this is a pkg upgrade (ie installed as a patch), set the reboot flag\
+if [ $1 -gt 1 ] ; then\
+ touch /var/run/node_is_patched_rr\
+fi\
if [ -x %{_sbindir}/weak-modules ]\
then\
%{_sbindir}/weak-modules --add-kernel %{KVERREL}%{?1:+%{1}} || exit $?\
@@ -2315,6 +2362,11 @@ fi
%kernel_variant_ipaclones %{with_up}
+%ifarch x86_64
+%files unsigned
+/boot/vmlinuz.unsigned
+%endif
+
# plz don't put in a version string unless you're going to tag
# and build.
#
--
2.7.4

View File

@ -1,194 +0,0 @@
From 11b9c3c7d66d2698f41738a46990862dc0b85c14 Mon Sep 17 00:00:00 2001
From: Shuicheng Lin <shuicheng.lin@intel.com>
Date: Tue, 18 Feb 2020 15:41:52 +0800
Subject: [PATCH 3/3] Customize 4.18 kernel with centos 7 build environment
1. change python3 to python2
2. fix compile issue with gcc-4.8.5
3. remove "%ghost" to add back files in /boot folder in order to be
compatible with CentOS 7. These files are moved to /lib/modules folder
in 4.18 kernel. Otherwise, there is problem with weak-modules and
update-pxe-network-installer.
4. disable selftests build due to lack of llvm-toolset in centos 7
5. disable dump-ipa-clones due to gcc-4.8.5 doesn't support it
6. disable bpf tools due to require python 3
7. disable debug build to avoid extra tis_extra file for debug build,
and save build time.
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
Signed-off-by: Dongqi Chen <chen.dq@neusoft.com>
---
SPECS/kernel.spec | 66 +++++++++++++++++++++++++++----------------------------
1 file changed, 32 insertions(+), 34 deletions(-)
diff --git a/SPECS/kernel.spec b/SPECS/kernel.spec
index a7a8c97..3856633 100644
--- a/SPECS/kernel.spec
+++ b/SPECS/kernel.spec
@@ -121,6 +121,16 @@
%define with_gcov %{?_with_gcov: 1} %{?!_with_gcov: 0}
+# STX
+# disable debug build
+%define with_debug 0
+# turn off selftests to remove llvm-toolset dependency
+%define with_selftests 0
+# turn off ipaclone due to gcc-4.8.5 doesn't support dump-ipa-clones
+%define _without_ipaclones 1
+# turn off bpf tool due to python3 build failure
+%define with_bpftool 0
+
# turn off debug kernel and kabichk for gcov builds
%if %{with_gcov}
%define with_debug 0
@@ -307,10 +317,10 @@ Requires: kernel-modules-uname-r = %{KVERREL}%{?variant}
#
BuildRequires: kmod, patch, bash, sh-utils, tar, git
BuildRequires: bzip2, xz, findutils, gzip, m4, perl-interpreter, perl-Carp, perl-devel, perl-generators, make, diffutils, gawk
-BuildRequires: gcc, binutils, redhat-rpm-config, hmaccalc, python3-devel
+BuildRequires: gcc, binutils, redhat-rpm-config, hmaccalc, python2-devel
BuildRequires: net-tools, hostname, bc, bison, flex, elfutils-devel
%if %{with_doc}
-BuildRequires: xmlto, asciidoc, python3-sphinx
+BuildRequires: xmlto, asciidoc, python2-sphinx
%endif
%if %{with_sparse}
BuildRequires: sparse
@@ -330,7 +340,7 @@ BuildRequires: pciutils-devel
%endif
%endif
%if %{with_bpftool}
-BuildRequires: python3-docutils
+BuildRequires: python2-docutils
BuildRequires: zlib-devel binutils-devel
%endif
%if %{with_selftests}
@@ -491,6 +501,8 @@ Patch40009: turn-off-write-same-in-smartqpi-driver.patch
Patch40010: Allow-dmar-quirks-for-broken-bioses.patch
# TPM built-in kernel driver
Patch40011: tpm-ignore-burstcount-to-improve-send-performance.patch
+# Fix build error
+Patch40012: Fix-compile-error-with-gcc-4.8.5-and-python2.patch
# END OF PATCH DEFINITIONS
@@ -607,24 +619,24 @@ This package provides debug information for the perf package.
# 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
+%package -n python-perf
Summary: Python bindings for apps which will manipulate perf events
Group: Development/Libraries
-%description -n python3-perf
-The python3-perf package contains a module that permits applications
+%description -n python-perf
+The python-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
+%package -n python-perf-debuginfo
Summary: Debug information for package perf python bindings
Group: Development/Debug
Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release}
AutoReqProv: no
-%description -n python3-perf-debuginfo
+%description -n python-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}
+%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%%{python_sitearch}/perf.*so(\.debug)?|XXX' -o python-perf-debuginfo.list}
%endif # with_perf
@@ -1024,6 +1036,7 @@ ApplyOptionalPatch intel-iommu-allow-ignoring-Ethernet-device-RMRR-with.patch
ApplyOptionalPatch turn-off-write-same-in-smartqpi-driver.patch
ApplyOptionalPatch Allow-dmar-quirks-for-broken-bioses.patch
ApplyOptionalPatch tpm-ignore-burstcount-to-improve-send-performance.patch
+ApplyOptionalPatch Fix-compile-error-with-gcc-4.8.5-and-python2.patch
# END OF PATCH APPLICATIONS
@@ -1035,21 +1048,6 @@ mv COPYING COPYING-%{version}
# This Prevents scripts/setlocalversion from mucking with our version numbers.
touch .scmversion
-# Do not use "ambiguous" python shebangs. RHEL 8 now has a new script
-# (/usr/lib/rpm/redhat/brp-mangle-shebangs), which forces us to specify a
-# "non-ambiguous" python shebang for scripts we ship in buildroot. This
-# script throws an error like below:
-# *** 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} -p -n \
- scripts/show_delta \
- scripts/diffconfig \
- scripts/bloat-o-meter \
- tools/perf/tests/attr.py \
- tools/perf/scripts/python/stat-cpi.py \
- tools/perf/scripts/python/sched-migration.py \
- Documentation
-
%define make make %{?cross_opts} HOSTCFLAGS="%{?build_hostcflags}" HOSTLDFLAGS="%{?build_hostldflags}"
# only deal with configs if we are going to build for the arch
@@ -1669,7 +1667,7 @@ BuildKernel %make_target %kernel_image %{with_vdso_install}
%endif
%global perf_make \
- make 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}
+ make 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=%{__python}
%if %{with_perf}
# perf
# make sure check-headers.sh is executable
@@ -2198,15 +2196,15 @@ fi
%doc linux-%{KVERREL}/tools/perf/Documentation/examples.txt
%{_docdir}/perf-tip/tips.txt
-%files -n python3-perf
+%files -n python-perf
%defattr(-,root,root)
-%{python3_sitearch}/*
+%{python_sitearch}/*
%if %{with_debuginfo}
%files -f perf-debuginfo.list -n perf-debuginfo
%defattr(-,root,root)
-%files -f python3-perf-debuginfo.list -n python3-perf-debuginfo
+%files -f python-perf-debuginfo.list -n python-perf-debuginfo
%defattr(-,root,root)
%endif
%endif # with_perf
@@ -2314,20 +2312,20 @@ fi
%{!?_licensedir:%global license %%doc}\
%license linux-%{KVERREL}/COPYING-%{version}\
/lib/modules/%{KVERREL}%{?3:+%{3}}/%{?-k:%{-k*}}%{!?-k:vmlinuz}\
-%ghost /%{image_install_path}/%{?-k:%{-k*}}%{!?-k:vmlinuz}-%{KVERREL}%{?3:+%{3}}\
+/%{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 \
+/%{image_install_path}/.vmlinuz-%{KVERREL}%{?3:+%{3}}.hmac \
%ifarch aarch64\
/lib/modules/%{KVERREL}%{?3:+%{3}}/dtb \
%ghost /%{image_install_path}/dtb-%{KVERREL}%{?3:+%{3}} \
%endif\
%attr(0600, root, root) /lib/modules/%{KVERREL}%{?3:+%{3}}/System.map\
-%ghost %attr(0600, root, root) /boot/System.map-%{KVERREL}%{?3:+%{3}}\
+%attr(0600, root, root) /boot/System.map-%{KVERREL}%{?3:+%{3}}\
/lib/modules/%{KVERREL}%{?3:+%{3}}/symvers.gz\
/lib/modules/%{KVERREL}%{?3:+%{3}}/config\
-%ghost %attr(0600, root, root) /boot/symvers-%{KVERREL}%{?3:+%{3}}.gz\
-%ghost %attr(0600, root, root) /boot/initramfs-%{KVERREL}%{?3:+%{3}}.img\
-%ghost %attr(0644, root, root) /boot/config-%{KVERREL}%{?3:+%{3}}\
+%attr(0600, root, root) /boot/symvers-%{KVERREL}%{?3:+%{3}}.gz\
+%attr(0600, root, root) /boot/initramfs-%{KVERREL}%{?3:+%{3}}.img\
+%attr(0644, root, root) /boot/config-%{KVERREL}%{?3:+%{3}}\
%dir /lib/modules\
%dir /lib/modules/%{KVERREL}%{?3:+%{3}}\
%dir /lib/modules/%{KVERREL}%{?3:+%{3}}/kernel\
--
2.7.4

View File

@ -1,62 +0,0 @@
From ac67546ccbecd3ee18145be31d87d7253048adda Mon Sep 17 00:00:00 2001
Message-Id: <ac67546ccbecd3ee18145be31d87d7253048adda.1566587341.git.Jim.Somerville@windriver.com>
From: "zhao.shuai" <zhaos@neusoft.com>
Date: Mon, 5 Aug 2019 17:55:01 +0800
Subject: [PATCH 2/3] Kernel-source-patches-for-TiC
Signed-off-by: zhao.shuai <zhaos@neusoft.com>
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Robin Lu <bin1.lu@intel.com>
Signed-off-by: Zhang Zhiguo <zhangzhg@neusoft.com>
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
Signed-off-by: Dongqi Chen <chen.dq@neusoft.com>
---
SPECS/kernel.spec | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/SPECS/kernel.spec b/SPECS/kernel.spec
index adc3580..a7a8c97 100644
--- a/SPECS/kernel.spec
+++ b/SPECS/kernel.spec
@@ -478,6 +478,20 @@ Patch1001: debrand-rh_taint.patch
# empty final patch to facilitate testing of kernel patches
Patch999999: linux-kernel-test.patch
+# StarlingX Cloud patches here.
+Patch40001: Notification-of-death-of-arbitrary-processes.patch
+Patch40002: PCI-Add-ACS-quirk-for-Intel-Fortville-NICs.patch
+Patch40003: affine-compute-kernel-threads.patch
+Patch40004: Affine-irqs-and-workqueues-with-kthread_cpus.patch
+Patch40005: Make-kernel-start-eth-devices-at-offset.patch
+Patch40006: intel-iommu-allow-ignoring-Ethernet-device-RMRR-with.patch
+# DRBD was choking on write same
+Patch40009: turn-off-write-same-in-smartqpi-driver.patch
+# Workaround for broken bios causing IOMMU issues
+Patch40010: Allow-dmar-quirks-for-broken-bioses.patch
+# TPM built-in kernel driver
+Patch40011: tpm-ignore-burstcount-to-improve-send-performance.patch
+
# END OF PATCH DEFINITIONS
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
@@ -1000,6 +1014,17 @@ ApplyOptionalPatch debrand-rh_taint.patch
#ApplyOptionalPatch debrand-rh-i686-cpu.patch
+# StarlingX Cloud patches here.
+ApplyOptionalPatch Notification-of-death-of-arbitrary-processes.patch
+ApplyOptionalPatch PCI-Add-ACS-quirk-for-Intel-Fortville-NICs.patch
+ApplyOptionalPatch affine-compute-kernel-threads.patch
+ApplyOptionalPatch Affine-irqs-and-workqueues-with-kthread_cpus.patch
+ApplyOptionalPatch Make-kernel-start-eth-devices-at-offset.patch
+ApplyOptionalPatch intel-iommu-allow-ignoring-Ethernet-device-RMRR-with.patch
+ApplyOptionalPatch turn-off-write-same-in-smartqpi-driver.patch
+ApplyOptionalPatch Allow-dmar-quirks-for-broken-bioses.patch
+ApplyOptionalPatch tpm-ignore-burstcount-to-improve-send-performance.patch
+
# END OF PATCH APPLICATIONS
# Any further pre-build tree manipulations happen here.
--
2.7.4

View File

@ -1,3 +0,0 @@
Build-logic-and-sources-for-TiC.patch
Kernel-source-patches-for-TiC.patch
Customize-4.18-kernel-with-centos-7-build-environmen.patch

View File

@ -1,6 +1,6 @@
From 985af04466f07d6f5deaac906c52dc1181beb881 Mon Sep 17 00:00:00 2001
From a6d19757680f81e529c789e77bcac01f9b9e2fbd Mon Sep 17 00:00:00 2001
From: Chris Friesen <chris.friesen@windriver.com>
Date: Thu, 7 Apr 2016 11:16:19 -0600
Date: Thu, 17 Jun 2021 07:44:04 +0000
Subject: [PATCH] Notification of death of arbitrary processes
Note: this commit was copied from Titanium Cloud Rel2
@ -20,36 +20,38 @@ PR_DO_NOTIFY_TASK_STATE option.
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Zhang Zhiguo <zhangzhg@neusoft.com>
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
[jm: Adapted the patch for context changes.]
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
include/linux/init_task.h | 9 ++
include/linux/sched.h | 6 ++
include/uapi/linux/prctl.h | 18 ++++
include/linux/sched.h | 6 +
include/uapi/linux/prctl.h | 16 +++
init/Kconfig | 15 +++
init/init_task.c | 1 +
kernel/Makefile | 1 +
kernel/death_notify.c | 228 +++++++++++++++++++++++++++++++++++++++++++++
kernel/death_notify.h | 46 +++++++++
kernel/exit.c | 6 ++
kernel/death_notify.c | 228 +++++++++++++++++++++++++++++++++++++
kernel/death_notify.h | 46 ++++++++
kernel/exit.c | 6 +
kernel/fork.c | 4 +
kernel/signal.c | 11 +++
kernel/signal.c | 11 ++
kernel/sys.c | 8 ++
12 files changed, 353 insertions(+)
12 files changed, 351 insertions(+)
create mode 100644 kernel/death_notify.c
create mode 100644 kernel/death_notify.h
diff --git a/include/linux/init_task.h b/include/linux/init_task.h
index a7083a4..1ad2341 100644
index b2412b4d4c20..7a0828daf59c 100644
--- a/include/linux/init_task.h
+++ b/include/linux/init_task.h
@@ -24,6 +24,15 @@
@@ -25,6 +25,15 @@
extern struct files_struct init_files;
extern struct fs_struct init_fs;
extern struct nsproxy init_nsproxy;
+
+#ifdef CONFIG_SIGEXIT
+#define INIT_SIGEXIT(tsk) \
+ .notify = LIST_HEAD_INIT(tsk.notify), \
+ .monitor = LIST_HEAD_INIT(tsk.monitor),
+ .notify = LIST_HEAD_INIT(tsk.notify), \
+ .monitor = LIST_HEAD_INIT(tsk.monitor),
+#else
+#define INIT_SIGEXIT(tsk)
+#endif
@ -58,10 +60,10 @@ index a7083a4..1ad2341 100644
extern struct cred init_cred;
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 681aa08..93e8080 100644
index 76cd21fa5501..614cd20935a7 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1045,6 +1045,12 @@ struct task_struct {
@@ -1119,6 +1119,12 @@ struct task_struct {
short il_prev;
short pref_node_fork;
#endif
@ -75,16 +77,15 @@ index 681aa08..93e8080 100644
int numa_scan_seq;
unsigned int numa_scan_period;
diff --git a/include/uapi/linux/prctl.h b/include/uapi/linux/prctl.h
index 327319b..7084845 100644
index 7f0827705c9a..dbd5a8b6e002 100644
--- a/include/uapi/linux/prctl.h
+++ b/include/uapi/linux/prctl.h
@@ -63,6 +63,24 @@
@@ -63,6 +63,22 @@
# define PR_ENDIAN_LITTLE 1 /* True little endian mode */
# define PR_ENDIAN_PPC_LITTLE 2 /* "PowerPC" pseudo little endian */
+#ifdef CONFIG_SIGEXIT
+#define PR_DO_NOTIFY_TASK_STATE 17 /* Set/get notification for task
+ state changes */
+#define PR_DO_NOTIFY_TASK_STATE 17 /* Set/get notification for task
+ state changes */
+
+/* This is the data structure for requestion process death
+ * (and other state change) information. Sig of -1 means
@ -94,46 +95,45 @@ index 327319b..7084845 100644
+ * successful call.
+ */
+struct task_state_notify_info {
+ pid_t pid;
+ int pid;
+ int sig;
+ unsigned int events;
+};
+#endif
+
/* Get/set process seccomp mode */
#define PR_GET_SECCOMP 21
#define PR_SET_SECCOMP 22
diff --git a/init/Kconfig b/init/Kconfig
index b47b164..2caf192 100644
index fc4c9f416fad..df9d5284f8d6 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -1609,6 +1609,21 @@ config VM_EVENT_COUNTERS
@@ -1851,6 +1851,21 @@ config VM_EVENT_COUNTERS
on EXPERT systems. /proc/vmstat will only show page counts
if VM event counters are disabled.
+config SIGEXIT
+ bool "Notification of death of arbitrary processes"
+ default n
+ help
+ When enabled this exposes a new feature which may be called to request
+ notification when an arbitrary process changes state. The caller specifies
+ a pid, signal number, and event mask, and when that pid dies, or is
+ stopped, or anything else that would normally cause a SIGCHLD, the
+ kernel will send the specified signal to the caller if the event is in
+ the event mask originally passed down. The siginfo_t struct will
+ contain the same information as would be included with SIGCHLD.
+ bool "Notification of death of arbitrary processes"
+ default n
+ help
+ When enabled this exposes a new feature which may be called to request
+ notification when an arbitrary process changes state. The caller specifies
+ a pid, signal number, and event mask, and when that pid dies, or is
+ stopped, or anything else that would normally cause a SIGCHLD, the
+ kernel will send the specified signal to the caller if the event is in
+ the event mask originally passed down. The siginfo_t struct will
+ contain the same information as would be included with SIGCHLD.
+
+ This is exposed to userspace via the prctl()
+ call with the PR_DO_NOTIFY_TASK_STATE option
+ This is exposed to userspace via the prctl()
+ call with the PR_DO_NOTIFY_TASK_STATE option
+
config SLUB_DEBUG
default y
bool "Enable SLUB debugging support" if EXPERT
diff --git a/init/init_task.c b/init/init_task.c
index 7267cbf..d84242e 100644
index 16d14c2ebb55..eaee56e60985 100644
--- a/init/init_task.c
+++ b/init/init_task.c
@@ -116,6 +116,7 @@ struct task_struct init_task
@@ -128,6 +128,7 @@ struct task_struct init_task
.alloc_lock = __SPIN_LOCK_UNLOCKED(init_task.alloc_lock),
.journal_info = NULL,
INIT_CPU_TIMERS(init_task)
@ -142,20 +142,20 @@ index 7267cbf..d84242e 100644
.timer_slack_ns = 50000, /* 50 usec default slack */
.thread_pid = &init_struct_pid,
diff --git a/kernel/Makefile b/kernel/Makefile
index aebf6a8..2669df3 100644
index 88b60a6e5dd0..36377f54555a 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -104,6 +104,7 @@ obj-$(CONFIG_TRACEPOINTS) += trace/
obj-$(CONFIG_IRQ_WORK) += irq_work.o
obj-$(CONFIG_CPU_PM) += cpu_pm.o
obj-$(CONFIG_BPF) += bpf/
@@ -108,6 +108,7 @@ obj-$(CONFIG_BPF) += bpf/
obj-$(CONFIG_KCSAN) += kcsan/
obj-$(CONFIG_SHADOW_CALL_STACK) += scs.o
obj-$(CONFIG_HAVE_STATIC_CALL_INLINE) += static_call.o
+obj-$(CONFIG_SIGEXIT) += death_notify.o
obj-$(CONFIG_PERF_EVENTS) += events/
diff --git a/kernel/death_notify.c b/kernel/death_notify.c
new file mode 100644
index 0000000..5819d35
index 000000000000..5819d35a2564
--- /dev/null
+++ b/kernel/death_notify.c
@@ -0,0 +1,228 @@
@ -389,7 +389,7 @@ index 0000000..5819d35
+
diff --git a/kernel/death_notify.h b/kernel/death_notify.h
new file mode 100644
index 0000000..14a0995
index 000000000000..14a0995b79af
--- /dev/null
+++ b/kernel/death_notify.h
@@ -0,0 +1,46 @@
@ -440,12 +440,12 @@ index 0000000..14a0995
+#endif
+
diff --git a/kernel/exit.c b/kernel/exit.c
index 3fb7be0..2005dcd 100644
index d13d67fc5f4e..0e7adf824a52 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -67,6 +67,9 @@
@@ -68,6 +68,9 @@
#include <linux/uaccess.h>
#include <asm/unistd.h>
#include <asm/pgtable.h>
#include <asm/mmu_context.h>
+#ifdef CONFIG_SIGEXIT
+#include "death_notify.h"
@ -453,21 +453,21 @@ index 3fb7be0..2005dcd 100644
static void __unhash_process(struct task_struct *p, bool group_dead)
{
@@ -196,6 +199,9 @@ void release_task(struct task_struct *p)
proc_flush_task(p);
@@ -194,6 +197,9 @@ void release_task(struct task_struct *p)
cgroup_release(p);
write_lock_irq(&tasklist_lock);
+#ifdef CONFIG_SIGEXIT
+ release_notify_others(p);
+#endif
ptrace_release_task(p);
thread_pid = get_pid(p->thread_pid);
__exit_signal(p);
diff --git a/kernel/fork.c b/kernel/fork.c
index 0400c41..97b55a2 100644
index 7c044d377926..5333090a7cc5 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -1910,6 +1910,10 @@ static __latent_entropy struct task_struct *copy_process(
@@ -2069,6 +2069,10 @@ static __latent_entropy struct task_struct *copy_process(
p->sequential_io = 0;
p->sequential_io_avg = 0;
#endif
@ -479,20 +479,20 @@ index 0400c41..97b55a2 100644
/* Perform scheduler related setup. Assign this task to a CPU. */
retval = sched_fork(clone_flags, p);
diff --git a/kernel/signal.c b/kernel/signal.c
index 85a938c..b8bf3ee 100644
index ef8f2a28d37c..5c41ee2ccf7e 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -52,6 +52,9 @@
@@ -55,6 +55,9 @@
#include <asm/unistd.h>
#include <asm/siginfo.h>
#include <asm/cacheflush.h>
#include "audit.h" /* audit_signal_info() */
+#ifdef CONFIG_SIGEXIT
+#include "death_notify.h"
+#endif
/*
* SLAB caches for signal bits.
@@ -1895,6 +1898,10 @@ bool do_notify_parent(struct task_struct *tsk, int sig)
@@ -1999,6 +2002,10 @@ bool do_notify_parent(struct task_struct *tsk, int sig)
__wake_up_parent(tsk, tsk->parent);
spin_unlock_irqrestore(&psig->siglock, flags);
@ -503,7 +503,7 @@ index 85a938c..b8bf3ee 100644
return autoreap;
}
@@ -1967,6 +1974,10 @@ static void do_notify_parent_cldstop(struct task_struct *tsk,
@@ -2071,6 +2078,10 @@ static void do_notify_parent_cldstop(struct task_struct *tsk,
*/
__wake_up_parent(tsk, parent);
spin_unlock_irqrestore(&sighand->siglock, flags);
@ -515,11 +515,11 @@ index 85a938c..b8bf3ee 100644
static inline bool may_ptrace_stop(void)
diff --git a/kernel/sys.c b/kernel/sys.c
index 8a0fab9..e957bd5 100644
index a730c03ee607..0f8decf763f1 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -75,6 +75,9 @@
#include <linux/nospec.h>
@@ -73,6 +73,9 @@
#include <asm/unistd.h>
#include "uid16.h"
+#ifdef CONFIG_SIGEXIT
@ -528,7 +528,7 @@ index 8a0fab9..e957bd5 100644
#ifndef SET_UNALIGN_CTL
# define SET_UNALIGN_CTL(a, b) (-EINVAL)
@@ -2409,6 +2412,11 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
@@ -2423,6 +2426,11 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
else
error = PR_MCE_KILL_DEFAULT;
break;
@ -541,5 +541,5 @@ index 8a0fab9..e957bd5 100644
error = prctl_set_mm(arg2, arg3, arg4, arg5);
break;
--
2.7.4
2.29.2

View File

@ -1,7 +1,4 @@
From 98f7b9d926abbe0bb60ab0a14a306516fa36b9d8 Mon Sep 17 00:00:00 2001
Message-Id: <98f7b9d926abbe0bb60ab0a14a306516fa36b9d8.1527544850.git.Jim.Somerville@windriver.com>
In-Reply-To: <b6ceef1c915827b50ce3f76da4dc47f3eb768b44.1527544850.git.Jim.Somerville@windriver.com>
References: <b6ceef1c915827b50ce3f76da4dc47f3eb768b44.1527544850.git.Jim.Somerville@windriver.com>
From 8d508571597d4e2d8c64621015c375ce0a346748 Mon Sep 17 00:00:00 2001
From: Dahir Osman <dahir.osman@windriver.com>
Date: Wed, 13 Jan 2016 10:01:11 -0500
Subject: [PATCH 02/10] PCI: Add ACS quirk for Intel Fortville NICs
@ -11,18 +8,19 @@ properly read the Fortville ACS capabilities.
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Zhang Zhiguo <zhangzhg@neusoft.com>
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
drivers/pci/quirks.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 36f8e32..03c25f9 100644
index b570f297e3ec..910026923549 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -4422,6 +4422,10 @@ static const struct pci_dev_acs_enabled {
/* I219 */
@@ -4740,6 +4740,10 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_INTEL, 0x15b7, pci_quirk_mf_endpoint_acs },
{ PCI_VENDOR_ID_INTEL, 0x15b8, pci_quirk_mf_endpoint_acs },
{ PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_rciep_acs },
+ /* I40 */
+ { PCI_VENDOR_ID_INTEL, 0x1572, pci_quirk_mf_endpoint_acs },
+ { PCI_VENDOR_ID_INTEL, 0x1586, pci_quirk_mf_endpoint_acs },
@ -31,5 +29,5 @@ index 36f8e32..03c25f9 100644
{ PCI_VENDOR_ID_QCOM, 0x0400, pci_quirk_qcom_rp_acs },
{ PCI_VENDOR_ID_QCOM, 0x0401, pci_quirk_qcom_rp_acs },
--
2.7.4
2.29.2

View File

@ -1,4 +1,4 @@
From 41a11b1e49eaad061dca9ab7b642820fa4bd833d Mon Sep 17 00:00:00 2001
From a04995a064c17b5e5df6d6f184c1cf01bb8bc6a0 Mon Sep 17 00:00:00 2001
From: Chris Friesen <chris.friesen@windriver.com>
Date: Tue, 24 Nov 2015 16:27:28 -0500
Subject: [PATCH] affine compute kernel threads
@ -28,40 +28,43 @@ Signed-off-by: Vu Tran <vu.tran@windriver.com>
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Zhang Zhiguo <zhangzhg@neusoft.com>
Signed-off-by: Vefa Bicakci <vefa.bicakci@windriver.com>
[jm: Adapted the patch for context changes.]
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
Documentation/admin-guide/kernel-parameters.txt | 9 +++++++++
include/linux/cpumask.h | 3 +++
init/main.c | 2 ++
kernel/cpu.c | 20 ++++++++++++++++++++
kernel/kthread.c | 4 ++--
kernel/umh.c | 3 +++
6 files changed, 39 insertions(+), 2 deletions(-)
.../admin-guide/kernel-parameters.txt | 10 ++++++++++
include/linux/cpumask.h | 3 +++
init/main.c | 2 ++
kernel/cpu.c | 19 +++++++++++++++++++
kernel/kthread.c | 5 ++---
kernel/umh.c | 3 +++
6 files changed, 39 insertions(+), 3 deletions(-)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 9707a806ab1f..b864bfff4bce 100644
index 26bfe7ae711b..91bb37814527 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -1968,6 +1968,15 @@
Default: on
Built with CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y,
the default is off.
+ kthread_cpus= [KNL, SMP] Only run kernel threads on the specified
+ list of processors. The kernel will start threads
+ on the indicated processors only (unless there
+ are specific reasons to run a thread with
+ different affinities). This can be used to make
+ init start on certain processors and also to
+ control where kmod and other user space threads
+ are being spawned. Allows to keep kernel threads
+ away from certain cores unless absoluteluy necessary.
@@ -2217,6 +2217,16 @@
See also Documentation/trace/kprobetrace.rst "Kernel
Boot Parameter" section.
+ kthread_cpus= [KNL, SMP] Only run kernel threads on the specified
+ list of processors. The kernel will start threads
+ on the indicated processors only (unless there
+ are specific reasons to run a thread with
+ different affinities). This can be used to make
+ init start on certain processors and also to
+ control where kmod and other user space threads
+ are being spawned. Allows to keep kernel threads
+ away from certain cores unless absoluteluy necessary.
+
kpti= [ARM64] Control page table isolation of user
and kernel address spaces.
Default: enabled on cores which need mitigation.
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
index 57f20a0a7794..452603496e53 100644
index f0d895d6ac39..45f338cfdd6f 100644
--- a/include/linux/cpumask.h
+++ b/include/linux/cpumask.h
@@ -54,6 +54,7 @@ extern unsigned int nr_cpu_ids;
@@ -55,6 +55,7 @@ extern unsigned int nr_cpu_ids;
* cpu_present_mask - has bit 'cpu' set iff cpu is populated
* cpu_online_mask - has bit 'cpu' set iff cpu available to scheduler
* cpu_active_mask - has bit 'cpu' set iff cpu available to migration
@ -69,7 +72,7 @@ index 57f20a0a7794..452603496e53 100644
*
* If !CONFIG_HOTPLUG_CPU, present == possible, and active == online.
*
@@ -90,10 +91,12 @@ extern struct cpumask __cpu_possible_mask;
@@ -91,10 +92,12 @@ extern struct cpumask __cpu_possible_mask;
extern struct cpumask __cpu_online_mask;
extern struct cpumask __cpu_present_mask;
extern struct cpumask __cpu_active_mask;
@ -80,28 +83,28 @@ index 57f20a0a7794..452603496e53 100644
#define cpu_active_mask ((const struct cpumask *)&__cpu_active_mask)
+#define cpu_kthread_mask ((const struct cpumask *)&__cpu_kthread_mask)
#if NR_CPUS > 1
#define num_online_cpus() cpumask_weight(cpu_online_mask)
extern atomic_t __num_online_cpus;
diff --git a/init/main.c b/init/main.c
index f50f0b8234d1..92a16ead6b11 100644
index d9d914111251..951410241ef4 100644
--- a/init/main.c
+++ b/init/main.c
@@ -1144,6 +1144,8 @@ static noinline void __init kernel_init_freeable(void)
@@ -1527,6 +1527,8 @@ static noinline void __init kernel_init_freeable(void)
do_basic_setup();
+ set_cpus_allowed_ptr(current, cpu_kthread_mask);
+
/* Open the /dev/console on the rootfs, this should never fail */
if (ksys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
pr_err("Warning: unable to open an initial console.\n");
kunit_run_all_tests();
console_on_rootfs();
diff --git a/kernel/cpu.c b/kernel/cpu.c
index 23923f77c427..ff74e65b6206 100644
index 2b8d7a5db383..b5dbec330189 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -2310,6 +2310,26 @@ EXPORT_SYMBOL(__cpu_present_mask);
struct cpumask __cpu_active_mask __read_mostly;
EXPORT_SYMBOL(__cpu_active_mask);
@@ -2449,6 +2449,25 @@ EXPORT_SYMBOL(__cpu_active_mask);
atomic_t __num_online_cpus __read_mostly;
EXPORT_SYMBOL(__num_online_cpus);
+struct cpumask __cpu_kthread_mask __read_mostly
+ = {CPU_BITS_ALL};
@ -111,50 +114,50 @@ index 23923f77c427..ff74e65b6206 100644
+{
+ struct cpumask tmp_mask;
+ int err;
+
+
+ err = cpulist_parse(str, &tmp_mask);
+ if (!err)
+ cpumask_copy(&__cpu_kthread_mask, &tmp_mask);
+ else
+ pr_err("Cannot parse 'kthread_cpus=%s'; error %d\n", str, err);
+
+
+ return 1;
+}
+__setup("kthread_cpus=", kthread_setup);
+
+
void init_cpu_present(const struct cpumask *src)
{
cpumask_copy(&__cpu_present_mask, src);
diff --git a/kernel/kthread.c b/kernel/kthread.c
index e4f3cfd757d2..85f753fc5a3c 100644
index 5edf7e19ab26..7c3924752999 100644
--- a/kernel/kthread.c
+++ b/kernel/kthread.c
@@ -340,7 +340,7 @@ struct task_struct *__kthread_create_on_node(int (*threadfn)(void *data),
@@ -384,8 +384,7 @@ struct task_struct *__kthread_create_on_node(int (*threadfn)(void *data),
* The kernel thread should not inherit these properties.
*/
sched_setscheduler_nocheck(task, SCHED_NORMAL, &param);
- set_cpus_allowed_ptr(task, cpu_all_mask);
- set_cpus_allowed_ptr(task,
- housekeeping_cpumask(HK_FLAG_KTHREAD));
+ set_cpus_allowed_ptr(task, cpu_kthread_mask);
}
kfree(create);
return task;
@@ -563,7 +563,7 @@ int kthreadd(void *unused)
@@ -634,7 +633,7 @@ int kthreadd(void *unused)
/* Setup a clean context for our children to inherit. */
set_task_comm(tsk, "kthreadd");
ignore_signals(tsk);
- set_cpus_allowed_ptr(tsk, cpu_all_mask);
- set_cpus_allowed_ptr(tsk, housekeeping_cpumask(HK_FLAG_KTHREAD));
+ set_cpus_allowed_ptr(tsk, cpu_kthread_mask);
set_mems_allowed(node_states[N_MEMORY]);
current->flags |= PF_NOFREEZE;
diff --git a/kernel/umh.c b/kernel/umh.c
index d937cbad903a..94715dff7d61 100644
index 3f646613a9d3..e5027cee43f7 100644
--- a/kernel/umh.c
+++ b/kernel/umh.c
@@ -74,6 +74,9 @@ static int call_usermodehelper_exec_async(void *data)
flush_signal_handlers(current, 1);
spin_unlock_irq(&current->sighand->siglock);
@@ -80,6 +80,9 @@ static int call_usermodehelper_exec_async(void *data)
*/
current->fs->umask = 0022;
+ /* We can run only where init is allowed to run. */
+ set_cpus_allowed_ptr(current, cpu_kthread_mask);
@ -163,5 +166,5 @@ index d937cbad903a..94715dff7d61 100644
* Our parent (unbound workqueue) runs with elevated scheduling
* priority. Avoid propagating that into the userspace child.
--
2.29.2
2.31.1

View File

@ -1,7 +1,4 @@
From e223cda3a8edd8fd935d589231c8e19a66bd8947 Mon Sep 17 00:00:00 2001
Message-Id: <e223cda3a8edd8fd935d589231c8e19a66bd8947.1527544850.git.Jim.Somerville@windriver.com>
In-Reply-To: <b6ceef1c915827b50ce3f76da4dc47f3eb768b44.1527544850.git.Jim.Somerville@windriver.com>
References: <b6ceef1c915827b50ce3f76da4dc47f3eb768b44.1527544850.git.Jim.Somerville@windriver.com>
From 286f3a8af7f620dac84f20de5f7ad6542f447ace Mon Sep 17 00:00:00 2001
From: Chris Friesen <chris.friesen@windriver.com>
Date: Tue, 24 Nov 2015 16:27:29 -0500
Subject: [PATCH 04/10] Affine irqs and workqueues with kthread_cpus
@ -24,16 +21,17 @@ Signed-off-by: Vu Tran <vu.tran@windriver.com>
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Zhang Zhiguo <zhangzhg@neusoft.com>
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
kernel/irq/manage.c | 7 +++++++
kernel/workqueue.c | 4 ++++
2 files changed, 11 insertions(+)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index c4e31f4..002dec3 100644
index 79dc02b956dc..420b5ce0bf89 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -400,6 +400,13 @@ int irq_setup_affinity(struct irq_desc *desc)
@@ -515,6 +515,13 @@ int irq_setup_affinity(struct irq_desc *desc)
if (cpumask_intersects(&mask, nodemask))
cpumask_and(&mask, &mask, nodemask);
}
@ -48,20 +46,20 @@ index c4e31f4..002dec3 100644
raw_spin_unlock(&mask_lock);
return ret;
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 4228207..c7fa0ec 100644
index 1e2ca744dadb..b854874d0518 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -5730,6 +5730,8 @@ int __init workqueue_init_early(void)
@@ -5956,6 +5956,8 @@ void __init workqueue_init_early(void)
BUG_ON(!(attrs = alloc_workqueue_attrs(GFP_KERNEL)));
BUG_ON(!(attrs = alloc_workqueue_attrs()));
attrs->nice = std_nice[i];
+ /* If we've specified a kthread mask apply it here too. */
+ cpumask_copy(attrs->cpumask, cpu_kthread_mask);
unbound_std_wq_attrs[i] = attrs;
/*
@@ -5740,6 +5742,8 @@ int __init workqueue_init_early(void)
BUG_ON(!(attrs = alloc_workqueue_attrs(GFP_KERNEL)));
@@ -5966,6 +5968,8 @@ void __init workqueue_init_early(void)
BUG_ON(!(attrs = alloc_workqueue_attrs()));
attrs->nice = std_nice[i];
attrs->no_numa = true;
+ /* If we've specified a kthread mask apply it here too. */
@ -70,5 +68,5 @@ index 4228207..c7fa0ec 100644
}
--
2.7.4
2.29.2

View File

@ -1,7 +1,4 @@
From 0e86f726ba6e46ee206ecc7e09ce049ed4145f6c Mon Sep 17 00:00:00 2001
Message-Id: <0e86f726ba6e46ee206ecc7e09ce049ed4145f6c.1527544850.git.Jim.Somerville@windriver.com>
In-Reply-To: <b6ceef1c915827b50ce3f76da4dc47f3eb768b44.1527544850.git.Jim.Somerville@windriver.com>
References: <b6ceef1c915827b50ce3f76da4dc47f3eb768b44.1527544850.git.Jim.Somerville@windriver.com>
From 82e56b6b7c05eebc589b37e96ed3b0a44d6cdef7 Mon Sep 17 00:00:00 2001
From: Chris Friesen <chris.friesen@windriver.com>
Date: Thu, 12 May 2016 18:00:00 -0400
Subject: [PATCH 05/10] Make kernel start eth devices at offset
@ -12,15 +9,16 @@ will let us rename to a range starting at eth0.
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Zhang Zhiguo <zhangzhg@neusoft.com>
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
net/core/dev.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/net/core/dev.c b/net/core/dev.c
index 6a531ca..980860d 100644
index 62ff7121b22d..e63fe7662c73 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1100,6 +1100,12 @@ static int __dev_alloc_name(struct net *net, const char *name, char *buf)
@@ -1218,6 +1218,12 @@ static int __dev_alloc_name(struct net *net, const char *name, char *buf)
set_bit(i, inuse);
}
@ -34,5 +32,5 @@ index 6a531ca..980860d 100644
free_page((unsigned long) inuse);
}
--
2.7.4
2.29.2

View File

@ -1,11 +1,8 @@
From c449e4c490ac85ccf04e8aab67c8120aa48f8ad0 Mon Sep 17 00:00:00 2001
Message-Id: <c449e4c490ac85ccf04e8aab67c8120aa48f8ad0.1527544850.git.Jim.Somerville@windriver.com>
In-Reply-To: <b6ceef1c915827b50ce3f76da4dc47f3eb768b44.1527544850.git.Jim.Somerville@windriver.com>
References: <b6ceef1c915827b50ce3f76da4dc47f3eb768b44.1527544850.git.Jim.Somerville@windriver.com>
From c35ee3034b61e72bf9fef888a3c4702049a77bcc Mon Sep 17 00:00:00 2001
From: Matt Peters <matt.peters@windriver.com>
Date: Mon, 30 May 2016 10:51:02 -0400
Subject: [PATCH 06/10] intel-iommu: allow ignoring Ethernet device RMRR with
IOMMU passthrough
Subject: [PATCH] intel-iommu: allow ignoring Ethernet device RMRR with IOMMU
passthrough
Some BIOS's are reporting DMAR RMRR entries for Ethernet devices
which is causing problems when PCI passthrough is enabled. These
@ -20,16 +17,36 @@ Signed-off-by: Nam Ninh <nam.ninh@windriver.com>
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Zhang Zhiguo <zhangzhg@neusoft.com>
Signed-off-by: Dongqi Chen <chen.dq@neusoft.com>
[lz: Adapted the patch for context changes.]
Signed-off-by: Li Zhou <li.zhou@windriver.com>
[jp: fix warning: this 'else' clause does not guard]
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
Documentation/Intel-IOMMU.txt | 18 ++++++++++++++++++
Documentation/admin-guide/kernel-parameters.txt | 5 +++++
drivers/iommu/intel-iommu.c | 19 +++++++++++++++++++
3 files changed, 42 insertions(+)
.../admin-guide/kernel-parameters.txt | 5 +++++
Documentation/x86/intel-iommu.rst | 18 +++++++++++++++
drivers/iommu/intel/iommu.c | 22 ++++++++++++++++++-
3 files changed, 44 insertions(+), 1 deletion(-)
diff --git a/Documentation/Intel-IOMMU.txt b/Documentation/Intel-IOMMU.txt
index 9dae6b4..1080fcb 100644
--- a/Documentation/Intel-IOMMU.txt
+++ b/Documentation/Intel-IOMMU.txt
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 552f1db5b9d7..e862aabe6255 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -1861,6 +1861,11 @@
than 32-bit addressing. The default is to look
for translation below 32-bit and if not available
then look in the higher range.
+ eth_no_rmrr [Default Off]
+ With this option provided, the kernel will ignore
+ any specified RMRR regions specified by the BIOS
+ for PCI ethernet devices. Confirm with your hardware
+ vendor the RMRR regions are indeed invalid first.
strict [Default Off]
With this option on every unmap_single operation will
result in a hardware IOTLB flush operation as opposed
diff --git a/Documentation/x86/intel-iommu.rst b/Documentation/x86/intel-iommu.rst
index 099f13d51d5f..18e6a8d8b1ee 100644
--- a/Documentation/x86/intel-iommu.rst
+++ b/Documentation/x86/intel-iommu.rst
@@ -33,6 +33,24 @@ regions will fail. Hence BIOS uses RMRR to specify these regions along with
devices that need to access these regions. OS is expected to setup
unity mappings for these regions for these devices to access these regions.
@ -55,40 +72,24 @@ index 9dae6b4..1080fcb 100644
How is IOVA generated?
----------------------
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 928b525..cea7932 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -1672,6 +1672,11 @@
than 32-bit addressing. The default is to look
for translation below 32-bit and if not available
then look in the higher range.
+ eth_no_rmrr [Default Off]
+ With this option provided, the kernel will ignore
+ any specified RMRR regions specified by the BIOS
+ for PCI ethernet devices. Confirm with your hardware
+ vendor the RMRR regions are indeed invalid first.
strict [Default Off]
With this option on every unmap_single operation will
result in a hardware IOTLB flush operation as opposed
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index 0962d65..ea478fa 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -485,6 +485,7 @@ static int dmar_forcedac;
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
index 7e3db4c0324d..16ebba2723cb 100644
--- a/drivers/iommu/intel/iommu.c
+++ b/drivers/iommu/intel/iommu.c
@@ -354,6 +354,7 @@ static int dmar_map_gfx = 1;
static int dmar_forcedac;
static int intel_iommu_strict;
static int intel_iommu_superpage = 1;
static int intel_iommu_ecs = 1;
+static int intel_iommu_ethrmrr = 1;
static int intel_iommu_pasid28;
static int iommu_identity_mapping;
@@ -569,6 +570,15 @@ static int __init intel_iommu_setup(char *str)
static int intel_no_bounce;
static int iommu_skip_te_disable;
@@ -448,6 +449,15 @@ static int __init intel_iommu_setup(char *str)
} else if (!strncmp(str, "forcedac", 8)) {
pr_info("Forcing DAC for PCI devices\n");
dmar_forcedac = 1;
+ } else if (!strncmp(str, "eth_no_rmrr", 11)) {
+ if (!iommu_pass_through) {
+ if (!iommu_default_passthrough()) {
+ printk(KERN_WARNING
+ "Intel-IOMMU: error - eth_no_rmrr requires iommu=pt\n");
+ } else {
@ -99,10 +100,12 @@ index 0962d65..ea478fa 100644
} else if (!strncmp(str, "strict", 6)) {
pr_info("Disable batched IOTLB flush\n");
intel_iommu_strict = 1;
@@ -2920,6 +2930,15 @@ static bool device_is_rmrr_locked(struct device *dev)
if (IS_USB_DEVICE(pdev) || IS_GFX_DEVICE(pdev))
return false;
@@ -2880,8 +2890,18 @@ static bool device_rmrr_is_relaxable(struct device *dev)
pdev = to_pci_dev(dev);
if (IS_USB_DEVICE(pdev) || IS_GFX_DEVICE(pdev))
return true;
- else
+ else {
+ /* As a temporary workaround for issues seen on ProLiant DL380p,
+ * allow the operator to ignore the RMRR settings for ethernet
+ * devices. Ideally the end user should contact their vendor
@ -111,10 +114,12 @@ index 0962d65..ea478fa 100644
+ * it seems that these make no sense at all.
+ */
+ if ((pdev->class >> 8) == PCI_CLASS_NETWORK_ETHERNET && !intel_iommu_ethrmrr)
+ return false;
}
+ return true;
return false;
+ }
}
return true;
/*
--
2.7.4
2.29.2

View File

@ -1,22 +1,20 @@
From 533c1cd1909a81bd027435dd934a194983c9e9b8 Mon Sep 17 00:00:00 2001
Message-Id: <533c1cd1909a81bd027435dd934a194983c9e9b8.1527544850.git.Jim.Somerville@windriver.com>
In-Reply-To: <b6ceef1c915827b50ce3f76da4dc47f3eb768b44.1527544850.git.Jim.Somerville@windriver.com>
References: <b6ceef1c915827b50ce3f76da4dc47f3eb768b44.1527544850.git.Jim.Somerville@windriver.com>
From 87e7e3bd136b05d9ae105fe87879d1fe6730ee18 Mon Sep 17 00:00:00 2001
From: Jim Somerville <Jim.Somerville@windriver.com>
Date: Tue, 6 Mar 2018 12:54:40 -0500
Subject: [PATCH 09/10] turn off write same in smartqpi driver
Subject: [PATCH 06/10] turn off write same in smartqpi driver
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Zhang Zhiguo <zhangzhg@neusoft.com>
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
drivers/scsi/smartpqi/smartpqi_init.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c
index 7810cb2..9895f7f 100644
index 9d0229656681..af46f3a024da 100644
--- a/drivers/scsi/smartpqi/smartpqi_init.c
+++ b/drivers/scsi/smartpqi/smartpqi_init.c
@@ -6413,6 +6413,7 @@ static struct scsi_host_template pqi_driver_template = {
@@ -6571,6 +6571,7 @@ static struct scsi_host_template pqi_driver_template = {
.map_queues = pqi_map_queues,
.sdev_attrs = pqi_sdev_attrs,
.shost_attrs = pqi_shost_attrs,
@ -25,5 +23,5 @@ index 7810cb2..9895f7f 100644
static int pqi_register_scsi(struct pqi_ctrl_info *ctrl_info)
--
2.7.4
2.29.2

View File

@ -1,8 +1,7 @@
From 340fbe20b7ede7b9a6dca8c3d03cead97257a99d Mon Sep 17 00:00:00 2001
Message-Id: <340fbe20b7ede7b9a6dca8c3d03cead97257a99d.1584649859.git.Jim.Somerville@windriver.com>
From 4d58a9a618827e4410e3828b4deef5832a8576db Mon Sep 17 00:00:00 2001
From: Jim Somerville <Jim.Somerville@windriver.com>
Date: Wed, 29 Jan 2020 14:19:22 -0500
Subject: [PATCH 1/1] Allow dmar quirks for broken bioses
Subject: [PATCH 07/10] Allow dmar quirks for broken bioses
Problem:
Broken bios creates inaccurate DMAR tables,
@ -27,16 +26,16 @@ Lu Baolu of Intel Corp to lkml
https://lkml.org/lkml/2019/12/24/15
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Dongqi Chen <chen.dq@neusoft.com>
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
drivers/iommu/dmar.c | 25 ++++++++++++++++++++++++-
drivers/iommu/intel/dmar.c | 25 ++++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/drivers/iommu/dmar.c b/drivers/iommu/dmar.c
index 4658dc3..eeaef2e 100644
--- a/drivers/iommu/dmar.c
+++ b/drivers/iommu/dmar.c
@@ -76,6 +76,26 @@ static void free_iommu(struct intel_iommu *iommu);
diff --git a/drivers/iommu/intel/dmar.c b/drivers/iommu/intel/dmar.c
index 02e7c10a4224..7d423ac36a44 100644
--- a/drivers/iommu/intel/dmar.c
+++ b/drivers/iommu/intel/dmar.c
@@ -66,6 +66,26 @@ static void free_iommu(struct intel_iommu *iommu);
extern const struct iommu_ops intel_iommu_ops;
@ -58,13 +57,13 @@ index 4658dc3..eeaef2e 100644
+ */
+/* Sky Lake-E PCI Express Root Port A */
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2030,
+ quirk_dmar_scope_mismatch);
+ quirk_dmar_scope_mismatch);
+
static void dmar_register_drhd_unit(struct dmar_drhd_unit *drhd)
{
/*
@@ -258,7 +278,10 @@ int dmar_insert_dev_scope(struct dmar_pci_notify_info *info,
info->dev->class >> 8 != PCI_CLASS_BRIDGE_OTHER))) {
@@ -255,7 +275,10 @@ int dmar_insert_dev_scope(struct dmar_pci_notify_info *info,
info->dev->class >> 16 != PCI_BASE_CLASS_BRIDGE))) {
pr_warn("Device scope type does not match for %s\n",
pci_name(info->dev));
- return -EINVAL;
@ -76,5 +75,5 @@ index 4658dc3..eeaef2e 100644
for_each_dev_scope(devices, devices_cnt, i, tmp)
--
2.7.4
2.29.2

View File

@ -1,7 +1,7 @@
From 4f19722fd1dfbd1f692f4158bcee0c47ba4b1869 Mon Sep 17 00:00:00 2001
From 451738188482a34603a184e868893f407998bdd4 Mon Sep 17 00:00:00 2001
From: Nayna Jain <nayna@linux.vnet.ibm.com>
Date: Fri, 10 Nov 2017 17:16:35 -0500
Subject: [PATCH 3/3] tpm: ignore burstcount to improve tpm_tis send()
Subject: [PATCH 08/10] tpm: ignore burstcount to improve tpm_tis send()
performance
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
@ -26,15 +26,16 @@ Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Dongqi Chen <chen.dq@neusoft.com>
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
drivers/char/tpm/tpm_tis_core.c | 43 ++++++++++++++---------------------------
drivers/char/tpm/tpm_tis_core.c | 43 ++++++++++++---------------------
1 file changed, 15 insertions(+), 28 deletions(-)
diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c
index b9f6468..54a6490 100644
index a2e0395cbe61..2c69fde1e4e5 100644
--- a/drivers/char/tpm/tpm_tis_core.c
+++ b/drivers/char/tpm/tpm_tis_core.c
@@ -367,7 +367,6 @@ static int tpm_tis_send_data(struct tpm_chip *chip, const u8 *buf, size_t len)
@@ -330,7 +330,6 @@ static int tpm_tis_send_data(struct tpm_chip *chip, const u8 *buf, size_t len)
{
struct tpm_tis_data *priv = dev_get_drvdata(&chip->dev);
int rc, status, burstcnt;
@ -42,7 +43,7 @@ index b9f6468..54a6490 100644
bool itpm = priv->flags & TPM_TIS_ITPM_WORKAROUND;
status = tpm_tis_status(chip);
@@ -380,36 +379,24 @@ static int tpm_tis_send_data(struct tpm_chip *chip, const u8 *buf, size_t len)
@@ -343,36 +342,24 @@ static int tpm_tis_send_data(struct tpm_chip *chip, const u8 *buf, size_t len)
goto out_err;
}
}
@ -95,5 +96,5 @@ index b9f6468..54a6490 100644
goto out_err;
--
2.7.4
2.29.2

View File

@ -1,81 +0,0 @@
From e76237b80a238a3ea1faf1656fd85d9af24bd30f Mon Sep 17 00:00:00 2001
From: Shuicheng Lin <shuicheng.lin@intel.com>
Date: Wed, 12 Feb 2020 15:16:28 +0800
Subject: [PATCH] Fix compile error with gcc-4.8.5 and python2
BIT is defined as "(1UL << (nr))", and gcc-4.8.5 cannot recognize
"UL", lead to error message like below:
"
BUILDSTDERR: arch/x86/entry/entry_64.S:1199: Error: found 'L', expected: ')'
BUILDSTDERR: arch/x86/entry/entry_64.S:1199: Error: junk `L<<(0))' after expression
"
Fix it by change BIT definition the same as arch/x86/include/asm/spec_ctrl.h.
cherry-pick upstream df8794fe6840aed6ce65baf7f1e542bd3e22fb78 to
fix python2 build failure
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
---
arch/x86/include/asm/msr-index.h | 3 +++
tools/perf/scripts/python/exported-sql-viewer.py | 7 -------
2 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
index a68b5fa..bf3474f 100644
--- a/arch/x86/include/asm/msr-index.h
+++ b/arch/x86/include/asm/msr-index.h
@@ -4,6 +4,9 @@
#include <linux/bits.h>
+#undef BIT
+#define BIT(nr) (_AC(1,UL) << (nr))
+
/*
* CPU model specific register (MSR) numbers.
*
diff --git a/tools/perf/scripts/python/exported-sql-viewer.py b/tools/perf/scripts/python/exported-sql-viewer.py
index 57afe5e..9f3c0e6 100755
--- a/tools/perf/scripts/python/exported-sql-viewer.py
+++ b/tools/perf/scripts/python/exported-sql-viewer.py
@@ -1573,7 +1573,6 @@ class SQLTableDialogDataItem():
return str(lower_id)
def ConvertRelativeTime(self, val):
- print "val ", val
mult = 1
suffix = val[-2:]
if suffix == "ms":
@@ -1595,29 +1594,23 @@ class SQLTableDialogDataItem():
return str(val)
def ConvertTimeRange(self, vrange):
- print "vrange ", vrange
if vrange[0] == "":
vrange[0] = str(self.first_time)
if vrange[1] == "":
vrange[1] = str(self.last_time)
vrange[0] = self.ConvertRelativeTime(vrange[0])
vrange[1] = self.ConvertRelativeTime(vrange[1])
- print "vrange2 ", vrange
if not self.IsNumber(vrange[0]) or not self.IsNumber(vrange[1]):
return False
- print "ok1"
beg_range = max(int(vrange[0]), self.first_time)
end_range = min(int(vrange[1]), self.last_time)
if beg_range > self.last_time or end_range < self.first_time:
return False
- print "ok2"
vrange[0] = self.BinarySearchTime(0, self.last_id, beg_range, True)
vrange[1] = self.BinarySearchTime(1, self.last_id + 1, end_range, False)
- print "vrange3 ", vrange
return True
def AddTimeRange(self, value, ranges):
- print "value ", value
n = value.count("-")
if n == 1:
pass
--
2.7.4

View File

@ -1,2 +0,0 @@
mirror:Source/kernel-4.18.0-147.3.1.el8_1.src.rpm

View File

View File

Binary file not shown.

View File

@ -0,0 +1,42 @@
-----BEGIN CERTIFICATE-----
MIIDgTCCAmmgAwIBAgIJALYWFXFy+zGAMA0GCSqGSIb3DQEBCwUAMEwxJjAkBgNV
BAMMHUNlbnRPUyBTZWN1cmUgQm9vdCAoQ0Ega2V5IDEpMSIwIAYJKoZIhvcNAQkB
FhNzZWN1cml0eUBjZW50b3Mub3JnMB4XDTE5MDYwMzE0MjA0MFoXDTM4MDEwMTE0
MjA0MFowVTEvMC0GA1UEAwwmQ2VudE9TIExpbnV4IERyaXZlciB1cGRhdGUgc2ln
bmluZyBrZXkxIjAgBgkqhkiG9w0BCQEWE3NlY3VyaXR5QGNlbnRvcy5vcmcwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD5ECuosQ4HKRRf+Kxfm+BcICBK
PGqB+E/qalqQ3CCM3LWezq0ns/GZTD0CtSAzmOObqJb3gJ9S5gcbaMVBc3JxLlQ+
RwVy0oNy91uy9TKhYQ3lpHDyujxiFmXPSJLMKOYbOBNObJ7qF6+ptnmDWMu7GWDc
4UGdBdU/evt92LIxsi9ZQCEoZIqdyKBE/Y3V9gBZIZa/4oXMHfW9dWxhy9UszmR9
hT7ZdgLFpWMFmJW+SS5QEWtp5CpRlcui4QJZl42bMp5JOrVWc+BlKPIsLdY8TqLp
9FdhQ5Ih4auT7zn2V89YgYpq6VMZnPsn/v5piB6i6RK8Falr6SP5SV0cwV/jAgMB
AAGjXTBbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgeAMB0GA1UdDgQWBBQpvUwN
BtLpkRBEtdyXMwkTm1HW1TAfBgNVHSMEGDAWgBRU7IGFiT7pGtsI90SIVH6OP3Q6
8zANBgkqhkiG9w0BAQsFAAOCAQEAK+f4c4aP9TQDiQM4TDyw8iDapr7eBc+Yr0M5
ELkWEQu55/OwLQrgCA5bdD86diaAXQAlUOXCtFRrbUQHQACEL77/32YdooHfVZZ7
04CeE+JWxF/cQ3M5hhJnkyxaqFKC+B+bn7Z6eloMnYUPsXwfQEOuyxKaKergAJdq
KnC0pEG3NGgwlwvnD0dwUqbbEUUqL3UQh96hCYDidhCUmuap1E2OGoxGex3ekszf
ErCgwVYb46cv91ba2KqXVWl1FoO3c5MyZcxL46ihQgiY0BI975+HDFjpUZ69n+Um
OhSscRUiKeEQKMVtHzyQUp5t+HCeaZBRPy3rFoIjTEqijKZ6tQ==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDejCCAmKgAwIBAgIJALYWFXFy+zF/MA0GCSqGSIb3DQEBCwUAMEwxJjAkBgNV
BAMMHUNlbnRPUyBTZWN1cmUgQm9vdCAoQ0Ega2V5IDEpMSIwIAYJKoZIhvcNAQkB
FhNzZWN1cml0eUBjZW50b3Mub3JnMB4XDTE5MDYwMzE0MjAwMloXDTM4MDEwMTE0
MjAwMlowTjEoMCYGA1UEAwwfQ2VudE9TIExpbnV4IGtwYXRjaCBzaWduaW5nIGtl
eTEiMCAGCSqGSIb3DQEJARYTc2VjdXJpdHlAY2VudG9zLm9yZzCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAMG+5OclqB0NE5azrGkSitqUFcZjpRk/rS2P
CetB6jwxOn06TrLGzqnhcE9VBKyEs7CXBLy6lfnORcYOybcR2XvrgqGa1txOZggl
hc8zCj9X7ZCMK2UsWglxQCOtbo0m/vdor/VO3SFbrf/W9+PXhvNtcxMP9yjydbP+
lS1St8uQv952hu7C1TevyOQN3jpvWRD7DSJIU/2uRFcdIo2QCGokuB/xESXeuGJ2
F2P9w0h74V18AlVTxtGp/RSJqZaQ2Gi5h4Oa7UsRmhmCoLdmdBe7xnYJrJ4GhxKQ
yG0kU1ikEhZW3YjoVPgBJzTsIhCAzFrOUq0d67a1wTVMiyL60fUCAwEAAaNdMFsw
DAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCB4AwHQYDVR0OBBYEFLSfCGIFkJ3E2iz6
mTdvsZHS8J54MB8GA1UdIwQYMBaAFFTsgYWJPuka2wj3RIhUfo4/dDrzMA0GCSqG
SIb3DQEBCwUAA4IBAQBcDnjWh8Mx6yaS/OvBOYZprYy5Su0tn+YHiN0czpjVw+zl
NUt2YmRSA/g6xks04CYx+UAL/xnvRcxXd17Ni7eWiROxvgQvBo5nScVkFPq2IIP5
8aj7LoHR1MUeXfiNqf1JoSlgpRV47wv/+jZD0hmbt1rC2NJp0ZU8OHmt2GWk0jmM
MK72D/pyCUfHetBzPpU9M0cNiukjMUdIL+U7+CXDgKsfdFHcQ76ebWyka7vRSXTs
lBMa2g20Atwz2Hj7tEEAZ74ioQ9029RAlUSNipACe31YdT4/BBWIqHPpeDFkp8W0
9v4jeTX/2kMBXkjzMfKjhpooa+bFFFLogLeX3P4W
-----END CERTIFICATE-----

Binary file not shown.

Binary file not shown.

Binary file not shown.

149
kernel-std/files/check-kabi Executable file
View File

@ -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 <jcm@redhat.com>
# 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 <jcm@redhat.com>"
__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)

View File

@ -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"

View File

@ -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

View File

@ -0,0 +1,154 @@
#! /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-<arch>.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

View File

@ -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

View File

@ -0,0 +1,20 @@
#!/bin/sh
# Adjusts the configuration options to build the variants correctly
#
# arg1: are we only generating debug configs
DEBUGBUILDSENABLED=$1
if [ -z $1 ]; then
exit 1
fi
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

View File

@ -0,0 +1,30 @@
#!/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} <<EOF
title ${NAME} (${kernelver}) ${VERSION}${debugname}
version ${kernelver}${debugid}
linux ${bootprefix}/vmlinuz-${kernelver}
initrd ${bootprefix}/initramfs-${kernelver}.img
options \$kernelopts
grub_users \$grub_users
grub_arg --unrestricted
grub_class kernel${variant}
EOF

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -46,7 +46,6 @@ CONFIG_FAT_FS=y
CONFIG_VFAT_FS=y
CONFIG_NLS_ISO8859_1=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_DRBD_FAULT_INJECTION=y
# CONFIG_GENERIC_CPU is not set
CONFIG_MCORE2=y
# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
@ -67,13 +66,9 @@ CONFIG_INTEL_IOMMU_DEFAULT_ON=y
# Turn off network drivers that we want
# to build out-of-tree
# CONFIG_E1000E is not set
# CONFIG_I40E is not set
# CONFIG_I40EVF is not set
# CONFIG_IXGB is not set
# CONFIG_IXGBE is not set
# CONFIG_IXGBEVF is not set
# CONFIG_ICE is not set
# CONFIG_I40EVF is not set
# TPM built-in driver
CONFIG_TCG_TPM=m
@ -135,7 +130,6 @@ CONFIG_DP83640_PHY=y
# CONFIG_BT is not set
# CONFIG_USB_USBNET is not set
# CONFIG_MLX4_EN is not set
# CONFIG_MLX4_CORE is not set
# CONFIG_MLX5_EN is not set
# CONFIG_MLX5_CORE is not set
# CONFIG_RTL8187 is not set
@ -146,10 +140,10 @@ CONFIG_DP83640_PHY=y
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_FF_MEMLESS is not set
CONFIG_INPUT_FF_MEMLESS=y
# CONFIG_GAMEPORT is not set
# CONFIG_THUNDERBOLT is not set
# CONFIG_APPLE_PROPERTIES is not set
CONFIG_APPLE_PROPERTIES=y
# CONFIG_SSB is not set
# CONFIG_BCMA is not set
# CONFIG_MEDIA_SUPPORT is not set
@ -208,7 +202,7 @@ CONFIG_DP83640_PHY=y
# CONFIG_SENSORS_APDS990X is not set
# CONFIG_PCH_PHUB is not set
# CONFIG_EEPROM_MAX6875 is not set
# CONFIG_EEPROM_93CX6 is not set
CONFIG_EEPROM_93CX6=m
# CONFIG_CB710_CORE is not set
# CONFIG_SENSORS_LIS3_I2C is not set
# CONFIG_ALTERA_STAPL is not set
@ -315,7 +309,7 @@ CONFIG_DP83640_PHY=y
# CONFIG_SMSC_PHY is not set
# CONFIG_BCM87XX_PHY is not set
# CONFIG_ICPLUS_PHY is not set
# CONFIG_REALTEK_PHY is not set
CONFIG_REALTEK_PHY=y
# CONFIG_NATIONAL_PHY is not set
# CONFIG_STE10XP is not set
# CONFIG_LSI_ET1011C_PHY is not set
@ -615,7 +609,7 @@ CONFIG_DP83640_PHY=y
# CONFIG_USB_MON is not set
# CONFIG_USB_WUSB_CBAF is not set
# CONFIG_USB_OHCI_HCD is not set
# CONFIG_USB_ACM is not set
CONFIG_USB_ACM=m
# CONFIG_USB_PRINTER is not set
# CONFIG_USB_WDM is not set
# CONFIG_USB_TMC is not set
@ -713,7 +707,6 @@ CONFIG_DP83640_PHY=y
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
# CONFIG_LEDS_TRIGGER_CAMERA is not set
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set
# CONFIG_NET_DMA_RH_KABI is not set
# CONFIG_UIO_CIF is not set
@ -840,3 +833,786 @@ CONFIG_EEPROM_AT24=m
# qdisc for tsn
CONFIG_NET_SCH_ETF=m
CONFIG_NET_SCH_TAPRIO=m
# CONFIG_ALTERA_HWMUTEX is not set
# CONFIG_ALTERA_SYSID is not set
# CONFIG_ALTERA_ILC is not set
# CONFIG_NEWHAVEN_LCD is not set
# CONFIG_FB_ALTERA_VIP_FB2 is not set
# CONFIG_FPGA_MGR_DEBUG_FS is not set
# CONFIG_ATH5K_PCI is not set
# CONFIG_CEC_GPIO is not set
# CONFIG_AD9467 is not set
CONFIG_BLK_DEV_DRBD=m
CONFIG_DRBD_FAULT_INJECTION=y
# Infiniband and Mellanox out-of-tree module compatibility fixes
# Avoid module insertion errors due to unknown symbols and symbol
# version mismatches.
# CONFIG_NET_VENDOR_MELLANOX is not set
# CONFIG_MLX4_INFINIBAND is not set
# CONFIG_MLX5_CORE is not set
CONFIG_INFINIBAND=m
# CONFIG_INFINIBAND_ADDR_TRANS is not set
# CONFIG_INFINIBAND_BNXT_RE is not set
# CONFIG_INFINIBAND_CXGB4 is not set
# CONFIG_INFINIBAND_HFI1 is not set
# CONFIG_INFINIBAND_HNS is not set
# CONFIG_INFINIBAND_I40IW is not set
# CONFIG_INFINIBAND_IPOIB is not set
# CONFIG_INFINIBAND_ISER is not set
# CONFIG_INFINIBAND_ISERT is not set
# CONFIG_INFINIBAND_ON_DEMAND_PAGING is not set
# CONFIG_INFINIBAND_OPA_VNIC is not set
# CONFIG_INFINIBAND_QEDR is not set
# CONFIG_INFINIBAND_RDMAVT is not set
# CONFIG_INFINIBAND_SRP is not set
# CONFIG_INFINIBAND_SRPT is not set
# CONFIG_INFINIBAND_USER_ACCESS is not set
# CONFIG_INFINIBAND_USER_MAD is not set
# CONFIG_INFINIBAND_USER_MEM is not set
# CONFIG_INFINIBAND_USNIC is not set
# CONFIG_INFINIBAND_VMWARE_PVRDMA is not set
# CONFIG_ABP060MG is not set
# CONFIG_ACCESSIBILITY is not set
# CONFIG_ACER_WIRELESS is not set
# CONFIG_ACPI_ALS is not set
# CONFIG_ACPI_CMPC is not set
# CONFIG_ACPI_WMI is not set
# CONFIG_AD5272 is not set
# CONFIG_AD7766 is not set
# CONFIG_AFFS_FS is not set
# CONFIG_AK8975 is not set
# CONFIG_ALTERA_MSGDMA is not set
# CONFIG_AMILO_RFKILL is not set
# CONFIG_APPLE_GMUX is not set
# CONFIG_ASUS_WIRELESS is not set
# CONFIG_AT803X_PHY is not set
CONFIG_ATM_BR2684=m
CONFIG_ATM_CLIP=m
CONFIG_ATM_LANE=m
CONFIG_ATM=y
# CONFIG_AUXDISPLAY is not set
# CONFIG_BACKLIGHT_ARCXCNN is not set
# CONFIG_BACKLIGHT_PWM is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BH1750 is not set
# CONFIG_BIG_KEYS is not set
# CONFIG_BLK_CGROUP_IOLATENCY is not set
# CONFIG_BLK_SED_OPAL is not set
# CONFIG_BMC150_ACCEL is not set
# CONFIG_BMC150_MAGN_I2C is not set
# CONFIG_BMC150_MAGN is not set
# CONFIG_BMG160_I2C is not set
# CONFIG_BMG160 is not set
# CONFIG_BMG160_SPI is not set
# CONFIG_BMP280 is not set
# CONFIG_BTRFS_FS_POSIX_ACL is not set
# CONFIG_BTRFS_FS is not set
# CONFIG_CAN_PEAK_PCIEFD is not set
# CONFIG_CEPH_FSCACHE is not set
CONFIG_CGROUP_RDMA=y
# CONFIG_CHROME_PLATFORMS is not set
# CONFIG_CIFS_FSCACHE is not set
# CONFIG_CM32181 is not set
# CONFIG_CODA_FS is not set
# CONFIG_COMMON_CLK_SI544 is not set
# CONFIG_COMPAL_LAPTOP is not set
# CONFIG_CRC4 is not set
# CONFIG_CRYPTO_842 is not set
# CONFIG_CRYPTO_AEGIS128_AESNI_SSE2 is not set
# CONFIG_CRYPTO_AEGIS128 is not set
# CONFIG_CRYPTO_AES_TI is not set
CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m
# CONFIG_CRYPTO_DEV_VIRTIO is not set
# CONFIG_CRYPTO_KEYWRAP is not set
# CONFIG_CRYPTO_LZ4HC is not set
# CONFIG_CRYPTO_LZ4 is not set
CONFIG_CRYPTO_SHA1_SSSE3=y
CONFIG_CRYPTO_SHA256_SSSE3=y
# CONFIG_CRYPTO_SM2 is not set
# CONFIG_CRYPTO_SM4 is not set
# CONFIG_CRYPTO_ZSTD is not set
# CONFIG_DA280 is not set
# CONFIG_DA311 is not set
# CONFIG_DCDBAS is not set
CONFIG_DEBUG_INFO_DWARF4=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_DETECT_HUNG_TASK=y
# CONFIG_DHT11 is not set
# CONFIG_DMARD10 is not set
CONFIG_DM_MULTIPATH=m
# CONFIG_DRM_ANALOGIX_ANX78XX is not set
# CONFIG_DRM_CIRRUS_QEMU is not set
# CONFIG_DRM_VGEM is not set
CONFIG_DRM_VKMS=m
CONFIG_E1000E_HWTS=y
CONFIG_E1000E=m
# CONFIG_ECRYPT_FS is not set
# CONFIG_EDD is not set
# CONFIG_EEEPC_LAPTOP is not set
CONFIG_EFI_VARS=y
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
CONFIG_EFI_VARS_PSTORE=y
CONFIG_EXT4_FS=m
# CONFIG_EXTCON is not set
# CONFIG_F2FS_FS_COMPRESSION is not set
# CONFIG_F2FS_FS_LZ4 is not set
# CONFIG_F2FS_FS_LZORLE is not set
# CONFIG_F2FS_FS_LZO is not set
# CONFIG_F2FS_FS is not set
# CONFIG_F2FS_FS_POSIX_ACL is not set
# CONFIG_F2FS_FS_SECURITY is not set
# CONFIG_F2FS_FS_XATTR is not set
# CONFIG_F2FS_FS_ZSTD is not set
# CONFIG_F2FS_STAT_FS is not set
# CONFIG_FB_VGA16 is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FPGA_BRIDGE is not set
# CONFIG_FPGA_DFL_AFU is not set
# CONFIG_FPGA_DFL_FME_BRIDGE is not set
# CONFIG_FPGA_DFL_FME is not set
# CONFIG_FPGA_DFL_FME_MGR is not set
# CONFIG_FPGA_DFL_FME_REGION is not set
# CONFIG_FPGA_DFL is not set
# CONFIG_FPGA_DFL_PCI is not set
# CONFIG_FPGA is not set
# CONFIG_FPGA_MGR_ALTERA_CVP is not set
# CONFIG_FPGA_MGR_ALTERA_PS_SPI is not set
# CONFIG_FPGA_MGR_ICE40_SPI is not set
# CONFIG_FPGA_MGR_MACHXO2_SPI is not set
# CONFIG_FPGA_MGR_XILINX_SPI is not set
# CONFIG_FPGA_MGR_ZYNQ_FPGA is not set
# CONFIG_FPGA_REGION is not set
# CONFIG_FSCACHE_OBJECT_LIST is not set
# CONFIG_FS_ENCRYPTION_INLINE_CRYPT is not set
# CONFIG_FS_ENCRYPTION is not set
CONFIG_FS_MBCACHE=m
# CONFIG_FUNCTION_PROFILER is not set
CONFIG_FW_CFG_SYSFS=y
# CONFIG_GENERIC_PHY is not set
# CONFIG_GPD_POCKET_FAN is not set
# CONFIG_HAMACHI is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_HID_ACCUTOUCH is not set
# CONFIG_HID_EMS_FF is not set
# CONFIG_HID_MAYFLASH is not set
# CONFIG_HID_RETRODE is not set
CONFIG_HID_SENSOR_CUSTOM_SENSOR=m
CONFIG_HID_SENSOR_HUB=y
CONFIG_HID_SENSOR_PRESS=m
CONFIG_HID_SENSOR_PROX=m
# CONFIG_HID_STEAM is not set
# CONFIG_HID_UDRAW_PS3 is not set
# CONFIG_HPET_MMAP_DEFAULT is not set
# CONFIG_HTS221 is not set
# CONFIG_I40E is not set
# CONFIG_IEEE802154_MRF24J40 is not set
# CONFIG_IIO_BUFFER_CB is not set
# CONFIG_IIO_BUFFER_HW_CONSUMER is not set
# CONFIG_IIO_CONFIGFS is not set
# CONFIG_IIO_CROS_EC_ACCEL_LEGACY is not set
# CONFIG_IIO_INTERRUPT_TRIGGER is not set
# CONFIG_IIO_ST_ACCEL_3AXIS is not set
# CONFIG_IIO_ST_GYRO_3AXIS is not set
# CONFIG_IIO_ST_LSM6DSX is not set
# CONFIG_IIO_ST_MAGN_3AXIS is not set
# CONFIG_IIO_SW_DEVICE is not set
# CONFIG_IIO_SW_TRIGGER is not set
# CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set
# CONFIG_INPUT_PWM_BEEPER is not set
# CONFIG_INTEL_HID_EVENT is not set
# CONFIG_INTEL_INT0002_VGPIO is not set
# CONFIG_INTEL_IOMMU_SVM is not set
# CONFIG_INTEL_OAKTRAIL is not set
# CONFIG_INTEL_PMC_IPC is not set
# CONFIG_INTEL_PUNIT_IPC is not set
# CONFIG_INTEL_SMARTCONNECT is not set
# CONFIG_INTEL_TH_ACPI is not set
# CONFIG_INTEL_TH_GTH is not set
# CONFIG_INTEL_TH is not set
# CONFIG_INTEL_TH_MSU is not set
# CONFIG_INTEL_TH_PCI is not set
# CONFIG_INTEL_TH_PTI is not set
# CONFIG_INTEL_TH_STH is not set
# CONFIG_INV_MPU6050_I2C is not set
CONFIG_IOMMU_DEFAULT_PASSTHROUGH=y
CONFIG_IXGBE_DCA=y
CONFIG_IXGBE_DCB=y
CONFIG_IXGBE_HWMON=y
CONFIG_IXGBE_IPSEC=y
CONFIG_IXGBE=m
CONFIG_IXGBEVF_IPSEC=y
CONFIG_IXGBEVF=m
CONFIG_JBD2=m
# CONFIG_JFFS2_FS_DEBUG is not set
# CONFIG_JFFS2_FS is not set
# CONFIG_JFFS2_FS_POSIX_ACL is not set
# CONFIG_JFFS2_FS_SECURITY is not set
# CONFIG_JFFS2_FS_WRITEBUFFER is not set
# CONFIG_JFFS2_FS_XATTR is not set
# CONFIG_JFFS2_RTIME is not set
# CONFIG_JFFS2_SUMMARY is not set
# CONFIG_JFFS2_ZLIB is not set
# CONFIG_JFS_FS is not set
# CONFIG_JFS_POSIX_ACL is not set
# CONFIG_JFS_SECURITY is not set
# CONFIG_KEY_DH_OPERATIONS is not set
# CONFIG_KGDB is not set
# CONFIG_KXCJK1013 is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_LEDS_APU is not set
# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
# CONFIG_LEDS_CLASS_FLASH is not set
# CONFIG_LEDS_GPIO is not set
# CONFIG_LEDS_LP3952 is not set
# CONFIG_LEDS_MLXREG is not set
# CONFIG_LEDS_NIC78BX is not set
# CONFIG_LEDS_PCA9532_GPIO is not set
# CONFIG_LEDS_PCA9532 is not set
# CONFIG_LEDS_TRIGGER_ACTIVITY is not set
# CONFIG_LEDS_TRIGGER_AUDIO is not set
# CONFIG_LEDS_TRIGGER_MTD is not set
# CONFIG_LEDS_TRIGGER_NETDEV is not set
# CONFIG_LEDS_TRIGGER_PANIC is not set
# CONFIG_LEDS_TRIGGER_PATTERN is not set
# CONFIG_LEDS_USER is not set
# CONFIG_LMP91000 is not set
# CONFIG_LOGIG940_FF is not set
# CONFIG_LOGIRUMBLEPAD2_FF is not set
# CONFIG_LOGITECH_FF is not set
# CONFIG_LOGIWHEELS_FF is not set
# CONFIG_LTR501 is not set
# CONFIG_LV0104CS is not set
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
# CONFIG_MAX1363 is not set
# CONFIG_MAX30100 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
# CONFIG_MCP4018 is not set
# CONFIG_MINIX_FS is not set
# CONFIG_MLX90614 is not set
# CONFIG_MLX90632 is not set
# CONFIG_MMA7660 is not set
# CONFIG_MMC_SDHCI_XENON is not set
# CONFIG_MMC_TOSHIBA_PCI is not set
# CONFIG_MMC_WBSD is not set
# CONFIG_TRIM_UNUSED_KSYMS is not set
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_SIG_SHA256=y
# CONFIG_MODULE_SIG_SHA512 is not set
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_MODVERSIONS=y
# CONFIG_MPL115_I2C is not set
# CONFIG_MPU3050_I2C is not set
# CONFIG_MSI_LAPTOP is not set
# CONFIG_MXC4005 is not set
# CONFIG_MXC6255 is not set
CONFIG_NETFILTER_NETLINK_GLUE_CT=y
# CONFIG_NET_NCSI is not set
CONFIG_DEFAULT_FQ_CODEL=y
# CONFIG_DEFAULT_PFIFO_FAST is not set
CONFIG_CAVIUM_PTP=y
CONFIG_LIQUIDIO=m
# CONFIG_NET_VENDOR_NVIDIA is not set
CONFIG_NF_CONNTRACK_TIMEOUT=y
CONFIG_NF_CT_NETLINK_TIMEOUT=m
CONFIG_NF_CT_NETLINK_HELPER=m
# CONFIG_NFSD_BLOCKLAYOUT is not set
# CONFIG_NFSD_FLEXFILELAYOUT is not set
# CONFIG_NFS_SWAP is not set
# CONFIG_NILFS2_FS is not set
# CONFIG_NOP_USB_XCEIV is not set
# CONFIG_NTB_AMD is not set
# CONFIG_NTB_IDT is not set
# CONFIG_NTB_INTEL is not set
# CONFIG_NTB_PERF is not set
# CONFIG_NTB_PINGPONG is not set
# CONFIG_NTB_TOOL is not set
# CONFIG_NTB_TRANSPORT is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_OCFS2_FS_O2CB is not set
# CONFIG_OCFS2_FS_USERSPACE_CLUSTER is not set
# CONFIG_OPT3001 is not set
# CONFIG_ORANGEFS_FS is not set
# CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW is not set
# CONFIG_PA12203001 is not set
# CONFIG_PANASONIC_LAPTOP is not set
# CONFIG_PHY_INTEL_LGM_COMBO is not set
# CONFIG_PHY_INTEL_LGM_EMMC is not set
# CONFIG_PM_DEVFREQ is not set
CONFIG_PRINT_QUOTA_WARNING=y
CONFIG_PSI_DEFAULT_DISABLED=y
# CONFIG_PSTORE_842_COMPRESS is not set
# CONFIG_PSTORE_LZ4_COMPRESS is not set
# CONFIG_PSTORE_LZ4HC_COMPRESS is not set
# CONFIG_PSTORE_LZO_COMPRESS is not set
# CONFIG_PVPANIC is not set
# CONFIG_QLGE is not set
# CONFIG_QRTR_MHI is not set
# CONFIG_QRTR_TUN is not set
CONFIG_RAID6_PQ_BENCHMARK=y
# CONFIG_RANDOM_TRUST_CPU is not set
# CONFIG_RAS_CEC is not set
CONFIG_REGMAP_I2C=y
# CONFIG_REISERFS_FS is not set
# CONFIG_REISERFS_FS_POSIX_ACL is not set
# CONFIG_REISERFS_FS_SECURITY is not set
# CONFIG_REISERFS_FS_XATTR is not set
# CONFIG_REISERFS_PROC_INFO os mpt set
# CONFIG_REMOTEPROC is not set
# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_RPMSG_VIRTIO is not set
# CONFIG_RPR0521 is not set
# CONFIG_RTC_DRV_ABX80X is not set
# CONFIG_RTC_DRV_DS1305 is not set
# CONFIG_RTC_DRV_DS1343 is not set
# CONFIG_RTC_DRV_DS1347 is not set
# CONFIG_RTC_DRV_DS1374_WDT is not set
# CONFIG_RTC_DRV_DS1390 is not set
# CONFIG_RTC_DRV_DS1685_FAMILY is not set
CONFIG_RTC_DRV_DS3232_HWMON=y
# CONFIG_RTC_DRV_M41T93 is not set
# CONFIG_RTC_DRV_M41T94 is not set
# CONFIG_RTC_DRV_MAX6902 is not set
# CONFIG_RTC_DRV_MAX6916 is not set
# CONFIG_RTC_DRV_MCP795 is not set
# CONFIG_RTC_DRV_PCF2123 is not set
# CONFIG_RTC_DRV_PCF2127 is not set
# CONFIG_RTC_DRV_PCF85063 is not set
# CONFIG_RTC_DRV_R9701 is not set
# CONFIG_RTC_DRV_RS5C348 is not set
# CONFIG_RTC_DRV_RV3029_HWMON is not set
# CONFIG_RTC_DRV_RX8010 is not set
# CONFIG_SECONDARY_TRUSTED_KEYRING is not set
CONFIG_SECURITY_SELINUX_DISABLE=y
# CONFIG_SENSORS_TPS40422 is not set
# CONFIG_SENSORS_TPS53679 is not set
# CONFIG_SLAB_FREELIST_HARDENED is not set
# CONFIG_SONY_LAPTOP is not set
# CONFIG_SOUNDWIRE is not set
# CONFIG_SQUASHFS_LZ4 is not set
# CONFIG_SQUASHFS_ZSTD is not set
CONFIG_STACKPROTECTOR_STRONG=y
# CONFIG_STK3310 is not set
# CONFIG_STM is not set
# CONFIG_STM_PROTO_BASIC is not set
# CONFIG_STM_PROTO_SYS_T is not set
# CONFIG_STM_SOURCE_CONSOLE is not set
# CONFIG_STM_SOURCE_FTRACE is not set
# CONFIG_STM_SOURCE_HEARTBEAT is not set
# CONFIG_ST_UVIS25_I2C is not set
# CONFIG_ST_UVIS25 is not set
# CONFIG_ST_UVIS25_SPI is not set
# CONFIG_SURFACE_PRO3_BUTTON is not set
# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
# CONFIG_SYSTEM_EXTRA_CERTIFICATE_SIZE is not set
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSV_FS is not set
# CONFIG_TI_ADC128S052 is not set
# CONFIG_TI_ADS1015 is not set
# CONFIG_TOPSTAR_LAPTOP is not set
# CONFIG_TOSHIBA_BT_RFKILL is not set
# CONFIG_TOSHIBA_HAPS is not set
# CONFIG_TRACE_EVAL_MAP_FILE is not set
# CONFIG_TSL2772 is not set
CONFIG_TYPEC_DP_ALTMODE=y
CONFIG_TYPEC=y
CONFIG_TYPEC_RT1711H=y
CONFIG_TYPEC_TCPCI=y
CONFIG_TYPEC_TCPM=y
CONFIG_TYPEC_UCSI=y
# CONFIG_UBIFS_FS_AUTHENTICATION is not set
# CONFIG_UBIFS_FS is not set
# CONFIG_UBIFS_FS_SECURITY is not set
# CONFIG_UBIFS_FS_XATTR is not set
CONFIG_UCSI_ACPI=y
# CONFIG_UDMABUF is not set
# CONFIG_UFS_FS is not set
CONFIG_UIO_PDRV_GENIRQ=m
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_USB_ACM is not set
# CONFIG_USB_ATM is not set
# CONFIG_USB_CHAOSKEY is not set
# CONFIG_USB_HSIC_USB4604 is not set
# CONFIG_USB_HUB_USB251XB is not set
# CONFIG_USBIP_CORE is not set
CONFIG_USB_ROLES_INTEL_XHCI=y
CONFIG_USB_ROLE_SWITCH=y
CONFIG_USB_SERIAL_MXUPORT=m
# CONFIG_USB_SERIAL_SIMPLE is not set
# CONFIG_USB_SL811_HCD_ISO is not set
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_ULPI_BUS is not set
# CONFIG_USB_XHCI_PLATFORM is not set
# CONFIG_USB_YUREX is not set
# CONFIG_UWB_HWA is not set
# CONFIG_UWB_I1480U is not set
# CONFIG_UWB is not set
# CONFIG_UWB_WHCI is not set
CONFIG_VFIO_NOIOMMU=y
# CONFIG_VFIO_PCI_IGD is not set
# CONFIG_VFIO_PCI_VGA is not set
# CONFIG_VHOST_SCSI is not set
# CONFIG_VIRT_DRIVERS is not set
# CONFIG_VL6180 is not set
# CONFIG_XFS_ONLINE_SCRUB is not set
# CONFIG_XILINX_VCU is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_ZOPT2201 is not set
# CONFIG_6LOWPAN_NHC is not set
CONFIG_AF_RXRPC_DEBUG=y
# CONFIG_AF_KCM is not set
# CONFIG_AF_RXRPC is not set
# CONFIG_AF_RXRPC_DEBUG is not set
# CONFIG_AFS_DEBUG_CURSOR is not set
# CONFIG_AFS_DEBUG is not set
# CONFIG_AFS_FSCACHE is not set
# CONFIG_AFS_FS is not set
# CONFIG_AGP is not set
# CONFIG_ALTERA_TSE is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_AMD_XGBE_DCB is not set
# CONFIG_ATALK is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_ATA_PIIX=m
# CONFIG_ATM_BR2684 is not set
# CONFIG_ATM_CLIP is not set
# CONFIG_ATM_DRIVERS is not set
# CONFIG_ATM_ENI is not set
# CONFIG_ATM_FIRESTREAM is not set
# CONFIG_ATM_HE is not set
# CONFIG_ATM_LANE is not set
# CONFIG_ATM is not set
# CONFIG_ATM_NICSTAR is not set
# CONFIG_ATM_SOLOS is not set
# CONFIG_ATM_TCP is not set
# CONFIG_BATMAN_ADV is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BCACHE is not set
# CONFIG_BE2NET_BE2 is not set
# CONFIG_BE2NET_BE3 is not set
CONFIG_BE2NET_HWMON=y
CONFIG_BLK_DEV_DM=m
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
CONFIG_BLK_DEV_SD=m
# CONFIG_BLK_DEV_SKD is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_CAN_GS_USB is not set
# CONFIG_CAN_HI311X is not set
# CONFIG_CAN_IFI_CANFD is not set
# CONFIG_CAN_M_CAN is not set
# CONFIG_CAN_VXCAN is not set
CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y
# CONFIG_CHARGER_LT3651 is not set
# CONFIG_CHELSIO_T1_1G is not set
# CONFIG_CHELSIO_T1 is not set
CONFIG_DM_MIRROR=m
# CONFIG_DM_MULTIPATH is not set
CONFIG_DM_SNAPSHOT=m
# CONFIG_DM_UNSTRIPED is not set
# CONFIG_DM_VERITY_FEC is not set
CONFIG_DM_ZERO=m
# CONFIG_DRM_AMDGPU_CIK is not set
# CONFIG_DRM_AMDGPU_SI is not set
# CONFIG_DRM_AMDGPU_USERPTR is not set
# CONFIG_E1000E_HWTS is not set
# CONFIG_E1000E is not set
# CONFIG_E100 is not set
# CONFIG_ECHO is not set
# CONFIG_EEPROM_IDT_89HPESX is not set
# CONFIG_EQUALIZER is not set
# CONFIG_FEALNX is not set
# CONFIG_FIREWIRE_NOSY is not set
# CONFIG_FUSION_CTL is not set
# CONFIG_FUSION_FC is not set
# CONFIG_FW_LOADER_USER_HELPER is not set
# CONFIG_GPIO_EXAR is not set
# CONFIG_GPIO_IT87 is not set
# CONFIG_GPIO_PCA953X is not set
# CONFIG_GPIO_PCI_IDIO_16 is not set
CONFIG_GPIO_SYSFS=y
# CONFIG_GTP is not set
# CONFIG_HAMRADIO is not set
CONFIG_HPET_MMAP_DEFAULT=y
CONFIG_HPET_MMAP=y
CONFIG_I2C_DESIGNWARE_CORE=m
# CONFIG_I2C_DESIGNWARE_PCI is not set
CONFIG_I2C_DESIGNWARE_PLATFORM=m
# CONFIG_I2C_DESIGNWARE_SLAVE is not set
# CONFIG_I2C_MUX_LTC4306 is not set
# CONFIG_I2C_SLAVE_EEPROM is not set
# CONFIG_I2C_SLAVE is not set
# CONFIG_IBM_ASM is not set
# CONFIG_IEEE802154_ADF7242 is not set
# CONFIG_IEEE802154_AT86RF230 is not set
# CONFIG_IEEE802154_ATUSB is not set
# CONFIG_IEEE802154_CA8210 is not set
# CONFIG_IEEE802154_CC2520 is not set
# CONFIG_IEEE802154_MCR20A is not set
# CONFIG_INPUT_CMA3000_I2C is not set
# CONFIG_INPUT_CMA3000 is not set
# CONFIG_INPUT_E3X0_BUTTON is not set
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_KXTJ9 is not set
# CONFIG_INPUT_MATRIXKMAP is not set
# CONFIG_INT3406_THERMAL is not set
# CONFIG_INTEL_MEI_TXE is not set
# CONFIG_INTEL_SOC_DTS_THERMAL is not set
# CONFIG_INTEL_SOC_PMIC_BXTWC is not set
# CONFIG_INTEL_SOC_PMIC_CHTDC_TI is not set
# CONFIG_INTEL_SOC_PMIC_CHTWC is not set
# CONFIG_INTEL_SOC_PMIC_MRFLD is not set
# CONFIG_INTEL_SOC_PMIC is not set
# CONFIG_IP6_NF_MATCH_SRH is not set
# CONFIG_IP6_NF_TARGET_HL is not set
CONFIG_IPMI_PANIC_EVENT=y
CONFIG_IPMI_PANIC_STRING=y
# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
# CONFIG_IP_VS_MH is not set
# CONFIG_IXGBE_DCA is not set
# CONFIG_IXGBE_DCB is not set
# CONFIG_IXGBE_HWMON is not set
# CONFIG_IXGBE_IPSEC is not set
# CONFIG_IXGBE is not set
# CONFIG_IXGBEVF_IPSEC is not set
# CONFIG_IXGBEVF is not set
# CONFIG_IXGB is not set
# CONFIG_KEYBOARD_GPIO is not set
# CONFIG_KEYBOARD_GPIO_POLLED is not set
# CONFIG_KEYBOARD_QT1070 is not set
# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MFD_AXP20X_I2C is not set
# CONFIG_MFD_AXP20X is not set
# CONFIG_MFD_BD9571MWV is not set
# CONFIG_MFD_TPS68470 is not set
# CONFIG_MFD_WL1273_CORE is not set
CONFIG_MICREL_KS8995MA=m
CONFIG_MICROCHIP_T1_PHY=m
# CONFIG_MTD_BLOCK2MTD is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_RAW_NAND is not set
# CONFIG_MWAVE is not set
# CONFIG_NET_9P is not set
# CONFIG_NET_9P_VIRTIO is not set
# CONFIG_NET_ACT_CONNMARK is not set
# CONFIG_NET_ACT_IFE is not set
# CONFIG_NET_ACT_IPT is not set
# CONFIG_NET_DSA is not set
# CONFIG_NET_EMATCH_CANID is not set
# CONFIG_NET_EMATCH_IPT is not set
# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
# CONFIG_NETFILTER_XT_MATCH_L2TP is not set
# CONFIG_NETFILTER_XT_MATCH_TIME is not set
# CONFIG_NETFILTER_XT_MATCH_U32 is not set
# CONFIG_NETFILTER_XT_TARGET_LED is not set
# CONFIG_NET_IFE is not set
# CONFIG_NET_IFE_SKBMARK is not set
# CONFIG_NET_IFE_SKBPRIO is not set
# CONFIG_NET_IFE_SKBTCINDEX is not set
CONFIG_NET_MPLS_GSO=y
CONFIG_NET_NSH=y
# CONFIG_NET_SCH_CAKE is not set
# CONFIG_NET_SCH_CBS is not set
CONFIG_NET_SCH_DEFAULT=y
# CONFIG_DEFAULT_CODEL is not set
# CONFIG_DEFAULT_FQ_CODEL is not set
# CONFIG_DEFAULT_SFQ is not set
CONFIG_DEFAULT_PFIFO_FAST=y
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_NET_VENDOR_ADAPTEC is not set
# CONFIG_NET_VENDOR_AGERE is not set
# CONFIG_NET_VENDOR_ALTEON is not set
# CONFIG_NET_VENDOR_ARC is not set
CONFIG_NET_VENDOR_CAVIUM=y
# CONFIG_THUNDER_NIC_PF is not set
# CONFIG_THUNDER_NIC_VF is not set
# CONFIG_THUNDER_NIC_BGX is not set
# CONFIG_THUNDER_NIC_RGX is not set
# CONFIG_CAVIUM_PTP is not set
# CONFIG_LIQUIDIO is not set
# CONFIG_RESET_CONTROLLER is not set
# CONFIG_NET_VENDOR_GOOGLE is not set
CONFIG_NET_VENDOR_HUAWEI=y
CONFIG_HINIC=m
# CONFIG_NET_VENDOR_MARVELL is not set
# CONFIG_NET_VENDOR_NATSEMI is not set
# CONFIG_NET_VENDOR_RDC is not set
# CONFIG_NET_VENDOR_SILAN is not set
# CONFIG_NET_VENDOR_SIS is not set
# CONFIG_NET_VENDOR_SMSC is not set
# CONFIG_NET_VENDOR_STMICRO is not set
# CONFIG_NET_VENDOR_SUN is not set
# CONFIG_NET_VENDOR_TEHUTI is not set
# CONFIG_NET_VENDOR_TI is not set
# CONFIG_NET_VENDOR_VIA is not set
# CONFIG_NET_VENDOR_WIZNET is not set
# CONFIG_NFC_DIGITAL is not set
# CONFIG_NFC_HCI is not set
# CONFIG_NFC is not set
# CONFIG_NFC_MEI_PHY is not set
# CONFIG_NFC_MICROREAD_I2C is not set
# CONFIG_NFC_MICROREAD is not set
# CONFIG_NFC_MICROREAD_MEI is not set
# CONFIG_NFC_MRVL is not set
# CONFIG_NFC_MRVL_USB is not set
# CONFIG_NFC_NCI is not set
# CONFIG_NFC_NCI_SPI is not set
# CONFIG_NFC_NXP_NCI_I2C is not set
# CONFIG_NFC_NXP_NCI is not set
# CONFIG_NFC_PN533_I2C is not set
# CONFIG_NFC_PN533 is not set
# CONFIG_NFC_PN533_USB is not set
# CONFIG_NFC_PN544_I2C is not set
# CONFIG_NFC_PN544 is not set
# CONFIG_NFC_PN544_MEI is not set
# CONFIG_NFC_PORT100 is not set
# CONFIG_NFC_SHDLC is not set
# CONFIG_NFC_SIM is not set
# CONFIG_NFC_ST21NFCA_I2C is not set
# CONFIG_NFC_ST21NFCA is not set
CONFIG_NFP_APP_ABM_NIC=y
# CONFIG_NIC7018_WDT is not set
# CONFIG_PATA_ACPI is not set
# CONFIG_PATA_CMD640_PCI is not set
# CONFIG_PATA_EFAR is not set
# CONFIG_PATA_MPIIX is not set
# CONFIG_PATA_NS87410 is not set
# CONFIG_PATA_NS87415 is not set
# CONFIG_PATA_OPTIDMA is not set
# CONFIG_PATA_OPTI is not set
# CONFIG_PATA_TRIFLEX is not set
# CONFIG_PATA_WINBOND is not set
# CONFIG_PCENGINES_APU2 is not set
# CONFIG_PCNET32 is not set
# CONFIG_PINCTRL_CHERRYVIEW is not set
# CONFIG_PINCTRL_EMMITSBURG is not set
# CONFIG_PINCTRL_JASPERLAKE is not set
# CONFIG_PINCTRL_TIGERLAKE is not set
# CONFIG_RDS is not set
# CONFIG_REALTEK_PHY is not set
CONFIG_REGMAP_I2C=m
# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
# CONFIG_REGULATOR_MAX77650 is not set
# CONFIG_REGULATOR_MP5416 is not set
# CONFIG_REGULATOR_MP886X is not set
# CONFIG_REGULATOR_RT4801 is not set
# CONFIG_REGULATOR_RTMV20 is not set
# CONFIG_REGULATOR_VCTRL is not set
# CONFIG_REGULATOR is not set
CONFIG_RENESAS_PHY=m
# CONFIG_RFKILL_GPIO is not set
CONFIG_ROCKCHIP_PHY=m
CONFIG_SATA_AHCI=m
# CONFIG_SATA_INIC162X is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AM53C974 is not set
# CONFIG_SCSI_BFA_FC is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DC395x is not set
CONFIG_SCSI_DH_ALUA=y
CONFIG_SCSI_DH_EMC=y
CONFIG_SCSI_DH_HP_SW=y
CONFIG_SCSI_DH_RDAC=y
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_ESAS2R is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_IPR is not set
CONFIG_SCSI_MVSAS_DEBUG=y
# CONFIG_SCSI_MVSAS_TASKLET is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_SNIC is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_WD719X is not set
# CONFIG_SENSORS_AD7314 is not set
# CONFIG_SENSORS_ADC128D818 is not set
# CONFIG_SENSORS_ADCXX is not set
# CONFIG_SENSORS_ADS7871 is not set
# CONFIG_SENSORS_ADT7310 is not set
# CONFIG_SENSORS_ASPEED is not set
# CONFIG_SENSORS_FTSTEUTATES is not set
# CONFIG_SENSORS_G762 is not set
# CONFIG_SENSORS_INA3221 is not set
# CONFIG_SENSORS_LM70 is not set
# CONFIG_SENSORS_LTC2945 is not set
# CONFIG_SENSORS_LTC2990 is not set
# CONFIG_SENSORS_LTC3815 is not set
# CONFIG_SENSORS_LTC4222 is not set
# CONFIG_SENSORS_LTC4260 is not set
# CONFIG_SENSORS_MAX1111 is not set
# CONFIG_SENSORS_MAX20751 is not set
# CONFIG_SENSORS_MAX31722 is not set
# CONFIG_SENSORS_MAX31790 is not set
# CONFIG_SENSORS_NCT6683 is not set
# CONFIG_SENSORS_NCT7802 is not set
# CONFIG_SENSORS_NCT7904 is not set
# CONFIG_SENSORS_POWR1220 is not set
# CONFIG_SENSORS_SHT3x is not set
# CONFIG_SENSORS_SHTC1 is not set
# CONFIG_SENSORS_TC654 is not set
# CONFIG_SENSORS_TC74 is not set
# CONFIG_SENSORS_TMP103 is not set
# CONFIG_SENSORS_TMP108 is not set
# CONFIG_SENSORS_W83773G is not set
CONFIG_SERIAL_8250_EXAR=y
CONFIG_SERIAL_8250_LPSS=y
# CONFIG_SERIAL_8250_RT288X is not set
# CONFIG_SERIAL_SC16IS7XX is not set
# CONFIG_SERIAL_SC16IS7XX_SPI is not set
# CONFIG_SFC_FALCON is not set
# CONFIG_SPI_PXA2XX is not set
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TCG_TIS_SPI_CR50 is not set
# CONFIG_TCG_TIS_SPI is not set
# CONFIG_TCG_VTPM_PROXY is not set
# CONFIG_TCM_FC is not set
# CONFIG_TCM_QLA2XXX is not set
# CONFIG_THERMAL_GOV_BANG_BANG is not set
# CONFIG_USB_LGM_PHY is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_VIA_RHINE_MMIO is not set
# CONFIG_VIA_VELOCITY is not set
# CONFIG_W1_CON is not set
# CONFIG_W1 is not set
# CONFIG_W1_MASTER_DS2482 is not set
# CONFIG_W1_MASTER_DS2490 is not set
# CONFIG_W1_SLAVE_DS2405 is not set
# CONFIG_W1_SLAVE_DS2406 is not set
# CONFIG_W1_SLAVE_DS2408 is not set
# CONFIG_W1_SLAVE_DS2413 is not set
# CONFIG_W1_SLAVE_DS2423 is not set
# CONFIG_W1_SLAVE_DS2430 is not set
# CONFIG_W1_SLAVE_DS2431 is not set
# CONFIG_W1_SLAVE_DS2433_CRC is not set
# CONFIG_W1_SLAVE_DS2433 is not set
# CONFIG_W1_SLAVE_DS2438 is not set
# CONFIG_W1_SLAVE_DS2780 is not set
# CONFIG_W1_SLAVE_DS2781 is not set
# CONFIG_W1_SLAVE_DS2805 is not set
# CONFIG_W1_SLAVE_DS28E04 is not set
# CONFIG_W1_SLAVE_SMEM is not set
# CONFIG_W1_SLAVE_THERM is not set
# CONFIG_WIZNET_W5100 is not set
# CONFIG_WIZNET_W5100_SPI is not set
# CONFIG_WIZNET_W5300 is not set
# CONFIG_WLAN_VENDOR_INTERSIL is not set
# CONFIG_WLAN_VENDOR_RSI is not set
# CONFIG_WLAN_VENDOR_ST is not set
# CONFIG_WLAN_VENDOR_TI is not set
# CONFIG_WLAN_VENDOR_ZYDAS is not set
# CONFIG_XILLYBUS is not set
# CONFIG_XILLYBUS_PCIE is not set
CONFIG_ZRAM_WRITEBACK=y

72
kernel-std/files/merge.pl Executable file
View File

@ -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 (<FILE>) {
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 (<FILE2>) {
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;

View File

@ -0,0 +1,56 @@
#!/bin/bash
buildroot="$1"
kernel_base="$2"
blacklist()
{
cat > "$buildroot/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()
{
if modinfo "$1" | grep -q '^alias:\s\+net-'; then
mod="${1##*/}"
mod="${mod%.ko*}"
echo "$mod has an alias that allows auto-loading. Blacklisting."
blacklist "$mod"
fi
}
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
}
[ -d "$buildroot/etc/modprobe.d/" ] || mkdir -p "$buildroot/etc/modprobe.d/"
find "$buildroot/$kernel_base/extra" -name "*.ko*" | \
foreachp check_blacklist
# 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 $buildroot/$kernel_base/extra/drivers/block/floppy.ko* ]; then
blacklist "floppy"
fi

View File

@ -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

81
kernel-std/files/mod-extra.sh Executable file
View File

@ -0,0 +1,81 @@
#! /bin/bash
Dir=$1
List=$2
Dest="extra"
# Destination was specified on the command line
test -n "$3" && Dest="$3"
pushd $Dir
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")
# NB: this loop runs 2000+ iterations. Try to be fast.
NPROC=`nproc`
[ -z "$NPROC" ] && NPROC=1
cat modnames | xargs -r -n1 -P $NPROC sh -c '
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-extra 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
' DUMMYARG0 # xargs appends MODNAME, which becomes $dep in the script above
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
# now move the modules into the extra/ directory
for mod in `cat dep2.list`; do
newpath=`dirname $mod | sed -e "s/kernel\\//$Dest\//"`
mkdir -p $newpath
mv $mod $newpath
done
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 is modules-extra.
for mod in `cat ${Dir}/dep2.list`; do
modfile=`basename $mod | sed -e 's/.ko/.mod/'`
rm .tmp_versions/$modfile
done
pushd $Dir
rm modnames dep.list dep2.list req.list req2.list
rm "$ListName" modules2.list modules3.list
popd

View File

@ -0,0 +1,4 @@
mac80211_hwsim
netdevsim
pktgen
rocker

37
kernel-std/files/mod-sign.sh Executable file
View File

@ -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

31
kernel-std/files/parallel_xz.sh Executable file
View File

@ -0,0 +1,31 @@
#!/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<something> - warn and ignore
echo "parallel_xz: warning: unrecognized argument: '$1'"
else
procgroup="$N"
fi
shift
done
#This seems to cause problems with large numbers
if (( $procgroup > 6 )); then
procgroup=6
fi
# 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

View File

@ -0,0 +1,316 @@
#!/bin/bash
#
# This script takes the merged config files and processes them through oldconfig
# and listnewconfig
#
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"
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
if test -s .mismatches
then
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 `ls $tmpdir`; do
[[ -e "$tmpdir/$f" ]] || break
cp $tmpdir/$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 ${cfgtmp}
else
mv ${cfgtmp} ${cfg}
fi
rm ${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)"
OUTPUT_DIR="$PWD"
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

View File

@ -0,0 +1,16 @@
[ req ]
default_bits = 3072
distinguished_name = req_distinguished_name
prompt = no
x509_extensions = myexts
[ req_distinguished_name ]
O = Starlingx
CN = Starlingx kernel signing key
emailAddress = security@starlingx.org
[ myexts ]
basicConstraints=critical,CA:FALSE
keyUsage=digitalSignature
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid