summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Laß2023-08-28 22:05:35 +0200
committerMichael Laß2023-08-28 22:05:35 +0200
commit0e685ff6d6d114f5d15f7df4b0b36d8ffc01047f (patch)
tree70cb95308a1fc0d6b06ce77eab9f7a98304b4b51
parentd3d26c9b01d135ab86e0c63d4a89ff237ac6bfb2 (diff)
downloadaur-0e685ff6d6d114f5d15f7df4b0b36d8ffc01047f.tar.gz
Prepare for Linux 6.5
-rw-r--r--.SRCINFO10
-rw-r--r--0001-Linux-6.5-Replace-generic_file_splice_read.patch67
-rw-r--r--0002-LINUX-Make-sysctl-definitions-more-concise.patch318
-rw-r--r--0003-Linux-6.5-Use-register_sysctl.patch107
-rw-r--r--0004-hcrypto-rename-abort-to-_afscrypto_abort.patch73
-rw-r--r--PKGBUILD23
6 files changed, 593 insertions, 5 deletions
diff --git a/.SRCINFO b/.SRCINFO
index f2d4de8287e4..e0b39e54cb90 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = openafs-modules
pkgdesc = Kernel module for OpenAFS
pkgver = 1.8.10
- pkgrel = 1
+ pkgrel = 2
url = http://www.openafs.org
install = openafs-modules.install
arch = i686
@@ -15,6 +15,14 @@ pkgbase = openafs-modules
conflicts = openafs<1.6.6-2
options = !emptydirs
source = http://openafs.org/dl/openafs/1.8.10/openafs-1.8.10-src.tar.bz2
+ source = 0001-Linux-6.5-Replace-generic_file_splice_read.patch
+ source = 0002-LINUX-Make-sysctl-definitions-more-concise.patch
+ source = 0003-Linux-6.5-Use-register_sysctl.patch
+ source = 0004-hcrypto-rename-abort-to-_afscrypto_abort.patch
sha256sums = 9fec11364623549e8db7374072f5c8f01b841f6bfe7e85673cbce35ff43ffb07
+ sha256sums = 0d926266a44d210d27564773731086af5da37ea9f541a94077aa82afd0181584
+ sha256sums = 132aaa4a55d22756b77c77326b0858215217f9c45e207c891b2b3207d107489c
+ sha256sums = 349c6335343cad6b2b5dbce85fabb7679522a89e035cdadaa7545de5e7f5dcde
+ sha256sums = 60c788f28afa589ae7535154efc8c1c7d9a28852e5bb3433878377fee3e522a1
pkgname = openafs-modules
diff --git a/0001-Linux-6.5-Replace-generic_file_splice_read.patch b/0001-Linux-6.5-Replace-generic_file_splice_read.patch
new file mode 100644
index 000000000000..07a96be3e9ef
--- /dev/null
+++ b/0001-Linux-6.5-Replace-generic_file_splice_read.patch
@@ -0,0 +1,67 @@
+From 04083bc9a31156e34782b689993737f7c9def427 Mon Sep 17 00:00:00 2001
+From: Cheyenne Wills <cwills@sinenomine.net>
+Date: Sun, 9 Jul 2023 18:52:23 -0600
+Subject: [PATCH 1/4] Linux 6.5: Replace generic_file_splice_read
+
+The Linux 6.5 commit:
+ 'splice: Remove generic_file_splice_read()' (c6585011bc)
+replaces the function generic_file_splice_read() with the function
+filemap_splice_read().
+
+The Linux function 'filemap_splice_read()' was introduced with the
+Linux 6.3 commits:
+
+ 'splice: Add a func to do a splice from a buffered file without
+ ITER_PIPE' (07073eb01c)
+ 'splice: Export filemap/direct_splice_read()' (7c8e01ebf2)
+
+With updates in Linux 6.5:
+ 'splice: Fix filemap_splice_read() to use the correct inode'
+ (c37222082f) -- which fixes a problem in the code.
+ 'splice: Make filemap_splice_read() check s_maxbytes' (83aeff881e)
+
+Due to the fact that there could be problems with splice support prior
+to Linux 6.5 (where filemap_splice_read()'s use was expanded to
+additional filesystems other than just cifs), we only want to use
+'filemap_splice_read()' in Linux 6.5 and later.
+
+The LINUX/osi_vnodeops.c file is updated to use 'filemap_splice_read()',
+for Linux 6.5 and later, for the splice_read member of the
+file_operations structure.
+
+Reviewed-on: https://gerrit.openafs.org/15486
+Tested-by: BuildBot <buildbot@rampaginggeek.com>
+Reviewed-by: Andrew Deason <adeason@sinenomine.net>
+Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
+(cherry picked from commit 0e06eb78f293bb295b0fe12da24abd8dc1160149)
+
+Change-Id: I3b5436234d275253a37987dc40a522ae8f3cae1e
+Reviewed-on: https://gerrit.openafs.org/15520
+Tested-by: BuildBot <buildbot@rampaginggeek.com>
+Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
+Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
+Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
+(cherry picked from commit fef245769366efe8694ddadd1e1f2ed5ef8608f4)
+---
+ src/afs/LINUX/osi_vnodeops.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
+index ccec38289..dd8b39d5d 100644
+--- a/src/afs/LINUX/osi_vnodeops.c
++++ b/src/afs/LINUX/osi_vnodeops.c
+@@ -960,7 +960,11 @@ struct file_operations afs_file_fops = {
+ # else
+ .splice_write = generic_file_splice_write,
+ # endif
++# if LINUX_VERSION_CODE >= KERNEL_VERSION(6,5,0)
++ .splice_read = filemap_splice_read,
++# else
+ .splice_read = generic_file_splice_read,
++# endif
+ #endif
+ .release = afs_linux_release,
+ .fsync = afs_linux_fsync,
+--
+2.42.0
+
diff --git a/0002-LINUX-Make-sysctl-definitions-more-concise.patch b/0002-LINUX-Make-sysctl-definitions-more-concise.patch
new file mode 100644
index 000000000000..78dd66d422c7
--- /dev/null
+++ b/0002-LINUX-Make-sysctl-definitions-more-concise.patch
@@ -0,0 +1,318 @@
+From 48e0bd7d929fac0cd415c7e8f7886782dcd324ef Mon Sep 17 00:00:00 2001
+From: Andrew Deason <adeason@sinenomine.net>
+Date: Thu, 18 Jul 2019 22:56:48 -0500
+Subject: [PATCH 2/4] LINUX: Make sysctl definitions more concise
+
+Our sysctl definitions are quite verbose, and adding new ones involves
+copying a bunch of lines. Make these a little easier to specify, by
+defining some new preprocessor macros.
+
+Reviewed-on: https://gerrit.openafs.org/13700
+Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
+Tested-by: Benjamin Kaduk <kaduk@mit.edu>
+(cherry picked from commit 1b0bb8a7fcbd69d513ed30bb76fd0693d1bd3319)
+
+Change-Id: Ib656634ed956b845c89656069aa297253acce785
+Reviewed-on: https://gerrit.openafs.org/15521
+Tested-by: BuildBot <buildbot@rampaginggeek.com>
+Reviewed-by: Andrew Deason <adeason@sinenomine.net>
+Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
+Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
+Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
+(cherry picked from commit d15c7ab50c92671052cbe9a93b0440c81156d8aa)
+---
+ src/afs/LINUX/osi_sysctl.c | 252 +++++++------------------------------
+ 1 file changed, 45 insertions(+), 207 deletions(-)
+
+diff --git a/src/afs/LINUX/osi_sysctl.c b/src/afs/LINUX/osi_sysctl.c
+index 8e7dd70e1..894c49412 100644
+--- a/src/afs/LINUX/osi_sysctl.c
++++ b/src/afs/LINUX/osi_sysctl.c
+@@ -18,6 +18,8 @@
+ #include <linux/config.h>
+ #endif
+
++#ifdef CONFIG_SYSCTL
++
+ /* From afs_util.c */
+ extern afs_int32 afs_md5inum;
+
+@@ -31,206 +33,48 @@ extern afs_int32 afs_blocksUsed_2;
+ extern afs_int32 afs_pct1;
+ extern afs_int32 afs_pct2;
+
+-#ifdef CONFIG_SYSCTL
++# ifdef STRUCT_CTL_TABLE_HAS_CTL_NAME
++# ifdef CTL_UNNUMBERED
++# define AFS_SYSCTL_NAME(num) .ctl_name = CTL_UNNUMBERED,
++# else
++# define AFS_SYSCTL_NAME(num) .ctl_name = num,
++# endif
++# else
++# define AFS_SYSCTL_NAME(num)
++# endif
++
++# define AFS_SYSCTL_INT2(num, perms, name, var) { \
++ AFS_SYSCTL_NAME(num) \
++ .procname = name, \
++ .data = &var, \
++ .maxlen = sizeof(var), \
++ .mode = perms, \
++ .proc_handler = &proc_dointvec \
++}
++# define AFS_SYSCTL_INT(num, perms, var) \
++ AFS_SYSCTL_INT2(num, perms, #var, var)
++
+ static struct ctl_table_header *afs_sysctl = NULL;
+
+ static struct ctl_table afs_sysctl_table[] = {
+- {
+-#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
+-#if defined(CTL_UNNUMBERED)
+- .ctl_name = CTL_UNNUMBERED,
+-#else
+- .ctl_name = 1,
+-#endif
+-#endif
+- .procname = "hm_retry_RO",
+- .data = &hm_retry_RO,
+- .maxlen = sizeof(afs_int32),
+- .mode = 0644,
+- .proc_handler = &proc_dointvec
+- },
+- {
+-#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
+-#if defined(CTL_UNNUMBERED)
+- .ctl_name = CTL_UNNUMBERED,
+-#else
+- .ctl_name = 2,
+-#endif
+-#endif
+- .procname = "hm_retry_RW",
+- .data = &hm_retry_RW,
+- .maxlen = sizeof(afs_int32),
+- .mode = 0644,
+- .proc_handler = &proc_dointvec
+- },
+- {
+-#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
+-#if defined(CTL_UNNUMBERED)
+- .ctl_name = CTL_UNNUMBERED,
+-#else
+- .ctl_name = 3,
+-#endif
+-#endif
+- .procname = "hm_retry_int",
+- .data = &hm_retry_int,
+- .maxlen = sizeof(afs_int32),
+- .mode = 0644,
+- .proc_handler = &proc_dointvec
+- },
+- {
+-#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
+-#if defined(CTL_UNNUMBERED)
+- .ctl_name = CTL_UNNUMBERED,
+-#else
+- .ctl_name = 4,
+-#endif
+-#endif
+- .procname = "GCPAGs",
+- .data = &afs_gcpags,
+- .maxlen = sizeof(afs_int32),
+- .mode = 0644,
+- .proc_handler = &proc_dointvec
+- },
+- {
+-#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
+-#if defined(CTL_UNNUMBERED)
+- .ctl_name = CTL_UNNUMBERED,
+-#else
+- .ctl_name = 5,
+-#endif
+-#endif
+- .procname = "rx_deadtime",
+- .data = &afs_rx_deadtime,
+- .maxlen = sizeof(afs_int32),
+- .mode = 0644,
+- .proc_handler = &proc_dointvec
+- },
+- {
+-#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
+-#if defined(CTL_UNNUMBERED)
+- .ctl_name = CTL_UNNUMBERED,
+-#else
+- .ctl_name = 6,
+-#endif
+-#endif
+- .procname = "bkVolPref",
+- .data = &afs_bkvolpref,
+- .maxlen = sizeof(afs_int32),
+- .mode = 0644,
+- .proc_handler = &proc_dointvec
+- },
+- {
+-#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
+-#if defined(CTL_UNNUMBERED)
+- .ctl_name = CTL_UNNUMBERED,
+-#else
+- .ctl_name = 7,
+-#endif
+-#endif
+- .procname = "afs_blocksUsed",
+- .data = &afs_blocksUsed,
+- .maxlen = sizeof(afs_int32),
+- .mode = 0444,
+- .proc_handler = &proc_dointvec
+- },
+- {
+-#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
+-#if defined(CTL_UNNUMBERED)
+- .ctl_name = CTL_UNNUMBERED,
+-#else
+- .ctl_name = 8,
+-#endif
+-#endif
+- .procname = "afs_blocksUsed_0",
+- .data = &afs_blocksUsed_0,
+- .maxlen = sizeof(afs_int32),
+- .mode = 0644,
+- .proc_handler = &proc_dointvec
+- },
+- {
+-#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
+-#if defined(CTL_UNNUMBERED)
+- .ctl_name = CTL_UNNUMBERED,
+-#else
+- .ctl_name = 9,
+-#endif
+-#endif
+- .procname = "afs_blocksUsed_1",
+- .data = &afs_blocksUsed_1,
+- .maxlen = sizeof(afs_int32),
+- .mode = 0644,
+- .proc_handler = &proc_dointvec
+- },
+- {
+-#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
+-#if defined(CTL_UNNUMBERED)
+- .ctl_name = CTL_UNNUMBERED,
+-#else
+- .ctl_name = 10,
+-#endif
+-#endif
+- .procname = "afs_blocksUsed_2",
+- .data = &afs_blocksUsed_2,
+- .maxlen = sizeof(afs_int32),
+- .mode = 0644,
+- .proc_handler = &proc_dointvec
+- },
+- {
+-#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
+-#if defined(CTL_UNNUMBERED)
+- .ctl_name = CTL_UNNUMBERED,
+-#else
+- .ctl_name = 11,
+-#endif
+-#endif
+- .procname = "afs_pct1",
+- .data = &afs_pct1,
+- .maxlen = sizeof(afs_int32),
+- .mode = 0644,
+- .proc_handler = &proc_dointvec
+- },
+- {
+-#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
+-#if defined(CTL_UNNUMBERED)
+- .ctl_name = CTL_UNNUMBERED,
+-#else
+- .ctl_name = 12,
+-#endif
+-#endif
+- .procname = "afs_pct2",
+- .data = &afs_pct2,
+- .maxlen = sizeof(afs_int32),
+- .mode = 0644,
+- .proc_handler = &proc_dointvec
+- },
+- {
+-#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
+-#if defined(CTL_UNNUMBERED)
+- .ctl_name = CTL_UNNUMBERED,
+-#else
+- .ctl_name = 13,
+-#endif
+-#endif
+- .procname = "afs_cacheBlocks",
+- .data = &afs_cacheBlocks,
+- .maxlen = sizeof(afs_int32),
+- .mode = 0644,
+- .proc_handler = &proc_dointvec
+- },
+- {
+-#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
+-#if defined(CTL_UNNUMBERED)
+- .ctl_name = CTL_UNNUMBERED,
+-#else
+- .ctl_name = 14,
+-#endif
+-#endif
+- .procname = "md5inum",
+- .data = &afs_md5inum,
+- .maxlen = sizeof(afs_int32),
+- .mode = 0644,
+- .proc_handler = &proc_dointvec
+- },
++ AFS_SYSCTL_INT(1, 0644, hm_retry_RO),
++ AFS_SYSCTL_INT(2, 0644, hm_retry_RW),
++ AFS_SYSCTL_INT(3, 0644, hm_retry_int),
++
++ AFS_SYSCTL_INT2(4, 0644, "GCPAGs", afs_gcpags),
++ AFS_SYSCTL_INT2(5, 0644, "rx_deadtime", afs_rx_deadtime),
++ AFS_SYSCTL_INT2(6, 0644, "bkVolPref", afs_bkvolpref),
++
++ AFS_SYSCTL_INT( 7, 0444, afs_blocksUsed),
++ AFS_SYSCTL_INT( 8, 0644, afs_blocksUsed_0),
++ AFS_SYSCTL_INT( 9, 0644, afs_blocksUsed_1),
++ AFS_SYSCTL_INT(10, 0644, afs_blocksUsed_2),
++
++ AFS_SYSCTL_INT( 11, 0644, afs_pct1),
++ AFS_SYSCTL_INT( 12, 0644, afs_pct2),
++ AFS_SYSCTL_INT( 13, 0644, afs_cacheBlocks),
++ AFS_SYSCTL_INT2(14, 0644, "md5inum", afs_md5inum),
++
+ {
+ .procname = 0
+ }
+@@ -238,13 +82,7 @@ static struct ctl_table afs_sysctl_table[] = {
+
+ static struct ctl_table fs_sysctl_table[] = {
+ {
+-#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
+-#if defined(CTL_UNNUMBERED)
+- .ctl_name = CTL_UNNUMBERED,
+-#else
+- .ctl_name = 1,
+-#endif
+-#endif
++ AFS_SYSCTL_NAME(1)
+ .procname = "afs",
+ .mode = 0555,
+ .child = afs_sysctl_table
+@@ -257,11 +95,11 @@ static struct ctl_table fs_sysctl_table[] = {
+ int
+ osi_sysctl_init(void)
+ {
+-#if defined(REGISTER_SYSCTL_TABLE_NOFLAG)
++# if defined(REGISTER_SYSCTL_TABLE_NOFLAG)
+ afs_sysctl = register_sysctl_table(fs_sysctl_table);
+-#else
++# else
+ afs_sysctl = register_sysctl_table(fs_sysctl_table, 0);
+-#endif
++# endif
+ if (!afs_sysctl)
+ return -1;
+
+--
+2.42.0
+
diff --git a/0003-Linux-6.5-Use-register_sysctl.patch b/0003-Linux-6.5-Use-register_sysctl.patch
new file mode 100644
index 000000000000..8f51893015a0
--- /dev/null
+++ b/0003-Linux-6.5-Use-register_sysctl.patch
@@ -0,0 +1,107 @@
+From aef0016df74fcd3da0f6cb6622d73cd9ceb77358 Mon Sep 17 00:00:00 2001
+From: Cheyenne Wills <cwills@sinenomine.net>
+Date: Thu, 13 Jul 2023 10:54:22 -0600
+Subject: [PATCH 3/4] Linux 6.5: Use register_sysctl()
+
+The linux 6.5 commit:
+ "sysctl: Remove register_sysctl_table" (b8cbc0855a)
+removed the Linux function register_sysctl_table(). The replacement
+function is register_sysctl(), which offers a simpler interface.
+
+Add an autoconf test for the Linux function register_sysctl and add a
+call to register_sysctl when available.
+
+Notes:
+The Linux function register_sysctl was added in Linux 3.3 with the
+commit:
+ 'sysctl: Add register_sysctl for normal sysctl users' (fea478d410)
+with a note that it is a simpler interface.
+
+The function register_sysctl_table was marked as deprecated with the
+Linux 6.3 commit:
+ 'proc_sysctl: enhance documentation' (1dc8689e4c)
+
+Reviewed-on: https://gerrit.openafs.org/15500
+Tested-by: BuildBot <buildbot@rampaginggeek.com>
+Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
+(cherry picked from commit fb31d299e6caa015f6288ba9186da6277d3d6a8d)
+
+Change-Id: I60f68f1dd95c32bada7179e98250fd44d7c2ddf3
+Reviewed-on: https://gerrit.openafs.org/15522
+Tested-by: BuildBot <buildbot@rampaginggeek.com>
+Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
+Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
+Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
+(cherry picked from commit 63801cfd1fc06ec3259fcfd67229f3a3c70447ed)
+---
+ src/afs/LINUX/osi_sysctl.c | 8 +++++---
+ src/cf/linux-kernel-assorted.m4 | 4 +++-
+ src/cf/linux-kernel-func.m4 | 8 ++++++++
+ 3 files changed, 16 insertions(+), 4 deletions(-)
+
+diff --git a/src/afs/LINUX/osi_sysctl.c b/src/afs/LINUX/osi_sysctl.c
+index 894c49412..a0a039892 100644
+--- a/src/afs/LINUX/osi_sysctl.c
++++ b/src/afs/LINUX/osi_sysctl.c
+@@ -79,7 +79,7 @@ static struct ctl_table afs_sysctl_table[] = {
+ .procname = 0
+ }
+ };
+-
++# if !defined(HAVE_LINUX_REGISTER_SYSCTL)
+ static struct ctl_table fs_sysctl_table[] = {
+ {
+ AFS_SYSCTL_NAME(1)
+@@ -91,11 +91,13 @@ static struct ctl_table fs_sysctl_table[] = {
+ .procname = 0
+ }
+ };
+-
++# endif
+ int
+ osi_sysctl_init(void)
+ {
+-# if defined(REGISTER_SYSCTL_TABLE_NOFLAG)
++# if defined(HAVE_LINUX_REGISTER_SYSCTL)
++ afs_sysctl = register_sysctl("afs", afs_sysctl_table);
++# elif defined(REGISTER_SYSCTL_TABLE_NOFLAG)
+ afs_sysctl = register_sysctl_table(fs_sysctl_table);
+ # else
+ afs_sysctl = register_sysctl_table(fs_sysctl_table, 0);
+diff --git a/src/cf/linux-kernel-assorted.m4 b/src/cf/linux-kernel-assorted.m4
+index 03d5f6583..b3a11bc3a 100644
+--- a/src/cf/linux-kernel-assorted.m4
++++ b/src/cf/linux-kernel-assorted.m4
+@@ -39,7 +39,9 @@ LINUX_LINUX_KEYRING_SUPPORT
+ LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
+ LINUX_KEY_ALLOC_NEEDS_CRED
+ LINUX_INIT_WORK_HAS_DATA
+-LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
++dnl Don't bother checking register_sysctl_table if using register_sysctl
++AS_IF([test "x$ac_cv_linux_func_register_sysctl" != "xyes"],
++ [LINUX_REGISTER_SYSCTL_TABLE_NOFLAG])
+ LINUX_HAVE_DCACHE_LOCK
+ LINUX_D_COUNT_IS_INT
+ LINUX_IOP_GETATTR_TAKES_PATH_STRUCT
+diff --git a/src/cf/linux-kernel-func.m4 b/src/cf/linux-kernel-func.m4
+index ee22158db..811954915 100644
+--- a/src/cf/linux-kernel-func.m4
++++ b/src/cf/linux-kernel-func.m4
+@@ -217,6 +217,14 @@ AC_CHECK_LINUX_FUNC([block_dirty_folio],
+ #include <linux/buffer_head.h>],
+ [block_dirty_folio(NULL, NULL);])
+
++dnl Linux 6.5 removed the Linux function register_sysctl_table(), which
++dnl was deprecated in Linux 6.3 in favor of register_sysctl() which was
++dnl introduced in Linux 3.3
++AC_CHECK_LINUX_FUNC([register_sysctl],
++ [#include <linux/kernel.h>
++ #include <linux/sysctl.h>],
++ [(void)register_sysctl(NULL, NULL);])
++
+ dnl Consequences - things which get set as a result of the
+ dnl above tests
+ AS_IF([test "x$ac_cv_linux_func_d_alloc_anon" = "xno"],
+--
+2.42.0
+
diff --git a/0004-hcrypto-rename-abort-to-_afscrypto_abort.patch b/0004-hcrypto-rename-abort-to-_afscrypto_abort.patch
new file mode 100644
index 000000000000..692702d9232e
--- /dev/null
+++ b/0004-hcrypto-rename-abort-to-_afscrypto_abort.patch
@@ -0,0 +1,73 @@
+From 01d7316f6773591186f606de5e3b12de28bb0cd9 Mon Sep 17 00:00:00 2001
+From: Cheyenne Wills <cwills@sinenomine.net>
+Date: Sun, 9 Jul 2023 18:45:15 -0600
+Subject: [PATCH 4/4] hcrypto: rename abort to _afscrypto_abort
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The Linux 6.5 commit:
+ panic: make function declarations visible (d9cdb43189)
+added a declaration for abort into panic.h.
+
+When building the Linux kernel module, the build fails with the
+following:
+
+ src/crypto/hcrypto/kernel/config.h:95:20: error: static declaration of
+ ‘abort’ follows non-static declaration
+ 95 | static_inline void abort(void) {osi_Panic("hckernel aborting\n"
+ );}
+ | ^~~~~
+ ...
+ from ./include/linux/wait.h:9,
+ from /openafs/src/afs/sysincludes.h:118,
+ from /openafs/src/crypto/hcrypto/kernel/config.h:30:
+ ./include/linux/panic.h:36:6: note: previous declaration of ‘abort’
+ with type ‘void(void)’
+ 36 | void abort(void);
+ | ^~~~~
+
+Update the declaration in hcrypto/kernel/config.h to change the function
+name from abort to _afscrypto_abort and use a preprocessor define to
+map abort to _afscrypto_abort.
+
+Reviewed-on: https://gerrit.openafs.org/15501
+Reviewed-by: Andrew Deason <adeason@sinenomine.net>
+Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
+Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
+Tested-by: Benjamin Kaduk <kaduk@mit.edu>
+(cherry picked from commit c4c16890d9d2829f6bef1ef58feafb30b1d59da3)
+
+Change-Id: I54cc9156b98320d04fe6f7bb595a150d5ba87b49
+Reviewed-on: https://gerrit.openafs.org/15523
+Tested-by: BuildBot <buildbot@rampaginggeek.com>
+Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
+Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
+Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
+(cherry picked from commit 538f450033a67e251b473ff92238b3124b85fc72)
+---
+ src/crypto/hcrypto/kernel/config.h | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/src/crypto/hcrypto/kernel/config.h b/src/crypto/hcrypto/kernel/config.h
+index 9623fa9e7..ea0f60b64 100644
+--- a/src/crypto/hcrypto/kernel/config.h
++++ b/src/crypto/hcrypto/kernel/config.h
+@@ -91,7 +91,13 @@ extern int osi_readRandom(void *, afs_size_t);
+ static_inline pid_t getpid(void) {return 1;};
+ #endif
+ static_inline int open(const char *path, int flags, ...) {return -1;}
+-static_inline void abort(void) {osi_Panic("hckernel aborting\n");}
++
++#ifdef abort
++# undef abort
++#endif
++#define abort _afscrypto_abort
++static_inline void _afscrypto_abort(void) {osi_Panic("hckernel aborting\n");}
++
+ static_inline void rk_cloexec(int fd) {}
+ static_inline ssize_t read(int d, void *buf, size_t nbytes) {return -1;}
+ static_inline int close(int d) {return -1;}
+--
+2.42.0
+
diff --git a/PKGBUILD b/PKGBUILD
index 668531cf7647..0f7cd3e2ffc1 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,7 +6,7 @@
pkgname=openafs-modules
_srcname=openafs
pkgver=1.8.10
-pkgrel=1
+pkgrel=2
pkgdesc="Kernel module for OpenAFS"
arch=('i686' 'x86_64' 'armv7h')
url="http://www.openafs.org"
@@ -16,8 +16,16 @@ makedepends=('libelf' 'linux-headers')
conflicts=('openafs-features-libafs' 'openafs<1.6.6-2')
options=(!emptydirs)
install=openafs-modules.install
-source=(http://openafs.org/dl/openafs/${pkgver}/${_srcname}-${pkgver}-src.tar.bz2)
-sha256sums=('9fec11364623549e8db7374072f5c8f01b841f6bfe7e85673cbce35ff43ffb07')
+source=(http://openafs.org/dl/openafs/${pkgver}/${_srcname}-${pkgver}-src.tar.bz2
+ 0001-Linux-6.5-Replace-generic_file_splice_read.patch
+ 0002-LINUX-Make-sysctl-definitions-more-concise.patch
+ 0003-Linux-6.5-Use-register_sysctl.patch
+ 0004-hcrypto-rename-abort-to-_afscrypto_abort.patch)
+sha256sums=('9fec11364623549e8db7374072f5c8f01b841f6bfe7e85673cbce35ff43ffb07'
+ '0d926266a44d210d27564773731086af5da37ea9f541a94077aa82afd0181584'
+ '132aaa4a55d22756b77c77326b0858215217f9c45e207c891b2b3207d107489c'
+ '349c6335343cad6b2b5dbce85fabb7679522a89e035cdadaa7545de5e7f5dcde'
+ '60c788f28afa589ae7535154efc8c1c7d9a28852e5bb3433878377fee3e522a1')
# Heuristic to determine version of installed kernel
# You can modify this if the heuristic fails
@@ -31,8 +39,15 @@ _extramodules="/usr/lib/modules/${_kernelver}/extramodules"
prepare() {
cd "${srcdir}/${_srcname}-${pkgver}"
+
+ # Patches for Linux 6.5
+ patch -p1 < "${srcdir}"/0001-Linux-6.5-Replace-generic_file_splice_read.patch
+ patch -p1 < "${srcdir}"/0002-LINUX-Make-sysctl-definitions-more-concise.patch
+ patch -p1 < "${srcdir}"/0003-Linux-6.5-Use-register_sysctl.patch
+ patch -p1 < "${srcdir}"/0004-hcrypto-rename-abort-to-_afscrypto_abort.patch
+
# Only needed when changes to configure were made
- #./regen.sh -q
+ ./regen.sh -q
}
build() {