diff --git a/pkgs/os-specific/linux/ch9344/default.nix b/pkgs/os-specific/linux/ch9344/default.nix index 2f290467ace7..3a6d448b784f 100644 --- a/pkgs/os-specific/linux/ch9344/default.nix +++ b/pkgs/os-specific/linux/ch9344/default.nix @@ -19,6 +19,7 @@ stdenv.mkDerivation rec { patches = [ ./fix-linux-6-12-build.patch ./fix-linux-6-15-build.patch + ./fix-linux-6-16-build.patch ]; sourceRoot = "${src.name}/driver"; diff --git a/pkgs/os-specific/linux/ch9344/fix-linux-6-16-build.patch b/pkgs/os-specific/linux/ch9344/fix-linux-6-16-build.patch new file mode 100644 index 000000000000..a66e4c4251e2 --- /dev/null +++ b/pkgs/os-specific/linux/ch9344/fix-linux-6-16-build.patch @@ -0,0 +1,16 @@ +diff --git a/ch9344.c b/ch9344.c +index 36402c0..9f0df54 100644 +--- a/ch9344.c ++++ b/ch9344.c +@@ -929,7 +929,11 @@ static void timer_function(unsigned long arg) + static void timer_function(struct timer_list *t) + { + unsigned char *buffer; ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 16, 0)) ++ struct ch9344_ttyport *ttyport = timer_container_of(ttyport, t, timer); ++#else + struct ch9344_ttyport *ttyport = from_timer(ttyport, t, timer); ++#endif + int fifolen = kfifo_len(&ttyport->rfifo); + int len; +