diff options
author | Michael Laß | 2023-08-28 22:06:55 +0200 |
---|---|---|
committer | Michael Laß | 2023-08-28 22:06:55 +0200 |
commit | 4b2fa422803735e68c6c8cada472a999912b0769 (patch) | |
tree | 45a6305077a91767cf2617311bbd5470818d917f | |
parent | cf8e3655be06fb08dd14bb96840f08102cd1154b (diff) | |
download | aur-4b2fa422803735e68c6c8cada472a999912b0769.tar.gz |
Prepare for Linux 6.5
-rw-r--r-- | .SRCINFO | 10 | ||||
-rw-r--r-- | 0001-Linux-6.5-Replace-generic_file_splice_read.patch | 67 | ||||
-rw-r--r-- | 0002-LINUX-Make-sysctl-definitions-more-concise.patch | 318 | ||||
-rw-r--r-- | 0003-Linux-6.5-Use-register_sysctl.patch | 107 | ||||
-rw-r--r-- | 0004-hcrypto-rename-abort-to-_afscrypto_abort.patch | 73 | ||||
-rw-r--r-- | PKGBUILD | 23 |
6 files changed, 593 insertions, 5 deletions
@@ -1,7 +1,7 @@ pkgbase = openafs-modules-dkms pkgdesc = Kernel module for OpenAFS (dkms) pkgver = 1.8.10 - pkgrel = 1 + pkgrel = 2 url = http://www.openafs.org arch = i686 arch = x86_64 @@ -17,7 +17,15 @@ pkgbase = openafs-modules-dkms options = !emptydirs source = http://openafs.org/dl/openafs/1.8.10/openafs-1.8.10-src.tar.bz2 source = dkms.conf + 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 = 5ea5e184f9b44f5ed45817d2b5a10149d15c8c54f49e0b5b4b773652673cb9b0 + sha256sums = 0d926266a44d210d27564773731086af5da37ea9f541a94077aa82afd0181584 + sha256sums = 132aaa4a55d22756b77c77326b0858215217f9c45e207c891b2b3207d107489c + sha256sums = 349c6335343cad6b2b5dbce85fabb7679522a89e035cdadaa7545de5e7f5dcde + sha256sums = 60c788f28afa589ae7535154efc8c1c7d9a28852e5bb3433878377fee3e522a1 pkgname = openafs-modules-dkms 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 + @@ -7,7 +7,7 @@ pkgname=openafs-modules-dkms _srcname=openafs pkgver=1.8.10 -pkgrel=1 +pkgrel=2 pkgdesc="Kernel module for OpenAFS (dkms)" arch=('i686' 'x86_64' 'armv7h') url="http://www.openafs.org" @@ -17,14 +17,29 @@ provides=("openafs-modules=$pkgver") conflicts=('openafs-features-libafs' 'openafs-modules' 'openafs<1.6.6-2') options=(!emptydirs) source=(http://openafs.org/dl/openafs/${pkgver}/${_srcname}-${pkgver}-src.tar.bz2 - dkms.conf) + dkms.conf + 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' - '5ea5e184f9b44f5ed45817d2b5a10149d15c8c54f49e0b5b4b773652673cb9b0') + '5ea5e184f9b44f5ed45817d2b5a10149d15c8c54f49e0b5b4b773652673cb9b0' + '0d926266a44d210d27564773731086af5da37ea9f541a94077aa82afd0181584' + '132aaa4a55d22756b77c77326b0858215217f9c45e207c891b2b3207d107489c' + '349c6335343cad6b2b5dbce85fabb7679522a89e035cdadaa7545de5e7f5dcde' + '60c788f28afa589ae7535154efc8c1c7d9a28852e5bb3433878377fee3e522a1') 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() { |