Merge branch 'c9-beta' into a9-beta

This commit is contained in:
eabdullin 2022-10-17 13:46:21 +03:00
commit 4388b32eb7
14 changed files with 16825 additions and 223 deletions

2
.gitignore vendored
View File

@ -1,3 +1,3 @@
SOURCES/linux-5.14.0-70.3.1.rt21.73.el9_0.tar.xz SOURCES/linux-5.14.0-160.rt21.160.el9.tar.xz
SOURCES/rheldup3.x509 SOURCES/rheldup3.x509
SOURCES/rhelkpatch1.x509 SOURCES/rhelkpatch1.x509

View File

@ -1,3 +1,3 @@
1bb6e9c4bbf7881744a15dd372cc003882e634fd SOURCES/linux-5.14.0-70.3.1.rt21.73.el9_0.tar.xz 5e68b5496975d875cbd50e787dbc44227df5465c SOURCES/linux-5.14.0-160.rt21.160.el9.tar.xz
95b9b811c7b0a6c98b2eafc4e7d6d24f2cb63289 SOURCES/rheldup3.x509 95b9b811c7b0a6c98b2eafc4e7d6d24f2cb63289 SOURCES/rheldup3.x509
d90885108d225a234a5a9d054fc80893a5bd54d0 SOURCES/rhelkpatch1.x509 d90885108d225a234a5a9d054fc80893a5bd54d0 SOURCES/rhelkpatch1.x509

View File

@ -1,5 +1,5 @@
RHEL_MAJOR = 9 RHEL_MAJOR = 9
RHEL_MINOR = 0 RHEL_MINOR = 1
# #
# RHEL_RELEASE # RHEL_RELEASE
@ -12,7 +12,7 @@ RHEL_MINOR = 0
# #
# Use this spot to avoid future merge conflicts. # Use this spot to avoid future merge conflicts.
# Do not trim this comment. # Do not trim this comment.
RHEL_RELEASE = 70.3.1 RHEL_RELEASE = 160
# #
# ZSTREAM # ZSTREAM
@ -34,7 +34,7 @@ RHEL_RELEASE = 70.3.1
# (when you give RHDISTGIT_BRANCH on the command line, in which case the Z # (when you give RHDISTGIT_BRANCH on the command line, in which case the Z
# number will be incremented instead of the Y). # number will be incremented instead of the Y).
# #
ZSTREAM = yes ZSTREAM ?= no
# #
# Early y+1 numbering # Early y+1 numbering
@ -66,4 +66,4 @@ ifneq ("$(ZSTREAM)", "yes")
endif endif
endif endif
RTBUILD:=.73 RTBUILD:=.160

View File

@ -41,7 +41,8 @@ def load_symvers(symvers, filename):
break break
if in_line == "\n": if in_line == "\n":
continue continue
checksum, symbol, directory, type = in_line.split() checksum, symbol, directory, type, *ns = in_line.split()
ns = ns[0] if ns else None
symvers[symbol] = in_line[0:-1] symvers[symbol] = in_line[0:-1]
@ -57,7 +58,8 @@ def load_kabi(kabi, filename):
break break
if in_line == "\n": if in_line == "\n":
continue continue
checksum, symbol, directory, type = in_line.split() checksum, symbol, directory, type, *ns = in_line.split()
ns = ns[0] if ns else None
kabi[symbol] = in_line[0:-1] kabi[symbol] = in_line[0:-1]
@ -69,11 +71,14 @@ def check_kabi(symvers, kabi):
warn = 0 warn = 0
changed_symbols = [] changed_symbols = []
moved_symbols = [] moved_symbols = []
ns_symbols = []
for symbol in kabi: for symbol in kabi:
abi_hash, abi_sym, abi_dir, abi_type = kabi[symbol].split() abi_hash, abi_sym, abi_dir, abi_type, *abi_ns = kabi[symbol].split()
abi_ns = abi_ns[0] if abi_ns else None
if symbol in symvers: if symbol in symvers:
sym_hash, sym_sym, sym_dir, sym_type = symvers[symbol].split() sym_hash, sym_sym, sym_dir, sym_type, *sym_ns = symvers[symbol].split()
sym_ns = sym_ns[0] if sym_ns else None
if abi_hash != sym_hash: if abi_hash != sym_hash:
fail = 1 fail = 1
changed_symbols.append(symbol) changed_symbols.append(symbol)
@ -81,6 +86,10 @@ def check_kabi(symvers, kabi):
if abi_dir != sym_dir: if abi_dir != sym_dir:
warn = 1 warn = 1
moved_symbols.append(symbol) moved_symbols.append(symbol)
if abi_ns != sym_ns:
warn = 1
ns_symbols.append(symbol)
else: else:
fail = 1 fail = 1
changed_symbols.append(symbol) changed_symbols.append(symbol)
@ -96,6 +105,7 @@ def check_kabi(symvers, kabi):
if warn: if warn:
print("*** WARNING - ABI SYMBOLS MOVED ***") print("*** WARNING - ABI SYMBOLS MOVED ***")
if moved_symbols:
print("") print("")
print("The following symbols moved (typically caused by moving a symbol from being") 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("provided by the kernel vmlinux out to a loadable module):")
@ -103,6 +113,13 @@ def check_kabi(symvers, kabi):
for symbol in moved_symbols: for symbol in moved_symbols:
print(symbol) print(symbol)
print("") print("")
if ns_symbols:
print("")
print("The following symbols changed symbol namespaces:")
print("")
for symbol in ns_symbols:
print(symbol)
print("")
"""Halt the build, if we got errors and/or warnings. In either case, """Halt the build, if we got errors and/or warnings. In either case,
double-checkig is required to avoid introducing / concealing double-checkig is required to avoid introducing / concealing

View File

@ -25,6 +25,8 @@ netdrvs="appletalk can dsa hamradio ieee802154 irda ppp slip usb wireless"
ethdrvs="3com adaptec alteon amd aquantia atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti wiznet xircom" ethdrvs="3com adaptec alteon amd aquantia atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti wiznet xircom"
cryptdrvs="bcm caam cavium chelsio hisilicon marvell qat"
inputdrvs="gameport tablet touchscreen" inputdrvs="gameport tablet touchscreen"
scsidrvs="aacraid aic7xxx aic94xx be2iscsi bfa bnx2i bnx2fc csiostor cxgbi esas2r fcoe fnic hisi_sas isci libsas lpfc megaraid mpt2sas mpt3sas mvsas pm8001 qla2xxx qla4xxx sym53c8xx_2 ufs qedf" scsidrvs="aacraid aic7xxx aic94xx be2iscsi bfa bnx2i bnx2fc csiostor cxgbi esas2r fcoe fnic hisi_sas isci libsas lpfc megaraid mpt2sas mpt3sas mvsas pm8001 qla2xxx qla4xxx sym53c8xx_2 ufs qedf"
@ -100,6 +102,12 @@ do
filter_dir $1 drivers/net/ethernet/${eth} filter_dir $1 drivers/net/ethernet/${eth}
done done
# Filter the crypto drivers
for crypt in ${cryptdrvs}
do
filter_dir $1 drivers/crypto/${crypt}
done
# SCSI # SCSI
for scsi in ${scsidrvs} for scsi in ${scsidrvs}
do do

View File

@ -3,4 +3,4 @@ product_versions:
- rhel-9 - rhel-9
decision_context: osci_compose_gate decision_context: osci_compose_gate
rules: rules:
- !PassingTestCaseRule {test_case_name: manual.sst_kernel_maintainers.kernel-rt.final} - !PassingTestCaseRule {test_case_name: cki.tier1-x86_64.functional}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -43,3 +43,7 @@ test_klp_state2
test_klp_state3 test_klp_state3
torture torture
refscale refscale
rcuscale
test_vmalloc
test_hmm
mtty

View File

@ -2,3 +2,4 @@
CONFIG_GCOV_KERNEL=y CONFIG_GCOV_KERNEL=y
CONFIG_GCOV_PROFILE_ALL=y CONFIG_GCOV_PROFILE_ALL=y
# CONFIG_GCOV_PROFILE_FTRACE is not set # CONFIG_GCOV_PROFILE_FTRACE is not set
# CONFIG_OPEN_DICE is not set

View File

@ -60,6 +60,9 @@ switch_to_toplevel()
checkoptions() checkoptions()
{ {
count=$3
variant=$4
/usr/bin/awk ' /usr/bin/awk '
/is not set/ { /is not set/ {
@ -82,14 +85,14 @@ checkoptions()
print "Found "a[1]"="a[2]" after generation, had " a[1]"="configs[a[1]]" in Source tree"; print "Found "a[1]"="a[2]" after generation, had " a[1]"="configs[a[1]]" in Source tree";
} }
} }
' "$1" "$2" > .mismatches ' "$1" "$2" > .mismatches${count}
checkoptions_error=false checkoptions_error=false
if test -s .mismatches if test -s .mismatches${count}
then then
while read -r LINE while read -r LINE
do do
if find ./ -name "$(echo "$LINE" | awk -F "=" ' { print $1 } ' | awk ' { print $2 }')" -print0 | xargs -0 grep ^ | grep -q "process_configs_known_broken"; then if find "${REDHAT}"/configs -name "$(echo "$LINE" | awk -F "=" ' { print $1 } ' | awk ' { print $2 }')" -print0 | xargs -0 grep ^ | grep -q "process_configs_known_broken"; then
# This is a known broken config. # This is a known broken config.
# See script help warning. # See script help warning.
checkoptions_error=false checkoptions_error=false
@ -97,14 +100,13 @@ checkoptions()
checkoptions_error=true checkoptions_error=true
break break
fi fi
done < .mismatches done < .mismatches${count}
! $checkoptions_error && return ! $checkoptions_error && return
echo "Error: Mismatches found in configuration files" sed -i "1s/^/Error: Mismatches found in configuration files for ${arch} ${variant}\n/" .mismatches${count}
cat .mismatches else
RETURNCODE=1 rm -f .mismatches${count}
[ "$CONTINUEONERROR" ] || exit 1
fi fi
} }
@ -218,56 +220,62 @@ function commit_new_configs()
git commit -m "[redhat] AUTOMATIC: New configs" git commit -m "[redhat] AUTOMATIC: New configs"
} }
function process_configs() function process_config()
{ {
# assume we are in $source_tree/configs, need to get to top level local cfg
pushd "$(switch_to_toplevel)" &>/dev/null local arch
local cfgtmp
local cfgorig
local count
local variant
cfg=$1
count=$2
for cfg in "$SCRIPT_DIR/${PACKAGE_NAME}${KVERREL}${SUBARCH}"*.config
do
arch=$(head -1 "$cfg" | cut -b 3-) arch=$(head -1 "$cfg" | cut -b 3-)
cfgtmp="${cfg}.tmp"
cfgorig="${cfg}.orig"
cat "$cfg" > "$cfgorig"
if [ "$arch" = "EMPTY" ] if [ "$arch" = "EMPTY" ]
then then
# This arch is intentionally left blank # This arch is intentionally left blank
continue return
fi fi
echo -n "Processing $cfg ... "
make ${MAKEOPTS} ARCH="$arch" CROSS_COMPILE=$(get_cross_compile $arch) KCONFIG_CONFIG="$cfgorig" listnewconfig >& .listnewconfig variant=$(basename "$cfg" | cut -d"-" -f3- | cut -d"." -f1)
grep -E 'CONFIG_' .listnewconfig > .newoptions
if test -n "$NEWOPTIONS" && test -s .newoptions cfgtmp="${cfg}.tmp"
cfgorig="${cfg}.orig"
cat "$cfg" > "$cfgorig"
echo "Processing $cfg ... "
make ${MAKEOPTS} ARCH="$arch" CROSS_COMPILE=$(get_cross_compile $arch) KCONFIG_CONFIG="$cfgorig" listnewconfig >& .listnewconfig${count}
grep -E 'CONFIG_' .listnewconfig${count} > .newoptions${count}
if test -n "$NEWOPTIONS" && test -s .newoptions${count}
then then
echo "Found unset config items, please set them to an appropriate value" echo "Found unset config items in ${arch} ${variant}, please set them to an appropriate value" >> .errors${count}
cat .newoptions cat .newoptions${count} >> .errors${count}
rm .newoptions rm .newoptions${count}
RETURNCODE=1 RETURNCODE=1
[ "$CONTINUEONERROR" ] || exit 1
fi fi
rm .newoptions rm .newoptions${count}
grep -E 'config.*warning' .listnewconfig > .warnings grep -E 'config.*warning' .listnewconfig${count} > .warnings${count}
if test -n "$CHECKWARNINGS" && test -s .warnings if test -n "$CHECKWARNINGS" && test -s .warnings${count}
then then
echo "Found misconfigured config items, please set them to an appropriate value" echo "Found misconfigured config items in ${arch} ${variant}, please set them to an appropriate value" >> .errors${count}
cat .warnings cat .warnings${count} >> .errors${count}
rm .warnings rm .warnings${count}
RETURNCODE=1
[ "$CONTINUEONERROR" ] || exit 1
fi fi
rm .warnings rm .warnings${count}
rm .listnewconfig rm .listnewconfig${count}
make ${MAKEOPTS} ARCH="$arch" CROSS_COMPILE=$(get_cross_compile $arch) KCONFIG_CONFIG="$cfgorig" olddefconfig > /dev/null || exit 1 make ${MAKEOPTS} ARCH="$arch" CROSS_COMPILE=$(get_cross_compile $arch) KCONFIG_CONFIG="$cfgorig" olddefconfig > /dev/null || exit 1
echo "# $arch" > "$cfgtmp" echo "# $arch" > "$cfgtmp"
cat "$cfgorig" >> "$cfgtmp" cat "$cfgorig" >> "$cfgtmp"
if test -n "$CHECKOPTIONS" if test -n "$CHECKOPTIONS"
then then
checkoptions "$cfg" "$cfgtmp" checkoptions "$cfg" "$cfgtmp" "$count" "$variant"
fi fi
# if test run, don't overwrite original # if test run, don't overwrite original
if test -n "$TESTRUN" if test -n "$TESTRUN"
@ -277,16 +285,54 @@ function process_configs()
mv "$cfgtmp" "$cfg" mv "$cfgtmp" "$cfg"
fi fi
rm -f "$cfgorig" rm -f "$cfgorig"
echo "done" echo "Processing $cfg complete"
}
function process_configs()
{
# assume we are in $source_tree/configs, need to get to top level
pushd "$(switch_to_toplevel)" &>/dev/null
# The next line is throwaway code for transition to parallel
# processing. Leaving this line in place is harmless, but it can be
# removed the next time anyone updates this function.
[ -f .mismatches ] && rm -f .mismatches
count=0
for cfg in "$SCRIPT_DIR/${PACKAGE_NAME}${KVERREL}${SUBARCH}"*.config
do
if [ "$count" -eq 0 ]; then
# do the first one by itself so that tools are built
process_config "$cfg" "$count"
fi
process_config "$cfg" "$count" &
waitpids[${count}]=$!
((count++))
while [ "$(jobs | grep Running | wc -l)" -ge $RHJOBS ]; do :; done
done done
for pid in ${waitpids[*]}; do
wait ${pid}
done
rm "$SCRIPT_DIR"/*.config*.old rm "$SCRIPT_DIR"/*.config*.old
if ls .errors* 1> /dev/null 2>&1; then
RETURNCODE=1
cat .errors*
rm .errors* -f
fi
if ls .mismatches* 1> /dev/null 2>&1; then
RETURNCODE=1
cat .mismatches*
rm .mismatches* -f
fi
popd > /dev/null popd > /dev/null
echo "Processed config files are in $SCRIPT_DIR" [ $RETURNCODE -eq 0 ] && echo "Processed config files are in $SCRIPT_DIR"
} }
CHECKOPTIONS="" CHECKOPTIONS=""
CONTINUEONERROR=""
NEWOPTIONS="" NEWOPTIONS=""
TESTRUN="" TESTRUN=""
CHECKWARNINGS="" CHECKWARNINGS=""
@ -301,7 +347,6 @@ do
case $key in case $key in
-a) -a)
CHECKOPTIONS="x" CHECKOPTIONS="x"
CONTINUEONERROR="x"
NEWOPTIONS="x" NEWOPTIONS="x"
CHECKWARNINGS="x" CHECKWARNINGS="x"
;; ;;
@ -311,9 +356,6 @@ do
-h) -h)
usage usage
;; ;;
-i)
CONTINUEONERROR="x"
;;
-n) -n)
NEWOPTIONS="x" NEWOPTIONS="x"
;; ;;
@ -343,6 +385,7 @@ PACKAGE_NAME="${1:-kernel-rt}" # defines the package name used
KVERREL="$(test -n "$2" && echo "-$2" || echo "")" KVERREL="$(test -n "$2" && echo "-$2" || echo "")"
SUBARCH="$(test -n "$3" && echo "-$3" || echo "")" SUBARCH="$(test -n "$3" && echo "-$3" || echo "")"
FLAVOR="$(test -n "$4" && echo "-$4" || echo "-common")" FLAVOR="$(test -n "$4" && echo "-$4" || echo "-common")"
RHJOBS="$(test -n "$5" && echo "$5" || nproc --all)"
SCRIPT=$(readlink -f "$0") SCRIPT=$(readlink -f "$0")
SCRIPT_DIR=$(dirname "$SCRIPT") SCRIPT_DIR=$(dirname "$SCRIPT")

View File

@ -19,6 +19,12 @@ emptyrpm:
- kernel-zfcpdump - kernel-zfcpdump
- kernel-zfcpdump-devel-matched - kernel-zfcpdump-devel-matched
- kernel-zfcpdump-modules - kernel-zfcpdump-modules
patches:
ignore_list:
- linux-kernel-test.patch
- patch-5.14.0-redhat.patch
specname: specname:
match: prefix match: prefix
primary: filename primary: filename

View File

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

File diff suppressed because it is too large Load Diff