diff options
author | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2020-07-24 09:48:33 -0700 |
---|---|---|
committer | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2020-07-24 09:48:33 -0700 |
commit | 91db457fdc61c825468bfbd15c67a7ea8aa1ca9e (patch) | |
tree | 074513a972c855db65fba1ffc1d33f9eca114301 | |
parent | Updated to 5.7.9.a (diff) | |
download | linux-libre-hardened-91db457fdc61c825468bfbd15c67a7ea8aa1ca9e.tar.xz |
Updated to 5.7.10.a
-rw-r--r-- | 0004-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch | 116 | ||||
-rw-r--r-- | PKGBUILD | 8 |
2 files changed, 16 insertions, 108 deletions
diff --git a/0004-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch b/0004-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch index 76c9fad..4fd4ec0 100644 --- a/0004-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch +++ b/0004-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch @@ -1,4 +1,4 @@ -From 0fe1b29d2826794bfd880944496b433c80da0173 Mon Sep 17 00:00:00 2001 +From d14a96d0a5e05d99c5fe083c49d33197c215dbe1 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: virt: vbox: Add support for the new @@ -135,18 +135,16 @@ Date: Thu Jul 9 14:08:51 2020 +0200 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_core.c | 266 +++++++++++++++++++++++++------ + drivers/virt/vboxguest/vboxguest_core.h | 23 ++- 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(-) + include/uapi/linux/vboxguest.h | 24 +++ + 6 files changed, 269 insertions(+), 49 deletions(-) diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c -index b690a8a4bf9e..0b43efddea22 100644 +index 18ebd7a6af98..0b43efddea22 100644 --- a/drivers/virt/vboxguest/vboxguest_core.c +++ b/drivers/virt/vboxguest/vboxguest_core.c @@ -559,7 +559,7 @@ static int vbg_reset_host_event_filter(struct vbg_dev *gdev, @@ -488,15 +486,6 @@ index b690a8a4bf9e..0b43efddea22 100644 static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev, struct vbg_session *session, struct vbg_ioctl_set_guest_caps *caps) { -@@ -1444,7 +1618,7 @@ static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev, - 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, @@ -1452,7 +1626,7 @@ static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev, if (ret) return ret; @@ -506,17 +495,7 @@ index b690a8a4bf9e..0b43efddea22 100644 caps->u.out.global_caps = gdev->guest_caps_host; return 0; -@@ -1520,7 +1694,8 @@ 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) -@@ -1540,6 +1715,8 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data) +@@ -1541,6 +1715,8 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data) 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); @@ -525,11 +504,7 @@ index b690a8a4bf9e..0b43efddea22 100644 case VBG_IOCTL_CHANGE_GUEST_CAPABILITIES: return vbg_ioctl_change_guest_capabilities(gdev, session, data); case VBG_IOCTL_CHECK_BALLOON: -@@ -1558,10 +1735,11 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data) - 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): +@@ -1563,7 +1739,7 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data) return vbg_ioctl_log(data); } @@ -539,32 +514,10 @@ index b690a8a4bf9e..0b43efddea22 100644 } diff --git a/drivers/virt/vboxguest/vboxguest_core.h b/drivers/virt/vboxguest/vboxguest_core.h -index 4188c12b839f..ab4bf64e2cec 100644 +index 77c3a9c8255d..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 { +@@ -118,11 +118,21 @@ struct vbg_dev { u32 event_filter_host; /** @@ -588,7 +541,7 @@ index 4188c12b839f..ab4bf64e2cec 100644 /** * The guest capabilities last reported to the host (or UINT32_MAX). * Protected by session_mutex. -@@ -149,11 +174,16 @@ struct vbg_session { +@@ -164,11 +174,16 @@ struct vbg_session { */ u32 event_filter; /** @@ -607,20 +560,6 @@ index 4188c12b839f..ab4bf64e2cec 100644 /** 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 7396187ee32a..ea05af41ec69 100644 --- a/drivers/virt/vboxguest/vboxguest_utils.c @@ -633,19 +572,6 @@ index 7396187ee32a..ea05af41ec69 100644 #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 @@ -680,27 +606,9 @@ index c27289fd619a..f8a8d6b3c521 100644 VMMDEVREQ_SIZEHACK = 0x7fffffff }; diff --git a/include/uapi/linux/vboxguest.h b/include/uapi/linux/vboxguest.h -index 9cec58a6a5ea..15125f6ec60d 100644 +index f79d7abe27db..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) @@ -19,7 +19,7 @@ _pkgbase=linux-hardened pkgbase=linux-libre-hardened _supver=5 _majver=7 -_minver=9 +_minver=10 _hardenedver=a _gccpatchver='20200615' _gccpatchger='10.1' @@ -66,17 +66,17 @@ validpgpkeys=( ) b2sums=('bb65e65c69d1c38943327a0859028c843439590e9f1af66705a0fe01aaf006daf14a5a0adfaef6d1de53511e50b2f6b8ee13caa63dd7cf4065253599fe524998' 'SKIP' - '4f491080ea1c57c0a9d6885ce75129ddbe16d9c0c44a76b59f4ced46afa11d74b9f0bac846769ba35345892d01d42bac5859036568db993711009cf32eddfa44' + '9ad50fe22e57f0b78a0bd30423e17e870c04a1d15f118a878fa5b05d907b415838b23cb8e1120feaa0797416ccc371577071f098723bacff07688ce8a401cd61' 'SKIP' '490c7d188215f1d24b5807a744853fa308c2cd17c9eb8668918a50a0c58cab9cbc9ee13ac9abbb614eb010a4a56e9092fea4440d44c80c8e67f2d9abdf19a83f' 'a0f3b060d344746d7cd02b9b8b0f6e13a4367d41aa92ef7db4b6d01d2a0389b63da3e19484ac809952ef6ee13479a54ad205017c9ead72c4ee6738ae04cb7c4b' - '717a4237c76fcfce5ef17942f00232e333e346ffb0fb01aea6afd8befb56d33b9da1b0df57fa4c50e0d9c102c7d3d5cfedf69ecfa2c3baeadce5ffd87a68138f' + '00900ec68ad9ebdf5b9103cb8383ee94b97d2b243cb4458f04f877a1b294817e8a140ce2832d424030d039c48f37eaa5bc5fae7a158da495d78e659b8b3006dc' 'c8d0697f99fe6105815217b8ec059d8f587415ea8dd2b88a65e1087feedf697341a64cd56810fde9e7aeada79125fc8235faccc7e7b06492c099e27a8abbe99c' '2e58bb89b247b1678355368956e67c1de51fcde97a227b2162f6771e30f17fa5520faafe7be4b6816a542e7ae10d05f64c6b6354f352c12746d4b8da632936dd' 'fde132f3705d908e6f2147c78a2193289916d72304ca5efa2229d79fc3e57a857314ce94e71425caef2f7f7b6cf87f05ef86335dc8bd4be78e7035afe608005a' '004fa374633e14c649d07ed1f190316f4c0d2cd8d5b2b2480fdf8b0f635339b3638eb4f5d3a407fd1af60e876416a89382747008eef1c7e3188d1bc2eb6fd3d2' 'b4e1377d97ad7e8144d6e55b6d43731e3271a5aec65b65ca6d81026a95f15f549b9303fb3c6f492099ca691e3f65f4cf7f0c3aa742df03b396d7f6d81813aa95' - '8d1a35e565309e3e5febe26dac4af44b5198690e4cbe05e18304f1805df4121536f0b4587f9a2b37480478ae325fdec332f6f4921e0186e07fff09ff9e4b2f3b' + '7853329ac269492b05ffe6ad15fd7844039af8309234d7a8138db4861562b7d9c24d3486f669180e7833f57d101151e87380cdb888d6fb940ed701bce87de791' 'SKIP') export KBUILD_BUILD_HOST=$pkgbase |