summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjc_gargma <jc_gargma@iserlohn-fortress.net>2018-08-28 10:21:26 -0700
committerjc_gargma <jc_gargma@iserlohn-fortress.net>2018-08-28 10:21:26 -0700
commit55e19bf68641073fd9d3fbb5a6686038ddd73590 (patch)
tree47ad4dceb9f536c38d404d60a8854ecaec3e98ff
parentUpdated to 4.17.11.a (diff)
downloadlinux-libre-hardened-ck-55e19bf68641073fd9d3fbb5a6686038ddd73590.tar.xz
Updated to 4.18.5.a
-rw-r--r--ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch129
-rw-r--r--PKGBUILD312
-rw-r--r--Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch242
-rw-r--r--config.x86_64292
-rw-r--r--increase-timeout-in-lspcon_wait_mode.patch23
-rw-r--r--mac80211-disable-BHs-preemption-in-ieee80211_tx_cont.patch43
-rw-r--r--patch-4.18-ck1-jcmod1.patch (renamed from patch-4.17-ck1-jcmod1.patch)1217
7 files changed, 1385 insertions, 873 deletions
diff --git a/ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch b/ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch
deleted file mode 100644
index c2565ce..0000000
--- a/ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From a0a37862a4e1844793d39aca9ccb8fecbdcb8659 Mon Sep 17 00:00:00 2001
-From: Mika Westerberg <mika.westerberg@linux.intel.com>
-Date: Tue, 22 May 2018 14:16:50 +0300
-Subject: [PATCH 3/3] ACPI / watchdog: Prefer iTCO_wdt always when WDAT table
- uses RTC SRAM
-
-After we added quirk for Lenovo Z50-70 it turns out there are at least
-two more systems where WDAT table includes instructions accessing RTC
-SRAM. Instead of quirking each system separately, look for such
-instructions in the table and automatically prefer iTCO_wdt if found.
-
-Link: https://bugzilla.kernel.org/show_bug.cgi?id=199033
-Reported-by: Arnold Guy <aurnoldg@gmail.com>
-Reported-by: Alois Nespor <nespor@fssp.cz>
-Reported-by: Yury Pakin <zxwarior@gmail.com>
-Reported-by: Ihor Chyhin <ihorchyhin@ukr.net>
-Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
-Acked-by: Guenter Roeck <linux@roeck-us.net>
----
- drivers/acpi/acpi_watchdog.c | 72 ++++++++++++++++++++++--------------
- 1 file changed, 45 insertions(+), 27 deletions(-)
-
-diff --git a/drivers/acpi/acpi_watchdog.c b/drivers/acpi/acpi_watchdog.c
-index 4bde16fb97d8..95600309ce42 100644
---- a/drivers/acpi/acpi_watchdog.c
-+++ b/drivers/acpi/acpi_watchdog.c
-@@ -12,54 +12,72 @@
- #define pr_fmt(fmt) "ACPI: watchdog: " fmt
-
- #include <linux/acpi.h>
--#include <linux/dmi.h>
- #include <linux/ioport.h>
- #include <linux/platform_device.h>
-
- #include "internal.h"
-
--static const struct dmi_system_id acpi_watchdog_skip[] = {
-- {
-- /*
-- * On Lenovo Z50-70 there are two issues with the WDAT
-- * table. First some of the instructions use RTC SRAM
-- * to store persistent information. This does not work well
-- * with Linux RTC driver. Second, more important thing is
-- * that the instructions do not actually reset the system.
-- *
-- * On this particular system iTCO_wdt seems to work just
-- * fine so we prefer that over WDAT for now.
-- *
-- * See also https://bugzilla.kernel.org/show_bug.cgi?id=199033.
-- */
-- .ident = "Lenovo Z50-70",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-- DMI_MATCH(DMI_PRODUCT_NAME, "20354"),
-- DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo Z50-70"),
-- },
-- },
-- {}
--};
-+#ifdef CONFIG_RTC_MC146818_LIB
-+#include <linux/mc146818rtc.h>
-+
-+/*
-+ * There are several systems where the WDAT table is accessing RTC SRAM to
-+ * store persistent information. This does not work well with the Linux RTC
-+ * driver so on those systems we skip WDAT driver and prefer iTCO_wdt
-+ * instead.
-+ *
-+ * See also https://bugzilla.kernel.org/show_bug.cgi?id=199033.
-+ */
-+static bool acpi_watchdog_uses_rtc(const struct acpi_table_wdat *wdat)
-+{
-+ const struct acpi_wdat_entry *entries;
-+ int i;
-+
-+ entries = (struct acpi_wdat_entry *)(wdat + 1);
-+ for (i = 0; i < wdat->entries; i++) {
-+ const struct acpi_generic_address *gas;
-+
-+ gas = &entries[i].register_region;
-+ if (gas->space_id == ACPI_ADR_SPACE_SYSTEM_IO) {
-+ switch (gas->address) {
-+ case RTC_PORT(0):
-+ case RTC_PORT(1):
-+ case RTC_PORT(2):
-+ case RTC_PORT(3):
-+ return true;
-+ }
-+ }
-+ }
-+
-+ return false;
-+}
-+#else
-+static bool acpi_watchdog_uses_rtc(const struct acpi_table_wdat *wdat)
-+{
-+ return false;
-+}
-+#endif
-
- static const struct acpi_table_wdat *acpi_watchdog_get_wdat(void)
- {
- const struct acpi_table_wdat *wdat = NULL;
- acpi_status status;
-
- if (acpi_disabled)
- return NULL;
-
-- if (dmi_check_system(acpi_watchdog_skip))
-- return NULL;
--
- status = acpi_get_table(ACPI_SIG_WDAT, 0,
- (struct acpi_table_header **)&wdat);
- if (ACPI_FAILURE(status)) {
- /* It is fine if there is no WDAT */
- return NULL;
- }
-
-+ if (acpi_watchdog_uses_rtc(wdat)) {
-+ pr_info("Skipping WDAT on this system because it uses RTC SRAM\n");
-+ return NULL;
-+ }
-+
- return wdat;
- }
-
---
-2.17.1
-
diff --git a/PKGBUILD b/PKGBUILD
index d520cd6..6d925e3 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,20 +1,22 @@
-# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
-# Contributor: Daniel Micay <danielmicay@gmail.com>
-# Contributor: Tobias Powalowski <tpowa@archlinux.org>
-# Contributor: Thomas Baechler <thomas@archlinux.org>
+# Maintainer: jc_gargma <jc_gargma@iserlohn-fortress.net>
+# Maintainer (Arch): Levente Polyak <anthraxx[at]archlinux[dot]org>
+# Contributor (Arch): Daniel Micay <danielmicay@gmail.com>
+# Contributor (Arch): Tobias Powalowski <tpowa@archlinux.org>
+# Contributor (Arch): Thomas Baechler <thomas@archlinux.org>
pkgbase=linux-libre-hardened-ck
-_majver=4.17
-_minver=11
+_majver=4.18
+_minver=5
_pkgver=${_majver}.${_minver}
-_gnuver=${_pkgver}-gnu
+_gnumajver=${_majver}-gnu
+_gnupkgver=${_pkgver}-gnu
_hardenedver=a
_NUMAdisable=y
_ckpatchversion=1
_ckpatchname="patch-${_majver}-ck${_ckpatchversion}"
-_jcpatchversion="jcmod1"
+_jcpatchversion=1
_gcc_more_v='20180509'
-_srcname=linux-${_pkgver}
+_srcname=linux-${_majver}
pkgver=${_pkgver}.${_hardenedver}
pkgrel=1
conflicts=('linux-hardened-ck')
@@ -24,9 +26,10 @@ arch=('x86_64')
license=('GPL2')
makedepends=('xmlto' 'kmod' 'inetutils' 'bc' 'libelf')
options=('!strip')
-source=(https://linux-libre.fsfla.org/pub/linux-libre/releases/${_gnuver}/linux-libre-${_gnuver}.tar.xz{,.sign}
+source=(https://linux-libre.fsfla.org/pub/linux-libre/releases/${_gnumajver}/linux-libre-${_gnumajver}.tar.xz{,.sign}
+ https://linux-libre.fsfla.org/pub/linux-libre/releases/${_gnupkgver}/patch-${_gnumajver}-${_gnupkgver}.xz{,.sign}
https://github.com/anthraxx/linux-hardened/releases/download/${_pkgver}.${_hardenedver}/linux-hardened-${_pkgver}.${_hardenedver}.patch{,.sig}
- patch-${_majver}-ck${_ckpatchversion}-${_jcpatchversion}.patch
+ patch-${_majver}-ck${_ckpatchversion}-jcmod${_jcpatchversion}.patch
#http://ck.kolivas.org/patches/4.0/${_majver}/${_majver}-ck${_ckpatchversion}/${_ckpatchname}.xz
enable_additional_cpu_optimizations-$_gcc_more_v.tar.gz::https://github.com/graysky2/kernel_gcc_patch/archive/$_gcc_more_v.tar.gz
ath9k-regdom-hack.patch
@@ -35,77 +38,68 @@ source=(https://linux-libre.fsfla.org/pub/linux-libre/releases/${_gnuver}/linux-
90-linux.hook # pacman hook for initramfs regeneration
linux.preset # standard config files for mkinitcpio ramdisk
- # https://bugs.archlinux.org/task/56780
- ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch
- # https://bugs.archlinux.org/task/56711
- Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch
- # Fix iwd provoking a BUG
- mac80211-disable-BHs-preemption-in-ieee80211_tx_cont.patch
- ACPICA-AML-Parser-ignore-control-method-status-in-module-level-code.patch
+ increase-timeout-in-lspcon_wait_mode.patch
)
-sha256sums=('e8d4f6f3d78373900db1d69153cc285f3a9e64be33c9273ac83f7e9b11f51930'
+sha256sums=('55ddf20702311cf3e32127135a38cb272313679962e8a798c108b01cadaeca4f'
'SKIP'
- '586f3a84cf79cee5a7839941b6b434be519515c317abc8e6d491174652ac93cb'
+ 'ad530ad0158e96bd18da455b6d08193ac7ae5d025787a2b2aa0c09a9927b360b'
'SKIP'
- '27b96297102a9ccf690c1bdc5f21bc10308f6de90396385dce7341fb8e5a2116'
+ 'a06238ea0ce66d090fa899d6951c9d40fa993c7b4975088dded2c1e660c1ff69'
+ 'SKIP'
+ 'ea34f144abf9d714e268626e3a9332dc302a4754cbf092b5486dbf3c07fe57a0'
'226e30068ea0fecdb22f337391385701996bfbdba37cdcf0f1dbf55f1080542d'
'e7ebf050c22bcec0028c0b3c79fd6d3913b0370ecc6a23dfe78ce475630cf503'
- '1034eb2fa71c9a1f97ce820f4ab62b40717f40ebb50c4eee9b8e1e26ef1413ea'
+ '8e43c194f908dd76b639747bf1af3b6e2de17c4799f34a146b0bd15d1a360834'
'ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21'
'75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919'
'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65'
- 'd744e7f4552896670bc8b99361534eec7ba095bebc2462ef0e5ee433e6341a0a'
- '8114295b8c07795a15b9f8eafb0f515c34661a1e05512da818a34581dd30f87e'
- 'ef7c149d9af24efea551cec86e26f52c9c1cc02714335e948f929985ff414676'
- '25a0c0de5bae21f30557ed32815759be147a6a33020dc289e913d3147d3244f3')
+ '0fa6899b57d32988b70050f1a67f435936273ce1aa98575271d564ccfaf45f77')
validpgpkeys=(
'474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva
'65EEFE022108E2B708CBFCF7F9E712E59AF5F22A' # Daniel Micay
'E240B57E2C4630BA768E2F26FC1B547C8D8172C8' # Levente Polyak
)
+
_kernelname=${pkgbase#linux-libre}
: ${_kernelname:=-hardened}
prepare() {
- cd ${_srcname}
+ cd $_srcname
+
+ # add upstream patch
+ msg2 "Applying upstream patch"
+ patch -Np1 < ../patch-${_gnumajver}-${_gnupkgver}
# Hotfixes
msg2 "Applying hotfixes"
- patch -p1 -i "${srcdir}/ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch"
- patch -p1 -i "${srcdir}/Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch"
- patch -p1 -i "${srcdir}/mac80211-disable-BHs-preemption-in-ieee80211_tx_cont.patch"
- patch -p1 -i "${srcdir}/ACPICA-AML-Parser-ignore-control-method-status-in-module-level-code.patch"
-
- # fix naming schema in EXTRAVERSION of ck patch set
- #sed -i -re "s/^(.EXTRAVERSION).*$/\1 = /" "../${_ckpatchname}"
+ patch -p1 -i ../increase-timeout-in-lspcon_wait_mode.patch
# linux hardened patch
msg2 "Applying hardened patch"
- patch -p1 -i "${srcdir}/linux-hardened-${pkgver}.patch"
+ patch -Np1 < ../linux-hardened-${pkgver}.patch
- # Patch source with ck patchset
- msg2 "Applying ck patch"
- #patch -p1 -i "${srcdir}/${_ckpatchname}"
- patch -p1 -i "${srcdir}/${_ckpatchname}-${_jcpatchversion}.patch"
-
- # Patch source to unlock additional gcc CPU optimizatons
- # https://github.com/graysky2/kernel_gcc_patch
- msg2 "Applying graysky2 patch"
- patch -p1 -i "${srcdir}/kernel_gcc_patch-$_gcc_more_v/enable_additional_cpu_optimizations_for_gcc_v8.1+_kernel_v4.13+.patch"
+ # graysky2 gcc patch
+ msg2 "Applying graysky2 cpu patch"
+ patch -p1 -i ../kernel_gcc_patch-${_gcc_more_v}/enable_additional_cpu_optimizations_for_gcc_v8.1+_kernel_v4.13+.patch
# Ignore ath9k eeprom patch
- patch -p1 -i "${srcdir}/ath9k-regdom-hack.patch"
+ msg2 "Applying ath9k patch"
+ patch -p1 -i ../ath9k-regdom-hack.patch
+
+ # ck patch
+ msg2 "Applying ck patch"
+ patch -p1 -i ../patch-${_majver}-ck${_ckpatchversion}-jcmod${_jcpatchversion}.patch
+
+ msg2 "Setting version..."
+ sed -e "/^EXTRAVERSION =/s/=.*/= .${_hardenedver}/" -i Makefile
+ scripts/setlocalversion --save-scmversion
+ echo "-$pkgrel" > localversion.10-pkgrel
+ echo "$_kernelname" > localversion.20-pkgname
- cat ../config.x86_64 - >.config <<END
-CONFIG_LOCALVERSION="${_kernelname}"
-CONFIG_LOCALVERSION_AUTO=n
-END
- # set extraversion to pkgrel and empty localversion
- sed -e "/^EXTRAVERSION =/s/=.*/= .${_hardenedver}-${pkgrel}/" \
- -e "/^EXTRAVERSION =/aLOCALVERSION =" \
- -i Makefile
+ msg2 "Setting config..."
+ cp ../config.x86_64 .config
### Optionally disable NUMA for 64-bit kernels only
# (x86 kernels do not support NUMA)
@@ -126,157 +120,157 @@ END
make olddefconfig
make menuconfig
+
+ make -s kernelrelease > ../version
+ msg2 "Prepared %s version %s" "$pkgbase" "$(<../version)"
}
build() {
- cd ${_srcname}
+ cd $_srcname
make bzImage modules
}
_package() {
pkgdesc="The ${pkgbase/linux/Linux} kernel and modules"
- [ "${pkgbase}" = "linux-libre" ] && groups=('base')
- depends=('coreutils' 'linux-libre-firmware' 'kmod' 'mkinitcpio>=0.7')
+ [[ ${pkgbase} = linux-libre ]] && groups=(base)
+ depends=(coreutils linux-libre-firmware kmod mkinitcpio)
optdepends=('crda: to set the correct wireless channels of your country'
'usbctl: deny_new_usb control')
- backup=("etc/mkinitcpio.d/${pkgbase}.preset")
+ backup=("etc/mkinitcpio.d/$pkgbase.preset")
install=linux.install
- cd ${_srcname}
+ local kernver="$(<version)"
- # get kernel version
- _kernver="$(make kernelrelease)"
- _basekernel=${_kernver%%-*}
- _basekernel=${_basekernel%.*}
+ cd $_srcname
- mkdir -p "${pkgdir}"/{boot,usr/lib/modules}
- make INSTALL_MOD_PATH="${pkgdir}/usr" DEPMOD=/doesnt/exist modules_install
- cp arch/x86/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}"
+ msg2 "Installing boot image..."
+ install -Dm644 "$(make -s image_name)" "$pkgdir/boot/vmlinuz-$pkgbase"
- # make room for external modules
- local _extramodules="extramodules-${_basekernel}${_kernelname}"
- ln -s "../${_extramodules}" "${pkgdir}/usr/lib/modules/${_kernver}/extramodules"
+ msg2 "Installing modules..."
+ local modulesdir="$pkgdir/usr/lib/modules/$kernver"
+ mkdir -p "$modulesdir"
+ make INSTALL_MOD_PATH="$pkgdir/usr" modules_install
- # add real version for building modules and running depmod from hook
- echo "${_kernver}" |
- install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modules/${_extramodules}/version"
+ # a place for external modules,
+ # with version file for building modules and running depmod from hook
+ local extramodules="extramodules$_kernelname"
+ local extradir="$pkgdir/usr/lib/modules/$extramodules"
+ install -Dt "$extradir" -m644 ../version
+ ln -sr "$extradir" "$modulesdir/extramodules"
# remove build and source links
- rm "${pkgdir}"/usr/lib/modules/${_kernver}/{source,build}
-
- # now we call depmod...
- depmod -b "${pkgdir}/usr" -F System.map "${_kernver}"
-
- # add vmlinux
- install -Dt "${pkgdir}/usr/lib/modules/${_kernver}/build" -m644 vmlinux
+ rm "$modulesdir"/{source,build}
+ msg2 "Installing hooks..."
# sed expression for following substitutions
- local _subst="
- s|%PKGBASE%|${pkgbase}|g
- s|%KERNVER%|${_kernver}|g
- s|%EXTRAMODULES%|${_extramodules}|g
+ local subst="
+ s|%PKGBASE%|$pkgbase|g
+ s|%KERNVER%|$kernver|g
+ s|%EXTRAMODULES%|$extramodules|g
"
# hack to allow specifying an initially nonexisting install file
- sed "${_subst}" "${startdir}/${install}" > "${startdir}/${install}.pkg"
- true && install=${install}.pkg
-
- # install mkinitcpio preset file
- sed "${_subst}" ../linux.preset |
- install -Dm644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
-
- # install pacman hooks
- sed "${_subst}" ../60-linux.hook |
- install -Dm644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/60-${pkgbase}.hook"
- sed "${_subst}" ../90-linux.hook |
- install -Dm644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/90-${pkgbase}.hook"
+ sed "$subst" "$startdir/$install" > "$startdir/$install.pkg"
+ true && install=$install.pkg
+
+ # fill in mkinitcpio preset and pacman hooks
+ sed "$subst" ../linux.preset | install -Dm644 /dev/stdin \
+ "$pkgdir/etc/mkinitcpio.d/$pkgbase.preset"
+ sed "$subst" ../60-linux.hook | install -Dm644 /dev/stdin \
+ "$pkgdir/usr/share/libalpm/hooks/60-$pkgbase.hook"
+ sed "$subst" ../90-linux.hook | install -Dm644 /dev/stdin \
+ "$pkgdir/usr/share/libalpm/hooks/90-$pkgbase.hook"
+
+ msg2 "Fixing permissions..."
+ chmod -Rc u=rwX,go=rX "$pkgdir"
}
_package-headers() {
pkgdesc="Header files and scripts for building modules for ${pkgbase/linux/Linux} kernel"
- cd ${_srcname}
- local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build"
+ local builddir="$pkgdir/usr/lib/modules/$(<version)/build"
- install -Dt "${_builddir}" -m644 Makefile .config Module.symvers
- install -Dt "${_builddir}/kernel" -m644 kernel/Makefile
+ cd $_srcname
- mkdir "${_builddir}/.tmp_versions"
+ msg2 "Installing build files..."
+ install -Dt "$builddir" -m644 Makefile .config Module.symvers System.map vmlinux
+ install -Dt "$builddir/kernel" -m644 kernel/Makefile
+ install -Dt "$builddir/arch/x86" -m644 arch/x86/Makefile
+ cp -t "$builddir" -a scripts
- cp -t "${_builddir}" -a include scripts
+ # add objtool for external module building and enabled VALIDATION_STACK option
+ install -Dt "$builddir/tools/objtool" tools/objtool/objtool
- install -Dt "${_builddir}/arch/x86" -m644 arch/x86/Makefile
- install -Dt "${_builddir}/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s
+ # add xfs and shmem for aufs building
+ mkdir -p "$builddir"/{fs/xfs,mm}
- cp -t "${_builddir}/arch/x86" -a arch/x86/include
+ # ???
+ mkdir "$builddir/.tmp_versions"
- install -Dt "${_builddir}/drivers/md" -m644 drivers/md/*.h
- install -Dt "${_builddir}/net/mac80211" -m644 net/mac80211/*.h
+ msg2 "Installing headers..."
+ cp -t "$builddir" -a include
+ cp -t "$builddir/arch/x86" -a arch/x86/include
+ install -Dt "$builddir/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s
+
+ install -Dt "$builddir/drivers/md" -m644 drivers/md/*.h
+ install -Dt "$builddir/net/mac80211" -m644 net/mac80211/*.h
# http://bugs.archlinux.org/task/13146
- install -Dt "${_builddir}/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
+ install -Dt "$builddir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
# http://bugs.archlinux.org/task/20402
- install -Dt "${_builddir}/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
- install -Dt "${_builddir}/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
- install -Dt "${_builddir}/drivers/media/tuners" -m644 drivers/media/tuners/*.h
-
- # add xfs and shmem for aufs building
- mkdir -p "${_builddir}"/{fs/xfs,mm}
-
- # copy in Kconfig files
- find . -name Kconfig\* -exec install -Dm644 {} "${_builddir}/{}" \;
-
- # add objtool for external module building and enabled VALIDATION_STACK option
- install -Dt "${_builddir}/tools/objtool" tools/objtool/objtool
-
- # remove unneeded architectures
- local _arch
- for _arch in "${_builddir}"/arch/*/; do
- [[ ${_arch} == */x86/ ]] && continue
- rm -r "${_arch}"
+ install -Dt "$builddir/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
+ install -Dt "$builddir/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
+ install -Dt "$builddir/drivers/media/tuners" -m644 drivers/media/tuners/*.h
+
+ msg2 "Installing KConfig files..."
+ find . -name 'Kconfig*' -exec install -Dm644 {} "$builddir/{}" \;
+
+ msg2 "Removing unneeded architectures..."
+ local arch
+ for arch in "$builddir"/arch/*/; do
+ [[ $arch = */x86/ ]] && continue
+ echo "Removing $(basename "$arch")"
+ rm -r "$arch"
done
- # remove files already in linux-libre-docs package
- rm -r "${_builddir}/Documentation"
-
- # remove now broken symlinks
- find -L "${_builddir}" -type l -printf 'Removing %P\n' -delete
-
- # Fix permissions
- chmod -R u=rwX,go=rX "${_builddir}"
-
- # strip scripts directory
- local _binary _strip
- while read -rd '' _binary; do
- case "$(file -bi "${_binary}")" in
- *application/x-sharedlib*) _strip="${STRIP_SHARED}" ;; # Libraries (.so)
- *application/x-archive*) _strip="${STRIP_STATIC}" ;; # Libraries (.a)
- *application/x-executable*) _strip="${STRIP_BINARIES}" ;; # Binaries
- *) continue ;;
+ msg2 "Removing documentation..."
+ rm -r "$builddir/Documentation"
+
+ msg2 "Removing broken symlinks..."
+ find -L "$builddir" -type l -printf 'Removing %P\n' -delete
+
+ msg2 "Removing loose objects..."
+ find "$builddir" -type f -name '*.o' -printf 'Removing %P\n' -delete
+
+ msg2 "Stripping build tools..."
+ local file
+ while read -rd '' file; do
+ case "$(file -bi "$file")" in
+ application/x-sharedlib\;*) # Libraries (.so)
+ strip -v $STRIP_SHARED "$file" ;;
+ application/x-archive\;*) # Libraries (.a)
+ strip -v $STRIP_STATIC "$file" ;;
+ application/x-executable\;*) # Binaries
+ strip -v $STRIP_BINARIES "$file" ;;
+ application/x-pie-executable\;*) # Relocatable binaries
+ strip -v $STRIP_SHARED "$file" ;;
esac
- /usr/bin/strip ${_strip} "${_binary}"
- done < <(find "${_builddir}/scripts" -type f -perm -u+w -print0 2>/dev/null)
-}
-
-_package-docs() {
- pkgdesc="Kernel hackers manual - HTML documentation that comes with the ${pkgbase/linux/Linux} kernel"
-
- cd ${_srcname}
- local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build"
+ done < <(find "$builddir" -type f -perm -u+x ! -name vmlinux -print0)
+ msg2 "Adding symlink..."
+ mkdir -p "$pkgdir/usr/src"
+ ln -sr "$builddir" "$pkgdir/usr/src/$pkgbase-$pkgver"
- mkdir -p "${_builddir}"
- cp -t "${_builddir}" -a Documentation
- # Fix permissions
- chmod -R u=rwX,go=rX "${_builddir}"
+ msg2 "Fixing permissions..."
+ chmod -Rc u=rwX,go=rX "$pkgdir"
}
-pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-docs")
-for _p in ${pkgname[@]}; do
- eval "package_${_p}() {
- $(declare -f "_package${_p#${pkgbase}}")
- _package${_p#${pkgbase}}
+pkgname=("$pkgbase" "$pkgbase-headers")
+for _p in "${pkgname[@]}"; do
+ eval "package_$_p() {
+ $(declare -f "_package${_p#$pkgbase}")
+ _package${_p#$pkgbase}
}"
done
diff --git a/Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch b/Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch
deleted file mode 100644
index 78f97b2..0000000
--- a/Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch
+++ /dev/null
@@ -1,242 +0,0 @@
-From b7438d9dd645801027ab11470850033da0521338 Mon Sep 17 00:00:00 2001
-Message-Id: <b7438d9dd645801027ab11470850033da0521338.1527290717.git.jan.steffens@gmail.com>
-In-Reply-To: <ee91df95bf010fad44be5d2564e7d40038987f19.1527290717.git.jan.steffens@gmail.com>
-References: <ee91df95bf010fad44be5d2564e7d40038987f19.1527290717.git.jan.steffens@gmail.com>
-From: Jani Nikula <jani.nikula@intel.com>
-Date: Wed, 16 May 2018 11:01:10 +0300
-Subject: [PATCH 3/3] Revert "drm/i915/edp: Allow alternate fixed mode for eDP
- if available."
-
-This reverts commit dc911f5bd8aacfcf8aabd5c26c88e04c837a938e.
-
-Per the report, no matter what display mode you select with xrandr, the
-i915 driver will always select the alternate fixed mode. For the
-reporter this means that the display will always run at 40Hz which is
-quite annoying. This may be due to the mode comparison.
-
-But there are some other potential issues. The choice of alt_fixed_mode
-seems dubious. It's the first non-preferred mode, but there are no
-guarantees that the only difference would be refresh rate. Similarly,
-there may be more than one preferred mode in the probed modes list, and
-the commit changes the preferred mode selection to choose the last one
-on the list instead of the first.
-
-(Note that the probed modes list is the raw, unfiltered, unsorted list
-of modes from drm_add_edid_modes(), not the pretty result after a
-drm_helper_probe_single_connector_modes() call.)
-
-Finally, we already have eerily similar code in place to find the
-downclock mode for DRRS that seems like could be reused here.
-
-Back to the drawing board.
-
-Note: This is a hand-crafted revert due to conflicts. If it fails to
-backport, please just try reverting the original commit directly.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105469
-Reported-by: Rune Petersen <rune@megahurts.dk>
-Reported-by: Mark Spencer <n7u4722r35@ynzlx.anonbox.net>
-Fixes: dc911f5bd8aa ("drm/i915/edp: Allow alternate fixed mode for eDP if available.")
-Cc: Clint Taylor <clinton.a.taylor@intel.com>
-Cc: David Weinehall <david.weinehall@linux.intel.com>
-Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
-Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
-Cc: Jani Nikula <jani.nikula@intel.com>
-Cc: Chris Wilson <chris@chris-wilson.co.uk>
-Cc: Jim Bride <jim.bride@linux.intel.com>
-Cc: Jani Nikula <jani.nikula@linux.intel.com>
-Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
-Cc: intel-gfx@lists.freedesktop.org
-Cc: <stable@vger.kernel.org> # v4.14+
-Signed-off-by: Jani Nikula <jani.nikula@intel.com>
-Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
-Link: https://patchwork.freedesktop.org/patch/msgid/20180516080110.22770-1-jani.nikula@intel.com
----
- drivers/gpu/drm/i915/intel_dp.c | 38 ++++--------------------------
- drivers/gpu/drm/i915/intel_drv.h | 2 --
- drivers/gpu/drm/i915/intel_dsi.c | 2 +-
- drivers/gpu/drm/i915/intel_dvo.c | 2 +-
- drivers/gpu/drm/i915/intel_lvds.c | 3 +--
- drivers/gpu/drm/i915/intel_panel.c | 6 -----
- 6 files changed, 8 insertions(+), 45 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
-index 79521da5d11d..de0d0f83551e 100644
---- a/drivers/gpu/drm/i915/intel_dp.c
-+++ b/drivers/gpu/drm/i915/intel_dp.c
-@@ -1584,23 +1584,6 @@ static int intel_dp_compute_bpp(struct intel_dp *intel_dp,
- return bpp;
- }
-
--static bool intel_edp_compare_alt_mode(struct drm_display_mode *m1,
-- struct drm_display_mode *m2)
--{
-- bool bres = false;
--
-- if (m1 && m2)
-- bres = (m1->hdisplay == m2->hdisplay &&
-- m1->hsync_start == m2->hsync_start &&
-- m1->hsync_end == m2->hsync_end &&
-- m1->htotal == m2->htotal &&
-- m1->vdisplay == m2->vdisplay &&
-- m1->vsync_start == m2->vsync_start &&
-- m1->vsync_end == m2->vsync_end &&
-- m1->vtotal == m2->vtotal);
-- return bres;
--}
--
- bool
- intel_dp_compute_config(struct intel_encoder *encoder,
- struct intel_crtc_state *pipe_config,
-@@ -1647,16 +1630,8 @@ intel_dp_compute_config(struct intel_encoder *encoder,
- pipe_config->has_audio = intel_conn_state->force_audio == HDMI_AUDIO_ON;
-
- if (intel_dp_is_edp(intel_dp) && intel_connector->panel.fixed_mode) {
-- struct drm_display_mode *panel_mode =
-- intel_connector->panel.alt_fixed_mode;
-- struct drm_display_mode *req_mode = &pipe_config->base.mode;
--
-- if (!intel_edp_compare_alt_mode(req_mode, panel_mode))
-- panel_mode = intel_connector->panel.fixed_mode;
--
-- drm_mode_debug_printmodeline(panel_mode);
--
-- intel_fixed_panel_mode(panel_mode, adjusted_mode);
-+ intel_fixed_panel_mode(intel_connector->panel.fixed_mode,
-+ adjusted_mode);
-
- if (INTEL_GEN(dev_priv) >= 9) {
- int ret;
-@@ -5821,7 +5796,6 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
- struct drm_i915_private *dev_priv = to_i915(dev);
- struct drm_connector *connector = &intel_connector->base;
- struct drm_display_mode *fixed_mode = NULL;
-- struct drm_display_mode *alt_fixed_mode = NULL;
- struct drm_display_mode *downclock_mode = NULL;
- bool has_dpcd;
- struct drm_display_mode *scan;
-@@ -5876,14 +5850,13 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
- }
- intel_connector->edid = edid;
-
-- /* prefer fixed mode from EDID if available, save an alt mode also */
-+ /* prefer fixed mode from EDID if available */
- list_for_each_entry(scan, &connector->probed_modes, head) {
- if ((scan->type & DRM_MODE_TYPE_PREFERRED)) {
- fixed_mode = drm_mode_duplicate(dev, scan);
- downclock_mode = intel_dp_drrs_init(
- intel_connector, fixed_mode);
-- } else if (!alt_fixed_mode) {
-- alt_fixed_mode = drm_mode_duplicate(dev, scan);
-+ break;
- }
- }
-
-@@ -5920,8 +5893,7 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
- pipe_name(pipe));
- }
-
-- intel_panel_init(&intel_connector->panel, fixed_mode, alt_fixed_mode,
-- downclock_mode);
-+ intel_panel_init(&intel_connector->panel, fixed_mode, downclock_mode);
- intel_connector->panel.backlight.power = intel_edp_backlight_power;
- intel_panel_setup_backlight(connector, pipe);
-
-diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
-index 30f791f89d64..9b75b82a2956 100644
---- a/drivers/gpu/drm/i915/intel_drv.h
-+++ b/drivers/gpu/drm/i915/intel_drv.h
-@@ -264,7 +264,6 @@ struct intel_encoder {
-
- struct intel_panel {
- struct drm_display_mode *fixed_mode;
-- struct drm_display_mode *alt_fixed_mode;
- struct drm_display_mode *downclock_mode;
-
- /* backlight */
-@@ -1720,7 +1719,6 @@ void intel_overlay_reset(struct drm_i915_private *dev_priv);
- /* intel_panel.c */
- int intel_panel_init(struct intel_panel *panel,
- struct drm_display_mode *fixed_mode,
-- struct drm_display_mode *alt_fixed_mode,
- struct drm_display_mode *downclock_mode);
- void intel_panel_fini(struct intel_panel *panel);
- void intel_fixed_panel_mode(const struct drm_display_mode *fixed_mode,
-diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
-index f67d321376e4..551bf1c14093 100644
---- a/drivers/gpu/drm/i915/intel_dsi.c
-+++ b/drivers/gpu/drm/i915/intel_dsi.c
-@@ -1851,7 +1851,7 @@ void intel_dsi_init(struct drm_i915_private *dev_priv)
- connector->display_info.width_mm = fixed_mode->width_mm;
- connector->display_info.height_mm = fixed_mode->height_mm;
-
-- intel_panel_init(&intel_connector->panel, fixed_mode, NULL, NULL);
-+ intel_panel_init(&intel_connector->panel, fixed_mode, NULL);
- intel_panel_setup_backlight(connector, INVALID_PIPE);
-
- intel_dsi_add_properties(intel_connector);
-diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
-index 754baa00bea9..05bd65e37cb5 100644
---- a/drivers/gpu/drm/i915/intel_dvo.c
-+++ b/drivers/gpu/drm/i915/intel_dvo.c
-@@ -537,7 +537,7 @@ void intel_dvo_init(struct drm_i915_private *dev_priv)
- */
- intel_panel_init(&intel_connector->panel,
- intel_dvo_get_current_mode(intel_encoder),
-- NULL, NULL);
-+ NULL);
- intel_dvo->panel_wants_dither = true;
- }
-
-diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
-index 7ed6f7b69556..ab5a63f007eb 100644
---- a/drivers/gpu/drm/i915/intel_lvds.c
-+++ b/drivers/gpu/drm/i915/intel_lvds.c
-@@ -1128,8 +1128,7 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
- out:
- mutex_unlock(&dev->mode_config.mutex);
-
-- intel_panel_init(&intel_connector->panel, fixed_mode, NULL,
-- downclock_mode);
-+ intel_panel_init(&intel_connector->panel, fixed_mode, downclock_mode);
- intel_panel_setup_backlight(connector, INVALID_PIPE);
-
- lvds_encoder->is_dual_link = compute_is_dual_link_lvds(lvds_encoder);
-diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
-index fa6831f8c004..c0ac6d6bf8ef 100644
---- a/drivers/gpu/drm/i915/intel_panel.c
-+++ b/drivers/gpu/drm/i915/intel_panel.c
-@@ -1924,30 +1924,24 @@ intel_panel_init_backlight_funcs(struct intel_panel *panel)
-
- int intel_panel_init(struct intel_panel *panel,
- struct drm_display_mode *fixed_mode,
-- struct drm_display_mode *alt_fixed_mode,
- struct drm_display_mode *downclock_mode)
- {
- intel_panel_init_backlight_funcs(panel);
-
- panel->fixed_mode = fixed_mode;
-- panel->alt_fixed_mode = alt_fixed_mode;
- panel->downclock_mode = downclock_mode;
-
- return 0;
- }
-
- void intel_panel_fini(struct intel_panel *panel)
- {
- struct intel_connector *intel_connector =
- container_of(panel, struct intel_connector, panel);
-
- if (panel->fixed_mode)
- drm_mode_destroy(intel_connector->base.dev, panel->fixed_mode);
-
-- if (panel->alt_fixed_mode)
-- drm_mode_destroy(intel_connector->base.dev,
-- panel->alt_fixed_mode);
--
- if (panel->downclock_mode)
- drm_mode_destroy(intel_connector->base.dev,
- panel->downclock_mode);
---
-2.17.0
-
diff --git a/config.x86_64 b/config.x86_64
index d3b77ef..db36f21 100644
--- a/config.x86_64
+++ b/config.x86_64
@@ -1,6 +1,10 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.17.11 Kernel Configuration
+# Linux/x86 4.18.5 Kernel Configuration
+#
+
+#
+# Compiler: gcc (GCC) 8.2.0
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@@ -15,8 +19,6 @@ CONFIG_ARCH_MMAP_RND_BITS_MIN=28
CONFIG_ARCH_MMAP_RND_BITS_MAX=32
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
@@ -42,7 +44,11 @@ CONFIG_HAVE_INTEL_TXT=y
CONFIG_X86_64_SMP=y
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_DYNAMIC_PHYSICAL_MASK=y
CONFIG_PGTABLE_LEVELS=4
+CONFIG_CC_IS_GCC=y
+CONFIG_GCC_VERSION=80200
+CONFIG_CLANG_VERSION=0
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y
CONFIG_THREAD_INFO_IN_TASK=y
@@ -52,10 +58,9 @@ CONFIG_THREAD_INFO_IN_TASK=y
#
CONFIG_SCHED_MUQSS=y
CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_CROSS_COMPILE=""
# CONFIG_COMPILE_TEST is not set
-CONFIG_LOCALVERSION="-hardened"
-# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
@@ -242,6 +247,8 @@ CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT_ALWAYS_ON=y
# CONFIG_USERFAULTFD is not set
CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
+CONFIG_RSEQ=y
+# CONFIG_DEBUG_RSEQ is not set
# CONFIG_EMBEDDED is not set
CONFIG_HAVE_PERF_EVENTS=y
# CONFIG_PC104 is not set
@@ -269,6 +276,7 @@ CONFIG_SLUB_CPU_PARTIAL=y
CONFIG_SYSTEM_DATA_VERIFICATION=y
CONFIG_PROFILING=y
CONFIG_TRACEPOINTS=y
+CONFIG_HOTPLUG_SMT=y
CONFIG_OPROFILE=m
# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
CONFIG_HAVE_OPROFILE=y
@@ -298,8 +306,8 @@ CONFIG_ARCH_HAS_SET_MEMORY=y
CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_RSEQ=y
CONFIG_HAVE_CLK=y
-CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
@@ -317,13 +325,13 @@ CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
+CONFIG_PLUGIN_HOSTCC="g++"
CONFIG_HAVE_GCC_PLUGINS=y
# CONFIG_GCC_PLUGINS is not set
-CONFIG_HAVE_CC_STACKPROTECTOR=y
-# CONFIG_CC_STACKPROTECTOR_NONE is not set
-# CONFIG_CC_STACKPROTECTOR_REGULAR is not set
-CONFIG_CC_STACKPROTECTOR_STRONG=y
-# CONFIG_CC_STACKPROTECTOR_AUTO is not set
+CONFIG_HAVE_STACKPROTECTOR=y
+CONFIG_CC_HAS_STACKPROTECTOR_NONE=y
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR_STRONG=y
CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
CONFIG_HAVE_CONTEXT_TRACKING=y
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
@@ -347,6 +355,7 @@ CONFIG_HAVE_STACK_VALIDATION=y
CONFIG_ISA_BUS_API=y
CONFIG_OLD_SIGSUSPEND3=y
CONFIG_COMPAT_OLD_SIGACTION=y
+CONFIG_COMPAT_32BIT_TIME=y
CONFIG_HAVE_ARCH_VMAP_STACK=y
CONFIG_VMAP_STACK=y
CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
@@ -447,6 +456,7 @@ CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
CONFIG_QUEUED_RWLOCKS=y
CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y
CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
+CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
CONFIG_FREEZER=y
#
@@ -532,8 +542,6 @@ CONFIG_DMI=y
CONFIG_GART_IOMMU=y
CONFIG_CALGARY_IOMMU=y
CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
-CONFIG_SWIOTLB=y
-CONFIG_IOMMU_HELPER=y
# CONFIG_MAXSMP is not set
CONFIG_NR_CPUS_RANGE_BEGIN=2
CONFIG_NR_CPUS_RANGE_END=512
@@ -579,8 +587,6 @@ CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
# CONFIG_X86_5LEVEL is not set
-CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
-CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_X86_DIRECT_GBPAGES=y
CONFIG_ARCH_HAS_MEM_ENCRYPT=y
CONFIG_AMD_MEM_ENCRYPT=y
@@ -656,6 +662,7 @@ CONFIG_ARCH_HAS_ZONE_DEVICE=y
CONFIG_ZONE_DEVICE=y
CONFIG_ARCH_HAS_HMM=y
CONFIG_MIGRATE_VMA_HELPER=y
+CONFIG_DEV_PAGEMAP_OPS=y
CONFIG_HMM=y
CONFIG_HMM_MIRROR=y
CONFIG_DEVICE_PRIVATE=y
@@ -665,6 +672,7 @@ CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
CONFIG_ARCH_HAS_PKEYS=y
# CONFIG_PERCPU_STATS is not set
# CONFIG_GUP_BENCHMARK is not set
+CONFIG_ARCH_HAS_PTE_SPECIAL=y
CONFIG_X86_PMEM_LEGACY_DEVICE=y
CONFIG_X86_PMEM_LEGACY=m
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
@@ -709,7 +717,7 @@ CONFIG_HOTPLUG_CPU=y
# CONFIG_LEGACY_VSYSCALL_EMULATE is not set
CONFIG_LEGACY_VSYSCALL_NONE=y
CONFIG_CMDLINE_BOOL=y
-CONFIG_CMDLINE="audit=0 page_poison=1 slab_nomerge pti=on"
+CONFIG_CMDLINE="page_poison=1 slab_nomerge pti=on"
# CONFIG_CMDLINE_OVERRIDE is not set
# CONFIG_MODIFY_LDT_SYSCALL is not set
CONFIG_HAVE_LIVEPATCH=y
@@ -869,8 +877,8 @@ CONFIG_MMCONF_FAM10H=y
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=y
CONFIG_PCIEAER=y
-CONFIG_PCIE_ECRC=y
# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIE_ECRC=y
CONFIG_PCIEASPM=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM_DEFAULT=y
@@ -880,15 +888,16 @@ CONFIG_PCIEASPM_DEFAULT=y
CONFIG_PCIE_PME=y
CONFIG_PCIE_DPC=y
CONFIG_PCIE_PTM=y
-CONFIG_PCI_BUS_ADDR_T_64BIT=y
CONFIG_PCI_MSI=y
CONFIG_PCI_MSI_IRQ_DOMAIN=y
CONFIG_PCI_QUIRKS=y
# CONFIG_PCI_DEBUG is not set
CONFIG_PCI_REALLOC_ENABLE_AUTO=y
CONFIG_PCI_STUB=y
+CONFIG_PCI_PF_STUB=m
CONFIG_XEN_PCIDEV_FRONTEND=m
CONFIG_PCI_ATS=y
+CONFIG_PCI_ECAM=y
CONFIG_PCI_LOCKLESS_CONFIG=y
CONFIG_PCI_IOV=y
CONFIG_PCI_PRI=y
@@ -901,7 +910,11 @@ CONFIG_HOTPLUG_PCI_ACPI_IBM=m
CONFIG_HOTPLUG_PCI_CPCI=y
CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
-CONFIG_HOTPLUG_PCI_SHPC=m
+CONFIG_HOTPLUG_PCI_SHPC=y
+
+#
+# PCI controller drivers
+#
#
# Cadence PCIe controllers support
@@ -909,16 +922,20 @@ CONFIG_HOTPLUG_PCI_SHPC=m
CONFIG_PCIE_CADENCE=y
CONFIG_PCIE_CADENCE_HOST=y
CONFIG_PCIE_CADENCE_EP=y
+CONFIG_PCI_FTPCI100=y
+CONFIG_PCI_HOST_COMMON=y
+CONFIG_PCI_HOST_GENERIC=y
+CONFIG_VMD=m
#
# DesignWare PCI Core Support
#
-# CONFIG_PCIE_DW_PLAT is not set
-
-#
-# PCI host controller drivers
-#
-CONFIG_VMD=m
+CONFIG_PCIE_DW=y
+CONFIG_PCIE_DW_HOST=y
+CONFIG_PCIE_DW_EP=y
+CONFIG_PCIE_DW_PLAT=y
+CONFIG_PCIE_DW_PLAT_HOST=y
+CONFIG_PCIE_DW_PLAT_EP=y
#
# PCI Endpoint
@@ -1002,6 +1019,7 @@ CONFIG_PACKET_DIAG=y
CONFIG_UNIX=y
CONFIG_UNIX_DIAG=y
CONFIG_TLS=m
+CONFIG_TLS_DEVICE=y
CONFIG_XFRM=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_ALGO=m
@@ -1014,6 +1032,7 @@ CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
CONFIG_SMC=m
CONFIG_SMC_DIAG=m
+CONFIG_XDP_SOCKETS=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
@@ -1104,6 +1123,7 @@ CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
CONFIG_IPV6_PIMSM_V2=y
CONFIG_IPV6_SEG6_LWTUNNEL=y
CONFIG_IPV6_SEG6_HMAC=y
+CONFIG_IPV6_SEG6_BPF=y
CONFIG_NETLABEL=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NET_PTP_CLASSIFY=y
@@ -1163,21 +1183,18 @@ CONFIG_NF_NAT_FTP=m
CONFIG_NF_NAT_IRC=m
CONFIG_NF_NAT_SIP=m
CONFIG_NF_NAT_TFTP=m
-CONFIG_NF_NAT_REDIRECT=m
+CONFIG_NF_NAT_REDIRECT=y
CONFIG_NETFILTER_SYNPROXY=m
+CONFIG_NF_OSF=m
CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_SET=m
CONFIG_NF_TABLES_INET=y
CONFIG_NF_TABLES_NETDEV=y
-CONFIG_NFT_EXTHDR=m
-CONFIG_NFT_META=m
-CONFIG_NFT_RT=m
CONFIG_NFT_NUMGEN=m
CONFIG_NFT_CT=m
CONFIG_NFT_FLOW_OFFLOAD=m
-CONFIG_NFT_SET_RBTREE=m
-CONFIG_NFT_SET_HASH=m
-CONFIG_NFT_SET_BITMAP=m
CONFIG_NFT_COUNTER=m
+CONFIG_NFT_CONNLIMIT=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
CONFIG_NFT_MASQ=m
@@ -1192,6 +1209,7 @@ CONFIG_NFT_COMPAT=m
CONFIG_NFT_HASH=m
CONFIG_NFT_FIB=m
CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_SOCKET=m
CONFIG_NF_DUP_NETDEV=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
@@ -1332,6 +1350,7 @@ CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_MH=m
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m
@@ -1341,6 +1360,11 @@ CONFIG_IP_VS_NQ=m
CONFIG_IP_VS_SH_TAB_BITS=8
#
+# IPVS MH scheduler
+#
+CONFIG_IP_VS_MH_TAB_INDEX=12
+
+#
# IPVS application helper
#
CONFIG_IP_VS_FTP=m
@@ -1353,6 +1377,7 @@ CONFIG_IP_VS_PE_SIP=m
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_NF_SOCKET_IPV4=m
+CONFIG_NF_TPROXY_IPV4=m
CONFIG_NF_TABLES_IPV4=y
CONFIG_NFT_CHAIN_ROUTE_IPV4=m
CONFIG_NFT_REJECT_IPV4=m
@@ -1366,7 +1391,7 @@ CONFIG_NF_LOG_IPV4=m
CONFIG_NF_REJECT_IPV4=m
CONFIG_NF_NAT_IPV4=m
CONFIG_NFT_CHAIN_NAT_IPV4=m
-CONFIG_NF_NAT_MASQUERADE_IPV4=m
+CONFIG_NF_NAT_MASQUERADE_IPV4=y
CONFIG_NFT_MASQ_IPV4=m
CONFIG_NFT_REDIR_IPV4=m
CONFIG_NF_NAT_SNMP_BASIC=m
@@ -1401,6 +1426,7 @@ CONFIG_IP_NF_ARP_MANGLE=m
CONFIG_NF_DEFRAG_IPV6=m
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_NF_SOCKET_IPV6=m
+CONFIG_NF_TPROXY_IPV6=m
CONFIG_NF_TABLES_IPV6=y
CONFIG_NFT_CHAIN_ROUTE_IPV6=m
CONFIG_NFT_CHAIN_NAT_IPV6=m
@@ -1414,7 +1440,7 @@ CONFIG_NF_DUP_IPV6=m
CONFIG_NF_REJECT_IPV6=m
CONFIG_NF_LOG_IPV6=m
CONFIG_NF_NAT_IPV6=m
-CONFIG_NF_NAT_MASQUERADE_IPV6=m
+CONFIG_NF_NAT_MASQUERADE_IPV6=y
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
@@ -1437,7 +1463,6 @@ CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_TARGET_MASQUERADE=m
CONFIG_IP6_NF_TARGET_NPT=m
CONFIG_NF_TABLES_BRIDGE=y
-CONFIG_NFT_BRIDGE_META=m
CONFIG_NFT_BRIDGE_REJECT=m
CONFIG_NF_LOG_BRIDGE=m
CONFIG_BRIDGE_NF_EBTABLES=m
@@ -1461,6 +1486,8 @@ CONFIG_BRIDGE_EBT_REDIRECT=m
CONFIG_BRIDGE_EBT_SNAT=m
CONFIG_BRIDGE_EBT_LOG=m
CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_BPFILTER=y
+CONFIG_BPFILTER_UMH=m
CONFIG_IP_DCCP=m
CONFIG_INET_DCCP_DIAG=m
@@ -1919,8 +1946,11 @@ CONFIG_LWTUNNEL=y
CONFIG_LWTUNNEL_BPF=y
CONFIG_DST_CACHE=y
CONFIG_GRO_CELLS=y
+CONFIG_SOCK_VALIDATE_XMIT=y
CONFIG_NET_DEVLINK=m
CONFIG_MAY_USE_DEVLINK=m
+CONFIG_PAGE_POOL=y
+CONFIG_FAILOVER=m
CONFIG_HAVE_EBPF_JIT=y
#
@@ -1935,6 +1965,10 @@ CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
+
+#
+# Firmware loader
+#
CONFIG_FW_LOADER=y
CONFIG_EXTRA_FIRMWARE=""
CONFIG_FW_LOADER_USER_HELPER=y
@@ -2146,6 +2180,7 @@ CONFIG_CDROM=m
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
CONFIG_ZRAM=m
CONFIG_ZRAM_WRITEBACK=y
+# CONFIG_ZRAM_MEMORY_TRACKING is not set
CONFIG_BLK_DEV_DAC960=m
CONFIG_BLK_DEV_UMEM=m
CONFIG_BLK_DEV_LOOP=m
@@ -2571,6 +2606,7 @@ CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_SMQ=m
+CONFIG_DM_WRITECACHE=m
CONFIG_DM_ERA=m
CONFIG_DM_MIRROR=m
CONFIG_DM_LOG_USERSPACE=m
@@ -2754,10 +2790,6 @@ CONFIG_ATL1C=m
CONFIG_ALX=m
CONFIG_NET_VENDOR_AURORA=y
CONFIG_AURORA_NB8800=m
-CONFIG_NET_CADENCE=y
-CONFIG_MACB=m
-CONFIG_MACB_USE_HWSTAMP=y
-CONFIG_MACB_PCI=m
CONFIG_NET_VENDOR_BROADCOM=y
CONFIG_B44=m
CONFIG_B44_PCI_AUTOSELECT=y
@@ -2777,6 +2809,10 @@ CONFIG_BNXT_FLOWER_OFFLOAD=y
CONFIG_BNXT_DCB=y
CONFIG_NET_VENDOR_BROCADE=y
CONFIG_BNA=m
+CONFIG_NET_CADENCE=y
+CONFIG_MACB=m
+CONFIG_MACB_USE_HWSTAMP=y
+CONFIG_MACB_PCI=m
CONFIG_NET_VENDOR_CAVIUM=y
CONFIG_THUNDER_NIC_PF=m
CONFIG_THUNDER_NIC_VF=m
@@ -2823,16 +2859,13 @@ CONFIG_BE2NET=m
CONFIG_BE2NET_HWMON=y
CONFIG_NET_VENDOR_EZCHIP=y
CONFIG_EZCHIP_NPS_MANAGEMENT_ENET=m
-CONFIG_NET_VENDOR_EXAR=y
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
CONFIG_NET_VENDOR_FUJITSU=y
CONFIG_PCMCIA_FMVJ18X=m
CONFIG_NET_VENDOR_HP=y
CONFIG_HP100=m
CONFIG_NET_VENDOR_HUAWEI=y
CONFIG_HINIC=m
+CONFIG_NET_VENDOR_I825XX=y
CONFIG_NET_VENDOR_INTEL=y
CONFIG_E100=m
CONFIG_E1000=m
@@ -2853,7 +2886,10 @@ CONFIG_I40E_DCB=y
CONFIG_I40EVF=m
CONFIG_ICE=m
CONFIG_FM10K=m
-CONFIG_NET_VENDOR_I825XX=y
+CONFIG_NET_VENDOR_EXAR=y
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
CONFIG_JME=m
CONFIG_NET_VENDOR_MARVELL=y
CONFIG_MVMDIO=m
@@ -2877,6 +2913,7 @@ CONFIG_MLX5_ESWITCH=y
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_EN_IPSEC=y
+CONFIG_MLX5_EN_TLS=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE_THERMAL=y
@@ -2898,6 +2935,9 @@ CONFIG_ENC28J60=m
# CONFIG_ENC28J60_WRITEVERIFY is not set
CONFIG_ENCX24J600=m
CONFIG_LAN743X=m
+CONFIG_NET_VENDOR_MICROSEMI=y
+CONFIG_MSCC_OCELOT_SWITCH=m
+CONFIG_MSCC_OCELOT_SWITCH_OCELOT=m
CONFIG_NET_VENDOR_MYRI=y
CONFIG_MYRI10GE=m
CONFIG_MYRI10GE_DCA=y
@@ -2908,6 +2948,7 @@ CONFIG_NS83820=m
CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NFP=m
CONFIG_NFP_APP_FLOWER=y
+CONFIG_NFP_APP_ABM_NIC=y
# CONFIG_NFP_DEBUG is not set
CONFIG_NET_VENDOR_NI=y
CONFIG_NET_VENDOR_8390=y
@@ -2943,6 +2984,8 @@ CONFIG_QCA7000_SPI=m
CONFIG_QCA7000_UART=m
CONFIG_QCOM_EMAC=m
CONFIG_RMNET=m
+CONFIG_NET_VENDOR_RDC=y
+CONFIG_R6040=m
CONFIG_NET_VENDOR_REALTEK=y
CONFIG_ATP=m
CONFIG_8139CP=m
@@ -2953,18 +2996,11 @@ CONFIG_8139TOO_8129=y
# CONFIG_8139_OLD_RX_RESET is not set
CONFIG_R8169=m
CONFIG_NET_VENDOR_RENESAS=y
-CONFIG_NET_VENDOR_RDC=y
-CONFIG_R6040=m
CONFIG_NET_VENDOR_ROCKER=y
CONFIG_ROCKER=m
CONFIG_NET_VENDOR_SAMSUNG=y
CONFIG_SXGBE_ETH=m
CONFIG_NET_VENDOR_SEEQ=y
-CONFIG_NET_VENDOR_SILAN=y
-CONFIG_SC92031=m
-CONFIG_NET_VENDOR_SIS=y
-CONFIG_SIS900=m
-CONFIG_SIS190=m
CONFIG_NET_VENDOR_SOLARFLARE=y
CONFIG_SFC=m
CONFIG_SFC_MTD=y
@@ -2973,6 +3009,11 @@ CONFIG_SFC_SRIOV=y
CONFIG_SFC_MCDI_LOGGING=y
CONFIG_SFC_FALCON=m
CONFIG_SFC_FALCON_MTD=y
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_SC92031=m
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_SIS900=m
+CONFIG_SIS190=m
CONFIG_NET_VENDOR_SMSC=y
CONFIG_PCMCIA_SMC91C92=m
CONFIG_EPIC100=m
@@ -2990,6 +3031,9 @@ CONFIG_HAPPYMEAL=m
CONFIG_SUNGEM=m
CONFIG_CASSINI=m
CONFIG_NIU=m
+CONFIG_NET_VENDOR_SYNOPSYS=y
+CONFIG_DWC_XLGMAC=m
+CONFIG_DWC_XLGMAC_PCI=m
CONFIG_NET_VENDOR_TEHUTI=y
CONFIG_TEHUTI=m
CONFIG_NET_VENDOR_TI=y
@@ -3008,9 +3052,6 @@ CONFIG_WIZNET_BUS_ANY=y
CONFIG_WIZNET_W5100_SPI=m
CONFIG_NET_VENDOR_XIRCOM=y
CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_NET_VENDOR_SYNOPSYS=y
-CONFIG_DWC_XLGMAC=m
-CONFIG_DWC_XLGMAC_PCI=m
CONFIG_FDDI=m
CONFIG_DEFXX=m
CONFIG_DEFXX_MMIO=y
@@ -3027,8 +3068,11 @@ CONFIG_MDIO_BUS_MUX_MMIOREG=m
CONFIG_MDIO_CAVIUM=m
CONFIG_MDIO_GPIO=m
CONFIG_MDIO_HISI_FEMAC=m
+CONFIG_MDIO_I2C=m
+CONFIG_MDIO_MSCC_MIIM=m
CONFIG_MDIO_OCTEON=m
CONFIG_MDIO_THUNDER=m
+CONFIG_PHYLINK=m
CONFIG_PHYLIB=m
CONFIG_SWPHY=y
CONFIG_LED_TRIGGER_PHY=y
@@ -3036,8 +3080,10 @@ CONFIG_LED_TRIGGER_PHY=y
#
# MII PHY device drivers
#
+CONFIG_SFP=m
CONFIG_AMD_PHY=m
CONFIG_AQUANTIA_PHY=m
+CONFIG_ASIX_PHY=m
CONFIG_AT803X_PHY=m
CONFIG_BCM7XXX_PHY=m
CONFIG_BCM87XX_PHY=m
@@ -3047,6 +3093,7 @@ CONFIG_CICADA_PHY=m
CONFIG_CORTINA_PHY=m
CONFIG_DAVICOM_PHY=m
CONFIG_DP83822_PHY=m
+CONFIG_DP83TC811_PHY=m
CONFIG_DP83848_PHY=m
CONFIG_DP83867_PHY=m
CONFIG_FIXED_PHY=m
@@ -3058,6 +3105,7 @@ CONFIG_MARVELL_PHY=m
CONFIG_MARVELL_10G_PHY=m
CONFIG_MICREL_PHY=m
CONFIG_MICROCHIP_PHY=m
+CONFIG_MICROCHIP_T1_PHY=m
CONFIG_MICROSEMI_PHY=m
CONFIG_NATIONAL_PHY=m
CONFIG_QSEMI_PHY=m
@@ -3178,6 +3226,7 @@ CONFIG_WIL6210_ISR_COR=y
CONFIG_WIL6210_TRACING=y
# CONFIG_WIL6210_DEBUGFS is not set
CONFIG_ATH10K=m
+CONFIG_ATH10K_CE=y
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_AHB=y
CONFIG_ATH10K_SDIO=m
@@ -3421,6 +3470,7 @@ CONFIG_FUJITSU_ES=m
CONFIG_THUNDERBOLT_NET=m
CONFIG_HYPERV_NET=m
CONFIG_NETDEVSIM=m
+CONFIG_NET_FAILOVER=m
CONFIG_ISDN=y
CONFIG_ISDN_I4L=m
CONFIG_ISDN_PPP=y
@@ -3607,6 +3657,7 @@ CONFIG_KEYBOARD_XTKBD=m
CONFIG_KEYBOARD_CROS_EC=m
CONFIG_KEYBOARD_CAP11XX=m
CONFIG_KEYBOARD_BCM=m
+CONFIG_KEYBOARD_MTK_PMIC=m
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=m
CONFIG_MOUSE_PS2_ALPS=y
@@ -3618,6 +3669,7 @@ CONFIG_MOUSE_PS2_CYPRESS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y
CONFIG_MOUSE_PS2_SENTELIC=y
CONFIG_MOUSE_PS2_TOUCHKIT=y
CONFIG_MOUSE_PS2_FOCALTECH=y
@@ -3690,6 +3742,7 @@ CONFIG_TOUCHSCREEN_ATMEL_MXT_T37=y
CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
CONFIG_TOUCHSCREEN_BU21013=m
CONFIG_TOUCHSCREEN_CHIPONE_ICN8318=m
+CONFIG_TOUCHSCREEN_CHIPONE_ICN8505=m
CONFIG_TOUCHSCREEN_CY8CTMG110=m
CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
@@ -3980,7 +4033,6 @@ CONFIG_HVC_XEN_FRONTEND=y
CONFIG_VIRTIO_CONSOLE=m
CONFIG_IPMI_HANDLER=m
CONFIG_IPMI_DMI_DECODE=y
-# CONFIG_IPMI_PROC_INTERFACE is not set
# CONFIG_IPMI_PANIC_EVENT is not set
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
@@ -4139,6 +4191,7 @@ CONFIG_I2C_SLAVE_EEPROM=m
CONFIG_SPI=y
# CONFIG_SPI_DEBUG is not set
CONFIG_SPI_MASTER=y
+CONFIG_SPI_MEM=y
#
# SPI Master Controller Drivers
@@ -4235,6 +4288,7 @@ CONFIG_PINCTRL_GEMINILAKE=y
CONFIG_PINCTRL_LEWISBURG=y
CONFIG_PINCTRL_SUNRISEPOINT=y
CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_FASTPATH_LIMIT=512
CONFIG_OF_GPIO=y
CONFIG_GPIO_ACPI=y
CONFIG_GPIOLIB_IRQCHIP=y
@@ -5003,6 +5057,7 @@ CONFIG_REGULATOR_S2MPA01=m
CONFIG_REGULATOR_S2MPS11=m
CONFIG_REGULATOR_S5M8767=m
CONFIG_REGULATOR_SKY81452=m
+CONFIG_REGULATOR_SY8106A=m
CONFIG_REGULATOR_TPS51632=m
CONFIG_REGULATOR_TPS6105X=m
CONFIG_REGULATOR_TPS62360=m
@@ -5093,7 +5148,6 @@ CONFIG_V4L2_FWNODE=m
CONFIG_VIDEOBUF_GEN=m
CONFIG_VIDEOBUF_DMA_SG=m
CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_VIDEOBUF_DVB=m
CONFIG_DVB_CORE=m
CONFIG_DVB_MMAP=y
CONFIG_DVB_NET=y
@@ -5285,14 +5339,6 @@ CONFIG_VIDEO_SOLO6X10=m
CONFIG_VIDEO_TW5864=m
CONFIG_VIDEO_TW68=m
CONFIG_VIDEO_TW686X=m
-CONFIG_VIDEO_ZORAN=m
-CONFIG_VIDEO_ZORAN_DC30=m
-CONFIG_VIDEO_ZORAN_ZR36060=m
-CONFIG_VIDEO_ZORAN_BUZ=m
-CONFIG_VIDEO_ZORAN_DC10=m
-CONFIG_VIDEO_ZORAN_LML33=m
-CONFIG_VIDEO_ZORAN_LML33R10=m
-CONFIG_VIDEO_ZORAN_AVS6EYES=m
#
# Media capture/analog TV support
@@ -5360,6 +5406,9 @@ CONFIG_DVB_NETUP_UNIDVB=m
CONFIG_VIDEO_IPU3_CIO2=m
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_VIDEO_CAFE_CCIC=m
+CONFIG_VIDEO_CADENCE=y
+CONFIG_VIDEO_CADENCE_CSI2RX=m
+CONFIG_VIDEO_CADENCE_CSI2TX=m
CONFIG_VIDEO_MUX=m
CONFIG_SOC_CAMERA=m
CONFIG_SOC_CAMERA_PLATFORM=m
@@ -5386,7 +5435,7 @@ CONFIG_SDR_PLATFORM_DRIVERS=y
CONFIG_SMS_SDIO_DRV=m
CONFIG_RADIO_ADAPTERS=y
CONFIG_RADIO_TEA575X=m
-CONFIG_RADIO_SI470X=y
+CONFIG_RADIO_SI470X=m
CONFIG_USB_SI470X=m
CONFIG_I2C_SI470X=m
CONFIG_RADIO_SI4713=m
@@ -5594,6 +5643,7 @@ CONFIG_MEDIA_TUNER_IT913X=m
CONFIG_MEDIA_TUNER_R820T=m
CONFIG_MEDIA_TUNER_MXL301RF=m
CONFIG_MEDIA_TUNER_QM1D1C0042=m
+CONFIG_MEDIA_TUNER_QM1D1B0004=m
#
# Multistandard (satellite) frontends
@@ -5752,6 +5802,7 @@ CONFIG_DVB_SP2=m
#
# Tools to develop new frontends
#
+CONFIG_DVB_DUMMY_FE=m
#
# Graphics support
@@ -5768,7 +5819,7 @@ CONFIG_VGA_SWITCHEROO=y
CONFIG_DRM=m
CONFIG_DRM_MIPI_DSI=y
CONFIG_DRM_DP_AUX_CHARDEV=y
-# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
+# CONFIG_DRM_DEBUG_SELFTEST is not set
CONFIG_DRM_KMS_HELPER=m
CONFIG_DRM_KMS_FB_HELPER=y
CONFIG_DRM_FBDEV_EMULATION=y
@@ -5786,6 +5837,7 @@ CONFIG_DRM_SCHED=m
CONFIG_DRM_I2C_CH7006=m
CONFIG_DRM_I2C_SIL164=m
CONFIG_DRM_I2C_NXP_TDA998X=m
+CONFIG_DRM_I2C_NXP_TDA9950=m
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
CONFIG_DRM_AMDGPU=m
@@ -5803,7 +5855,6 @@ CONFIG_DRM_AMD_ACP=y
# Display Engine Configuration
#
CONFIG_DRM_AMD_DC=y
-CONFIG_DRM_AMD_DC_PRE_VEGA=y
# CONFIG_DRM_AMD_DC_FBC is not set
CONFIG_DRM_AMD_DC_DCN1_0=y
# CONFIG_DEBUG_KERNEL_DC is not set
@@ -5834,6 +5885,7 @@ CONFIG_DRM_I915_GVT_KVMGT=m
# CONFIG_DRM_I915_DEBUG 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
@@ -5883,6 +5935,7 @@ CONFIG_DRM_PANEL_BRIDGE=y
# Display Interface Bridges
#
CONFIG_DRM_ANALOGIX_ANX78XX=m
+CONFIG_DRM_CDNS_DSI=m
CONFIG_DRM_DUMB_VGA_DAC=m
CONFIG_DRM_LVDS_ENCODER=m
CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW=m
@@ -5891,6 +5944,7 @@ CONFIG_DRM_PARADE_PS8622=m
CONFIG_DRM_SIL_SII8620=m
CONFIG_DRM_SII902X=m
CONFIG_DRM_SII9234=m
+CONFIG_DRM_THINE_THC63LVD1024=m
CONFIG_DRM_TOSHIBA_TC358767=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_I2C_ADV7511=m
@@ -5913,6 +5967,8 @@ CONFIG_TINYDRM_MI0283QT=m
CONFIG_TINYDRM_REPAPER=m
CONFIG_TINYDRM_ST7586=m
CONFIG_TINYDRM_ST7735R=m
+CONFIG_DRM_XEN=y
+CONFIG_DRM_XEN_FRONTEND=m
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
@@ -5985,7 +6041,6 @@ CONFIG_XEN_FBDEV_FRONTEND=m
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_BROADSHEET is not set
-# CONFIG_FB_AUO_K190X is not set
CONFIG_FB_HYPERV=m
CONFIG_FB_SIMPLE=y
# CONFIG_FB_SSD1307 is not set
@@ -6005,6 +6060,7 @@ CONFIG_LCD_LD9040=m
CONFIG_LCD_AMS369FG06=m
CONFIG_LCD_LMS501KF03=m
CONFIG_LCD_HX8357=m
+CONFIG_LCD_OTM3225A=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=m
CONFIG_BACKLIGHT_LM3533=m
@@ -6034,6 +6090,7 @@ CONFIG_BACKLIGHT_GPIO=m
CONFIG_BACKLIGHT_LV5207LP=m
CONFIG_BACKLIGHT_BD6107=m
CONFIG_BACKLIGHT_ARCXCNN=m
+CONFIG_BACKLIGHT_RAVE_SP=m
CONFIG_VIDEOMODE_HELPERS=y
CONFIG_HDMI=y
@@ -6284,7 +6341,6 @@ CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC_INTEL_SST_FIRMWARE=m
CONFIG_SND_SOC_INTEL_HASWELL=m
-CONFIG_SND_SOC_INTEL_BAYTRAIL=m
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m
@@ -6295,8 +6351,6 @@ CONFIG_SND_SOC_INTEL_MACH=y
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
-CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m
-CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
@@ -6423,6 +6477,7 @@ CONFIG_SND_SOC_SIGMADSP_I2C=m
CONFIG_SND_SOC_SIGMADSP_REGMAP=m
CONFIG_SND_SOC_SIRF_AUDIO_CODEC=m
CONFIG_SND_SOC_SPDIF=m
+CONFIG_SND_SOC_SSM2305=m
CONFIG_SND_SOC_SSM2602=m
CONFIG_SND_SOC_SSM2602_SPI=m
CONFIG_SND_SOC_SSM2602_I2C=m
@@ -6447,6 +6502,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
CONFIG_SND_SOC_TLV320AIC3X=m
CONFIG_SND_SOC_TS3A227E=m
CONFIG_SND_SOC_TSCS42XX=m
+CONFIG_SND_SOC_TSCS454=m
CONFIG_SND_SOC_WM8510=m
CONFIG_SND_SOC_WM8523=m
CONFIG_SND_SOC_WM8524=m
@@ -6460,6 +6516,7 @@ CONFIG_SND_SOC_WM8750=m
CONFIG_SND_SOC_WM8753=m
CONFIG_SND_SOC_WM8770=m
CONFIG_SND_SOC_WM8776=m
+CONFIG_SND_SOC_WM8782=m
CONFIG_SND_SOC_WM8804=m
CONFIG_SND_SOC_WM8804_I2C=m
CONFIG_SND_SOC_WM8804_SPI=m
@@ -6471,6 +6528,7 @@ CONFIG_SND_SOC_WM8978=m
CONFIG_SND_SOC_WM8985=m
CONFIG_SND_SOC_ZX_AUD96P22=m
CONFIG_SND_SOC_MAX9759=m
+CONFIG_SND_SOC_MT6351=m
CONFIG_SND_SOC_NAU8540=m
CONFIG_SND_SOC_NAU8810=m
CONFIG_SND_SOC_NAU8824=m
@@ -6484,6 +6542,7 @@ CONFIG_SND_AUDIO_GRAPH_SCU_CARD=m
CONFIG_SND_X86=y
CONFIG_HDMI_LPE_AUDIO=m
CONFIG_SND_SYNTH_EMUX=m
+CONFIG_SND_XEN_FRONTEND=m
CONFIG_AC97_BUS=m
#
@@ -6550,6 +6609,7 @@ CONFIG_LOGIG940_FF=y
CONFIG_LOGIWHEELS_FF=y
CONFIG_HID_MAGICMOUSE=m
CONFIG_HID_MAYFLASH=m
+CONFIG_HID_REDRAGON=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
@@ -6575,6 +6635,7 @@ CONFIG_HID_SAMSUNG=m
CONFIG_HID_SONY=m
CONFIG_SONY_FF=y
CONFIG_HID_SPEEDLINK=m
+CONFIG_HID_STEAM=m
CONFIG_HID_STEELSERIES=m
CONFIG_HID_SUNPLUS=m
CONFIG_HID_RMI=m
@@ -6761,7 +6822,6 @@ CONFIG_USB_CHIPIDEA_OF=m
CONFIG_USB_CHIPIDEA_PCI=m
CONFIG_USB_CHIPIDEA_UDC=y
CONFIG_USB_CHIPIDEA_HOST=y
-CONFIG_USB_CHIPIDEA_ULPI=y
CONFIG_USB_ISP1760=m
CONFIG_USB_ISP1760_HCD=y
CONFIG_USB_ISP1761_UDC=y
@@ -7073,10 +7133,12 @@ CONFIG_LEDS_AS3645A=m
CONFIG_LEDS_BCM6328=m
CONFIG_LEDS_BCM6358=m
CONFIG_LEDS_CPCAP=m
+CONFIG_LEDS_CR0014114=m
CONFIG_LEDS_LM3530=m
CONFIG_LEDS_LM3533=m
CONFIG_LEDS_LM3642=m
CONFIG_LEDS_LM3692X=m
+CONFIG_LEDS_LM3601X=m
CONFIG_LEDS_MT6323=m
CONFIG_LEDS_PCA9532=m
CONFIG_LEDS_PCA9532_GPIO=y
@@ -7483,8 +7545,6 @@ CONFIG_XEN_ACPI=y
CONFIG_XEN_SYMS=y
CONFIG_XEN_HAVE_VPMU=y
CONFIG_STAGING=y
-# CONFIG_IPX is not set
-# CONFIG_NCP_FS is not set
CONFIG_PRISM2_USB=m
CONFIG_COMEDI=m
# CONFIG_COMEDI_DEBUG is not set
@@ -7600,9 +7660,7 @@ CONFIG_VT6656=m
#
# Accelerometers
#
-CONFIG_ADIS16201=m
CONFIG_ADIS16203=m
-CONFIG_ADIS16209=m
CONFIG_ADIS16240=m
#
@@ -7647,17 +7705,8 @@ CONFIG_ADIS16060=m
CONFIG_AD5933=m
#
-# Light sensors
-#
-CONFIG_TSL2x7x=m
-
-#
# Active energy metering IC
#
-CONFIG_ADE7753=m
-CONFIG_ADE7754=m
-CONFIG_ADE7758=m
-CONFIG_ADE7759=m
CONFIG_ADE7854=m
CONFIG_ADE7854_I2C=m
CONFIG_ADE7854_SPI=m
@@ -7666,7 +7715,6 @@ CONFIG_ADE7854_SPI=m
# Resolver to digital converters
#
CONFIG_AD2S90=m
-CONFIG_AD2S1200=m
CONFIG_AD2S1210=m
CONFIG_FB_SM750=m
CONFIG_FB_XGI=m
@@ -7687,10 +7735,17 @@ CONFIG_SPEAKUP_SYNTH_SPKOUT=m
CONFIG_SPEAKUP_SYNTH_TXPRT=m
CONFIG_SPEAKUP_SYNTH_DUMMY=m
CONFIG_STAGING_MEDIA=y
-# CONFIG_INTEL_ATOMISP is not set
CONFIG_I2C_BCM2048=m
CONFIG_SOC_CAMERA_IMX074=m
CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
#
# Android
@@ -7702,12 +7757,6 @@ CONFIG_FWTTY_MAX_TOTAL_PORTS=64
CONFIG_FWTTY_MAX_CARD_PORTS=32
CONFIG_MTD_SPINAND_MT29F=m
CONFIG_MTD_SPINAND_ONDIEECC=y
-CONFIG_LNET=m
-CONFIG_LNET_MAX_PAYLOAD=1048576
-CONFIG_LNET_SELFTEST=m
-CONFIG_LNET_XPRT_IB=m
-CONFIG_LUSTRE_FS=m
-# CONFIG_LUSTRE_DEBUG_EXPENSIVE_CHECK is not set
CONFIG_DGNC=m
CONFIG_GS_FPGABOOT=m
CONFIG_CRYPTO_SKEIN=m
@@ -7733,6 +7782,7 @@ CONFIG_KS7010=m
# USB Power Delivery and Type-C drivers
#
CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_RT1711H=m
CONFIG_DRM_VBOXVIDEO=m
CONFIG_PI433=m
CONFIG_MTK_MMC=m
@@ -7822,6 +7872,7 @@ CONFIG_PMC_ATOM=y
CONFIG_CHROME_PLATFORMS=y
CONFIG_CHROMEOS_LAPTOP=m
CONFIG_CHROMEOS_PSTORE=m
+CONFIG_CHROMEOS_TBMC=m
CONFIG_CROS_EC_CTL=m
CONFIG_CROS_EC_LPC=m
CONFIG_CROS_EC_LPC_MEC=y
@@ -7982,6 +8033,8 @@ CONFIG_IIO_TRIGGERED_EVENT=m
#
# Accelerometers
#
+CONFIG_ADIS16201=m
+CONFIG_ADIS16209=m
CONFIG_BMA180=m
CONFIG_BMA220=m
CONFIG_BMC150_ACCEL=m
@@ -8076,6 +8129,11 @@ CONFIG_VF610_ADC=m
CONFIG_VIPERBOARD_ADC=m
#
+# Analog Front Ends
+#
+CONFIG_IIO_RESCALE=m
+
+#
# Amplifiers
#
CONFIG_AD8366=m
@@ -8126,6 +8184,8 @@ CONFIG_AD5504=m
CONFIG_AD5624R_SPI=m
CONFIG_LTC2632=m
CONFIG_AD5686=m
+CONFIG_AD5686_SPI=m
+CONFIG_AD5696_I2C=m
CONFIG_AD5755=m
CONFIG_AD5761=m
CONFIG_AD5764=m
@@ -8140,6 +8200,7 @@ CONFIG_MAX5821=m
CONFIG_MCP4725=m
CONFIG_MCP4922=m
CONFIG_TI_DAC082S085=m
+CONFIG_TI_DAC5571=m
CONFIG_VF610_DAC=m
#
@@ -8263,6 +8324,7 @@ CONFIG_TCS3414=m
CONFIG_TCS3472=m
CONFIG_SENSORS_TSL2563=m
CONFIG_TSL2583=m
+CONFIG_TSL2772=m
CONFIG_TSL4531=m
CONFIG_US5182D=m
CONFIG_VCNL4000=m
@@ -8367,6 +8429,11 @@ CONFIG_SX9500=m
CONFIG_SRF08=m
#
+# Resolver to digital converters
+#
+CONFIG_AD2S1200=m
+
+#
# Temperature sensors
#
CONFIG_MAXIM_THERMOCOUPLE=m
@@ -8480,6 +8547,7 @@ CONFIG_DAX=y
CONFIG_DEV_DAX=m
CONFIG_DEV_DAX_PMEM=m
CONFIG_NVMEM=y
+CONFIG_RAVE_SP_EEPROM=m
#
# HW tracing support
@@ -8504,6 +8572,7 @@ CONFIG_FPGA_MGR_ALTERA_PS_SPI=m
CONFIG_FPGA_MGR_ALTERA_CVP=m
CONFIG_FPGA_MGR_XILINX_SPI=m
CONFIG_FPGA_MGR_ICE40_SPI=m
+CONFIG_FPGA_MGR_MACHXO2_SPI=m
CONFIG_FPGA_BRIDGE=m
CONFIG_XILINX_PR_DECOUPLER=m
CONFIG_FPGA_REGION=m
@@ -8556,6 +8625,7 @@ CONFIG_EFI_CAPSULE_LOADER=m
CONFIG_APPLE_PROPERTIES=y
CONFIG_RESET_ATTACK_MITIGATION=y
CONFIG_UEFI_CPER=y
+CONFIG_UEFI_CPER_X86=y
CONFIG_EFI_DEV_PATH_PARSER=y
#
@@ -8595,6 +8665,7 @@ CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_RT=y
CONFIG_XFS_ONLINE_SCRUB=y
+CONFIG_XFS_ONLINE_REPAIR=y
# CONFIG_XFS_WARN is not set
# CONFIG_XFS_DEBUG is not set
CONFIG_GFS2_FS=m
@@ -8645,6 +8716,7 @@ CONFIG_QFMT_V2=m
CONFIG_QUOTACTL=y
CONFIG_QUOTACTL_COMPAT=y
CONFIG_AUTOFS4_FS=y
+CONFIG_AUTOFS_FS=y
CONFIG_FUSE_FS=m
CONFIG_CUSE=m
CONFIG_OVERLAY_FS=m
@@ -8673,7 +8745,6 @@ CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
#
# DOS/FAT/NT Filesystems
@@ -8704,6 +8775,7 @@ CONFIG_TMPFS_POSIX_ACL=y
CONFIG_TMPFS_XATTR=y
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
+CONFIG_MEMFD_CREATE=y
CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
CONFIG_CONFIGFS_FS=y
CONFIG_EFIVAR_FS=y
@@ -8973,6 +9045,7 @@ CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
CONFIG_HAVE_ARCH_KASAN=y
# CONFIG_KASAN is not set
CONFIG_ARCH_HAS_KCOV=y
+CONFIG_CC_HAS_SANCOV_TRACE_PC=y
# CONFIG_KCOV is not set
# CONFIG_DEBUG_SHIRQ is not set
@@ -9041,8 +9114,8 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
# CONFIG_NOTIFIER_ERROR_INJECTION is not set
-# CONFIG_FAULT_INJECTION is not set
CONFIG_FUNCTION_ERROR_INJECTION=y
+# CONFIG_FAULT_INJECTION is not set
CONFIG_LATENCYTOP=y
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_NOP_TRACER=y
@@ -9115,6 +9188,7 @@ CONFIG_LKDTM=m
# CONFIG_TEST_PRINTF is not set
# CONFIG_TEST_BITMAP is not set
# CONFIG_TEST_UUID is not set
+# CONFIG_TEST_OVERFLOW is not set
# CONFIG_TEST_RHASHTABLE is not set
# CONFIG_TEST_HASH is not set
# CONFIG_TEST_PARMAN is not set
@@ -9277,6 +9351,19 @@ CONFIG_CRYPTO_ENGINE=m
CONFIG_CRYPTO_CCM=m
CONFIG_CRYPTO_GCM=y
CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_AEGIS128L=m
+CONFIG_CRYPTO_AEGIS256=m
+CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
+CONFIG_CRYPTO_AEGIS128L_AESNI_SSE2=m
+CONFIG_CRYPTO_AEGIS256_AESNI_SSE2=m
+CONFIG_CRYPTO_MORUS640=m
+CONFIG_CRYPTO_MORUS640_GLUE=m
+CONFIG_CRYPTO_MORUS640_SSE2=m
+CONFIG_CRYPTO_MORUS1280=m
+CONFIG_CRYPTO_MORUS1280_GLUE=m
+CONFIG_CRYPTO_MORUS1280_SSE2=m
+CONFIG_CRYPTO_MORUS1280_AVX2=m
CONFIG_CRYPTO_SEQIV=y
CONFIG_CRYPTO_ECHAINIV=m
@@ -9330,7 +9417,7 @@ CONFIG_CRYPTO_SHA512_MB=m
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_SM3=m
+# CONFIG_CRYPTO_SM3 is not set
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
@@ -9368,7 +9455,7 @@ CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
-CONFIG_CRYPTO_SM4=m
+# CONFIG_CRYPTO_SM4 is not set
# CONFIG_CRYPTO_SPECK is not set
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_TWOFISH=m
@@ -9385,6 +9472,7 @@ CONFIG_CRYPTO_LZO=y
CONFIG_CRYPTO_842=m
CONFIG_CRYPTO_LZ4=m
CONFIG_CRYPTO_LZ4HC=m
+CONFIG_CRYPTO_ZSTD=m
#
# Random Number Generation
@@ -9541,9 +9629,14 @@ CONFIG_ASSOCIATIVE_ARRAY=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT_MAP=y
CONFIG_HAS_DMA=y
-CONFIG_SGL_ALLOC=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_DMA_DIRECT_OPS=y
CONFIG_DMA_VIRT_OPS=y
+CONFIG_SWIOTLB=y
+CONFIG_SGL_ALLOC=y
+CONFIG_IOMMU_HELPER=y
CONFIG_CHECK_SIGNATURE=y
CONFIG_CPU_RMAP=y
CONFIG_DQL=y
@@ -9577,6 +9670,7 @@ CONFIG_SG_POOL=y
CONFIG_ARCH_HAS_SG_CHAIN=y
CONFIG_ARCH_HAS_PMEM_API=y
CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
+CONFIG_ARCH_HAS_UACCESS_MCSAFE=y
CONFIG_SBITMAP=y
CONFIG_PARMAN=m
# CONFIG_STRING_SELFTEST is not set
diff --git a/increase-timeout-in-lspcon_wait_mode.patch b/increase-timeout-in-lspcon_wait_mode.patch
new file mode 100644
index 0000000..b94872a
--- /dev/null
+++ b/increase-timeout-in-lspcon_wait_mode.patch
@@ -0,0 +1,23 @@
+From f9199cfdc7f09601adbb40827077991a1f6bd73a Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
+Date: Mon, 13 Aug 2018 00:40:29 +0200
+Subject: [PATCH] Increase timeout in lspcon_wait_mode
+
+From https://bugs.freedesktop.org/attachment.cgi?id=141051&action=edit
+---
+ drivers/gpu/drm/i915/intel_lspcon.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/i915/intel_lspcon.c b/drivers/gpu/drm/i915/intel_lspcon.c
+index 8ae8f42f430a1..be1b08f589a46 100644
+--- a/drivers/gpu/drm/i915/intel_lspcon.c
++++ b/drivers/gpu/drm/i915/intel_lspcon.c
+@@ -74,7 +74,7 @@ static enum drm_lspcon_mode lspcon_wait_mode(struct intel_lspcon *lspcon,
+ DRM_DEBUG_KMS("Waiting for LSPCON mode %s to settle\n",
+ lspcon_mode_name(mode));
+
+- wait_for((current_mode = lspcon_get_current_mode(lspcon)) == mode, 100);
++ wait_for((current_mode = lspcon_get_current_mode(lspcon)) == mode, 1000);
+ if (current_mode != mode)
+ DRM_ERROR("LSPCON mode hasn't settled\n");
+
diff --git a/mac80211-disable-BHs-preemption-in-ieee80211_tx_cont.patch b/mac80211-disable-BHs-preemption-in-ieee80211_tx_cont.patch
deleted file mode 100644
index 6bc71e6..0000000
--- a/mac80211-disable-BHs-preemption-in-ieee80211_tx_cont.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From e7441c9274a6a5453e06f4c2b8b5f72eca0a3f17 Mon Sep 17 00:00:00 2001
-From: Denis Kenzior <denkenz@gmail.com>
-Date: Tue, 19 Jun 2018 10:39:50 -0500
-Subject: [PATCH] mac80211: disable BHs/preemption in
- ieee80211_tx_control_port()
-
-On pre-emption enabled kernels the following print was being seen due to
-missing local_bh_disable/local_bh_enable calls. mac80211 assumes that
-pre-emption is disabled in the data path.
-
- BUG: using smp_processor_id() in preemptible [00000000] code: iwd/517
- caller is __ieee80211_subif_start_xmit+0x144/0x210 [mac80211]
- [...]
- Call Trace:
- dump_stack+0x5c/0x80
- check_preemption_disabled.cold.0+0x46/0x51
- __ieee80211_subif_start_xmit+0x144/0x210 [mac80211]
-
-Fixes: 911806491425 ("mac80211: Add support for tx_control_port")
-Signed-off-by: Denis Kenzior <denkenz@gmail.com>
-[commit message rewrite, fixes tag]
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
----
- net/mac80211/tx.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
-index 44b5dfe8727d..fa1f1e63a264 100644
---- a/net/mac80211/tx.c
-+++ b/net/mac80211/tx.c
-@@ -4845,7 +4845,9 @@ int ieee80211_tx_control_port(struct wiphy *wiphy, struct net_device *dev,
- skb_reset_network_header(skb);
- skb_reset_mac_header(skb);
-
-+ local_bh_disable();
- __ieee80211_subif_start_xmit(skb, skb->dev, flags);
-+ local_bh_enable();
-
- return 0;
- }
---
-2.18.0
-
diff --git a/patch-4.17-ck1-jcmod1.patch b/patch-4.18-ck1-jcmod1.patch
index a3a8fa0..3e0f45d 100644
--- a/patch-4.17-ck1-jcmod1.patch
+++ b/patch-4.18-ck1-jcmod1.patch
@@ -1,8 +1,8 @@
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
-index f2040d46f095..ae023b5df0e3 100644
+index 533ff5c68970..8cd1e9db4643 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
-@@ -3843,6 +3843,14 @@
+@@ -3854,6 +3854,14 @@
Memory area to be used by remote processor image,
managed by CMA.
@@ -833,8 +833,23 @@ index eded671d55eb..3240aa6149d8 100644
+ 2: Expire timeslice and recalculate deadline.
+
+==============================================================
+diff --git a/Makefile b/Makefile
+index 863f58503bee..b2e1bab31084 100644
+--- a/Makefile
++++ b/Makefile
+@@ -15,6 +15,10 @@ NAME = Merciless Moray
+ PHONY := _all
+ _all:
+
++CKVERSION = -ck1
++CKNAME = MuQSS Powered
++EXTRAVERSION := $(EXTRAVERSION)$(CKVERSION)
++
+ # o Do not use make's built-in rules and variables
+ # (this increases performance and avoids hard-to-debug behaviour);
+ # o Look for make include files relative to root of kernel src
diff --git a/arch/arc/configs/tb10x_defconfig b/arch/arc/configs/tb10x_defconfig
-index 1aca2e8fd1ba..f892be336781 100644
+index 2cc87f909747..5bdf547dccbc 100644
--- a/arch/arc/configs/tb10x_defconfig
+++ b/arch/arc/configs/tb10x_defconfig
@@ -28,7 +28,7 @@ CONFIG_ARC_PLAT_TB10X=y
@@ -847,7 +862,7 @@ index 1aca2e8fd1ba..f892be336781 100644
CONFIG_NET=y
CONFIG_PACKET=y
diff --git a/arch/arm/configs/bcm2835_defconfig b/arch/arm/configs/bcm2835_defconfig
-index 8682b15336b9..b5cab442078a 100644
+index e4d188f0a4b4..d75f478acaab 100644
--- a/arch/arm/configs/bcm2835_defconfig
+++ b/arch/arm/configs/bcm2835_defconfig
@@ -29,7 +29,7 @@ CONFIG_MODULE_UNLOAD=y
@@ -860,10 +875,10 @@ index 8682b15336b9..b5cab442078a 100644
CONFIG_KSM=y
CONFIG_CLEANCACHE=y
diff --git a/arch/arm/configs/imx_v6_v7_defconfig b/arch/arm/configs/imx_v6_v7_defconfig
-index 3a308437b088..f1270bc684fc 100644
+index 200ebda47e0c..2879135c57da 100644
--- a/arch/arm/configs/imx_v6_v7_defconfig
+++ b/arch/arm/configs/imx_v6_v7_defconfig
-@@ -47,7 +47,7 @@ CONFIG_PCI_MSI=y
+@@ -48,7 +48,7 @@ CONFIG_PCI_MSI=y
CONFIG_PCI_IMX6=y
CONFIG_SMP=y
CONFIG_ARM_PSCI=y
@@ -3835,18 +3850,400 @@ index 52c9050a7c5c..8d86d2e989f4 100644
CONFIG_GSC_LASI=y
CONFIG_GSC_WAX=y
diff --git a/arch/powerpc/configs/c2k_defconfig b/arch/powerpc/configs/c2k_defconfig
-index 6c1196b0f81e..04fee07ea6c5 100644
---- a/arch/powerpc/configs/c2k_defconfig
+new file mode 100644
+index 000000000000..04fee07ea6c5
+--- /dev/null
+++ b/arch/powerpc/configs/c2k_defconfig
-@@ -29,7 +29,7 @@ CONFIG_CPU_FREQ_GOV_POWERSAVE=m
- CONFIG_CPU_FREQ_GOV_ONDEMAND=m
- CONFIG_GEN_RTC=y
- CONFIG_HIGHMEM=y
--CONFIG_PREEMPT_VOLUNTARY=y
+@@ -0,0 +1,389 @@
++CONFIG_SYSVIPC=y
++CONFIG_POSIX_MQUEUE=y
++CONFIG_AUDIT=y
++CONFIG_BSD_PROCESS_ACCT=y
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_PROFILING=y
++CONFIG_OPROFILE=m
++CONFIG_KPROBES=y
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++CONFIG_MODVERSIONS=y
++CONFIG_PARTITION_ADVANCED=y
++CONFIG_OSF_PARTITION=y
++CONFIG_MAC_PARTITION=y
++CONFIG_BSD_DISKLABEL=y
++CONFIG_MINIX_SUBPARTITION=y
++CONFIG_SOLARIS_X86_PARTITION=y
++CONFIG_UNIXWARE_DISKLABEL=y
++CONFIG_SGI_PARTITION=y
++CONFIG_SUN_PARTITION=y
++# CONFIG_PPC_CHRP is not set
++# CONFIG_PPC_PMAC is not set
++CONFIG_EMBEDDED6xx=y
++CONFIG_PPC_C2K=y
++CONFIG_CPU_FREQ=y
++CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
++CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
++CONFIG_CPU_FREQ_GOV_POWERSAVE=m
++CONFIG_CPU_FREQ_GOV_ONDEMAND=m
++CONFIG_GEN_RTC=y
++CONFIG_HIGHMEM=y
+CONFIG_PREEMPT=y
- CONFIG_BINFMT_MISC=y
- CONFIG_PM=y
- CONFIG_PCI_MSI=y
++CONFIG_BINFMT_MISC=y
++CONFIG_PM=y
++CONFIG_PCI_MSI=y
++CONFIG_HOTPLUG_PCI=y
++CONFIG_HOTPLUG_PCI_SHPC=m
++CONFIG_NET=y
++CONFIG_PACKET=y
++CONFIG_UNIX=y
++CONFIG_XFRM_USER=y
++CONFIG_NET_KEY=m
++CONFIG_INET=y
++CONFIG_IP_MULTICAST=y
++CONFIG_IP_ADVANCED_ROUTER=y
++CONFIG_IP_MULTIPLE_TABLES=y
++CONFIG_IP_ROUTE_MULTIPATH=y
++CONFIG_IP_ROUTE_VERBOSE=y
++CONFIG_IP_PNP=y
++CONFIG_IP_PNP_DHCP=y
++CONFIG_NET_IPIP=m
++CONFIG_IP_MROUTE=y
++CONFIG_IP_PIMSM_V1=y
++CONFIG_IP_PIMSM_V2=y
++CONFIG_SYN_COOKIES=y
++CONFIG_INET_AH=m
++CONFIG_INET_ESP=m
++CONFIG_INET_IPCOMP=m
++CONFIG_INET6_AH=m
++CONFIG_INET6_ESP=m
++CONFIG_INET6_IPCOMP=m
++CONFIG_IPV6_TUNNEL=m
++CONFIG_NETFILTER=y
++# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
++CONFIG_IP_NF_IPTABLES=m
++CONFIG_IP_NF_MATCH_ECN=m
++CONFIG_IP_NF_MATCH_TTL=m
++CONFIG_IP_NF_FILTER=m
++CONFIG_IP_NF_TARGET_REJECT=m
++CONFIG_IP_NF_MANGLE=m
++CONFIG_IP_NF_TARGET_ECN=m
++CONFIG_IP_NF_RAW=m
++CONFIG_IP_NF_ARPTABLES=m
++CONFIG_IP_NF_ARPFILTER=m
++CONFIG_IP_NF_ARP_MANGLE=m
++CONFIG_IP6_NF_IPTABLES=m
++CONFIG_IP6_NF_MATCH_EUI64=m
++CONFIG_IP6_NF_MATCH_FRAG=m
++CONFIG_IP6_NF_MATCH_OPTS=m
++CONFIG_IP6_NF_MATCH_HL=m
++CONFIG_IP6_NF_MATCH_IPV6HEADER=m
++CONFIG_IP6_NF_MATCH_RT=m
++CONFIG_IP6_NF_FILTER=m
++CONFIG_IP6_NF_MANGLE=m
++CONFIG_IP6_NF_RAW=m
++CONFIG_BRIDGE_NF_EBTABLES=m
++CONFIG_BRIDGE_EBT_BROUTE=m
++CONFIG_BRIDGE_EBT_T_FILTER=m
++CONFIG_BRIDGE_EBT_T_NAT=m
++CONFIG_BRIDGE_EBT_802_3=m
++CONFIG_BRIDGE_EBT_AMONG=m
++CONFIG_BRIDGE_EBT_ARP=m
++CONFIG_BRIDGE_EBT_IP=m
++CONFIG_BRIDGE_EBT_LIMIT=m
++CONFIG_BRIDGE_EBT_MARK=m
++CONFIG_BRIDGE_EBT_PKTTYPE=m
++CONFIG_BRIDGE_EBT_STP=m
++CONFIG_BRIDGE_EBT_VLAN=m
++CONFIG_BRIDGE_EBT_ARPREPLY=m
++CONFIG_BRIDGE_EBT_DNAT=m
++CONFIG_BRIDGE_EBT_MARK_T=m
++CONFIG_BRIDGE_EBT_REDIRECT=m
++CONFIG_BRIDGE_EBT_SNAT=m
++CONFIG_BRIDGE_EBT_LOG=m
++CONFIG_IP_SCTP=m
++CONFIG_ATM=m
++CONFIG_ATM_CLIP=m
++CONFIG_ATM_LANE=m
++CONFIG_ATM_BR2684=m
++CONFIG_BRIDGE=m
++CONFIG_VLAN_8021Q=m
++CONFIG_NET_SCHED=y
++CONFIG_NET_SCH_CBQ=m
++CONFIG_NET_SCH_HTB=m
++CONFIG_NET_SCH_HFSC=m
++CONFIG_NET_SCH_ATM=m
++CONFIG_NET_SCH_PRIO=m
++CONFIG_NET_SCH_RED=m
++CONFIG_NET_SCH_SFQ=m
++CONFIG_NET_SCH_TEQL=m
++CONFIG_NET_SCH_TBF=m
++CONFIG_NET_SCH_GRED=m
++CONFIG_NET_SCH_DSMARK=m
++CONFIG_NET_SCH_NETEM=m
++CONFIG_NET_CLS_TCINDEX=m
++CONFIG_NET_CLS_ROUTE4=m
++CONFIG_NET_CLS_FW=m
++CONFIG_NET_CLS_U32=m
++CONFIG_CLS_U32_PERF=y
++CONFIG_NET_CLS_RSVP=m
++CONFIG_NET_CLS_RSVP6=m
++CONFIG_NET_CLS_IND=y
++CONFIG_BT=m
++CONFIG_BT_RFCOMM=m
++CONFIG_BT_RFCOMM_TTY=y
++CONFIG_BT_BNEP=m
++CONFIG_BT_BNEP_MC_FILTER=y
++CONFIG_BT_BNEP_PROTO_FILTER=y
++CONFIG_BT_HIDP=m
++CONFIG_BT_HCIUART=m
++CONFIG_BT_HCIUART_H4=y
++CONFIG_BT_HCIUART_BCSP=y
++CONFIG_BT_HCIBCM203X=m
++CONFIG_BT_HCIBFUSB=m
++CONFIG_BT_HCIVHCI=m
++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_MTD=y
++CONFIG_MTD_BLOCK=y
++CONFIG_MTD_CFI=y
++CONFIG_MTD_CFI_AMDSTD=y
++CONFIG_MTD_COMPLEX_MAPPINGS=y
++CONFIG_MTD_PHYSMAP_OF=y
++CONFIG_BLK_DEV_LOOP=m
++CONFIG_BLK_DEV_CRYPTOLOOP=m
++CONFIG_BLK_DEV_NBD=m
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_SIZE=16384
++CONFIG_SCSI=m
++CONFIG_BLK_DEV_SD=m
++CONFIG_CHR_DEV_ST=m
++CONFIG_CHR_DEV_OSST=m
++CONFIG_BLK_DEV_SR=m
++CONFIG_BLK_DEV_SR_VENDOR=y
++CONFIG_CHR_DEV_SG=m
++CONFIG_SCSI_CONSTANTS=y
++CONFIG_SCSI_LOGGING=y
++CONFIG_SCSI_ISCSI_ATTRS=m
++CONFIG_BLK_DEV_3W_XXXX_RAID=m
++CONFIG_SCSI_3W_9XXX=m
++CONFIG_SCSI_ACARD=m
++CONFIG_SCSI_AACRAID=m
++CONFIG_SCSI_AIC7XXX=m
++CONFIG_AIC7XXX_CMDS_PER_DEVICE=4
++CONFIG_AIC7XXX_RESET_DELAY_MS=15000
++# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
++# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
++CONFIG_SCSI_AIC79XX=m
++CONFIG_AIC79XX_CMDS_PER_DEVICE=4
++CONFIG_AIC79XX_RESET_DELAY_MS=15000
++# CONFIG_AIC79XX_DEBUG_ENABLE is not set
++# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
++CONFIG_SCSI_ARCMSR=m
++CONFIG_MEGARAID_NEWGEN=y
++CONFIG_MEGARAID_MM=m
++CONFIG_MEGARAID_MAILBOX=m
++CONFIG_MEGARAID_SAS=m
++CONFIG_SCSI_GDTH=m
++CONFIG_SCSI_IPS=m
++CONFIG_SCSI_INITIO=m
++CONFIG_SCSI_SYM53C8XX_2=m
++CONFIG_SCSI_QLOGIC_1280=m
++CONFIG_NETDEVICES=y
++CONFIG_BONDING=m
++CONFIG_DUMMY=m
++CONFIG_NETCONSOLE=m
++CONFIG_TUN=m
++# CONFIG_ATM_DRIVERS is not set
++CONFIG_MV643XX_ETH=y
++CONFIG_VITESSE_PHY=y
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_KEYBOARD is not set
++# CONFIG_INPUT_MOUSE is not set
++CONFIG_INPUT_MISC=y
++CONFIG_INPUT_UINPUT=m
++# CONFIG_SERIO is not set
++# CONFIG_LEGACY_PTYS is not set
++CONFIG_SERIAL_NONSTANDARD=y
++CONFIG_SERIAL_MPSC=y
++CONFIG_SERIAL_MPSC_CONSOLE=y
++CONFIG_NVRAM=m
++CONFIG_RAW_DRIVER=y
++CONFIG_MAX_RAW_DEVS=8192
++CONFIG_I2C=m
++CONFIG_I2C_CHARDEV=m
++CONFIG_I2C_MV64XXX=m
++CONFIG_HWMON=m
++CONFIG_SENSORS_ADM1021=m
++CONFIG_SENSORS_ADM1025=m
++CONFIG_SENSORS_ADM1026=m
++CONFIG_SENSORS_ADM1031=m
++CONFIG_SENSORS_DS1621=m
++CONFIG_SENSORS_GL518SM=m
++CONFIG_SENSORS_MAX1619=m
++CONFIG_SENSORS_LM75=m
++CONFIG_SENSORS_LM77=m
++CONFIG_SENSORS_LM78=m
++CONFIG_SENSORS_LM80=m
++CONFIG_SENSORS_LM83=m
++CONFIG_SENSORS_LM85=m
++CONFIG_SENSORS_LM87=m
++CONFIG_SENSORS_LM90=m
++CONFIG_SENSORS_PCF8591=m
++CONFIG_SENSORS_VIA686A=m
++CONFIG_SENSORS_W83781D=m
++CONFIG_SENSORS_W83L785TS=m
++CONFIG_WATCHDOG=y
++CONFIG_SOFT_WATCHDOG=m
++CONFIG_PCIPCWATCHDOG=m
++CONFIG_WDTPCI=m
++CONFIG_USBPCWATCHDOG=m
++# CONFIG_VGA_CONSOLE is not set
++CONFIG_USB=m
++CONFIG_USB_MON=m
++CONFIG_USB_EHCI_HCD=m
++CONFIG_USB_EHCI_ROOT_HUB_TT=y
++CONFIG_USB_OHCI_HCD=m
++CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
++CONFIG_USB_UHCI_HCD=m
++CONFIG_USB_ACM=m
++CONFIG_USB_PRINTER=m
++CONFIG_USB_STORAGE=m
++CONFIG_USB_STORAGE_DATAFAB=m
++CONFIG_USB_STORAGE_FREECOM=m
++CONFIG_USB_STORAGE_ISD200=m
++CONFIG_USB_STORAGE_SDDR09=m
++CONFIG_USB_STORAGE_SDDR55=m
++CONFIG_USB_STORAGE_JUMPSHOT=m
++CONFIG_USB_MDC800=m
++CONFIG_USB_MICROTEK=m
++CONFIG_USB_SERIAL=m
++CONFIG_USB_SERIAL_GENERIC=y
++CONFIG_USB_SERIAL_BELKIN=m
++CONFIG_USB_SERIAL_WHITEHEAT=m
++CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
++CONFIG_USB_SERIAL_EMPEG=m
++CONFIG_USB_SERIAL_FTDI_SIO=m
++CONFIG_USB_SERIAL_VISOR=m
++CONFIG_USB_SERIAL_IPAQ=m
++CONFIG_USB_SERIAL_IR=m
++CONFIG_USB_SERIAL_EDGEPORT=m
++CONFIG_USB_SERIAL_EDGEPORT_TI=m
++CONFIG_USB_SERIAL_KEYSPAN_PDA=m
++CONFIG_USB_SERIAL_KEYSPAN=m
++CONFIG_USB_SERIAL_KLSI=m
++CONFIG_USB_SERIAL_KOBIL_SCT=m
++CONFIG_USB_SERIAL_MCT_U232=m
++CONFIG_USB_SERIAL_PL2303=m
++CONFIG_USB_SERIAL_SAFE=m
++CONFIG_USB_SERIAL_SAFE_PADDED=y
++CONFIG_USB_SERIAL_CYBERJACK=m
++CONFIG_USB_SERIAL_XIRCOM=m
++CONFIG_USB_SERIAL_OMNINET=m
++CONFIG_USB_EMI62=m
++CONFIG_USB_RIO500=m
++CONFIG_USB_LEGOTOWER=m
++CONFIG_USB_LCD=m
++CONFIG_USB_LED=m
++CONFIG_USB_TEST=m
++CONFIG_USB_ATM=m
++CONFIG_USB_SPEEDTOUCH=m
++CONFIG_INFINIBAND=m
++CONFIG_INFINIBAND_USER_MAD=m
++CONFIG_INFINIBAND_USER_ACCESS=m
++CONFIG_INFINIBAND_MTHCA=m
++CONFIG_INFINIBAND_IPOIB=m
++CONFIG_INFINIBAND_IPOIB_CM=y
++CONFIG_INFINIBAND_SRP=m
++CONFIG_DMADEVICES=y
++CONFIG_EXT4_FS=m
++CONFIG_EXT4_FS_POSIX_ACL=y
++CONFIG_EXT4_FS_SECURITY=y
++CONFIG_QUOTA=y
++CONFIG_QFMT_V2=y
++CONFIG_AUTOFS4_FS=m
++CONFIG_UDF_FS=m
++CONFIG_MSDOS_FS=m
++CONFIG_VFAT_FS=m
++CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
++CONFIG_PROC_KCORE=y
++CONFIG_TMPFS=y
++CONFIG_HFS_FS=m
++CONFIG_HFSPLUS_FS=m
++CONFIG_JFFS2_FS=y
++CONFIG_CRAMFS=m
++CONFIG_VXFS_FS=m
++CONFIG_NFS_FS=y
++CONFIG_NFS_V3_ACL=y
++CONFIG_NFS_V4=y
++CONFIG_ROOT_NFS=y
++CONFIG_CIFS=m
++CONFIG_CIFS_XATTR=y
++CONFIG_CIFS_POSIX=y
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="utf8"
++CONFIG_NLS_CODEPAGE_437=y
++CONFIG_NLS_CODEPAGE_737=m
++CONFIG_NLS_CODEPAGE_775=m
++CONFIG_NLS_CODEPAGE_850=m
++CONFIG_NLS_CODEPAGE_852=m
++CONFIG_NLS_CODEPAGE_855=m
++CONFIG_NLS_CODEPAGE_857=m
++CONFIG_NLS_CODEPAGE_860=m
++CONFIG_NLS_CODEPAGE_861=m
++CONFIG_NLS_CODEPAGE_862=m
++CONFIG_NLS_CODEPAGE_863=m
++CONFIG_NLS_CODEPAGE_864=m
++CONFIG_NLS_CODEPAGE_865=m
++CONFIG_NLS_CODEPAGE_866=m
++CONFIG_NLS_CODEPAGE_869=m
++CONFIG_NLS_CODEPAGE_936=m
++CONFIG_NLS_CODEPAGE_950=m
++CONFIG_NLS_CODEPAGE_932=m
++CONFIG_NLS_CODEPAGE_949=m
++CONFIG_NLS_CODEPAGE_874=m
++CONFIG_NLS_ISO8859_8=m
++CONFIG_NLS_CODEPAGE_1250=m
++CONFIG_NLS_CODEPAGE_1251=m
++CONFIG_NLS_ASCII=y
++CONFIG_NLS_ISO8859_1=m
++CONFIG_NLS_ISO8859_2=m
++CONFIG_NLS_ISO8859_3=m
++CONFIG_NLS_ISO8859_4=m
++CONFIG_NLS_ISO8859_5=m
++CONFIG_NLS_ISO8859_6=m
++CONFIG_NLS_ISO8859_7=m
++CONFIG_NLS_ISO8859_9=m
++CONFIG_NLS_ISO8859_13=m
++CONFIG_NLS_ISO8859_14=m
++CONFIG_NLS_ISO8859_15=m
++CONFIG_NLS_KOI8_R=m
++CONFIG_NLS_KOI8_U=m
++CONFIG_CRC_CCITT=m
++CONFIG_CRC_T10DIF=m
++CONFIG_DEBUG_INFO=y
++CONFIG_MAGIC_SYSRQ=y
++CONFIG_DEBUG_KERNEL=y
++CONFIG_DEBUG_STACK_USAGE=y
++CONFIG_DEBUG_HIGHMEM=y
++CONFIG_DEBUG_STACKOVERFLOW=y
++CONFIG_DETECT_HUNG_TASK=y
++CONFIG_DEBUG_SPINLOCK=y
++CONFIG_BOOTX_TEXT=y
++CONFIG_PPC_EARLY_DEBUG=y
++CONFIG_SECURITY=y
++CONFIG_SECURITY_NETWORK=y
++CONFIG_SECURITY_SELINUX=y
++CONFIG_SECURITY_SELINUX_BOOTPARAM=y
++CONFIG_SECURITY_SELINUX_DISABLE=y
++CONFIG_CRYPTO_HMAC=y
++CONFIG_CRYPTO_MICHAEL_MIC=m
++CONFIG_CRYPTO_SHA1=y
++CONFIG_CRYPTO_SHA512=m
++CONFIG_CRYPTO_WP512=m
++CONFIG_CRYPTO_BLOWFISH=m
++CONFIG_CRYPTO_CAST6=m
++CONFIG_CRYPTO_KHAZAD=m
++CONFIG_CRYPTO_SERPENT=m
++CONFIG_CRYPTO_TEA=m
++CONFIG_CRYPTO_TWOFISH=m
diff --git a/arch/powerpc/configs/ppc6xx_defconfig b/arch/powerpc/configs/ppc6xx_defconfig
index 7ee736f20774..8663c0043a56 100644
--- a/arch/powerpc/configs/ppc6xx_defconfig
@@ -3861,7 +4258,7 @@ index 7ee736f20774..8663c0043a56 100644
CONFIG_HIBERNATION=y
CONFIG_PM_DEBUG=y
diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c
-index ccc421503363..84545f768d8e 100644
+index c9ef3c532169..1298454c0499 100644
--- a/arch/powerpc/platforms/cell/spufs/sched.c
+++ b/arch/powerpc/platforms/cell/spufs/sched.c
@@ -64,11 +64,6 @@ static struct task_struct *spusched_task;
@@ -4966,10 +5363,10 @@ index 000000000000..e8c4003cbd81
+CONFIG_CRC_CCITT=m
+CONFIG_CRC7=m
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
-index c07f492b871a..301b1d780ac9 100644
+index 887d3a7bb646..90cd722a0277 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
-@@ -1011,10 +1011,26 @@ config SCHED_SMT
+@@ -1009,10 +1009,26 @@ config SCHED_SMT
depends on SMP
---help---
SMT scheduler support improves the CPU scheduler's decision making
@@ -4997,7 +5394,7 @@ index c07f492b871a..301b1d780ac9 100644
config SCHED_MC
def_bool y
prompt "Multi-core scheduler support"
-@@ -1045,6 +1061,79 @@ config SCHED_MC_PRIO
+@@ -1043,6 +1059,79 @@ config SCHED_MC_PRIO
If unsure say Y here.
@@ -5077,7 +5474,7 @@ index c07f492b871a..301b1d780ac9 100644
source "kernel/Kconfig.preempt"
config UP_LATE_INIT
-@@ -1409,7 +1498,7 @@ config HIGHMEM64G
+@@ -1407,7 +1496,7 @@ config HIGHMEM64G
endchoice
choice
@@ -5086,7 +5483,7 @@ index c07f492b871a..301b1d780ac9 100644
default VMSPLIT_3G
depends on X86_32
---help---
-@@ -1429,17 +1518,17 @@ choice
+@@ -1427,17 +1516,17 @@ choice
option alone!
config VMSPLIT_3G
@@ -5180,23 +5577,23 @@ index 0e31884a9519..16fcfbde31d5 100644
swim_select(base, RELAX);
if (!swim_readbit(base, STEP))
diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
-index 05ec530b8a3a..309c62ef80d1 100644
+index 51790dd02afb..4dfca4e8ef54 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
-@@ -879,7 +879,7 @@ static int qca_set_baudrate(struct hci_dev *hdev, uint8_t baudrate)
+@@ -909,7 +909,7 @@ static int qca_set_baudrate(struct hci_dev *hdev, uint8_t baudrate)
* then host can communicate with new baudrate to controller
*/
set_current_state(TASK_UNINTERRUPTIBLE);
- schedule_timeout(msecs_to_jiffies(BAUDRATE_SETTLE_TIMEOUT_MS));
+ schedule_msec_hrtimeout((BAUDRATE_SETTLE_TIMEOUT_MS));
- set_current_state(TASK_INTERRUPTIBLE);
+ set_current_state(TASK_RUNNING);
return 0;
diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
-index 361148938801..8a5f55ca9bbc 100644
+index 51832b8a2c62..e842e2e30b57 100644
--- a/drivers/char/ipmi/ipmi_msghandler.c
+++ b/drivers/char/ipmi/ipmi_msghandler.c
-@@ -3511,7 +3511,7 @@ static void cleanup_smi_msgs(ipmi_smi_t intf)
+@@ -3447,7 +3447,7 @@ static void cleanup_smi_msgs(struct ipmi_smi *intf)
/* Current message first, to preserve order */
while (intf->curr_msg && !list_empty(&intf->waiting_rcv_msgs)) {
/* Wait for the message to clear out. */
@@ -5206,10 +5603,10 @@ index 361148938801..8a5f55ca9bbc 100644
/* No need for locks, the interface is down. */
diff --git a/drivers/char/ipmi/ipmi_ssif.c b/drivers/char/ipmi/ipmi_ssif.c
-index 35a82f4bfd78..567684c8150f 100644
+index 18e4650c233b..d6a5f4aba10d 100644
--- a/drivers/char/ipmi/ipmi_ssif.c
+++ b/drivers/char/ipmi/ipmi_ssif.c
-@@ -1250,7 +1250,7 @@ static int ssif_remove(struct i2c_client *client)
+@@ -1206,7 +1206,7 @@ static void shutdown_ssif(void *send_info)
/* make sure the driver is not looking for flags any more. */
while (ssif_info->ssif_state != SSIF_NORMAL)
@@ -5481,10 +5878,10 @@ index f530a80f5051..76905e410197 100644
return err;
diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
-index 0867f7275852..839a4b357c5e 100644
+index aeca484a75b8..4cf84e394e2a 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
-@@ -2561,7 +2561,7 @@ static void lan78xx_terminate_urbs(struct lan78xx_net *dev)
+@@ -2690,7 +2690,7 @@ static void lan78xx_terminate_urbs(struct lan78xx_net *dev)
while (!skb_queue_empty(&dev->rxq) &&
!skb_queue_empty(&dev->txq) &&
!skb_queue_empty(&dev->done)) {
@@ -5494,7 +5891,7 @@ index 0867f7275852..839a4b357c5e 100644
netif_dbg(dev, ifdown, dev->net,
"waited for %d urb completions\n", temp);
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
-index d9eea8cfe6cb..48dbe8b63500 100644
+index 770aa624147f..9384de186bf9 100644
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -770,7 +770,7 @@ static void wait_skb_queue_empty(struct sk_buff_head *q)
@@ -5507,7 +5904,7 @@ index d9eea8cfe6cb..48dbe8b63500 100644
spin_lock_irqsave(&q->lock, flags);
}
diff --git a/drivers/net/wireless/intel/ipw2x00/ipw2100.c b/drivers/net/wireless/intel/ipw2x00/ipw2100.c
-index 236b52423506..c2f6f35ff728 100644
+index b8fd3cc90634..8ff752aa56aa 100644
--- a/drivers/net/wireless/intel/ipw2x00/ipw2100.c
+++ b/drivers/net/wireless/intel/ipw2x00/ipw2100.c
@@ -830,7 +830,7 @@ static int ipw2100_hw_send_command(struct ipw2100_priv *priv,
@@ -5555,7 +5952,7 @@ index 5d41dda6da4e..34705f6b423f 100644
}
else
diff --git a/drivers/platform/x86/intel_ips.c b/drivers/platform/x86/intel_ips.c
-index a0c95853fd3f..18fd7b1b4ee0 100644
+index 014fc1634a3d..ba167ffdf228 100644
--- a/drivers/platform/x86/intel_ips.c
+++ b/drivers/platform/x86/intel_ips.c
@@ -809,7 +809,7 @@ static int ips_adjust(void *data)
@@ -5626,7 +6023,7 @@ index 483c7993516b..fddbaa475066 100644
if (rtc_ctrl & WM8350_RTC_ALMSTS)
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
-index 11e89e56b865..8841ff3ef891 100644
+index 35c909bbf8ba..b1378636fb45 100644
--- a/drivers/scsi/Kconfig
+++ b/drivers/scsi/Kconfig
@@ -50,6 +50,7 @@ config SCSI_NETLINK
@@ -5660,10 +6057,10 @@ index 8cbd3c9f0b4c..7e3f9baa4ac6 100644
/* walk again to check, if IOs are still pending in fw */
if (fnic_is_abts_pending(fnic, lr_sc))
diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
-index 050f04418f5f..e3bc5100b057 100644
+index a94fb9f8bb44..45bb5cde6637 100644
--- a/drivers/scsi/lpfc/lpfc_scsi.c
+++ b/drivers/scsi/lpfc/lpfc_scsi.c
-@@ -5155,7 +5155,7 @@ lpfc_reset_flush_io_context(struct lpfc_vport *vport, uint16_t tgt_id,
+@@ -5146,7 +5146,7 @@ lpfc_reset_flush_io_context(struct lpfc_vport *vport, uint16_t tgt_id,
tgt_id, lun_id, context);
later = msecs_to_jiffies(2 * vport->cfg_devloss_tmo * 1000) + jiffies;
while (time_after(later, jiffies) && cnt) {
@@ -5673,7 +6070,7 @@ index 050f04418f5f..e3bc5100b057 100644
}
if (cnt) {
diff --git a/drivers/scsi/snic/snic_scsi.c b/drivers/scsi/snic/snic_scsi.c
-index d8a376b7882d..9d0e67d98b2c 100644
+index d9b2e46424aa..4a313a0f2039 100644
--- a/drivers/scsi/snic/snic_scsi.c
+++ b/drivers/scsi/snic/snic_scsi.c
@@ -2354,7 +2354,7 @@ snic_reset(struct Scsi_Host *shost, struct scsi_cmnd *sc)
@@ -5699,18 +6096,437 @@ index e40a2c0a9543..fc5b39f1f9ca 100644
}
if (i == timeout) {
diff --git a/drivers/staging/lustre/lnet/lnet/lib-eq.c b/drivers/staging/lustre/lnet/lnet/lib-eq.c
-index ea53b5cb3f72..8cca151741b2 100644
---- a/drivers/staging/lustre/lnet/lnet/lib-eq.c
+new file mode 100644
+index 000000000000..8cca151741b2
+--- /dev/null
+++ b/drivers/staging/lustre/lnet/lnet/lib-eq.c
-@@ -329,7 +329,7 @@ __must_hold(&the_lnet.ln_eq_wait_lock)
- schedule();
- } else {
- now = jiffies;
-- schedule_timeout(msecs_to_jiffies(tms));
+@@ -0,0 +1,426 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * GPL HEADER START
++ *
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 only,
++ * as published by the Free Software Foundation.
++ *
++ * 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 version 2 for more details (a copy is included
++ * in the LICENSE file that accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License
++ * version 2 along with this program; If not, see
++ * http://www.gnu.org/licenses/gpl-2.0.html
++ *
++ * GPL HEADER END
++ */
++/*
++ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
++ * Use is subject to license terms.
++ *
++ * Copyright (c) 2012, Intel Corporation.
++ */
++/*
++ * This file is part of Lustre, http://www.lustre.org/
++ * Lustre is a trademark of Sun Microsystems, Inc.
++ *
++ * lnet/lnet/lib-eq.c
++ *
++ * Library level Event queue management routines
++ */
++
++#define DEBUG_SUBSYSTEM S_LNET
++
++#include <linux/lnet/lib-lnet.h>
++
++/**
++ * Create an event queue that has room for \a count number of events.
++ *
++ * The event queue is circular and older events will be overwritten by new
++ * ones if they are not removed in time by the user using the functions
++ * LNetEQGet(), LNetEQWait(), or LNetEQPoll(). It is up to the user to
++ * determine the appropriate size of the event queue to prevent this loss
++ * of events. Note that when EQ handler is specified in \a callback, no
++ * event loss can happen, since the handler is run for each event deposited
++ * into the EQ.
++ *
++ * \param count The number of events to be stored in the event queue. It
++ * will be rounded up to the next power of two.
++ * \param callback A handler function that runs when an event is deposited
++ * into the EQ. The constant value LNET_EQ_HANDLER_NONE can be used to
++ * indicate that no event handler is desired.
++ * \param handle On successful return, this location will hold a handle for
++ * the newly created EQ.
++ *
++ * \retval 0 On success.
++ * \retval -EINVAL If an parameter is not valid.
++ * \retval -ENOMEM If memory for the EQ can't be allocated.
++ *
++ * \see lnet_eq_handler_t for the discussion on EQ handler semantics.
++ */
++int
++LNetEQAlloc(unsigned int count, lnet_eq_handler_t callback,
++ struct lnet_handle_eq *handle)
++{
++ struct lnet_eq *eq;
++
++ LASSERT(the_lnet.ln_refcount > 0);
++
++ /*
++ * We need count to be a power of 2 so that when eq_{enq,deq}_seq
++ * overflow, they don't skip entries, so the queue has the same
++ * apparent capacity at all times
++ */
++ if (count)
++ count = roundup_pow_of_two(count);
++
++ if (callback != LNET_EQ_HANDLER_NONE && count)
++ CWARN("EQ callback is guaranteed to get every event, do you still want to set eqcount %d for polling event which will have locking overhead? Please contact with developer to confirm\n", count);
++
++ /*
++ * count can be 0 if only need callback, we can eliminate
++ * overhead of enqueue event
++ */
++ if (!count && callback == LNET_EQ_HANDLER_NONE)
++ return -EINVAL;
++
++ eq = kzalloc(sizeof(*eq), GFP_NOFS);
++ if (!eq)
++ return -ENOMEM;
++
++ if (count) {
++ eq->eq_events = kvmalloc_array(count, sizeof(struct lnet_event),
++ GFP_KERNEL | __GFP_ZERO);
++ if (!eq->eq_events)
++ goto failed;
++ /*
++ * NB allocator has set all event sequence numbers to 0,
++ * so all them should be earlier than eq_deq_seq
++ */
++ }
++
++ eq->eq_deq_seq = 1;
++ eq->eq_enq_seq = 1;
++ eq->eq_size = count;
++ eq->eq_callback = callback;
++
++ eq->eq_refs = cfs_percpt_alloc(lnet_cpt_table(),
++ sizeof(*eq->eq_refs[0]));
++ if (!eq->eq_refs)
++ goto failed;
++
++ /* MUST hold both exclusive lnet_res_lock */
++ lnet_res_lock(LNET_LOCK_EX);
++ /*
++ * NB: hold lnet_eq_wait_lock for EQ link/unlink, so we can do
++ * both EQ lookup and poll event with only lnet_eq_wait_lock
++ */
++ lnet_eq_wait_lock();
++
++ lnet_res_lh_initialize(&the_lnet.ln_eq_container, &eq->eq_lh);
++ list_add(&eq->eq_list, &the_lnet.ln_eq_container.rec_active);
++
++ lnet_eq_wait_unlock();
++ lnet_res_unlock(LNET_LOCK_EX);
++
++ lnet_eq2handle(handle, eq);
++ return 0;
++
++failed:
++ kvfree(eq->eq_events);
++
++ if (eq->eq_refs)
++ cfs_percpt_free(eq->eq_refs);
++
++ kfree(eq);
++ return -ENOMEM;
++}
++EXPORT_SYMBOL(LNetEQAlloc);
++
++/**
++ * Release the resources associated with an event queue if it's idle;
++ * otherwise do nothing and it's up to the user to try again.
++ *
++ * \param eqh A handle for the event queue to be released.
++ *
++ * \retval 0 If the EQ is not in use and freed.
++ * \retval -ENOENT If \a eqh does not point to a valid EQ.
++ * \retval -EBUSY If the EQ is still in use by some MDs.
++ */
++int
++LNetEQFree(struct lnet_handle_eq eqh)
++{
++ struct lnet_eq *eq;
++ struct lnet_event *events = NULL;
++ int **refs = NULL;
++ int *ref;
++ int rc = 0;
++ int size = 0;
++ int i;
++
++ LASSERT(the_lnet.ln_refcount > 0);
++
++ lnet_res_lock(LNET_LOCK_EX);
++ /*
++ * NB: hold lnet_eq_wait_lock for EQ link/unlink, so we can do
++ * both EQ lookup and poll event with only lnet_eq_wait_lock
++ */
++ lnet_eq_wait_lock();
++
++ eq = lnet_handle2eq(&eqh);
++ if (!eq) {
++ rc = -ENOENT;
++ goto out;
++ }
++
++ cfs_percpt_for_each(ref, i, eq->eq_refs) {
++ LASSERT(*ref >= 0);
++ if (!*ref)
++ continue;
++
++ CDEBUG(D_NET, "Event equeue (%d: %d) busy on destroy.\n",
++ i, *ref);
++ rc = -EBUSY;
++ goto out;
++ }
++
++ /* stash for free after lock dropped */
++ events = eq->eq_events;
++ size = eq->eq_size;
++ refs = eq->eq_refs;
++
++ lnet_res_lh_invalidate(&eq->eq_lh);
++ list_del(&eq->eq_list);
++ kfree(eq);
++ out:
++ lnet_eq_wait_unlock();
++ lnet_res_unlock(LNET_LOCK_EX);
++
++ kvfree(events);
++ if (refs)
++ cfs_percpt_free(refs);
++
++ return rc;
++}
++EXPORT_SYMBOL(LNetEQFree);
++
++void
++lnet_eq_enqueue_event(struct lnet_eq *eq, struct lnet_event *ev)
++{
++ /* MUST called with resource lock hold but w/o lnet_eq_wait_lock */
++ int index;
++
++ if (!eq->eq_size) {
++ LASSERT(eq->eq_callback != LNET_EQ_HANDLER_NONE);
++ eq->eq_callback(ev);
++ return;
++ }
++
++ lnet_eq_wait_lock();
++ ev->sequence = eq->eq_enq_seq++;
++
++ LASSERT(eq->eq_size == LOWEST_BIT_SET(eq->eq_size));
++ index = ev->sequence & (eq->eq_size - 1);
++
++ eq->eq_events[index] = *ev;
++
++ if (eq->eq_callback != LNET_EQ_HANDLER_NONE)
++ eq->eq_callback(ev);
++
++ /* Wake anyone waiting in LNetEQPoll() */
++ if (waitqueue_active(&the_lnet.ln_eq_waitq))
++ wake_up_all(&the_lnet.ln_eq_waitq);
++ lnet_eq_wait_unlock();
++}
++
++static int
++lnet_eq_dequeue_event(struct lnet_eq *eq, struct lnet_event *ev)
++{
++ int new_index = eq->eq_deq_seq & (eq->eq_size - 1);
++ struct lnet_event *new_event = &eq->eq_events[new_index];
++ int rc;
++
++ /* must called with lnet_eq_wait_lock hold */
++ if (LNET_SEQ_GT(eq->eq_deq_seq, new_event->sequence))
++ return 0;
++
++ /* We've got a new event... */
++ *ev = *new_event;
++
++ CDEBUG(D_INFO, "event: %p, sequence: %lu, eq->size: %u\n",
++ new_event, eq->eq_deq_seq, eq->eq_size);
++
++ /* ...but did it overwrite an event we've not seen yet? */
++ if (eq->eq_deq_seq == new_event->sequence) {
++ rc = 1;
++ } else {
++ /*
++ * don't complain with CERROR: some EQs are sized small
++ * anyway; if it's important, the caller should complain
++ */
++ CDEBUG(D_NET, "Event Queue Overflow: eq seq %lu ev seq %lu\n",
++ eq->eq_deq_seq, new_event->sequence);
++ rc = -EOVERFLOW;
++ }
++
++ eq->eq_deq_seq = new_event->sequence + 1;
++ return rc;
++}
++
++/**
++ * A nonblocking function that can be used to get the next event in an EQ.
++ * If an event handler is associated with the EQ, the handler will run before
++ * this function returns successfully. The event is removed from the queue.
++ *
++ * \param eventq A handle for the event queue.
++ * \param event On successful return (1 or -EOVERFLOW), this location will
++ * hold the next event in the EQ.
++ *
++ * \retval 0 No pending event in the EQ.
++ * \retval 1 Indicates success.
++ * \retval -ENOENT If \a eventq does not point to a valid EQ.
++ * \retval -EOVERFLOW Indicates success (i.e., an event is returned) and that
++ * at least one event between this event and the last event obtained from the
++ * EQ has been dropped due to limited space in the EQ.
++ */
++
++/**
++ * Block the calling process until there is an event in the EQ.
++ * If an event handler is associated with the EQ, the handler will run before
++ * this function returns successfully. This function returns the next event
++ * in the EQ and removes it from the EQ.
++ *
++ * \param eventq A handle for the event queue.
++ * \param event On successful return (1 or -EOVERFLOW), this location will
++ * hold the next event in the EQ.
++ *
++ * \retval 1 Indicates success.
++ * \retval -ENOENT If \a eventq does not point to a valid EQ.
++ * \retval -EOVERFLOW Indicates success (i.e., an event is returned) and that
++ * at least one event between this event and the last event obtained from the
++ * EQ has been dropped due to limited space in the EQ.
++ */
++
++static int
++lnet_eq_wait_locked(int *timeout_ms, long state)
++__must_hold(&the_lnet.ln_eq_wait_lock)
++{
++ int tms = *timeout_ms;
++ int wait;
++ wait_queue_entry_t wl;
++ unsigned long now;
++
++ if (!tms)
++ return -ENXIO; /* don't want to wait and no new event */
++
++ init_waitqueue_entry(&wl, current);
++ set_current_state(state);
++ add_wait_queue(&the_lnet.ln_eq_waitq, &wl);
++
++ lnet_eq_wait_unlock();
++
++ if (tms < 0) {
++ schedule();
++ } else {
++ now = jiffies;
+ schedule_msec_hrtimeout((tms));
- tms -= jiffies_to_msecs(jiffies - now);
- if (tms < 0) /* no more wait but may have new event */
- tms = 0;
++ tms -= jiffies_to_msecs(jiffies - now);
++ if (tms < 0) /* no more wait but may have new event */
++ tms = 0;
++ }
++
++ wait = tms; /* might need to call here again */
++ *timeout_ms = tms;
++
++ lnet_eq_wait_lock();
++ remove_wait_queue(&the_lnet.ln_eq_waitq, &wl);
++
++ return wait;
++}
++
++/**
++ * Block the calling process until there's an event from a set of EQs or
++ * timeout happens.
++ *
++ * If an event handler is associated with the EQ, the handler will run before
++ * this function returns successfully, in which case the corresponding event
++ * is consumed.
++ *
++ * LNetEQPoll() provides a timeout to allow applications to poll, block for a
++ * fixed period, or block indefinitely.
++ *
++ * \param eventqs,neq An array of EQ handles, and size of the array.
++ * \param timeout_ms Time in milliseconds to wait for an event to occur on
++ * one of the EQs. The constant LNET_TIME_FOREVER can be used to indicate an
++ * infinite timeout.
++ * \param interruptible, if true, use TASK_INTERRUPTIBLE, else TASK_NOLOAD
++ * \param event,which On successful return (1 or -EOVERFLOW), \a event will
++ * hold the next event in the EQs, and \a which will contain the index of the
++ * EQ from which the event was taken.
++ *
++ * \retval 0 No pending event in the EQs after timeout.
++ * \retval 1 Indicates success.
++ * \retval -EOVERFLOW Indicates success (i.e., an event is returned) and that
++ * at least one event between this event and the last event obtained from the
++ * EQ indicated by \a which has been dropped due to limited space in the EQ.
++ * \retval -ENOENT If there's an invalid handle in \a eventqs.
++ */
++int
++LNetEQPoll(struct lnet_handle_eq *eventqs, int neq, int timeout_ms,
++ int interruptible,
++ struct lnet_event *event, int *which)
++{
++ int wait = 1;
++ int rc;
++ int i;
++
++ LASSERT(the_lnet.ln_refcount > 0);
++
++ if (neq < 1)
++ return -ENOENT;
++
++ lnet_eq_wait_lock();
++
++ for (;;) {
++ for (i = 0; i < neq; i++) {
++ struct lnet_eq *eq = lnet_handle2eq(&eventqs[i]);
++
++ if (!eq) {
++ lnet_eq_wait_unlock();
++ return -ENOENT;
++ }
++
++ rc = lnet_eq_dequeue_event(eq, event);
++ if (rc) {
++ lnet_eq_wait_unlock();
++ *which = i;
++ return rc;
++ }
++ }
++
++ if (!wait)
++ break;
++
++ /*
++ * return value of lnet_eq_wait_locked:
++ * -1 : did nothing and it's sure no new event
++ * 1 : sleep inside and wait until new event
++ * 0 : don't want to wait anymore, but might have new event
++ * so need to call dequeue again
++ */
++ wait = lnet_eq_wait_locked(&timeout_ms,
++ interruptible ? TASK_INTERRUPTIBLE
++ : TASK_NOLOAD);
++ if (wait < 0) /* no new event */
++ break;
++ }
++
++ lnet_eq_wait_unlock();
++ return 0;
++}
diff --git a/drivers/staging/rts5208/rtsx.c b/drivers/staging/rts5208/rtsx.c
index 70e0b8623110..04ae8e3f2448 100644
--- a/drivers/staging/rts5208/rtsx.c
@@ -5876,7 +6692,7 @@ index 7deeb7061018..c02fb3f2b71d 100644
}
set_current_state(TASK_RUNNING);
diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c
-index 92dceb557886..8b1b1bd083c5 100644
+index 3647b8f1ed28..9fb26ccc2b3b 100644
--- a/drivers/staging/unisys/visornic/visornic_main.c
+++ b/drivers/staging/unisys/visornic/visornic_main.c
@@ -549,7 +549,7 @@ static int visornic_disable_with_timeout(struct net_device *netdev,
@@ -5920,7 +6736,7 @@ index 6199d4806193..7c7165f2dad4 100644
hwa742_set_update_mode(hwa742.update_mode_before_suspend);
}
diff --git a/drivers/video/fbdev/pxafb.c b/drivers/video/fbdev/pxafb.c
-index c3d49e13643c..84b984986f4d 100644
+index 76722a59f55e..dfe989604b42 100644
--- a/drivers/video/fbdev/pxafb.c
+++ b/drivers/video/fbdev/pxafb.c
@@ -1286,7 +1286,7 @@ static int pxafb_smart_thread(void *arg)
@@ -5933,10 +6749,10 @@ index c3d49e13643c..84b984986f4d 100644
pr_debug("%s(): task ending\n", __func__);
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
-index 51b5e2da708c..d097ed90c0d2 100644
+index 3d9fe58c0080..d98bf5e52b47 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
-@@ -6101,7 +6101,7 @@ if (current->journal_info)
+@@ -6041,7 +6041,7 @@ int btrfs_delalloc_reserve_metadata(struct btrfs_inode *inode, u64 num_bytes)
flush = BTRFS_RESERVE_FLUSH_LIMIT;
if (btrfs_transaction_in_commit(fs_info))
@@ -5959,10 +6775,10 @@ index 12fcd8897c33..0cdedfe9b091 100644
} else
continue;
diff --git a/fs/proc/base.c b/fs/proc/base.c
-index 1a76d751cf3c..76564b87c736 100644
+index aaffc0c30216..146ba8266d68 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
-@@ -467,7 +467,7 @@ static int proc_pid_schedstat(struct seq_file *m, struct pid_namespace *ns,
+@@ -445,7 +445,7 @@ static int proc_pid_schedstat(struct seq_file *m, struct pid_namespace *ns,
seq_printf(m, "0 0 0\n");
else
seq_printf(m, "%llu %llu %lu\n",
@@ -6000,7 +6816,7 @@ index a454b8aeb938..f0a14e08e8e8 100644
/* Attach to the init_task data structure for proper alignment */
#ifdef CONFIG_ARCH_TASK_STRUCT_ON_STACK
diff --git a/include/linux/ioprio.h b/include/linux/ioprio.h
-index 627efac73e6d..e25a094c2f81 100644
+index 9e30ed6443db..7d6e7e7cdf9f 100644
--- a/include/linux/ioprio.h
+++ b/include/linux/ioprio.h
@@ -53,6 +53,8 @@ enum {
@@ -6013,20 +6829,20 @@ index 627efac73e6d..e25a094c2f81 100644
}
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index ca3f3eae8980..ef8ebae59e39 100644
+index 43731fe51c97..ec19b03fa4c2 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
-@@ -27,6 +27,9 @@
- #include <linux/signal_types.h>
+@@ -28,6 +28,9 @@
#include <linux/mm_types_task.h>
#include <linux/task_io_accounting.h>
+ #include <linux/rseq.h>
+#ifdef CONFIG_SCHED_MUQSS
+#include <linux/skip_list.h>
+#endif
/* task_struct member predeclarations (sorted alphabetically): */
struct audit_context;
-@@ -207,13 +210,40 @@ struct task_group;
+@@ -208,13 +211,40 @@ struct task_group;
extern void scheduler_tick(void);
@@ -6069,7 +6885,7 @@ index ca3f3eae8980..ef8ebae59e39 100644
asmlinkage void schedule(void);
extern void schedule_preempt_disabled(void);
-@@ -612,9 +642,11 @@ struct task_struct {
+@@ -613,9 +643,11 @@ struct task_struct {
unsigned int flags;
unsigned int ptrace;
@@ -6082,7 +6898,7 @@ index ca3f3eae8980..ef8ebae59e39 100644
#ifdef CONFIG_THREAD_INFO_IN_TASK
/* Current CPU: */
unsigned int cpu;
-@@ -639,10 +671,25 @@ struct task_struct {
+@@ -640,10 +672,25 @@ struct task_struct {
int static_prio;
int normal_prio;
unsigned int rt_priority;
@@ -6108,7 +6924,7 @@ index ca3f3eae8980..ef8ebae59e39 100644
#ifdef CONFIG_CGROUP_SCHED
struct task_group *sched_task_group;
#endif
-@@ -791,6 +838,10 @@ struct task_struct {
+@@ -792,6 +839,10 @@ struct task_struct {
#ifdef CONFIG_ARCH_HAS_SCALED_CPUTIME
u64 utimescaled;
u64 stimescaled;
@@ -6119,7 +6935,7 @@ index ca3f3eae8980..ef8ebae59e39 100644
#endif
u64 gtime;
struct prev_cputime prev_cputime;
-@@ -1185,6 +1236,40 @@ struct task_struct {
+@@ -1197,6 +1248,40 @@ struct task_struct {
*/
};
@@ -6223,10 +7039,10 @@ index e5af028c08b4..010b2244e0b6 100644
}
diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h
-index 5be31eb7b266..2cfc0347db0b 100644
+index 108ede99e533..21f53ec1bb1f 100644
--- a/include/linux/sched/task.h
+++ b/include/linux/sched/task.h
-@@ -80,7 +80,7 @@ extern long kernel_wait4(pid_t, int *, int, struct rusage *);
+@@ -80,7 +80,7 @@ extern long kernel_wait4(pid_t, int __user *, int, struct rusage *);
extern void free_task(struct task_struct *tsk);
/* sched_exec is called by processes performing an exec */
@@ -6297,10 +7113,10 @@ index 22627f80063e..17077cd6fc40 100644
/* Can be ORed in to make sure the process is reverted back to SCHED_NORMAL on fork */
#define SCHED_RESET_ON_FORK 0x40000000
diff --git a/init/Kconfig b/init/Kconfig
-index 18b151f0ddc1..4b4dafae858b 100644
+index 041f3a022122..6d30ef61a482 100644
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -38,6 +38,18 @@ config THREAD_INFO_IN_TASK
+@@ -45,6 +45,18 @@ config THREAD_INFO_IN_TASK
menu "General setup"
@@ -6319,7 +7135,7 @@ index 18b151f0ddc1..4b4dafae858b 100644
config BROKEN
bool
-@@ -619,6 +631,7 @@ config NUMA_BALANCING
+@@ -617,6 +629,7 @@ config NUMA_BALANCING
depends on ARCH_SUPPORTS_NUMA_BALANCING
depends on !ARCH_WANT_NUMA_VARIABLE_LOCALITY
depends on SMP && NUMA && MIGRATION
@@ -6327,7 +7143,7 @@ index 18b151f0ddc1..4b4dafae858b 100644
help
This option adds support for automatic NUMA aware memory/task placement.
The mechanism is quite primitive and is based on migrating memory when
-@@ -721,9 +734,13 @@ menuconfig CGROUP_SCHED
+@@ -719,9 +732,13 @@ menuconfig CGROUP_SCHED
help
This feature lets CPU scheduler recognize task groups and control CPU
bandwidth allocation to such task groups. It uses cgroups to group
@@ -6343,7 +7159,7 @@ index 18b151f0ddc1..4b4dafae858b 100644
config FAIR_GROUP_SCHED
bool "Group scheduling for SCHED_OTHER"
depends on CGROUP_SCHED
-@@ -830,6 +847,7 @@ config CGROUP_DEVICE
+@@ -828,6 +845,7 @@ config CGROUP_DEVICE
config CGROUP_CPUACCT
bool "Simple CPU accounting controller"
@@ -6351,7 +7167,7 @@ index 18b151f0ddc1..4b4dafae858b 100644
help
Provides a simple controller for monitoring the
total CPU consumed by the tasks in a cgroup.
-@@ -936,6 +954,7 @@ endif # NAMESPACES
+@@ -934,6 +952,7 @@ endif # NAMESPACES
config SCHED_AUTOGROUP
bool "Automatic process group scheduling"
@@ -6360,10 +7176,10 @@ index 18b151f0ddc1..4b4dafae858b 100644
select CGROUP_SCHED
select FAIR_GROUP_SCHED
diff --git a/init/init_task.c b/init/init_task.c
-index 3ac6e754cf64..a5da207d71cf 100644
+index 74f60baa2799..dcbadbd8be85 100644
--- a/init/init_task.c
+++ b/init/init_task.c
-@@ -59,9 +59,17 @@ struct task_struct init_task
+@@ -60,9 +60,17 @@ struct task_struct init_task
.stack = init_stack,
.usage = ATOMIC_INIT(2),
.flags = PF_KTHREAD,
@@ -6381,7 +7197,7 @@ index 3ac6e754cf64..a5da207d71cf 100644
.policy = SCHED_NORMAL,
.cpus_allowed = CPU_MASK_ALL,
.nr_cpus_allowed= NR_CPUS,
-@@ -70,6 +78,7 @@ struct task_struct init_task
+@@ -71,6 +79,7 @@ struct task_struct init_task
.restart_block = {
.fn = do_no_restart_syscall,
},
@@ -6389,7 +7205,7 @@ index 3ac6e754cf64..a5da207d71cf 100644
.se = {
.group_node = LIST_HEAD_INIT(init_task.se.group_node),
},
-@@ -77,6 +86,7 @@ struct task_struct init_task
+@@ -78,6 +87,7 @@ struct task_struct init_task
.run_list = LIST_HEAD_INIT(init_task.rt.run_list),
.time_slice = RR_TIMESLICE,
},
@@ -6398,7 +7214,7 @@ index 3ac6e754cf64..a5da207d71cf 100644
#ifdef CONFIG_SMP
.pushable_tasks = PLIST_NODE_INIT(init_task.pushable_tasks, MAX_PRIO),
diff --git a/init/main.c b/init/main.c
-index 3b4ada11ed52..def6a8409e5f 100644
+index 5e13c544bbf4..a53eb1099247 100644
--- a/init/main.c
+++ b/init/main.c
@@ -900,7 +900,6 @@ int __init_or_module do_one_initcall(initcall_t fn)
@@ -6519,7 +7335,7 @@ index 3f9c97419f02..1dc79ec7ad09 100644
config PREEMPT
bool "Preemptible Kernel (Low-Latency Desktop)"
diff --git a/kernel/Makefile b/kernel/Makefile
-index f85ae5dfa474..78c2c0cc7508 100644
+index 04bc07c2b42a..f4142e4fc555 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -10,7 +10,7 @@ obj-y = fork.o exec_domain.o panic.o \
@@ -6532,10 +7348,10 @@ index f85ae5dfa474..78c2c0cc7508 100644
obj-$(CONFIG_MODULES) += kmod.o
obj-$(CONFIG_MULTIUSER) += groups.o
diff --git a/kernel/delayacct.c b/kernel/delayacct.c
-index e2764d767f18..2f85428d22b9 100644
+index ca8ac2824f0b..ae824da28e4b 100644
--- a/kernel/delayacct.c
+++ b/kernel/delayacct.c
-@@ -114,7 +114,7 @@ int __delayacct_add_tsk(struct taskstats *d, struct task_struct *tsk)
+@@ -115,7 +115,7 @@ int __delayacct_add_tsk(struct taskstats *d, struct task_struct *tsk)
*/
t1 = tsk->sched_info.pcount;
t2 = tsk->sched_info.run_delay;
@@ -6595,10 +7411,10 @@ index c6766f326072..8a34acfd0ba2 100644
bool "Support sparse irq numbering" if MAY_HAVE_SPARSE_IRQ
---help---
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
-index e3336d904f64..75ac409b85e7 100644
+index 9a8b7ba9aa88..f39a4d22ee63 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
-@@ -23,7 +23,17 @@
+@@ -23,8 +23,18 @@
#include "internals.h"
#ifdef CONFIG_IRQ_FORCED_THREADING
@@ -6606,6 +7422,7 @@ index e3336d904f64..75ac409b85e7 100644
+__read_mostly bool force_irqthreads = true;
+#else
__read_mostly bool force_irqthreads;
+ EXPORT_SYMBOL_GPL(force_irqthreads);
+#endif
+static int __init setup_noforced_irqthreads(char *arg)
+{
@@ -6617,10 +7434,10 @@ index e3336d904f64..75ac409b85e7 100644
static int __init setup_forced_irqthreads(char *arg)
{
diff --git a/kernel/kthread.c b/kernel/kthread.c
-index 481951bf091d..711d0347b100 100644
+index 486dedbd9af5..c4f2b56900c6 100644
--- a/kernel/kthread.c
+++ b/kernel/kthread.c
-@@ -412,6 +412,34 @@ void kthread_bind(struct task_struct *p, unsigned int cpu)
+@@ -424,6 +424,34 @@ void kthread_bind(struct task_struct *p, unsigned int cpu)
}
EXPORT_SYMBOL(kthread_bind);
@@ -6655,7 +7472,7 @@ index 481951bf091d..711d0347b100 100644
/**
* kthread_create_on_cpu - Create a cpu bound kthread
* @threadfn: the function to run until signal_pending(current).
-@@ -433,7 +461,7 @@ struct task_struct *kthread_create_on_cpu(int (*threadfn)(void *data),
+@@ -445,7 +473,7 @@ struct task_struct *kthread_create_on_cpu(int (*threadfn)(void *data),
cpu);
if (IS_ERR(p))
return p;
@@ -6732,10 +7549,10 @@ index d9a02b318108..0666fe1870b1 100644
+endif
diff --git a/kernel/sched/MuQSS.c b/kernel/sched/MuQSS.c
new file mode 100644
-index 000000000000..340b314f2fbf
+index 000000000000..a91fba774a1f
--- /dev/null
+++ b/kernel/sched/MuQSS.c
-@@ -0,0 +1,7325 @@
+@@ -0,0 +1,7327 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * kernel/sched/MuQSS.c, was kernel/sched.c
@@ -6769,38 +7586,34 @@ index 000000000000..340b314f2fbf
+ * scheduler by Con Kolivas.
+ */
+
-+#include <linux/sched.h>
-+#include <linux/sched/clock.h>
-+#include <uapi/linux/sched/types.h>
++#include <linux/sched/isolation.h>
+#include <linux/sched/loadavg.h>
-+#include <linux/sched/hotplug.h>
-+#include <linux/wait_bit.h>
++
++#include <linux/binfmts.h>
++#include <linux/blkdev.h>
++#include <linux/compat.h>
++#include <linux/context_tracking.h>
+#include <linux/cpuset.h>
+#include <linux/delayacct.h>
+#include <linux/init_task.h>
-+#include <linux/binfmts.h>
-+#include <linux/context_tracking.h>
-+#include <linux/rcupdate_wait.h>
-+#include <linux/compat.h>
-+#include <linux/skip_list.h>
-+
-+#include <linux/blkdev.h>
++#include <linux/kcov.h>
+#include <linux/kprobes.h>
+#include <linux/mmu_context.h>
+#include <linux/module.h>
+#include <linux/nmi.h>
+#include <linux/prefetch.h>
+#include <linux/profile.h>
++#include <linux/rcupdate_wait.h>
++#include <linux/sched.h>
+#include <linux/security.h>
++#include <linux/skip_list.h>
+#include <linux/syscalls.h>
-+#include <linux/sched/isolation.h>
+#include <linux/tick.h>
++#include <linux/wait_bit.h>
+
++#include <asm/irq_regs.h>
+#include <asm/switch_to.h>
+#include <asm/tlb.h>
-+#ifdef CONFIG_PARAVIRT
-+#include <asm/paravirt.h>
-+#endif
+
+#include "../workqueue_internal.h"
+#include "../smpboot.h"
@@ -6851,7 +7664,7 @@ index 000000000000..340b314f2fbf
+
+void print_scheduler_version(void)
+{
-+ printk(KERN_INFO "MuQSS CPU scheduler v0.172 by Con Kolivas.\n");
++ printk(KERN_INFO "MuQSS CPU scheduler v0.173 by Con Kolivas.\n");
+}
+
+#define RQSHARE_NONE 0
@@ -7963,6 +8776,7 @@ index 000000000000..340b314f2fbf
+#endif
+
+ trace_sched_migrate_task(p, new_cpu);
++ rseq_migrate(p);
+ perf_event_task_migrate(p);
+
+ /*
@@ -9317,8 +10131,10 @@ index 000000000000..340b314f2fbf
+prepare_task_switch(struct rq *rq, struct task_struct *prev,
+ struct task_struct *next)
+{
++ kcov_prepare_switch(prev);
+ sched_info_switch(rq, prev, next);
+ perf_event_task_sched_out(prev, next);
++ rseq_preempt(prev);
+ fire_sched_out_preempt_notifiers(prev, next);
+ prepare_task(next);
+ prepare_arch_switch(next);
@@ -9386,6 +10202,7 @@ index 000000000000..340b314f2fbf
+ finish_task(prev);
+ finish_lock_switch(rq, prev);
+ finish_arch_post_lock_switch();
++ kcov_finish_switch(current);
+
+ fire_sched_in_preempt_notifiers(current);
+ /*
@@ -9404,9 +10221,7 @@ index 000000000000..340b314f2fbf
+ membarrier_mm_sync_core_before_usermode(mm);
+ mmdrop(mm);
+ }
-+ if (unlikely(prev_state & (TASK_DEAD | TASK_PARKED))) {
-+ switch (prev_state) {
-+ case TASK_DEAD:
++ if (unlikely(prev_state == TASK_DEAD)) {
+ /*
+ * Remove function-return probe instances associated with this
+ * task and put them back on the free list.
@@ -9417,12 +10232,6 @@ index 000000000000..340b314f2fbf
+ put_task_stack(prev);
+
+ put_task_struct(prev);
-+ break;
-+
-+ case TASK_PARKED:
-+ kthread_park_complete(prev);
-+ break;
-+ }
+ }
+}
+
@@ -10045,6 +10854,8 @@ index 000000000000..340b314f2fbf
+ struct tick_work *twork = container_of(dwork, struct tick_work, work);
+ int cpu = twork->cpu;
+ struct rq *rq = cpu_rq(cpu);
++ struct task_struct *curr;
++ u64 delta;
+
+ /*
+ * Handle the tick only if it appears the remote CPU is running in full
@@ -10052,26 +10863,30 @@ index 000000000000..340b314f2fbf
+ * having one too much is no big deal because the scheduler tick updates
+ * statistics and checks timeslices in a time-independent way, regardless
+ * of when exactly it is running.
-+ */
-+ if (!idle_cpu(cpu) && tick_nohz_tick_stopped_cpu(cpu)) {
-+ struct task_struct *curr;
-+ u64 delta;
++ */
++ if (idle_cpu(cpu) || !tick_nohz_tick_stopped_cpu(cpu))
++ goto out_requeue;
+
-+ rq_lock_irq(rq);
-+ update_rq_clock(rq);
-+ curr = rq->curr;
-+ delta = rq_clock_task(rq) - curr->last_ran;
++ rq_lock_irq(rq);
++ curr = rq->curr;
++ if (is_idle_task(curr))
++ goto out_unlock;
+
-+ /*
-+ * Make sure the next tick runs within a reasonable
-+ * amount of time.
-+ */
-+ WARN_ON_ONCE(delta > (u64)NSEC_PER_SEC * 3);
-+ task_tick(rq);
-+ rq_unlock_irq(rq);
-+ }
++ update_rq_clock(rq);
++ delta = rq_clock_task(rq) - curr->se.exec_start;
+
+ /*
++ * Make sure the next tick runs within a reasonable
++ * amount of time.
++ */
++ WARN_ON_ONCE(delta > (u64)NSEC_PER_SEC * 3);
++ task_tick(rq);
++
++out_unlock:
++ rq_unlock_irq(rq);
++
++out_requeue:
++ /*
+ * Run the remote tick once per second (1Hz). This arbitrary
+ * frequency is large enough to avoid overload but short enough
+ * to keep scheduler internal stats reasonably up to date.
@@ -11192,6 +12007,23 @@ index 000000000000..340b314f2fbf
+}
+
+/**
++ * available_idle_cpu - is a given CPU idle for enqueuing work.
++ * @cpu: the CPU in question.
++ *
++ * Return: 1 if the CPU is currently idle. 0 otherwise.
++ */
++int available_idle_cpu(int cpu)
++{
++ if (!idle_cpu(cpu))
++ return 0;
++
++ if (vcpu_is_preempted(cpu))
++ return 0;
++
++ return 1;
++}
++
++/**
+ * idle_task - return the idle task for a given CPU.
+ * @cpu: the processor in question.
+ *
@@ -12047,20 +12879,6 @@ index 000000000000..340b314f2fbf
+}
+EXPORT_SYMBOL(__cond_resched_lock);
+
-+int __sched __cond_resched_softirq(void)
-+{
-+ BUG_ON(!in_softirq());
-+
-+ if (should_resched(SOFTIRQ_DISABLE_OFFSET)) {
-+ local_bh_enable();
-+ preempt_schedule_common();
-+ local_bh_disable();
-+ return 1;
-+ }
-+ return 0;
-+}
-+EXPORT_SYMBOL(__cond_resched_softirq);
-+
+/**
+ * yield - yield the current processor to other threads.
+ *
@@ -12669,8 +13487,8 @@ index 000000000000..340b314f2fbf
+ bool queued = false, running_wrong = false, kthread;
+ struct cpumask old_mask;
+ unsigned long flags;
++ int cpu, ret = 0;
+ struct rq *rq;
-+ int ret = 0;
+
+ rq = task_rq_lock(p, &flags);
+ update_rq_clock(rq);
@@ -12721,13 +13539,14 @@ index 000000000000..340b314f2fbf
+ if (task_running(rq, p)) {
+ /* Task is running on the wrong cpu now, reschedule it. */
+ if (rq == this_rq()) {
++ cpu = cpumask_any_and(cpu_valid_mask, new_mask);
++ set_task_cpu(p, cpu);
+ set_tsk_need_resched(p);
+ running_wrong = true;
+ } else
+ resched_task(p);
+ } else {
-+ int cpu = cpumask_any_and(cpu_valid_mask, new_mask);
-+
++ cpu = cpumask_any_and(cpu_valid_mask, new_mask);
+ if (queued) {
+ /*
+ * Switch runqueue locks after dequeueing the task
@@ -14063,10 +14882,10 @@ index 000000000000..340b314f2fbf
+#undef CREATE_TRACE_POINTS
diff --git a/kernel/sched/MuQSS.h b/kernel/sched/MuQSS.h
new file mode 100644
-index 000000000000..d3e132e04ee9
+index 000000000000..1c9326cdd9e9
--- /dev/null
+++ b/kernel/sched/MuQSS.h
-@@ -0,0 +1,823 @@
+@@ -0,0 +1,828 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef MUQSS_SCHED_H
+#define MUQSS_SCHED_H
@@ -14871,6 +15690,11 @@ index 000000000000..d3e132e04ee9
+
+#define SCHED_FLAG_SUGOV 0x10000000
+
++static inline bool rt_rq_is_runnable(struct rq *rt_rq)
++{
++ return rt_rq->rt_nr_running;
++}
++
+#ifdef CONFIG_CPU_FREQ_GOV_SCHEDUTIL
+
+static inline unsigned long cpu_util_dl(struct rq *rq)
@@ -14891,24 +15715,29 @@ index 000000000000..d3e132e04ee9
+
+#endif /* MUQSS_SCHED_H */
diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c
-index e13df951aca7..f6fd85f77a43 100644
+index c907fde01eaa..8552d52803b1 100644
--- a/kernel/sched/cpufreq_schedutil.c
+++ b/kernel/sched/cpufreq_schedutil.c
-@@ -185,11 +185,11 @@ static unsigned long sugov_aggregate_util(struct sugov_cpu *sg_cpu)
+@@ -188,11 +188,17 @@ static void sugov_get_util(struct sugov_cpu *sg_cpu)
+ sg_cpu->util_dl = cpu_util_dl(rq);
+ }
+
++#ifdef CONFIG_SCHED_MUQSS
++#define rt_rq_runnable(rq_rt) rt_rq_is_runnable(rq)
++#else
++#define rt_rq_runnable(rq_rt) rt_rq_is_runnable(&rq->rt)
++#endif
++
+ static unsigned long sugov_aggregate_util(struct sugov_cpu *sg_cpu)
+ {
struct rq *rq = cpu_rq(sg_cpu->cpu);
- unsigned long util;
-- if (rq->rt.rt_nr_running) {
-+ if (rq_rt_nr_running(rq)) {
- util = sg_cpu->max;
- } else {
- util = sg_cpu->util_dl;
-- if (rq->cfs.h_nr_running)
-+ if (rq_h_nr_running(rq))
- util += sg_cpu->util_cfs;
- }
+- if (rt_rq_is_runnable(&rq->rt))
++ if (rt_rq_runnable(rq))
+ return sg_cpu->max;
-@@ -474,7 +474,11 @@ {
+ /*
+@@ -573,7 +579,11 @@ static int sugov_kthread_create(struct sugov_policy *sg_policy)
struct task_struct *thread;
struct sched_attr attr = {
.size = sizeof(struct sched_attr),
@@ -15025,7 +15854,7 @@ index 1a3e9bddd17b..2caac890f169 100644
};
+#endif /* CONFIG_SCHED_MUQSS */
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
-index cb467c221b15..3b3018908a1d 100644
+index c7742dcc136c..9b96aa93f966 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -2,6 +2,19 @@
@@ -15048,7 +15877,7 @@ index cb467c221b15..3b3018908a1d 100644
#include <linux/sched.h>
#include <linux/sched/autogroup.h>
-@@ -2181,3 +2194,30 @@ static inline unsigned long cpu_util_cfs(struct rq *rq)
+@@ -2194,3 +2207,30 @@ static inline unsigned long cpu_util_cfs(struct rq *rq)
return util;
}
#endif
@@ -15080,7 +15909,7 @@ index cb467c221b15..3b3018908a1d 100644
+#endif
+#endif /* CONFIG_SCHED_MUQSS */
diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
-index 61a1125c1ae4..ed9c3ce6452a 100644
+index 56a0fed30c0a..fd33eab3f06d 100644
--- a/kernel/sched/topology.c
+++ b/kernel/sched/topology.c
@@ -219,7 +219,11 @@ void rq_attach_root(struct rq *rq, struct root_domain *rd)
@@ -15262,7 +16091,7 @@ index 000000000000..bf5c6e97e139
+ l->entries--;
+}
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
-index 6a78cf70761d..42044f8bb05e 100644
+index 2d9837c0aff4..dc8ef7c52781 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -126,9 +126,17 @@ static int __maybe_unused one __read_only = 1;
@@ -15272,8 +16101,8 @@ index 6a78cf70761d..42044f8bb05e 100644
-static int one_hundred __read_only = 100;
-static int one_thousand __read_only = 1000;
-#ifdef CONFIG_PRINTK
-+static int one_hundred __read_only = 100;
-+static int one_thousand __read_only = 1000;
++static int __read_only one_hundred = 100;
++static int __read_only one_thousand = 1000;
+#ifdef CONFIG_SCHED_MUQSS
+extern int rr_interval;
+extern int sched_interactive;
@@ -15286,23 +16115,21 @@ index 6a78cf70761d..42044f8bb05e 100644
static int ten_thousand __read_only = 10000;
#endif
#ifdef CONFIG_PERF_EVENTS
-@@ -292,7 +300,7 @@ static struct ctl_table sysctl_base_table[] = {
- { }
- };
-
+@@ -292,7 +300,7 @@ .maxlen = sizeof(unsigned int),
+ .mode = 0644,
+ .proc_handler = proc_dointvec,
+ },
-#ifdef CONFIG_SCHED_DEBUG
+#if defined(CONFIG_SCHED_DEBUG) && !defined(CONFIG_SCHED_MUQSS)
- static int min_sched_granularity_ns __read_only = 100000; /* 100 usecs */
- static int max_sched_granularity_ns __read_only = NSEC_PER_SEC; /* 1 second */
- static int min_wakeup_granularity_ns __read_only; /* 0 usecs */
-@@ -309,6 +317,7 @@ static int max_extfrag_threshold = 1000;
- #endif
+ {
+ .procname = "sched_min_granularity_ns",
+ .data = &sysctl_sched_min_granularity,
+@@ -322,4 +322,5 @@ #endif
static struct ctl_table kern_table[] = {
+#ifndef CONFIG_SCHED_MUQSS
{
.procname = "sched_child_runs_first",
- .data = &sysctl_sched_child_runs_first,
@@ -471,6 +480,7 @@ static struct ctl_table kern_table[] = {
.extra1 = &one,
},
@@ -15391,10 +16218,10 @@ index 16c027e9cc73..37162d7bd922 100644
/**
* clockevents_increase_min_delta - raise minimum delta of a clock event device
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
-index 14e858753d76..1256139353b4 100644
+index 3e93c54bd3a1..12a1680327ef 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
-@@ -2023,3 +2023,117 @@ int __sched schedule_hrtimeout(ktime_t *expires,
+@@ -2027,3 +2027,117 @@ int __sched schedule_hrtimeout(ktime_t *expires,
return schedule_hrtimeout_range(expires, 0, mode);
}
EXPORT_SYMBOL_GPL(schedule_hrtimeout);
@@ -15513,10 +16340,10 @@ index 14e858753d76..1256139353b4 100644
+}
+EXPORT_SYMBOL(schedule_msec_hrtimeout_uninterruptible);
diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c
-index 5a6251ac6f7a..5d838674666d 100644
+index 9cdf54b04ca8..d507c72e2db0 100644
--- a/kernel/time/posix-cpu-timers.c
+++ b/kernel/time/posix-cpu-timers.c
-@@ -830,7 +830,7 @@ static void check_thread_timers(struct task_struct *tsk,
+@@ -829,7 +829,7 @@ static void check_thread_timers(struct task_struct *tsk,
tsk_expires->virt_exp = expires;
tsk_expires->sched_exp = check_timers_list(++timers, firing,
@@ -15525,7 +16352,7 @@ index 5a6251ac6f7a..5d838674666d 100644
/*
* Check for the special case thread timers.
-@@ -840,7 +840,7 @@ static void check_thread_timers(struct task_struct *tsk,
+@@ -839,7 +839,7 @@ static void check_thread_timers(struct task_struct *tsk,
unsigned long hard = task_rlimit_max(tsk, RLIMIT_RTTIME);
if (hard != RLIM_INFINITY &&
@@ -15534,7 +16361,7 @@ index 5a6251ac6f7a..5d838674666d 100644
/*
* At the hard limit, we just die.
* No need to calculate anything else now.
-@@ -852,7 +852,7 @@ static void check_thread_timers(struct task_struct *tsk,
+@@ -851,7 +851,7 @@ static void check_thread_timers(struct task_struct *tsk,
__group_send_sig_info(SIGKILL, SEND_SIG_PRIV, tsk);
return;
}
@@ -15543,7 +16370,7 @@ index 5a6251ac6f7a..5d838674666d 100644
/*
* At the soft limit, send a SIGXCPU every second.
*/
-@@ -1096,7 +1096,7 @@ static inline int fastpath_timer_check(struct task_struct *tsk)
+@@ -1094,7 +1094,7 @@ static inline int fastpath_timer_check(struct task_struct *tsk)
struct task_cputime task_sample;
task_cputime(tsk, &task_sample.utime, &task_sample.stime);
@@ -15553,7 +16380,7 @@ index 5a6251ac6f7a..5d838674666d 100644
return 1;
}
diff --git a/kernel/time/timer.c b/kernel/time/timer.c
-index 4a4fd567fb26..a5f11b8d8386 100644
+index cc2d23e6ff61..35c2a01505dd 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -44,6 +44,7 @@
@@ -15682,20 +16509,8 @@ index 11e9daa4a568..4c4e1d5bdf42 100644
};
struct wakeup_test_data *x = data;
-diff --git a/lib/swiotlb.c b/lib/swiotlb.c
-index cc640588f145..8765ff08bf9d 100644
---- a/lib/swiotlb.c
-+++ b/lib/swiotlb.c
-@@ -973,6 +973,7 @@ swiotlb_map_sg_attrs(struct device *hwdev, struct scatterlist *sgl, int nelems,
- }
- return nelems;
- }
-+EXPORT_SYMBOL(swiotlb_map_sg_attrs);
-
- /*
- * Unmap a set of streaming mode DMA translations. Again, cpu read rules
diff --git a/mm/vmscan.c b/mm/vmscan.c
-index 9270a4370d54..da0912308629 100644
+index 03822f86f288..2498ff144912 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -159,7 +159,7 @@ struct scan_control {
@@ -15708,7 +16523,7 @@ index 9270a4370d54..da0912308629 100644
* The total number of pages which are beyond the high watermark within all
* zones.
diff --git a/net/core/pktgen.c b/net/core/pktgen.c
-index 7e4ede34cc52..4cc056a2a516 100644
+index 49368e21d228..787bf62c0580 100644
--- a/net/core/pktgen.c
+++ b/net/core/pktgen.c
@@ -1902,7 +1902,7 @@ static void pktgen_mark_device(const struct pktgen_net *pn, const char *ifname)
@@ -15721,7 +16536,7 @@ index 7e4ede34cc52..4cc056a2a516 100644
if (++i >= max_tries) {
diff --git a/sound/pci/maestro3.c b/sound/pci/maestro3.c
-index 8f20dec97843..944ce63431b0 100644
+index 224e942f556d..f568d4c451dc 100644
--- a/sound/pci/maestro3.c
+++ b/sound/pci/maestro3.c
@@ -2016,7 +2016,7 @@ static void snd_m3_ac97_reset(struct snd_m3 *chip)
@@ -15853,7 +16668,7 @@ index 643863bb32e0..fc318d71a8a3 100644
}
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
-index 2d9709104ec5..706aaf90ceaf 100644
+index 229c12349803..83a9e8f0ac36 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -137,7 +137,7 @@ static void dapm_assert_locked(struct snd_soc_dapm_context *dapm)
@@ -15866,7 +16681,7 @@ index 2d9709104ec5..706aaf90ceaf 100644
static void pop_dbg(struct device *dev, u32 pop_time, const char *fmt, ...)
diff --git a/sound/usb/line6/pcm.c b/sound/usb/line6/pcm.c
-index b3854f8c0c67..d6bd68b381f3 100644
+index 72c6f8e82a7e..46d8c2a148ad 100644
--- a/sound/usb/line6/pcm.c
+++ b/sound/usb/line6/pcm.c
@@ -131,7 +131,7 @@ static void line6_wait_clear_audio_urbs(struct snd_line6_pcm *line6pcm,