Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

kernel headers after linux 6.3 #283

Open
LaurentThomas opened this issue Jun 2, 2024 · 0 comments
Open

kernel headers after linux 6.3 #283

LaurentThomas opened this issue Jun 2, 2024 · 0 comments

Comments

@LaurentThomas
Copy link

The driver doesn't compile since kernel 6.3, and there are more changes in kernel 6.4

Please add this patch to the source

diff --git a/XDMA/linux-kernel/xdma/cdev_ctrl.c b/XDMA/linux-kernel/xdma/cdev_ctrl.c
index dbc41ef..4716dca 100644
--- a/XDMA/linux-kernel/xdma/cdev_ctrl.c
+++ b/XDMA/linux-kernel/xdma/cdev_ctrl.c
@@ -233,7 +233,11 @@ int bridge_mmap(struct file *file, struct vm_area_struct *vma)
         * prevent touching the pages (byte access) for swap-in,
         * and prevent the pages from being swapped out
         */
+       #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 3, 0)
        vma->vm_flags |= VMEM_FLAGS;
+       #else
+       vma->__vm_flags |= VMEM_FLAGS;
+       #endif
        /* make MMIO accessible to user space */
        rv = io_remap_pfn_range(vma, vma->vm_start, phys >> PAGE_SHIFT,
                        vsize, vma->vm_page_prot);
diff --git a/XDMA/linux-kernel/xdma/cdev_sgdma.c b/XDMA/linux-kernel/xdma/cdev_sgdma.c
index 7923441..d678375 100644
--- a/XDMA/linux-kernel/xdma/cdev_sgdma.c
+++ b/XDMA/linux-kernel/xdma/cdev_sgdma.c
@@ -563,6 +563,7 @@ static ssize_t cdev_aio_read(struct kiocb *iocb, const struct iovec *io,
 }
 
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0)
 static ssize_t cdev_write_iter(struct kiocb *iocb, struct iov_iter *io)
 {
        return cdev_aio_write(iocb, io->iov, io->nr_segs, io->iov_offset);
@@ -572,6 +573,17 @@ static ssize_t cdev_read_iter(struct kiocb *iocb, struct iov_iter *io)
 {
        return cdev_aio_read(iocb, io->iov, io->nr_segs, io->iov_offset);
 }
+#else
+static ssize_t cdev_write_iter(struct kiocb *iocb, struct iov_iter *io)
+{
+       return cdev_aio_write(iocb, io->__iov, io->nr_segs, io->iov_offset);
+}
+
+static ssize_t cdev_read_iter(struct kiocb *iocb, struct iov_iter *io)
+{
+       return cdev_aio_read(iocb, io->__iov, io->nr_segs, io->iov_offset);
+}
+#endif
 #endif
 
 static int ioctl_do_perf_start(struct xdma_engine *engine, unsigned long arg)
diff --git a/XDMA/linux-kernel/xdma/xdma_cdev.c b/XDMA/linux-kernel/xdma/xdma_cdev.c
index 363ffb4..e2b97cc 100644
--- a/XDMA/linux-kernel/xdma/xdma_cdev.c
+++ b/XDMA/linux-kernel/xdma/xdma_cdev.c
@@ -603,7 +603,12 @@ fail:
 
 int xdma_cdev_init(void)
 {
-       g_xdma_class = class_create(THIS_MODULE, XDMA_NODE_NAME);
+  #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0)
+  g_xdma_class = class_create(THIS_MODULE, XDMA_NODE_NAME);
+  #else
+  g_xdma_class = class_create(XDMA_NODE_NAME);
+  #endif
+       
        if (IS_ERR(g_xdma_class)) {
                dbg_init(XDMA_NODE_NAME ": failed to create class");
                return -EINVAL;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant