mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-23 21:51:27 +00:00
scripts: Merge r8007:8277 from trunk
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.3.x@8281 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
../linux-kernel/scripts/checkpatch.pl -f --show-types --ignore SPDX_LICENSE_TAG,LINUX_VERSION_CODE,SYMBOLIC_PERMS,CONSTANT_COMPARISON,RETURN_VOID $(list-source-files | grep -vE 'fcst/linux-patches|patch$|pdf$|png$|^ibmvstgt/|^mpt/|^qla_isp/|^mvsas_tgt/') | sed 's/^#[0-9]*: FILE: \(.*\):/\1:1:/'
|
||||
ignore=(
|
||||
CONSTANT_COMPARISON
|
||||
LINUX_VERSION_CODE
|
||||
LONG_LINE_STRING
|
||||
RETURN_VOID
|
||||
SPDX_LICENSE_TAG
|
||||
SYMBOLIC_PERMS
|
||||
)
|
||||
../linux-kernel/scripts/checkpatch.pl -f --show-types --ignore="$(echo "${ignore[@]}" | sed 's/ /,/g')" $(list-source-files | grep -vE 'fcst/linux-patches|patch$|pdf$|png$|^ibmvstgt/|^mpt/|^qla_isp/|^mvsas_tgt/') | sed 's/^#[0-9]*: FILE: \(.*\):/\1:1:/'
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
########################
|
||||
|
||||
# shellcheck source=./kernel-functions
|
||||
source $(dirname "$0")/kernel-functions
|
||||
source "$(dirname "$0")/kernel-functions"
|
||||
|
||||
function usage {
|
||||
echo "Usage: $0 [-d] [-h] [-m] [-n] [-p <dir>] [-s] [-u] <kernel version>"
|
||||
@@ -173,9 +173,10 @@ generating_upstream_patch="false"
|
||||
mpt_scst="false"
|
||||
multiple_patches="false"
|
||||
patchdir=""
|
||||
qla2x00t="true"
|
||||
qla2x00t="false"
|
||||
qla2x00t_32gbit="true"
|
||||
replace_sbug_by_bug="true"
|
||||
specialize_patch_options=(-v delete_disabled_code=1)
|
||||
specialize_patch_options=(-v "delete_disabled_code=1")
|
||||
srpt="true"
|
||||
|
||||
if [ ! -e scst ] || [ ! -e iscsi-scst ] || [ ! -e srpt ] ||
|
||||
@@ -193,7 +194,7 @@ do
|
||||
'-h') usage; exit 1;;
|
||||
'-l') shift;;
|
||||
'-m') mpt_scst="true"; shift;;
|
||||
'-n') specialize_patch_options=(-v blank_deleted_code=1)
|
||||
'-n') specialize_patch_options=(-v "blank_deleted_code=1")
|
||||
shift
|
||||
;;
|
||||
'-p') multiple_patches="true"; patchdir="$2"; shift; shift;;
|
||||
@@ -219,7 +220,7 @@ else
|
||||
fi
|
||||
|
||||
# Include fcst in the patch for kernel versions 2.6.33 and later.
|
||||
if kernel_version_le "2.6.33" "${kver}"; then
|
||||
if kernel_version_le "2.6.37" "${kver}"; then
|
||||
include_fcst="true"
|
||||
else
|
||||
include_fcst="false"
|
||||
@@ -236,15 +237,16 @@ fi
|
||||
if grep -qw scst_sysfs scst/kernel/in-tree/${scst_makefile} \
|
||||
|| [ "${generating_upstream_patch}" = "true" ];
|
||||
then
|
||||
specialize_patch_options+=(-v config_scst_proc_undefined=1)
|
||||
specialize_patch_options+=(-v "config_scst_proc_undefined=1")
|
||||
else
|
||||
include_proc_impl="true"
|
||||
fi
|
||||
if [ "${debug_specialize}" = "true" ]; then
|
||||
specialize_patch_options+=(-v debug=1)
|
||||
specialize_patch_options+=(-v "debug=1")
|
||||
fi
|
||||
if [ "${generating_upstream_patch}" = "true" ]; then
|
||||
specialize_patch_options+=(-v generating_upstream_patch_defined=1 -v config_tcp_zero_copy_transfer_completion_notification_undefined=1)
|
||||
specialize_patch_options+=(-v "generating_upstream_patch_defined=1"
|
||||
-v "config_tcp_zero_copy_transfer_completion_notification_undefined=1")
|
||||
fi
|
||||
|
||||
if [ "${multiple_patches}" = "true" ]; then
|
||||
@@ -262,7 +264,7 @@ fi
|
||||
# Patch Generation #
|
||||
####################
|
||||
|
||||
for f in fcst/linux-patches/series-${kver}*
|
||||
for f in fcst/linux-patches/series-"${kver}"*
|
||||
do
|
||||
if [ -e "$f" ]; then
|
||||
fcst_patch_series="$f"
|
||||
@@ -493,7 +495,7 @@ add_file "iscsi-scst/README_in-tree" "Documentation/scst/README.iscsi" \
|
||||
| process_patch "iscsi-scst-doc.diff"
|
||||
|
||||
|
||||
# Directory drivers/scst/qla2x00-target/
|
||||
# Directory drivers/scsi/qla2xxx/
|
||||
|
||||
if [ "${qla2x00t}" = "true" ]; then
|
||||
|
||||
@@ -514,33 +516,37 @@ if [ "${qla2x00t}" = "true" ]; then
|
||||
add_file "qla2x00t/qla2x_tgt_def.h" \
|
||||
"drivers/scsi/qla2xxx/qla2x_tgt_def.h"
|
||||
|
||||
if [ -e "qla2x00t/qla2x00-target/Makefile_in-tree-${kver}" ]
|
||||
then
|
||||
add_file "qla2x00t/qla2x00-target/Makefile_in-tree-${kver}" \
|
||||
"drivers/scst/qla2xxx-target/Makefile"
|
||||
else
|
||||
add_file "qla2x00t/qla2x00-target/Makefile_in-tree" \
|
||||
"drivers/scst/qla2xxx-target/Makefile"
|
||||
fi
|
||||
|
||||
add_file "qla2x00t/qla2x00-target/Kconfig" \
|
||||
"drivers/scst/qla2xxx-target/Kconfig"
|
||||
|
||||
for f in qla2x00t/qla2x00-target/*.[ch]; do
|
||||
[ -e "$f" ] || continue
|
||||
add_file "${f}" "drivers/scst/qla2xxx-target/${f#qla2x00t/qla2x00-target/}"
|
||||
[ -e "$f" ] &&
|
||||
add_file "${f}" "drivers/scsi/qla2xxx/${f#qla2x00t/qla2x00-target/}"
|
||||
done
|
||||
|
||||
add_file "qla2x00t/qla2x00-target/README" \
|
||||
"Documentation/scst/README.qla2x00t" \
|
||||
| process_patch "qla2x00t-doc.diff"
|
||||
|
||||
else
|
||||
elif [ "${qla2x00t_32gbit}" = "true" ]; then
|
||||
|
||||
add_empty_file "drivers/scst/qla2xxx-target/Makefile"
|
||||
download_kernel "${kver3}" || exit $?
|
||||
|
||||
add_empty_file "drivers/scst/qla2xxx-target/Kconfig"
|
||||
( cd qla2x00t-32gbit && ./generate-in-tree-patches "$1" )
|
||||
|
||||
for f in qla2x00t-32gbit/in-tree-patches/"$1"/*.patch; do
|
||||
[ -e "$f" ] || continue
|
||||
g="${f#qla2x00t-32gbit/in-tree-patches/$1/}"
|
||||
g="${g%.patch}"
|
||||
add_patch "${f}" "drivers/scsi/qla2xxx/${g}"
|
||||
done
|
||||
|
||||
for f in qla2x00t-32gbit/qla2x00-target/*.[ch]; do
|
||||
[ -e "$f" ] || continue
|
||||
add_file "${f}" "drivers/scsi/qla2xxx/${f#qla2x00t-32gbit/qla2x00-target/}"
|
||||
done
|
||||
|
||||
add_file "qla2x00t-32gbit/qla2x00-target/README" \
|
||||
"Documentation/scst/README.qla2x00t" \
|
||||
| process_patch "qla2x00t-doc.diff"
|
||||
|
||||
fi \
|
||||
| process_patch "qla2x00t.diff"
|
||||
|
||||
|
||||
@@ -42,9 +42,7 @@ target="linux-$1"
|
||||
kernel_version="$(kernel_version "$1")"
|
||||
patchlevel="$(patchlevel "$1")"
|
||||
|
||||
download_kernel "$1" || exit $?
|
||||
|
||||
extract_kernel_tree "$1" || exit $?
|
||||
download_and_extract_kernel_tree "$1" || exit $?
|
||||
|
||||
cd "${target}" || exit $?
|
||||
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# A script to prepare a patch for posting on scst-devel@sourceforge.net.
|
||||
#
|
||||
# Copyright (C) 2012 Chetan Loke <loke.chetan@gmail.com>
|
||||
# Copyright (C) 2012 Bart Van Assche <bvanassche@acm.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation, version 2
|
||||
# of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
echo "Patch description:"
|
||||
echo "Your description goes here..."
|
||||
echo
|
||||
echo "Signed-off-by: Write your name here <write-your-email-addr@your-host.com>"
|
||||
echo ---
|
||||
/usr/bin/svn diff "$@" | /usr/bin/diffstat
|
||||
echo
|
||||
/usr/bin/svn diff -x -p "$@"
|
||||
echo
|
||||
@@ -3,7 +3,8 @@
|
||||
# from kernel.org.
|
||||
|
||||
kernel_mirror="http://cdn.kernel.org/pub/linux/kernel"
|
||||
kernel_sources="$HOME/software/downloads"
|
||||
kernel_downloads="$HOME/software/downloads"
|
||||
kernel_tree="$HOME/software/linux-kernel"
|
||||
|
||||
# Whether or not kernel version $1 is lower than or equal kernel version $2.
|
||||
function kernel_version_le {
|
||||
@@ -42,7 +43,7 @@ function download_file {
|
||||
}
|
||||
|
||||
# Make sure the kernel tarball and patch file are present in directory
|
||||
# ${kernel_sources}. Download any missing files from ${kernel_mirror}.
|
||||
# ${kernel_downloads}. Download any missing files from ${kernel_mirror}.
|
||||
function download_kernel {
|
||||
local kver="$(kernel_version $1)"
|
||||
local plevel="$(patchlevel $1)"
|
||||
@@ -52,10 +53,10 @@ function download_kernel {
|
||||
[12].*) series="${series:0:3}";;
|
||||
*) series="${series/.*/}.x";;
|
||||
esac
|
||||
mkdir -p "${kernel_sources}" || return $?
|
||||
test -w "${kernel_sources}" || return $?
|
||||
mkdir -p "${kernel_downloads}" || return $?
|
||||
test -w "${kernel_downloads}" || return $?
|
||||
(
|
||||
cd "${kernel_sources}" || return $?
|
||||
cd "${kernel_downloads}" || return $?
|
||||
if [ "$plevel" = "" -o "$plevel" = "0" ] ||
|
||||
download_file "${kernel_mirror}/v$series/patch-$1.xz"
|
||||
then
|
||||
@@ -73,15 +74,15 @@ function extract_kernel_archive {
|
||||
local plevel="$(patchlevel $1)"
|
||||
local series="$1"
|
||||
|
||||
if [ -e "${kernel_sources}/linux-$1.tar.xz" ]; then
|
||||
xz -cd "${kernel_sources}/linux-$1.tar.xz" | tar xf -
|
||||
elif [ -e "${kernel_sources}/linux-$kver.tar.xz" ]; then
|
||||
xz -cd "${kernel_sources}/linux-$kver.tar.xz" | tar xf - &&
|
||||
if [ -e "${kernel_downloads}/linux-$1.tar.xz" ]; then
|
||||
xz -cd "${kernel_downloads}/linux-$1.tar.xz" | tar xf -
|
||||
elif [ -e "${kernel_downloads}/linux-$kver.tar.xz" ]; then
|
||||
xz -cd "${kernel_downloads}/linux-$kver.tar.xz" | tar xf - &&
|
||||
mv linux-$kver linux-$1
|
||||
elif [ -e "${kernel_sources}/linux-$1.tar.bz2" ]; then
|
||||
tar xjf "${kernel_sources}/linux-$1.tar.bz2"
|
||||
elif [ -e "${kernel_sources}/linux-$kver.tar.bz2" ]; then
|
||||
tar xjf "${kernel_sources}/linux-$kver.tar.bz2" &&
|
||||
elif [ -e "${kernel_downloads}/linux-$1.tar.bz2" ]; then
|
||||
tar xjf "${kernel_downloads}/linux-$1.tar.bz2"
|
||||
elif [ -e "${kernel_downloads}/linux-$kver.tar.bz2" ]; then
|
||||
tar xjf "${kernel_downloads}/linux-$kver.tar.bz2" &&
|
||||
mv linux-$kver linux-$1
|
||||
else
|
||||
return 1
|
||||
@@ -100,10 +101,10 @@ function extract_kernel_tree {
|
||||
(
|
||||
cd "${tmpdir}" || return $?
|
||||
if [ "$plevel" != "" -a "$plevel" != "0" -a \
|
||||
-e "${kernel_sources}/patch-$1.xz" ]; then
|
||||
-e "${kernel_downloads}/patch-$1.xz" ]; then
|
||||
extract_kernel_archive $kver || return $?
|
||||
mv linux-$kver linux-$1
|
||||
( cd linux-$1 && xz -cd "${kernel_sources}/patch-$1.xz" \
|
||||
( cd linux-$1 && xz -cd "${kernel_downloads}/patch-$1.xz" \
|
||||
| patch -p1 -f -s; ) \
|
||||
|| return $?
|
||||
else
|
||||
@@ -113,6 +114,12 @@ function extract_kernel_tree {
|
||||
fi
|
||||
mv "linux-$1" ".." || return $?
|
||||
cd "../linux-$1" || return $?
|
||||
)
|
||||
rmdir "${tmpdir}"
|
||||
}
|
||||
|
||||
# Patch a kernel tree where $1 is the kernel version.
|
||||
function patch_kernel {
|
||||
if [ "$1" = "2.6.29" -o "$1" = "2.6.29.1" -o "$1" = "2.6.29.2" -o "$1" = "2.6.29.3" ]
|
||||
then
|
||||
patch -f -s -p1 <<'EOF'
|
||||
@@ -321,7 +328,7 @@ index d6d65537b0d9..6aad8308a0ac 100644
|
||||
EOF
|
||||
fi
|
||||
case "$1" in
|
||||
3.[0-9].*|3.1[01345].*|3.17.*|3.19.*|4.[023567].*)
|
||||
2.6.3[6-9]*|3.[0-9]|3.[0-9].*|3.1[01345]|3.1[01345].*|3.17|3.17.*|3.19|3.19.*|4.[023567]|4.[023567].*)
|
||||
patch -p1 <<'EOF'
|
||||
From c6a385539175ebc603da53aafb7753d39089f32e Mon Sep 17 00:00:00 2001
|
||||
From: Borislav Petkov <bp@suse.de>
|
||||
@@ -383,9 +390,38 @@ index 0ed6ce300543..c324b43712f0 100644
|
||||
KBUILD_AFLAGS_MODULE := -DMODULE
|
||||
KBUILD_CFLAGS_MODULE := -DMODULE
|
||||
KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds
|
||||
EOF
|
||||
;;
|
||||
2.6.3[1-5]*)
|
||||
patch -p1 <<'EOF'
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 141da26fda4b..343ec388ae2e 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -349,12 +349,13 @@ LINUXINCLUDE := -I$(srctree)/arch/$(hdr-arch)/include -Iinclude \
|
||||
|
||||
KBUILD_CPPFLAGS := -D__KERNEL__
|
||||
|
||||
-KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
|
||||
+KBUILD_CFLAGS := $(call cc-option,-fno-PIE) \
|
||||
+ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
|
||||
-fno-strict-aliasing -fno-common \
|
||||
-Werror-implicit-function-declaration \
|
||||
-Wno-format-security \
|
||||
-fno-delete-null-pointer-checks
|
||||
-KBUILD_AFLAGS := -D__ASSEMBLY__
|
||||
+KBUILD_AFLAGS := -D__ASSEMBLY__ $(call cc-option,-fno-PIE)
|
||||
|
||||
# Read KERNELRELEASE from include/config/kernel.release (if it exists)
|
||||
KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
|
||||
EOF
|
||||
;;
|
||||
esac
|
||||
|
||||
# Use sed to patch the ____ilog2_NaN() prototype.
|
||||
sed -i 's/__attribute__((const, noreturn))/__attribute__((noreturn))/' \
|
||||
include/linux/log2.h tools/include/linux/log2.h 2>/dev/null
|
||||
|
||||
# After patch-v4.14.1[12] has been applied, the execute bit has to be
|
||||
# set for sync-check.sh since patch can't do that.
|
||||
for f in "tools/objtool/sync-check.sh"; do
|
||||
@@ -393,7 +429,19 @@ EOF
|
||||
chmod a+x "$f"
|
||||
fi
|
||||
done
|
||||
)
|
||||
rmdir "${tmpdir}"
|
||||
}
|
||||
|
||||
function download_and_extract_kernel_tree {
|
||||
if [ -e "${kernel_tree}" ]; then
|
||||
rm -rf "linux-$1"
|
||||
mkdir "linux-$1"
|
||||
(
|
||||
cd "${kernel_tree}" &&
|
||||
{ git tag -l "v$1" >/dev/null || git fetch stable; } &&
|
||||
git archive "v$1"
|
||||
) | tar -C "linux-$1" -xf-
|
||||
else
|
||||
download_kernel "$1" && extract_kernel_tree "$1"
|
||||
fi &&
|
||||
(cd linux-$1 && patch_kernel "$1")
|
||||
}
|
||||
|
||||
@@ -1,98 +0,0 @@
|
||||
# -*- mode: shell-script -*-
|
||||
# Shell functions for downloading and extracting a RHEL or RHEL clone RPM
|
||||
|
||||
# Arguments:
|
||||
# $1: Linux distribution name
|
||||
# $2: Linux distribution version (major.minor)
|
||||
# $3: architecture
|
||||
function get_srpm_urls() {
|
||||
local arch distro releasever releasevermajor releaseverminor
|
||||
|
||||
distro="$1"
|
||||
releasever="$2"
|
||||
arch="$3"
|
||||
IFS=.
|
||||
set -- "$2"
|
||||
unset IFS
|
||||
releasevermajor="$1"
|
||||
releaseverminor="$2"
|
||||
|
||||
case "$distro" in
|
||||
"CentOS"*)
|
||||
case $releasever in
|
||||
5.*|6.[01])
|
||||
echo "http://vault.centos.org/${releasever}/os/SRPMS http://vault.centos.org/${releasever}/updates/SRPMS";;
|
||||
[67].*)
|
||||
echo "http://vault.centos.org/${releasever}/os/Source/SPackages http://vault.centos.org/${releasever}/updates/Source/SPackages";;
|
||||
esac
|
||||
;;
|
||||
"Red Hat Enterprise Linux"*)
|
||||
case $releasever in
|
||||
[56].*)
|
||||
echo "http://ftp.redhat.com/pub/redhat/linux/enterprise/${releasevermajor}Server/en/os/SRPMS http://ftp.redhat.com/redhat/rhel/rc/7/Server/source/tree/Packages";;
|
||||
esac
|
||||
;;
|
||||
"Oracle Linux Server")
|
||||
echo "http://public-yum.oracle.com/repo/OracleLinux/OL${releasevermajor}/${releaseverminor}/base/${arch}/getPackageSource http://public-yum.oracle.com/repo/OracleLinux/OL${releasevermajor}/latest/${arch}/getPackageSource http://public-yum.oracle.com/repo/OracleLinux/OL${releasevermajor}/UEK/latest/${arch}/getPackageSource"
|
||||
;;
|
||||
"Scientific Linux")
|
||||
case $releasever in
|
||||
5.*)
|
||||
echo "http://ftp.scientificlinux.org/linux/scientific/$releasevermajor$releaseverminor/SRPMS/vendor";;
|
||||
6.*)
|
||||
echo "http://ftp.scientificlinux.org/linux/scientific/$releasever/SRPMS/vendor";;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
echo "Unknown type of distribution: $distro" >&2
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Arguments:
|
||||
# $1: Linux distribution name
|
||||
# $2: Linux distribution version (major.minor)
|
||||
# $3: architecture
|
||||
function get_rpm_urls() {
|
||||
local arch distro releasever releasevermajor releaseverminor
|
||||
|
||||
distro="$1"
|
||||
releasever="$2"
|
||||
arch="$3"
|
||||
IFS=.
|
||||
set -- "$2"
|
||||
unset IFS
|
||||
releasevermajor="$1"
|
||||
releaseverminor="$2"
|
||||
|
||||
case "$distro" in
|
||||
"CentOS"*)
|
||||
case $releasever in
|
||||
5.*)
|
||||
echo "http://vault.centos.org/${releasever}/os/${arch}/CentOS http://vault.centos.org/${releasever}/updates/${arch}/RPMS";;
|
||||
6.[01])
|
||||
echo "http://vault.centos.org/${releasever}/os/${arch}/Packages http://vault.centos.org/${releasever}/updates/${arch}/Packages";;
|
||||
[67].*)
|
||||
echo "http://vault.centos.org/${releasever}/os/${arch}/Packages http://vault.centos.org/${releasever}/updates/${arch}/Packages";;
|
||||
esac
|
||||
;;
|
||||
"Red Hat Enterprise Linux"*)
|
||||
echo "";;
|
||||
"Oracle Linux Server")
|
||||
echo "http://public-yum.oracle.com/repo/OracleLinux/OL${releasevermajor}/${releaseverminor}/base/${arch}/getPackageSource http://public-yum.oracle.com/repo/OracleLinux/OL${releasevermajor}/latest/${arch}/getPackageSource http://public-yum.oracle.com/repo/OracleLinux/OL${releasevermajor}/UEK/latest/${arch}/getPackageSource"
|
||||
;;
|
||||
"Scientific Linux")
|
||||
case $releasever in
|
||||
5.*)
|
||||
echo "http://ftp.scientificlinux.org/linux/scientific/$releasevermajor$releaseverminor/SRPMS/vendor";;
|
||||
6.*)
|
||||
echo "http://ftp.scientificlinux.org/linux/scientific/$releasever/SRPMS/vendor";;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
echo "Unknown distribution type: $distro" >&2
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
@@ -291,6 +291,7 @@ CONFIG_MAC80211_DRIVER_API_TRACER \
|
||||
CONFIG_MMIOTRACE \
|
||||
CONFIG_NET_DROP_MONITOR \
|
||||
CONFIG_NOP_TRACER \
|
||||
CONFIG_RETPOLINE \
|
||||
CONFIG_SCHED_TRACER \
|
||||
CONFIG_SECURITY_SELINUX \
|
||||
CONFIG_STACK_TRACER \
|
||||
@@ -298,9 +299,11 @@ CONFIG_STACK_VALIDATION \
|
||||
CONFIG_TRACEPOINTS \
|
||||
CONFIG_TRACER_MAX_TRACE \
|
||||
CONFIG_TRACING \
|
||||
CONFIG_UNWINDER_ORC \
|
||||
CONFIG_X86_32 \
|
||||
CONFIG_X86_X32 \
|
||||
"
|
||||
local enable="CONFIG_UNWINDER_FRAME_POINTER"
|
||||
|
||||
echo "Patching and configuring kernel ..."
|
||||
if [ "$ipv6" = "false" ]; then
|
||||
@@ -319,6 +322,7 @@ CONFIG_X86_X32 \
|
||||
fi &&
|
||||
make -s allmodconfig &>"${outputdir}/make-config-output.txt" &&
|
||||
for c in $disable; do sed -i.tmp "s/^$c=[ym]\$/$c=n/" .config; done &&
|
||||
for c in $enable; do sed -i.tmp "s/^\(# \)*$c\(=.*\| is not set\)\$/$c=y/" .config; done &&
|
||||
make -s oldconfig </dev/null &>/dev/null
|
||||
)
|
||||
}
|
||||
@@ -648,14 +652,10 @@ do
|
||||
patchdir="patchdir-${kv}"
|
||||
k="${kv}"
|
||||
|
||||
if ! download_kernel "$k"; then
|
||||
echo "Downloading kernel version $k failed"
|
||||
continue
|
||||
fi
|
||||
generate_kernel_patch "$k" "${generate_kernel_patch_options}" || continue
|
||||
(
|
||||
cd "${outputdir}" &&
|
||||
extract_kernel_tree "$k" &&
|
||||
download_and_extract_kernel_tree "$k" &&
|
||||
cd "linux-$k/include/linux" &&
|
||||
if [ ! -e compiler-gcc6.h ]; then
|
||||
for f in compiler-gcc5.h compiler-gcc4.h; do
|
||||
@@ -671,6 +671,12 @@ do
|
||||
run_checkpatch "$k"
|
||||
fi
|
||||
patch_and_configure_kernel "$k"
|
||||
case "$k" in
|
||||
2.*|3.*)
|
||||
# Tell the kernel that we are using gcc 4.6.
|
||||
KCFLAGS="-U__GNUC__ -U__GNUC_MINOR__ -D__GNUC__=4 -D__GNUC_MINOR__=6"
|
||||
export KCFLAGS;;
|
||||
esac
|
||||
subdirs=(drivers/scst)
|
||||
if [ "${run_sparse}" = "true" ]; then
|
||||
run_sparse "$k" "${subdirs[@]}"
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
############################################################################
|
||||
|
||||
# Usage:
|
||||
# * Specify the kernel version code as follows: -v kernel_version=...
|
||||
# * Specify the kernel version code and optionally the RHEL version as follows:
|
||||
# -v kernel_version=... -vRHEL_MAJOR=... -vRHEL_MINOR=...
|
||||
# * Provide the patch to be processed to stdin.
|
||||
#
|
||||
# The output of this script will be a patch that is specialized for the
|
||||
@@ -64,31 +65,39 @@ function evaluate(stmnt, pattern, arg, op, result) {
|
||||
}
|
||||
|
||||
gsub("defined\\(REGISTER_MAD_AGENT_HAS_FLAGS_ARG\\)",
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0))", stmnt)
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0) || " \
|
||||
"RHEL_RELEASE_CODE -0 >= 6 * 256 + 10)", stmnt)
|
||||
|
||||
gsub("SOCK_RECVMSG_HAS_FOUR_ARGS",
|
||||
"(LINUX_VERSION_CODE < KERNEL_VERSION(4, 7, 0))", stmnt)
|
||||
|
||||
gsub("defined\\(USE_PRE_440_WR_STRUCTURE\\)",
|
||||
"(LINUX_VERSION_CODE < KERNEL_VERSION(4, 4, 0))", stmnt)
|
||||
"(LINUX_VERSION_CODE < KERNEL_VERSION(4, 4, 0) || " \
|
||||
"RHEL_RELEASE_CODE -0 >= 7 * 256 + 6)", stmnt)
|
||||
|
||||
gsub("defined\\(IB_CREATE_CQ_HAS_INIT_ATTR\\)",
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0))", stmnt)
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) || " \
|
||||
"RHEL_RELEASE_CODE -0 >= 7 * 256 + 6)", stmnt)
|
||||
|
||||
gsub("defined\\(CREATE_SEND_MAD_HAS_BASE_ARG\\)",
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0))", stmnt)
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) || " \
|
||||
"RHEL_RELEASE_CODE -0 >= 7 * 256 + 6)", stmnt)
|
||||
|
||||
gsub("defined\\(IB_CM_LISTEN_TAKES_FOURTH_ARG\\)",
|
||||
"(LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0))", stmnt)
|
||||
"(LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0) || " \
|
||||
"RHEL_RELEASE_CODE -0 >= 7 * 256 + 6)", stmnt)
|
||||
|
||||
gsub("defined\\(IB_CLIENT_REMOVE_TAKES_TWO_ARGS\\)",
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0))", stmnt)
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) || " \
|
||||
"RHEL_RELEASE_CODE -0 >= 7 * 256 + 6)", stmnt)
|
||||
|
||||
gsub("defined\\(IB_QUERY_GID_HAS_ATTR_ARG\\)",
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0))", stmnt)
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0) || " \
|
||||
"RHEL_RELEASE_CODE -0 >= 7 * 256 + 6)", stmnt)
|
||||
|
||||
gsub("RDMA_CREATE_ID_TAKES_NET_ARG",
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0))", stmnt)
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0) || " \
|
||||
"RHEL_RELEASE_CODE -0 >= 7 * 256 + 6)", stmnt)
|
||||
|
||||
gsub("HAVE_DEV_ATTR_MAX_SEND_SGE",
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0))", stmnt)
|
||||
@@ -108,17 +117,25 @@ function evaluate(stmnt, pattern, arg, op, result) {
|
||||
gsub("defined\\(USE_PRE_440_WR_STRUCTURE\\)",
|
||||
"(LINUX_VERSION_CODE < KERNEL_VERSION(4, 4, 0))", stmnt)
|
||||
|
||||
gsub("defined\\(HAVE_IB_EVENT_GID_CHANGE\\)",
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(3, 1, 0) || " \
|
||||
"RHEL_RELEASE_CODE -0 >= 6 * 256 + 10)", stmnt)
|
||||
|
||||
gsub("defined\\(HAVE_IB_QUERY_DEVICE\\)",
|
||||
"(LINUX_VERSION_CODE < KERNEL_VERSION(4, 5, 0))", stmnt)
|
||||
"(LINUX_VERSION_CODE < KERNEL_VERSION(4, 5, 0) || " \
|
||||
"RHEL_RELEASE_CODE -0 >= 7 * 256 + 6)", stmnt)
|
||||
|
||||
gsub("defined\\(MAD_HANDLER_TAKES_SEND_BUF\\)",
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 0))", stmnt)
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 0) || " \
|
||||
"RHEL_RELEASE_CODE -0 >= 7 * 256 + 6)", stmnt)
|
||||
|
||||
gsub("defined\\(HAVE_IB_SET_CPI_RESP_TIME\\)",
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0))", stmnt)
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0) || " \
|
||||
"RHEL_RELEASE_CODE -0 >= 7 * 256 + 6)", stmnt)
|
||||
|
||||
gsub("defined\\(IB_PD_HAS_LOCAL_DMA_LKEY\\)",
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0))", stmnt)
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) || " \
|
||||
"RHEL_RELEASE_CODE -0 >= 7 * 256 + 6)", stmnt)
|
||||
|
||||
gsub("defined\\(HAVE_IB_DMA_MAP_OPS\\)",
|
||||
"(LINUX_VERSION_CODE >= KERNEL_VERSION(0, 0, 0))", stmnt)
|
||||
@@ -180,6 +197,8 @@ function evaluate(stmnt, pattern, arg, op, result) {
|
||||
"(\\1) * 256 + (\\2)", "g", stmnt)
|
||||
}
|
||||
|
||||
gsub("defined\\(UEK_KABI_RENAME\\)", "0", stmnt)
|
||||
|
||||
if (SCSI_EXEC_REQ_FIFO_DEFINED != "")
|
||||
{
|
||||
gsub("defined[[:blank:]]+SCSI_EXEC_REQ_FIFO_DEFINED",
|
||||
@@ -371,6 +390,7 @@ function handle_if(evaluated)
|
||||
|| $0 ~ "RHEL_MINOR" \
|
||||
|| $0 ~ "RHEL_RELEASE_CODE" \
|
||||
|| $0 ~ "SOCK_RECVMSG_HAS_FOUR_ARGS" \
|
||||
|| $0 ~ "UEK_KABI_RENAME" \
|
||||
|| $0 ~ "USE_PRE_440_WR_STRUCTURE" \
|
||||
|| generating_upstream_patch_defined \
|
||||
&& $0 ~ "GENERATING_UPSTREAM_PATCH" \
|
||||
@@ -505,9 +525,8 @@ function process_preprocessor_statement(evaluated, condition) {
|
||||
ei = substr(ei, 6)
|
||||
else if (ei ~ "^+#ifdef")
|
||||
ei = substr(ei, 9)
|
||||
evaluated = sprintf("%s /* %s */",
|
||||
$0 ~ " " ? substr($0, 1, index($0, " ")) : $0,
|
||||
ei);
|
||||
match($0, "([^/ ]*)[[:blank:]]*/\\*[^*]*\\*/[[:blank:]]*", arg)
|
||||
evaluated = sprintf("%s /* %s */", arg[1], ei);
|
||||
if (match(evaluated, "([^/ ]*) */\\* defined\\(([^()]*)\\) \\*/",
|
||||
arg))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user