google / gasket-driver

GNU General Public License v2.0
47 stars 29 forks source link

Unable to compile on 6.8.1-1-pve #24

Open idontcare99999 opened 4 months ago

idontcare99999 commented 4 months ago

DKMS make.log for gasket-1.0 for kernel 6.8.1-1-pve (x86_64) Sat Apr 6 04:22:21 AM PDT 2024 make: Entering directory '/usr/src/linux-headers-6.8.1-1-pve' CC [M] /var/lib/dkms/gasket/1.0/build/gasket_core.o CC [M] /var/lib/dkms/gasket/1.0/build/gasket_ioctl.o CC [M] /var/lib/dkms/gasket/1.0/build/gasket_interrupt.o CC [M] /var/lib/dkms/gasket/1.0/build/gasket_page_table.o CC [M] /var/lib/dkms/gasket/1.0/build/gasket_sysfs.o CC [M] /var/lib/dkms/gasket/1.0/build/apex_driver.o /var/lib/dkms/gasket/1.0/build/gasket_interrupt.c: In function ‘gasket_handle_interrupt’: /var/lib/dkms/gasket/1.0/build/gasket_interrupt.c:161:17: error: too many arguments to function ‘eventfd_signal’ 161 | eventfd_signal(ctx, 1); | ^~~~~~ In file included from /var/lib/dkms/gasket/1.0/build/gasket_interrupt.h:11, from /var/lib/dkms/gasket/1.0/build/gasket_interrupt.c:4: ./include/linux/eventfd.h:87:20: note: declared here 87 | static inline void eventfd_signal(struct eventfd_ctx *ctx) | ^~~~~~ make[2]: [scripts/Makefile.build:243: /var/lib/dkms/gasket/1.0/build/gasket_interrupt.o] Error 1 make[2]: Waiting for unfinished jobs.... make[1]: [/usr/src/linux-headers-6.8.1-1-pve/Makefile:1926: /var/lib/dkms/gasket/1.0/build] Error 2 make: [Makefile:240: __sub-make] Error 2 make: Leaving directory '/usr/src/linux-headers-6.8.1-1-pve'

ThomasLamprecht commented 4 months ago

This is a duplicate of #23

idontcare99999 commented 4 months ago

Reviewed #23 and modified

gasket-driver/src/gasket_interrupt.c

to include

include <linux/version.h>

so I could specify the kernel version for the change to this section

        if (ctx)
                #if LINUX_VERSION_CODE >= KERNEL_VERSION(6,8,0)
                        eventfd_signal(ctx);
                #else
                        eventfd_signal(ctx, 1);
                #endif
        read_unlock(&interrupt_data->eventfd_ctx_lock);

so it would work with both recent kernels: 6.5.13-5-pve 6.8.1-1-pve