From e993cfcaf552ac8fcc86368cd3ec02a1ff627fc3 Mon Sep 17 00:00:00 2001 From: Jan Houben Date: Wed, 15 May 2019 18:27:30 -0400 Subject: [PATCH] Add Linux 5.1 Patches --- src/kernels/dkms.sh | 2 +- src/spl-dkms/PKGBUILD.sh | 14 ++++++++++++-- ...-ULLONG_MAX-and-LLONG_MAX-definitions.patch | 18 ++++++++++++++++++ .../linux-5.1-compat-get-ds-removed.patch | 12 ++++++++++++ src/spl/PKGBUILD.sh | 14 ++++++++++++-- ...-ULLONG_MAX-and-LLONG_MAX-definitions.patch | 18 ++++++++++++++++++ src/spl/linux-5.1-compat-get-ds-removed.patch | 12 ++++++++++++ 7 files changed, 85 insertions(+), 5 deletions(-) create mode 100644 src/spl-dkms/linux-5.1-compat-drop-ULLONG_MAX-and-LLONG_MAX-definitions.patch create mode 100644 src/spl-dkms/linux-5.1-compat-get-ds-removed.patch create mode 100644 src/spl/linux-5.1-compat-drop-ULLONG_MAX-and-LLONG_MAX-definitions.patch create mode 100644 src/spl/linux-5.1-compat-get-ds-removed.patch diff --git a/src/kernels/dkms.sh b/src/kernels/dkms.sh index f9b328e..e944064 100644 --- a/src/kernels/dkms.sh +++ b/src/kernels/dkms.sh @@ -3,7 +3,7 @@ mode_name="dkms" mode_desc="Select and use the dkms packages" # version -pkgrel="1" +pkgrel="2" # Version for GIT packages pkgrel_git="1" diff --git a/src/spl-dkms/PKGBUILD.sh b/src/spl-dkms/PKGBUILD.sh index 972654f..2aa1235 100755 --- a/src/spl-dkms/PKGBUILD.sh +++ b/src/spl-dkms/PKGBUILD.sh @@ -9,8 +9,12 @@ pkgrel=${spl_pkgrel} makedepends=(${spl_makedepends}) arch=("x86_64") url="http://zfsonlinux.org/" -source=("${spl_src_target}") -sha256sums=("${spl_src_hash}") +source=("${spl_src_target}" + "linux-5.1-compat-drop-ULLONG_MAX-and-LLONG_MAX-definitions.patch" + "linux-5.1-compat-get-ds-removed.patch") +sha256sums=("${spl_src_hash}" + "f110bd86a81602e531dda943cf0d066f09f3d58c297159ea285957ce28f0f0c1" + "d4a6c27aea521cf5635c1b9f679633c068b024606f634d5e6bf1a7b97db486c4") license=("GPL") depends=("dkms") provides=("spl" "spl-headers") @@ -18,6 +22,12 @@ groups=("${archzfs_package_group}") conflicts=("spl" "spl-headers") ${spl_replaces} +prepare() { + cd "${spl_workdir}" + patch -Np1 -i \${srcdir}/linux-5.1-compat-drop-ULLONG_MAX-and-LLONG_MAX-definitions.patch + patch -Np1 -i \${srcdir}/linux-5.1-compat-get-ds-removed.patch +} + build() { cd "${spl_workdir}" ./autogen.sh diff --git a/src/spl-dkms/linux-5.1-compat-drop-ULLONG_MAX-and-LLONG_MAX-definitions.patch b/src/spl-dkms/linux-5.1-compat-drop-ULLONG_MAX-and-LLONG_MAX-definitions.patch new file mode 100644 index 0000000..d1ec6ab --- /dev/null +++ b/src/spl-dkms/linux-5.1-compat-drop-ULLONG_MAX-and-LLONG_MAX-definitions.patch @@ -0,0 +1,18 @@ +diff --unified --recursive --text a/include/sys/types.h b/include/sys/types.h +--- a/include/sys/types.h 2019-02-22 12:55:48.000000000 -0500 ++++ b/include/sys/types.h 2019-05-15 18:32:17.357535303 -0400 +@@ -28,14 +28,6 @@ + #include + #include + +-#ifndef ULLONG_MAX +-#define ULLONG_MAX (~0ULL) +-#endif +- +-#ifndef LLONG_MAX +-#define LLONG_MAX ((long long)(~0ULL>>1)) +-#endif +- + typedef enum { B_FALSE = 0, B_TRUE = 1 } boolean_t; + typedef unsigned long intptr_t; + typedef unsigned long ulong_t; diff --git a/src/spl-dkms/linux-5.1-compat-get-ds-removed.patch b/src/spl-dkms/linux-5.1-compat-get-ds-removed.patch new file mode 100644 index 0000000..6f2130a --- /dev/null +++ b/src/spl-dkms/linux-5.1-compat-get-ds-removed.patch @@ -0,0 +1,12 @@ +diff --unified --recursive --text a/module/spl/spl-vnode.c b/module/spl/spl-vnode.c +--- a/module/spl/spl-vnode.c 2019-02-22 12:59:44.000000000 -0500 ++++ b/module/spl/spl-vnode.c 2019-05-15 18:48:43.392458053 -0400 +@@ -608,7 +608,7 @@ + * size to ensure strncpy_from_user() does not fail with -EFAULT. + */ + saved_fs = get_fs(); +- set_fs(get_ds()); ++ set_fs(KERNEL_DS); + + rc = user_path_dir(filename, &path); + if (rc) diff --git a/src/spl/PKGBUILD.sh b/src/spl/PKGBUILD.sh index 5fa8931..b6b8255 100755 --- a/src/spl/PKGBUILD.sh +++ b/src/spl/PKGBUILD.sh @@ -14,11 +14,21 @@ pkgrel=${spl_pkgrel} makedepends=(${linux_headers_depends} ${spl_makedepends}) arch=("x86_64") url="http://zfsonlinux.org/" -source=("${spl_src_target}") -sha256sums=("${spl_src_hash}") +source=("${spl_src_target}" + "linux-5.1-compat-drop-ULLONG_MAX-and-LLONG_MAX-definitions.patch" + "linux-5.1-compat-get-ds-removed.patch") +sha256sums=("${spl_src_hash}" + "f110bd86a81602e531dda943cf0d066f09f3d58c297159ea285957ce28f0f0c1" + "d4a6c27aea521cf5635c1b9f679633c068b024606f634d5e6bf1a7b97db486c4") license=("GPL") depends=("kmod" ${linux_depends}) +prepare() { + cd "${spl_workdir}" + patch -Np1 -i \${srcdir}/linux-5.1-compat-drop-ULLONG_MAX-and-LLONG_MAX-definitions.patch + patch -Np1 -i \${srcdir}/linux-5.1-compat-get-ds-removed.patch +} + build() { cd "${spl_workdir}" ./autogen.sh diff --git a/src/spl/linux-5.1-compat-drop-ULLONG_MAX-and-LLONG_MAX-definitions.patch b/src/spl/linux-5.1-compat-drop-ULLONG_MAX-and-LLONG_MAX-definitions.patch new file mode 100644 index 0000000..d1ec6ab --- /dev/null +++ b/src/spl/linux-5.1-compat-drop-ULLONG_MAX-and-LLONG_MAX-definitions.patch @@ -0,0 +1,18 @@ +diff --unified --recursive --text a/include/sys/types.h b/include/sys/types.h +--- a/include/sys/types.h 2019-02-22 12:55:48.000000000 -0500 ++++ b/include/sys/types.h 2019-05-15 18:32:17.357535303 -0400 +@@ -28,14 +28,6 @@ + #include + #include + +-#ifndef ULLONG_MAX +-#define ULLONG_MAX (~0ULL) +-#endif +- +-#ifndef LLONG_MAX +-#define LLONG_MAX ((long long)(~0ULL>>1)) +-#endif +- + typedef enum { B_FALSE = 0, B_TRUE = 1 } boolean_t; + typedef unsigned long intptr_t; + typedef unsigned long ulong_t; diff --git a/src/spl/linux-5.1-compat-get-ds-removed.patch b/src/spl/linux-5.1-compat-get-ds-removed.patch new file mode 100644 index 0000000..6f2130a --- /dev/null +++ b/src/spl/linux-5.1-compat-get-ds-removed.patch @@ -0,0 +1,12 @@ +diff --unified --recursive --text a/module/spl/spl-vnode.c b/module/spl/spl-vnode.c +--- a/module/spl/spl-vnode.c 2019-02-22 12:59:44.000000000 -0500 ++++ b/module/spl/spl-vnode.c 2019-05-15 18:48:43.392458053 -0400 +@@ -608,7 +608,7 @@ + * size to ensure strncpy_from_user() does not fail with -EFAULT. + */ + saved_fs = get_fs(); +- set_fs(get_ds()); ++ set_fs(KERNEL_DS); + + rc = user_path_dir(filename, &path); + if (rc)