Группа :: Система/Ядро и оборудование
Пакет: kernel-modules-virtualbox-un-def
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: vboxcommon-5.4.patch
Скачать
Скачать
diff -ur kernel-source-virtualbox-5.2.34/kernel-source-vboxdrv-5.2.34/r0drv/linux/the-linux-kernel.h kernel-source-virtualbox-5.2.34.fixed/kernel-source-vboxdrv-5.2.34/r0drv/linux/the-linux-kernel.h
--- kernel-source-vboxdrv-5.2.34/r0drv/linux/the-linux-kernel.h 2019-10-21 19:05:14.000000000 +0000
+++ kernel-source-vboxdrv-5.2.34.new/r0drv/linux/the-linux-kernel.h 2019-12-12 01:08:42.695569567 +0000
@@ -327,7 +327,11 @@
# endif
#endif
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
+/* XXX The 5.4 kernel has no interface anymore to make kernel pages execcutable */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0)
+# define MY_SET_PAGES_EXEC(pPages, cPages) do {} while (0)
+# define MY_SET_PAGES_NOEXEC(pPages, cPages) do {} while (0)
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
# define MY_SET_PAGES_EXEC(pPages, cPages) set_pages_x(pPages, cPages)
# define MY_SET_PAGES_NOEXEC(pPages, cPages) set_pages_nx(pPages, cPages)
#else
@@ -374,7 +378,7 @@
{
/* use the set_pages_* API */
if (pgprot_val(prot) & _PAGE_NX)
- set_pages_nx(page, numpages);
+ MY_SET_PAGES_NOEXEC(page, numpages);
set_pages_uc(page, numpages);
return 0;
}
diff -ur kernel-source-virtualbox-5.2.34/kernel-source-vboxdrv-5.2.34/include/iprt/cdefs.h kernel-source-virtualbox-5.2.34.fixed/kernel-source-vboxdrv-5.2.34/include/iprt/cdefs.h
--- kernel-source-vboxdrv-5.2.34/include/iprt/cdefs.h 2019-10-21 11:53:32.000000000 +0000
+++ kernel-source-vboxdrv-5.2.34.new/include/iprt/cdefs.h 2019-12-12 00:55:38.819038629 +0000
@@ -1113,7 +1113,7 @@
* Tell the compiler that we're falling through to the next case in a switch.
* @sa RT_FALL_THRU */
#if RT_GNUC_PREREQ(7, 0)
-# define RT_FALL_THROUGH() __attribute__((fallthrough))
+# define RT_FALL_THROUGH() __attribute__((__fallthrough__))
#else
# define RT_FALL_THROUGH() (void)0
#endif