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