diff options
| author | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2018-08-28 10:23:58 -0700 | 
|---|---|---|
| committer | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2018-08-28 10:23:58 -0700 | 
| commit | 84cc2ea0b61798fbdb8fed3211c8731df9a7deba (patch) | |
| tree | 6523bd887222e194d6f0dc1ddcd9f81d2b58ffd0 | |
| parent | Updated to 4.17.11.a (diff) | |
| download | linux-hardened-ck-84cc2ea0b61798fbdb8fed3211c8731df9a7deba.tar.xz | |
Updated to 4.18.5.a
| -rw-r--r-- | ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch | 129 | ||||
| -rw-r--r-- | ACPICA-AML-Parser-ignore-control-method-status-in-module-level-code.patch | 53 | ||||
| -rw-r--r-- | PKGBUILD | 306 | ||||
| -rw-r--r-- | Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch | 242 | ||||
| -rw-r--r-- | config.x86_64 | 292 | ||||
| -rw-r--r-- | increase-timeout-in-lspcon_wait_mode.patch | 23 | ||||
| -rw-r--r-- | mac80211-disable-BHs-preemption-in-ieee80211_tx_cont.patch | 43 | ||||
| -rw-r--r-- | patch-4.18-ck1-jcmod1.patch (renamed from patch-4.17-ck1-jcmod1.patch) | 1217 | 
8 files changed, 1382 insertions, 923 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/ACPICA-AML-Parser-ignore-control-method-status-in-module-level-code.patch b/ACPICA-AML-Parser-ignore-control-method-status-in-module-level-code.patch deleted file mode 100644 index c692990..0000000 --- a/ACPICA-AML-Parser-ignore-control-method-status-in-module-level-code.patch +++ /dev/null @@ -1,53 +0,0 @@ -From f51d7e02375963169fb1c1148ac3f96d54e97ec4 Mon Sep 17 00:00:00 2001 -From: Erik Schmauss <erik.schmauss@intel.com> -Date: Sat, 28 Jul 2018 14:49:55 +0200 -Subject: [PATCH] ACPICA: AML Parser: ignore control method status in - module-level code - -Previous change in the AML parser code blindly set all non-successful -dispatcher statuses to AE_OK. This approach is incorrect because -successful control method invocations from module-level return -AE_CTRL_TRANSFER. Overwriting AE_OK to this status causes the AML -parser to think that there was no return value from the control -method invocation. - -fixes: 73c2a01c52b6 (ACPICA: AML Parser: ignore dispatcher error status during table load) - -Reported-by: Linus Torvalds <torvalds@linux-foundation.org> -Signed-off-by: Erik Schmauss <erik.schmauss@intel.com> ---- - drivers/acpi/acpica/psloop.c | 19 ++++++++++++------- - 1 file changed, 12 insertions(+), 7 deletions(-) - -diff --git a/drivers/acpi/acpica/psloop.c b/drivers/acpi/acpica/psloop.c -index ee840be150b5e..44f35ab3347d1 100644 ---- a/drivers/acpi/acpica/psloop.c -+++ b/drivers/acpi/acpica/psloop.c -@@ -709,15 +709,20 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state) - 			} else - 			    if ((walk_state-> - 				 parse_flags & ACPI_PARSE_MODULE_LEVEL) -+				&& status != AE_CTRL_TRANSFER - 				&& ACPI_FAILURE(status)) { - 				/* --				 * ACPI_PARSE_MODULE_LEVEL means that we are loading a table by --				 * executing it as a control method. However, if we encounter --				 * an error while loading the table, we need to keep trying to --				 * load the table rather than aborting the table load. Set the --				 * status to AE_OK to proceed with the table load. If we get a --				 * failure at this point, it means that the dispatcher got an --				 * error while processing Op (most likely an AML operand error. -+				 * ACPI_PARSE_MODULE_LEVEL flag means that we are currently -+				 * loading a table by executing it as a control method. -+				 * However, if we encounter an error while loading the table, -+				 * we need to keep trying to load the table rather than -+				 * aborting the table load (setting the status to AE_OK -+				 * continues the table load). If we get a failure at this -+				 * point, it means that the dispatcher got an error while -+				 * processing Op (most likely an AML operand error) or a -+				 * control method was called from module level and the -+				 * dispatcher returned AE_CTRL_TRANSFER. In the latter case, -+				 * leave the status alone, there's nothing wrong with it. - 				 */ - 				status = AE_OK; - 			} @@ -1,17 +1,18 @@ -# 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-hardened-ck -_majver=4.17 -_minver=11 +_majver=4.18 +_minver=5  _pkgver=${_majver}.${_minver}  _hardenedver=a  _NUMAdisable=y  _ckpatchversion=1  _ckpatchname="patch-${_majver}-ck${_ckpatchversion}" -_jcpatchversion="jcmod1" +_jcpatchversion=1  _gcc_more_v='20180509'  _srcname=linux-${_pkgver}  pkgver=${_pkgver}.${_hardenedver} @@ -25,8 +26,12 @@ makedepends=('xmlto' 'kmod' 'inetutils' 'bc' 'libelf')  options=('!strip')  source=(https://www.kernel.org/pub/linux/kernel/v4.x/linux-${_pkgver}.tar.xz          https://www.kernel.org/pub/linux/kernel/v4.x/linux-${_pkgver}.tar.sign +#source=(https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.xz +#        https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.sign +#        https://www.kernel.org/pub/linux/kernel/v4.x/patch-${_pkgver}.xz +#        https://www.kernel.org/pub/linux/kernel/v4.x/patch-${_pkgver}.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,78 +40,67 @@ source=(https://www.kernel.org/pub/linux/kernel/v4.x/linux-${_pkgver}.tar.xz          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=('db1e84ed4f213b43d50f3373627b2ffcdb3b65f3430f746a38f801554ef3728c' +sha256sums=('fb090a3680eddf6f10bf895bc3075bd3f830e3d2429ce469982db5a28df647bd'              'SKIP' -            '586f3a84cf79cee5a7839941b6b434be519515c317abc8e6d491174652ac93cb' +            'a06238ea0ce66d090fa899d6951c9d40fa993c7b4975088dded2c1e660c1ff69'              'SKIP' -            '27b96297102a9ccf690c1bdc5f21bc10308f6de90396385dce7341fb8e5a2116' +            'ea34f144abf9d714e268626e3a9332dc302a4754cbf092b5486dbf3c07fe57a0'              '226e30068ea0fecdb22f337391385701996bfbdba37cdcf0f1dbf55f1080542d'              'e7ebf050c22bcec0028c0b3c79fd6d3913b0370ecc6a23dfe78ce475630cf503' -            '97a9bfa8a97aef31fac71b45ad9d3ce362167e6dc6b2966b5725ff43d1dd29c3' +            '830db84d2fcb113a1bba8519fb0855f241d771ea10e4b4d0707cdc1583697420'              'ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21'              '75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919'              'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65' -            'd744e7f4552896670bc8b99361534eec7ba095bebc2462ef0e5ee433e6341a0a' -            '8114295b8c07795a15b9f8eafb0f515c34661a1e05512da818a34581dd30f87e' -            'ef7c149d9af24efea551cec86e26f52c9c1cc02714335e948f929985ff414676' -            '25a0c0de5bae21f30557ed32815759be147a6a33020dc289e913d3147d3244f3') +            '0fa6899b57d32988b70050f1a67f435936273ce1aa98575271d564ccfaf45f77')  validpgpkeys=(                'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds                '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman                '65EEFE022108E2B708CBFCF7F9E712E59AF5F22A' # Daniel Micay                'E240B57E2C4630BA768E2F26FC1B547C8D8172C8' # Levente Polyak               ) +  _kernelname=${pkgbase#linux}  : ${_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 -  cat ../config.x86_64 - >.config <<END -CONFIG_LOCALVERSION="${_kernelname}" -CONFIG_LOCALVERSION_AUTO=n -END +  msg2 "Setting version..." +  sed -e "/^EXTRAVERSION =/s/=.*/= .${_hardenedver}/" -i Makefile +  scripts/setlocalversion --save-scmversion +  echo "-$pkgrel" > localversion.10-pkgrel +  echo "$_kernelname" > localversion.20-pkgname -  # 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) @@ -127,157 +121,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" ] && groups=('base') -  depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7') +  [[ $pkgbase = linux ]] && groups=(base) +  depends=(coreutils linux-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" + +  cd $_srcname -  install -Dt "${_builddir}" -m644 Makefile .config Module.symvers -  install -Dt "${_builddir}/kernel" -m644 kernel/Makefile +  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 -  mkdir "${_builddir}/.tmp_versions" +  # add objtool for external module building and enabled VALIDATION_STACK option +  install -Dt "$builddir/tools/objtool" tools/objtool/objtool -  cp -t "${_builddir}" -a include scripts +  # add xfs and shmem for aufs building +  mkdir -p "$builddir"/{fs/xfs,mm} -  install -Dt "${_builddir}/arch/x86" -m644 arch/x86/Makefile -  install -Dt "${_builddir}/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s +  # ??? +  mkdir "$builddir/.tmp_versions" -  cp -t "${_builddir}/arch/x86" -a arch/x86/include +  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 +  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-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 19c60d7..a9d265e 100644 --- a/config.x86_64 +++ b/config.x86_64 @@ -1,6 +1,10 @@  #  # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.17.10 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,  | 
