Compare commits
37 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
96dbd05c1f | ||
|
e1372ce04b | ||
|
ccbf7e5a82 | ||
|
0213d7503f | ||
|
3fd1eaddc4 | ||
|
cf3ee4415a | ||
|
ccc1e5cb69 | ||
|
4616e8a334 | ||
|
0669717533 | ||
|
3eb0fca482 | ||
|
3c4f81daa3 | ||
|
d465b7bbd0 | ||
|
17d26874f0 | ||
|
8fa230cc47 | ||
|
5c7f413670 | ||
|
430895448e | ||
|
12f4af77d1 | ||
|
9f4e3a6ab4 | ||
|
b711bc9d4b | ||
|
27a63d3151 | ||
|
129d26c332 | ||
|
a7110488dd | ||
|
8d7c65690a | ||
|
2fb0ab964e | ||
|
c146fa94b6 | ||
|
3d2b09d984 | ||
|
d9aa0ce0e6 | ||
|
3a62d00e93 | ||
|
3cdda62d46 | ||
|
2a3ef54e6e | ||
|
cce2db1c9f | ||
|
06eb48b3e3 | ||
|
a38ef1643c | ||
|
86578256b7 | ||
|
5298957d9b | ||
|
8c776ecf64 | ||
|
a6877bd422 |
@@ -10,6 +10,8 @@ env:
|
|||||||
_processor_opt: "generic"
|
_processor_opt: "generic"
|
||||||
PKGDEST: "/tmp/linux-tkg"
|
PKGDEST: "/tmp/linux-tkg"
|
||||||
_debugdisable: "true"
|
_debugdisable: "true"
|
||||||
|
_kernel_work_folder: "/tmp"
|
||||||
|
_kernel_source_folder: "/tmp"
|
||||||
# _modprobeddb: "true"
|
# _modprobeddb: "true"
|
||||||
# _modprobeddb_db_path: ${{ github.workspace }}/modprobed.db
|
# _modprobeddb_db_path: ${{ github.workspace }}/modprobed.db
|
||||||
|
|
||||||
|
25
PKGBUILD
25
PKGBUILD
@@ -48,8 +48,6 @@ fi
|
|||||||
|
|
||||||
source "$_where"/BIG_UGLY_FROGMINER
|
source "$_where"/BIG_UGLY_FROGMINER
|
||||||
|
|
||||||
_srcpath="linux-src-git"
|
|
||||||
|
|
||||||
if [ -n "$_custom_pkgbase" ]; then
|
if [ -n "$_custom_pkgbase" ]; then
|
||||||
pkgbase="${_custom_pkgbase}"
|
pkgbase="${_custom_pkgbase}"
|
||||||
else
|
else
|
||||||
@@ -81,10 +79,12 @@ export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EP
|
|||||||
prepare() {
|
prepare() {
|
||||||
rm -rf $pkgdir # Nuke the entire pkg folder so it'll get regenerated clean on next build
|
rm -rf $pkgdir # Nuke the entire pkg folder so it'll get regenerated clean on next build
|
||||||
|
|
||||||
ln -s "${_where}/customization.cfg" "${srcdir}" # workaround
|
_define_kernel_abs_paths
|
||||||
ln -s "${_where}/linux-src-git" "${srcdir}" # workaround, this doesn't respect tmpfs choice
|
if [ -e "${srcdir}/customization.cfg" ]; then
|
||||||
|
msg2 "Nuking remnant customization.cfg symlink" && rm -rf "${srcdir}/customization.cfg"
|
||||||
cd "${srcdir}/${_srcpath}"
|
fi
|
||||||
|
ln -s "${_where}/customization.cfg" "${srcdir}"
|
||||||
|
ln -s "${_kernel_work_folder_abs}" "${srcdir}"
|
||||||
|
|
||||||
source "${_where}/current_env"
|
source "${_where}/current_env"
|
||||||
|
|
||||||
@@ -92,7 +92,7 @@ prepare() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
cd "${srcdir}/${_srcpath}"
|
cd "$_kernel_work_folder_abs"
|
||||||
|
|
||||||
# Use custom compiler paths if defined
|
# Use custom compiler paths if defined
|
||||||
if [ "$_compiler_name" = "-llvm" ] && [ -n "${CUSTOM_LLVM_PATH}" ]; then
|
if [ "$_compiler_name" = "-llvm" ] && [ -n "${CUSTOM_LLVM_PATH}" ]; then
|
||||||
@@ -143,7 +143,8 @@ hackbase() {
|
|||||||
fi
|
fi
|
||||||
replaces=(virtualbox-guest-modules-arch wireguard-arch)
|
replaces=(virtualbox-guest-modules-arch wireguard-arch)
|
||||||
|
|
||||||
cd "${srcdir}/${_srcpath}"
|
_define_kernel_abs_paths
|
||||||
|
cd "$_kernel_work_folder_abs"
|
||||||
|
|
||||||
# get kernel version
|
# get kernel version
|
||||||
local _kernver="$(<version)"
|
local _kernver="$(<version)"
|
||||||
@@ -173,9 +174,9 @@ hackbase() {
|
|||||||
install -Dm644 "${srcdir}"/customization-full.cfg "${pkgdir}/usr/share/doc/${pkgbase}/customization.cfg"
|
install -Dm644 "${srcdir}"/customization-full.cfg "${pkgdir}/usr/share/doc/${pkgbase}/customization.cfg"
|
||||||
|
|
||||||
# workaround for missing header with winesync
|
# workaround for missing header with winesync
|
||||||
if [ -e "${srcdir}/${_srcpath}/include/uapi/linux/winesync.h" ]; then
|
if [ -e "${_kernel_work_folder_abs}/include/uapi/linux/winesync.h" ]; then
|
||||||
msg2 "Workaround missing winesync header"
|
msg2 "Workaround missing winesync header"
|
||||||
install -Dm644 "${srcdir}/${_srcpath}"/include/uapi/linux/winesync.h "${pkgdir}/usr/include/linux/winesync.h"
|
install -Dm644 "${_kernel_work_folder_abs}"/include/uapi/linux/winesync.h "${pkgdir}/usr/include/linux/winesync.h"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# load winesync module at boot
|
# load winesync module at boot
|
||||||
@@ -202,7 +203,9 @@ hackheaders() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
cd "${srcdir}/${_srcpath}"
|
_define_kernel_abs_paths
|
||||||
|
cd "$_kernel_work_folder_abs"
|
||||||
|
|
||||||
local builddir="${pkgdir}/usr/lib/modules/$(<version)/build"
|
local builddir="${pkgdir}/usr/lib/modules/$(<version)/build"
|
||||||
|
|
||||||
msg2 "Installing build files..."
|
msg2 "Installing build files..."
|
||||||
|
18
README.md
18
README.md
@@ -7,6 +7,7 @@ This repository provides scripts to automatically download, patch and compile th
|
|||||||
- **Non-pacman distros support can be considered experimental. You're invited to report issues you might encounter with it.**
|
- **Non-pacman distros support can be considered experimental. You're invited to report issues you might encounter with it.**
|
||||||
- **If your distro isn't using systemd, please set _configfile="running-kernel" in customization.cfg or you might end up with a non-bootable kernel**
|
- **If your distro isn't using systemd, please set _configfile="running-kernel" in customization.cfg or you might end up with a non-bootable kernel**
|
||||||
|
|
||||||
|
- Keep in mind building recent linux kernels with GCC will require ~20-25GB of disk space. Using llvm/clang, LTO, ccache and/or enabling more drivers in the defconfig will push that requirement higher, so make sure you have enough free space on the volume you're using to build.
|
||||||
- In `intel_pstate` driver, frequency scaling aggressiveness has been changed with kernel 5.5 which results in stutters and poor performance in low/medium load scenarios (for higher power savings). As a workaround for our gaming needs, we are setting it to passive mode to make use of the `acpi_cpufreq` governor passthrough, keeping full support for turbo frequencies. It's combined with our aggressive ondemand governor by default for good performance on most CPUs while keeping frequency scaling for power savings. In a typical low/medium load scenario (Core i7 9700k, playing Mario Galaxy on Dolphin emulator) intel_pstate in performance mode gives a stuttery 45-50 fps experience, while passive mode + aggressive ondemand offers a locked 60 fps.
|
- In `intel_pstate` driver, frequency scaling aggressiveness has been changed with kernel 5.5 which results in stutters and poor performance in low/medium load scenarios (for higher power savings). As a workaround for our gaming needs, we are setting it to passive mode to make use of the `acpi_cpufreq` governor passthrough, keeping full support for turbo frequencies. It's combined with our aggressive ondemand governor by default for good performance on most CPUs while keeping frequency scaling for power savings. In a typical low/medium load scenario (Core i7 9700k, playing Mario Galaxy on Dolphin emulator) intel_pstate in performance mode gives a stuttery 45-50 fps experience, while passive mode + aggressive ondemand offers a locked 60 fps.
|
||||||
- Nvidia's proprietary drivers might need to be patched if they don't support your chosen kernel OOTB: [Frogging-Family nvidia-all](https://github.com/Frogging-Family/nvidia-all) can do that automatically for you.
|
- Nvidia's proprietary drivers might need to be patched if they don't support your chosen kernel OOTB: [Frogging-Family nvidia-all](https://github.com/Frogging-Family/nvidia-all) can do that automatically for you.
|
||||||
- Note regarding kernels older than 5.9 on Arch Linux: since the switch to `zstd` compressed `initramfs` by default, you will face an `invalid magic at start of compress` error by default. You can workaround the issue by editing `/etc/mkinitcpio.conf` to uncomment the `COMPRESSION="lz4"` (for example, since that's the best option after zstd) line and regenerating `initramfs` for all kernels with `sudo mkinitpcio -P`
|
- Note regarding kernels older than 5.9 on Arch Linux: since the switch to `zstd` compressed `initramfs` by default, you will face an `invalid magic at start of compress` error by default. You can workaround the issue by editing `/etc/mkinitcpio.conf` to uncomment the `COMPRESSION="lz4"` (for example, since that's the best option after zstd) line and regenerating `initramfs` for all kernels with `sudo mkinitpcio -P`
|
||||||
@@ -19,8 +20,10 @@ This repository provides scripts to automatically download, patch and compile th
|
|||||||
Alternative schedulers are available to you in linux-tkg:
|
Alternative schedulers are available to you in linux-tkg:
|
||||||
- Project C / PDS & BMQ by Alfred Chen: [blog](http://cchalpha.blogspot.com/ ), [code repository](https://gitlab.com/alfredchen/projectc)
|
- Project C / PDS & BMQ by Alfred Chen: [blog](http://cchalpha.blogspot.com/ ), [code repository](https://gitlab.com/alfredchen/projectc)
|
||||||
- MuQSS by Con Kolivas : [blog](http://ck-hack.blogspot.com/), [code repository](https://github.com/ckolivas/linux)
|
- MuQSS by Con Kolivas : [blog](http://ck-hack.blogspot.com/), [code repository](https://github.com/ckolivas/linux)
|
||||||
- CacULE by Hamad Marri: [code repository](https://github.com/hamadmarri/cacule-cpu-scheduler)
|
- CacULE by Hamad Marri - CFS based : [code repository](https://github.com/hamadmarri/cacule-cpu-scheduler)
|
||||||
- Undead PDS: TkG's port of the pre-Project C "PDS-mq" scheduler by Alfred Chen. While PDS-mq got dropped with kernel 5.1 in favor of its BMQ evolution/rework, it wasn't on par with PDS-mq in gaming. "U" PDS still performs better in some cases than other schedulers, so it's been kept undead.
|
- Task Type (TT) by Hamad Marri - CFS based : [code repository](https://github.com/hamadmarri/TT-CPU-Scheduler)
|
||||||
|
- BORE (Burst-Oriented Response Enhancer) by Masahito Suzuki - CFS based : [code repository](https://github.com/firelzrd/bore-scheduler)
|
||||||
|
- Undead PDS : TkG's port of the pre-Project C "PDS-mq" scheduler by Alfred Chen. While PDS-mq got dropped with kernel 5.1 in favor of its BMQ evolution/rework, it wasn't on par with PDS-mq in gaming. "U" PDS still performed better in some cases than other schedulers, so it's been kept undead for a while.
|
||||||
|
|
||||||
These alternative schedulers can offer a better performance/latency ratio for gaming and desktop use. The availability of each scheduler depends on the chosen Kernel version: the script will display what's available on a per-version basis.
|
These alternative schedulers can offer a better performance/latency ratio for gaming and desktop use. The availability of each scheduler depends on the chosen Kernel version: the script will display what's available on a per-version basis.
|
||||||
#### Default tweaks
|
#### Default tweaks
|
||||||
@@ -119,17 +122,6 @@ cd path/to/linux-tkg
|
|||||||
```
|
```
|
||||||
The script will use a slightly modified Arch config from the `linux-tkg-config` folder, it can be changed through the `_configfile` variable in `customization.cfg`.
|
The script will use a slightly modified Arch config from the `linux-tkg-config` folder, it can be changed through the `_configfile` variable in `customization.cfg`.
|
||||||
|
|
||||||
#### Void Linux
|
|
||||||
```shell
|
|
||||||
git clone -b tkg https://github.com/Hyper-KVM/void-packages/
|
|
||||||
cd void-packages
|
|
||||||
./xbps-src binary-bootstrap
|
|
||||||
# Optional: edit customization.cfg located in srcpkgs/linux-tkg/files
|
|
||||||
# Optional: add custom userpatches with the ".mypatch" extension to srcpkgs/linux-tkg/files/mypatches
|
|
||||||
./xbps-src pkg -j$(nproc) linux-tkg
|
|
||||||
```
|
|
||||||
If you have to restart the build for any reason, run `./xbps-src clean linux-tkg` first.
|
|
||||||
|
|
||||||
#### Generic install
|
#### Generic install
|
||||||
The interactive `install.sh` script can be used to perform a "Generic" install by choosing `Generic` when prompted. It git clones the kernel tree in the `linux-src-git` folder, patches the code and edits a `.config` file in it. The commands to do are the following:
|
The interactive `install.sh` script can be used to perform a "Generic" install by choosing `Generic` when prompted. It git clones the kernel tree in the `linux-src-git` folder, patches the code and edits a `.config` file in it. The commands to do are the following:
|
||||||
```shell
|
```shell
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
# linux-TkG config file
|
# linux-TkG config file
|
||||||
|
|
||||||
# Linux distribution you are using, options are "Arch", "Void", "Ubuntu", "Debian", "Fedora", "Suse", "Gentoo", "Generic".
|
# Linux distribution you are using, options are "Arch", "Ubuntu", "Debian", "Fedora", "Suse", "Gentoo", "Generic".
|
||||||
# It is automatically set to "Arch" when using PKGBUILD.
|
# It is automatically set to "Arch" when using PKGBUILD.
|
||||||
# If left empty, the script will prompt
|
# If left empty, the script will prompt
|
||||||
_distro="Arch"
|
_distro="Arch"
|
||||||
@@ -23,6 +23,20 @@ _NUKR="true"
|
|||||||
# Git mirror to use to get the kernel sources, possible values are "kernel.org", "googlesource.com", "github.com" and "torvalds"
|
# Git mirror to use to get the kernel sources, possible values are "kernel.org", "googlesource.com", "github.com" and "torvalds"
|
||||||
_git_mirror="kernel.org"
|
_git_mirror="kernel.org"
|
||||||
|
|
||||||
|
# Root folder where to checkout the kernel sources (linux-src-git subdir) and build
|
||||||
|
# Note: - Leave empty to use PKGBUILD's dir
|
||||||
|
# - Start with a '/' for an absolute path in which `linux-tkg/linux-src-git/` will be created
|
||||||
|
# - This setting can be used to set the work/build folder to a tmpfs folder
|
||||||
|
# - Requires >= 32GB ram when building a full kernel, should work with less ram with modprobed-db
|
||||||
|
_kernel_work_folder=""
|
||||||
|
|
||||||
|
# Permanent root folder where to keep the git clone (linux-kernel.git subdir) and fetch new blobs
|
||||||
|
# Note: - Leave empty to use PKGBUILD's dir
|
||||||
|
# - Start with a '/' for an absolute path in which `linux-tkg/linux-kernel.git/` will be created
|
||||||
|
# - If your internet is faster than your storage, it may be wise to put this folder
|
||||||
|
# in a tmpfs location (although it will reclone after each restart / tmpfs folder cleanup)
|
||||||
|
_kernel_source_folder=""
|
||||||
|
|
||||||
# Custom compiler root dirs - Leave empty to use system compilers
|
# Custom compiler root dirs - Leave empty to use system compilers
|
||||||
# Example: CUSTOM_GCC_PATH="/home/frog/PKGBUILDS/mostlyportable-gcc/gcc-mostlyportable-9.2.0"
|
# Example: CUSTOM_GCC_PATH="/home/frog/PKGBUILDS/mostlyportable-gcc/gcc-mostlyportable-9.2.0"
|
||||||
CUSTOM_GCC_PATH=""
|
CUSTOM_GCC_PATH=""
|
||||||
@@ -54,17 +68,6 @@ _diffconfig="false"
|
|||||||
# Set to the file name where the generated config fragment should be written to. Only used if _diffconfig is active.
|
# Set to the file name where the generated config fragment should be written to. Only used if _diffconfig is active.
|
||||||
_diffconfig_name=""
|
_diffconfig_name=""
|
||||||
|
|
||||||
# [install.sh specific] Use tmpfs as a work directory, recommended when RAM >= 32GB to reduce HDD/SSD usage. For more information, see https://wiki.archlinux.org/title/Tmpfs
|
|
||||||
_use_tmpfs="false"
|
|
||||||
|
|
||||||
# Always make a fresh clone of the source in tmpfs to speed up compilation times
|
|
||||||
# ! This will take ~20GB of RAM by itself, so don't use on <32GB RAM systems !
|
|
||||||
_source_in_tmpfs="false"
|
|
||||||
|
|
||||||
# [install.sh specific] tmpfs folder path, only used when _use_tmpfs="true".
|
|
||||||
# Creates a linux-tkg work folder within that pathmake sure to have nothing important in "$_tmpfs_path/linux-tkg"
|
|
||||||
_tmpfs_path="/tmp"
|
|
||||||
|
|
||||||
# [install.sh: Generic and Gentoo specific] Dracut options when generating initramfs
|
# [install.sh: Generic and Gentoo specific] Dracut options when generating initramfs
|
||||||
_dracut_options="--lz4"
|
_dracut_options="--lz4"
|
||||||
|
|
||||||
@@ -93,7 +96,7 @@ _STRIP="true"
|
|||||||
|
|
||||||
# LEAVE AN EMPTY VALUE TO BE PROMPTED ABOUT FOLLOWING OPTIONS AT BUILD TIME
|
# LEAVE AN EMPTY VALUE TO BE PROMPTED ABOUT FOLLOWING OPTIONS AT BUILD TIME
|
||||||
|
|
||||||
# CPU scheduler - Options are "upds" (TkG's Undead PDS), "pds", "bmq", "muqss", "cacule" or "cfs" (kernel's default)
|
# CPU scheduler - Options are "upds" (TkG's Undead PDS), "pds", "bmq", "muqss", "cacule", "tt", "bore" or "cfs" (kernel's default)
|
||||||
_cpusched="pds"
|
_cpusched="pds"
|
||||||
|
|
||||||
# Compiler to use - Options are "gcc" or "llvm".
|
# Compiler to use - Options are "gcc" or "llvm".
|
||||||
@@ -160,24 +163,6 @@ _acs_override="false"
|
|||||||
# This can be buggy and isn't recommended on a production machine, also enabling this option will not allow you to enable MGLRU.
|
# This can be buggy and isn't recommended on a production machine, also enabling this option will not allow you to enable MGLRU.
|
||||||
_bcachefs="false"
|
_bcachefs="false"
|
||||||
|
|
||||||
# Set to "true" to add multi-generational LRU framework support on kernel 5.18+ - Improves memory pressure handling - https://lore.kernel.org/lkml/20220706220022.968789-1-yuzhao@google.com/
|
|
||||||
# Older kernel versions might have a patch available in the community-patches repo
|
|
||||||
# ! This option will be disabled when bcachefs is enabled for now !
|
|
||||||
_mglru="true"
|
|
||||||
|
|
||||||
# Set to "true" to enable support for fsync, an experimental replacement for esync found in Valve Proton 4.11+ - https://steamcommunity.com/games/221410/announcements/detail/2957094910196249305
|
|
||||||
# Can be enabled alongside _futex_waitv on 5.13+ to use it as a fallback for older Proton builds
|
|
||||||
_fsync="true"
|
|
||||||
|
|
||||||
# Set to "true" to enable support for futex2, an experimental interface that can be used by proton-tkg and proton 5.13 experimental through Fsync - Can be enabled alongside fsync to use it as a fallback
|
|
||||||
# https://gitlab.collabora.com/tonyk/linux/-/tree/futex2-dev
|
|
||||||
_futex2="true"
|
|
||||||
|
|
||||||
# Set to "true" to enable backported patches to add support for the futex_waitv() syscall, a new interface for fsync. It will appear in mainline at Linux 5.16 release and requires a wine/proton with builtin support for it. It's expected to be available in Valve Proton 6.3 stable soon - https://github.com/ValveSoftware/wine/pull/128
|
|
||||||
# !! Disables futex2 interfaces support !!
|
|
||||||
# https://github.com/andrealmeid/futex_waitv_patches
|
|
||||||
_futex_waitv="false"
|
|
||||||
|
|
||||||
# Set to "true" to enable support for winesync, an experimental replacement for esync - requires patched wine - https://repo.or.cz/linux/zf.git/shortlog/refs/heads/winesync4
|
# Set to "true" to enable support for winesync, an experimental replacement for esync - requires patched wine - https://repo.or.cz/linux/zf.git/shortlog/refs/heads/winesync4
|
||||||
# ! Can't be used on multiple kernels installed side-by-side, which will require https://aur.archlinux.org/packages/winesync-dkms/ instead of this option !
|
# ! Can't be used on multiple kernels installed side-by-side, which will require https://aur.archlinux.org/packages/winesync-dkms/ instead of this option !
|
||||||
_winesync="false"
|
_winesync="false"
|
||||||
@@ -205,9 +190,6 @@ _compileroptlevel="2"
|
|||||||
# - "generic_v4" (depends on GCC11 - to share the package between machines with different CPU µarch supporting at least x86-64-v4
|
# - "generic_v4" (depends on GCC11 - to share the package between machines with different CPU µarch supporting at least x86-64-v4
|
||||||
_processor_opt="skylake"
|
_processor_opt="skylake"
|
||||||
|
|
||||||
# MuQSS only - Make IRQ threading compulsory (FORCE_IRQ_THREADING) - Default is "false"
|
|
||||||
_irq_threading="false"
|
|
||||||
|
|
||||||
# CacULE only - Enable Response Driven Balancer, an experimental load balancer for CacULE
|
# CacULE only - Enable Response Driven Balancer, an experimental load balancer for CacULE
|
||||||
_cacule_rdb="false"
|
_cacule_rdb="false"
|
||||||
|
|
||||||
@@ -224,10 +206,6 @@ _smt_nice="true"
|
|||||||
# Trust the CPU manufacturer to initialize Linux's CRNG (RANDOM_TRUST_CPU) - Kernel default is "false"
|
# Trust the CPU manufacturer to initialize Linux's CRNG (RANDOM_TRUST_CPU) - Kernel default is "false"
|
||||||
_random_trust_cpu="true"
|
_random_trust_cpu="true"
|
||||||
|
|
||||||
# MuQSS only - CPU scheduler runqueue sharing - No sharing (RQ_NONE), SMT (hyperthread) siblings (RQ_SMT), Multicore siblings (RQ_MC), Symmetric Multi-Processing (RQ_SMP), NUMA (RQ_ALL)
|
|
||||||
# Valid values are "none", "smt", "mc", "mc-llc"(for zen), "smp", "all" - Kernel default is "smt"
|
|
||||||
_runqueue_sharing=""
|
|
||||||
|
|
||||||
# Timer frequency - "100" "250" "300" "500" "750" "1000" ("2000" is available for cacule cpusched only) - More options available in kernel config prompt when left empty depending on selected cpusched with the default option pointed with a ">" (2000 for cacule, 100 for muqss and 1000 for other cpu schedulers)
|
# Timer frequency - "100" "250" "300" "500" "750" "1000" ("2000" is available for cacule cpusched only) - More options available in kernel config prompt when left empty depending on selected cpusched with the default option pointed with a ">" (2000 for cacule, 100 for muqss and 1000 for other cpu schedulers)
|
||||||
_timer_freq="500"
|
_timer_freq="500"
|
||||||
|
|
||||||
@@ -261,14 +239,41 @@ _custom_pkgbase=""
|
|||||||
# If left empty, it will use "-tkg-${_cpusched}${_compiler}" where "${_cpusched}" will be replaced by the user chosen scheduler, ${_compiler} will be replaced by "-llvm" if clang is used (nothing for GCC).
|
# If left empty, it will use "-tkg-${_cpusched}${_compiler}" where "${_cpusched}" will be replaced by the user chosen scheduler, ${_compiler} will be replaced by "-llvm" if clang is used (nothing for GCC).
|
||||||
_kernel_localversion=""
|
_kernel_localversion=""
|
||||||
|
|
||||||
# Set to "true" to add back missing symbol for AES-NI/AVX support on ZFS - This is a legacy option that can be ignored on 5.10+ kernels - https://github.com/NixOS/nixpkgs/blob/master/pkgs/os-specific/linux/kernel/export_kernel_fpu_functions.patch
|
|
||||||
_zfsfix="true"
|
|
||||||
|
|
||||||
# Set to your maximum number of CPUs (physical + logical cores) - Lower means less overhead - You can set it to "$(nproc)" to use the current host's CPU(s) core count, or leave empty to use default
|
# Set to your maximum number of CPUs (physical + logical cores) - Lower means less overhead - You can set it to "$(nproc)" to use the current host's CPU(s) core count, or leave empty to use default
|
||||||
# If you set this to a lower value than you have cores, some cores will be disabled
|
# If you set this to a lower value than you have cores, some cores will be disabled
|
||||||
# Default Arch kernel value is 320
|
# Default Arch kernel value is 320
|
||||||
_NR_CPUS_value=""
|
_NR_CPUS_value=""
|
||||||
|
|
||||||
|
#### LEGACY OPTIONS ####
|
||||||
|
|
||||||
|
# Set to "true" to enable support for fsync, an experimental replacement for esync found in Valve Proton 4.11+ - https://steamcommunity.com/games/221410/announcements/detail/2957094910196249305
|
||||||
|
# Can be enabled alongside _futex_waitv on 5.13+ to use it as a fallback for older Proton builds
|
||||||
|
_fsync="true"
|
||||||
|
|
||||||
|
# Set to "true" to enable backported patches to add support for the futex_waitv() syscall, a new interface for fsync. Upstream as of 5.16 and requires a wine/proton with builtin support for it - https://github.com/ValveSoftware/wine/pull/128
|
||||||
|
# !! Disables futex2 interfaces support !!
|
||||||
|
# https://github.com/andrealmeid/futex_waitv_patches
|
||||||
|
_futex_waitv="true"
|
||||||
|
|
||||||
|
# Set to "true" to enable support for futex2, an experimental interface that can be used by proton-tkg and proton 5.13 experimental through Fsync - Can be enabled alongside fsync to use it as a fallback
|
||||||
|
# https://gitlab.collabora.com/tonyk/linux/-/tree/futex2-dev
|
||||||
|
_futex2="true"
|
||||||
|
|
||||||
|
# Set to "true" to add back missing symbol for AES-NI/AVX support on ZFS - This is a legacy option that can be ignored on 5.10+ kernels - https://github.com/NixOS/nixpkgs/blob/master/pkgs/os-specific/linux/kernel/export_kernel_fpu_functions.patch
|
||||||
|
_zfsfix="true"
|
||||||
|
|
||||||
|
# MuQSS only - CPU scheduler runqueue sharing - No sharing (RQ_NONE), SMT (hyperthread) siblings (RQ_SMT), Multicore siblings (RQ_MC), Symmetric Multi-Processing (RQ_SMP), NUMA (RQ_ALL)
|
||||||
|
# Valid values are "none", "smt", "mc", "mc-llc"(for zen), "smp", "all" - Kernel default is "smt"
|
||||||
|
_runqueue_sharing=""
|
||||||
|
|
||||||
|
# MuQSS only - Make IRQ threading compulsory (FORCE_IRQ_THREADING) - Default is "false"
|
||||||
|
_irq_threading="false"
|
||||||
|
|
||||||
|
# Set to "true" to add multi-generational LRU framework support on kernel 5.18+ - Improves memory pressure handling - https://lore.kernel.org/lkml/20220706220022.968789-1-yuzhao@google.com/
|
||||||
|
# Older kernel versions might have a patch available in the community-patches repo
|
||||||
|
# Upstream as of 6.1
|
||||||
|
# ! This option will be disabled when bcachefs is enabled !
|
||||||
|
_mglru="true"
|
||||||
|
|
||||||
#### USER PATCHES ####
|
#### USER PATCHES ####
|
||||||
|
|
||||||
|
28
install.sh
28
install.sh
@@ -83,7 +83,7 @@ _install_dependencies() {
|
|||||||
|
|
||||||
if [ "$1" != "install" ] && [ "$1" != "config" ] && [ "$1" != "uninstall-help" ]; then
|
if [ "$1" != "install" ] && [ "$1" != "config" ] && [ "$1" != "uninstall-help" ]; then
|
||||||
msg2 "Argument not recognised, options are:
|
msg2 "Argument not recognised, options are:
|
||||||
- config : interactive script that shallow clones the linux 5.x.y git tree into the folder linux-src-git, then applies extra patches and prepares the .config file
|
- config : interactive script that shallow clones the linux 5.x.y git tree into the folder \$_kernel_work_folder, then applies extra patches and prepares the .config file
|
||||||
by copying the one from the currently running linux system and updates it.
|
by copying the one from the currently running linux system and updates it.
|
||||||
- install : does the config step, proceeds to compile, then prompts to install
|
- install : does the config step, proceeds to compile, then prompts to install
|
||||||
- 'DEB' distros: it creates .deb packages that will be installed then stored in the DEBS folder.
|
- 'DEB' distros: it creates .deb packages that will be installed then stored in the DEBS folder.
|
||||||
@@ -136,24 +136,9 @@ if [ "$1" = "install" ] || [ "$1" = "config" ]; then
|
|||||||
_distro=""
|
_distro=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# cd into the linux-src folder is important before calling _tkg_srcprep
|
|
||||||
cd "$_where/linux-src-git"
|
|
||||||
_tkg_srcprep
|
_tkg_srcprep
|
||||||
|
|
||||||
_build_dir="$_where"
|
_build_dir="$_kernel_work_folder_abs/.."
|
||||||
if [ "$_use_tmpfs" = "true" ]; then
|
|
||||||
if [ -d "$_tmpfs_path/linux-tkg" ]; then
|
|
||||||
msg2 "Nuking linux-tkg tmpfs folder $_tmpfs_path/linux-tkg"
|
|
||||||
rm -rf "$_tmpfs_path/linux-tkg"
|
|
||||||
fi
|
|
||||||
mkdir "$_tmpfs_path/linux-tkg"
|
|
||||||
cp -r "$_where/linux-src-git" "$_tmpfs_path/linux-tkg/linux-src-git"
|
|
||||||
|
|
||||||
# cd into the linux-src folder is important before calling _tkg_srcprep
|
|
||||||
_build_dir="$_tmpfs_path/linux-tkg"
|
|
||||||
cd "$_tmpfs_path/linux-tkg/linux-src-git"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Uppercase characters are not allowed in source package name for debian based distros
|
# Uppercase characters are not allowed in source package name for debian based distros
|
||||||
if [[ "$_distro" =~ ^(Debian|Ubuntu)$ && "$_cpusched" = "MuQSS" ]]; then
|
if [[ "$_distro" =~ ^(Debian|Ubuntu)$ && "$_cpusched" = "MuQSS" ]]; then
|
||||||
@@ -221,6 +206,8 @@ if [ "$1" = "install" ]; then
|
|||||||
#_runtime=$( time ( schedtool -B -n 1 -e ionice -n 1 "$@" 2>&1 ) 3>&1 1>&2 2>&3 ) || _runtime=$( time ( "$@" 2>&1 ) 3>&1 1>&2 2>&3 ) - Bash 5.2 is broken https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1018727
|
#_runtime=$( time ( schedtool -B -n 1 -e ionice -n 1 "$@" 2>&1 ) 3>&1 1>&2 2>&3 ) || _runtime=$( time ( "$@" 2>&1 ) 3>&1 1>&2 2>&3 ) - Bash 5.2 is broken https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1018727
|
||||||
#}
|
#}
|
||||||
|
|
||||||
|
cd "$_kernel_work_folder_abs"
|
||||||
|
|
||||||
if [[ "$_distro" =~ ^(Ubuntu|Debian)$ ]]; then
|
if [[ "$_distro" =~ ^(Ubuntu|Debian)$ ]]; then
|
||||||
|
|
||||||
msg2 "Building kernel DEB packages"
|
msg2 "Building kernel DEB packages"
|
||||||
@@ -262,10 +249,7 @@ if [ "$1" = "install" ]; then
|
|||||||
_extra_ver_str="_${_kernel_flavor}"
|
_extra_ver_str="_${_kernel_flavor}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
_fedora_work_dir="${HOME}/.cache/linux-tkg-rpmbuild"
|
_fedora_work_dir="$_kernel_work_folder_abs/linux-tkg-rpmbuild"
|
||||||
if [ "$_use_tmpfs" = "true" ]; then
|
|
||||||
_fedora_work_dir="$_tmpfs_path/linux-tkg/linux-tkg-rpmbuild"
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg2 "Building kernel RPM packages"
|
msg2 "Building kernel RPM packages"
|
||||||
RPMOPTS="--define '_topdir ${_fedora_work_dir}'" make ${llvm_opt} -j ${_thread_num} rpm-pkg EXTRAVERSION="${_extra_ver_str}"
|
RPMOPTS="--define '_topdir ${_fedora_work_dir}'" make ${llvm_opt} -j ${_thread_num} rpm-pkg EXTRAVERSION="${_extra_ver_str}"
|
||||||
@@ -432,7 +416,7 @@ if [ "$1" = "uninstall-help" ]; then
|
|||||||
msg2 "Note: linux-libc-dev packages are no longer created and installed, you can safely remove any remnants."
|
msg2 "Note: linux-libc-dev packages are no longer created and installed, you can safely remove any remnants."
|
||||||
elif [ "$_distro" = "Fedora" ]; then
|
elif [ "$_distro" = "Fedora" ]; then
|
||||||
msg2 "List of installed custom tkg kernels: "
|
msg2 "List of installed custom tkg kernels: "
|
||||||
dnf list --installed kernel*
|
dnf list --installed | grep -i "tkg"
|
||||||
msg2 "To uninstall a version, you should remove the kernel, kernel-headers and kernel-devel associated to it (if installed), with: "
|
msg2 "To uninstall a version, you should remove the kernel, kernel-headers and kernel-devel associated to it (if installed), with: "
|
||||||
msg2 " sudo dnf remove --noautoremove kernel-VERSION kernel-devel-VERSION kernel-headers-VERSION"
|
msg2 " sudo dnf remove --noautoremove kernel-VERSION kernel-devel-VERSION kernel-headers-VERSION"
|
||||||
msg2 " where VERSION is displayed in the second column"
|
msg2 " where VERSION is displayed in the second column"
|
||||||
|
@@ -1,15 +1,15 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated file; DO NOT EDIT.
|
# Automatically generated file; DO NOT EDIT.
|
||||||
# Linux/x86 6.2.0-rc1 Kernel Configuration
|
# Linux/x86 6.2.0 Kernel Configuration
|
||||||
#
|
#
|
||||||
CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0"
|
CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.1 20230201"
|
||||||
CONFIG_CC_IS_GCC=y
|
CONFIG_CC_IS_GCC=y
|
||||||
CONFIG_GCC_VERSION=120200
|
CONFIG_GCC_VERSION=120201
|
||||||
CONFIG_CLANG_VERSION=0
|
CONFIG_CLANG_VERSION=0
|
||||||
CONFIG_AS_IS_GNU=y
|
CONFIG_AS_IS_GNU=y
|
||||||
CONFIG_AS_VERSION=23900
|
CONFIG_AS_VERSION=24000
|
||||||
CONFIG_LD_IS_BFD=y
|
CONFIG_LD_IS_BFD=y
|
||||||
CONFIG_LD_VERSION=23900
|
CONFIG_LD_VERSION=24000
|
||||||
CONFIG_LLD_VERSION=0
|
CONFIG_LLD_VERSION=0
|
||||||
CONFIG_CC_CAN_LINK=y
|
CONFIG_CC_CAN_LINK=y
|
||||||
CONFIG_CC_CAN_LINK_STATIC=y
|
CONFIG_CC_CAN_LINK_STATIC=y
|
||||||
@@ -182,10 +182,9 @@ CONFIG_RCU_NOCB_CPU=y
|
|||||||
# CONFIG_RCU_NOCB_CPU_DEFAULT_ALL is not set
|
# CONFIG_RCU_NOCB_CPU_DEFAULT_ALL is not set
|
||||||
# CONFIG_RCU_NOCB_CPU_CB_BOOST is not set
|
# CONFIG_RCU_NOCB_CPU_CB_BOOST is not set
|
||||||
# CONFIG_TASKS_TRACE_RCU_READ_MB is not set
|
# CONFIG_TASKS_TRACE_RCU_READ_MB is not set
|
||||||
# CONFIG_RCU_LAZY is not set
|
CONFIG_RCU_LAZY=y
|
||||||
# end of RCU Subsystem
|
# end of RCU Subsystem
|
||||||
|
|
||||||
CONFIG_BUILD_BIN2C=y
|
|
||||||
CONFIG_IKCONFIG=y
|
CONFIG_IKCONFIG=y
|
||||||
CONFIG_IKCONFIG_PROC=y
|
CONFIG_IKCONFIG_PROC=y
|
||||||
CONFIG_IKHEADERS=m
|
CONFIG_IKHEADERS=m
|
||||||
@@ -206,6 +205,7 @@ CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
|
|||||||
CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
|
CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
|
||||||
CONFIG_CC_HAS_INT128=y
|
CONFIG_CC_HAS_INT128=y
|
||||||
CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
|
CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
|
||||||
|
CONFIG_GCC11_NO_ARRAY_BOUNDS=y
|
||||||
CONFIG_GCC12_NO_ARRAY_BOUNDS=y
|
CONFIG_GCC12_NO_ARRAY_BOUNDS=y
|
||||||
CONFIG_CC_NO_ARRAY_BOUNDS=y
|
CONFIG_CC_NO_ARRAY_BOUNDS=y
|
||||||
CONFIG_ARCH_SUPPORTS_INT128=y
|
CONFIG_ARCH_SUPPORTS_INT128=y
|
||||||
@@ -241,6 +241,7 @@ CONFIG_UTS_NS=y
|
|||||||
CONFIG_TIME_NS=y
|
CONFIG_TIME_NS=y
|
||||||
CONFIG_IPC_NS=y
|
CONFIG_IPC_NS=y
|
||||||
CONFIG_USER_NS=y
|
CONFIG_USER_NS=y
|
||||||
|
CONFIG_USER_NS_UNPRIVILEGED=y
|
||||||
CONFIG_PID_NS=y
|
CONFIG_PID_NS=y
|
||||||
CONFIG_NET_NS=y
|
CONFIG_NET_NS=y
|
||||||
CONFIG_CHECKPOINT_RESTORE=y
|
CONFIG_CHECKPOINT_RESTORE=y
|
||||||
@@ -486,7 +487,7 @@ CONFIG_X86_INTEL_TSX_MODE_AUTO=y
|
|||||||
CONFIG_X86_SGX=y
|
CONFIG_X86_SGX=y
|
||||||
CONFIG_EFI=y
|
CONFIG_EFI=y
|
||||||
CONFIG_EFI_STUB=y
|
CONFIG_EFI_STUB=y
|
||||||
CONFIG_EFI_HANDOVER_PROTOCOL=y
|
# CONFIG_EFI_HANDOVER_PROTOCOL is not set
|
||||||
CONFIG_EFI_MIXED=y
|
CONFIG_EFI_MIXED=y
|
||||||
# CONFIG_EFI_FAKE_MEMMAP is not set
|
# CONFIG_EFI_FAKE_MEMMAP is not set
|
||||||
CONFIG_EFI_RUNTIME_MAP=y
|
CONFIG_EFI_RUNTIME_MAP=y
|
||||||
@@ -636,7 +637,7 @@ CONFIG_ACPI_ADXL=y
|
|||||||
CONFIG_ACPI_CONFIGFS=m
|
CONFIG_ACPI_CONFIGFS=m
|
||||||
CONFIG_ACPI_PFRUT=m
|
CONFIG_ACPI_PFRUT=m
|
||||||
CONFIG_ACPI_PCC=y
|
CONFIG_ACPI_PCC=y
|
||||||
# CONFIG_ACPI_FFH is not set
|
CONFIG_ACPI_FFH=y
|
||||||
CONFIG_PMIC_OPREGION=y
|
CONFIG_PMIC_OPREGION=y
|
||||||
CONFIG_BYTCRC_PMIC_OPREGION=y
|
CONFIG_BYTCRC_PMIC_OPREGION=y
|
||||||
CONFIG_CHTCRC_PMIC_OPREGION=y
|
CONFIG_CHTCRC_PMIC_OPREGION=y
|
||||||
@@ -934,7 +935,7 @@ CONFIG_MODULE_SIG_HASH="sha512"
|
|||||||
# CONFIG_MODULE_COMPRESS_GZIP is not set
|
# CONFIG_MODULE_COMPRESS_GZIP is not set
|
||||||
# CONFIG_MODULE_COMPRESS_XZ is not set
|
# CONFIG_MODULE_COMPRESS_XZ is not set
|
||||||
CONFIG_MODULE_COMPRESS_ZSTD=y
|
CONFIG_MODULE_COMPRESS_ZSTD=y
|
||||||
# CONFIG_MODULE_DECOMPRESS is not set
|
CONFIG_MODULE_DECOMPRESS=y
|
||||||
CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS=y
|
CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS=y
|
||||||
CONFIG_MODPROBE_PATH="/sbin/modprobe"
|
CONFIG_MODPROBE_PATH="/sbin/modprobe"
|
||||||
CONFIG_MODULES_TREE_LOOKUP=y
|
CONFIG_MODULES_TREE_LOOKUP=y
|
||||||
@@ -1987,7 +1988,7 @@ CONFIG_BT_HCIUART_QCA=y
|
|||||||
CONFIG_BT_HCIUART_AG6XX=y
|
CONFIG_BT_HCIUART_AG6XX=y
|
||||||
CONFIG_BT_HCIUART_MRVL=y
|
CONFIG_BT_HCIUART_MRVL=y
|
||||||
CONFIG_BT_HCIBCM203X=m
|
CONFIG_BT_HCIBCM203X=m
|
||||||
# CONFIG_BT_HCIBCM4377 is not set
|
CONFIG_BT_HCIBCM4377=m
|
||||||
CONFIG_BT_HCIBPA10X=m
|
CONFIG_BT_HCIBPA10X=m
|
||||||
CONFIG_BT_HCIBFUSB=m
|
CONFIG_BT_HCIBFUSB=m
|
||||||
CONFIG_BT_HCIDTL1=m
|
CONFIG_BT_HCIDTL1=m
|
||||||
@@ -2325,7 +2326,7 @@ CONFIG_SYSFB=y
|
|||||||
CONFIG_FW_CS_DSP=m
|
CONFIG_FW_CS_DSP=m
|
||||||
CONFIG_GOOGLE_FIRMWARE=y
|
CONFIG_GOOGLE_FIRMWARE=y
|
||||||
# CONFIG_GOOGLE_SMI is not set
|
# CONFIG_GOOGLE_SMI is not set
|
||||||
# CONFIG_GOOGLE_CBMEM is not set
|
CONFIG_GOOGLE_CBMEM=m
|
||||||
CONFIG_GOOGLE_COREBOOT_TABLE=m
|
CONFIG_GOOGLE_COREBOOT_TABLE=m
|
||||||
CONFIG_GOOGLE_MEMCONSOLE=m
|
CONFIG_GOOGLE_MEMCONSOLE=m
|
||||||
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
|
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
|
||||||
@@ -2537,7 +2538,7 @@ CONFIG_ZRAM_DEF_COMP_LZORLE=y
|
|||||||
CONFIG_ZRAM_DEF_COMP="lzo-rle"
|
CONFIG_ZRAM_DEF_COMP="lzo-rle"
|
||||||
CONFIG_ZRAM_WRITEBACK=y
|
CONFIG_ZRAM_WRITEBACK=y
|
||||||
# CONFIG_ZRAM_MEMORY_TRACKING is not set
|
# CONFIG_ZRAM_MEMORY_TRACKING is not set
|
||||||
# CONFIG_ZRAM_MULTI_COMP is not set
|
CONFIG_ZRAM_MULTI_COMP=y
|
||||||
CONFIG_BLK_DEV_LOOP=m
|
CONFIG_BLK_DEV_LOOP=m
|
||||||
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
|
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
|
||||||
CONFIG_BLK_DEV_DRBD=m
|
CONFIG_BLK_DEV_DRBD=m
|
||||||
@@ -2546,6 +2547,9 @@ CONFIG_BLK_DEV_NBD=m
|
|||||||
CONFIG_BLK_DEV_RAM=m
|
CONFIG_BLK_DEV_RAM=m
|
||||||
CONFIG_BLK_DEV_RAM_COUNT=16
|
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||||
CONFIG_BLK_DEV_RAM_SIZE=16384
|
CONFIG_BLK_DEV_RAM_SIZE=16384
|
||||||
|
CONFIG_CDROM_PKTCDVD=m
|
||||||
|
CONFIG_CDROM_PKTCDVD_BUFFERS=8
|
||||||
|
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
|
||||||
CONFIG_ATA_OVER_ETH=m
|
CONFIG_ATA_OVER_ETH=m
|
||||||
CONFIG_XEN_BLKDEV_FRONTEND=m
|
CONFIG_XEN_BLKDEV_FRONTEND=m
|
||||||
CONFIG_XEN_BLKDEV_BACKEND=m
|
CONFIG_XEN_BLKDEV_BACKEND=m
|
||||||
@@ -2594,6 +2598,8 @@ CONFIG_TIFM_CORE=m
|
|||||||
CONFIG_TIFM_7XX1=m
|
CONFIG_TIFM_7XX1=m
|
||||||
CONFIG_ICS932S401=m
|
CONFIG_ICS932S401=m
|
||||||
CONFIG_ENCLOSURE_SERVICES=m
|
CONFIG_ENCLOSURE_SERVICES=m
|
||||||
|
CONFIG_SMPRO_ERRMON=m
|
||||||
|
CONFIG_SMPRO_MISC=m
|
||||||
CONFIG_HP_ILO=m
|
CONFIG_HP_ILO=m
|
||||||
CONFIG_APDS9802ALS=m
|
CONFIG_APDS9802ALS=m
|
||||||
CONFIG_ISL29003=m
|
CONFIG_ISL29003=m
|
||||||
@@ -3318,7 +3324,7 @@ CONFIG_ENC28J60=m
|
|||||||
# CONFIG_ENC28J60_WRITEVERIFY is not set
|
# CONFIG_ENC28J60_WRITEVERIFY is not set
|
||||||
CONFIG_ENCX24J600=m
|
CONFIG_ENCX24J600=m
|
||||||
CONFIG_LAN743X=m
|
CONFIG_LAN743X=m
|
||||||
# CONFIG_VCAP is not set
|
CONFIG_VCAP=y
|
||||||
CONFIG_NET_VENDOR_MICROSEMI=y
|
CONFIG_NET_VENDOR_MICROSEMI=y
|
||||||
CONFIG_MSCC_OCELOT_SWITCH_LIB=m
|
CONFIG_MSCC_OCELOT_SWITCH_LIB=m
|
||||||
CONFIG_NET_VENDOR_MICROSOFT=y
|
CONFIG_NET_VENDOR_MICROSOFT=y
|
||||||
@@ -3892,7 +3898,7 @@ CONFIG_MT7921_COMMON=m
|
|||||||
CONFIG_MT7921E=m
|
CONFIG_MT7921E=m
|
||||||
CONFIG_MT7921S=m
|
CONFIG_MT7921S=m
|
||||||
CONFIG_MT7921U=m
|
CONFIG_MT7921U=m
|
||||||
# CONFIG_MT7996E is not set
|
CONFIG_MT7996E=m
|
||||||
CONFIG_WLAN_VENDOR_MICROCHIP=y
|
CONFIG_WLAN_VENDOR_MICROCHIP=y
|
||||||
CONFIG_WILC1000=m
|
CONFIG_WILC1000=m
|
||||||
CONFIG_WILC1000_SDIO=m
|
CONFIG_WILC1000_SDIO=m
|
||||||
@@ -3956,27 +3962,29 @@ CONFIG_RTL8XXXU_UNTESTED=y
|
|||||||
CONFIG_RTW88=m
|
CONFIG_RTW88=m
|
||||||
CONFIG_RTW88_CORE=m
|
CONFIG_RTW88_CORE=m
|
||||||
CONFIG_RTW88_PCI=m
|
CONFIG_RTW88_PCI=m
|
||||||
|
CONFIG_RTW88_USB=m
|
||||||
CONFIG_RTW88_8822B=m
|
CONFIG_RTW88_8822B=m
|
||||||
CONFIG_RTW88_8822C=m
|
CONFIG_RTW88_8822C=m
|
||||||
CONFIG_RTW88_8723D=m
|
CONFIG_RTW88_8723D=m
|
||||||
CONFIG_RTW88_8821C=m
|
CONFIG_RTW88_8821C=m
|
||||||
CONFIG_RTW88_8822BE=m
|
CONFIG_RTW88_8822BE=m
|
||||||
# CONFIG_RTW88_8822BU is not set
|
CONFIG_RTW88_8822BU=m
|
||||||
CONFIG_RTW88_8822CE=m
|
CONFIG_RTW88_8822CE=m
|
||||||
# CONFIG_RTW88_8822CU is not set
|
CONFIG_RTW88_8822CU=m
|
||||||
CONFIG_RTW88_8723DE=m
|
CONFIG_RTW88_8723DE=m
|
||||||
# CONFIG_RTW88_8723DU is not set
|
CONFIG_RTW88_8723DU=m
|
||||||
CONFIG_RTW88_8821CE=m
|
CONFIG_RTW88_8821CE=m
|
||||||
# CONFIG_RTW88_8821CU is not set
|
CONFIG_RTW88_8821CU=m
|
||||||
CONFIG_RTW88_DEBUG=y
|
CONFIG_RTW88_DEBUG=y
|
||||||
CONFIG_RTW88_DEBUGFS=y
|
CONFIG_RTW88_DEBUGFS=y
|
||||||
CONFIG_RTW89=m
|
CONFIG_RTW89=m
|
||||||
CONFIG_RTW89_CORE=m
|
CONFIG_RTW89_CORE=m
|
||||||
CONFIG_RTW89_PCI=m
|
CONFIG_RTW89_PCI=m
|
||||||
CONFIG_RTW89_8852A=m
|
CONFIG_RTW89_8852A=m
|
||||||
|
CONFIG_RTW89_8852B=m
|
||||||
CONFIG_RTW89_8852C=m
|
CONFIG_RTW89_8852C=m
|
||||||
CONFIG_RTW89_8852AE=m
|
CONFIG_RTW89_8852AE=m
|
||||||
# CONFIG_RTW89_8852BE is not set
|
CONFIG_RTW89_8852BE=m
|
||||||
CONFIG_RTW89_8852CE=m
|
CONFIG_RTW89_8852CE=m
|
||||||
CONFIG_RTW89_DEBUG=y
|
CONFIG_RTW89_DEBUG=y
|
||||||
CONFIG_RTW89_DEBUGMSG=y
|
CONFIG_RTW89_DEBUGMSG=y
|
||||||
@@ -4224,7 +4232,7 @@ CONFIG_TOUCHSCREEN_CYTTSP_SPI=m
|
|||||||
CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
|
CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
|
||||||
CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
|
CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
|
||||||
CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
|
CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
|
||||||
# CONFIG_TOUCHSCREEN_CYTTSP5 is not set
|
CONFIG_TOUCHSCREEN_CYTTSP5=m
|
||||||
CONFIG_TOUCHSCREEN_DA9034=m
|
CONFIG_TOUCHSCREEN_DA9034=m
|
||||||
CONFIG_TOUCHSCREEN_DA9052=m
|
CONFIG_TOUCHSCREEN_DA9052=m
|
||||||
CONFIG_TOUCHSCREEN_DYNAPRO=m
|
CONFIG_TOUCHSCREEN_DYNAPRO=m
|
||||||
@@ -4236,7 +4244,7 @@ CONFIG_TOUCHSCREEN_FUJITSU=m
|
|||||||
CONFIG_TOUCHSCREEN_GOODIX=m
|
CONFIG_TOUCHSCREEN_GOODIX=m
|
||||||
CONFIG_TOUCHSCREEN_HIDEEP=m
|
CONFIG_TOUCHSCREEN_HIDEEP=m
|
||||||
CONFIG_TOUCHSCREEN_HYCON_HY46XX=m
|
CONFIG_TOUCHSCREEN_HYCON_HY46XX=m
|
||||||
# CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX is not set
|
CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX=m
|
||||||
CONFIG_TOUCHSCREEN_ILI210X=m
|
CONFIG_TOUCHSCREEN_ILI210X=m
|
||||||
CONFIG_TOUCHSCREEN_ILITEK=m
|
CONFIG_TOUCHSCREEN_ILITEK=m
|
||||||
CONFIG_TOUCHSCREEN_S6SY761=m
|
CONFIG_TOUCHSCREEN_S6SY761=m
|
||||||
@@ -4311,7 +4319,7 @@ CONFIG_TOUCHSCREEN_COLIBRI_VF50=m
|
|||||||
CONFIG_TOUCHSCREEN_ROHM_BU21023=m
|
CONFIG_TOUCHSCREEN_ROHM_BU21023=m
|
||||||
CONFIG_TOUCHSCREEN_IQS5XX=m
|
CONFIG_TOUCHSCREEN_IQS5XX=m
|
||||||
CONFIG_TOUCHSCREEN_ZINITIX=m
|
CONFIG_TOUCHSCREEN_ZINITIX=m
|
||||||
# CONFIG_TOUCHSCREEN_HIMAX_HX83112B is not set
|
CONFIG_TOUCHSCREEN_HIMAX_HX83112B=m
|
||||||
CONFIG_INPUT_MISC=y
|
CONFIG_INPUT_MISC=y
|
||||||
CONFIG_INPUT_88PM860X_ONKEY=m
|
CONFIG_INPUT_88PM860X_ONKEY=m
|
||||||
CONFIG_INPUT_88PM80X_ONKEY=m
|
CONFIG_INPUT_88PM80X_ONKEY=m
|
||||||
@@ -4429,7 +4437,7 @@ CONFIG_HW_CONSOLE=y
|
|||||||
CONFIG_VT_HW_CONSOLE_BINDING=y
|
CONFIG_VT_HW_CONSOLE_BINDING=y
|
||||||
CONFIG_UNIX98_PTYS=y
|
CONFIG_UNIX98_PTYS=y
|
||||||
# CONFIG_LEGACY_PTYS is not set
|
# CONFIG_LEGACY_PTYS is not set
|
||||||
CONFIG_LEGACY_TIOCSTI=y
|
# CONFIG_LEGACY_TIOCSTI is not set
|
||||||
CONFIG_LDISC_AUTOLOAD=y
|
CONFIG_LDISC_AUTOLOAD=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -4522,7 +4530,7 @@ CONFIG_IPMI_SSIF=m
|
|||||||
CONFIG_IPMI_IPMB=m
|
CONFIG_IPMI_IPMB=m
|
||||||
CONFIG_IPMI_WATCHDOG=m
|
CONFIG_IPMI_WATCHDOG=m
|
||||||
CONFIG_IPMI_POWEROFF=m
|
CONFIG_IPMI_POWEROFF=m
|
||||||
# CONFIG_SSIF_IPMI_BMC is not set
|
CONFIG_SSIF_IPMI_BMC=m
|
||||||
CONFIG_IPMB_DEVICE_INTERFACE=m
|
CONFIG_IPMB_DEVICE_INTERFACE=m
|
||||||
CONFIG_HW_RANDOM=y
|
CONFIG_HW_RANDOM=y
|
||||||
CONFIG_HW_RANDOM_TIMERIOMEM=m
|
CONFIG_HW_RANDOM_TIMERIOMEM=m
|
||||||
@@ -4718,7 +4726,7 @@ CONFIG_SPI_MICROCHIP_CORE=m
|
|||||||
CONFIG_SPI_MICROCHIP_CORE_QSPI=m
|
CONFIG_SPI_MICROCHIP_CORE_QSPI=m
|
||||||
# CONFIG_SPI_LANTIQ_SSC is not set
|
# CONFIG_SPI_LANTIQ_SSC is not set
|
||||||
CONFIG_SPI_OC_TINY=m
|
CONFIG_SPI_OC_TINY=m
|
||||||
# CONFIG_SPI_PCI1XXXX is not set
|
CONFIG_SPI_PCI1XXXX=m
|
||||||
CONFIG_SPI_PXA2XX=m
|
CONFIG_SPI_PXA2XX=m
|
||||||
CONFIG_SPI_PXA2XX_PCI=m
|
CONFIG_SPI_PXA2XX_PCI=m
|
||||||
# CONFIG_SPI_ROCKCHIP is not set
|
# CONFIG_SPI_ROCKCHIP is not set
|
||||||
@@ -4935,7 +4943,7 @@ CONFIG_GPIO_VIPERBOARD=m
|
|||||||
# Virtual GPIO drivers
|
# Virtual GPIO drivers
|
||||||
#
|
#
|
||||||
CONFIG_GPIO_AGGREGATOR=m
|
CONFIG_GPIO_AGGREGATOR=m
|
||||||
# CONFIG_GPIO_LATCH is not set
|
CONFIG_GPIO_LATCH=m
|
||||||
CONFIG_GPIO_MOCKUP=m
|
CONFIG_GPIO_MOCKUP=m
|
||||||
CONFIG_GPIO_VIRTIO=m
|
CONFIG_GPIO_VIRTIO=m
|
||||||
CONFIG_GPIO_SIM=m
|
CONFIG_GPIO_SIM=m
|
||||||
@@ -5073,6 +5081,7 @@ CONFIG_HWMON_VID=m
|
|||||||
#
|
#
|
||||||
CONFIG_SENSORS_ABITUGURU=m
|
CONFIG_SENSORS_ABITUGURU=m
|
||||||
CONFIG_SENSORS_ABITUGURU3=m
|
CONFIG_SENSORS_ABITUGURU3=m
|
||||||
|
CONFIG_SENSORS_SMPRO=m
|
||||||
CONFIG_SENSORS_AD7314=m
|
CONFIG_SENSORS_AD7314=m
|
||||||
CONFIG_SENSORS_AD7414=m
|
CONFIG_SENSORS_AD7414=m
|
||||||
CONFIG_SENSORS_AD7418=m
|
CONFIG_SENSORS_AD7418=m
|
||||||
@@ -5192,8 +5201,9 @@ CONFIG_SENSORS_NCT7904=m
|
|||||||
CONFIG_SENSORS_NPCM7XX=m
|
CONFIG_SENSORS_NPCM7XX=m
|
||||||
CONFIG_SENSORS_NZXT_KRAKEN2=m
|
CONFIG_SENSORS_NZXT_KRAKEN2=m
|
||||||
CONFIG_SENSORS_NZXT_SMART2=m
|
CONFIG_SENSORS_NZXT_SMART2=m
|
||||||
# CONFIG_SENSORS_OCC_P8_I2C is not set
|
CONFIG_SENSORS_OCC_P8_I2C=m
|
||||||
# CONFIG_SENSORS_OXP is not set
|
CONFIG_SENSORS_OCC=m
|
||||||
|
CONFIG_SENSORS_OXP=m
|
||||||
CONFIG_SENSORS_PCF8591=m
|
CONFIG_SENSORS_PCF8591=m
|
||||||
CONFIG_PMBUS=m
|
CONFIG_PMBUS=m
|
||||||
CONFIG_SENSORS_PMBUS=m
|
CONFIG_SENSORS_PMBUS=m
|
||||||
@@ -5398,7 +5408,7 @@ CONFIG_MAX63XX_WATCHDOG=m
|
|||||||
CONFIG_RETU_WATCHDOG=m
|
CONFIG_RETU_WATCHDOG=m
|
||||||
CONFIG_ACQUIRE_WDT=m
|
CONFIG_ACQUIRE_WDT=m
|
||||||
CONFIG_ADVANTECH_WDT=m
|
CONFIG_ADVANTECH_WDT=m
|
||||||
# CONFIG_ADVANTECH_EC_WDT is not set
|
CONFIG_ADVANTECH_EC_WDT=m
|
||||||
CONFIG_ALIM1535_WDT=m
|
CONFIG_ALIM1535_WDT=m
|
||||||
CONFIG_ALIM7101_WDT=m
|
CONFIG_ALIM7101_WDT=m
|
||||||
CONFIG_EBC_C384_WDT=m
|
CONFIG_EBC_C384_WDT=m
|
||||||
@@ -5480,7 +5490,7 @@ CONFIG_BCMA_DRIVER_GPIO=y
|
|||||||
#
|
#
|
||||||
CONFIG_MFD_CORE=y
|
CONFIG_MFD_CORE=y
|
||||||
CONFIG_MFD_AS3711=y
|
CONFIG_MFD_AS3711=y
|
||||||
# CONFIG_MFD_SMPRO is not set
|
CONFIG_MFD_SMPRO=m
|
||||||
CONFIG_PMIC_ADP5520=y
|
CONFIG_PMIC_ADP5520=y
|
||||||
CONFIG_MFD_AAT2870_CORE=y
|
CONFIG_MFD_AAT2870_CORE=y
|
||||||
CONFIG_MFD_BCM590XX=m
|
CONFIG_MFD_BCM590XX=m
|
||||||
@@ -5661,7 +5671,7 @@ CONFIG_REGULATOR_MT6311=m
|
|||||||
CONFIG_REGULATOR_MT6323=m
|
CONFIG_REGULATOR_MT6323=m
|
||||||
CONFIG_REGULATOR_MT6331=m
|
CONFIG_REGULATOR_MT6331=m
|
||||||
CONFIG_REGULATOR_MT6332=m
|
CONFIG_REGULATOR_MT6332=m
|
||||||
# CONFIG_REGULATOR_MT6357 is not set
|
CONFIG_REGULATOR_MT6357=m
|
||||||
CONFIG_REGULATOR_MT6358=m
|
CONFIG_REGULATOR_MT6358=m
|
||||||
CONFIG_REGULATOR_MT6359=m
|
CONFIG_REGULATOR_MT6359=m
|
||||||
CONFIG_REGULATOR_MT6360=m
|
CONFIG_REGULATOR_MT6360=m
|
||||||
@@ -5683,7 +5693,7 @@ CONFIG_REGULATOR_RT5120=m
|
|||||||
CONFIG_REGULATOR_RT5190A=m
|
CONFIG_REGULATOR_RT5190A=m
|
||||||
CONFIG_REGULATOR_RT5759=m
|
CONFIG_REGULATOR_RT5759=m
|
||||||
CONFIG_REGULATOR_RT6160=m
|
CONFIG_REGULATOR_RT6160=m
|
||||||
# CONFIG_REGULATOR_RT6190 is not set
|
CONFIG_REGULATOR_RT6190=m
|
||||||
CONFIG_REGULATOR_RT6245=m
|
CONFIG_REGULATOR_RT6245=m
|
||||||
CONFIG_REGULATOR_RTQ2134=m
|
CONFIG_REGULATOR_RTQ2134=m
|
||||||
CONFIG_REGULATOR_RTMV20=m
|
CONFIG_REGULATOR_RTMV20=m
|
||||||
@@ -6177,7 +6187,8 @@ CONFIG_VIDEO_VIMC=m
|
|||||||
CONFIG_VIDEO_VIVID=m
|
CONFIG_VIDEO_VIVID=m
|
||||||
CONFIG_VIDEO_VIVID_CEC=y
|
CONFIG_VIDEO_VIVID_CEC=y
|
||||||
CONFIG_VIDEO_VIVID_MAX_DEVS=64
|
CONFIG_VIDEO_VIVID_MAX_DEVS=64
|
||||||
# CONFIG_VIDEO_VISL is not set
|
CONFIG_VIDEO_VISL=m
|
||||||
|
# CONFIG_VISL_DEBUGFS is not set
|
||||||
CONFIG_DVB_TEST_DRIVERS=y
|
CONFIG_DVB_TEST_DRIVERS=y
|
||||||
CONFIG_DVB_VIDTV=m
|
CONFIG_DVB_VIDTV=m
|
||||||
|
|
||||||
@@ -6252,7 +6263,7 @@ CONFIG_VIDEO_NOON010PC30=m
|
|||||||
CONFIG_VIDEO_OG01A1B=m
|
CONFIG_VIDEO_OG01A1B=m
|
||||||
CONFIG_VIDEO_OV02A10=m
|
CONFIG_VIDEO_OV02A10=m
|
||||||
CONFIG_VIDEO_OV08D10=m
|
CONFIG_VIDEO_OV08D10=m
|
||||||
# CONFIG_VIDEO_OV08X40 is not set
|
CONFIG_VIDEO_OV08X40=m
|
||||||
CONFIG_VIDEO_OV13858=m
|
CONFIG_VIDEO_OV13858=m
|
||||||
CONFIG_VIDEO_OV13B10=m
|
CONFIG_VIDEO_OV13B10=m
|
||||||
CONFIG_VIDEO_OV2640=m
|
CONFIG_VIDEO_OV2640=m
|
||||||
@@ -6260,7 +6271,7 @@ CONFIG_VIDEO_OV2659=m
|
|||||||
CONFIG_VIDEO_OV2680=m
|
CONFIG_VIDEO_OV2680=m
|
||||||
CONFIG_VIDEO_OV2685=m
|
CONFIG_VIDEO_OV2685=m
|
||||||
CONFIG_VIDEO_OV2740=m
|
CONFIG_VIDEO_OV2740=m
|
||||||
# CONFIG_VIDEO_OV4689 is not set
|
CONFIG_VIDEO_OV4689=m
|
||||||
CONFIG_VIDEO_OV5647=m
|
CONFIG_VIDEO_OV5647=m
|
||||||
CONFIG_VIDEO_OV5648=m
|
CONFIG_VIDEO_OV5648=m
|
||||||
CONFIG_VIDEO_OV5670=m
|
CONFIG_VIDEO_OV5670=m
|
||||||
@@ -6570,7 +6581,6 @@ CONFIG_DRM=y
|
|||||||
CONFIG_DRM_MIPI_DBI=m
|
CONFIG_DRM_MIPI_DBI=m
|
||||||
CONFIG_DRM_MIPI_DSI=y
|
CONFIG_DRM_MIPI_DSI=y
|
||||||
# CONFIG_DRM_DEBUG_MM is not set
|
# CONFIG_DRM_DEBUG_MM is not set
|
||||||
CONFIG_DRM_USE_DYNAMIC_DEBUG=y
|
|
||||||
CONFIG_DRM_KMS_HELPER=y
|
CONFIG_DRM_KMS_HELPER=y
|
||||||
CONFIG_DRM_FBDEV_EMULATION=y
|
CONFIG_DRM_FBDEV_EMULATION=y
|
||||||
CONFIG_DRM_FBDEV_OVERALLOC=100
|
CONFIG_DRM_FBDEV_OVERALLOC=100
|
||||||
@@ -6848,7 +6858,7 @@ CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
|
|||||||
# CONFIG_LOGO is not set
|
# CONFIG_LOGO is not set
|
||||||
# end of Graphics support
|
# end of Graphics support
|
||||||
|
|
||||||
# CONFIG_DRM_ACCEL is not set
|
CONFIG_DRM_ACCEL=y
|
||||||
CONFIG_SOUND=m
|
CONFIG_SOUND=m
|
||||||
CONFIG_SOUND_OSS_CORE=y
|
CONFIG_SOUND_OSS_CORE=y
|
||||||
# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
|
# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
|
||||||
@@ -7160,11 +7170,11 @@ CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219=m
|
|||||||
CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC=m
|
CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC=m
|
||||||
CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO=m
|
CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO=m
|
||||||
CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST=m
|
CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST=m
|
||||||
# CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98927 is not set
|
CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98927=m
|
||||||
CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A=m
|
CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A=m
|
||||||
CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98373=m
|
CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98373=m
|
||||||
CONFIG_SND_SOC_INTEL_AVS_MACH_NAU8825=m
|
CONFIG_SND_SOC_INTEL_AVS_MACH_NAU8825=m
|
||||||
# CONFIG_SND_SOC_INTEL_AVS_MACH_PROBE is not set
|
CONFIG_SND_SOC_INTEL_AVS_MACH_PROBE=m
|
||||||
CONFIG_SND_SOC_INTEL_AVS_MACH_RT274=m
|
CONFIG_SND_SOC_INTEL_AVS_MACH_RT274=m
|
||||||
CONFIG_SND_SOC_INTEL_AVS_MACH_RT286=m
|
CONFIG_SND_SOC_INTEL_AVS_MACH_RT286=m
|
||||||
CONFIG_SND_SOC_INTEL_AVS_MACH_RT298=m
|
CONFIG_SND_SOC_INTEL_AVS_MACH_RT298=m
|
||||||
@@ -7517,7 +7527,7 @@ CONFIG_SND_SOC_WM8903=m
|
|||||||
CONFIG_SND_SOC_WM8904=m
|
CONFIG_SND_SOC_WM8904=m
|
||||||
CONFIG_SND_SOC_WM8940=m
|
CONFIG_SND_SOC_WM8940=m
|
||||||
CONFIG_SND_SOC_WM8960=m
|
CONFIG_SND_SOC_WM8960=m
|
||||||
# CONFIG_SND_SOC_WM8961 is not set
|
CONFIG_SND_SOC_WM8961=m
|
||||||
CONFIG_SND_SOC_WM8962=m
|
CONFIG_SND_SOC_WM8962=m
|
||||||
CONFIG_SND_SOC_WM8974=m
|
CONFIG_SND_SOC_WM8974=m
|
||||||
CONFIG_SND_SOC_WM8978=m
|
CONFIG_SND_SOC_WM8978=m
|
||||||
@@ -8347,7 +8357,7 @@ CONFIG_INFINIBAND_HFI1=m
|
|||||||
# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set
|
# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set
|
||||||
# CONFIG_SDMA_VERBOSITY is not set
|
# CONFIG_SDMA_VERBOSITY is not set
|
||||||
CONFIG_INFINIBAND_IRDMA=m
|
CONFIG_INFINIBAND_IRDMA=m
|
||||||
# CONFIG_MANA_INFINIBAND is not set
|
CONFIG_MANA_INFINIBAND=m
|
||||||
CONFIG_MLX4_INFINIBAND=m
|
CONFIG_MLX4_INFINIBAND=m
|
||||||
CONFIG_MLX5_INFINIBAND=m
|
CONFIG_MLX5_INFINIBAND=m
|
||||||
CONFIG_INFINIBAND_MTHCA=m
|
CONFIG_INFINIBAND_MTHCA=m
|
||||||
@@ -8623,7 +8633,7 @@ CONFIG_NITRO_ENCLAVES=m
|
|||||||
CONFIG_ACRN_HSM=m
|
CONFIG_ACRN_HSM=m
|
||||||
CONFIG_EFI_SECRET=m
|
CONFIG_EFI_SECRET=m
|
||||||
CONFIG_SEV_GUEST=m
|
CONFIG_SEV_GUEST=m
|
||||||
# CONFIG_TDX_GUEST_DRIVER is not set
|
CONFIG_TDX_GUEST_DRIVER=m
|
||||||
CONFIG_VIRTIO_ANCHOR=y
|
CONFIG_VIRTIO_ANCHOR=y
|
||||||
CONFIG_VIRTIO=y
|
CONFIG_VIRTIO=y
|
||||||
CONFIG_VIRTIO_PCI_LIB=m
|
CONFIG_VIRTIO_PCI_LIB=m
|
||||||
@@ -8821,7 +8831,7 @@ CONFIG_CROS_EC_DEBUGFS=m
|
|||||||
CONFIG_CROS_EC_SENSORHUB=m
|
CONFIG_CROS_EC_SENSORHUB=m
|
||||||
CONFIG_CROS_EC_SYSFS=m
|
CONFIG_CROS_EC_SYSFS=m
|
||||||
CONFIG_CROS_EC_TYPEC=m
|
CONFIG_CROS_EC_TYPEC=m
|
||||||
# CONFIG_CROS_HPS_I2C is not set
|
CONFIG_CROS_HPS_I2C=m
|
||||||
CONFIG_CROS_USBPD_LOGGER=m
|
CONFIG_CROS_USBPD_LOGGER=m
|
||||||
CONFIG_CROS_USBPD_NOTIFY=m
|
CONFIG_CROS_USBPD_NOTIFY=m
|
||||||
CONFIG_CHROMEOS_PRIVACY_SCREEN=m
|
CONFIG_CHROMEOS_PRIVACY_SCREEN=m
|
||||||
@@ -8898,7 +8908,9 @@ CONFIG_AMILO_RFKILL=m
|
|||||||
CONFIG_FUJITSU_LAPTOP=m
|
CONFIG_FUJITSU_LAPTOP=m
|
||||||
CONFIG_FUJITSU_TABLET=m
|
CONFIG_FUJITSU_TABLET=m
|
||||||
CONFIG_GPD_POCKET_FAN=m
|
CONFIG_GPD_POCKET_FAN=m
|
||||||
# CONFIG_X86_PLATFORM_DRIVERS_HP is not set
|
CONFIG_X86_PLATFORM_DRIVERS_HP=y
|
||||||
|
CONFIG_HP_ACCEL=m
|
||||||
|
CONFIG_HP_WMI=m
|
||||||
CONFIG_WIRELESS_HOTKEY=m
|
CONFIG_WIRELESS_HOTKEY=m
|
||||||
CONFIG_IBM_RTL=m
|
CONFIG_IBM_RTL=m
|
||||||
CONFIG_IDEAPAD_LAPTOP=m
|
CONFIG_IDEAPAD_LAPTOP=m
|
||||||
@@ -8913,7 +8925,7 @@ CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
|
|||||||
CONFIG_THINKPAD_LMI=m
|
CONFIG_THINKPAD_LMI=m
|
||||||
CONFIG_INTEL_ATOMISP2_PDX86=y
|
CONFIG_INTEL_ATOMISP2_PDX86=y
|
||||||
CONFIG_INTEL_ATOMISP2_LED=m
|
CONFIG_INTEL_ATOMISP2_LED=m
|
||||||
# CONFIG_INTEL_IFS is not set
|
CONFIG_INTEL_IFS=m
|
||||||
CONFIG_INTEL_SAR_INT1092=m
|
CONFIG_INTEL_SAR_INT1092=m
|
||||||
CONFIG_INTEL_SKL_INT3472=m
|
CONFIG_INTEL_SKL_INT3472=m
|
||||||
CONFIG_INTEL_PMC_CORE=y
|
CONFIG_INTEL_PMC_CORE=y
|
||||||
@@ -9039,7 +9051,7 @@ CONFIG_INTEL_IOMMU_SVM=y
|
|||||||
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
|
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
|
||||||
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
|
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
|
||||||
CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y
|
CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y
|
||||||
# CONFIG_IOMMUFD is not set
|
CONFIG_IOMMUFD=m
|
||||||
CONFIG_IRQ_REMAP=y
|
CONFIG_IRQ_REMAP=y
|
||||||
CONFIG_HYPERV_IOMMU=y
|
CONFIG_HYPERV_IOMMU=y
|
||||||
CONFIG_VIRTIO_IOMMU=m
|
CONFIG_VIRTIO_IOMMU=m
|
||||||
@@ -9216,8 +9228,9 @@ CONFIG_IIO_CROS_EC_ACCEL_LEGACY=m
|
|||||||
CONFIG_IIO_ST_ACCEL_3AXIS=m
|
CONFIG_IIO_ST_ACCEL_3AXIS=m
|
||||||
CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
|
CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
|
||||||
CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
|
CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
|
||||||
# CONFIG_IIO_KX022A_SPI is not set
|
CONFIG_IIO_KX022A=m
|
||||||
# CONFIG_IIO_KX022A_I2C is not set
|
CONFIG_IIO_KX022A_SPI=m
|
||||||
|
CONFIG_IIO_KX022A_I2C=m
|
||||||
CONFIG_KXSD9=m
|
CONFIG_KXSD9=m
|
||||||
CONFIG_KXSD9_SPI=m
|
CONFIG_KXSD9_SPI=m
|
||||||
CONFIG_KXSD9_I2C=m
|
CONFIG_KXSD9_I2C=m
|
||||||
@@ -9244,7 +9257,7 @@ CONFIG_STK8BA50=m
|
|||||||
# Analog to digital converters
|
# Analog to digital converters
|
||||||
#
|
#
|
||||||
CONFIG_AD_SIGMA_DELTA=m
|
CONFIG_AD_SIGMA_DELTA=m
|
||||||
# CONFIG_AD4130 is not set
|
CONFIG_AD4130=m
|
||||||
CONFIG_AD7091R5=m
|
CONFIG_AD7091R5=m
|
||||||
CONFIG_AD7124=m
|
CONFIG_AD7124=m
|
||||||
CONFIG_AD7192=m
|
CONFIG_AD7192=m
|
||||||
@@ -9285,7 +9298,7 @@ CONFIG_MAX1027=m
|
|||||||
CONFIG_MAX11100=m
|
CONFIG_MAX11100=m
|
||||||
CONFIG_MAX1118=m
|
CONFIG_MAX1118=m
|
||||||
CONFIG_MAX11205=m
|
CONFIG_MAX11205=m
|
||||||
# CONFIG_MAX11410 is not set
|
CONFIG_MAX11410=m
|
||||||
CONFIG_MAX1241=m
|
CONFIG_MAX1241=m
|
||||||
CONFIG_MAX1363=m
|
CONFIG_MAX1363=m
|
||||||
CONFIG_MAX9611=m
|
CONFIG_MAX9611=m
|
||||||
@@ -9293,7 +9306,7 @@ CONFIG_MCP320X=m
|
|||||||
CONFIG_MCP3422=m
|
CONFIG_MCP3422=m
|
||||||
CONFIG_MCP3911=m
|
CONFIG_MCP3911=m
|
||||||
CONFIG_MEDIATEK_MT6360_ADC=m
|
CONFIG_MEDIATEK_MT6360_ADC=m
|
||||||
# CONFIG_MEDIATEK_MT6370_ADC is not set
|
CONFIG_MEDIATEK_MT6370_ADC=m
|
||||||
CONFIG_MEN_Z188_ADC=m
|
CONFIG_MEN_Z188_ADC=m
|
||||||
CONFIG_MP2629_ADC=m
|
CONFIG_MP2629_ADC=m
|
||||||
CONFIG_NAU7802=m
|
CONFIG_NAU7802=m
|
||||||
@@ -9326,7 +9339,7 @@ CONFIG_XILINX_XADC=m
|
|||||||
#
|
#
|
||||||
# Analog to digital and digital to analog converters
|
# Analog to digital and digital to analog converters
|
||||||
#
|
#
|
||||||
# CONFIG_AD74115 is not set
|
CONFIG_AD74115=m
|
||||||
CONFIG_AD74413R=m
|
CONFIG_AD74413R=m
|
||||||
# end of Analog to digital and digital to analog converters
|
# end of Analog to digital and digital to analog converters
|
||||||
|
|
||||||
@@ -9476,7 +9489,7 @@ CONFIG_AD9523=m
|
|||||||
#
|
#
|
||||||
CONFIG_ADF4350=m
|
CONFIG_ADF4350=m
|
||||||
CONFIG_ADF4371=m
|
CONFIG_ADF4371=m
|
||||||
# CONFIG_ADF4377 is not set
|
CONFIG_ADF4377=m
|
||||||
CONFIG_ADMV1013=m
|
CONFIG_ADMV1013=m
|
||||||
CONFIG_ADMV1014=m
|
CONFIG_ADMV1014=m
|
||||||
CONFIG_ADMV4420=m
|
CONFIG_ADMV4420=m
|
||||||
@@ -9785,7 +9798,7 @@ CONFIG_TMP007=m
|
|||||||
CONFIG_TMP117=m
|
CONFIG_TMP117=m
|
||||||
CONFIG_TSYS01=m
|
CONFIG_TSYS01=m
|
||||||
CONFIG_TSYS02D=m
|
CONFIG_TSYS02D=m
|
||||||
# CONFIG_MAX30208 is not set
|
CONFIG_MAX30208=m
|
||||||
CONFIG_MAX31856=m
|
CONFIG_MAX31856=m
|
||||||
CONFIG_MAX31865=m
|
CONFIG_MAX31865=m
|
||||||
# end of Temperature sensors
|
# end of Temperature sensors
|
||||||
@@ -9939,7 +9952,8 @@ CONFIG_FPGA_DFL_NIOS_INTEL_PAC_N3000=m
|
|||||||
CONFIG_FPGA_DFL_PCI=m
|
CONFIG_FPGA_DFL_PCI=m
|
||||||
CONFIG_FPGA_M10_BMC_SEC_UPDATE=m
|
CONFIG_FPGA_M10_BMC_SEC_UPDATE=m
|
||||||
CONFIG_FPGA_MGR_MICROCHIP_SPI=m
|
CONFIG_FPGA_MGR_MICROCHIP_SPI=m
|
||||||
# CONFIG_FPGA_MGR_LATTICE_SYSCONFIG_SPI is not set
|
CONFIG_FPGA_MGR_LATTICE_SYSCONFIG=m
|
||||||
|
CONFIG_FPGA_MGR_LATTICE_SYSCONFIG_SPI=m
|
||||||
CONFIG_TEE=m
|
CONFIG_TEE=m
|
||||||
CONFIG_AMDTEE=m
|
CONFIG_AMDTEE=m
|
||||||
CONFIG_MULTIPLEXER=m
|
CONFIG_MULTIPLEXER=m
|
||||||
@@ -10184,10 +10198,10 @@ CONFIG_SQUASHFS=m
|
|||||||
# CONFIG_SQUASHFS_FILE_CACHE is not set
|
# CONFIG_SQUASHFS_FILE_CACHE is not set
|
||||||
CONFIG_SQUASHFS_FILE_DIRECT=y
|
CONFIG_SQUASHFS_FILE_DIRECT=y
|
||||||
CONFIG_SQUASHFS_DECOMP_SINGLE=y
|
CONFIG_SQUASHFS_DECOMP_SINGLE=y
|
||||||
# CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set
|
CONFIG_SQUASHFS_DECOMP_MULTI=y
|
||||||
CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE=y
|
CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
|
||||||
# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set
|
CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT=y
|
||||||
# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU is not set
|
CONFIG_SQUASHFS_MOUNT_DECOMP_THREADS=y
|
||||||
CONFIG_SQUASHFS_XATTR=y
|
CONFIG_SQUASHFS_XATTR=y
|
||||||
CONFIG_SQUASHFS_ZLIB=y
|
CONFIG_SQUASHFS_ZLIB=y
|
||||||
CONFIG_SQUASHFS_LZ4=y
|
CONFIG_SQUASHFS_LZ4=y
|
||||||
@@ -10866,6 +10880,7 @@ CONFIG_TEXTSEARCH_BM=m
|
|||||||
CONFIG_TEXTSEARCH_FSM=m
|
CONFIG_TEXTSEARCH_FSM=m
|
||||||
CONFIG_BTREE=y
|
CONFIG_BTREE=y
|
||||||
CONFIG_INTERVAL_TREE=y
|
CONFIG_INTERVAL_TREE=y
|
||||||
|
CONFIG_INTERVAL_TREE_SPAN_ITER=y
|
||||||
CONFIG_XARRAY_MULTI=y
|
CONFIG_XARRAY_MULTI=y
|
||||||
CONFIG_ASSOCIATIVE_ARRAY=y
|
CONFIG_ASSOCIATIVE_ARRAY=y
|
||||||
CONFIG_HAS_IOMEM=y
|
CONFIG_HAS_IOMEM=y
|
||||||
|
@@ -283,9 +283,9 @@ _set_cpu_scheduler() {
|
|||||||
_avail_cpu_scheds=("cfs" "pds" "bmq" "tt" "bore")
|
_avail_cpu_scheds=("cfs" "pds" "bmq" "tt" "bore")
|
||||||
elif [ "$_kver" = "601" ]; then
|
elif [ "$_kver" = "601" ]; then
|
||||||
_avail_cpu_scheds=("cfs" "pds" "bmq" "tt" "bore")
|
_avail_cpu_scheds=("cfs" "pds" "bmq" "tt" "bore")
|
||||||
_projectc_unoff=1
|
|
||||||
elif [ "$_kver" = "602" ]; then
|
elif [ "$_kver" = "602" ]; then
|
||||||
_avail_cpu_scheds=("cfs" "tt" "bore")
|
_avail_cpu_scheds=("cfs" "pds" "bmq" "tt" "bore")
|
||||||
|
_projectc_unoff=1
|
||||||
else
|
else
|
||||||
_avail_cpu_scheds=("cfs")
|
_avail_cpu_scheds=("cfs")
|
||||||
fi
|
fi
|
||||||
@@ -382,8 +382,31 @@ _set_compiler(){
|
|||||||
echo -e "_compiler_name='$_compiler_name'\nllvm_opt='$llvm_opt'" >> "$_where"/BIG_UGLY_FROGMINER
|
echo -e "_compiler_name='$_compiler_name'\nllvm_opt='$llvm_opt'" >> "$_where"/BIG_UGLY_FROGMINER
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_define_kernel_abs_paths() {
|
||||||
|
|
||||||
_linux_git_branch_checkout() {
|
source "$_where"/BIG_UGLY_FROGMINER
|
||||||
|
|
||||||
|
if [ -z "$_kernel_work_folder_abs" ]; then
|
||||||
|
_kernel_work_folder_abs="$_where/$_kernel_work_folder/linux-src-git"
|
||||||
|
if [[ "$_kernel_work_folder" == /* ]]; then
|
||||||
|
_kernel_work_folder_abs="$_kernel_work_folder/linux-tkg/linux-src-git"
|
||||||
|
fi
|
||||||
|
echo -e "_kernel_work_folder_abs=\"$_kernel_work_folder_abs\"" >> "$_where"/BIG_UGLY_FROGMINER
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$_kernel_source_folder_abs" ]; then
|
||||||
|
_kernel_source_folder_abs="$_where/$_kernel_source_folder/linux-kernel.git"
|
||||||
|
if [[ "$_kernel_source_folder" == /* ]]; then
|
||||||
|
_kernel_source_folder_abs="$_kernel_source_folder/linux-tkg/linux-kernel.git"
|
||||||
|
fi
|
||||||
|
echo -e "_kernel_source_folder_abs=\"$_kernel_source_folder_abs\"" >> "$_where"/BIG_UGLY_FROGMINER
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
_setup_kernel_work_folder() {
|
||||||
|
|
||||||
|
_define_kernel_abs_paths
|
||||||
|
|
||||||
if [ -z "$_kernel_git_tag" ]; then
|
if [ -z "$_kernel_git_tag" ]; then
|
||||||
warning "internal error: kernel version should be chosen before cloning kernel sources"
|
warning "internal error: kernel version should be chosen before cloning kernel sources"
|
||||||
@@ -392,85 +415,44 @@ _linux_git_branch_checkout() {
|
|||||||
|
|
||||||
cd "$_where"
|
cd "$_where"
|
||||||
|
|
||||||
if ! [ -d linux-src-git ] || ( [ "$_source_in_tmpfs" = "true" ] && ! [ -d /tmp/linux-src-git ] ); then
|
if ! [ -d "$_kernel_source_folder_abs" ]; then
|
||||||
msg2 "First initialization of the linux source code git folder"
|
msg2 "First initialization of the linux source code git folder"
|
||||||
if [ "$_source_in_tmpfs" = "true" ]; then
|
mkdir -p "$_kernel_source_folder_abs"
|
||||||
rm -rf "${_where}/linux-src-git"
|
cd "$_kernel_source_folder_abs"
|
||||||
mkdir "/tmp/linux-src-git"
|
git init --bare
|
||||||
ln -s "/tmp/linux-src-git" "${_where}"
|
|
||||||
else
|
|
||||||
mkdir linux-src-git
|
|
||||||
fi
|
|
||||||
cd linux-src-git
|
|
||||||
git init
|
|
||||||
|
|
||||||
for remote in "${!_kernel_git_remotes[@]}"; do
|
|
||||||
git remote add "$remote" "${_kernel_git_remotes[$remote]}"
|
|
||||||
done
|
|
||||||
else
|
|
||||||
if [ "$_source_in_tmpfs" = "true" ]; then
|
|
||||||
rm -rf "${_where}/linux-src-git"
|
|
||||||
ln -s "/tmp/linux-src-git" "${_where}"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd linux-src-git
|
cd "$_kernel_source_folder_abs"
|
||||||
|
|
||||||
# Remove "origin" remote if present
|
|
||||||
if git remote -v | grep -w "origin" ; then
|
|
||||||
git remote rm origin
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
# Add remotes if needed
|
||||||
for remote in "${!_kernel_git_remotes[@]}"; do
|
for remote in "${!_kernel_git_remotes[@]}"; do
|
||||||
if ! git remote -v | grep -w "$remote" ; then
|
if ! git remote -v | grep -w "$remote" ; then
|
||||||
git remote add "$remote" "${_kernel_git_remotes[$remote]}"
|
git remote add "$remote" "${_kernel_git_remotes[$remote]}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
msg2 "Current branch: $(git branch | grep "\*")"
|
msg2 "Fetching tag: $_kernel_git_tag from mirror $_git_mirror"
|
||||||
msg2 "Reseting files to their original state"
|
|
||||||
|
|
||||||
git reset --hard HEAD
|
|
||||||
git clean -f -d -x
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$_sub" = rc* ]]; then
|
|
||||||
msg2 "Switching to master branch for RC Kernel"
|
|
||||||
|
|
||||||
if ! git branch --list | grep "master-${_git_mirror}" ; then
|
|
||||||
msg2 "master branch doesn't locally exist, shallow cloning..."
|
|
||||||
git remote set-branches --add kernel.org master
|
|
||||||
git remote set-branches --add googlesource.com master
|
|
||||||
git remote set-branches --add torvalds master
|
|
||||||
git fetch --depth=1 $_git_mirror master
|
|
||||||
git fetch --depth 1 $_git_mirror tag "$_kernel_git_tag"
|
git fetch --depth 1 $_git_mirror tag "$_kernel_git_tag"
|
||||||
git checkout -b master-${_git_mirror} ${_git_mirror}/master
|
|
||||||
else
|
msg2 "Checking out tag: $_kernel_git_tag"
|
||||||
msg2 "master branch exists locally, updating..."
|
msg2 " in the work folder: $_kernel_work_folder_abs"
|
||||||
git checkout master-${_git_mirror}
|
|
||||||
git fetch --depth 1 $_git_mirror tag "$_kernel_git_tag"
|
# The space ' ' in grep -w "$_kernel_work_folder_abs " is important
|
||||||
git reset --hard ${_git_mirror}/master
|
# to not match an existing folder with a longer name with the same prefix name
|
||||||
fi
|
if [ -d "$_kernel_work_folder_abs" ] && \
|
||||||
msg2 "Checking out latest RC tag: $_kernel_git_tag"
|
( git worktree list | grep -w "$_kernel_work_folder_abs " ) && \
|
||||||
|
( cd "$_kernel_work_folder_abs" && git status > /dev/null 2>&1 ); then
|
||||||
|
# Worktree folder exists and is a valid worktree
|
||||||
|
cd "$_kernel_work_folder_abs"
|
||||||
|
git reset --hard
|
||||||
|
git clean -ffdx
|
||||||
git checkout "$_kernel_git_tag"
|
git checkout "$_kernel_git_tag"
|
||||||
else
|
else
|
||||||
msg2 "Switching to linux-${_basekernel}.y"
|
# In all other cases, just force create the work tree
|
||||||
if ! git branch --list | grep -w "linux-${_basekernel}-${_git_mirror}" ; then
|
rm -rf "$_kernel_work_folder_abs"
|
||||||
msg2 "${_basekernel}.y branch doesn't locally exist, shallow cloning..."
|
git worktree add -f "$_kernel_work_folder_abs" "$_kernel_git_tag"
|
||||||
git remote set-branches --add kernel.org linux-${_basekernel}.y
|
|
||||||
git remote set-branches --add googlesource.com linux-${_basekernel}.y
|
|
||||||
git remote set-branches --add torvalds linux-${_basekernel}.y
|
|
||||||
git fetch --depth=1 $_git_mirror linux-${_basekernel}.y
|
|
||||||
git fetch --depth=1 $_git_mirror tag "$_kernel_git_tag"
|
|
||||||
git checkout -b linux-${_basekernel}-${_git_mirror} ${_git_mirror}/linux-${_basekernel}.y
|
|
||||||
else
|
|
||||||
msg2 "${_basekernel}.y branch exists locally, updating..."
|
|
||||||
git checkout linux-${_basekernel}-${_git_mirror}
|
|
||||||
git fetch --depth 1 $_git_mirror tag "$_kernel_git_tag"
|
|
||||||
git reset --hard ${_git_mirror}/linux-${_basekernel}.y
|
|
||||||
fi
|
|
||||||
msg2 "Checking out latest release: $_kernel_git_tag"
|
|
||||||
git checkout "$_kernel_git_tag"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -488,6 +470,23 @@ _tkg_initscript() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
typeset -Ag _deprecated_config_var_set
|
||||||
|
|
||||||
|
# Check if user is defining deprecated config vars
|
||||||
|
_deprecated_config_var_set=(
|
||||||
|
["_use_tmpfs"]=`[ -n "$_use_tmpfs" ]; echo $?`
|
||||||
|
["_source_in_tmpfs"]=`[ -n "$_source_in_tmpfs" ]; echo $?`
|
||||||
|
["_tmpfs_path"]=`[ -n "$_tmpfs_path" ]; echo $?`
|
||||||
|
)
|
||||||
|
|
||||||
|
for _deprectated_config_var in "${!_deprecated_config_var_set[@]}"; do
|
||||||
|
if [ "${_deprecated_config_var_set[$_deprectated_config_var]}" == "0" ]; then
|
||||||
|
warning "The deprecated config var $_deprectated_config_var has been set"
|
||||||
|
warning "Please check the latest customization.cfg file to see what replaces it"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
# Default to Arch
|
# Default to Arch
|
||||||
if [ -z "$_distro" ] || [ "$_ispkgbuild" = "true" ]; then
|
if [ -z "$_distro" ] || [ "$_ispkgbuild" = "true" ]; then
|
||||||
msg2 "Defaulting to Archlinux target\n"
|
msg2 "Defaulting to Archlinux target\n"
|
||||||
@@ -495,11 +494,7 @@ _tkg_initscript() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# create build dir early
|
# create build dir early
|
||||||
if [ "$_distro" = "Void" ]; then
|
|
||||||
_path="${XBPS_BUILDDIR}/${wrksrc}"
|
|
||||||
else
|
|
||||||
_path="${_where}"
|
_path="${_where}"
|
||||||
fi
|
|
||||||
|
|
||||||
# Clean the logs folder
|
# Clean the logs folder
|
||||||
[ -e "${_where}/logs" ] && rm -rf "${_where}/logs"
|
[ -e "${_where}/logs" ] && rm -rf "${_where}/logs"
|
||||||
@@ -511,13 +506,8 @@ _tkg_initscript() {
|
|||||||
# Select CPU scheduler
|
# Select CPU scheduler
|
||||||
_set_cpu_scheduler
|
_set_cpu_scheduler
|
||||||
|
|
||||||
if [ "$_distro" != "Void" ]; then
|
|
||||||
cp "$_where"/linux-tkg-patches/${_basekernel}/* "$_where" # copy patches inside the PKGBUILD's dir to preserve makepkg sourcing and md5sum checking
|
cp "$_where"/linux-tkg-patches/${_basekernel}/* "$_where" # copy patches inside the PKGBUILD's dir to preserve makepkg sourcing and md5sum checking
|
||||||
cp "$_where"/linux-tkg-config/${_basekernel}/* "$_where" # copy config files and hooks inside the PKGBUILD's dir to preserve makepkg sourcing and md5sum checking
|
cp "$_where"/linux-tkg-config/${_basekernel}/* "$_where" # copy config files and hooks inside the PKGBUILD's dir to preserve makepkg sourcing and md5sum checking
|
||||||
else
|
|
||||||
cp "$_where"/linux-tkg-patches/${_basekernel}/* "$_path"
|
|
||||||
cp "$_where"/linux-tkg-config/${_basekernel}/* "$_path"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Set compiler
|
# Set compiler
|
||||||
_set_compiler
|
_set_compiler
|
||||||
@@ -526,7 +516,7 @@ _tkg_initscript() {
|
|||||||
echo -e "_custom_pkgbase=\"$_custom_pkgbase\"" >> "$_where"/BIG_UGLY_FROGMINER
|
echo -e "_custom_pkgbase=\"$_custom_pkgbase\"" >> "$_where"/BIG_UGLY_FROGMINER
|
||||||
fi
|
fi
|
||||||
|
|
||||||
_linux_git_branch_checkout
|
_setup_kernel_work_folder
|
||||||
}
|
}
|
||||||
|
|
||||||
user_patcher() {
|
user_patcher() {
|
||||||
@@ -593,12 +583,16 @@ _tkg_patcher() {
|
|||||||
patch -Np1 -i "$tkgpatch" >> "$_where"/logs/prepare.log.txt || error "An error was encountered applying patches. It was logged to the prepare.log.txt file."
|
patch -Np1 -i "$tkgpatch" >> "$_where"/logs/prepare.log.txt || error "An error was encountered applying patches. It was logged to the prepare.log.txt file."
|
||||||
echo -e "\n" >> "$_where"/logs/prepare.log.txt
|
echo -e "\n" >> "$_where"/logs/prepare.log.txt
|
||||||
else
|
else
|
||||||
msg2 "Skipping patch %s...\n (unavailable for this kernel version)" "${tkgpatch##*/}" #"
|
msg2 "Skipping patch ${tkgpatch##*/}...\n (unavailable for this kernel version)"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
_tkg_srcprep() {
|
_tkg_srcprep() {
|
||||||
|
|
||||||
|
_define_kernel_abs_paths
|
||||||
|
|
||||||
|
cd "$_kernel_work_folder_abs"
|
||||||
|
|
||||||
msg2 "Setting version..."
|
msg2 "Setting version..."
|
||||||
scripts/setlocalversion --save-scmversion
|
scripts/setlocalversion --save-scmversion
|
||||||
|
|
||||||
@@ -607,13 +601,6 @@ _tkg_srcprep() {
|
|||||||
echo -e "Version tail set to \"-$pkgrel-tkg-${_cpusched}${_compiler_name}\"\n" > "$_where"/logs/prepare.log.txt
|
echo -e "Version tail set to \"-$pkgrel-tkg-${_cpusched}${_compiler_name}\"\n" > "$_where"/logs/prepare.log.txt
|
||||||
echo "" > localversion.20-pkgname
|
echo "" > localversion.20-pkgname
|
||||||
fi
|
fi
|
||||||
if [ "${_distro}" = "Void" ]; then
|
|
||||||
pkgver="${version}"
|
|
||||||
fi
|
|
||||||
if [ "${_distro}" = "Arch" ] || [ "${_distro}" = "Void" ]; then
|
|
||||||
tkgpatch="$srcdir/patch-${pkgver}"
|
|
||||||
_msg="Patching from $_basekernel to $pkgver" && _tkg_patcher
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Hardened Patches
|
# Hardened Patches
|
||||||
if [ "${_configfile}" = "config_hardened.x86_64" ] && [ "${_cpusched}" = "cfs" ]; then
|
if [ "${_configfile}" = "config_hardened.x86_64" ] && [ "${_cpusched}" = "cfs" ]; then
|
||||||
@@ -629,9 +616,6 @@ _tkg_srcprep() {
|
|||||||
# graysky's cpu opts - https://github.com/graysky2/kernel_compiler_patch
|
# graysky's cpu opts - https://github.com/graysky2/kernel_compiler_patch
|
||||||
|
|
||||||
_patch_location="$srcdir"
|
_patch_location="$srcdir"
|
||||||
if [ "${_distro}" = "Void" ]; then
|
|
||||||
_patch_location="${wrksrc}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$_kver" = "504" ]; then
|
if [ "$_kver" = "504" ]; then
|
||||||
_patch_name="more-uarches-for-kernel-4.19-5.4"
|
_patch_name="more-uarches-for-kernel-4.19-5.4"
|
||||||
@@ -697,10 +681,8 @@ _tkg_srcprep() {
|
|||||||
_msg="Applying glitched base non-rt additions patch" && _tkg_patcher
|
_msg="Applying glitched base non-rt additions patch" && _tkg_patcher
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$_distro" =~ ^(Fedora|Suse)$ ]]; then
|
|
||||||
tkgpatch="$srcdir/0013-fedora-rpm.patch"
|
tkgpatch="$srcdir/0013-fedora-rpm.patch"
|
||||||
_msg="RPM: fixing spec generator" && _tkg_patcher
|
_msg="RPM: fixing spec generator" && _tkg_patcher
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z $_misc_adds ]; then
|
if [ -z $_misc_adds ]; then
|
||||||
plain "Enable misc additions ? They may contain temporary fixes pending upstream, or some other changes that can break on non-Arch distros."
|
plain "Enable misc additions ? They may contain temporary fixes pending upstream, or some other changes that can break on non-Arch distros."
|
||||||
@@ -740,6 +722,8 @@ _tkg_srcprep() {
|
|||||||
rev=1
|
rev=1
|
||||||
elif [ "$_kver" = "518" ]; then
|
elif [ "$_kver" = "518" ]; then
|
||||||
rev=2
|
rev=2
|
||||||
|
elif [ "$_kver" = "601" ]; then
|
||||||
|
rev=1
|
||||||
else
|
else
|
||||||
rev=0
|
rev=0
|
||||||
fi
|
fi
|
||||||
@@ -801,16 +785,6 @@ _tkg_srcprep() {
|
|||||||
tkgpatch="$srcdir/0009-glitched-bmq.patch" && _tkg_patcher
|
tkgpatch="$srcdir/0009-glitched-bmq.patch" && _tkg_patcher
|
||||||
elif [ "${_cpusched}" = "cacule" ]; then
|
elif [ "${_cpusched}" = "cacule" ]; then
|
||||||
_msg="Applying cacule patch"
|
_msg="Applying cacule patch"
|
||||||
if [ "${_distro}" = "Void" ]; then
|
|
||||||
if [[ $_kver -lt 515 ]]; then
|
|
||||||
wget -P "$wrksrc" "https://raw.githubusercontent.com/hamadmarri/cacule-cpu-scheduler/master/patches/CacULE/v${_basekernel}/cacule-${_basekernel}.patch"
|
|
||||||
elif [[ $_kver = 515 ]]; then
|
|
||||||
wget -P "$wrksrc" "https://raw.githubusercontent.com/CachyOS/cacule-cpu-scheduler/master/patches/CacULE/v${_basekernel}/cacule-${_basekernel}.patch"
|
|
||||||
else
|
|
||||||
wget -P "$wrksrc" "https://raw.githubusercontent.com/CachyOS/cacule-cpu-scheduler/master/patches/CacULE/v${_basekernel}/0001-cacULE-${_basekernel}.patch"
|
|
||||||
fi
|
|
||||||
tkgpatch="$wrksrc/cacule-${_basekernel}.patch" && _tkg_patcher
|
|
||||||
else
|
|
||||||
if [[ $_kver -lt 515 ]]; then
|
if [[ $_kver -lt 515 ]]; then
|
||||||
wget -P "$srcdir" "https://raw.githubusercontent.com/hamadmarri/cacule-cpu-scheduler/master/patches/CacULE/v${_basekernel}/cacule-${_basekernel}.patch"
|
wget -P "$srcdir" "https://raw.githubusercontent.com/hamadmarri/cacule-cpu-scheduler/master/patches/CacULE/v${_basekernel}/cacule-${_basekernel}.patch"
|
||||||
elif [[ $_kver = 515 ]]; then
|
elif [[ $_kver = 515 ]]; then
|
||||||
@@ -820,42 +794,29 @@ _tkg_srcprep() {
|
|||||||
fi
|
fi
|
||||||
tkgpatch="$srcdir/cacule-${_basekernel}.patch" && _tkg_patcher
|
tkgpatch="$srcdir/cacule-${_basekernel}.patch" && _tkg_patcher
|
||||||
tkgpatch="$srcdir/0001-cacULE-${_basekernel}.patch" && _tkg_patcher
|
tkgpatch="$srcdir/0001-cacULE-${_basekernel}.patch" && _tkg_patcher
|
||||||
fi
|
|
||||||
elif [ "${_cpusched}" = "tt" ]; then
|
elif [ "${_cpusched}" = "tt" ]; then
|
||||||
_msg="Applying TT patch"
|
_msg="Applying TT patch"
|
||||||
if [ "${_distro}" = "Void" ]; then
|
|
||||||
curl "https://raw.githubusercontent.com/CachyOS/kernel-patches/master/${_basekernel}/sched/0001-tt.patch" > "$wrksrc"/tt.patch
|
|
||||||
tkgpatch="$wrksrc/tt.patch" && _tkg_patcher
|
|
||||||
else
|
|
||||||
curl "https://raw.githubusercontent.com/CachyOS/kernel-patches/master/${_basekernel}/sched/0001-tt.patch" > "$srcdir"/tt.patch
|
curl "https://raw.githubusercontent.com/CachyOS/kernel-patches/master/${_basekernel}/sched/0001-tt.patch" > "$srcdir"/tt.patch
|
||||||
tkgpatch="$srcdir/tt.patch" && _tkg_patcher
|
tkgpatch="$srcdir/tt.patch" && _tkg_patcher
|
||||||
fi
|
|
||||||
if [ "$_tt_high_hz" = "true" ] && [ $_kver = 515 ]; then
|
if [ "$_tt_high_hz" = "true" ] && [ $_kver = 515 ]; then
|
||||||
_msg="Applying TT High HZ patch"
|
_msg="Applying TT High HZ patch"
|
||||||
if [ "${_distro}" = "Void" ]; then
|
|
||||||
curl "https://raw.githubusercontent.com/hamadmarri/TT-CPU-Scheduler/master/patches/${_basekernel}/high-hz.patch" > "$wrksrc"/tt_high_hz.patch
|
|
||||||
tkgpatch="$wrksrc/tt_high_hz.patch" && _tkg_patcher
|
|
||||||
else
|
|
||||||
curl "https://raw.githubusercontent.com/hamadmarri/TT-CPU-Scheduler/master/patches/${_basekernel}/high-hz.patch" > "$srcdir"/tt_high_hz.patch
|
curl "https://raw.githubusercontent.com/hamadmarri/TT-CPU-Scheduler/master/patches/${_basekernel}/high-hz.patch" > "$srcdir"/tt_high_hz.patch
|
||||||
tkgpatch="$srcdir/tt_high_hz.patch" && _tkg_patcher
|
tkgpatch="$srcdir/tt_high_hz.patch" && _tkg_patcher
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
elif [ "${_cpusched}" = "bore" ]; then
|
elif [ "${_cpusched}" = "bore" ]; then
|
||||||
_msg="Applying BORE patch"
|
_msg="Applying BORE patch"
|
||||||
if [ "${_distro}" = "Void" ]; then
|
|
||||||
curl "https://raw.githubusercontent.com/CachyOS/kernel-patches/master/${_basekernel}/sched/0001-bore.patch" > "$wrksrc"/0001-bore.patch
|
|
||||||
tkgpatch="$wrksrc/0001-bore.patch" && _tkg_patcher
|
|
||||||
else
|
|
||||||
curl "https://raw.githubusercontent.com/CachyOS/kernel-patches/master/${_basekernel}/sched/0001-bore.patch" > "$srcdir"/0001-bore.patch
|
curl "https://raw.githubusercontent.com/CachyOS/kernel-patches/master/${_basekernel}/sched/0001-bore.patch" > "$srcdir"/0001-bore.patch
|
||||||
tkgpatch="$srcdir/0001-bore.patch" && _tkg_patcher
|
tkgpatch="$srcdir/0001-bore.patch" && _tkg_patcher
|
||||||
fi
|
|
||||||
elif [ "${_cpusched}" = "cfs" ]; then
|
elif [ "${_cpusched}" = "cfs" ]; then
|
||||||
_msg="Applying Glitched CFS patch"
|
|
||||||
tkgpatch="$srcdir/0003-glitched-cfs.patch" && _tkg_patcher
|
|
||||||
_msg="Applying Glitched CFS additions patch"
|
_msg="Applying Glitched CFS additions patch"
|
||||||
tkgpatch="$srcdir/0003-glitched-cfs-additions.patch" && _tkg_patcher
|
tkgpatch="$srcdir/0003-glitched-cfs-additions.patch" && _tkg_patcher
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "${_cpusched}" = "cfs" ] || [ "${_cpusched}" = "cacule" ] || [ "${_cpusched}" = "tt" ] || [ "${_cpusched}" = "bore" ]; then
|
||||||
|
_msg="Applying Glitched CFS patch"
|
||||||
|
tkgpatch="$srcdir/0003-glitched-cfs.patch" && _tkg_patcher
|
||||||
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "${_configfile}" ]; then
|
if [ -z "${_configfile}" ]; then
|
||||||
@@ -905,6 +866,11 @@ _tkg_srcprep() {
|
|||||||
_disable "CPU_FREQ_DEFAULT_GOV_ONDEMAND" "CPU_FREQ_DEFAULT_GOV_CONSERVATIVE" "CPU_FREQ_DEFAULT_GOV_PERFORMANCE" "CPU_FREQ_DEFAULT_GOV_PERFORMANCE_NODEF"
|
_disable "CPU_FREQ_DEFAULT_GOV_ONDEMAND" "CPU_FREQ_DEFAULT_GOV_CONSERVATIVE" "CPU_FREQ_DEFAULT_GOV_PERFORMANCE" "CPU_FREQ_DEFAULT_GOV_PERFORMANCE_NODEF"
|
||||||
_module "BLK_DEV_LOOP"
|
_module "BLK_DEV_LOOP"
|
||||||
|
|
||||||
|
# buggy project C/PSI interaction workaround
|
||||||
|
if [ "${_cpusched}" = "pds" ] || [ "${_cpusched}" = "bmq" ]; then
|
||||||
|
_enable "PSI_DEFAULT_DISABLED"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "$_custom_commandline" ]; then
|
if [ -n "$_custom_commandline" ]; then
|
||||||
_enable "CMDLINE_BOOL"
|
_enable "CMDLINE_BOOL"
|
||||||
_disable "CMDLINE_OVERRIDE"
|
_disable "CMDLINE_OVERRIDE"
|
||||||
@@ -916,8 +882,7 @@ _tkg_srcprep() {
|
|||||||
|
|
||||||
# ccache fix
|
# ccache fix
|
||||||
if [ "$_noccache" != "true" ]; then
|
if [ "$_noccache" != "true" ]; then
|
||||||
if { [ "$_distro" = "Arch" ] && pacman -Qq ccache &> /dev/null; } || { [ "$_distro" = "Ubuntu" ] && dpkg -l ccache > /dev/null; }\
|
if { [ "$_distro" = "Arch" ] && pacman -Qq ccache &> /dev/null; } || { [ "$_distro" = "Ubuntu" ] && dpkg -l ccache > /dev/null; }; then
|
||||||
|| { [ "$_distro" = "Void" ] && xbps-query -s ccache > /dev/null; } ; then
|
|
||||||
_disable "GCC_PLUGINS"
|
_disable "GCC_PLUGINS"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -1613,17 +1578,21 @@ CONFIG_DEBUG_INFO_BTF_MODULES=y\r
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# NR_CPUS
|
# NR_CPUS
|
||||||
|
if [ "$_basever" != "601" ]; then
|
||||||
if [ -n "$_NR_CPUS_value" ]; then
|
if [ -n "$_NR_CPUS_value" ]; then
|
||||||
scripts/config --set-val "NR_CPUS" "$_NR_CPUS_value"
|
scripts/config --set-val "NR_CPUS" "$_NR_CPUS_value"
|
||||||
_enable "FORCE_NR_CPUS"
|
_enable "FORCE_NR_CPUS"
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
warning "NR_CPUS is bugged on 6.1.y, so your setting was ignored"
|
||||||
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Community patches
|
# Community patches
|
||||||
if [ -n "$_community_patches" ]; then
|
if [ -n "$_community_patches" ]; then
|
||||||
if [ ! -d "$_where/../community-patches" ]; then
|
if [ ! -d "$_where/../community-patches" ]; then
|
||||||
cd "$_where/.." && git clone https://github.com/Frogging-Family/community-patches.git && cd "${srcdir}/${_srcpath}"
|
cd "$_where/.." && git clone https://github.com/Frogging-Family/community-patches.git && cd "${_kernel_work_folder_abs}"
|
||||||
fi
|
fi
|
||||||
_community_patches=($_community_patches)
|
_community_patches=($_community_patches)
|
||||||
mkdir -p "$_where"/linux"$_basever"-tkg-userpatches
|
mkdir -p "$_where"/linux"$_basever"-tkg-userpatches
|
||||||
@@ -1649,7 +1618,7 @@ CONFIG_DEBUG_INFO_BTF_MODULES=y\r
|
|||||||
rm -f "$_where"/linux"$_basever"-tkg-userpatches/$_p
|
rm -f "$_where"/linux"$_basever"-tkg-userpatches/$_p
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ "$_distro" = "Arch" ] || [ "$_distro" = "Void" ]; then
|
if [ "$_distro" = "Arch" ]; then
|
||||||
# don't run depmod on 'make install'. We'll do this ourselves in packaging
|
# don't run depmod on 'make install'. We'll do this ourselves in packaging
|
||||||
sed -i '2iexit 0' scripts/depmod.sh
|
sed -i '2iexit 0' scripts/depmod.sh
|
||||||
|
|
||||||
@@ -1718,17 +1687,12 @@ CONFIG_DEBUG_INFO_BTF_MODULES=y\r
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# set _menuconfig early for Void
|
|
||||||
if [ "$_distro" = "Void" ]; then
|
|
||||||
_menuconfig="Void"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# rewrite configuration
|
# rewrite configuration
|
||||||
msg2 "Setting config"
|
msg2 "Setting config"
|
||||||
make ${_config_updating} ${llvm_opt} |& tee -a "$_where"/logs/prepare.log.txt
|
make ${_config_updating} ${llvm_opt} |& tee -a "$_where"/logs/prepare.log.txt
|
||||||
|
|
||||||
# menuconfig / nconfig
|
# menuconfig / nconfig
|
||||||
if [ -z "$_menunconfig" ] && [ "$_distro" != "Void" ]; then
|
if [ -z "$_menunconfig" ]; then
|
||||||
plain ""
|
plain ""
|
||||||
plain "*Optional* For advanced users - Do you want to use make menuconfig or nconfig"
|
plain "*Optional* For advanced users - Do you want to use make menuconfig or nconfig"
|
||||||
plain "to configure the kernel before building it?"
|
plain "to configure the kernel before building it?"
|
||||||
@@ -1770,16 +1734,11 @@ CONFIG_DEBUG_INFO_BTF_MODULES=y\r
|
|||||||
fi
|
fi
|
||||||
if [ -z "$_diffconfig_name" ]; then
|
if [ -z "$_diffconfig_name" ]; then
|
||||||
echo 'No file name given, not generating config fragment.'
|
echo 'No file name given, not generating config fragment.'
|
||||||
else (
|
|
||||||
if [ "$_distro" = "Arch" ] || [ "$_ispkgbuild" = "true" ]; then
|
|
||||||
prev_pwd="${PWD:-$(pwd)}/linux-src-git"
|
|
||||||
cd "$_where" || exit
|
|
||||||
else
|
else
|
||||||
prev_pwd="${PWD:-$(pwd)}"
|
pushd "$_kernel_work_folder_abs"
|
||||||
cd "$_where" || exit
|
scripts/diffconfig -m .config.orig .config > "$_where/$_diffconfig_name"
|
||||||
|
popd
|
||||||
fi
|
fi
|
||||||
"${prev_pwd}/scripts/diffconfig" -m "${prev_pwd}/.config.orig" "${prev_pwd}/.config" > "$_diffconfig_name"
|
|
||||||
) fi
|
|
||||||
fi
|
fi
|
||||||
rm .config.orig
|
rm .config.orig
|
||||||
fi
|
fi
|
||||||
@@ -1809,12 +1768,6 @@ exit_cleanup() {
|
|||||||
# Remove winesync rules file
|
# Remove winesync rules file
|
||||||
rm -f "$_where"/winesync.rules
|
rm -f "$_where"/winesync.rules
|
||||||
|
|
||||||
# Remove RPM temporary files left
|
|
||||||
rm -rf ${HOME}/.cache/linux-tkg-rpmbuild
|
|
||||||
if [ "$_distro" != "Arch" ] && [ "$_use_tmpfs" = "true" ]; then
|
|
||||||
rm -rf "$_tmpfs_path/linux-tkg"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Community patches removal in case of failure
|
# Community patches removal in case of failure
|
||||||
for _p in ${_community_patches[@]}; do
|
for _p in ${_community_patches[@]}; do
|
||||||
rm -f "$_where"/linux"$_basever"-tkg-userpatches/"$_p"
|
rm -f "$_where"/linux"$_basever"-tkg-userpatches/"$_p"
|
||||||
@@ -1902,7 +1855,5 @@ exit_cleanup() {
|
|||||||
sed -i 's/\x1b(B//g' "$_where"/logs/shell-output.log.txt
|
sed -i 's/\x1b(B//g' "$_where"/logs/shell-output.log.txt
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
# Void has its own clean function, this breaks it so ignore it
|
|
||||||
if [ "$_distro" != "Void" ]; then
|
trap exit_cleanup EXIT
|
||||||
trap exit_cleanup EXIT
|
|
||||||
fi
|
|
||||||
|
@@ -1,28 +1,53 @@
|
|||||||
# Remove the obsoletes line in kernel-headers
|
|
||||||
# Add provides for kernel-devel so there's no conflict
|
|
||||||
# and fix akmod-nvidia
|
|
||||||
|
|
||||||
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
||||||
index 7c477ca7d..1158f5559 100755
|
index 70392fd2f..34f98648f 100755
|
||||||
--- a/scripts/package/mkspec
|
--- a/scripts/package/mkspec
|
||||||
+++ b/scripts/package/mkspec
|
+++ b/scripts/package/mkspec
|
||||||
@@ -25,0 +26 @@ fi
|
@@ -25,7 +25,7 @@ fi
|
||||||
|
|
||||||
+PROVIDES_DRM=""
|
+PROVIDES_DRM=""
|
||||||
@@ -27 +28 @@ if grep -q CONFIG_DRM=y .config; then
|
if grep -q CONFIG_DRM=y .config; then
|
||||||
- PROVIDES=kernel-drm
|
- PROVIDES=kernel-drm
|
||||||
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
||||||
@@ -30 +30,0 @@ fi
|
fi
|
||||||
|
|
||||||
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
||||||
@@ -51 +51,3 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
|
||||||
|
@@ -50,3 +50,6 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
|
||||||
|
$S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
- Provides: $PROVIDES
|
- Provides: $PROVIDES
|
||||||
+ $PROVIDES_DRM
|
+ $PROVIDES_DRM
|
||||||
+ Provides: kernel = %{version}
|
+ Provides: kernel = %{version}
|
||||||
+ Provides: kernel-uname-r = %{version}
|
+ Provides: kernel-uname-r = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -61 +63 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
# $UTS_MACHINE as a fallback of _arch in case
|
||||||
|
@@ -63,4 +66,4 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
|
Group: Development/System
|
||||||
- Obsoletes: kernel-headers
|
- Obsoletes: kernel-headers
|
||||||
|
Provides: kernel-headers = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -72,0 +75,3 @@ $S$M Group: System Environment/Kernel
|
%description headers
|
||||||
|
@@ -75,2 +78,5 @@ $S$M Summary: Development package for building kernel modules to match the $__KE
|
||||||
|
$S$M Group: System Environment/Kernel
|
||||||
+$S$M Provides: kernel-devel = %{version}
|
+$S$M Provides: kernel-devel = %{version}
|
||||||
+$S$M Provides: kernel-devel-uname-r = %{version}
|
+$S$M Provides: kernel-devel-uname-r = %{version}
|
||||||
+$S$M Provides: installonlypkg(kernel) = %{version}
|
+$S$M Provides: installonlypkg(kernel) = %{version}
|
||||||
|
$S$M AutoReqProv: no
|
||||||
|
@@ -80,2 +86,18 @@ $S$M against the $__KERNELRELEASE kernel package.
|
||||||
|
$S$M
|
||||||
|
+$S # Opt out of a lot of Fedora hardening flags etc...
|
||||||
|
+$S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md
|
||||||
|
+$S %undefine _package_note_file
|
||||||
|
+$S %undefine _auto_set_build_flags
|
||||||
|
+$S %undefine _include_frame_pointers
|
||||||
|
+$S %define _build_id_flags -Wl,--build-id=none
|
||||||
|
+$S %undefine _annotated_build
|
||||||
|
+$S %undefine _fortify_level
|
||||||
|
+$S %undefine _hardened_build
|
||||||
|
+$S %global _lto_cflags %{nil}
|
||||||
|
+$S %global _configure_gnuconfig_hack 0
|
||||||
|
+$S %global _configure_libtool_hardening_hack 0
|
||||||
|
+$S # Nearly had to go to the deep web to find documentation on this one... Gosh
|
||||||
|
+$S # See https://github.com/rpm-software-management/rpm/blob/master/macros.in#L471
|
||||||
|
+$S %define _build_id_links none
|
||||||
|
+$S
|
||||||
|
$S %prep
|
||||||
|
@@ -1,28 +1,53 @@
|
|||||||
# Remove the obsoletes line in kernel-headers
|
|
||||||
# Add provides for kernel-devel so there's no conflict
|
|
||||||
# and fix akmod-nvidia
|
|
||||||
|
|
||||||
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
||||||
index 7c477ca7d..1158f5559 100755
|
index 70392fd2f..34f98648f 100755
|
||||||
--- a/scripts/package/mkspec
|
--- a/scripts/package/mkspec
|
||||||
+++ b/scripts/package/mkspec
|
+++ b/scripts/package/mkspec
|
||||||
@@ -25,0 +26 @@ fi
|
@@ -25,7 +25,7 @@ fi
|
||||||
|
|
||||||
+PROVIDES_DRM=""
|
+PROVIDES_DRM=""
|
||||||
@@ -27 +28 @@ if grep -q CONFIG_DRM=y .config; then
|
if grep -q CONFIG_DRM=y .config; then
|
||||||
- PROVIDES=kernel-drm
|
- PROVIDES=kernel-drm
|
||||||
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
||||||
@@ -30 +30,0 @@ fi
|
fi
|
||||||
|
|
||||||
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
||||||
@@ -51 +51,3 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
|
||||||
|
@@ -50,3 +50,6 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
|
||||||
|
$S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
- Provides: $PROVIDES
|
- Provides: $PROVIDES
|
||||||
+ $PROVIDES_DRM
|
+ $PROVIDES_DRM
|
||||||
+ Provides: kernel = %{version}
|
+ Provides: kernel = %{version}
|
||||||
+ Provides: kernel-uname-r = %{version}
|
+ Provides: kernel-uname-r = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -61 +63 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
# $UTS_MACHINE as a fallback of _arch in case
|
||||||
|
@@ -63,4 +66,4 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
|
Group: Development/System
|
||||||
- Obsoletes: kernel-headers
|
- Obsoletes: kernel-headers
|
||||||
|
Provides: kernel-headers = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -72,0 +75,3 @@ $S$M Group: System Environment/Kernel
|
%description headers
|
||||||
|
@@ -75,2 +78,5 @@ $S$M Summary: Development package for building kernel modules to match the $__KE
|
||||||
|
$S$M Group: System Environment/Kernel
|
||||||
+$S$M Provides: kernel-devel = %{version}
|
+$S$M Provides: kernel-devel = %{version}
|
||||||
+$S$M Provides: kernel-devel-uname-r = %{version}
|
+$S$M Provides: kernel-devel-uname-r = %{version}
|
||||||
+$S$M Provides: installonlypkg(kernel) = %{version}
|
+$S$M Provides: installonlypkg(kernel) = %{version}
|
||||||
|
$S$M AutoReqProv: no
|
||||||
|
@@ -80,2 +86,18 @@ $S$M against the $__KERNELRELEASE kernel package.
|
||||||
|
$S$M
|
||||||
|
+$S # Opt out of a lot of Fedora hardening flags etc...
|
||||||
|
+$S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md
|
||||||
|
+$S %undefine _package_note_file
|
||||||
|
+$S %undefine _auto_set_build_flags
|
||||||
|
+$S %undefine _include_frame_pointers
|
||||||
|
+$S %define _build_id_flags -Wl,--build-id=none
|
||||||
|
+$S %undefine _annotated_build
|
||||||
|
+$S %undefine _fortify_level
|
||||||
|
+$S %undefine _hardened_build
|
||||||
|
+$S %global _lto_cflags %{nil}
|
||||||
|
+$S %global _configure_gnuconfig_hack 0
|
||||||
|
+$S %global _configure_libtool_hardening_hack 0
|
||||||
|
+$S # Nearly had to go to the deep web to find documentation on this one... Gosh
|
||||||
|
+$S # See https://github.com/rpm-software-management/rpm/blob/master/macros.in#L471
|
||||||
|
+$S %define _build_id_links none
|
||||||
|
+$S
|
||||||
|
$S %prep
|
||||||
|
@@ -1,28 +1,53 @@
|
|||||||
# Remove the obsoletes line in kernel-headers
|
|
||||||
# Add provides for kernel-devel so there's no conflict
|
|
||||||
# and fix akmod-nvidia
|
|
||||||
|
|
||||||
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
||||||
index 7c477ca7d..1158f5559 100755
|
index 70392fd2f..34f98648f 100755
|
||||||
--- a/scripts/package/mkspec
|
--- a/scripts/package/mkspec
|
||||||
+++ b/scripts/package/mkspec
|
+++ b/scripts/package/mkspec
|
||||||
@@ -25,0 +26 @@ fi
|
@@ -25,7 +25,7 @@ fi
|
||||||
|
|
||||||
+PROVIDES_DRM=""
|
+PROVIDES_DRM=""
|
||||||
@@ -27 +28 @@ if grep -q CONFIG_DRM=y .config; then
|
if grep -q CONFIG_DRM=y .config; then
|
||||||
- PROVIDES=kernel-drm
|
- PROVIDES=kernel-drm
|
||||||
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
||||||
@@ -30 +30,0 @@ fi
|
fi
|
||||||
|
|
||||||
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
||||||
@@ -51 +51,3 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
|
||||||
|
@@ -50,3 +50,6 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
|
||||||
|
$S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
- Provides: $PROVIDES
|
- Provides: $PROVIDES
|
||||||
+ $PROVIDES_DRM
|
+ $PROVIDES_DRM
|
||||||
+ Provides: kernel = %{version}
|
+ Provides: kernel = %{version}
|
||||||
+ Provides: kernel-uname-r = %{version}
|
+ Provides: kernel-uname-r = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -61 +63 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
# $UTS_MACHINE as a fallback of _arch in case
|
||||||
|
@@ -63,4 +66,4 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
|
Group: Development/System
|
||||||
- Obsoletes: kernel-headers
|
- Obsoletes: kernel-headers
|
||||||
|
Provides: kernel-headers = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -72,0 +75,3 @@ $S$M Group: System Environment/Kernel
|
%description headers
|
||||||
|
@@ -75,2 +78,5 @@ $S$M Summary: Development package for building kernel modules to match the $__KE
|
||||||
|
$S$M Group: System Environment/Kernel
|
||||||
+$S$M Provides: kernel-devel = %{version}
|
+$S$M Provides: kernel-devel = %{version}
|
||||||
+$S$M Provides: kernel-devel-uname-r = %{version}
|
+$S$M Provides: kernel-devel-uname-r = %{version}
|
||||||
+$S$M Provides: installonlypkg(kernel) = %{version}
|
+$S$M Provides: installonlypkg(kernel) = %{version}
|
||||||
|
$S$M AutoReqProv: no
|
||||||
|
@@ -80,2 +86,18 @@ $S$M against the $__KERNELRELEASE kernel package.
|
||||||
|
$S$M
|
||||||
|
+$S # Opt out of a lot of Fedora hardening flags etc...
|
||||||
|
+$S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md
|
||||||
|
+$S %undefine _package_note_file
|
||||||
|
+$S %undefine _auto_set_build_flags
|
||||||
|
+$S %undefine _include_frame_pointers
|
||||||
|
+$S %define _build_id_flags -Wl,--build-id=none
|
||||||
|
+$S %undefine _annotated_build
|
||||||
|
+$S %undefine _fortify_level
|
||||||
|
+$S %undefine _hardened_build
|
||||||
|
+$S %global _lto_cflags %{nil}
|
||||||
|
+$S %global _configure_gnuconfig_hack 0
|
||||||
|
+$S %global _configure_libtool_hardening_hack 0
|
||||||
|
+$S # Nearly had to go to the deep web to find documentation on this one... Gosh
|
||||||
|
+$S # See https://github.com/rpm-software-management/rpm/blob/master/macros.in#L471
|
||||||
|
+$S %define _build_id_links none
|
||||||
|
+$S
|
||||||
|
$S %prep
|
||||||
|
@@ -1,28 +1,53 @@
|
|||||||
# Remove the obsoletes line in kernel-headers
|
|
||||||
# Add provides for kernel-devel so there's no conflict
|
|
||||||
# and fix akmod-nvidia
|
|
||||||
|
|
||||||
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
||||||
index 7c477ca7d..1158f5559 100755
|
index 70392fd2f..34f98648f 100755
|
||||||
--- a/scripts/package/mkspec
|
--- a/scripts/package/mkspec
|
||||||
+++ b/scripts/package/mkspec
|
+++ b/scripts/package/mkspec
|
||||||
@@ -25,0 +26 @@ fi
|
@@ -25,7 +25,7 @@ fi
|
||||||
|
|
||||||
+PROVIDES_DRM=""
|
+PROVIDES_DRM=""
|
||||||
@@ -27 +28 @@ if grep -q CONFIG_DRM=y .config; then
|
if grep -q CONFIG_DRM=y .config; then
|
||||||
- PROVIDES=kernel-drm
|
- PROVIDES=kernel-drm
|
||||||
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
||||||
@@ -30 +30,0 @@ fi
|
fi
|
||||||
|
|
||||||
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
||||||
@@ -51 +51,3 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
|
||||||
|
@@ -50,3 +50,6 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
|
||||||
|
$S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
- Provides: $PROVIDES
|
- Provides: $PROVIDES
|
||||||
+ $PROVIDES_DRM
|
+ $PROVIDES_DRM
|
||||||
+ Provides: kernel = %{version}
|
+ Provides: kernel = %{version}
|
||||||
+ Provides: kernel-uname-r = %{version}
|
+ Provides: kernel-uname-r = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -61 +63 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
# $UTS_MACHINE as a fallback of _arch in case
|
||||||
|
@@ -63,4 +66,4 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
|
Group: Development/System
|
||||||
- Obsoletes: kernel-headers
|
- Obsoletes: kernel-headers
|
||||||
|
Provides: kernel-headers = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -72,0 +75,3 @@ $S$M Group: System Environment/Kernel
|
%description headers
|
||||||
|
@@ -75,2 +78,5 @@ $S$M Summary: Development package for building kernel modules to match the $__KE
|
||||||
|
$S$M Group: System Environment/Kernel
|
||||||
+$S$M Provides: kernel-devel = %{version}
|
+$S$M Provides: kernel-devel = %{version}
|
||||||
+$S$M Provides: kernel-devel-uname-r = %{version}
|
+$S$M Provides: kernel-devel-uname-r = %{version}
|
||||||
+$S$M Provides: installonlypkg(kernel) = %{version}
|
+$S$M Provides: installonlypkg(kernel) = %{version}
|
||||||
|
$S$M AutoReqProv: no
|
||||||
|
@@ -80,2 +86,18 @@ $S$M against the $__KERNELRELEASE kernel package.
|
||||||
|
$S$M
|
||||||
|
+$S # Opt out of a lot of Fedora hardening flags etc...
|
||||||
|
+$S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md
|
||||||
|
+$S %undefine _package_note_file
|
||||||
|
+$S %undefine _auto_set_build_flags
|
||||||
|
+$S %undefine _include_frame_pointers
|
||||||
|
+$S %define _build_id_flags -Wl,--build-id=none
|
||||||
|
+$S %undefine _annotated_build
|
||||||
|
+$S %undefine _fortify_level
|
||||||
|
+$S %undefine _hardened_build
|
||||||
|
+$S %global _lto_cflags %{nil}
|
||||||
|
+$S %global _configure_gnuconfig_hack 0
|
||||||
|
+$S %global _configure_libtool_hardening_hack 0
|
||||||
|
+$S # Nearly had to go to the deep web to find documentation on this one... Gosh
|
||||||
|
+$S # See https://github.com/rpm-software-management/rpm/blob/master/macros.in#L471
|
||||||
|
+$S %define _build_id_links none
|
||||||
|
+$S
|
||||||
|
$S %prep
|
||||||
|
@@ -1,28 +1,53 @@
|
|||||||
# Remove the obsoletes line in kernel-headers
|
|
||||||
# Add provides for kernel-devel so there's no conflict
|
|
||||||
# and fix akmod-nvidia
|
|
||||||
|
|
||||||
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
||||||
index 7c477ca7d..1158f5559 100755
|
index 70392fd2f..34f98648f 100755
|
||||||
--- a/scripts/package/mkspec
|
--- a/scripts/package/mkspec
|
||||||
+++ b/scripts/package/mkspec
|
+++ b/scripts/package/mkspec
|
||||||
@@ -25,0 +26 @@ fi
|
@@ -25,7 +25,7 @@ fi
|
||||||
|
|
||||||
+PROVIDES_DRM=""
|
+PROVIDES_DRM=""
|
||||||
@@ -27 +28 @@ if grep -q CONFIG_DRM=y .config; then
|
if grep -q CONFIG_DRM=y .config; then
|
||||||
- PROVIDES=kernel-drm
|
- PROVIDES=kernel-drm
|
||||||
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
||||||
@@ -30 +30,0 @@ fi
|
fi
|
||||||
|
|
||||||
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
||||||
@@ -51 +51,3 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
|
||||||
|
@@ -50,3 +50,6 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
|
||||||
|
$S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
- Provides: $PROVIDES
|
- Provides: $PROVIDES
|
||||||
+ $PROVIDES_DRM
|
+ $PROVIDES_DRM
|
||||||
+ Provides: kernel = %{version}
|
+ Provides: kernel = %{version}
|
||||||
+ Provides: kernel-uname-r = %{version}
|
+ Provides: kernel-uname-r = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -61 +63 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
# $UTS_MACHINE as a fallback of _arch in case
|
||||||
|
@@ -63,4 +66,4 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
|
Group: Development/System
|
||||||
- Obsoletes: kernel-headers
|
- Obsoletes: kernel-headers
|
||||||
|
Provides: kernel-headers = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -72,0 +75,3 @@ $S$M Group: System Environment/Kernel
|
%description headers
|
||||||
|
@@ -75,2 +78,5 @@ $S$M Summary: Development package for building kernel modules to match the $__KE
|
||||||
|
$S$M Group: System Environment/Kernel
|
||||||
+$S$M Provides: kernel-devel = %{version}
|
+$S$M Provides: kernel-devel = %{version}
|
||||||
+$S$M Provides: kernel-devel-uname-r = %{version}
|
+$S$M Provides: kernel-devel-uname-r = %{version}
|
||||||
+$S$M Provides: installonlypkg(kernel) = %{version}
|
+$S$M Provides: installonlypkg(kernel) = %{version}
|
||||||
|
$S$M AutoReqProv: no
|
||||||
|
@@ -80,2 +86,18 @@ $S$M against the $__KERNELRELEASE kernel package.
|
||||||
|
$S$M
|
||||||
|
+$S # Opt out of a lot of Fedora hardening flags etc...
|
||||||
|
+$S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md
|
||||||
|
+$S %undefine _package_note_file
|
||||||
|
+$S %undefine _auto_set_build_flags
|
||||||
|
+$S %undefine _include_frame_pointers
|
||||||
|
+$S %define _build_id_flags -Wl,--build-id=none
|
||||||
|
+$S %undefine _annotated_build
|
||||||
|
+$S %undefine _fortify_level
|
||||||
|
+$S %undefine _hardened_build
|
||||||
|
+$S %global _lto_cflags %{nil}
|
||||||
|
+$S %global _configure_gnuconfig_hack 0
|
||||||
|
+$S %global _configure_libtool_hardening_hack 0
|
||||||
|
+$S # Nearly had to go to the deep web to find documentation on this one... Gosh
|
||||||
|
+$S # See https://github.com/rpm-software-management/rpm/blob/master/macros.in#L471
|
||||||
|
+$S %define _build_id_links none
|
||||||
|
+$S
|
||||||
|
$S %prep
|
||||||
|
@@ -68,7 +68,7 @@ Signed-off-by: André Almeida <andrealmeid@collabora.com>
|
|||||||
Adjusted for v5.9: Removed `put_futex_key` calls.
|
Adjusted for v5.9: Removed `put_futex_key` calls.
|
||||||
---
|
---
|
||||||
include/uapi/linux/futex.h | 20 +++
|
include/uapi/linux/futex.h | 20 +++
|
||||||
kernel/futex.c | 348 +++++++++++++++++++++++++++++++++++++
|
kernel/futex/core.c | 348 +++++++++++++++++++++++++++++++++++++
|
||||||
2 files changed, 368 insertions(+)
|
2 files changed, 368 insertions(+)
|
||||||
|
|
||||||
diff --git a/include/uapi/linux/futex.h b/include/uapi/linux/futex.h
|
diff --git a/include/uapi/linux/futex.h b/include/uapi/linux/futex.h
|
||||||
@@ -114,10 +114,10 @@ index a89eb0accd5e2e..580001e89c6cae 100644
|
|||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
#endif /* _UAPI_LINUX_FUTEX_H */
|
#endif /* _UAPI_LINUX_FUTEX_H */
|
||||||
diff --git a/kernel/futex.c b/kernel/futex.c
|
diff --git a/kernel/futex/core.c b/kernel/futex/core.c
|
||||||
index 408cad5e89680f..c30930a955cece 100644
|
index 408cad5e89680f..c30930a955cece 100644
|
||||||
--- a/kernel/futex.c
|
--- a/kernel/futex/core.c
|
||||||
+++ b/kernel/futex.c
|
+++ b/kernel/futex/core.c
|
||||||
@@ -197,6 +197,8 @@ struct futex_pi_state {
|
@@ -197,6 +197,8 @@ struct futex_pi_state {
|
||||||
* @bitset: bitset for the optional bitmasked wakeup
|
* @bitset: bitset for the optional bitmasked wakeup
|
||||||
* @requeue_state: State field for futex_requeue_pi()
|
* @requeue_state: State field for futex_requeue_pi()
|
||||||
@@ -536,7 +536,7 @@ Subject: [PATCH] futex: Add Proton compatibility code
|
|||||||
|
|
||||||
---
|
---
|
||||||
include/uapi/linux/futex.h | 2 +-
|
include/uapi/linux/futex.h | 2 +-
|
||||||
kernel/futex.c | 3 ++-
|
kernel/futex/core.c | 3 ++-
|
||||||
2 files changed, 3 insertions(+), 2 deletions(-)
|
2 files changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/include/uapi/linux/futex.h b/include/uapi/linux/futex.h
|
diff --git a/include/uapi/linux/futex.h b/include/uapi/linux/futex.h
|
||||||
@@ -552,10 +552,10 @@ index 580001e89c6cae..a3e760886b8e7e 100644
|
|||||||
|
|
||||||
#define FUTEX_PRIVATE_FLAG 128
|
#define FUTEX_PRIVATE_FLAG 128
|
||||||
#define FUTEX_CLOCK_REALTIME 256
|
#define FUTEX_CLOCK_REALTIME 256
|
||||||
diff --git a/kernel/futex.c b/kernel/futex.c
|
diff --git a/kernel/futex/core.c b/kernel/futex/core.c
|
||||||
index c30930a955cece..aa33e66df5c9df 100644
|
index c30930a955cece..aa33e66df5c9df 100644
|
||||||
--- a/kernel/futex.c
|
--- a/kernel/futex/core.c
|
||||||
+++ b/kernel/futex.c
|
+++ b/kernel/futex/core.c
|
||||||
@@ -4002,7 +4002,7 @@ futex_init_timeout(u32 cmd, u32 op, struct timespec64 *ts, ktime_t *t)
|
@@ -4002,7 +4002,7 @@ futex_init_timeout(u32 cmd, u32 op, struct timespec64 *ts, ktime_t *t)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
|
@@ -14,7 +14,7 @@ of Proton to still use fsync in new kernel releases.
|
|||||||
Signed-off-by: André Almeida <andrealmeid@collabora.com>
|
Signed-off-by: André Almeida <andrealmeid@collabora.com>
|
||||||
---
|
---
|
||||||
include/uapi/linux/futex.h | 12 ++++++
|
include/uapi/linux/futex.h | 12 ++++++
|
||||||
kernel/futex.c | 75 +++++++++++++++++++++++++++++++++++++-
|
kernel/futex/core.c | 75 +++++++++++++++++++++++++++++++++++++-
|
||||||
2 files changed, 86 insertions(+), 1 deletion(-)
|
2 files changed, 86 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/include/uapi/linux/futex.h b/include/uapi/linux/futex.h
|
diff --git a/include/uapi/linux/futex.h b/include/uapi/linux/futex.h
|
||||||
@@ -47,10 +47,10 @@ index 2a06b99f9803..417c5d89b745 100644
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Support for robust futexes: the kernel cleans up held futexes at
|
* Support for robust futexes: the kernel cleans up held futexes at
|
||||||
diff --git a/kernel/futex.c b/kernel/futex.c
|
diff --git a/kernel/futex/core.c b/kernel/futex/core.c
|
||||||
index 4a9e7ce3714a..c3f2e65afab8 100644
|
index 4a9e7ce3714a..c3f2e65afab8 100644
|
||||||
--- a/kernel/futex.c
|
--- a/kernel/futex/core.c
|
||||||
+++ b/kernel/futex.c
|
+++ b/kernel/futex/core.c
|
||||||
@@ -4012,6 +4012,7 @@ static __always_inline bool futex_cmd_has_timeout(u32 cmd)
|
@@ -4012,6 +4012,7 @@ static __always_inline bool futex_cmd_has_timeout(u32 cmd)
|
||||||
case FUTEX_LOCK_PI2:
|
case FUTEX_LOCK_PI2:
|
||||||
case FUTEX_WAIT_BITSET:
|
case FUTEX_WAIT_BITSET:
|
||||||
|
@@ -43,7 +43,7 @@ Link: https://lore.kernel.org/r/20210923171111.300673-17-andrealmeid@collabora.c
|
|||||||
include/linux/syscalls.h | 6 +
|
include/linux/syscalls.h | 6 +
|
||||||
include/uapi/asm-generic/unistd.h | 5 +-
|
include/uapi/asm-generic/unistd.h | 5 +-
|
||||||
include/uapi/linux/futex.h | 26 +++
|
include/uapi/linux/futex.h | 26 +++
|
||||||
kernel/futex.c | 334 ++++++++++++++++++++++++++++++
|
kernel/futex/core.c | 334 ++++++++++++++++++++++++++++++
|
||||||
kernel/sys_ni.c | 1 +
|
kernel/sys_ni.c | 1 +
|
||||||
5 files changed, 371 insertions(+), 1 deletion(-)
|
5 files changed, 371 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
@@ -125,10 +125,10 @@ index a89eb0accd5e..1666f5e4b837 100644
|
|||||||
/*
|
/*
|
||||||
* Support for robust futexes: the kernel cleans up held futexes at
|
* Support for robust futexes: the kernel cleans up held futexes at
|
||||||
* thread exit time.
|
* thread exit time.
|
||||||
diff --git a/kernel/futex.c b/kernel/futex.c
|
diff --git a/kernel/futex/core.c b/kernel/futex/core.c
|
||||||
index 408cad5e8968..d7dc0bd9379c 100644
|
index 408cad5e8968..d7dc0bd9379c 100644
|
||||||
--- a/kernel/futex.c
|
--- a/kernel/futex/core.c
|
||||||
+++ b/kernel/futex.c
|
+++ b/kernel/futex/core.c
|
||||||
@@ -285,6 +285,18 @@ static const struct futex_q futex_q_init = {
|
@@ -285,6 +285,18 @@ static const struct futex_q futex_q_init = {
|
||||||
.requeue_state = ATOMIC_INIT(Q_REQUEUE_PI_NONE),
|
.requeue_state = ATOMIC_INIT(Q_REQUEUE_PI_NONE),
|
||||||
};
|
};
|
||||||
|
@@ -1,28 +1,53 @@
|
|||||||
# Remove the obsoletes line in kernel-headers
|
|
||||||
# Add provides for kernel-devel so there's no conflict
|
|
||||||
# and fix akmod-nvidia
|
|
||||||
|
|
||||||
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
||||||
index 7c477ca7d..1158f5559 100755
|
index 70392fd2f..34f98648f 100755
|
||||||
--- a/scripts/package/mkspec
|
--- a/scripts/package/mkspec
|
||||||
+++ b/scripts/package/mkspec
|
+++ b/scripts/package/mkspec
|
||||||
@@ -25,0 +26 @@ fi
|
@@ -25,7 +25,7 @@ fi
|
||||||
|
|
||||||
+PROVIDES_DRM=""
|
+PROVIDES_DRM=""
|
||||||
@@ -27 +28 @@ if grep -q CONFIG_DRM=y .config; then
|
if grep -q CONFIG_DRM=y .config; then
|
||||||
- PROVIDES=kernel-drm
|
- PROVIDES=kernel-drm
|
||||||
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
||||||
@@ -30 +30,0 @@ fi
|
fi
|
||||||
|
|
||||||
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
||||||
@@ -51 +51,3 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
|
||||||
|
@@ -50,3 +50,6 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
|
||||||
|
$S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
- Provides: $PROVIDES
|
- Provides: $PROVIDES
|
||||||
+ $PROVIDES_DRM
|
+ $PROVIDES_DRM
|
||||||
+ Provides: kernel = %{version}
|
+ Provides: kernel = %{version}
|
||||||
+ Provides: kernel-uname-r = %{version}
|
+ Provides: kernel-uname-r = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -61 +63 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
# $UTS_MACHINE as a fallback of _arch in case
|
||||||
|
@@ -63,4 +66,4 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
|
Group: Development/System
|
||||||
- Obsoletes: kernel-headers
|
- Obsoletes: kernel-headers
|
||||||
|
Provides: kernel-headers = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -72,0 +75,3 @@ $S$M Group: System Environment/Kernel
|
%description headers
|
||||||
|
@@ -75,2 +78,5 @@ $S$M Summary: Development package for building kernel modules to match the $__KE
|
||||||
|
$S$M Group: System Environment/Kernel
|
||||||
+$S$M Provides: kernel-devel = %{version}
|
+$S$M Provides: kernel-devel = %{version}
|
||||||
+$S$M Provides: kernel-devel-uname-r = %{version}
|
+$S$M Provides: kernel-devel-uname-r = %{version}
|
||||||
+$S$M Provides: installonlypkg(kernel) = %{version}
|
+$S$M Provides: installonlypkg(kernel) = %{version}
|
||||||
|
$S$M AutoReqProv: no
|
||||||
|
@@ -80,2 +86,18 @@ $S$M against the $__KERNELRELEASE kernel package.
|
||||||
|
$S$M
|
||||||
|
+$S # Opt out of a lot of Fedora hardening flags etc...
|
||||||
|
+$S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md
|
||||||
|
+$S %undefine _package_note_file
|
||||||
|
+$S %undefine _auto_set_build_flags
|
||||||
|
+$S %undefine _include_frame_pointers
|
||||||
|
+$S %define _build_id_flags -Wl,--build-id=none
|
||||||
|
+$S %undefine _annotated_build
|
||||||
|
+$S %undefine _fortify_level
|
||||||
|
+$S %undefine _hardened_build
|
||||||
|
+$S %global _lto_cflags %{nil}
|
||||||
|
+$S %global _configure_gnuconfig_hack 0
|
||||||
|
+$S %global _configure_libtool_hardening_hack 0
|
||||||
|
+$S # Nearly had to go to the deep web to find documentation on this one... Gosh
|
||||||
|
+$S # See https://github.com/rpm-software-management/rpm/blob/master/macros.in#L471
|
||||||
|
+$S %define _build_id_links none
|
||||||
|
+$S
|
||||||
|
$S %prep
|
||||||
|
@@ -1,28 +1,53 @@
|
|||||||
# Remove the obsoletes line in kernel-headers
|
|
||||||
# Add provides for kernel-devel so there's no conflict
|
|
||||||
# and fix akmod-nvidia
|
|
||||||
|
|
||||||
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
||||||
index 7c477ca7d..1158f5559 100755
|
index 70392fd2f..34f98648f 100755
|
||||||
--- a/scripts/package/mkspec
|
--- a/scripts/package/mkspec
|
||||||
+++ b/scripts/package/mkspec
|
+++ b/scripts/package/mkspec
|
||||||
@@ -25,0 +26 @@ fi
|
@@ -25,7 +25,7 @@ fi
|
||||||
|
|
||||||
+PROVIDES_DRM=""
|
+PROVIDES_DRM=""
|
||||||
@@ -27 +28 @@ if grep -q CONFIG_DRM=y .config; then
|
if grep -q CONFIG_DRM=y .config; then
|
||||||
- PROVIDES=kernel-drm
|
- PROVIDES=kernel-drm
|
||||||
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
||||||
@@ -30 +30,0 @@ fi
|
fi
|
||||||
|
|
||||||
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
||||||
@@ -51 +51,3 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
|
||||||
|
@@ -50,3 +50,6 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
|
||||||
|
$S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
- Provides: $PROVIDES
|
- Provides: $PROVIDES
|
||||||
+ $PROVIDES_DRM
|
+ $PROVIDES_DRM
|
||||||
+ Provides: kernel = %{version}
|
+ Provides: kernel = %{version}
|
||||||
+ Provides: kernel-uname-r = %{version}
|
+ Provides: kernel-uname-r = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -61 +63 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
# $UTS_MACHINE as a fallback of _arch in case
|
||||||
|
@@ -63,4 +66,4 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
|
Group: Development/System
|
||||||
- Obsoletes: kernel-headers
|
- Obsoletes: kernel-headers
|
||||||
|
Provides: kernel-headers = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -72,0 +75,3 @@ $S$M Group: System Environment/Kernel
|
%description headers
|
||||||
|
@@ -75,2 +78,5 @@ $S$M Summary: Development package for building kernel modules to match the $__KE
|
||||||
|
$S$M Group: System Environment/Kernel
|
||||||
+$S$M Provides: kernel-devel = %{version}
|
+$S$M Provides: kernel-devel = %{version}
|
||||||
+$S$M Provides: kernel-devel-uname-r = %{version}
|
+$S$M Provides: kernel-devel-uname-r = %{version}
|
||||||
+$S$M Provides: installonlypkg(kernel) = %{version}
|
+$S$M Provides: installonlypkg(kernel) = %{version}
|
||||||
|
$S$M AutoReqProv: no
|
||||||
|
@@ -80,2 +86,18 @@ $S$M against the $__KERNELRELEASE kernel package.
|
||||||
|
$S$M
|
||||||
|
+$S # Opt out of a lot of Fedora hardening flags etc...
|
||||||
|
+$S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md
|
||||||
|
+$S %undefine _package_note_file
|
||||||
|
+$S %undefine _auto_set_build_flags
|
||||||
|
+$S %undefine _include_frame_pointers
|
||||||
|
+$S %define _build_id_flags -Wl,--build-id=none
|
||||||
|
+$S %undefine _annotated_build
|
||||||
|
+$S %undefine _fortify_level
|
||||||
|
+$S %undefine _hardened_build
|
||||||
|
+$S %global _lto_cflags %{nil}
|
||||||
|
+$S %global _configure_gnuconfig_hack 0
|
||||||
|
+$S %global _configure_libtool_hardening_hack 0
|
||||||
|
+$S # Nearly had to go to the deep web to find documentation on this one... Gosh
|
||||||
|
+$S # See https://github.com/rpm-software-management/rpm/blob/master/macros.in#L471
|
||||||
|
+$S %define _build_id_links none
|
||||||
|
+$S
|
||||||
|
$S %prep
|
||||||
|
@@ -1,28 +1,53 @@
|
|||||||
# Remove the obsoletes line in kernel-headers
|
|
||||||
# Add provides for kernel-devel so there's no conflict
|
|
||||||
# and fix akmod-nvidia
|
|
||||||
|
|
||||||
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
||||||
index 7c477ca7d..1158f5559 100755
|
index 70392fd2f..34f98648f 100755
|
||||||
--- a/scripts/package/mkspec
|
--- a/scripts/package/mkspec
|
||||||
+++ b/scripts/package/mkspec
|
+++ b/scripts/package/mkspec
|
||||||
@@ -25,0 +26 @@ fi
|
@@ -25,7 +25,7 @@ fi
|
||||||
|
|
||||||
+PROVIDES_DRM=""
|
+PROVIDES_DRM=""
|
||||||
@@ -27 +28 @@ if grep -q CONFIG_DRM=y .config; then
|
if grep -q CONFIG_DRM=y .config; then
|
||||||
- PROVIDES=kernel-drm
|
- PROVIDES=kernel-drm
|
||||||
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
||||||
@@ -30 +30,0 @@ fi
|
fi
|
||||||
|
|
||||||
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
||||||
@@ -51 +51,3 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
|
||||||
|
@@ -50,3 +50,6 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
|
||||||
|
$S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
- Provides: $PROVIDES
|
- Provides: $PROVIDES
|
||||||
+ $PROVIDES_DRM
|
+ $PROVIDES_DRM
|
||||||
+ Provides: kernel = %{version}
|
+ Provides: kernel = %{version}
|
||||||
+ Provides: kernel-uname-r = %{version}
|
+ Provides: kernel-uname-r = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -61 +63 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
# $UTS_MACHINE as a fallback of _arch in case
|
||||||
|
@@ -63,4 +66,4 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
|
Group: Development/System
|
||||||
- Obsoletes: kernel-headers
|
- Obsoletes: kernel-headers
|
||||||
|
Provides: kernel-headers = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -72,0 +75,3 @@ $S$M Group: System Environment/Kernel
|
%description headers
|
||||||
|
@@ -75,2 +78,5 @@ $S$M Summary: Development package for building kernel modules to match the $__KE
|
||||||
|
$S$M Group: System Environment/Kernel
|
||||||
+$S$M Provides: kernel-devel = %{version}
|
+$S$M Provides: kernel-devel = %{version}
|
||||||
+$S$M Provides: kernel-devel-uname-r = %{version}
|
+$S$M Provides: kernel-devel-uname-r = %{version}
|
||||||
+$S$M Provides: installonlypkg(kernel) = %{version}
|
+$S$M Provides: installonlypkg(kernel) = %{version}
|
||||||
|
$S$M AutoReqProv: no
|
||||||
|
@@ -80,2 +86,18 @@ $S$M against the $__KERNELRELEASE kernel package.
|
||||||
|
$S$M
|
||||||
|
+$S # Opt out of a lot of Fedora hardening flags etc...
|
||||||
|
+$S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md
|
||||||
|
+$S %undefine _package_note_file
|
||||||
|
+$S %undefine _auto_set_build_flags
|
||||||
|
+$S %undefine _include_frame_pointers
|
||||||
|
+$S %define _build_id_flags -Wl,--build-id=none
|
||||||
|
+$S %undefine _annotated_build
|
||||||
|
+$S %undefine _fortify_level
|
||||||
|
+$S %undefine _hardened_build
|
||||||
|
+$S %global _lto_cflags %{nil}
|
||||||
|
+$S %global _configure_gnuconfig_hack 0
|
||||||
|
+$S %global _configure_libtool_hardening_hack 0
|
||||||
|
+$S # Nearly had to go to the deep web to find documentation on this one... Gosh
|
||||||
|
+$S # See https://github.com/rpm-software-management/rpm/blob/master/macros.in#L471
|
||||||
|
+$S %define _build_id_links none
|
||||||
|
+$S
|
||||||
|
$S %prep
|
||||||
|
@@ -1,27 +1,53 @@
|
|||||||
# Remove the obsoletes line in kernel-headers
|
|
||||||
# Add provides for kernel-devel so there's no conflict
|
|
||||||
|
|
||||||
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
||||||
index 7c477ca7d..1158f5559 100755
|
index 70392fd2f..34f98648f 100755
|
||||||
--- a/scripts/package/mkspec
|
--- a/scripts/package/mkspec
|
||||||
+++ b/scripts/package/mkspec
|
+++ b/scripts/package/mkspec
|
||||||
@@ -25,0 +26 @@ fi
|
@@ -25,7 +25,7 @@ fi
|
||||||
|
|
||||||
+PROVIDES_DRM=""
|
+PROVIDES_DRM=""
|
||||||
@@ -27 +28 @@ if grep -q CONFIG_DRM=y .config; then
|
if grep -q CONFIG_DRM=y .config; then
|
||||||
- PROVIDES=kernel-drm
|
- PROVIDES=kernel-drm
|
||||||
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
||||||
@@ -30 +30,0 @@ fi
|
fi
|
||||||
|
|
||||||
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
||||||
@@ -51 +51,3 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
|
||||||
|
@@ -50,3 +50,6 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
|
||||||
|
$S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
- Provides: $PROVIDES
|
- Provides: $PROVIDES
|
||||||
+ $PROVIDES_DRM
|
+ $PROVIDES_DRM
|
||||||
+ Provides: kernel = %{version}
|
+ Provides: kernel = %{version}
|
||||||
+ Provides: kernel-uname-r = %{version}
|
+ Provides: kernel-uname-r = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -61 +63 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
# $UTS_MACHINE as a fallback of _arch in case
|
||||||
|
@@ -63,4 +66,4 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
|
Group: Development/System
|
||||||
- Obsoletes: kernel-headers
|
- Obsoletes: kernel-headers
|
||||||
|
Provides: kernel-headers = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -72,0 +75,3 @@ $S$M Group: System Environment/Kernel
|
%description headers
|
||||||
|
@@ -75,2 +78,5 @@ $S$M Summary: Development package for building kernel modules to match the $__KE
|
||||||
|
$S$M Group: System Environment/Kernel
|
||||||
+$S$M Provides: kernel-devel = %{version}
|
+$S$M Provides: kernel-devel = %{version}
|
||||||
+$S$M Provides: kernel-devel-uname-r = %{version}
|
+$S$M Provides: kernel-devel-uname-r = %{version}
|
||||||
+$S$M Provides: installonlypkg(kernel) = %{version}
|
+$S$M Provides: installonlypkg(kernel) = %{version}
|
||||||
|
$S$M AutoReqProv: no
|
||||||
|
@@ -80,2 +86,18 @@ $S$M against the $__KERNELRELEASE kernel package.
|
||||||
|
$S$M
|
||||||
|
+$S # Opt out of a lot of Fedora hardening flags etc...
|
||||||
|
+$S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md
|
||||||
|
+$S %undefine _package_note_file
|
||||||
|
+$S %undefine _auto_set_build_flags
|
||||||
|
+$S %undefine _include_frame_pointers
|
||||||
|
+$S %define _build_id_flags -Wl,--build-id=none
|
||||||
|
+$S %undefine _annotated_build
|
||||||
|
+$S %undefine _fortify_level
|
||||||
|
+$S %undefine _hardened_build
|
||||||
|
+$S %global _lto_cflags %{nil}
|
||||||
|
+$S %global _configure_gnuconfig_hack 0
|
||||||
|
+$S %global _configure_libtool_hardening_hack 0
|
||||||
|
+$S # Nearly had to go to the deep web to find documentation on this one... Gosh
|
||||||
|
+$S # See https://github.com/rpm-software-management/rpm/blob/master/macros.in#L471
|
||||||
|
+$S %define _build_id_links none
|
||||||
|
+$S
|
||||||
|
$S %prep
|
||||||
|
@@ -1,27 +1,53 @@
|
|||||||
# Remove the obsoletes line in kernel-headers
|
|
||||||
# Add provides for kernel-devel so there's no conflict
|
|
||||||
|
|
||||||
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
||||||
index 7c477ca7d..1158f5559 100755
|
index 70392fd2f..34f98648f 100755
|
||||||
--- a/scripts/package/mkspec
|
--- a/scripts/package/mkspec
|
||||||
+++ b/scripts/package/mkspec
|
+++ b/scripts/package/mkspec
|
||||||
@@ -25,0 +26 @@ fi
|
@@ -25,7 +25,7 @@ fi
|
||||||
|
|
||||||
+PROVIDES_DRM=""
|
+PROVIDES_DRM=""
|
||||||
@@ -27 +28 @@ if grep -q CONFIG_DRM=y .config; then
|
if grep -q CONFIG_DRM=y .config; then
|
||||||
- PROVIDES=kernel-drm
|
- PROVIDES=kernel-drm
|
||||||
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
||||||
@@ -30 +30,0 @@ fi
|
fi
|
||||||
|
|
||||||
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
||||||
@@ -51 +51,3 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
|
||||||
|
@@ -50,3 +50,6 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
|
||||||
|
$S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
- Provides: $PROVIDES
|
- Provides: $PROVIDES
|
||||||
+ $PROVIDES_DRM
|
+ $PROVIDES_DRM
|
||||||
+ Provides: kernel = %{version}
|
+ Provides: kernel = %{version}
|
||||||
+ Provides: kernel-uname-r = %{version}
|
+ Provides: kernel-uname-r = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -61 +63 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
# $UTS_MACHINE as a fallback of _arch in case
|
||||||
|
@@ -63,4 +66,4 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
|
Group: Development/System
|
||||||
- Obsoletes: kernel-headers
|
- Obsoletes: kernel-headers
|
||||||
|
Provides: kernel-headers = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -72,0 +75,3 @@ $S$M Group: System Environment/Kernel
|
%description headers
|
||||||
|
@@ -75,2 +78,5 @@ $S$M Summary: Development package for building kernel modules to match the $__KE
|
||||||
|
$S$M Group: System Environment/Kernel
|
||||||
+$S$M Provides: kernel-devel = %{version}
|
+$S$M Provides: kernel-devel = %{version}
|
||||||
+$S$M Provides: kernel-devel-uname-r = %{version}
|
+$S$M Provides: kernel-devel-uname-r = %{version}
|
||||||
+$S$M Provides: installonlypkg(kernel) = %{version}
|
+$S$M Provides: installonlypkg(kernel) = %{version}
|
||||||
|
$S$M AutoReqProv: no
|
||||||
|
@@ -80,2 +86,18 @@ $S$M against the $__KERNELRELEASE kernel package.
|
||||||
|
$S$M
|
||||||
|
+$S # Opt out of a lot of Fedora hardening flags etc...
|
||||||
|
+$S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md
|
||||||
|
+$S %undefine _package_note_file
|
||||||
|
+$S %undefine _auto_set_build_flags
|
||||||
|
+$S %undefine _include_frame_pointers
|
||||||
|
+$S %define _build_id_flags -Wl,--build-id=none
|
||||||
|
+$S %undefine _annotated_build
|
||||||
|
+$S %undefine _fortify_level
|
||||||
|
+$S %undefine _hardened_build
|
||||||
|
+$S %global _lto_cflags %{nil}
|
||||||
|
+$S %global _configure_gnuconfig_hack 0
|
||||||
|
+$S %global _configure_libtool_hardening_hack 0
|
||||||
|
+$S # Nearly had to go to the deep web to find documentation on this one... Gosh
|
||||||
|
+$S # See https://github.com/rpm-software-management/rpm/blob/master/macros.in#L471
|
||||||
|
+$S %define _build_id_links none
|
||||||
|
+$S
|
||||||
|
$S %prep
|
||||||
|
@@ -1,28 +1,53 @@
|
|||||||
# Remove the obsoletes line in kernel-headers
|
|
||||||
# Add provides for kernel-devel so there's no conflict
|
|
||||||
# and fix akmod-nvidia
|
|
||||||
|
|
||||||
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
||||||
index 7c477ca7d..1158f5559 100755
|
index 70392fd2f..34f98648f 100755
|
||||||
--- a/scripts/package/mkspec
|
--- a/scripts/package/mkspec
|
||||||
+++ b/scripts/package/mkspec
|
+++ b/scripts/package/mkspec
|
||||||
@@ -25,0 +26 @@ fi
|
@@ -25,7 +25,7 @@ fi
|
||||||
|
|
||||||
+PROVIDES_DRM=""
|
+PROVIDES_DRM=""
|
||||||
@@ -27 +28 @@ if grep -q CONFIG_DRM=y .config; then
|
if grep -q CONFIG_DRM=y .config; then
|
||||||
- PROVIDES=kernel-drm
|
- PROVIDES=kernel-drm
|
||||||
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
||||||
@@ -30 +30,0 @@ fi
|
fi
|
||||||
|
|
||||||
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
||||||
@@ -51 +51,3 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
|
||||||
|
@@ -50,3 +50,6 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
|
||||||
|
$S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
- Provides: $PROVIDES
|
- Provides: $PROVIDES
|
||||||
+ $PROVIDES_DRM
|
+ $PROVIDES_DRM
|
||||||
+ Provides: kernel = %{version}
|
+ Provides: kernel = %{version}
|
||||||
+ Provides: kernel-uname-r = %{version}
|
+ Provides: kernel-uname-r = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -61 +63 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
# $UTS_MACHINE as a fallback of _arch in case
|
||||||
|
@@ -63,4 +66,4 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
|
Group: Development/System
|
||||||
- Obsoletes: kernel-headers
|
- Obsoletes: kernel-headers
|
||||||
|
Provides: kernel-headers = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -72,0 +75,3 @@ $S$M Group: System Environment/Kernel
|
%description headers
|
||||||
|
@@ -75,2 +78,5 @@ $S$M Summary: Development package for building kernel modules to match the $__KE
|
||||||
|
$S$M Group: System Environment/Kernel
|
||||||
+$S$M Provides: kernel-devel = %{version}
|
+$S$M Provides: kernel-devel = %{version}
|
||||||
+$S$M Provides: kernel-devel-uname-r = %{version}
|
+$S$M Provides: kernel-devel-uname-r = %{version}
|
||||||
+$S$M Provides: installonlypkg(kernel) = %{version}
|
+$S$M Provides: installonlypkg(kernel) = %{version}
|
||||||
|
$S$M AutoReqProv: no
|
||||||
|
@@ -80,2 +86,18 @@ $S$M against the $__KERNELRELEASE kernel package.
|
||||||
|
$S$M
|
||||||
|
+$S # Opt out of a lot of Fedora hardening flags etc...
|
||||||
|
+$S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md
|
||||||
|
+$S %undefine _package_note_file
|
||||||
|
+$S %undefine _auto_set_build_flags
|
||||||
|
+$S %undefine _include_frame_pointers
|
||||||
|
+$S %define _build_id_flags -Wl,--build-id=none
|
||||||
|
+$S %undefine _annotated_build
|
||||||
|
+$S %undefine _fortify_level
|
||||||
|
+$S %undefine _hardened_build
|
||||||
|
+$S %global _lto_cflags %{nil}
|
||||||
|
+$S %global _configure_gnuconfig_hack 0
|
||||||
|
+$S %global _configure_libtool_hardening_hack 0
|
||||||
|
+$S # Nearly had to go to the deep web to find documentation on this one... Gosh
|
||||||
|
+$S # See https://github.com/rpm-software-management/rpm/blob/master/macros.in#L471
|
||||||
|
+$S %define _build_id_links none
|
||||||
|
+$S
|
||||||
|
$S %prep
|
||||||
|
@@ -1,28 +1,53 @@
|
|||||||
# Remove the obsoletes line in kernel-headers
|
|
||||||
# Add provides for kernel-devel so there's no conflict
|
|
||||||
# and fix akmod-nvidia
|
|
||||||
|
|
||||||
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
||||||
index 7c477ca7d..1158f5559 100755
|
index 70392fd2f..34f98648f 100755
|
||||||
--- a/scripts/package/mkspec
|
--- a/scripts/package/mkspec
|
||||||
+++ b/scripts/package/mkspec
|
+++ b/scripts/package/mkspec
|
||||||
@@ -25,0 +26 @@ fi
|
@@ -25,7 +25,7 @@ fi
|
||||||
|
|
||||||
+PROVIDES_DRM=""
|
+PROVIDES_DRM=""
|
||||||
@@ -27 +28 @@ if grep -q CONFIG_DRM=y .config; then
|
if grep -q CONFIG_DRM=y .config; then
|
||||||
- PROVIDES=kernel-drm
|
- PROVIDES=kernel-drm
|
||||||
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
||||||
@@ -30 +30,0 @@ fi
|
fi
|
||||||
|
|
||||||
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
||||||
@@ -51 +51,3 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
|
||||||
|
@@ -50,3 +50,6 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
|
||||||
|
$S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
- Provides: $PROVIDES
|
- Provides: $PROVIDES
|
||||||
+ $PROVIDES_DRM
|
+ $PROVIDES_DRM
|
||||||
+ Provides: kernel = %{version}
|
+ Provides: kernel = %{version}
|
||||||
+ Provides: kernel-uname-r = %{version}
|
+ Provides: kernel-uname-r = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -61 +63 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
# $UTS_MACHINE as a fallback of _arch in case
|
||||||
|
@@ -63,4 +66,4 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
|
Group: Development/System
|
||||||
- Obsoletes: kernel-headers
|
- Obsoletes: kernel-headers
|
||||||
|
Provides: kernel-headers = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -72,0 +75,3 @@ $S$M Group: System Environment/Kernel
|
%description headers
|
||||||
|
@@ -75,2 +78,5 @@ $S$M Summary: Development package for building kernel modules to match the $__KE
|
||||||
|
$S$M Group: System Environment/Kernel
|
||||||
+$S$M Provides: kernel-devel = %{version}
|
+$S$M Provides: kernel-devel = %{version}
|
||||||
+$S$M Provides: kernel-devel-uname-r = %{version}
|
+$S$M Provides: kernel-devel-uname-r = %{version}
|
||||||
+$S$M Provides: installonlypkg(kernel) = %{version}
|
+$S$M Provides: installonlypkg(kernel) = %{version}
|
||||||
|
$S$M AutoReqProv: no
|
||||||
|
@@ -80,2 +86,18 @@ $S$M against the $__KERNELRELEASE kernel package.
|
||||||
|
$S$M
|
||||||
|
+$S # Opt out of a lot of Fedora hardening flags etc...
|
||||||
|
+$S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md
|
||||||
|
+$S %undefine _package_note_file
|
||||||
|
+$S %undefine _auto_set_build_flags
|
||||||
|
+$S %undefine _include_frame_pointers
|
||||||
|
+$S %define _build_id_flags -Wl,--build-id=none
|
||||||
|
+$S %undefine _annotated_build
|
||||||
|
+$S %undefine _fortify_level
|
||||||
|
+$S %undefine _hardened_build
|
||||||
|
+$S %global _lto_cflags %{nil}
|
||||||
|
+$S %global _configure_gnuconfig_hack 0
|
||||||
|
+$S %global _configure_libtool_hardening_hack 0
|
||||||
|
+$S # Nearly had to go to the deep web to find documentation on this one... Gosh
|
||||||
|
+$S # See https://github.com/rpm-software-management/rpm/blob/master/macros.in#L471
|
||||||
|
+$S %define _build_id_links none
|
||||||
|
+$S
|
||||||
|
$S %prep
|
||||||
|
@@ -1,28 +1,53 @@
|
|||||||
# Remove the obsoletes line in kernel-headers
|
|
||||||
# Add provides for kernel-devel so there's no conflict
|
|
||||||
# and fix akmod-nvidia
|
|
||||||
|
|
||||||
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
||||||
index 7c477ca7d..1158f5559 100755
|
index 70392fd2f..34f98648f 100755
|
||||||
--- a/scripts/package/mkspec
|
--- a/scripts/package/mkspec
|
||||||
+++ b/scripts/package/mkspec
|
+++ b/scripts/package/mkspec
|
||||||
@@ -25,0 +26 @@ fi
|
@@ -25,7 +25,7 @@ fi
|
||||||
|
|
||||||
+PROVIDES_DRM=""
|
+PROVIDES_DRM=""
|
||||||
@@ -27 +28 @@ if grep -q CONFIG_DRM=y .config; then
|
if grep -q CONFIG_DRM=y .config; then
|
||||||
- PROVIDES=kernel-drm
|
- PROVIDES=kernel-drm
|
||||||
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
||||||
@@ -30 +30,0 @@ fi
|
fi
|
||||||
|
|
||||||
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
||||||
@@ -51 +51,3 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
|
||||||
|
@@ -50,3 +50,6 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
|
||||||
|
$S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
- Provides: $PROVIDES
|
- Provides: $PROVIDES
|
||||||
+ $PROVIDES_DRM
|
+ $PROVIDES_DRM
|
||||||
+ Provides: kernel = %{version}
|
+ Provides: kernel = %{version}
|
||||||
+ Provides: kernel-uname-r = %{version}
|
+ Provides: kernel-uname-r = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -61 +63 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
# $UTS_MACHINE as a fallback of _arch in case
|
||||||
|
@@ -63,4 +66,4 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
|
Group: Development/System
|
||||||
- Obsoletes: kernel-headers
|
- Obsoletes: kernel-headers
|
||||||
|
Provides: kernel-headers = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -72,0 +75,3 @@ $S$M Group: System Environment/Kernel
|
%description headers
|
||||||
|
@@ -75,2 +78,5 @@ $S$M Summary: Development package for building kernel modules to match the $__KE
|
||||||
|
$S$M Group: System Environment/Kernel
|
||||||
+$S$M Provides: kernel-devel = %{version}
|
+$S$M Provides: kernel-devel = %{version}
|
||||||
+$S$M Provides: kernel-devel-uname-r = %{version}
|
+$S$M Provides: kernel-devel-uname-r = %{version}
|
||||||
+$S$M Provides: installonlypkg(kernel) = %{version}
|
+$S$M Provides: installonlypkg(kernel) = %{version}
|
||||||
|
$S$M AutoReqProv: no
|
||||||
|
@@ -80,2 +86,18 @@ $S$M against the $__KERNELRELEASE kernel package.
|
||||||
|
$S$M
|
||||||
|
+$S # Opt out of a lot of Fedora hardening flags etc...
|
||||||
|
+$S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md
|
||||||
|
+$S %undefine _package_note_file
|
||||||
|
+$S %undefine _auto_set_build_flags
|
||||||
|
+$S %undefine _include_frame_pointers
|
||||||
|
+$S %define _build_id_flags -Wl,--build-id=none
|
||||||
|
+$S %undefine _annotated_build
|
||||||
|
+$S %undefine _fortify_level
|
||||||
|
+$S %undefine _hardened_build
|
||||||
|
+$S %global _lto_cflags %{nil}
|
||||||
|
+$S %global _configure_gnuconfig_hack 0
|
||||||
|
+$S %global _configure_libtool_hardening_hack 0
|
||||||
|
+$S # Nearly had to go to the deep web to find documentation on this one... Gosh
|
||||||
|
+$S # See https://github.com/rpm-software-management/rpm/blob/master/macros.in#L471
|
||||||
|
+$S %define _build_id_links none
|
||||||
|
+$S
|
||||||
|
$S %prep
|
||||||
|
@@ -1,28 +1,53 @@
|
|||||||
# Remove the obsoletes line in kernel-headers
|
|
||||||
# Add provides for kernel-devel so there's no conflict
|
|
||||||
# and fix akmod-nvidia
|
|
||||||
|
|
||||||
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
||||||
index 7c477ca7d..1158f5559 100755
|
index 70392fd2f..34f98648f 100755
|
||||||
--- a/scripts/package/mkspec
|
--- a/scripts/package/mkspec
|
||||||
+++ b/scripts/package/mkspec
|
+++ b/scripts/package/mkspec
|
||||||
@@ -25,0 +26 @@ fi
|
@@ -25,7 +25,7 @@ fi
|
||||||
|
|
||||||
+PROVIDES_DRM=""
|
+PROVIDES_DRM=""
|
||||||
@@ -27 +28 @@ if grep -q CONFIG_DRM=y .config; then
|
if grep -q CONFIG_DRM=y .config; then
|
||||||
- PROVIDES=kernel-drm
|
- PROVIDES=kernel-drm
|
||||||
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
||||||
@@ -30 +30,0 @@ fi
|
fi
|
||||||
|
|
||||||
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
||||||
@@ -51 +51,3 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
|
||||||
|
@@ -50,3 +50,6 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
|
||||||
|
$S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
- Provides: $PROVIDES
|
- Provides: $PROVIDES
|
||||||
+ $PROVIDES_DRM
|
+ $PROVIDES_DRM
|
||||||
+ Provides: kernel = %{version}
|
+ Provides: kernel = %{version}
|
||||||
+ Provides: kernel-uname-r = %{version}
|
+ Provides: kernel-uname-r = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -61 +63 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
# $UTS_MACHINE as a fallback of _arch in case
|
||||||
|
@@ -63,4 +66,4 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
|
Group: Development/System
|
||||||
- Obsoletes: kernel-headers
|
- Obsoletes: kernel-headers
|
||||||
|
Provides: kernel-headers = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -72,0 +75,3 @@ $S$M Group: System Environment/Kernel
|
%description headers
|
||||||
|
@@ -75,2 +78,5 @@ $S$M Summary: Development package for building kernel modules to match the $__KE
|
||||||
|
$S$M Group: System Environment/Kernel
|
||||||
+$S$M Provides: kernel-devel = %{version}
|
+$S$M Provides: kernel-devel = %{version}
|
||||||
+$S$M Provides: kernel-devel-uname-r = %{version}
|
+$S$M Provides: kernel-devel-uname-r = %{version}
|
||||||
+$S$M Provides: installonlypkg(kernel) = %{version}
|
+$S$M Provides: installonlypkg(kernel) = %{version}
|
||||||
|
$S$M AutoReqProv: no
|
||||||
|
@@ -80,2 +86,18 @@ $S$M against the $__KERNELRELEASE kernel package.
|
||||||
|
$S$M
|
||||||
|
+$S # Opt out of a lot of Fedora hardening flags etc...
|
||||||
|
+$S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md
|
||||||
|
+$S %undefine _package_note_file
|
||||||
|
+$S %undefine _auto_set_build_flags
|
||||||
|
+$S %undefine _include_frame_pointers
|
||||||
|
+$S %define _build_id_flags -Wl,--build-id=none
|
||||||
|
+$S %undefine _annotated_build
|
||||||
|
+$S %undefine _fortify_level
|
||||||
|
+$S %undefine _hardened_build
|
||||||
|
+$S %global _lto_cflags %{nil}
|
||||||
|
+$S %global _configure_gnuconfig_hack 0
|
||||||
|
+$S %global _configure_libtool_hardening_hack 0
|
||||||
|
+$S # Nearly had to go to the deep web to find documentation on this one... Gosh
|
||||||
|
+$S # See https://github.com/rpm-software-management/rpm/blob/master/macros.in#L471
|
||||||
|
+$S %define _build_id_links none
|
||||||
|
+$S
|
||||||
|
$S %prep
|
||||||
|
@@ -1,27 +1,53 @@
|
|||||||
# Remove the obsoletes line in kernel-headers
|
|
||||||
# Add provides for kernel-devel so there's no conflict
|
|
||||||
|
|
||||||
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
||||||
index 7c477ca7d..1158f5559 100755
|
index 70392fd2f..34f98648f 100755
|
||||||
--- a/scripts/package/mkspec
|
--- a/scripts/package/mkspec
|
||||||
+++ b/scripts/package/mkspec
|
+++ b/scripts/package/mkspec
|
||||||
@@ -25,0 +26 @@ fi
|
@@ -25,7 +25,7 @@ fi
|
||||||
|
|
||||||
+PROVIDES_DRM=""
|
+PROVIDES_DRM=""
|
||||||
@@ -27 +28 @@ if grep -q CONFIG_DRM=y .config; then
|
if grep -q CONFIG_DRM=y .config; then
|
||||||
- PROVIDES=kernel-drm
|
- PROVIDES=kernel-drm
|
||||||
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
||||||
@@ -30 +30,0 @@ fi
|
fi
|
||||||
|
|
||||||
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
||||||
@@ -51 +51,3 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
|
||||||
|
@@ -50,3 +50,6 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
|
||||||
|
$S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
- Provides: $PROVIDES
|
- Provides: $PROVIDES
|
||||||
+ $PROVIDES_DRM
|
+ $PROVIDES_DRM
|
||||||
+ Provides: kernel = %{version}
|
+ Provides: kernel = %{version}
|
||||||
+ Provides: kernel-uname-r = %{version}
|
+ Provides: kernel-uname-r = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -61 +63 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
# $UTS_MACHINE as a fallback of _arch in case
|
||||||
|
@@ -63,4 +66,4 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
|
Group: Development/System
|
||||||
- Obsoletes: kernel-headers
|
- Obsoletes: kernel-headers
|
||||||
|
Provides: kernel-headers = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -72,0 +75,3 @@ $S$M Group: System Environment/Kernel
|
%description headers
|
||||||
|
@@ -75,2 +78,5 @@ $S$M Summary: Development package for building kernel modules to match the $__KE
|
||||||
|
$S$M Group: System Environment/Kernel
|
||||||
+$S$M Provides: kernel-devel = %{version}
|
+$S$M Provides: kernel-devel = %{version}
|
||||||
+$S$M Provides: kernel-devel-uname-r = %{version}
|
+$S$M Provides: kernel-devel-uname-r = %{version}
|
||||||
+$S$M Provides: installonlypkg(kernel) = %{version}
|
+$S$M Provides: installonlypkg(kernel) = %{version}
|
||||||
|
$S$M AutoReqProv: no
|
||||||
|
@@ -80,2 +86,18 @@ $S$M against the $__KERNELRELEASE kernel package.
|
||||||
|
$S$M
|
||||||
|
+$S # Opt out of a lot of Fedora hardening flags etc...
|
||||||
|
+$S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md
|
||||||
|
+$S %undefine _package_note_file
|
||||||
|
+$S %undefine _auto_set_build_flags
|
||||||
|
+$S %undefine _include_frame_pointers
|
||||||
|
+$S %define _build_id_flags -Wl,--build-id=none
|
||||||
|
+$S %undefine _annotated_build
|
||||||
|
+$S %undefine _fortify_level
|
||||||
|
+$S %undefine _hardened_build
|
||||||
|
+$S %global _lto_cflags %{nil}
|
||||||
|
+$S %global _configure_gnuconfig_hack 0
|
||||||
|
+$S %global _configure_libtool_hardening_hack 0
|
||||||
|
+$S # Nearly had to go to the deep web to find documentation on this one... Gosh
|
||||||
|
+$S # See https://github.com/rpm-software-management/rpm/blob/master/macros.in#L471
|
||||||
|
+$S %define _build_id_links none
|
||||||
|
+$S
|
||||||
|
$S %prep
|
||||||
|
@@ -90612,7 +90612,7 @@ index 5cfc95a52bc3..be075882450a 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
static DEFINE_STATIC_KEY_FALSE(trace_no_verify);
|
static DEFINE_STATIC_KEY_FALSE(trace_no_verify);
|
||||||
@@ -6792,12 +6788,12 @@ tracing_read_pipe(struct file *filp, char __user *ubuf,
|
@@ -6793,7 +6789,7 @@ tracing_read_pipe(struct file *filp, char __user *ubuf,
|
||||||
trace_access_lock(iter->cpu_file);
|
trace_access_lock(iter->cpu_file);
|
||||||
while (trace_find_next_entry_inc(iter) != NULL) {
|
while (trace_find_next_entry_inc(iter) != NULL) {
|
||||||
enum print_line_t ret;
|
enum print_line_t ret;
|
||||||
@@ -90621,7 +90621,19 @@ index 5cfc95a52bc3..be075882450a 100644
|
|||||||
|
|
||||||
ret = print_trace_line(iter);
|
ret = print_trace_line(iter);
|
||||||
if (ret == TRACE_TYPE_PARTIAL_LINE) {
|
if (ret == TRACE_TYPE_PARTIAL_LINE) {
|
||||||
/* don't print partial lines */
|
@@ -6803,7 +6799,7 @@ tracing_read_pipe(struct file *filp, char __user *ubuf,
|
||||||
|
* In this case, we need to consume it, otherwise, loop will peek
|
||||||
|
* this event next time, resulting in an infinite loop.
|
||||||
|
*/
|
||||||
|
- if (save_len == 0) {
|
||||||
|
+ if (save_pos == 0) {
|
||||||
|
iter->seq.full = 0;
|
||||||
|
trace_seq_puts(&iter->seq, "[LINE TOO BIG]\n");
|
||||||
|
trace_consume(iter);
|
||||||
|
@@ -6811,7 +6807,7 @@ tracing_read_pipe(struct file *filp, char __user *ubuf,
|
||||||
|
}
|
||||||
|
|
||||||
|
/* In other cases, don't print partial lines */
|
||||||
- iter->seq.seq.len = save_len;
|
- iter->seq.seq.len = save_len;
|
||||||
+ iter->seq.seq.pos = save_pos;
|
+ iter->seq.seq.pos = save_pos;
|
||||||
break;
|
break;
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -63,350 +63,3 @@ index 2c7171e0b0010..85de313ddec29 100644
|
|||||||
select CPU_FREQ_GOV_CONSERVATIVE
|
select CPU_FREQ_GOV_CONSERVATIVE
|
||||||
select CPU_FREQ_GOV_PERFORMANCE
|
select CPU_FREQ_GOV_PERFORMANCE
|
||||||
help
|
help
|
||||||
|
|
||||||
From 0c079d3f88df5f8286cd5c91b54bdac7c819be85 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matthew Auld <matthew.auld@intel.com>
|
|
||||||
Date: Tue, 6 Dec 2022 16:11:41 +0000
|
|
||||||
Subject: [PATCH] drm/i915: improve the catch-all evict to handle lock
|
|
||||||
contention
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
The catch-all evict can fail due to object lock contention, since it
|
|
||||||
only goes as far as trylocking the object, due to us already holding the
|
|
||||||
vm->mutex. Doing a full object lock here can deadlock, since the
|
|
||||||
vm->mutex is always our inner lock. Add another execbuf pass which drops
|
|
||||||
the vm->mutex and then tries to grab the object will the full lock,
|
|
||||||
before then retrying the eviction. This should be good enough for now to
|
|
||||||
fix the immediate regression with userspace seeing -ENOSPC from execbuf
|
|
||||||
due to contended object locks during GTT eviction.
|
|
||||||
|
|
||||||
Testcase: igt@gem_ppgtt@shrink-vs-evict-*
|
|
||||||
Fixes: 7e00897be8bf ("drm/i915: Add object locking to i915_gem_evict_for_node and i915_gem_evict_something, v2.")
|
|
||||||
References: https://gitlab.freedesktop.org/drm/intel/-/issues/7627
|
|
||||||
References: https://gitlab.freedesktop.org/drm/intel/-/issues/7570
|
|
||||||
References: https://bugzilla.mozilla.org/show_bug.cgi?id=1779558
|
|
||||||
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
|
|
||||||
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
|
|
||||||
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
|
|
||||||
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
|
|
||||||
Cc: Andrzej Hajda <andrzej.hajda@intel.com>
|
|
||||||
Cc: Mani Milani <mani@chromium.org>
|
|
||||||
Cc: <stable@vger.kernel.org> # v5.18+
|
|
||||||
|
|
||||||
Revision 1 of https://patchwork.freedesktop.org/series/111686/
|
|
||||||
---
|
|
||||||
.../gpu/drm/i915/gem/i915_gem_execbuffer.c | 25 +++++++++++--
|
|
||||||
drivers/gpu/drm/i915/gem/i915_gem_mman.c | 2 +-
|
|
||||||
drivers/gpu/drm/i915/i915_gem_evict.c | 37 ++++++++++++++-----
|
|
||||||
drivers/gpu/drm/i915/i915_gem_evict.h | 4 +-
|
|
||||||
drivers/gpu/drm/i915/i915_vma.c | 2 +-
|
|
||||||
.../gpu/drm/i915/selftests/i915_gem_evict.c | 4 +-
|
|
||||||
6 files changed, 56 insertions(+), 18 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
|
|
||||||
index 845023c14eb36f..094e92ed28db4f 100644
|
|
||||||
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
|
|
||||||
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
|
|
||||||
@@ -741,25 +741,44 @@ static int eb_reserve(struct i915_execbuffer *eb)
|
|
||||||
*
|
|
||||||
* Defragmenting is skipped if all objects are pinned at a fixed location.
|
|
||||||
*/
|
|
||||||
- for (pass = 0; pass <= 2; pass++) {
|
|
||||||
+ for (pass = 0; pass <= 3; pass++) {
|
|
||||||
int pin_flags = PIN_USER | PIN_VALIDATE;
|
|
||||||
|
|
||||||
if (pass == 0)
|
|
||||||
pin_flags |= PIN_NONBLOCK;
|
|
||||||
|
|
||||||
if (pass >= 1)
|
|
||||||
- unpinned = eb_unbind(eb, pass == 2);
|
|
||||||
+ unpinned = eb_unbind(eb, pass >= 2);
|
|
||||||
|
|
||||||
if (pass == 2) {
|
|
||||||
err = mutex_lock_interruptible(&eb->context->vm->mutex);
|
|
||||||
if (!err) {
|
|
||||||
- err = i915_gem_evict_vm(eb->context->vm, &eb->ww);
|
|
||||||
+ err = i915_gem_evict_vm(eb->context->vm, &eb->ww, NULL);
|
|
||||||
mutex_unlock(&eb->context->vm->mutex);
|
|
||||||
}
|
|
||||||
if (err)
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (pass == 3) {
|
|
||||||
+retry:
|
|
||||||
+ err = mutex_lock_interruptible(&eb->context->vm->mutex);
|
|
||||||
+ if (!err) {
|
|
||||||
+ struct drm_i915_gem_object *busy_bo = NULL;
|
|
||||||
+
|
|
||||||
+ err = i915_gem_evict_vm(eb->context->vm, &eb->ww, &busy_bo);
|
|
||||||
+ mutex_unlock(&eb->context->vm->mutex);
|
|
||||||
+ if (err && busy_bo) {
|
|
||||||
+ err = i915_gem_object_lock(busy_bo, &eb->ww);
|
|
||||||
+ i915_gem_object_put(busy_bo);
|
|
||||||
+ if (!err)
|
|
||||||
+ goto retry;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ if (err)
|
|
||||||
+ return err;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
list_for_each_entry(ev, &eb->unbound, bind_link) {
|
|
||||||
err = eb_reserve_vma(eb, ev, pin_flags);
|
|
||||||
if (err)
|
|
||||||
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
|
|
||||||
index 73d9eda1d6b7a6..c83d98e1dc5da0 100644
|
|
||||||
--- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c
|
|
||||||
+++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
|
|
||||||
@@ -369,7 +369,7 @@ static vm_fault_t vm_fault_gtt(struct vm_fault *vmf)
|
|
||||||
if (vma == ERR_PTR(-ENOSPC)) {
|
|
||||||
ret = mutex_lock_interruptible(&ggtt->vm.mutex);
|
|
||||||
if (!ret) {
|
|
||||||
- ret = i915_gem_evict_vm(&ggtt->vm, &ww);
|
|
||||||
+ ret = i915_gem_evict_vm(&ggtt->vm, &ww, NULL);
|
|
||||||
mutex_unlock(&ggtt->vm.mutex);
|
|
||||||
}
|
|
||||||
if (ret)
|
|
||||||
diff --git a/drivers/gpu/drm/i915/i915_gem_evict.c b/drivers/gpu/drm/i915/i915_gem_evict.c
|
|
||||||
index f025ee4fa52618..a4b4d9b7d26c7a 100644
|
|
||||||
--- a/drivers/gpu/drm/i915/i915_gem_evict.c
|
|
||||||
+++ b/drivers/gpu/drm/i915/i915_gem_evict.c
|
|
||||||
@@ -416,6 +416,11 @@ int i915_gem_evict_for_node(struct i915_address_space *vm,
|
|
||||||
* @vm: Address space to cleanse
|
|
||||||
* @ww: An optional struct i915_gem_ww_ctx. If not NULL, i915_gem_evict_vm
|
|
||||||
* will be able to evict vma's locked by the ww as well.
|
|
||||||
+ * @busy_bo: Optional pointer to struct drm_i915_gem_object. If not NULL, then
|
|
||||||
+ * in the event i915_gem_evict_vm() is unable to trylock an object for eviction,
|
|
||||||
+ * then @busy_bo will point to it. -EBUSY is also returned. The caller must drop
|
|
||||||
+ * the vm->mutex, before trying again to acquire the contended lock. The caller
|
|
||||||
+ * also owns a reference to the object.
|
|
||||||
*
|
|
||||||
* This function evicts all vmas from a vm.
|
|
||||||
*
|
|
||||||
@@ -425,7 +430,8 @@ int i915_gem_evict_for_node(struct i915_address_space *vm,
|
|
||||||
* To clarify: This is for freeing up virtual address space, not for freeing
|
|
||||||
* memory in e.g. the shrinker.
|
|
||||||
*/
|
|
||||||
-int i915_gem_evict_vm(struct i915_address_space *vm, struct i915_gem_ww_ctx *ww)
|
|
||||||
+int i915_gem_evict_vm(struct i915_address_space *vm, struct i915_gem_ww_ctx *ww,
|
|
||||||
+ struct drm_i915_gem_object **busy_bo)
|
|
||||||
{
|
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
@@ -457,15 +463,22 @@ int i915_gem_evict_vm(struct i915_address_space *vm, struct i915_gem_ww_ctx *ww)
|
|
||||||
* the resv is shared among multiple objects, we still
|
|
||||||
* need the object ref.
|
|
||||||
*/
|
|
||||||
- if (dying_vma(vma) ||
|
|
||||||
+ if (!i915_gem_object_get_rcu(vma->obj) ||
|
|
||||||
(ww && (dma_resv_locking_ctx(vma->obj->base.resv) == &ww->ctx))) {
|
|
||||||
__i915_vma_pin(vma);
|
|
||||||
list_add(&vma->evict_link, &locked_eviction_list);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (!i915_gem_object_trylock(vma->obj, ww))
|
|
||||||
+ if (!i915_gem_object_trylock(vma->obj, ww)) {
|
|
||||||
+ if (busy_bo) {
|
|
||||||
+ *busy_bo = vma->obj; /* holds ref */
|
|
||||||
+ ret = -EBUSY;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ i915_gem_object_put(vma->obj);
|
|
||||||
continue;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
__i915_vma_pin(vma);
|
|
||||||
list_add(&vma->evict_link, &eviction_list);
|
|
||||||
@@ -473,25 +486,29 @@ int i915_gem_evict_vm(struct i915_address_space *vm, struct i915_gem_ww_ctx *ww)
|
|
||||||
if (list_empty(&eviction_list) && list_empty(&locked_eviction_list))
|
|
||||||
break;
|
|
||||||
|
|
||||||
- ret = 0;
|
|
||||||
/* Unbind locked objects first, before unlocking the eviction_list */
|
|
||||||
list_for_each_entry_safe(vma, vn, &locked_eviction_list, evict_link) {
|
|
||||||
__i915_vma_unpin(vma);
|
|
||||||
|
|
||||||
- if (ret == 0)
|
|
||||||
+ if (ret == 0) {
|
|
||||||
ret = __i915_vma_unbind(vma);
|
|
||||||
- if (ret != -EINTR) /* "Get me out of here!" */
|
|
||||||
- ret = 0;
|
|
||||||
+ if (ret != -EINTR) /* "Get me out of here!" */
|
|
||||||
+ ret = 0;
|
|
||||||
+ }
|
|
||||||
+ if (!dying_vma(vma))
|
|
||||||
+ i915_gem_object_put(vma->obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
list_for_each_entry_safe(vma, vn, &eviction_list, evict_link) {
|
|
||||||
__i915_vma_unpin(vma);
|
|
||||||
- if (ret == 0)
|
|
||||||
+ if (ret == 0) {
|
|
||||||
ret = __i915_vma_unbind(vma);
|
|
||||||
- if (ret != -EINTR) /* "Get me out of here!" */
|
|
||||||
- ret = 0;
|
|
||||||
+ if (ret != -EINTR) /* "Get me out of here!" */
|
|
||||||
+ ret = 0;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
i915_gem_object_unlock(vma->obj);
|
|
||||||
+ i915_gem_object_put(vma->obj);
|
|
||||||
}
|
|
||||||
} while (ret == 0);
|
|
||||||
|
|
||||||
diff --git a/drivers/gpu/drm/i915/i915_gem_evict.h b/drivers/gpu/drm/i915/i915_gem_evict.h
|
|
||||||
index e593c530f9bd7a..bf0ee0e4fe6088 100644
|
|
||||||
--- a/drivers/gpu/drm/i915/i915_gem_evict.h
|
|
||||||
+++ b/drivers/gpu/drm/i915/i915_gem_evict.h
|
|
||||||
@@ -11,6 +11,7 @@
|
|
||||||
struct drm_mm_node;
|
|
||||||
struct i915_address_space;
|
|
||||||
struct i915_gem_ww_ctx;
|
|
||||||
+struct drm_i915_gem_object;
|
|
||||||
|
|
||||||
int __must_check i915_gem_evict_something(struct i915_address_space *vm,
|
|
||||||
struct i915_gem_ww_ctx *ww,
|
|
||||||
@@ -23,6 +24,7 @@ int __must_check i915_gem_evict_for_node(struct i915_address_space *vm,
|
|
||||||
struct drm_mm_node *node,
|
|
||||||
unsigned int flags);
|
|
||||||
int i915_gem_evict_vm(struct i915_address_space *vm,
|
|
||||||
- struct i915_gem_ww_ctx *ww);
|
|
||||||
+ struct i915_gem_ww_ctx *ww,
|
|
||||||
+ struct drm_i915_gem_object **busy_bo);
|
|
||||||
|
|
||||||
#endif /* __I915_GEM_EVICT_H__ */
|
|
||||||
diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c
|
|
||||||
index f17c09ead7d778..4d06875de14a14 100644
|
|
||||||
--- a/drivers/gpu/drm/i915/i915_vma.c
|
|
||||||
+++ b/drivers/gpu/drm/i915/i915_vma.c
|
|
||||||
@@ -1569,7 +1569,7 @@ static int __i915_ggtt_pin(struct i915_vma *vma, struct i915_gem_ww_ctx *ww,
|
|
||||||
* locked objects when called from execbuf when pinning
|
|
||||||
* is removed. This would probably regress badly.
|
|
||||||
*/
|
|
||||||
- i915_gem_evict_vm(vm, NULL);
|
|
||||||
+ i915_gem_evict_vm(vm, NULL, NULL);
|
|
||||||
mutex_unlock(&vm->mutex);
|
|
||||||
}
|
|
||||||
} while (1);
|
|
||||||
diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_evict.c b/drivers/gpu/drm/i915/selftests/i915_gem_evict.c
|
|
||||||
index 8c6517d29b8e0c..37068542aafe7f 100644
|
|
||||||
--- a/drivers/gpu/drm/i915/selftests/i915_gem_evict.c
|
|
||||||
+++ b/drivers/gpu/drm/i915/selftests/i915_gem_evict.c
|
|
||||||
@@ -344,7 +344,7 @@ static int igt_evict_vm(void *arg)
|
|
||||||
|
|
||||||
/* Everything is pinned, nothing should happen */
|
|
||||||
mutex_lock(&ggtt->vm.mutex);
|
|
||||||
- err = i915_gem_evict_vm(&ggtt->vm, NULL);
|
|
||||||
+ err = i915_gem_evict_vm(&ggtt->vm, NULL, NULL);
|
|
||||||
mutex_unlock(&ggtt->vm.mutex);
|
|
||||||
if (err) {
|
|
||||||
pr_err("i915_gem_evict_vm on a full GGTT returned err=%d]\n",
|
|
||||||
@@ -356,7 +356,7 @@ static int igt_evict_vm(void *arg)
|
|
||||||
|
|
||||||
for_i915_gem_ww(&ww, err, false) {
|
|
||||||
mutex_lock(&ggtt->vm.mutex);
|
|
||||||
- err = i915_gem_evict_vm(&ggtt->vm, &ww);
|
|
||||||
+ err = i915_gem_evict_vm(&ggtt->vm, &ww, NULL);
|
|
||||||
mutex_unlock(&ggtt->vm.mutex);
|
|
||||||
}
|
|
||||||
|
|
||||||
From 189603b802a2bb276b82a0a4f66528ad29156f46 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alexey Izbyshev <izbyshev@ispras.ru>
|
|
||||||
Date: Sat, 12 Nov 2022 00:54:39 +0300
|
|
||||||
Subject: [PATCH] futex: Resend potentially swallowed owner death notification
|
|
||||||
|
|
||||||
Commit ca16d5bee598 ("futex: Prevent robust futex exit race") addressed
|
|
||||||
two cases when tasks waiting on a robust non-PI futex remained blocked
|
|
||||||
despite the futex not being owned anymore:
|
|
||||||
|
|
||||||
* if the owner died after writing zero to the futex word, but before
|
|
||||||
waking up a waiter
|
|
||||||
|
|
||||||
* if a task waiting on the futex was woken up, but died before updating
|
|
||||||
the futex word (effectively swallowing the notification without acting
|
|
||||||
on it)
|
|
||||||
|
|
||||||
In the second case, the task could be woken up either by the previous
|
|
||||||
owner (after the futex word was reset to zero) or by the kernel (after
|
|
||||||
the OWNER_DIED bit was set and the TID part of the futex word was reset
|
|
||||||
to zero) if the previous owner died without the resetting the futex.
|
|
||||||
|
|
||||||
Because the referenced commit wakes up a potential waiter only if the
|
|
||||||
whole futex word is zero, the latter subcase remains unaddressed.
|
|
||||||
|
|
||||||
Fix this by looking only at the TID part of the futex when deciding
|
|
||||||
whether a wake up is needed.
|
|
||||||
|
|
||||||
Fixes: ca16d5bee598 ("futex: Prevent robust futex exit race")
|
|
||||||
Signed-off-by: Alexey Izbyshev <izbyshev@ispras.ru>
|
|
||||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|
||||||
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
|
|
||||||
Link: https://lore.kernel.org/r/20221111215439.248185-1-izbyshev@ispras.ru
|
|
||||||
---
|
|
||||||
kernel/futex/core.c | 26 +++++++++++++++++---------
|
|
||||||
1 file changed, 17 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/kernel/futex/core.c b/kernel/futex/core.c
|
|
||||||
index b22ef1efe75118..514e4582b86341 100644
|
|
||||||
--- a/kernel/futex/core.c
|
|
||||||
+++ b/kernel/futex/core.c
|
|
||||||
@@ -638,6 +638,7 @@ static int handle_futex_death(u32 __user *uaddr, struct task_struct *curr,
|
|
||||||
bool pi, bool pending_op)
|
|
||||||
{
|
|
||||||
u32 uval, nval, mval;
|
|
||||||
+ pid_t owner;
|
|
||||||
int err;
|
|
||||||
|
|
||||||
/* Futex address must be 32bit aligned */
|
|
||||||
@@ -659,6 +660,10 @@ static int handle_futex_death(u32 __user *uaddr, struct task_struct *curr,
|
|
||||||
* 2. A woken up waiter is killed before it can acquire the
|
|
||||||
* futex in user space.
|
|
||||||
*
|
|
||||||
+ * In the second case, the wake up notification could be generated
|
|
||||||
+ * by the unlock path in user space after setting the futex value
|
|
||||||
+ * to zero or by the kernel after setting the OWNER_DIED bit below.
|
|
||||||
+ *
|
|
||||||
* In both cases the TID validation below prevents a wakeup of
|
|
||||||
* potential waiters which can cause these waiters to block
|
|
||||||
* forever.
|
|
||||||
@@ -667,24 +672,27 @@ static int handle_futex_death(u32 __user *uaddr, struct task_struct *curr,
|
|
||||||
*
|
|
||||||
* 1) task->robust_list->list_op_pending != NULL
|
|
||||||
* @pending_op == true
|
|
||||||
- * 2) User space futex value == 0
|
|
||||||
+ * 2) The owner part of user space futex value == 0
|
|
||||||
* 3) Regular futex: @pi == false
|
|
||||||
*
|
|
||||||
* If these conditions are met, it is safe to attempt waking up a
|
|
||||||
* potential waiter without touching the user space futex value and
|
|
||||||
- * trying to set the OWNER_DIED bit. The user space futex value is
|
|
||||||
- * uncontended and the rest of the user space mutex state is
|
|
||||||
- * consistent, so a woken waiter will just take over the
|
|
||||||
- * uncontended futex. Setting the OWNER_DIED bit would create
|
|
||||||
- * inconsistent state and malfunction of the user space owner died
|
|
||||||
- * handling.
|
|
||||||
+ * trying to set the OWNER_DIED bit. If the futex value is zero,
|
|
||||||
+ * the rest of the user space mutex state is consistent, so a woken
|
|
||||||
+ * waiter will just take over the uncontended futex. Setting the
|
|
||||||
+ * OWNER_DIED bit would create inconsistent state and malfunction
|
|
||||||
+ * of the user space owner died handling. Otherwise, the OWNER_DIED
|
|
||||||
+ * bit is already set, and the woken waiter is expected to deal with
|
|
||||||
+ * this.
|
|
||||||
*/
|
|
||||||
- if (pending_op && !pi && !uval) {
|
|
||||||
+ owner = uval & FUTEX_TID_MASK;
|
|
||||||
+
|
|
||||||
+ if (pending_op && !pi && !owner) {
|
|
||||||
futex_wake(uaddr, 1, 1, FUTEX_BITSET_MATCH_ANY);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if ((uval & FUTEX_TID_MASK) != task_pid_vnr(curr))
|
|
||||||
+ if (owner != task_pid_vnr(curr))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
@@ -1,27 +1,53 @@
|
|||||||
# Remove the obsoletes line in kernel-headers
|
|
||||||
# Add provides for kernel-devel so there's no conflict
|
|
||||||
|
|
||||||
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
||||||
index 7c477ca7d..1158f5559 100755
|
index 70392fd2f..34f98648f 100755
|
||||||
--- a/scripts/package/mkspec
|
--- a/scripts/package/mkspec
|
||||||
+++ b/scripts/package/mkspec
|
+++ b/scripts/package/mkspec
|
||||||
@@ -25,0 +26 @@ fi
|
@@ -25,7 +25,7 @@ fi
|
||||||
|
|
||||||
+PROVIDES_DRM=""
|
+PROVIDES_DRM=""
|
||||||
@@ -27 +28 @@ if grep -q CONFIG_DRM=y .config; then
|
if grep -q CONFIG_DRM=y .config; then
|
||||||
- PROVIDES=kernel-drm
|
- PROVIDES=kernel-drm
|
||||||
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
||||||
@@ -30 +30,0 @@ fi
|
fi
|
||||||
|
|
||||||
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
||||||
@@ -51 +51,3 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
|
||||||
|
@@ -50,3 +50,6 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
|
||||||
|
$S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
- Provides: $PROVIDES
|
- Provides: $PROVIDES
|
||||||
+ $PROVIDES_DRM
|
+ $PROVIDES_DRM
|
||||||
+ Provides: kernel = %{version}
|
+ Provides: kernel = %{version}
|
||||||
+ Provides: kernel-uname-r = %{version}
|
+ Provides: kernel-uname-r = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -61 +63 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
# $UTS_MACHINE as a fallback of _arch in case
|
||||||
|
@@ -63,4 +66,4 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
|
Group: Development/System
|
||||||
- Obsoletes: kernel-headers
|
- Obsoletes: kernel-headers
|
||||||
|
Provides: kernel-headers = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -72,0 +75,3 @@ $S$M Group: System Environment/Kernel
|
%description headers
|
||||||
|
@@ -75,2 +78,5 @@ $S$M Summary: Development package for building kernel modules to match the $__KE
|
||||||
|
$S$M Group: System Environment/Kernel
|
||||||
+$S$M Provides: kernel-devel = %{version}
|
+$S$M Provides: kernel-devel = %{version}
|
||||||
+$S$M Provides: kernel-devel-uname-r = %{version}
|
+$S$M Provides: kernel-devel-uname-r = %{version}
|
||||||
+$S$M Provides: installonlypkg(kernel) = %{version}
|
+$S$M Provides: installonlypkg(kernel) = %{version}
|
||||||
|
$S$M AutoReqProv: no
|
||||||
|
@@ -80,2 +86,18 @@ $S$M against the $__KERNELRELEASE kernel package.
|
||||||
|
$S$M
|
||||||
|
+$S # Opt out of a lot of Fedora hardening flags etc...
|
||||||
|
+$S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md
|
||||||
|
+$S %undefine _package_note_file
|
||||||
|
+$S %undefine _auto_set_build_flags
|
||||||
|
+$S %undefine _include_frame_pointers
|
||||||
|
+$S %define _build_id_flags -Wl,--build-id=none
|
||||||
|
+$S %undefine _annotated_build
|
||||||
|
+$S %undefine _fortify_level
|
||||||
|
+$S %undefine _hardened_build
|
||||||
|
+$S %global _lto_cflags %{nil}
|
||||||
|
+$S %global _configure_gnuconfig_hack 0
|
||||||
|
+$S %global _configure_libtool_hardening_hack 0
|
||||||
|
+$S # Nearly had to go to the deep web to find documentation on this one... Gosh
|
||||||
|
+$S # See https://github.com/rpm-software-management/rpm/blob/master/macros.in#L471
|
||||||
|
+$S %define _build_id_links none
|
||||||
|
+$S
|
||||||
|
$S %prep
|
||||||
|
90
linux-tkg-patches/6.2/0005-glitched-pds.patch
Normal file
90
linux-tkg-patches/6.2/0005-glitched-pds.patch
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
From f7f49141a5dbe9c99d78196b58c44307fb2e6be3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tk-Glitch <ti3nou@gmail.com>
|
||||||
|
Date: Wed, 4 Jul 2018 04:30:08 +0200
|
||||||
|
Subject: glitched - PDS
|
||||||
|
|
||||||
|
diff --git a/kernel/Kconfig.hz b/kernel/Kconfig.hz
|
||||||
|
index 2a202a846757..1d9c7ed79b11 100644
|
||||||
|
--- a/kernel/Kconfig.hz
|
||||||
|
+++ b/kernel/Kconfig.hz
|
||||||
|
@@ -4,7 +4,7 @@
|
||||||
|
|
||||||
|
choice
|
||||||
|
prompt "Timer frequency"
|
||||||
|
- default HZ_250
|
||||||
|
+ default HZ_500
|
||||||
|
help
|
||||||
|
Allows the configuration of the timer frequency. It is customary
|
||||||
|
to have the timer interrupt run at 1000 Hz but 100 Hz may be more
|
||||||
|
@@ -39,6 +39,13 @@ choice
|
||||||
|
on SMP and NUMA systems and exactly dividing by both PAL and
|
||||||
|
NTSC frame rates for video and multimedia work.
|
||||||
|
|
||||||
|
+ config HZ_500
|
||||||
|
+ bool "500 HZ"
|
||||||
|
+ help
|
||||||
|
+ 500 Hz is a balanced timer frequency. Provides fast interactivity
|
||||||
|
+ on desktops with great smoothness without increasing CPU power
|
||||||
|
+ consumption and sacrificing the battery life on laptops.
|
||||||
|
+
|
||||||
|
config HZ_1000
|
||||||
|
bool "1000 HZ"
|
||||||
|
help
|
||||||
|
@@ -52,6 +59,7 @@ config HZ
|
||||||
|
default 100 if HZ_100
|
||||||
|
default 250 if HZ_250
|
||||||
|
default 300 if HZ_300
|
||||||
|
+ default 500 if HZ_500
|
||||||
|
default 1000 if HZ_1000
|
||||||
|
|
||||||
|
config SCHED_HRTICK
|
||||||
|
|
||||||
|
diff --git a/kernel/Kconfig.hz b/kernel/Kconfig.hz
|
||||||
|
index 2a202a846757..1d9c7ed79b11 100644
|
||||||
|
--- a/kernel/Kconfig.hz
|
||||||
|
+++ b/kernel/Kconfig.hz
|
||||||
|
@@ -4,7 +4,7 @@
|
||||||
|
|
||||||
|
choice
|
||||||
|
prompt "Timer frequency"
|
||||||
|
- default HZ_500
|
||||||
|
+ default HZ_750
|
||||||
|
help
|
||||||
|
Allows the configuration of the timer frequency. It is customary
|
||||||
|
to have the timer interrupt run at 1000 Hz but 100 Hz may be more
|
||||||
|
@@ -46,6 +46,13 @@ choice
|
||||||
|
on desktops with great smoothness without increasing CPU power
|
||||||
|
consumption and sacrificing the battery life on laptops.
|
||||||
|
|
||||||
|
+ config HZ_750
|
||||||
|
+ bool "750 HZ"
|
||||||
|
+ help
|
||||||
|
+ 750 Hz is a good timer frequency for desktops. Provides fast
|
||||||
|
+ interactivity with great smoothness without sacrificing too
|
||||||
|
+ much throughput.
|
||||||
|
+
|
||||||
|
config HZ_1000
|
||||||
|
bool "1000 HZ"
|
||||||
|
help
|
||||||
|
@@ -60,6 +67,7 @@ config HZ
|
||||||
|
default 250 if HZ_250
|
||||||
|
default 300 if HZ_300
|
||||||
|
default 500 if HZ_500
|
||||||
|
+ default 750 if HZ_750
|
||||||
|
default 1000 if HZ_1000
|
||||||
|
|
||||||
|
config SCHED_HRTICK
|
||||||
|
|
||||||
|
diff --git a/mm/vmscan.c b/mm/vmscan.c
|
||||||
|
index 9270a4370d54..30d01e647417 100644
|
||||||
|
--- a/mm/vmscan.c
|
||||||
|
+++ b/mm/vmscan.c
|
||||||
|
@@ -169,7 +169,7 @@
|
||||||
|
/*
|
||||||
|
* From 0 .. 200. Higher means more swappy.
|
||||||
|
*/
|
||||||
|
-int vm_swappiness = 60;
|
||||||
|
+int vm_swappiness = 20;
|
||||||
|
|
||||||
|
static void set_task_reclaim_state(struct task_struct *task,
|
||||||
|
struct reclaim_state *rs)
|
10327
linux-tkg-patches/6.2/0009-prjc_v6.2-r0.patch
Normal file
10327
linux-tkg-patches/6.2/0009-prjc_v6.2-r0.patch
Normal file
File diff suppressed because it is too large
Load Diff
@@ -64,253 +64,3 @@ index 2c7171e0b0010..85de313ddec29 100644
|
|||||||
select CPU_FREQ_GOV_PERFORMANCE
|
select CPU_FREQ_GOV_PERFORMANCE
|
||||||
help
|
help
|
||||||
|
|
||||||
From 0c079d3f88df5f8286cd5c91b54bdac7c819be85 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matthew Auld <matthew.auld@intel.com>
|
|
||||||
Date: Tue, 6 Dec 2022 16:11:41 +0000
|
|
||||||
Subject: [PATCH] drm/i915: improve the catch-all evict to handle lock
|
|
||||||
contention
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
The catch-all evict can fail due to object lock contention, since it
|
|
||||||
only goes as far as trylocking the object, due to us already holding the
|
|
||||||
vm->mutex. Doing a full object lock here can deadlock, since the
|
|
||||||
vm->mutex is always our inner lock. Add another execbuf pass which drops
|
|
||||||
the vm->mutex and then tries to grab the object will the full lock,
|
|
||||||
before then retrying the eviction. This should be good enough for now to
|
|
||||||
fix the immediate regression with userspace seeing -ENOSPC from execbuf
|
|
||||||
due to contended object locks during GTT eviction.
|
|
||||||
|
|
||||||
Testcase: igt@gem_ppgtt@shrink-vs-evict-*
|
|
||||||
Fixes: 7e00897be8bf ("drm/i915: Add object locking to i915_gem_evict_for_node and i915_gem_evict_something, v2.")
|
|
||||||
References: https://gitlab.freedesktop.org/drm/intel/-/issues/7627
|
|
||||||
References: https://gitlab.freedesktop.org/drm/intel/-/issues/7570
|
|
||||||
References: https://bugzilla.mozilla.org/show_bug.cgi?id=1779558
|
|
||||||
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
|
|
||||||
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
|
|
||||||
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
|
|
||||||
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
|
|
||||||
Cc: Andrzej Hajda <andrzej.hajda@intel.com>
|
|
||||||
Cc: Mani Milani <mani@chromium.org>
|
|
||||||
Cc: <stable@vger.kernel.org> # v5.18+
|
|
||||||
|
|
||||||
Revision 1 of https://patchwork.freedesktop.org/series/111686/
|
|
||||||
---
|
|
||||||
.../gpu/drm/i915/gem/i915_gem_execbuffer.c | 25 +++++++++++--
|
|
||||||
drivers/gpu/drm/i915/gem/i915_gem_mman.c | 2 +-
|
|
||||||
drivers/gpu/drm/i915/i915_gem_evict.c | 37 ++++++++++++++-----
|
|
||||||
drivers/gpu/drm/i915/i915_gem_evict.h | 4 +-
|
|
||||||
drivers/gpu/drm/i915/i915_vma.c | 2 +-
|
|
||||||
.../gpu/drm/i915/selftests/i915_gem_evict.c | 4 +-
|
|
||||||
6 files changed, 56 insertions(+), 18 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
|
|
||||||
index 845023c14eb36f..094e92ed28db4f 100644
|
|
||||||
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
|
|
||||||
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
|
|
||||||
@@ -741,25 +741,44 @@ static int eb_reserve(struct i915_execbuffer *eb)
|
|
||||||
*
|
|
||||||
* Defragmenting is skipped if all objects are pinned at a fixed location.
|
|
||||||
*/
|
|
||||||
- for (pass = 0; pass <= 2; pass++) {
|
|
||||||
+ for (pass = 0; pass <= 3; pass++) {
|
|
||||||
int pin_flags = PIN_USER | PIN_VALIDATE;
|
|
||||||
|
|
||||||
if (pass == 0)
|
|
||||||
pin_flags |= PIN_NONBLOCK;
|
|
||||||
|
|
||||||
if (pass >= 1)
|
|
||||||
- unpinned = eb_unbind(eb, pass == 2);
|
|
||||||
+ unpinned = eb_unbind(eb, pass >= 2);
|
|
||||||
|
|
||||||
if (pass == 2) {
|
|
||||||
err = mutex_lock_interruptible(&eb->context->vm->mutex);
|
|
||||||
if (!err) {
|
|
||||||
- err = i915_gem_evict_vm(eb->context->vm, &eb->ww);
|
|
||||||
+ err = i915_gem_evict_vm(eb->context->vm, &eb->ww, NULL);
|
|
||||||
mutex_unlock(&eb->context->vm->mutex);
|
|
||||||
}
|
|
||||||
if (err)
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (pass == 3) {
|
|
||||||
+retry:
|
|
||||||
+ err = mutex_lock_interruptible(&eb->context->vm->mutex);
|
|
||||||
+ if (!err) {
|
|
||||||
+ struct drm_i915_gem_object *busy_bo = NULL;
|
|
||||||
+
|
|
||||||
+ err = i915_gem_evict_vm(eb->context->vm, &eb->ww, &busy_bo);
|
|
||||||
+ mutex_unlock(&eb->context->vm->mutex);
|
|
||||||
+ if (err && busy_bo) {
|
|
||||||
+ err = i915_gem_object_lock(busy_bo, &eb->ww);
|
|
||||||
+ i915_gem_object_put(busy_bo);
|
|
||||||
+ if (!err)
|
|
||||||
+ goto retry;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ if (err)
|
|
||||||
+ return err;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
list_for_each_entry(ev, &eb->unbound, bind_link) {
|
|
||||||
err = eb_reserve_vma(eb, ev, pin_flags);
|
|
||||||
if (err)
|
|
||||||
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
|
|
||||||
index 73d9eda1d6b7a6..c83d98e1dc5da0 100644
|
|
||||||
--- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c
|
|
||||||
+++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
|
|
||||||
@@ -369,7 +369,7 @@ static vm_fault_t vm_fault_gtt(struct vm_fault *vmf)
|
|
||||||
if (vma == ERR_PTR(-ENOSPC)) {
|
|
||||||
ret = mutex_lock_interruptible(&ggtt->vm.mutex);
|
|
||||||
if (!ret) {
|
|
||||||
- ret = i915_gem_evict_vm(&ggtt->vm, &ww);
|
|
||||||
+ ret = i915_gem_evict_vm(&ggtt->vm, &ww, NULL);
|
|
||||||
mutex_unlock(&ggtt->vm.mutex);
|
|
||||||
}
|
|
||||||
if (ret)
|
|
||||||
diff --git a/drivers/gpu/drm/i915/i915_gem_evict.c b/drivers/gpu/drm/i915/i915_gem_evict.c
|
|
||||||
index f025ee4fa52618..a4b4d9b7d26c7a 100644
|
|
||||||
--- a/drivers/gpu/drm/i915/i915_gem_evict.c
|
|
||||||
+++ b/drivers/gpu/drm/i915/i915_gem_evict.c
|
|
||||||
@@ -416,6 +416,11 @@ int i915_gem_evict_for_node(struct i915_address_space *vm,
|
|
||||||
* @vm: Address space to cleanse
|
|
||||||
* @ww: An optional struct i915_gem_ww_ctx. If not NULL, i915_gem_evict_vm
|
|
||||||
* will be able to evict vma's locked by the ww as well.
|
|
||||||
+ * @busy_bo: Optional pointer to struct drm_i915_gem_object. If not NULL, then
|
|
||||||
+ * in the event i915_gem_evict_vm() is unable to trylock an object for eviction,
|
|
||||||
+ * then @busy_bo will point to it. -EBUSY is also returned. The caller must drop
|
|
||||||
+ * the vm->mutex, before trying again to acquire the contended lock. The caller
|
|
||||||
+ * also owns a reference to the object.
|
|
||||||
*
|
|
||||||
* This function evicts all vmas from a vm.
|
|
||||||
*
|
|
||||||
@@ -425,7 +430,8 @@ int i915_gem_evict_for_node(struct i915_address_space *vm,
|
|
||||||
* To clarify: This is for freeing up virtual address space, not for freeing
|
|
||||||
* memory in e.g. the shrinker.
|
|
||||||
*/
|
|
||||||
-int i915_gem_evict_vm(struct i915_address_space *vm, struct i915_gem_ww_ctx *ww)
|
|
||||||
+int i915_gem_evict_vm(struct i915_address_space *vm, struct i915_gem_ww_ctx *ww,
|
|
||||||
+ struct drm_i915_gem_object **busy_bo)
|
|
||||||
{
|
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
@@ -457,15 +463,22 @@ int i915_gem_evict_vm(struct i915_address_space *vm, struct i915_gem_ww_ctx *ww)
|
|
||||||
* the resv is shared among multiple objects, we still
|
|
||||||
* need the object ref.
|
|
||||||
*/
|
|
||||||
- if (dying_vma(vma) ||
|
|
||||||
+ if (!i915_gem_object_get_rcu(vma->obj) ||
|
|
||||||
(ww && (dma_resv_locking_ctx(vma->obj->base.resv) == &ww->ctx))) {
|
|
||||||
__i915_vma_pin(vma);
|
|
||||||
list_add(&vma->evict_link, &locked_eviction_list);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (!i915_gem_object_trylock(vma->obj, ww))
|
|
||||||
+ if (!i915_gem_object_trylock(vma->obj, ww)) {
|
|
||||||
+ if (busy_bo) {
|
|
||||||
+ *busy_bo = vma->obj; /* holds ref */
|
|
||||||
+ ret = -EBUSY;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ i915_gem_object_put(vma->obj);
|
|
||||||
continue;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
__i915_vma_pin(vma);
|
|
||||||
list_add(&vma->evict_link, &eviction_list);
|
|
||||||
@@ -473,25 +486,29 @@ int i915_gem_evict_vm(struct i915_address_space *vm, struct i915_gem_ww_ctx *ww)
|
|
||||||
if (list_empty(&eviction_list) && list_empty(&locked_eviction_list))
|
|
||||||
break;
|
|
||||||
|
|
||||||
- ret = 0;
|
|
||||||
/* Unbind locked objects first, before unlocking the eviction_list */
|
|
||||||
list_for_each_entry_safe(vma, vn, &locked_eviction_list, evict_link) {
|
|
||||||
__i915_vma_unpin(vma);
|
|
||||||
|
|
||||||
- if (ret == 0)
|
|
||||||
+ if (ret == 0) {
|
|
||||||
ret = __i915_vma_unbind(vma);
|
|
||||||
- if (ret != -EINTR) /* "Get me out of here!" */
|
|
||||||
- ret = 0;
|
|
||||||
+ if (ret != -EINTR) /* "Get me out of here!" */
|
|
||||||
+ ret = 0;
|
|
||||||
+ }
|
|
||||||
+ if (!dying_vma(vma))
|
|
||||||
+ i915_gem_object_put(vma->obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
list_for_each_entry_safe(vma, vn, &eviction_list, evict_link) {
|
|
||||||
__i915_vma_unpin(vma);
|
|
||||||
- if (ret == 0)
|
|
||||||
+ if (ret == 0) {
|
|
||||||
ret = __i915_vma_unbind(vma);
|
|
||||||
- if (ret != -EINTR) /* "Get me out of here!" */
|
|
||||||
- ret = 0;
|
|
||||||
+ if (ret != -EINTR) /* "Get me out of here!" */
|
|
||||||
+ ret = 0;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
i915_gem_object_unlock(vma->obj);
|
|
||||||
+ i915_gem_object_put(vma->obj);
|
|
||||||
}
|
|
||||||
} while (ret == 0);
|
|
||||||
|
|
||||||
diff --git a/drivers/gpu/drm/i915/i915_gem_evict.h b/drivers/gpu/drm/i915/i915_gem_evict.h
|
|
||||||
index e593c530f9bd7a..bf0ee0e4fe6088 100644
|
|
||||||
--- a/drivers/gpu/drm/i915/i915_gem_evict.h
|
|
||||||
+++ b/drivers/gpu/drm/i915/i915_gem_evict.h
|
|
||||||
@@ -11,6 +11,7 @@
|
|
||||||
struct drm_mm_node;
|
|
||||||
struct i915_address_space;
|
|
||||||
struct i915_gem_ww_ctx;
|
|
||||||
+struct drm_i915_gem_object;
|
|
||||||
|
|
||||||
int __must_check i915_gem_evict_something(struct i915_address_space *vm,
|
|
||||||
struct i915_gem_ww_ctx *ww,
|
|
||||||
@@ -23,6 +24,7 @@ int __must_check i915_gem_evict_for_node(struct i915_address_space *vm,
|
|
||||||
struct drm_mm_node *node,
|
|
||||||
unsigned int flags);
|
|
||||||
int i915_gem_evict_vm(struct i915_address_space *vm,
|
|
||||||
- struct i915_gem_ww_ctx *ww);
|
|
||||||
+ struct i915_gem_ww_ctx *ww,
|
|
||||||
+ struct drm_i915_gem_object **busy_bo);
|
|
||||||
|
|
||||||
#endif /* __I915_GEM_EVICT_H__ */
|
|
||||||
diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c
|
|
||||||
index f17c09ead7d778..4d06875de14a14 100644
|
|
||||||
--- a/drivers/gpu/drm/i915/i915_vma.c
|
|
||||||
+++ b/drivers/gpu/drm/i915/i915_vma.c
|
|
||||||
@@ -1569,7 +1569,7 @@ static int __i915_ggtt_pin(struct i915_vma *vma, struct i915_gem_ww_ctx *ww,
|
|
||||||
* locked objects when called from execbuf when pinning
|
|
||||||
* is removed. This would probably regress badly.
|
|
||||||
*/
|
|
||||||
- i915_gem_evict_vm(vm, NULL);
|
|
||||||
+ i915_gem_evict_vm(vm, NULL, NULL);
|
|
||||||
mutex_unlock(&vm->mutex);
|
|
||||||
}
|
|
||||||
} while (1);
|
|
||||||
diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_evict.c b/drivers/gpu/drm/i915/selftests/i915_gem_evict.c
|
|
||||||
index 8c6517d29b8e0c..37068542aafe7f 100644
|
|
||||||
--- a/drivers/gpu/drm/i915/selftests/i915_gem_evict.c
|
|
||||||
+++ b/drivers/gpu/drm/i915/selftests/i915_gem_evict.c
|
|
||||||
@@ -344,7 +344,7 @@ static int igt_evict_vm(void *arg)
|
|
||||||
|
|
||||||
/* Everything is pinned, nothing should happen */
|
|
||||||
mutex_lock(&ggtt->vm.mutex);
|
|
||||||
- err = i915_gem_evict_vm(&ggtt->vm, NULL);
|
|
||||||
+ err = i915_gem_evict_vm(&ggtt->vm, NULL, NULL);
|
|
||||||
mutex_unlock(&ggtt->vm.mutex);
|
|
||||||
if (err) {
|
|
||||||
pr_err("i915_gem_evict_vm on a full GGTT returned err=%d]\n",
|
|
||||||
@@ -356,7 +356,7 @@ static int igt_evict_vm(void *arg)
|
|
||||||
|
|
||||||
for_i915_gem_ww(&ww, err, false) {
|
|
||||||
mutex_lock(&ggtt->vm.mutex);
|
|
||||||
- err = i915_gem_evict_vm(&ggtt->vm, &ww);
|
|
||||||
+ err = i915_gem_evict_vm(&ggtt->vm, &ww, NULL);
|
|
||||||
mutex_unlock(&ggtt->vm.mutex);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@@ -1,27 +1,53 @@
|
|||||||
# Remove the obsoletes line in kernel-headers
|
|
||||||
# Add provides for kernel-devel so there's no conflict
|
|
||||||
|
|
||||||
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
|
||||||
index 7c477ca7d..1158f5559 100755
|
index 70392fd2f..34f98648f 100755
|
||||||
--- a/scripts/package/mkspec
|
--- a/scripts/package/mkspec
|
||||||
+++ b/scripts/package/mkspec
|
+++ b/scripts/package/mkspec
|
||||||
@@ -25,0 +26 @@ fi
|
@@ -25,7 +25,7 @@ fi
|
||||||
|
|
||||||
+PROVIDES_DRM=""
|
+PROVIDES_DRM=""
|
||||||
@@ -27 +28 @@ if grep -q CONFIG_DRM=y .config; then
|
if grep -q CONFIG_DRM=y .config; then
|
||||||
- PROVIDES=kernel-drm
|
- PROVIDES=kernel-drm
|
||||||
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
+ PROVIDES_DRM="Provides: kernel-drm = %{version}"
|
||||||
@@ -30 +30,0 @@ fi
|
fi
|
||||||
|
|
||||||
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
-PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
||||||
@@ -51 +51,3 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
|
||||||
|
@@ -50,3 +50,6 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
|
||||||
|
$S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
- Provides: $PROVIDES
|
- Provides: $PROVIDES
|
||||||
+ $PROVIDES_DRM
|
+ $PROVIDES_DRM
|
||||||
+ Provides: kernel = %{version}
|
+ Provides: kernel = %{version}
|
||||||
+ Provides: kernel-uname-r = %{version}
|
+ Provides: kernel-uname-r = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -61 +63 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
# $UTS_MACHINE as a fallback of _arch in case
|
||||||
|
@@ -63,4 +66,4 @@ $S Source: kernel-$__KERNELRELEASE.tar.gz
|
||||||
|
Group: Development/System
|
||||||
- Obsoletes: kernel-headers
|
- Obsoletes: kernel-headers
|
||||||
|
Provides: kernel-headers = %{version}
|
||||||
+ Provides: installonlypkg(kernel) = %{version}
|
+ Provides: installonlypkg(kernel) = %{version}
|
||||||
@@ -72,0 +75,3 @@ $S$M Group: System Environment/Kernel
|
%description headers
|
||||||
|
@@ -75,2 +78,5 @@ $S$M Summary: Development package for building kernel modules to match the $__KE
|
||||||
|
$S$M Group: System Environment/Kernel
|
||||||
+$S$M Provides: kernel-devel = %{version}
|
+$S$M Provides: kernel-devel = %{version}
|
||||||
+$S$M Provides: kernel-devel-uname-r = %{version}
|
+$S$M Provides: kernel-devel-uname-r = %{version}
|
||||||
+$S$M Provides: installonlypkg(kernel) = %{version}
|
+$S$M Provides: installonlypkg(kernel) = %{version}
|
||||||
|
$S$M AutoReqProv: no
|
||||||
|
@@ -80,2 +86,18 @@ $S$M against the $__KERNELRELEASE kernel package.
|
||||||
|
$S$M
|
||||||
|
+$S # Opt out of a lot of Fedora hardening flags etc...
|
||||||
|
+$S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md
|
||||||
|
+$S %undefine _package_note_file
|
||||||
|
+$S %undefine _auto_set_build_flags
|
||||||
|
+$S %undefine _include_frame_pointers
|
||||||
|
+$S %define _build_id_flags -Wl,--build-id=none
|
||||||
|
+$S %undefine _annotated_build
|
||||||
|
+$S %undefine _fortify_level
|
||||||
|
+$S %undefine _hardened_build
|
||||||
|
+$S %global _lto_cflags %{nil}
|
||||||
|
+$S %global _configure_gnuconfig_hack 0
|
||||||
|
+$S %global _configure_libtool_hardening_hack 0
|
||||||
|
+$S # Nearly had to go to the deep web to find documentation on this one... Gosh
|
||||||
|
+$S # See https://github.com/rpm-software-management/rpm/blob/master/macros.in#L471
|
||||||
|
+$S %define _build_id_links none
|
||||||
|
+$S
|
||||||
|
$S %prep
|
||||||
|
Reference in New Issue
Block a user