Package: release.debian.org
Severity: normal
Tags: bookworm
User: release.debian....@packages.debian.org
Usertags: pu
X-Debbugs-Cc: t...@debian.org
Control: affects -1 + src:rapiddisk

[ Reason ]
An upstream change from Linux 6.9 got backported by upstream to
Linux 6.1.83 and causes module build failures of rapiddisk-dkms in
stable since the interface of dm_io() has changed.

[ Impact ]
rapiddisk is unusable with the current (and future) stable kernels.

[ Tests ]
autopkgtest-pkg-dkms
local autopkgtest run in bookworm

[ Risks ]
Low. It's unusable right now.

[ Checklist ]
  [*] *all* changes are documented in the d/changelog
  [*] I reviewed all changes and I approve them
  [*] attach debdiff against the package in (old)stable
  [ ] the issue is verified as fixed in unstable
      Working on it, it requires additional changes for supporting
      Linux 6.9 and Linux 6.10 that I'd like to get approved by upstream
      and/or the maintainer first

[ Changes ]
  * Drop unused obsolete patches.
    - to avoid confusion
  * Fix module build for Linux <4.3.
    - all other uses of bi_status/bi_error (in rapiddisk-cache.c) were
      already in '#if KVER >= 4.3' blocks, so do the same with the
      remaining one in rapiddisk.c
  * Fix module build for Linux 6.1.83, 6.6.23, 6.7.11, 6.8.2.
    (Closes: #1069945)
    - that is the RC fix, based on upstream's fix but extended to cover
      all stable kernel versions that got the change backported
  * dkms.conf: Set BUILD_EXCLUSIVE_KERNEL_MIN="2.6.39" for using kstrto*().
    - be explicit about the supported versions

[ Other info ]
n/a


Andreas
diff -Nru rapiddisk-9.0.0/debian/changelog rapiddisk-9.0.0/debian/changelog
--- rapiddisk-9.0.0/debian/changelog    2023-02-03 07:45:15.000000000 +0100
+++ rapiddisk-9.0.0/debian/changelog    2024-08-04 12:15:49.000000000 +0200
@@ -1,3 +1,14 @@
+rapiddisk (9.0.0-1+deb12u1) bookworm; urgency=medium
+
+  * Non-maintainer upload.
+  * Drop unused obsolete patches.
+  * Fix module build for Linux <4.3.
+  * Fix module build for Linux 6.1.83, 6.6.23, 6.7.11, 6.8.2.
+    (Closes: #1069945)
+  * dkms.conf: Set BUILD_EXCLUSIVE_KERNEL_MIN="2.6.39" for using kstrto*().
+
+ -- Andreas Beckmann <a...@debian.org>  Sun, 04 Aug 2024 12:15:49 +0200
+
 rapiddisk (9.0.0-1) unstable; urgency=medium
 
   * New upstream version.
diff -Nru rapiddisk-9.0.0/debian/dkms rapiddisk-9.0.0/debian/dkms
--- rapiddisk-9.0.0/debian/dkms 2023-01-31 14:28:59.000000000 +0100
+++ rapiddisk-9.0.0/debian/dkms 2024-08-04 12:15:49.000000000 +0200
@@ -7,3 +7,7 @@
 BUILT_MODULE_NAME[1]="rapiddisk-cache"
 DEST_MODULE_LOCATION[0]=/extra
 DEST_MODULE_LOCATION[1]=/extra
+
+# kstrto*() were introduced in v2.6.39-rc1 by "kstrto*: converting strings to
+# integers done (hopefully) right" (33ee3b2e2eb9b4b6c64dcf9ed66e2ac3124e748c)
+BUILD_EXCLUSIVE_KERNEL_MIN="2.6.39"
diff -Nru rapiddisk-9.0.0/debian/patches/0001-Support-linux-5.19.patch 
rapiddisk-9.0.0/debian/patches/0001-Support-linux-5.19.patch
--- rapiddisk-9.0.0/debian/patches/0001-Support-linux-5.19.patch        
2023-01-31 14:28:59.000000000 +0100
+++ rapiddisk-9.0.0/debian/patches/0001-Support-linux-5.19.patch        
1970-01-01 01:00:00.000000000 +0100
@@ -1,53 +0,0 @@
-From: Andrea Righi <andrea.ri...@canonical.com>
-Subject: [PATCH] Support linux 5.19.
-Source: upstream, 
https://github.com/pkoutoupis/rapiddisk/pull/116/commits/48e901f08fc1199d917d15e4c68b8a6fec822e1a
-
-Signed-off-by: Andrea Righi <andrea.ri...@canonical.com>
----
- module/rapiddisk.c | 18 +++++++++++++++++-
- 1 file changed, 17 insertions(+), 1 deletion(-)
-
-Index: rapiddisk-8.2.0/module/rapiddisk.c
-===================================================================
---- rapiddisk-8.2.0.orig/module/rapiddisk.c
-+++ rapiddisk-8.2.0/module/rapiddisk.c
-@@ -633,6 +633,18 @@ io_error:
- #endif
- }
- 
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,19,0)
-+static inline int bdev_openers(struct block_device *bdev)
-+{
-+      return atomic_read(&bdev->bd_openers);
-+}
-+#else
-+static inline int bdev_openers(struct block_device *bdev)
-+{
-+      return bdev->bd_openers;
-+}
-+#endif
-+
- static int rdsk_ioctl(struct block_device *bdev, fmode_t mode,
-                     unsigned int cmd, unsigned long arg)
- {
-@@ -660,7 +672,7 @@ static int rdsk_ioctl(struct block_devic
-               mutex_lock(&bdev->bd_mutex);
- #endif
-               error = -EBUSY;
--              if (bdev->bd_openers <= 1) {
-+              if (bdev_openers(bdev) <= 1) {
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0) || (defined(RHEL_MAJOR) && 
RHEL_MAJOR == 8 && RHEL_MINOR >= 4)
-                       invalidate_bdev(bdev);
-@@ -805,7 +817,11 @@ static int attach_device(int size)
-       disk->queue->nr_requests = nr_requests;
-       disk->queue->limits.discard_granularity = PAGE_SIZE;
-       disk->queue->limits.max_discard_sectors = UINT_MAX;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,19,0)
-+      blk_queue_max_discard_sectors(disk->queue, 0);
-+#else
-       blk_queue_flag_set(QUEUE_FLAG_DISCARD, disk->queue);
-+#endif
-       blk_queue_flag_set(QUEUE_FLAG_NONROT, disk->queue);
- #else
-       rdsk->rdsk_queue->limits.max_sectors = (max_sectors * 2);
diff -Nru 
rapiddisk-9.0.0/debian/patches/0002-Adding-Linux-kernel-6.0-support-133.patch 
rapiddisk-9.0.0/debian/patches/0002-Adding-Linux-kernel-6.0-support-133.patch
--- 
rapiddisk-9.0.0/debian/patches/0002-Adding-Linux-kernel-6.0-support-133.patch   
    2023-01-31 14:28:59.000000000 +0100
+++ 
rapiddisk-9.0.0/debian/patches/0002-Adding-Linux-kernel-6.0-support-133.patch   
    1970-01-01 01:00:00.000000000 +0100
@@ -1,26 +0,0 @@
-From: Petros Koutoupis <pet...@petroskoutoupis.com>
-Date: Wed, 5 Oct 2022 12:47:15 +0000
-Subject: [PATCH] Adding Linux kernel 6.0 support (#133)
-
-Origin: upstream
----
- module/rapiddisk-cache.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-Index: rapiddisk/module/rapiddisk-cache.c
-===================================================================
---- rapiddisk.orig/module/rapiddisk-cache.c
-+++ rapiddisk/module/rapiddisk-cache.c
-@@ -175,8 +175,12 @@ int dm_io_async_bvec(unsigned int num_re
-       struct dm_io_request iorq;
- 
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0)
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,0,0)
-+      (rw == WRITE) ? (iorq.bi_opf = REQ_OP_WRITE) : (iorq.bi_opf = 
REQ_OP_READ);
-+#else
-       iorq.bi_op = rw;
-       iorq.bi_op_flags = 0;
-+#endif
- #else
-       iorq.bi_rw = rw;
- #endif
diff -Nru rapiddisk-9.0.0/debian/patches/Linux-4.3.patch 
rapiddisk-9.0.0/debian/patches/Linux-4.3.patch
--- rapiddisk-9.0.0/debian/patches/Linux-4.3.patch      1970-01-01 
01:00:00.000000000 +0100
+++ rapiddisk-9.0.0/debian/patches/Linux-4.3.patch      2024-08-04 
12:15:49.000000000 +0200
@@ -0,0 +1,20 @@
+Author: Andreas Beckmann <a...@debian.org>
+Description: fix module build for Linux <4.3
+
+--- a/module/rapiddisk.c
++++ b/module/rapiddisk.c
+@@ -648,12 +648,14 @@ out:
+       return;
+ #endif
+ #endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)
+ io_error:
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0)
+       bio->bi_status= err;
+ #else
+       bio->bi_error = err;
+ #endif
++#endif
+       bio_io_error(bio);
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0)
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(5,16,0)
diff -Nru rapiddisk-9.0.0/debian/patches/Linux-6.8.patch 
rapiddisk-9.0.0/debian/patches/Linux-6.8.patch
--- rapiddisk-9.0.0/debian/patches/Linux-6.8.patch      1970-01-01 
01:00:00.000000000 +0100
+++ rapiddisk-9.0.0/debian/patches/Linux-6.8.patch      2024-08-04 
12:15:49.000000000 +0200
@@ -0,0 +1,22 @@
+Author: Andreas Beckmann <a...@debian.org>
+Description: fix module build for Linux 6.1.83, 6.6.23, 6.7.11, 6.8.2
+Bug: https://github.com/pkoutoupis/rapiddisk/issues/184
+Bug-Debian: https://bugs.debian.org/1069945
+
+--- a/module/rapiddisk-cache.c
++++ b/module/rapiddisk-cache.c
+@@ -195,7 +210,14 @@ int dm_io_async_bvec(unsigned int num_re
+       iorq.notify.context = context;
+       iorq.client = dmc->io_client;
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,8,2)) || \
++      ((LINUX_VERSION_CODE >= KERNEL_VERSION(6,7,11)) && (LINUX_VERSION_CODE 
< KERNEL_VERSION(6,8,0))) || \
++      ((LINUX_VERSION_CODE >= KERNEL_VERSION(6,6,23)) && (LINUX_VERSION_CODE 
< KERNEL_VERSION(6,7,0))) || \
++      ((LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,83)) && (LINUX_VERSION_CODE 
< KERNEL_VERSION(6,2,0)))
++      return dm_io(&iorq, num_regions, where, NULL, IOPRIO_DEFAULT);
++#else
+       return dm_io(&iorq, num_regions, where, NULL);
++#endif
+ }
+ 
+ static int jobs_init(void)
diff -Nru rapiddisk-9.0.0/debian/patches/series 
rapiddisk-9.0.0/debian/patches/series
--- rapiddisk-9.0.0/debian/patches/series       2023-02-03 07:45:15.000000000 
+0100
+++ rapiddisk-9.0.0/debian/patches/series       2024-08-04 12:15:49.000000000 
+0200
@@ -1,2 +1,2 @@
-#0001-Support-linux-5.19.patch
-#0002-Adding-Linux-kernel-6.0-support-133.patch
+Linux-4.3.patch
+Linux-6.8.patch

Reply via email to