Change PREEMPT to PREEMPT_VOLUNTARY: it is a more in the middle interactivity which should be OK for both servers and desktops, Void Linux and Ubuntu have it. Previous value was too much preemption.
This patch is applied in Arch Linux kernel and has not been upstreamized yet.
Thanks to tsaruk1van@ for reporting existense of the issue (also with kernel 5.10) and that this fix works.
There are strange build problems with current config, I don't see sense in spending time on solving them because nobody has actually ever used this UML
vde-devel BR is probably not needed any more, but let's keep it for future...
Previous commit removed removing CONFIG_64BIT=y, but actually the config for i586 was incorrect because of that config value being set. Regenerated it with `setarch i386 make oldconfig`.
* the kernel may work OK without WiFi and firmware stuff, make it easy to uninstall it (e.g. when trying to save disk space in a VM)
* sysfsutils is not used in scriptlets, remove it
* symlinks vmlinuz-%{flavour} and initrd-%{flavour}.img have not existed for ages, they were removed lots of time ago in ROSA, there is no sense in trying to delete what does not exist and is never created
* disable Atom ISP as recommended by RussianNeuroMancer because it does not make cameras work on x86 Intel-based tablets where cameras are connected on i2c bus, but makes the camera consome power without working
* enable zswap by default and use the default allocator as in Arch Linux where zswap is enabled by default
https://wiki.archlinux.org/index.php/Zswap
* tune values of sysctls from le9 patch to make it have at least some effect on typical desktop and server systems but avoid too agressive OOM killer on systems with 2 GB RAM and less where OOM killer kills too many process
See discussion and my comments in the thread https://www.linux.org.ru/news/kernel/16052362
* remove not used variant of the patch which did not have any effect
Update existing x86 configs manually
Make an arm64 config based on them instead on the old one which was temporary copypasted from ALT Linux
In most cases I answered to `make ARCH=xxx defconfig` like this:
N/y -> Y
N/m(/y) -> M
Y/n(/m) -> Y
M/n(/y) -> M
But did not enable odd debug.
Probably too much hardware is enabled on arm64.
- rediffed most of patches, renamed files to easify further rediffs by git format-patch
- thanks to abf.io/kernels_stable for some patches for kernel 5.9
- using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much)
- pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD
- dropped patch adding sysctl to disable disk-based swap because it has not found any usage
- bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful
- keeping kernel libc headers in older kernels for now
- dropped building external virtualbox guest modules because they are now included into the mainline kernel
- offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms
- offed building kernel-shredder because it is not buildable on kernel 5.10
- updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0)
It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4.
TODO: update kernel configs
TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
Changelog:
```
$ wget -qO- https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.4.81 | grep ^Date: -A2 | grep -v ^Date: | sort -u
arch: pgtable: define MAX_POSSIBLE_PHYSMEM_BITS where needed
arm64: pgtable: Ensure dirty bit is preserved across pte_wrprotect()
arm64: pgtable: Fix pte_accessible()
arm64: tegra: Wrong AON HSP reg property size
ARM: dts: dra76x: m_can: fix order of clocks
ARM: OMAP2+: Manage MPU state properly for omap_enter_idle_coupled()
ASoC: Intel: Allow for ROM init retry on CNL platforms
ASoC: Intel: Multiple I/O PCM format support for pipe
ASoC: Intel: Skylake: Automatic DMIC format configuration according to information from NHLT
ASoC: Intel: Skylake: Await purge request ack on CNL
ASoC: Intel: Skylake: Enable codec wakeup during chip init
ASoC: Intel: Skylake: Remove superfluous chip initialization
ASoC: Intel: Skylake: Select hda configuration permissively
ASoC: Intel: Skylake: Shield against no-NHLT configurations
batman-adv: set .owner to THIS_MODULE
bnxt_en: fix error return code in bnxt_init_board()
bnxt_en: fix error return code in bnxt_init_one()
bnxt_en: Release PCI regions when DMA mask setup fails during probe.
btrfs: don't access possibly stale fs_info data for printing duplicate device
btrfs: fix lockdep splat when reading qgroup config on mount
btrfs: tree-checker: add missing return after error in root_item
btrfs: tree-checker: add missing returns after data_ref alignment checks
bus: ti-sysc: Fix bogus resetdone warning on enable for cpsw
can: gs_usb: fix endianess problem with candleLight firmware
can: m_can: fix nominal bitiming tseg2 min for version >= 3.1
can: m_can: m_can_open(): remove IRQF_TRIGGER_FALLING from request_threaded_irq()'s flags
cifs: fix a memleak with modefromsid
cxgb4: fix the panic caused by non smac rewrite
dmaengine: pl330: _prep_dma_memcpy: Fix wrong burst size
dmaengine: xilinx_dma: use readl_poll_timeout_atomic variant
efi: EFI_EARLYCON should depend on EFI
efivarfs: revert "fix memory leak in efivarfs_create()"
HID: add HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE for Gamevice devices
HID: Add Logitech Dinovo Edge battery quirk
HID: add support for Sega Saturn
HID: cypress: Support Varmilo Keyboards' media hotkeys
HID: hid-sensor-hub: Fix issue with devices with no report ID
HID: ite: Replace ABS_MISC 120/121 events with touchpad on/off keypresses
HID: logitech-hidpp: Add HIDPP_CONSUMER_VENDOR_KEYS quirk for the Dinovo Edge
HID: uclogic: Add ID for Trust Flex Design Tablet
i40e: Fix removing driver while bare-metal VFs pass traffic
IB/mthca: fix return value of error branch in mthca_init_cq()
ibmvnic: fix call_netdevice_notifiers in do_reset
ibmvnic: fix NULL pointer dereference in ibmvic_reset_crq
ibmvnic: fix NULL pointer dereference in reset_sub_crq_queues
ibmvnic: notify peers when failover and migration happen
Input: i8042 - allow insmod to succeed on devices without an i8042 controller
ipv4: use IS_ENABLED instead of ifdef
irqchip/exiu: Fix the index of fwspec for IRQ type
iwlwifi: mvm: write queue_sync_state only for sync
KVM: arm64: vgic-v3: Drop the reporting of GICR_TYPER.Last for userspace
KVM: PPC: Book3S HV: XIVE: Fix possible oops when accessing ESB page
KVM: x86: Fix split-irqchip vs interrupt injection window request
KVM: x86: handle !lapic_in_kernel case in kvm_cpu_*_extint
Linux 5.4.81
net: dsa: mv88e6xxx: Wait for EEPROM done after HW reset
net: ena: set initial DMA width to avoid intel iommu issue
netfilter: clear skb->next in NF_HOOK_LIST()
nfc: s3fwrn5: use signed integer for parsing GPIO numbers
nvme: free sq/cq dbbuf pointers when dbbuf set fails
optee: add writeback to valid memory type
perf probe: Fix to die_entrypc() returns error correctly
perf stat: Use proper cpu for shadow stats
perf/x86: fix sysfs type mismatches
phy: tegra: xusb: Fix dangling pointer on probe failure
platform/x86: thinkpad_acpi: Send tablet mode switch at wakeup time
platform/x86: toshiba_acpi: Fix the wrong variable assignment
powerpc/64s: Fix allnoconfig build since uaccess flush
proc: don't allow async path resolution of /proc/self components
RDMA/hns: Bugfix for memory window mtpt configuration
RDMA/hns: Fix retry_cnt and rnr_cnt when querying QP
s390/qeth: fix af_iucv notification race
s390/qeth: fix tear down of async TX buffers
s390/qeth: make af_iucv TX notification call more robust
scsi: libiscsi: Fix NOP race condition
scsi: target: iscsi: Fix cmd abort fabric stop race
scsi: ufs: Fix race between shutdown and runtime resume flow
smb3: Avoid Mid pending list corruption
smb3: Call cifs reconnect from demultiplex thread
smb3: Handle error case during offload read path
spi: bcm2835aux: Restore err assignment in bcm2835aux_spi_probe
spi: bcm2835: Fix use-after-free on unbind
spi: bcm-qspi: Fix use-after-free on unbind
staging: ralink-gdma: fix kconfig dependency bug for DMA_RALINK
trace: fix potenial dangerous pointer
USB: core: Change %pK for __user pointers to %px
USB: core: Fix regression in Hercules audio card
usb: gadget: Fix memleak in gadgetfs_fill_super
usb: gadget: f_midi: Fix memleak in f_midi_alloc
USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO built-in usb-audio card
vhost scsi: fix cmd completion race
video: hyperv_fb: Fix the cache type when mapping the VRAM
wireless: Use linux/stddef.h instead of stddef.h
x86/mce: Do not overwrite no_way_out if mce_end() fails
x86/resctrl: Add necessary kernfs_put() calls to prevent refcount leak
x86/resctrl: Remove superfluous kernfs_get() calls to prevent refcount leak
x86/speculation: Fix prctl() when spectre_v2_user={seccomp,prctl},ibpb
x86/xen: don't unbind uninitialized lock_kicker_irq
xtensa: uaccess: Add missing __user to strncpy_from_user() prototype
```
```
DEBUG: + make ARCH=i586 oldconfig
DEBUG: Makefile:583: arch/i586/Makefile: No such file or directory
DEBUG: make: *** No rule to make target 'arch/i586/Makefile'. Stop.
DEBUG: + sed -i s/CONFIG_64BIT=y// arch/x86/configs/i586_defconfig-generic
DEBUG: sed: can't read arch/x86/configs/i586_defconfig-generic: No such file or directory
```
Commit 59b214f0 changed i586 to i686 as we changed in RPM,
but forgot to rename config:
error: Bad file: /builddir/build/SOURCES/kernel-i686.config: No such file or directory
But this spec is still supported on rosa2016.1, let's just use i586 here for now