git: a9f65f905038 - main - graphics/nvidia-drm-510-kmod: Fix compilation with the v550 NVidia driver
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 16 Mar 2024 01:49:05 UTC
The branch main has been updated by arrowd:
URL: https://cgit.FreeBSD.org/ports/commit/?id=a9f65f9050383d817ee3aa652bfdb07119647e7b
commit a9f65f9050383d817ee3aa652bfdb07119647e7b
Author: Austin Shafer <ashafer@badland.io>
AuthorDate: 2024-03-16 01:22:52 +0000
Commit: Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2024-03-16 01:47:15 +0000
graphics/nvidia-drm-510-kmod: Fix compilation with the v550 NVidia driver
Differential Revision: https://reviews.freebsd.org/D44305
---
graphics/nvidia-drm-510-kmod/Makefile | 6 ++
.../files/extra-patch-conftest.sh | 83 ++++++++++++++++++++++
.../files/patch-nvidia-drm-conftest.h | 14 ++++
3 files changed, 103 insertions(+)
diff --git a/graphics/nvidia-drm-510-kmod/Makefile b/graphics/nvidia-drm-510-kmod/Makefile
index 329241a95ff5..ae46d3bf2289 100644
--- a/graphics/nvidia-drm-510-kmod/Makefile
+++ b/graphics/nvidia-drm-510-kmod/Makefile
@@ -6,5 +6,11 @@ CONFLICTS_INSTALL= nvidia-drm-515-kmod nvidia-drm-61-kmod
.include "${.CURDIR}/../drm-510-kmod/Makefile.version"
.include "${.CURDIR}/../nvidia-drm-kmod/Makefile.common"
+.include <bsd.port.options.mk>
+
+# handle incorrect get_user_pages definitions in 13.2
+.if ${OSVERSION} < 1303000
+EXTRA_PATCHES= ${PATCHDIR}/extra-patch-conftest.sh
+.endif
.include <bsd.port.mk>
diff --git a/graphics/nvidia-drm-510-kmod/files/extra-patch-conftest.sh b/graphics/nvidia-drm-510-kmod/files/extra-patch-conftest.sh
new file mode 100644
index 000000000000..794b0a6647ae
--- /dev/null
+++ b/graphics/nvidia-drm-510-kmod/files/extra-patch-conftest.sh
@@ -0,0 +1,83 @@
+--- conftest.sh.orig 2024-03-14 18:29:50 UTC
++++ conftest.sh
+@@ -2627,7 +2627,7 @@ compile_test() {
+ #include <linux/mm.h>
+ long get_user_pages(unsigned long start,
+ unsigned long nr_pages,
+- unsigned int gup_flags,
++ int gup_flags,
+ struct page **pages,
+ struct vm_area_struct **vmas) {
+ return 0;
+@@ -2655,7 +2655,7 @@ compile_test() {
+ struct mm_struct *mm,
+ unsigned long start,
+ unsigned long nr_pages,
+- unsigned int gup_flags,
++ int gup_flags,
+ struct page **pages,
+ struct vm_area_struct **vmas) {
+ return 0;
+@@ -2679,7 +2679,7 @@ compile_test() {
+ #include <linux/mm.h>
+ long get_user_pages(unsigned long start,
+ unsigned long nr_pages,
+- unsigned int gup_flags,
++ int gup_flags,
+ struct page **pages) {
+ return 0;
+ }" > conftest$$.c
+@@ -2852,7 +2852,7 @@ compile_test() {
+ struct mm_struct *mm,
+ unsigned long start,
+ unsigned long nr_pages,
+- unsigned int gup_flags,
++ int gup_flags,
+ struct page **pages,
+ struct vm_area_struct **vmas,
+ int *locked) {
+@@ -2877,7 +2877,7 @@ compile_test() {
+ long get_user_pages_remote(struct mm_struct *mm,
+ unsigned long start,
+ unsigned long nr_pages,
+- unsigned int gup_flags,
++ int gup_flags,
+ struct page **pages,
+ struct vm_area_struct **vmas,
+ int *locked) {
+@@ -2901,7 +2901,7 @@ compile_test() {
+ long get_user_pages_remote(struct mm_struct *mm,
+ unsigned long start,
+ unsigned long nr_pages,
+- unsigned int gup_flags,
++ int gup_flags,
+ struct page **pages,
+ int *locked) {
+ return 0;
+@@ -2969,7 +2969,7 @@ compile_test() {
+ #include <linux/mm.h>
+ long pin_user_pages(unsigned long start,
+ unsigned long nr_pages,
+- unsigned int gup_flags,
++ int gup_flags,
+ struct page **pages,
+ struct vm_area_struct **vmas) {
+ return 0;
+@@ -3055,7 +3055,7 @@ compile_test() {
+ struct mm_struct *mm,
+ unsigned long start,
+ unsigned long nr_pages,
+- unsigned int gup_flags,
++ int gup_flags,
+ struct page **pages,
+ struct vm_area_struct **vmas,
+ int *locked) {
+@@ -3077,7 +3077,7 @@ compile_test() {
+ long pin_user_pages_remote(struct mm_struct *mm,
+ unsigned long start,
+ unsigned long nr_pages,
+- unsigned int gup_flags,
++ int gup_flags,
+ struct page **pages,
+ struct vm_area_struct **vmas,
+ int *locked) {
diff --git a/graphics/nvidia-drm-510-kmod/files/patch-nvidia-drm-conftest.h b/graphics/nvidia-drm-510-kmod/files/patch-nvidia-drm-conftest.h
new file mode 100644
index 000000000000..f91a1595cda2
--- /dev/null
+++ b/graphics/nvidia-drm-510-kmod/files/patch-nvidia-drm-conftest.h
@@ -0,0 +1,14 @@
+--- nvidia-drm-conftest.h.orig 2024-03-11 17:52:16 UTC
++++ nvidia-drm-conftest.h
+@@ -122,11 +122,9 @@
+ */
+ #define drm_atomic_state_free drm_atomic_state_put
+
+-#if __FreeBSD_version < 1300000
+ /* redefine LIST_HEAD_INIT to the linux version */
+ #include <linux/list.h>
+ #define LIST_HEAD_INIT(name) LINUX_LIST_HEAD_INIT(name)
+-#endif
+
+ /*
+ * FreeBSD currently has only vmf_insert_pfn_prot defined, and it has a