OSDN Git Service

[update] : alter-kenrel
authorhayao <shun819.mail@gmail.com>
Sat, 8 Aug 2020 11:37:09 +0000 (20:37 +0900)
committerhayao <shun819.mail@gmail.com>
Sat, 8 Aug 2020 11:37:09 +0000 (20:37 +0900)
19 files changed:
alter-kernel/x86_64/linux-ck/.SRCINFO
alter-kernel/x86_64/linux-ck/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
alter-kernel/x86_64/linux-ck/0002-PCI-EDR-Log-only-ACPI_NOTIFY_DISCONNECT_RECOVER-even.patch
alter-kernel/x86_64/linux-ck/0003-iwlwifi-Make-some-Killer-Wireless-AC-1550-cards-work.patch [deleted file]
alter-kernel/x86_64/linux-ck/0003-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch [moved from alter-kernel/x86_64/linux-ck/0004-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch with 99% similarity]
alter-kernel/x86_64/linux-ck/PKGBUILD
alter-kernel/x86_64/linux-ck/config
alter-kernel/x86_64/linux-ck/fix_ck1_for_5.7.14.patch [new file with mode: 0644]
alter-kernel/x86_64/linux-lqx/.SRCINFO
alter-kernel/x86_64/linux-lqx/PKGBUILD
alter-kernel/x86_64/linux-rt-lts/.SRCINFO
alter-kernel/x86_64/linux-rt-lts/0002-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch [deleted file]
alter-kernel/x86_64/linux-rt-lts/PKGBUILD
alter-kernel/x86_64/linux-rt-lts/config
alter-kernel/x86_64/linux-xanmod-lts/.SRCINFO
alter-kernel/x86_64/linux-xanmod-lts/PKGBUILD
alter-kernel/x86_64/linux-xanmod/.SRCINFO
alter-kernel/x86_64/linux-xanmod/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER.patch [new file with mode: 0644]
alter-kernel/x86_64/linux-xanmod/PKGBUILD

index 99ff2df..c02c276 100644 (file)
@@ -1,5 +1,5 @@
 pkgbase = linux-ck
-       pkgver = 5.7.10
+       pkgver = 5.7.14
        pkgrel = 1
        url = https://wiki.archlinux.org/index.php/Linux-ck
        arch = x86_64
@@ -8,8 +8,8 @@ pkgbase = linux-ck
        makedepends = kmod
        makedepends = libelf
        options = !strip
-       source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.7.10.tar.xz
-       source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.7.10.tar.sign
+       source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.7.14.tar.xz
+       source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.7.14.tar.sign
        source = config
        source = enable_additional_cpu_optimizations-20200615.tar.gz::https://github.com/graysky2/kernel_gcc_patch/archive/20200615.tar.gz
        source = http://ck.kolivas.org/patches/5.0/5.7/5.7-ck1/patch-5.7-ck1.xz
@@ -18,22 +18,22 @@ pkgbase = linux-ck
        source = 0000-sphinx-workaround.patch
        source = 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
        source = 0002-PCI-EDR-Log-only-ACPI_NOTIFY_DISCONNECT_RECOVER-even.patch
-       source = 0003-iwlwifi-Make-some-Killer-Wireless-AC-1550-cards-work.patch
-       source = 0004-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch
+       source = 0003-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch
+       source = fix_ck1_for_5.7.14.patch
        validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
        validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
-       sha256sums = 4725430c65b7573b7d26c402dd9ffdad18529a302ce2e342c849e7800f193d44
-       sha256sums = SKIP
-       sha256sums = ed60b20ee841e16038da0d145fbf3f53fac94122c4001d6cd03abe64e9e760f6
-       sha256sums = 278fe9ffb29d92cc5220e7beac34a8e3a2006e714d16a21a0427069f9634af90
-       sha256sums = e4a201e984cf229b66fbab713c49fa3a0e0e8f238f2216e503f9452a7a7a5e06
-       sha256sums = 5a08ac04975fe784d16d6c8ec2be733c73cdcfc19795f5c7b97d7a1aa7f12328
-       sha256sums = 961ed94b8d905f1e901cacb08d253c4170af0a25828111b7558d9c874e923558
-       sha256sums = 8cb21e0b3411327b627a9dd15b8eb773295a0d2782b1a41b2a8839d1b2f5778c
-       sha256sums = f8f16c971882312c91618e4305b63f7aa2265af12208a902f87b6d3c1b1cf6ee
-       sha256sums = a0bd98f1056d06126532350a55f633c92a43e3adb94d96c94f4d22f54e4d9807
-       sha256sums = 4c5b15c39e7d8f7b8c0fbee16bcc3992cecf38bb790df494b411a57366e3b677
-       sha256sums = 18f22c5c095049cf3eebe4ec2c63e659dd35af6e49d2092865643d6ae2f7c411
+       b2sums = 80e7c0d398f76d136463572ad435b444a9a0dc92a6d548ad4a13dc65fde7719adc7fc35e1e2e0319a8b0c61187f33007bec69ead2c01dd0b176803e913718ecc
+       b2sums = SKIP
+       b2sums = 2377f8e52d8efe69c2b65269d35ecec455fb7efef74dd85cfa014b87e2df088d618ed13e16e093e31442879a476c33c3f833265d4254ce60331b41de4fab083f
+       b2sums = c8d0697f99fe6105815217b8ec059d8f587415ea8dd2b88a65e1087feedf697341a64cd56810fde9e7aeada79125fc8235faccc7e7b06492c099e27a8abbe99c
+       b2sums = 29b2530e91a7c0f75c47d75361a94ec92fec398cef1b3e213e97c8f9e0ed210711c4c63ae7717f59273105a83e30397cbd5b7252cb94c06d9b328a24c70ad444
+       b2sums = 84c9438120100bb5b21122a29344b9e818514d94a31b6d57519a6e25385cb7f91a7f87c930da55c828c7a4330959a94b8a3a3d56773c46b335e1380cd00180b1
+       b2sums = 5dfb38f2096f27cf436afa6ac41d432f4e23295deb26d12146b31c57db85a8be59819f08f9c5197183c26c557b32e967edded22206c1abb9b89b83e61450ec5c
+       b2sums = b4e1377d97ad7e8144d6e55b6d43731e3271a5aec65b65ca6d81026a95f15f549b9303fb3c6f492099ca691e3f65f4cf7f0c3aa742df03b396d7f6d81813aa95
+       b2sums = cfac70bc43305a6dda6b812092da4e947bf91866a24fa62ecad40727e39cf9a54cc41fae0f9d6477e1b37731e39bce12a737ea421056a650b7f14236a8b3f870
+       b2sums = 3fb9b66e85cf1a6921dab85dc831a5f1a97e61bbbec3bcfe191962e52da8481876fe6599f7884265e9a5d9773baa31ae3770e954672f75a7cf62b62fdb9b985a
+       b2sums = b7c825b9606dcb10a68a1efabfe1b8eeb8e2b0a1737fd0a263475729501095f877b00f5132c0ad3a2a9c1515572145f5dc7cbd290ded7be2abbc5210015604df
+       b2sums = 5d4275b060aac58206c5a76b554168dbcb95b2e469bdad6de78c8815d34eb970483f36a18b7343121dc70358c447d6fd66e30f64cf8c429656816aa8dd42db38
 
 pkgname = linux-ck
        pkgdesc = The Linux-ck kernel and modules with the ck1 patchset featuring MuQSS CPU scheduler
@@ -42,11 +42,11 @@ pkgname = linux-ck
        depends = initramfs
        optdepends = crda: to set the correct wireless channels of your country
        optdepends = linux-firmware: firmware images needed for some devices
-       provides = linux-ck=5.7.10
+       provides = linux-ck=5.7.14
 
 pkgname = linux-ck-headers
        pkgdesc = Headers and scripts for building modules for Linux-ck kernel
        depends = linux-ck
-       provides = linux-ck-headers=5.7.10
-       provides = linux-headers=5.7.10
+       provides = linux-ck-headers=5.7.14
+       provides = linux-headers=5.7.14
 
index a40d2c2..8e0f719 100644 (file)
@@ -1,4 +1,4 @@
-From c701fa45808d40c6ce027c31c3e318bb678cb5b3 Mon Sep 17 00:00:00 2001
+From cf305eab76eb76eb1dfc7038ec3d738f57249b22 Mon Sep 17 00:00:00 2001
 From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
 Date: Mon, 16 Sep 2019 04:53:20 +0200
 Subject: [PATCH 1/5] ZEN: Add sysctl and CONFIG to disallow unprivileged
index 741e8e7..2df2090 100644 (file)
@@ -1,4 +1,4 @@
-From 18693ce191f146cea8dd6299f40e3db3a9367e82 Mon Sep 17 00:00:00 2001
+From a0df6b44e7df165a1108e23d4e27e91c30e69a3b Mon Sep 17 00:00:00 2001
 From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
 Date: Wed, 15 Apr 2020 17:38:32 -0700
 Subject: [PATCH 2/5] PCI/EDR: Log only ACPI_NOTIFY_DISCONNECT_RECOVER events
diff --git a/alter-kernel/x86_64/linux-ck/0003-iwlwifi-Make-some-Killer-Wireless-AC-1550-cards-work.patch b/alter-kernel/x86_64/linux-ck/0003-iwlwifi-Make-some-Killer-Wireless-AC-1550-cards-work.patch
deleted file mode 100644 (file)
index 40e22d8..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-From 3639fafc8d7ebd9bdb0365c54fdb57745c47f264 Mon Sep 17 00:00:00 2001
-From: Alessio Bonfiglio <alessio.bonfiglio@mail.polimi.it>
-Date: Thu, 2 Jul 2020 17:05:52 +0200
-Subject: [PATCH 3/5] iwlwifi: Make some Killer Wireless-AC 1550 cards working
- again
-
-Fix the regression introduced by commit c8685937d07f ("iwlwifi: move pu devices to new table") by add the ids and the configurations of two missing Killer 1550 cards in order to make these cards being configured and working correctly again (following the new table convention).
-Resolve bug 208141 ("Wireless ac 9560 not working kernel 5.7.2", https://bugzilla.kernel.org/show_bug.cgi?id=208141).
-
-Fixes: c8685937d07f ("iwlwifi: move pu devices to new table")
-Signed-off-by: Alessio Bonfiglio <alessio.bonfiglio@mail.polimi.it>
----
- drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
-index 29971c25dba4..9ea3e5634672 100644
---- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
-+++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
-@@ -577,6 +577,8 @@ static const struct iwl_dev_info iwl_dev_info_table[] = {
-       IWL_DEV_INFO(0x30DC, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name),
-       IWL_DEV_INFO(0x31DC, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name),
-       IWL_DEV_INFO(0x31DC, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name),
-+      IWL_DEV_INFO(0xA370, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name),
-+      IWL_DEV_INFO(0xA370, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name),
-       IWL_DEV_INFO(0x271C, 0x0214, iwl9260_2ac_cfg, iwl9260_1_name),
--- 
-2.27.0
-
@@ -1,7 +1,7 @@
-From d14a96d0a5e05d99c5fe083c49d33197c215dbe1 Mon Sep 17 00:00:00 2001
+From 7c4142e5f1bd5a4746e50aa8db163778daa8aa87 Mon Sep 17 00:00:00 2001
 From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
 Date: Wed, 15 Jul 2020 22:42:07 +0200
-Subject: [PATCH 4/5] virt: vbox: Add support for the new
+Subject: [PATCH 3/5] virt: vbox: Add support for the new
  VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl
 
 https://lore.kernel.org/patchwork/cover/1270301/
index 0f03af6..6c0b37f 100644 (file)
@@ -64,7 +64,7 @@ _localmodcfg=
 ### IMPORTANT: Do no edit below this line unless you know what you're doing
 
 pkgbase=linux-ck
-pkgver=5.7.10
+pkgver=5.7.14
 pkgrel=1
 _ckpatchversion=1
 arch=(x86_64)
@@ -86,31 +86,34 @@ source=(
   0000-sphinx-workaround.patch
   0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
   0002-PCI-EDR-Log-only-ACPI_NOTIFY_DISCONNECT_RECOVER-even.patch
-  0003-iwlwifi-Make-some-Killer-Wireless-AC-1550-cards-work.patch
-  0004-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch
+  0003-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch
+  fix_ck1_for_5.7.14.patch
 )
 validpgpkeys=(
   'ABAF11C65A2970B130ABE3C479BE3E4300411886'  # Linus Torvalds
   '647F28654894E3BD457199BE38DBBDC86092693E'  # Greg Kroah-Hartman
 )
-sha256sums=('4725430c65b7573b7d26c402dd9ffdad18529a302ce2e342c849e7800f193d44'
-            'SKIP'
-            'ed60b20ee841e16038da0d145fbf3f53fac94122c4001d6cd03abe64e9e760f6'
-            '278fe9ffb29d92cc5220e7beac34a8e3a2006e714d16a21a0427069f9634af90'
-            'e4a201e984cf229b66fbab713c49fa3a0e0e8f238f2216e503f9452a7a7a5e06'
-            '5a08ac04975fe784d16d6c8ec2be733c73cdcfc19795f5c7b97d7a1aa7f12328'
-            '961ed94b8d905f1e901cacb08d253c4170af0a25828111b7558d9c874e923558'
-            '8cb21e0b3411327b627a9dd15b8eb773295a0d2782b1a41b2a8839d1b2f5778c'
-            'f8f16c971882312c91618e4305b63f7aa2265af12208a902f87b6d3c1b1cf6ee'
-            'a0bd98f1056d06126532350a55f633c92a43e3adb94d96c94f4d22f54e4d9807'
-            '4c5b15c39e7d8f7b8c0fbee16bcc3992cecf38bb790df494b411a57366e3b677'
-            '18f22c5c095049cf3eebe4ec2c63e659dd35af6e49d2092865643d6ae2f7c411')
+b2sums=('80e7c0d398f76d136463572ad435b444a9a0dc92a6d548ad4a13dc65fde7719adc7fc35e1e2e0319a8b0c61187f33007bec69ead2c01dd0b176803e913718ecc'
+        'SKIP'
+        '2377f8e52d8efe69c2b65269d35ecec455fb7efef74dd85cfa014b87e2df088d618ed13e16e093e31442879a476c33c3f833265d4254ce60331b41de4fab083f'
+        'c8d0697f99fe6105815217b8ec059d8f587415ea8dd2b88a65e1087feedf697341a64cd56810fde9e7aeada79125fc8235faccc7e7b06492c099e27a8abbe99c'
+        '29b2530e91a7c0f75c47d75361a94ec92fec398cef1b3e213e97c8f9e0ed210711c4c63ae7717f59273105a83e30397cbd5b7252cb94c06d9b328a24c70ad444'
+        '84c9438120100bb5b21122a29344b9e818514d94a31b6d57519a6e25385cb7f91a7f87c930da55c828c7a4330959a94b8a3a3d56773c46b335e1380cd00180b1'
+        '5dfb38f2096f27cf436afa6ac41d432f4e23295deb26d12146b31c57db85a8be59819f08f9c5197183c26c557b32e967edded22206c1abb9b89b83e61450ec5c'
+        'b4e1377d97ad7e8144d6e55b6d43731e3271a5aec65b65ca6d81026a95f15f549b9303fb3c6f492099ca691e3f65f4cf7f0c3aa742df03b396d7f6d81813aa95'
+        'cfac70bc43305a6dda6b812092da4e947bf91866a24fa62ecad40727e39cf9a54cc41fae0f9d6477e1b37731e39bce12a737ea421056a650b7f14236a8b3f870'
+        '3fb9b66e85cf1a6921dab85dc831a5f1a97e61bbbec3bcfe191962e52da8481876fe6599f7884265e9a5d9773baa31ae3770e954672f75a7cf62b62fdb9b985a'
+        'b7c825b9606dcb10a68a1efabfe1b8eeb8e2b0a1737fd0a263475729501095f877b00f5132c0ad3a2a9c1515572145f5dc7cbd290ded7be2abbc5210015604df'
+        '5d4275b060aac58206c5a76b554168dbcb95b2e469bdad6de78c8815d34eb970483f36a18b7343121dc70358c447d6fd66e30f64cf8c429656816aa8dd42db38')
 
 export KBUILD_BUILD_HOST=archlinux
 export KBUILD_BUILD_USER=$pkgbase
 export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
 
 prepare() {
+  # changes from 5.7.13 to 5.7.14 breaks ck1
+  patch -Np1 -i fix_ck1_for_5.7.14.patch
+
   cd linux-${pkgver}
 
   echo "Setting version..."
index 8df9ab8..1014972 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.7.6-arch1 Kernel Configuration
+# Linux/x86 5.7.11-arch1 Kernel Configuration
 #
 
 #
@@ -1621,7 +1621,10 @@ CONFIG_VLAN_8021Q_MVRP=y
 # CONFIG_DECNET is not set
 CONFIG_LLC=m
 CONFIG_LLC2=m
-# CONFIG_ATALK is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
 # CONFIG_X25 is not set
 # CONFIG_LAPB is not set
 CONFIG_PHONET=m
diff --git a/alter-kernel/x86_64/linux-ck/fix_ck1_for_5.7.14.patch b/alter-kernel/x86_64/linux-ck/fix_ck1_for_5.7.14.patch
new file mode 100644 (file)
index 0000000..5766d53
--- /dev/null
@@ -0,0 +1,13 @@
+--- a/patch-5.7-ck1    2020-08-07 05:36:15.476245061 -0400
++++ b/patch-5.7-ck1    2020-08-07 05:35:31.961907618 -0400
+@@ -12805,9 +12805,9 @@ index a5221abb4594..9a9287cb2a37 100644
+ --- a/kernel/time/timer.c
+ +++ b/kernel/time/timer.c
+ @@ -43,6 +43,7 @@
+- #include <linux/sched/debug.h>
+  #include <linux/slab.h>
+  #include <linux/compat.h>
++ #include <linux/random.h>
+ +#include <linux/freezer.h>
+  
+  #include <linux/uaccess.h>
index 5e663a0..547afc9 100644 (file)
@@ -1,6 +1,6 @@
 pkgbase = linux-lqx
        pkgdesc = Liquorix Kernel
-       pkgver = 5.7.10_1
+       pkgver = 5.7.14_1
        pkgrel = 1
        url = http://liquorix.net/
        arch = x86_64
@@ -10,15 +10,16 @@ pkgbase = linux-lqx
        makedepends = bc
        makedepends = libelf
        makedepends = cpio
+       makedepends = zstd
        options = !strip
        source = https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.7.tar.xz
        source = https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.7.tar.sign
-       source = https://github.com/damentz/liquorix-package/archive/5.7-14.tar.gz
+       source = https://github.com/damentz/liquorix-package/archive/5.7-19.tar.gz
        validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
        validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
        sha512sums = 45bde01593f6147c8c169b9e46b4b56eee998142552ae0ff82f1dd21b1fd54f3b32f6283f6bd77ea717d374672167849e468c157f235d2f12f7d7816e4623bf6
        sha512sums = SKIP
-       sha512sums = 5ff91f8809831bb3c20629475d722525c869965a95f85efe12b021f93e4cf9c21bfbfea075ec63529412440d67d1d7a98261418e17ce7dac6db7e46323a26977
+       sha512sums = eda1987bee73db31776822a4243ccaacf2df2ef5ee71131f95295d8aafd216f968121f2480c81d67a99068cdc87f0a37e66c04bbf0c70bf9496deb2bb7fb4e7c
 
 pkgname = linux-lqx
        pkgdesc = The Liquorix Kernel kernel and modules
index a5bfc75..c45ddfe 100644 (file)
@@ -55,17 +55,17 @@ _htmldocs_enable=
 _major=5.7
 _srcname=linux-${_major}
 _lqxpatchname=liquorix-package
-_lqxpatchrel=14
+_lqxpatchrel=19
 _lqxpatchver=${_lqxpatchname}-${_major}-${_lqxpatchrel}
 pkgbase=linux-lqx
-pkgver=5.7.10_1
+pkgver=5.7.14_1
 pkgrel=1
 pkgdesc='Liquorix Kernel'
 arch=('x86_64')
 url="http://liquorix.net/"
 license=('GPL2')
 options=('!strip')
-makedepends=('kmod' 'inetutils' 'bc' 'libelf' 'cpio')
+makedepends=('kmod' 'inetutils' 'bc' 'libelf' 'cpio' 'zstd')
 
 if [ -n "$_htmldocs_enable" ]; then
     makedepends+=('python-sphinx' 'python-sphinx_rtd_theme'
@@ -348,7 +348,7 @@ done
 
 sha512sums=('45bde01593f6147c8c169b9e46b4b56eee998142552ae0ff82f1dd21b1fd54f3b32f6283f6bd77ea717d374672167849e468c157f235d2f12f7d7816e4623bf6'
             'SKIP'
-            '5ff91f8809831bb3c20629475d722525c869965a95f85efe12b021f93e4cf9c21bfbfea075ec63529412440d67d1d7a98261418e17ce7dac6db7e46323a26977')
+            'eda1987bee73db31776822a4243ccaacf2df2ef5ee71131f95295d8aafd216f968121f2480c81d67a99068cdc87f0a37e66c04bbf0c70bf9496deb2bb7fb4e7c')
 
 validpgpkeys=(
     'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linux Torvalds
index b6aa999..82bbd7e 100644 (file)
@@ -1,6 +1,6 @@
 pkgbase = linux-rt-lts
        pkgdesc = Linux RT LTS
-       pkgver = 5.4.52.31
+       pkgver = 5.4.54.32
        pkgrel = 1
        url = https://wiki.linuxfoundation.org/realtime/start
        arch = x86_64
@@ -15,31 +15,28 @@ pkgbase = linux-rt-lts
        makedepends = python-sphinx_rtd_theme
        makedepends = xmlto
        options = !strip
-       source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.4.52.tar.xz
-       source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.4.52.tar.sign
-       source = https://www.kernel.org/pub/linux/kernel/projects/rt/5.4/older/patch-5.4.52-rt31.patch.xz
-       source = https://www.kernel.org/pub/linux/kernel/projects/rt/5.4/older/patch-5.4.52-rt31.patch.sign
+       source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.4.54.tar.xz
+       source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.4.54.tar.sign
+       source = https://www.kernel.org/pub/linux/kernel/projects/rt/5.4/older/patch-5.4.54-rt32.patch.xz
+       source = https://www.kernel.org/pub/linux/kernel/projects/rt/5.4/older/patch-5.4.54-rt32.patch.sign
        source = config
        source = 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
-       source = 0002-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch
        source = sphinx-workaround.patch
        validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
        validpgpkeys = 5ED9A48FC54C0A22D1D0804CEBC26CDB5A56DE73
-       sha512sums = ed0eac6cc07f9e3bc455c82f1594fb0a5310430d3abc3cc2058e1c75af7608aa1b6f70790573873d7e9e4fafdd17cd0bdd5624c6eed5d51dd1da12a873d78a8e
+       sha512sums = 1cf9e16648c4941637b009800270e9bd06445d9762aefdad3c3d02dbc76b1321f214fc5ea79ec5d6dc6d4e6dd86ccf19feca8edd77ffe0862da1ec16bfd98a4d
        sha512sums = SKIP
-       sha512sums = a6606769f2e22866f81a9003f4dbd7d9c77d4b9fd0defba0065cc0817950c584f7f159276a3dc6c034d17689f2c318e181d0486f570e81951dae29c1bd3b6860
+       sha512sums = 76f0e655989cd22275e4a8b6edaa5c93b7987672f4614b95f1c9244a9745ff42ee3ffe43987cefbbf21f8be63806fc7a562fc9136479a5e7d84e82169486c0db
        sha512sums = SKIP
-       sha512sums = aae41969d4ee93cdce74d39f24d198c9f3f34db98d310e9d2a62b1c9e4cb077eec5842a21903d0a91597bb9a26e3e0f57dc466dbcfd10c1794136da9bda69000
+       sha512sums = 05a8063f44147f6a43d8612968b7bca169f7ddf3fc74509980f36b36fbd377692522ce040205e21c6b44b8d2e3175b2c8a4fc548071e5a242a53bbe7ec9806d6
        sha512sums = 5f196378d50dd737d727e424d8f31b7fa8a6b92ba88f0a1467ef79bc37a097160da1fc1fd5cfb4b8983f36f2afdf27eb229ec61b35a15ac2343d660eb416a230
-       sha512sums = 8b71f10cb9bd1d17184741b84369d73634b5569364b21c3cf3192d8cd923c04b3790cd158b9564425160b28522d4f91afac032185de59656f17d8e636138c571
        sha512sums = 8081673a6594e5fc2fddc98fa434e99817aa822f7136d3c14c8d465fa7b93c9ac5d3a4150a5b632e25b1dc76a814dfa19d8aede37d58b935db288465b6585c58
-       b2sums = 32995d32bfc9ee5d6a5669941897890fc765765f8a141740486f4ad6000fcdd4e4c7f3e9c8fdc7357fba70947cce99d493e8657321c0c836c4930075eacec7eb
+       b2sums = 69d321681db0fd6e459c5b8ec2aa3a2dd4aaa130455b3df6eb368e33d5514329a1485b9cba2875f7f3f2b53a778ec76ca9b84df127947d4d9323e3e105437463
        b2sums = SKIP
-       b2sums = 832df7913de6c3b7fbe7857720b0b2e9e9b1b90f21bbd975ef18acb6c3c412a4eb5705bdddcb23cebca2009145f70705ea004b3fbc32cdb28e1cd2ddc4538ad5
+       b2sums = fdc72ca2d2da6116e95f3eb7cb27b94d59707251565bc01257537eda773fe27cb562806466a35ab1d08e0f0c517b1418716acedb528ff894d03cf0add6ba1504
        b2sums = SKIP
-       b2sums = 610b75be2e5c7bbaea4a59d44be3b95b6ca8d267629e2aa53114aee0851161add3a11923104daeed7bba1f2402ff67f0e0ccf2c66b9d30289638325258275193
+       b2sums = aa5939657bbcd961a9b459b252b643ea4bca87091414d426b3d14570f0f5c911e7b0f36aae1924a8763a055781fde03270287d8623da6e0db7582027975e4593
        b2sums = 3c3be0e85347bf3825f855a0a399ed60497cd0376f4b8ee1fe89df9bd90fe01cdd97fb3f4c4eea3918ba3769fc79961b6c58ba997326cbdf9dd7fb9540d8f6d6
-       b2sums = 28a9762608162a0a5d83fd114a18224015af8159ba9f55ccf1ecab91578fc212eba27bc9925d1894d7464fae1e4d5edf2e017a48122496daa780516af1ce9fd5
        b2sums = 657fd0e70d29eee5518c27af7eec73a18f399215d2a21cf7b92c9914bee16d1e0981c00065ccb12f0534e57af906af63b17221c65a61146ec8894c88420fa56c
 
 pkgname = linux-rt-lts
diff --git a/alter-kernel/x86_64/linux-rt-lts/0002-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch b/alter-kernel/x86_64/linux-rt-lts/0002-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch
deleted file mode 100644 (file)
index 2a1486e..0000000
+++ /dev/null
@@ -1,784 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
-Date: Wed, 15 Jul 2020 22:42:07 +0200
-Subject: [PATCH] virt: vbox: Add support for the new
- VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl
-
-https://lore.kernel.org/patchwork/cover/1270301/
-
-Needed for https://bugs.archlinux.org/task/67253
-
-Squashed commit of the following:
-
-commit 0d7bec556896815f4920a5ed87339732c697175c
-Author: Hans de Goede <hdegoede@redhat.com>
-Date:   Thu Jul 9 14:08:58 2020 +0200
-
-    virt: vbox: Fix some comments which talk about the "session spinlock"
-
-    The session lock is a mutex, not a spinlock, fix the comments to match.
-
-    Acked-by: Arnd Bergmann <arnd@arndb.de>
-    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-
-commit fed91350029e0c3bf626bd55a148e766587ec439
-Author: Hans de Goede <hdegoede@redhat.com>
-Date:   Thu Jul 9 14:08:57 2020 +0200
-
-    virt: vbox: Log unknown ioctl requests as error
-
-    Every now and then upstream adds new ioctls without notifying us,
-    log unknown ioctl requests as an error to catch these.
-
-    Acked-by: Arnd Bergmann <arnd@arndb.de>
-    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-
-commit 245d06f4c1b8f84cde07d14c09296a4fe90a26f0
-Author: Hans de Goede <hdegoede@redhat.com>
-Date:   Thu Jul 9 14:08:56 2020 +0200
-
-    virt: vbox: Add a few new vmmdev request types to the userspace whitelist
-
-    Upstream VirtualBox has defined and is using a few new request types for
-    vmmdev requests passed through /dev/vboxguest to the hypervisor.
-
-    Add the defines for these to vbox_vmmdev_types.h and add add them to the
-    whitelists of vmmdev requests which userspace is allowed to make.
-
-    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1789545
-    Acked-by: Arnd Bergmann <arnd@arndb.de>
-    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-
-commit 2f24f5446915322bbbb1ccf4ee2297512feab942
-Author: Hans de Goede <hdegoede@redhat.com>
-Date:   Thu Jul 9 14:08:55 2020 +0200
-
-    virt: vbox: Add support for the new VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl
-
-    Add support for the new VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl, this
-    is necessary for automatic resizing of the guest resolution to match the
-    VM-window size to work with the new VMSVGA virtual GPU which is now the
-    new default in VirtualBox.
-
-    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1789545
-    Acked-by: Arnd Bergmann <arnd@arndb.de>
-    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-
-commit 2fc9822453e8dd215765cd2b28e5e6e26338829e
-Author: Hans de Goede <hdegoede@redhat.com>
-Date:   Thu Jul 9 14:08:54 2020 +0200
-
-    virt: vbox: Add vbg_set_host_capabilities() helper function
-
-    Add vbg_set_host_capabilities() helper function,  this is a preparation
-    patch for adding support for the VBGL_IOCTL_GUEST_CAPS_ACQUIRE ioctl.
-
-    Acked-by: Arnd Bergmann <arnd@arndb.de>
-    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-
-commit 1594daf929c8691849c00e49e4a1ed977048addc
-Author: Hans de Goede <hdegoede@redhat.com>
-Date:   Thu Jul 9 14:08:53 2020 +0200
-
-    virt: vbox: Rename guest_caps struct members to set_guest_caps
-
-    Rename guest_caps[_tracker] struct members to set_guest_caps[_tracker]
-    this is a preparation patch for adding support for the
-    VBGL_IOCTL_GUEST_CAPS_ACQUIRE ioctl.
-
-    Acked-by: Arnd Bergmann <arnd@arndb.de>
-    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-
-commit d7f3b7cec66d171cf5194ad37f647f4562da6ccc
-Author: Hans de Goede <hdegoede@redhat.com>
-Date:   Thu Jul 9 14:08:52 2020 +0200
-
-    virt: vbox: Fix guest capabilities mask check
-
-    Check the passed in capabilities against VMMDEV_GUEST_CAPABILITIES_MASK
-    instead of against VMMDEV_EVENT_VALID_EVENT_MASK.
-    This tightens the allowed mask from 0x7ff to 0x7.
-
-    Fixes: 0ba002bc4393 ("virt: Add vboxguest driver for Virtual Box Guest integration")
-    Cc: stable@vger.kernel.org
-    Acked-by: Arnd Bergmann <arnd@arndb.de>
-    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-
-commit f6694fa90e2183874def2d022d097795e2269a15
-Author: Hans de Goede <hdegoede@redhat.com>
-Date:   Thu Jul 9 14:08:51 2020 +0200
-
-    virt: vbox: Fix VBGL_IOCTL_VMMDEV_REQUEST_BIG and _LOG req numbers to match upstream
-
-    Until this commit the mainline kernel version (this version) of the
-    vboxguest module contained a bug where it defined
-    VBGL_IOCTL_VMMDEV_REQUEST_BIG and VBGL_IOCTL_LOG using
-    _IOC(_IOC_READ | _IOC_WRITE, 'V', ...) instead of
-    _IO(V, ...) as the out of tree VirtualBox upstream version does.
-
-    Since the VirtualBox userspace bits are always built against VirtualBox
-    upstream's headers, this means that so far the mainline kernel version
-    of the vboxguest module has been failing these 2 ioctls with -ENOTTY.
-    I guess that VBGL_IOCTL_VMMDEV_REQUEST_BIG is never used causing us to
-    not hit that one and sofar the vboxguest driver has failed to actually
-    log any log messages passed it through VBGL_IOCTL_LOG.
-
-    This commit changes the VBGL_IOCTL_VMMDEV_REQUEST_BIG and VBGL_IOCTL_LOG
-    defines to match the out of tree VirtualBox upstream vboxguest version,
-    while keeping compatibility with the old wrong request defines so as
-    to not break the kernel ABI in case someone has been using the old
-    request defines.
-
-    Fixes: f6ddd094f579 ("virt: Add vboxguest driver for Virtual Box Guest integration UAPI")
-    Cc: stable@vger.kernel.org
-    Acked-by: Arnd Bergmann <arnd@arndb.de>
-    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
-    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/virt/vboxguest/vboxguest_core.c  | 272 +++++++++++++++++++----
- drivers/virt/vboxguest/vboxguest_core.h  |  38 +++-
- drivers/virt/vboxguest/vboxguest_linux.c |   3 +-
- drivers/virt/vboxguest/vboxguest_utils.c |   1 +
- drivers/virt/vboxguest/vmmdev.h          |   2 +
- include/linux/vbox_utils.h               |   1 +
- include/uapi/linux/vbox_vmmdev_types.h   |   3 +
- include/uapi/linux/vboxguest.h           |  28 ++-
- 8 files changed, 294 insertions(+), 54 deletions(-)
-
-diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c
-index 2307b0329aec..f449fc366cf3 100644
---- a/drivers/virt/vboxguest/vboxguest_core.c
-+++ b/drivers/virt/vboxguest/vboxguest_core.c
-@@ -558,7 +558,7 @@ static int vbg_reset_host_event_filter(struct vbg_dev *gdev,
-  * Changes the event filter mask for the given session.
-  *
-  * This is called in response to VBG_IOCTL_CHANGE_FILTER_MASK as well as to
-- * do session cleanup. Takes the session spinlock.
-+ * do session cleanup. Takes the session mutex.
-  *
-  * Return: 0 or negative errno value.
-  * @gdev:                     The Guest extension device.
-@@ -661,78 +661,205 @@ static int vbg_reset_host_capabilities(struct vbg_dev *gdev)
- }
- /**
-- * Sets the guest capabilities for a session. Takes the session spinlock.
-+ * Set guest capabilities on the host.
-+ * Must be called with gdev->session_mutex hold.
-+ * Return: 0 or negative errno value.
-+ * @gdev:                     The Guest extension device.
-+ * @session:                  The session.
-+ * @session_termination:      Set if we're called by the session cleanup code.
-+ */
-+static int vbg_set_host_capabilities(struct vbg_dev *gdev,
-+                                   struct vbg_session *session,
-+                                   bool session_termination)
-+{
-+      struct vmmdev_mask *req;
-+      u32 caps;
-+      int rc;
-+
-+      WARN_ON(!mutex_is_locked(&gdev->session_mutex));
-+
-+      caps = gdev->acquired_guest_caps | gdev->set_guest_caps_tracker.mask;
-+
-+      if (gdev->guest_caps_host == caps)
-+              return 0;
-+
-+      /* On termination the requestor is the kernel, as we're cleaning up. */
-+      req = vbg_req_alloc(sizeof(*req), VMMDEVREQ_SET_GUEST_CAPABILITIES,
-+                          session_termination ? VBG_KERNEL_REQUEST :
-+                                                session->requestor);
-+      if (!req) {
-+              gdev->guest_caps_host = U32_MAX;
-+              return -ENOMEM;
-+      }
-+
-+      req->or_mask = caps;
-+      req->not_mask = ~caps;
-+      rc = vbg_req_perform(gdev, req);
-+      vbg_req_free(req, sizeof(*req));
-+
-+      gdev->guest_caps_host = (rc >= 0) ? caps : U32_MAX;
-+
-+      return vbg_status_code_to_errno(rc);
-+}
-+
-+/**
-+ * Acquire (get exclusive access) guest capabilities for a session.
-+ * Takes the session mutex.
-+ * Return: 0 or negative errno value.
-+ * @gdev:                     The Guest extension device.
-+ * @session:                  The session.
-+ * @flags:                    Flags (VBGL_IOC_AGC_FLAGS_XXX).
-+ * @or_mask:                  The capabilities to add.
-+ * @not_mask:                 The capabilities to remove.
-+ * @session_termination:      Set if we're called by the session cleanup code.
-+ *                            This tweaks the error handling so we perform
-+ *                            proper session cleanup even if the host
-+ *                            misbehaves.
-+ */
-+static int vbg_acquire_session_capabilities(struct vbg_dev *gdev,
-+                                          struct vbg_session *session,
-+                                          u32 or_mask, u32 not_mask,
-+                                          u32 flags, bool session_termination)
-+{
-+      unsigned long irqflags;
-+      bool wakeup = false;
-+      int ret = 0;
-+
-+      mutex_lock(&gdev->session_mutex);
-+
-+      if (gdev->set_guest_caps_tracker.mask & or_mask) {
-+              vbg_err("%s error: cannot acquire caps which are currently set\n",
-+                      __func__);
-+              ret = -EINVAL;
-+              goto out;
-+      }
-+
-+      /*
-+       * Mark any caps in the or_mask as now being in acquire-mode. Note
-+       * once caps are in acquire_mode they always stay in this mode.
-+       * This impacts event handling, so we take the event-lock.
-+       */
-+      spin_lock_irqsave(&gdev->event_spinlock, irqflags);
-+      gdev->acquire_mode_guest_caps |= or_mask;
-+      spin_unlock_irqrestore(&gdev->event_spinlock, irqflags);
-+
-+      /* If we only have to switch the caps to acquire mode, we're done. */
-+      if (flags & VBGL_IOC_AGC_FLAGS_CONFIG_ACQUIRE_MODE)
-+              goto out;
-+
-+      not_mask &= ~or_mask; /* or_mask takes priority over not_mask */
-+      not_mask &= session->acquired_guest_caps;
-+      or_mask &= ~session->acquired_guest_caps;
-+
-+      if (or_mask == 0 && not_mask == 0)
-+              goto out;
-+
-+      if (gdev->acquired_guest_caps & or_mask) {
-+              ret = -EBUSY;
-+              goto out;
-+      }
-+
-+      gdev->acquired_guest_caps |= or_mask;
-+      gdev->acquired_guest_caps &= ~not_mask;
-+      /* session->acquired_guest_caps impacts event handling, take the lock */
-+      spin_lock_irqsave(&gdev->event_spinlock, irqflags);
-+      session->acquired_guest_caps |= or_mask;
-+      session->acquired_guest_caps &= ~not_mask;
-+      spin_unlock_irqrestore(&gdev->event_spinlock, irqflags);
-+
-+      ret = vbg_set_host_capabilities(gdev, session, session_termination);
-+      /* Roll back on failure, unless it's session termination time. */
-+      if (ret < 0 && !session_termination) {
-+              gdev->acquired_guest_caps &= ~or_mask;
-+              gdev->acquired_guest_caps |= not_mask;
-+              spin_lock_irqsave(&gdev->event_spinlock, irqflags);
-+              session->acquired_guest_caps &= ~or_mask;
-+              session->acquired_guest_caps |= not_mask;
-+              spin_unlock_irqrestore(&gdev->event_spinlock, irqflags);
-+      }
-+
-+      /*
-+       * If we added a capability, check if that means some other thread in
-+       * our session should be unblocked because there are events pending
-+       * (the result of vbg_get_allowed_event_mask_for_session() may change).
-+       *
-+       * HACK ALERT! When the seamless support capability is added we generate
-+       *      a seamless change event so that the ring-3 client can sync with
-+       *      the seamless state.
-+       */
-+      if (ret == 0 && or_mask != 0) {
-+              spin_lock_irqsave(&gdev->event_spinlock, irqflags);
-+
-+              if (or_mask & VMMDEV_GUEST_SUPPORTS_SEAMLESS)
-+                      gdev->pending_events |=
-+                              VMMDEV_EVENT_SEAMLESS_MODE_CHANGE_REQUEST;
-+
-+              if (gdev->pending_events)
-+                      wakeup = true;
-+
-+              spin_unlock_irqrestore(&gdev->event_spinlock, irqflags);
-+
-+              if (wakeup)
-+                      wake_up(&gdev->event_wq);
-+      }
-+
-+out:
-+      mutex_unlock(&gdev->session_mutex);
-+
-+      return ret;
-+}
-+
-+/**
-+ * Sets the guest capabilities for a session. Takes the session mutex.
-  * Return: 0 or negative errno value.
-  * @gdev:                     The Guest extension device.
-  * @session:                  The session.
-  * @or_mask:                  The capabilities to add.
-  * @not_mask:                 The capabilities to remove.
-  * @session_termination:      Set if we're called by the session cleanup code.
-  *                            This tweaks the error handling so we perform
-  *                            proper session cleanup even if the host
-  *                            misbehaves.
-  */
- static int vbg_set_session_capabilities(struct vbg_dev *gdev,
-                                       struct vbg_session *session,
-                                       u32 or_mask, u32 not_mask,
-                                       bool session_termination)
- {
--      struct vmmdev_mask *req;
-       u32 changed, previous;
--      int rc, ret = 0;
--
--      /*
--       * Allocate a request buffer before taking the spinlock, when
--       * the session is being terminated the requestor is the kernel,
--       * as we're cleaning up.
--       */
--      req = vbg_req_alloc(sizeof(*req), VMMDEVREQ_SET_GUEST_CAPABILITIES,
--                          session_termination ? VBG_KERNEL_REQUEST :
--                                                session->requestor);
--      if (!req) {
--              if (!session_termination)
--                      return -ENOMEM;
--              /* Ignore allocation failure, we must do session cleanup. */
--      }
-+      int ret = 0;
-       mutex_lock(&gdev->session_mutex);
-+      if (gdev->acquire_mode_guest_caps & or_mask) {
-+              vbg_err("%s error: cannot set caps which are in acquire_mode\n",
-+                      __func__);
-+              ret = -EBUSY;
-+              goto out;
-+      }
-+
-       /* Apply the changes to the session mask. */
--      previous = session->guest_caps;
--      session->guest_caps |= or_mask;
--      session->guest_caps &= ~not_mask;
-+      previous = session->set_guest_caps;
-+      session->set_guest_caps |= or_mask;
-+      session->set_guest_caps &= ~not_mask;
-       /* If anything actually changed, update the global usage counters. */
--      changed = previous ^ session->guest_caps;
-+      changed = previous ^ session->set_guest_caps;
-       if (!changed)
-               goto out;
--      vbg_track_bit_usage(&gdev->guest_caps_tracker, changed, previous);
--      or_mask = gdev->guest_caps_tracker.mask;
-+      vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed, previous);
--      if (gdev->guest_caps_host == or_mask || !req)
--              goto out;
--
--      gdev->guest_caps_host = or_mask;
--      req->or_mask = or_mask;
--      req->not_mask = ~or_mask;
--      rc = vbg_req_perform(gdev, req);
--      if (rc < 0) {
--              ret = vbg_status_code_to_errno(rc);
--
--              /* Failed, roll back (unless it's session termination time). */
--              gdev->guest_caps_host = U32_MAX;
--              if (session_termination)
--                      goto out;
--
--              vbg_track_bit_usage(&gdev->guest_caps_tracker, changed,
--                                  session->guest_caps);
--              session->guest_caps = previous;
-+      ret = vbg_set_host_capabilities(gdev, session, session_termination);
-+      /* Roll back on failure, unless it's session termination time. */
-+      if (ret < 0 && !session_termination) {
-+              vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed,
-+                                  session->set_guest_caps);
-+              session->set_guest_caps = previous;
-       }
- out:
-       mutex_unlock(&gdev->session_mutex);
--      vbg_req_free(req, sizeof(*req));
-       return ret;
- }
-@@ -948,6 +1075,7 @@ void vbg_core_close_session(struct vbg_session *session)
-       struct vbg_dev *gdev = session->gdev;
-       int i, rc;
-+      vbg_acquire_session_capabilities(gdev, session, 0, U32_MAX, 0, true);
-       vbg_set_session_capabilities(gdev, session, 0, U32_MAX, true);
-       vbg_set_session_event_filter(gdev, session, 0, U32_MAX, true);
-@@ -1005,31 +1133,52 @@ static int vbg_ioctl_driver_version_info(
-       return 0;
- }
-+/* Must be called with the event_lock held */
-+static u32 vbg_get_allowed_event_mask_for_session(struct vbg_dev *gdev,
-+                                                struct vbg_session *session)
-+{
-+      u32 acquire_mode_caps = gdev->acquire_mode_guest_caps;
-+      u32 session_acquired_caps = session->acquired_guest_caps;
-+      u32 allowed_events = VMMDEV_EVENT_VALID_EVENT_MASK;
-+
-+      if ((acquire_mode_caps & VMMDEV_GUEST_SUPPORTS_GRAPHICS) &&
-+          !(session_acquired_caps & VMMDEV_GUEST_SUPPORTS_GRAPHICS))
-+              allowed_events &= ~VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST;
-+
-+      if ((acquire_mode_caps & VMMDEV_GUEST_SUPPORTS_SEAMLESS) &&
-+          !(session_acquired_caps & VMMDEV_GUEST_SUPPORTS_SEAMLESS))
-+              allowed_events &= ~VMMDEV_EVENT_SEAMLESS_MODE_CHANGE_REQUEST;
-+
-+      return allowed_events;
-+}
-+
- static bool vbg_wait_event_cond(struct vbg_dev *gdev,
-                               struct vbg_session *session,
-                               u32 event_mask)
- {
-       unsigned long flags;
-       bool wakeup;
-       u32 events;
-       spin_lock_irqsave(&gdev->event_spinlock, flags);
-       events = gdev->pending_events & event_mask;
-+      events &= vbg_get_allowed_event_mask_for_session(gdev, session);
-       wakeup = events || session->cancel_waiters;
-       spin_unlock_irqrestore(&gdev->event_spinlock, flags);
-       return wakeup;
- }
- /* Must be called with the event_lock held */
- static u32 vbg_consume_events_locked(struct vbg_dev *gdev,
-                                    struct vbg_session *session,
-                                    u32 event_mask)
- {
-       u32 events = gdev->pending_events & event_mask;
-+      events &= vbg_get_allowed_event_mask_for_session(gdev, session);
-       gdev->pending_events &= ~events;
-       return events;
- }
-@@ -1149,7 +1298,9 @@ static int vbg_req_allowed(struct vbg_dev *gdev, struct vbg_session *session,
-       case VMMDEVREQ_VIDEO_ACCEL_ENABLE:
-       case VMMDEVREQ_VIDEO_ACCEL_FLUSH:
-       case VMMDEVREQ_VIDEO_SET_VISIBLE_REGION:
-+      case VMMDEVREQ_VIDEO_UPDATE_MONITOR_POSITIONS:
-       case VMMDEVREQ_GET_DISPLAY_CHANGE_REQEX:
-+      case VMMDEVREQ_GET_DISPLAY_CHANGE_REQ_MULTI:
-       case VMMDEVREQ_GET_SEAMLESS_CHANGE_REQ:
-       case VMMDEVREQ_GET_VRDPCHANGE_REQ:
-       case VMMDEVREQ_LOG_STRING:
-@@ -1431,27 +1582,50 @@ static int vbg_ioctl_change_filter_mask(struct vbg_dev *gdev,
-                                           false);
- }
-+static int vbg_ioctl_acquire_guest_capabilities(struct vbg_dev *gdev,
-+           struct vbg_session *session,
-+           struct vbg_ioctl_acquire_guest_caps *caps)
-+{
-+      u32 flags, or_mask, not_mask;
-+
-+      if (vbg_ioctl_chk(&caps->hdr, sizeof(caps->u.in), 0))
-+              return -EINVAL;
-+
-+      flags = caps->u.in.flags;
-+      or_mask = caps->u.in.or_mask;
-+      not_mask = caps->u.in.not_mask;
-+
-+      if (flags & ~VBGL_IOC_AGC_FLAGS_VALID_MASK)
-+              return -EINVAL;
-+
-+      if ((or_mask | not_mask) & ~VMMDEV_GUEST_CAPABILITIES_MASK)
-+              return -EINVAL;
-+
-+      return vbg_acquire_session_capabilities(gdev, session, or_mask,
-+                                              not_mask, flags, false);
-+}
-+
- static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev,
-            struct vbg_session *session, struct vbg_ioctl_set_guest_caps *caps)
- {
-       u32 or_mask, not_mask;
-       int ret;
-       if (vbg_ioctl_chk(&caps->hdr, sizeof(caps->u.in), sizeof(caps->u.out)))
-               return -EINVAL;
-       or_mask = caps->u.in.or_mask;
-       not_mask = caps->u.in.not_mask;
--      if ((or_mask | not_mask) & ~VMMDEV_EVENT_VALID_EVENT_MASK)
-+      if ((or_mask | not_mask) & ~VMMDEV_GUEST_CAPABILITIES_MASK)
-               return -EINVAL;
-       ret = vbg_set_session_capabilities(gdev, session, or_mask, not_mask,
-                                          false);
-       if (ret)
-               return ret;
--      caps->u.out.session_caps = session->guest_caps;
-+      caps->u.out.session_caps = session->set_guest_caps;
-       caps->u.out.global_caps = gdev->guest_caps_host;
-       return 0;
-@@ -1519,48 +1693,52 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data)
-       /* For VMMDEV_REQUEST hdr->type != VBG_IOCTL_HDR_TYPE_DEFAULT */
-       if (req_no_size == VBG_IOCTL_VMMDEV_REQUEST(0) ||
--          req == VBG_IOCTL_VMMDEV_REQUEST_BIG)
-+          req == VBG_IOCTL_VMMDEV_REQUEST_BIG ||
-+          req == VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT)
-               return vbg_ioctl_vmmrequest(gdev, session, data);
-       if (hdr->type != VBG_IOCTL_HDR_TYPE_DEFAULT)
-               return -EINVAL;
-       /* Fixed size requests. */
-       switch (req) {
-       case VBG_IOCTL_DRIVER_VERSION_INFO:
-               return vbg_ioctl_driver_version_info(data);
-       case VBG_IOCTL_HGCM_CONNECT:
-               return vbg_ioctl_hgcm_connect(gdev, session, data);
-       case VBG_IOCTL_HGCM_DISCONNECT:
-               return vbg_ioctl_hgcm_disconnect(gdev, session, data);
-       case VBG_IOCTL_WAIT_FOR_EVENTS:
-               return vbg_ioctl_wait_for_events(gdev, session, data);
-       case VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS:
-               return vbg_ioctl_interrupt_all_wait_events(gdev, session, data);
-       case VBG_IOCTL_CHANGE_FILTER_MASK:
-               return vbg_ioctl_change_filter_mask(gdev, session, data);
-+      case VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES:
-+              return vbg_ioctl_acquire_guest_capabilities(gdev, session, data);
-       case VBG_IOCTL_CHANGE_GUEST_CAPABILITIES:
-               return vbg_ioctl_change_guest_capabilities(gdev, session, data);
-       case VBG_IOCTL_CHECK_BALLOON:
-               return vbg_ioctl_check_balloon(gdev, data);
-       case VBG_IOCTL_WRITE_CORE_DUMP:
-               return vbg_ioctl_write_core_dump(gdev, session, data);
-       }
-       /* Variable sized requests. */
-       switch (req_no_size) {
- #ifdef CONFIG_COMPAT
-       case VBG_IOCTL_HGCM_CALL_32(0):
-               f32bit = true;
- #endif
-               /* Fall through */
-       case VBG_IOCTL_HGCM_CALL(0):
-               return vbg_ioctl_hgcm_call(gdev, session, f32bit, data);
-       case VBG_IOCTL_LOG(0):
-+      case VBG_IOCTL_LOG_ALT(0):
-               return vbg_ioctl_log(data);
-       }
--      vbg_debug("VGDrvCommonIoCtl: Unknown req %#08x\n", req);
-+      vbg_err_ratelimited("Userspace made an unknown ioctl req %#08x\n", req);
-       return -ENOTTY;
- }
-diff --git a/drivers/virt/vboxguest/vboxguest_core.h b/drivers/virt/vboxguest/vboxguest_core.h
-index 4188c12b839f..ab4bf64e2cec 100644
---- a/drivers/virt/vboxguest/vboxguest_core.h
-+++ b/drivers/virt/vboxguest/vboxguest_core.h
-@@ -15,6 +15,21 @@
- #include <linux/vboxguest.h>
- #include "vmmdev.h"
-+/*
-+ * The mainline kernel version (this version) of the vboxguest module
-+ * contained a bug where it defined VBGL_IOCTL_VMMDEV_REQUEST_BIG and
-+ * VBGL_IOCTL_LOG using _IOC(_IOC_READ | _IOC_WRITE, 'V', ...) instead
-+ * of _IO(V, ...) as the out of tree VirtualBox upstream version does.
-+ *
-+ * These _ALT definitions keep compatibility with the wrong defines the
-+ * mainline kernel version used for a while.
-+ * Note the VirtualBox userspace bits have always been built against
-+ * VirtualBox upstream's headers, so this is likely not necessary. But
-+ * we must never break our ABI so we keep these around to be 100% sure.
-+ */
-+#define VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT _IOC(_IOC_READ | _IOC_WRITE, 'V', 3, 0)
-+#define VBG_IOCTL_LOG_ALT(s)             _IOC(_IOC_READ | _IOC_WRITE, 'V', 9, s)
-+
- struct vbg_session;
- /** VBox guest memory balloon. */
-@@ -103,11 +118,21 @@ struct vbg_dev {
-       u32 event_filter_host;
-       /**
--       * Usage counters for guest capabilities. Indexed by capability bit
-+       * Guest capabilities which have been switched to acquire_mode.
-+       */
-+      u32 acquire_mode_guest_caps;
-+      /**
-+       * Guest capabilities acquired by vbg_acquire_session_capabilities().
-+       * Only one session can acquire a capability at a time.
-+       */
-+      u32 acquired_guest_caps;
-+      /**
-+       * Usage counters for guest capabilities requested through
-+       * vbg_set_session_capabilities(). Indexed by capability bit
-        * number, one count per session using a capability.
-        * Protected by session_mutex.
-        */
--      struct vbg_bit_usage_tracker guest_caps_tracker;
-+      struct vbg_bit_usage_tracker set_guest_caps_tracker;
-       /**
-        * The guest capabilities last reported to the host (or UINT32_MAX).
-        * Protected by session_mutex.
-@@ -149,11 +174,16 @@ struct vbg_session {
-        */
-       u32 event_filter;
-       /**
--       * Guest capabilities for this session.
-+       * Guest capabilities acquired by vbg_acquire_session_capabilities().
-+       * Only one session can acquire a capability at a time.
-+       */
-+      u32 acquired_guest_caps;
-+      /**
-+       * Guest capabilities set through vbg_set_session_capabilities().
-        * A capability claimed by any guest session will be reported to the
-        * host. Protected by vbg_gdev.session_mutex.
-        */
--      u32 guest_caps;
-+      u32 set_guest_caps;
-       /** VMMDEV_REQUESTOR_* flags */
-       u32 requestor;
-       /** Set on CANCEL_ALL_WAITEVENTS, protected by vbg_devevent_spinlock. */
-diff --git a/drivers/virt/vboxguest/vboxguest_linux.c b/drivers/virt/vboxguest/vboxguest_linux.c
-index 6e8c0f1c1056..32c2c52f7e84 100644
---- a/drivers/virt/vboxguest/vboxguest_linux.c
-+++ b/drivers/virt/vboxguest/vboxguest_linux.c
-@@ -131,7 +131,8 @@ static long vbg_misc_device_ioctl(struct file *filp, unsigned int req,
-        * the need for a bounce-buffer and another copy later on.
-        */
-       is_vmmdev_req = (req & ~IOCSIZE_MASK) == VBG_IOCTL_VMMDEV_REQUEST(0) ||
--                       req == VBG_IOCTL_VMMDEV_REQUEST_BIG;
-+                       req == VBG_IOCTL_VMMDEV_REQUEST_BIG ||
-+                       req == VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT;
-       if (is_vmmdev_req)
-               buf = vbg_req_alloc(size, VBG_IOCTL_HDR_TYPE_DEFAULT,
-diff --git a/drivers/virt/vboxguest/vboxguest_utils.c b/drivers/virt/vboxguest/vboxguest_utils.c
-index 43c391626a00..b6fd06eb015e 100644
---- a/drivers/virt/vboxguest/vboxguest_utils.c
-+++ b/drivers/virt/vboxguest/vboxguest_utils.c
-@@ -58,6 +58,7 @@ EXPORT_SYMBOL(name)
- VBG_LOG(vbg_info, pr_info);
- VBG_LOG(vbg_warn, pr_warn);
- VBG_LOG(vbg_err, pr_err);
-+VBG_LOG(vbg_err_ratelimited, pr_err_ratelimited);
- #if defined(DEBUG) && !defined(CONFIG_DYNAMIC_DEBUG)
- VBG_LOG(vbg_debug, pr_debug);
- #endif
-diff --git a/drivers/virt/vboxguest/vmmdev.h b/drivers/virt/vboxguest/vmmdev.h
-index 6337b8d75d96..21f408120e3f 100644
---- a/drivers/virt/vboxguest/vmmdev.h
-+++ b/drivers/virt/vboxguest/vmmdev.h
-@@ -206,6 +206,8 @@ VMMDEV_ASSERT_SIZE(vmmdev_mask, 24 + 8);
-  * not.
-  */
- #define VMMDEV_GUEST_SUPPORTS_GRAPHICS                      BIT(2)
-+/* The mask of valid capabilities, for sanity checking. */
-+#define VMMDEV_GUEST_CAPABILITIES_MASK                      0x00000007U
- /** struct vmmdev_hypervisorinfo - Hypervisor info structure. */
- struct vmmdev_hypervisorinfo {
-diff --git a/include/linux/vbox_utils.h b/include/linux/vbox_utils.h
-index ff56c443180c..db8a7d118093 100644
---- a/include/linux/vbox_utils.h
-+++ b/include/linux/vbox_utils.h
-@@ -16,6 +16,7 @@ struct vbg_dev;
- __printf(1, 2) void vbg_info(const char *fmt, ...);
- __printf(1, 2) void vbg_warn(const char *fmt, ...);
- __printf(1, 2) void vbg_err(const char *fmt, ...);
-+__printf(1, 2) void vbg_err_ratelimited(const char *fmt, ...);
- /* Only use backdoor logging for non-dynamic debug builds */
- #if defined(DEBUG) && !defined(CONFIG_DYNAMIC_DEBUG)
-diff --git a/include/uapi/linux/vbox_vmmdev_types.h b/include/uapi/linux/vbox_vmmdev_types.h
-index c27289fd619a..f8a8d6b3c521 100644
---- a/include/uapi/linux/vbox_vmmdev_types.h
-+++ b/include/uapi/linux/vbox_vmmdev_types.h
-@@ -63,6 +63,7 @@ enum vmmdev_request_type {
-       VMMDEVREQ_SET_GUEST_CAPABILITIES       = 56,
-       VMMDEVREQ_VIDEMODE_SUPPORTED2          = 57, /* since version 3.2.0 */
-       VMMDEVREQ_GET_DISPLAY_CHANGE_REQEX     = 80, /* since version 4.2.4 */
-+      VMMDEVREQ_GET_DISPLAY_CHANGE_REQ_MULTI = 81,
-       VMMDEVREQ_HGCM_CONNECT                 = 60,
-       VMMDEVREQ_HGCM_DISCONNECT              = 61,
-       VMMDEVREQ_HGCM_CALL32                  = 62,
-@@ -92,6 +93,8 @@ enum vmmdev_request_type {
-       VMMDEVREQ_WRITE_COREDUMP               = 218,
-       VMMDEVREQ_GUEST_HEARTBEAT              = 219,
-       VMMDEVREQ_HEARTBEAT_CONFIGURE          = 220,
-+      VMMDEVREQ_NT_BUG_CHECK                 = 221,
-+      VMMDEVREQ_VIDEO_UPDATE_MONITOR_POSITIONS = 222,
-       /* Ensure the enum is a 32 bit data-type */
-       VMMDEVREQ_SIZEHACK                     = 0x7fffffff
- };
-diff --git a/include/uapi/linux/vboxguest.h b/include/uapi/linux/vboxguest.h
-index 9cec58a6a5ea..15125f6ec60d 100644
---- a/include/uapi/linux/vboxguest.h
-+++ b/include/uapi/linux/vboxguest.h
-@@ -103,7 +103,7 @@ VMMDEV_ASSERT_SIZE(vbg_ioctl_driver_version_info, 24 + 20);
- /* IOCTL to perform a VMM Device request larger then 1KB. */
--#define VBG_IOCTL_VMMDEV_REQUEST_BIG  _IOC(_IOC_READ | _IOC_WRITE, 'V', 3, 0)
-+#define VBG_IOCTL_VMMDEV_REQUEST_BIG  _IO('V', 3)
- /** VBG_IOCTL_HGCM_CONNECT data structure. */
-@@ -198,7 +198,7 @@ struct vbg_ioctl_log {
-       } u;
- };
--#define VBG_IOCTL_LOG(s)              _IOC(_IOC_READ | _IOC_WRITE, 'V', 9, s)
-+#define VBG_IOCTL_LOG(s)              _IO('V', 9)
- /** VBG_IOCTL_WAIT_FOR_EVENTS data structure. */
-@@ -257,6 +257,30 @@ VMMDEV_ASSERT_SIZE(vbg_ioctl_change_filter, 24 + 8);
-       _IOWR('V', 12, struct vbg_ioctl_change_filter)
-+/** VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES data structure. */
-+struct vbg_ioctl_acquire_guest_caps {
-+      /** The header. */
-+      struct vbg_ioctl_hdr hdr;
-+      union {
-+              struct {
-+                      /** Flags (VBGL_IOC_AGC_FLAGS_XXX). */
-+                      __u32 flags;
-+                      /** Capabilities to set (VMMDEV_GUEST_SUPPORTS_XXX). */
-+                      __u32 or_mask;
-+                      /** Capabilities to drop (VMMDEV_GUEST_SUPPORTS_XXX). */
-+                      __u32 not_mask;
-+              } in;
-+      } u;
-+};
-+VMMDEV_ASSERT_SIZE(vbg_ioctl_acquire_guest_caps, 24 + 12);
-+
-+#define VBGL_IOC_AGC_FLAGS_CONFIG_ACQUIRE_MODE                0x00000001
-+#define VBGL_IOC_AGC_FLAGS_VALID_MASK                 0x00000001
-+
-+#define VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES \
-+      _IOWR('V', 13, struct vbg_ioctl_acquire_guest_caps)
-+
-+
- /** VBG_IOCTL_CHANGE_GUEST_CAPABILITIES data structure. */
- struct vbg_ioctl_set_guest_caps {
-       /** The header. */
--- 
-2.27.0
-
index dbc16c2..e3ffebd 100644 (file)
@@ -1,8 +1,8 @@
 # Maintainer:  Joakim Hernberg <jbh@alchemy.lu>
 # Contributor: David Runge <dvzrv@archlinux.org>
 
-_pkgver=5.4.52
-_rtpatchver=31
+_pkgver=5.4.54
+_rtpatchver=32
 pkgbase=linux-rt-lts
 pkgver=${_pkgver}.${_rtpatchver}
 pkgrel=1
@@ -21,28 +21,25 @@ source=(
   "https://www.kernel.org/pub/linux/kernel/projects/rt/${_pkgver%.*}/older/patch-${_pkgver}-rt${_rtpatchver}.patch.sign"
   'config'
   '0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch'
-  '0002-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch'
   'sphinx-workaround.patch'
 )
 validpgpkeys=(
   '647F28654894E3BD457199BE38DBBDC86092693E'  # Greg Kroah-Hartman <gregkh@linuxfoundation.org>
   '5ED9A48FC54C0A22D1D0804CEBC26CDB5A56DE73'  # Steven Rostedt (Der Hacker) <rostedt@goodmis.org>
 )
-sha512sums=('ed0eac6cc07f9e3bc455c82f1594fb0a5310430d3abc3cc2058e1c75af7608aa1b6f70790573873d7e9e4fafdd17cd0bdd5624c6eed5d51dd1da12a873d78a8e'
+sha512sums=('1cf9e16648c4941637b009800270e9bd06445d9762aefdad3c3d02dbc76b1321f214fc5ea79ec5d6dc6d4e6dd86ccf19feca8edd77ffe0862da1ec16bfd98a4d'
             'SKIP'
-            'a6606769f2e22866f81a9003f4dbd7d9c77d4b9fd0defba0065cc0817950c584f7f159276a3dc6c034d17689f2c318e181d0486f570e81951dae29c1bd3b6860'
+            '76f0e655989cd22275e4a8b6edaa5c93b7987672f4614b95f1c9244a9745ff42ee3ffe43987cefbbf21f8be63806fc7a562fc9136479a5e7d84e82169486c0db'
             'SKIP'
-            'aae41969d4ee93cdce74d39f24d198c9f3f34db98d310e9d2a62b1c9e4cb077eec5842a21903d0a91597bb9a26e3e0f57dc466dbcfd10c1794136da9bda69000'
+            '05a8063f44147f6a43d8612968b7bca169f7ddf3fc74509980f36b36fbd377692522ce040205e21c6b44b8d2e3175b2c8a4fc548071e5a242a53bbe7ec9806d6'
             '5f196378d50dd737d727e424d8f31b7fa8a6b92ba88f0a1467ef79bc37a097160da1fc1fd5cfb4b8983f36f2afdf27eb229ec61b35a15ac2343d660eb416a230'
-            '8b71f10cb9bd1d17184741b84369d73634b5569364b21c3cf3192d8cd923c04b3790cd158b9564425160b28522d4f91afac032185de59656f17d8e636138c571'
             '8081673a6594e5fc2fddc98fa434e99817aa822f7136d3c14c8d465fa7b93c9ac5d3a4150a5b632e25b1dc76a814dfa19d8aede37d58b935db288465b6585c58')
-b2sums=('32995d32bfc9ee5d6a5669941897890fc765765f8a141740486f4ad6000fcdd4e4c7f3e9c8fdc7357fba70947cce99d493e8657321c0c836c4930075eacec7eb'
+b2sums=('69d321681db0fd6e459c5b8ec2aa3a2dd4aaa130455b3df6eb368e33d5514329a1485b9cba2875f7f3f2b53a778ec76ca9b84df127947d4d9323e3e105437463'
         'SKIP'
-        '832df7913de6c3b7fbe7857720b0b2e9e9b1b90f21bbd975ef18acb6c3c412a4eb5705bdddcb23cebca2009145f70705ea004b3fbc32cdb28e1cd2ddc4538ad5'
+        'fdc72ca2d2da6116e95f3eb7cb27b94d59707251565bc01257537eda773fe27cb562806466a35ab1d08e0f0c517b1418716acedb528ff894d03cf0add6ba1504'
         'SKIP'
-        '610b75be2e5c7bbaea4a59d44be3b95b6ca8d267629e2aa53114aee0851161add3a11923104daeed7bba1f2402ff67f0e0ccf2c66b9d30289638325258275193'
+        'aa5939657bbcd961a9b459b252b643ea4bca87091414d426b3d14570f0f5c911e7b0f36aae1924a8763a055781fde03270287d8623da6e0db7582027975e4593'
         '3c3be0e85347bf3825f855a0a399ed60497cd0376f4b8ee1fe89df9bd90fe01cdd97fb3f4c4eea3918ba3769fc79961b6c58ba997326cbdf9dd7fb9540d8f6d6'
-        '28a9762608162a0a5d83fd114a18224015af8159ba9f55ccf1ecab91578fc212eba27bc9925d1894d7464fae1e4d5edf2e017a48122496daa780516af1ce9fd5'
         '657fd0e70d29eee5518c27af7eec73a18f399215d2a21cf7b92c9914bee16d1e0981c00065ccb12f0534e57af906af63b17221c65a61146ec8894c88420fa56c')
 
 export KBUILD_BUILD_HOST=archlinux
index 065c873..4adac73 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.4.52 Kernel Configuration
+# Linux/x86 5.4.54 Kernel Configuration
 #
 
 #
@@ -2546,7 +2546,6 @@ CONFIG_SCSI_PROC_FS=y
 CONFIG_BLK_DEV_SD=m
 CONFIG_CHR_DEV_ST=m
 CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
 CONFIG_CHR_DEV_SG=m
 CONFIG_CHR_DEV_SCH=m
 CONFIG_SCSI_ENCLOSURE=m
index 609f0df..cefa0cb 100644 (file)
@@ -1,6 +1,6 @@
 pkgbase = linux-xanmod-lts
        pkgdesc = Linux Xanmod LTS
-       pkgver = 5.4.52
+       pkgver = 5.4.56
        pkgrel = 1
        url = http://www.xanmod.org/
        arch = x86_64
@@ -18,14 +18,14 @@ pkgbase = linux-xanmod-lts
        options = !strip
        source = https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.tar.xz
        source = https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.tar.sign
-       source = https://github.com/xanmod/linux/releases/download/5.4.52-xanmod1/patch-5.4.52-xanmod1.xz
+       source = https://github.com/xanmod/linux/releases/download/5.4.56-xanmod1/patch-5.4.56-xanmod1.xz
        source = choose-gcc-optimization.sh
        source = 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER.patch::https://aur.archlinux.org/cgit/aur.git/plain/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch?h=linux-ck&id=616ec1bb1f2c0fc42b6fb5c20995996897b4f43b
        validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
        validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
        sha256sums = bf338980b1670bca287f9994b7441c2361907635879169c64ae78364efc5f491
        sha256sums = SKIP
-       sha256sums = 8945a70f75f042fe0dc5191b9beff4a47a44e47cd2f7c449784f057d91fd3886
+       sha256sums = fb8c2743f4ba7955fd2bc8b62c89e4a8b060f21e383644d45231ee97200f33b7
        sha256sums = 2c7369218e81dee86f8ac15bda741b9bb34fa9cefcb087760242277a8207d511
        sha256sums = 9c507bdb0062b5b54c6969f7da9ec18b259e06cd26dbe900cfe79a7ffb2713ee
 
index 03a7c1e..9554de7 100644 (file)
@@ -66,7 +66,7 @@ _makenconfig=
 ### IMPORTANT: Do no edit below this line unless you know what you're doing
 
 pkgbase=linux-xanmod-lts
-pkgver=5.4.52
+pkgver=5.4.56
 _major=5.4
 _branch=5.x
 xanmod=1
@@ -101,7 +101,7 @@ done
 
 sha256sums=('bf338980b1670bca287f9994b7441c2361907635879169c64ae78364efc5f491'
             'SKIP'
-            '8945a70f75f042fe0dc5191b9beff4a47a44e47cd2f7c449784f057d91fd3886'
+            'fb8c2743f4ba7955fd2bc8b62c89e4a8b060f21e383644d45231ee97200f33b7'
             '2c7369218e81dee86f8ac15bda741b9bb34fa9cefcb087760242277a8207d511'
             '9c507bdb0062b5b54c6969f7da9ec18b259e06cd26dbe900cfe79a7ffb2713ee')
 
index 2c6dff3..c06f74f 100644 (file)
@@ -1,7 +1,7 @@
 pkgbase = linux-xanmod
        pkgdesc = Linux Xanmod
-       pkgver = 5.7.9
-       pkgrel = 1
+       pkgver = 5.8.0
+       pkgrel = 2
        url = http://www.xanmod.org/
        arch = x86_64
        license = GPL2
@@ -16,18 +16,18 @@ pkgbase = linux-xanmod
        makedepends = graphviz
        makedepends = imagemagick
        options = !strip
-       source = https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.7.tar.xz
-       source = https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.7.tar.sign
-       source = https://github.com/xanmod/linux/releases/download/5.7.9-xanmod1/patch-5.7.9-xanmod1.xz
+       source = https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.8.tar.xz
+       source = https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.8.tar.sign
+       source = https://github.com/xanmod/linux/releases/download/5.8.0-xanmod2/patch-5.8.0-xanmod2.xz
        source = choose-gcc-optimization.sh
        source = 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER.patch::https://aur.archlinux.org/cgit/aur.git/plain/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch?h=linux-ck&id=616ec1bb1f2c0fc42b6fb5c20995996897b4f43b
        validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
        validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
-       sha256sums = de8163bb62f822d84f7a3983574ec460060bf013a78ff79cd7c979ff1ec1d7e0
+       sha256sums = e7f75186aa0642114af8f19d99559937300ca27acaf7451b36d4f9b0f85cf1f5
        sha256sums = SKIP
-       sha256sums = 86002e0f04b36842065ab1964ce2307b1337512af927e0ef74e145171e23c8f9
+       sha256sums = c4f5fea00eed0dd0809f5ce7cefff1af0a6ab70a27c9f9cceade88f3c2ba531d
        sha256sums = 2c7369218e81dee86f8ac15bda741b9bb34fa9cefcb087760242277a8207d511
-       sha256sums = 9c507bdb0062b5b54c6969f7da9ec18b259e06cd26dbe900cfe79a7ffb2713ee
+       sha256sums = 6c66dba73251440352f93ff32b72f5dd49536d0f17ef9347867660fd3a626991
 
 pkgname = linux-xanmod
        pkgdesc = The Linux kernel and modules with Xanmod patches
diff --git a/alter-kernel/x86_64/linux-xanmod/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER.patch b/alter-kernel/x86_64/linux-xanmod/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER.patch
new file mode 100644 (file)
index 0000000..d7dee55
--- /dev/null
@@ -0,0 +1,133 @@
+From a8d736bad70d4062a14c29bdcbed71bef7b575f5 Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
+Date: Mon, 16 Sep 2019 04:53:20 +0200
+Subject: [PATCH 01/15] ZEN: Add sysctl and CONFIG to disallow unprivileged
+ CLONE_NEWUSER
+
+Our default behavior continues to match the vanilla kernel.
+---
+ init/Kconfig            | 16 ++++++++++++++++
+ kernel/fork.c           | 15 +++++++++++++++
+ kernel/sysctl.c         | 12 ++++++++++++
+ kernel/user_namespace.c |  7 +++++++
+ 4 files changed, 50 insertions(+)
+
+diff --git a/init/Kconfig b/init/Kconfig
+index b4daad2bac23..362f82c5ec07 100644
+--- a/init/Kconfig
++++ b/init/Kconfig
+@@ -1118,6 +1118,22 @@ config USER_NS
+         If unsure, say N.
++config USER_NS_UNPRIVILEGED
++      bool "Allow unprivileged users to create namespaces"
++      default y
++      depends on USER_NS
++      help
++        When disabled, unprivileged users will not be able to create
++        new namespaces. Allowing users to create their own namespaces
++        has been part of several recent local privilege escalation
++        exploits, so if you need user namespaces but are
++        paranoid^Wsecurity-conscious you want to disable this.
++
++        This setting can be overridden at runtime via the
++        kernel.unprivileged_userns_clone sysctl.
++
++        If unsure, say Y.
++
+ config PID_NS
+       bool "PID Namespaces"
+       default y
+diff --git a/kernel/fork.c b/kernel/fork.c
+index 755d8160e001..ed909f8050b2 100644
+--- a/kernel/fork.c
++++ b/kernel/fork.c
+@@ -106,6 +106,11 @@
+ #define CREATE_TRACE_POINTS
+ #include <trace/events/task.h>
++#ifdef CONFIG_USER_NS
++extern int unprivileged_userns_clone;
++#else
++#define unprivileged_userns_clone 0
++#endif
+ /*
+  * Minimum number of threads to boot the kernel
+@@ -1779,6 +1784,10 @@ static __latent_entropy struct task_struct *copy_process(
+       if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS))
+               return ERR_PTR(-EINVAL);
++      if ((clone_flags & CLONE_NEWUSER) && !unprivileged_userns_clone)
++              if (!capable(CAP_SYS_ADMIN))
++                      return ERR_PTR(-EPERM);
++
+       /*
+        * Thread groups must share signals as well, and detached threads
+        * can only be started up within the thread group.
+@@ -2836,6 +2845,12 @@ int ksys_unshare(unsigned long unshare_flags)
+       if (unshare_flags & CLONE_NEWNS)
+               unshare_flags |= CLONE_FS;
++      if ((unshare_flags & CLONE_NEWUSER) && !unprivileged_userns_clone) {
++              err = -EPERM;
++              if (!capable(CAP_SYS_ADMIN))
++                      goto bad_unshare_out;
++      }
++
+       err = check_unshare_flags(unshare_flags);
+       if (err)
+               goto bad_unshare_out;
+diff --git a/kernel/sysctl.c b/kernel/sysctl.c
+index 70665934d53e..9797869ed829 100644
+--- a/kernel/sysctl.c
++++ b/kernel/sysctl.c
+@@ -111,6 +111,10 @@
+ static int sixty = 60;
+ #endif
++#ifdef CONFIG_USER_NS
++extern int unprivileged_userns_clone;
++#endif
++
+ static int __maybe_unused neg_one = -1;
+ static int __maybe_unused two = 2;
+ static int __maybe_unused four = 4;
+@@ -1881,6 +1885,15 @@
+               .mode           = 0644,
+               .proc_handler   = proc_dointvec,
+       },
++#endif
++#ifdef CONFIG_USER_NS
++      {
++              .procname       = "unprivileged_userns_clone",
++              .data           = &unprivileged_userns_clone,
++              .maxlen         = sizeof(int),
++              .mode           = 0644,
++              .proc_handler   = proc_dointvec,
++      },
+ #endif
+ #ifdef CONFIG_PROC_SYSCTL
+       {
+diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
+index 8eadadc478f9..c36ecd19562c 100644
+--- a/kernel/user_namespace.c
++++ b/kernel/user_namespace.c
+@@ -21,6 +21,13 @@
+ #include <linux/bsearch.h>
+ #include <linux/sort.h>
++/* sysctl */
++#ifdef CONFIG_USER_NS_UNPRIVILEGED
++int unprivileged_userns_clone = 1;
++#else
++int unprivileged_userns_clone;
++#endif
++
+ static struct kmem_cache *user_ns_cachep __read_mostly;
+ static DEFINE_MUTEX(userns_state_mutex);
+-- 
+2.25.0
+
index a0779f9..2a7372d 100644 (file)
@@ -66,11 +66,11 @@ _makenconfig=
 ### IMPORTANT: Do no edit below this line unless you know what you're doing
 
 pkgbase=linux-xanmod
-pkgver=5.7.9
-_major=5.7
+pkgver=5.8.0
+_major=5.8
 _branch=5.x
-xanmod=1
-pkgrel=1
+xanmod=2
+pkgrel=2
 pkgdesc='Linux Xanmod'
 url="http://www.xanmod.org/"
 arch=(x86_64)
@@ -99,11 +99,11 @@ for _patch in $_commits; do
 done
     
 
-sha256sums=('de8163bb62f822d84f7a3983574ec460060bf013a78ff79cd7c979ff1ec1d7e0'
+sha256sums=('e7f75186aa0642114af8f19d99559937300ca27acaf7451b36d4f9b0f85cf1f5'
             'SKIP'
-            '86002e0f04b36842065ab1964ce2307b1337512af927e0ef74e145171e23c8f9'
+            'c4f5fea00eed0dd0809f5ce7cefff1af0a6ab70a27c9f9cceade88f3c2ba531d'
             '2c7369218e81dee86f8ac15bda741b9bb34fa9cefcb087760242277a8207d511'
-            '9c507bdb0062b5b54c6969f7da9ec18b259e06cd26dbe900cfe79a7ffb2713ee')
+            '6c66dba73251440352f93ff32b72f5dd49536d0f17ef9347867660fd3a626991')
 
 export KBUILD_BUILD_HOST=${KBUILD_BUILD_HOST:-archlinux}
 export KBUILD_BUILD_USER=${KBUILD_BUILD_USER:-makepkg}