Commit cfc6cc68 authored by Umar Getagazov's avatar Umar Getagazov
Browse files

testing/zfs-src: upgrade to 2.1.5

parent a1e696a2
Description: PPC get_user workaround
Linux 5.12 PPC 5.12 get_user() and __copy_from_user_inatomic()
inline helpers very indirecly include a reference to the GPL'd
array mmu_feature_keys[] and fails to build. Workaround this by
using copy_from_user() and throwing EFAULT for any calls to
__copy_from_user_inatomic(). This is a workaround until a fix
for Linux commit 7613f5a66becfd0e43a0f34de8518695888f5458
"powerpc/64s/kuap: Use mmu_has_feature()" is fully addressed.
Author: Colin Ian King <colin.king@canonical.com>
Origin: ubuntu
Forwarded: no
Last-Update: 2021-04-28
Index: zfs-linux-2.0.3/module/os/linux/zfs/zfs_uio.c
===================================================================
--- zfs-linux-2.0.3.orig/module/os/linux/zfs/zfs_uio.c
+++ zfs-linux-2.0.3/module/os/linux/zfs/zfs_uio.c
@@ -47,6 +47,7 @@
#include <sys/strings.h>
#include <linux/kmap_compat.h>
#include <linux/uaccess.h>
+#include <linux/printk.h>
/*
* Move "n" bytes at byte address "p"; "rw" indicates the direction
@@ -79,11 +80,16 @@ uiomove_iov(void *p, size_t n, enum uio_
(iov->iov_base + skip), cnt)) {
return (EFAULT);
}
+#if defined(__PPC64__)
+ printk_ratelimited(KERN_ERR "uiomove_iov(): __copy_from_user_inatomic() not available to ZFS\n");
+ return (EFAULT);
+#else
pagefault_disable();
b_left =
__copy_from_user_inatomic(p,
(iov->iov_base + skip), cnt);
pagefault_enable();
+#endif
} else {
b_left =
copy_from_user(p,
@@ -248,7 +254,7 @@ uio_prefaultpages(ssize_t n, struct uio
/* touch each page in this segment. */
p = iov->iov_base + skip;
while (cnt) {
- if (get_user(tmp, (uint8_t *)p))
+ if (copy_from_user(&tmp, p, 1))
return (EFAULT);
ulong_t incr = MIN(cnt, PAGESIZE);
p += incr;
@@ -256,7 +262,7 @@ uio_prefaultpages(ssize_t n, struct uio
}
/* touch the last byte in case it straddles a page. */
p--;
- if (get_user(tmp, (uint8_t *)p))
+ if (copy_from_user(&tmp, p, 1))
return (EFAULT);
}
}
modname=zfs
modver=2.1.4-r0
modver=2.1.5-r0
makedepends="libtool linux-headers glib-dev e2fsprogs-dev util-linux-dev libtirpc-dev"
built_modules="module/avl/zavl.ko \
module/icp/icp.ko \
......
......@@ -2,7 +2,7 @@
# Maintainer: Umar Getagazov <umar@handlerug.me>
pkgname=zfs-src
_modname=${pkgname%-src}
pkgver=2.1.4
pkgver=2.1.5
pkgrel=0
pkgdesc="ZFS for Linux (sources, AKMS)"
url="https://zfsonlinux.org"
......@@ -11,7 +11,6 @@ license="CDDL-1.0"
depends="akms"
options="!check" # irrelevant for a -src package
source="https://github.com/openzfs/zfs/releases/download/zfs-$pkgver/zfs-$pkgver.tar.gz
4900-ppc-get-user-workaround.patch
AKMBUILD"
builddir="$srcdir/$_modname-$pkgver"
......@@ -22,7 +21,6 @@ package() {
}
sha512sums="
c7b57c43fc287b22905067ab022df4133d32e1a5dc335f7baf743b4ef88f64c2bf9d41318c2083230d077dd49e68f7d9e6172266e13d4b1eee29d359860f969e zfs-2.1.4.tar.gz
2643a55f9aef3f3a4e9242d4ae1377d28ae8ca9b31b2e87eb19e8f0d32ef24ba03ec39d776553fcd38b77b407696f00224c129d4f3b16f0e36b49279055d2d87 4900-ppc-get-user-workaround.patch
3f47d275abd0687459d6834ac0ba419004ea19d299d56c407c42f601208bbe7ad9c0a5c279f0d52155ec5e5da7a59b27ccbd766cea56f22e7288866f97ccf2f5 AKMBUILD
d9ccf1049cefa9167d25f71fbdca70092cd02368b60f09341e6489fb68dc5f89e87b026b0191f4d81181a8851449124d824a1d959d0e2fb29c8a3d624edc4f03 zfs-2.1.5.tar.gz
3a18a08135af685fba1b7e56a200488c472a347fbced79eedca27c7db650dba4e61a355cf486c1b96aac98c3fca3d5d899721e5533ffc3d212be21b03820c2c4 AKMBUILD
"
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment