diff --git a/0001-fixed-eventfd_signal-for-kernels-6.8.patch b/0001-fixed-eventfd_signal-for-kernels-6.8.patch new file mode 100644 index 0000000..5084f09 --- /dev/null +++ b/0001-fixed-eventfd_signal-for-kernels-6.8.patch @@ -0,0 +1,30 @@ +From 2b0e08974e486002a70616f3c272ffb2203e044b Mon Sep 17 00:00:00 2001 +From: Robert Zaage +Date: Tue, 9 Apr 2024 22:47:40 +0200 +Subject: [PATCH] fixed eventfd_signal for kernels >= 6.8 + +--- + src/gasket_interrupt.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/src/gasket_interrupt.c b/src/gasket_interrupt.c +index 531d94e..3f8339c 100644 +--- a/src/gasket_interrupt.c ++++ b/src/gasket_interrupt.c +@@ -157,9 +157,13 @@ gasket_handle_interrupt(struct gasket_interrupt_data *interrupt_data, + trace_gasket_interrupt_event(interrupt_data->name, interrupt_index); + read_lock(&interrupt_data->eventfd_ctx_lock); + ctx = interrupt_data->eventfd_ctxs[interrupt_index]; +- if (ctx) +- eventfd_signal(ctx, 1); +- read_unlock(&interrupt_data->eventfd_ctx_lock); ++ 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); + + ++(interrupt_data->interrupt_counts[interrupt_index]); + } diff --git a/Containerfile b/Containerfile index aaf9d60..9ddbc2b 100644 --- a/Containerfile +++ b/Containerfile @@ -23,6 +23,8 @@ USER 101:101 # Build the gasket kernel module RUN git clone https://github.com/google/gasket-driver.git /usr/src/gasket-driver +COPY *.patch /usr/src/gasket-driver +RUN cd /usr/src/gasket-driver && git am *.patch RUN make \ -C /usr/src/kernels/$(rpm -q --qf %{V}-%{R}.%{ARCH} kernel-devel) \ M=/usr/src/gasket-driver/src \