summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian2020-03-28 16:13:46 +0100
committerAlexander Sulfrian2020-03-28 16:13:46 +0100
commit8caa021bd6b998a3159f54540d91b4d47be1af0d (patch)
tree54010a63583ffce6870917a880b697d2feacc20c
parent0e06b2e92a962c99c8ccab4ca39163dcad57dfad (diff)
downloadaur-8caa021bd6b998a3159f54540d91b4d47be1af0d.tar.gz
Fix building on newer kernels
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD22
-rw-r--r--access_ok_remove_type.patch33
3 files changed, 52 insertions, 7 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 38663012b89d..1ff2c7cdcb35 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = eq3_char_loop-dkms
pkgdesc = eQ-3 IPC loopback char driver
pkgver = 2.19.9
- pkgrel = 1
+ pkgrel = 2
url = https://github.com/eq-3/occu
arch = arm
arch = armv6h
@@ -10,10 +10,12 @@ pkgbase = eq3_char_loop-dkms
depends = dkms
conflicts = eq3_char_loop
source = https://github.com/eq-3/occu/raw/2.19.9/KernelDrivers/eq3_char_loop.c
+ source = access_ok_remove_type.patch
source = Makefile
source = Kbuild
source = dkms.conf
sha256sums = 88093c1c242830f9d336b4e2cae53e38f83432640566470e48042f728216924f
+ sha256sums = 892d8d914f5d436795d6d120cef41b875cceafac2940fc25f79c1efa6903667e
sha256sums = f4d92e560e8501b13d95e9a8f2e2d9c03acdb994c5b2de8d7f9cda5682550085
sha256sums = 28c7d141374ea40099f6cef84ad601443e044a8278699269627d531030320756
sha256sums = 09fd52fecc4ed818560b1c3a1652dbd8f45badddb114d2c004314e4decf37664
diff --git a/PKGBUILD b/PKGBUILD
index 63fa7d64e4ba..b92b55e71237 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,7 +3,7 @@
_pkgbase=eq3_char_loop
pkgname=${_pkgbase}-dkms
pkgver=2.19.9
-pkgrel=1
+pkgrel=2
pkgdesc="eQ-3 IPC loopback char driver"
arch=('arm' 'armv6h' 'armv7h')
url="https://github.com/eq-3/occu"
@@ -12,15 +12,25 @@ depends=('dkms')
conflicts=("${_pkgbase}")
source=("https://github.com/eq-3/occu/raw/${pkgver}/KernelDrivers/${_pkgbase}.c"
+ "access_ok_remove_type.patch"
"Makefile"
"Kbuild"
"dkms.conf")
-sha256sums=("88093c1c242830f9d336b4e2cae53e38f83432640566470e48042f728216924f"
- "f4d92e560e8501b13d95e9a8f2e2d9c03acdb994c5b2de8d7f9cda5682550085"
- "28c7d141374ea40099f6cef84ad601443e044a8278699269627d531030320756"
- "09fd52fecc4ed818560b1c3a1652dbd8f45badddb114d2c004314e4decf37664")
+sha256sums=('88093c1c242830f9d336b4e2cae53e38f83432640566470e48042f728216924f'
+ '892d8d914f5d436795d6d120cef41b875cceafac2940fc25f79c1efa6903667e'
+ 'f4d92e560e8501b13d95e9a8f2e2d9c03acdb994c5b2de8d7f9cda5682550085'
+ '28c7d141374ea40099f6cef84ad601443e044a8278699269627d531030320756'
+ '09fd52fecc4ed818560b1c3a1652dbd8f45badddb114d2c004314e4decf37664')
-package() {
+prepare() {
+ if [ -L eq3_char_loop.c ]; then
+ cp --remove-destination "$(readlink eq3_char_loop.c)" eq3_char_loop.c
+ fi
+
+ patch --forward --strip=1 --input="${srcdir}/access_ok_remove_type.patch"
+}
+
+package() {
install -Dm644 -t "${pkgdir}"/usr/src/${_pkgbase}-${pkgver}/ \
${_pkgbase}.c Makefile Kbuild dkms.conf
diff --git a/access_ok_remove_type.patch b/access_ok_remove_type.patch
new file mode 100644
index 000000000000..f3a8f3906877
--- /dev/null
+++ b/access_ok_remove_type.patch
@@ -0,0 +1,33 @@
+diff -r -u a/eq3_char_loop.c b/eq3_char_loop.c
+--- a/eq3_char_loop.c 2020-03-27 23:57:42.975868561 +0100
++++ b/eq3_char_loop.c 2020-03-27 23:58:16.482782251 +0100
+@@ -456,9 +456,9 @@
+ * "write" is reversed
+ */
+ if (_IOC_DIR(cmd) & _IOC_READ)
+- ret = !access_ok(VERIFY_WRITE, (void *)arg, _IOC_SIZE(cmd));
++ ret = !access_ok((void *)arg, _IOC_SIZE(cmd));
+ else if (_IOC_DIR(cmd) & _IOC_WRITE)
+- ret = !access_ok(VERIFY_READ, (void *)arg, _IOC_SIZE(cmd));
++ ret = !access_ok((void *)arg, _IOC_SIZE(cmd));
+ if (ret) return -EFAULT;
+
+ switch(cmd) {
+@@ -500,7 +500,7 @@
+ switch(cmd) {
+
+ case TCGETS:
+- if( access_ok(VERIFY_READ, (void *)arg, sizeof(struct termios) ) )
++ if( access_ok((void *)arg, sizeof(struct termios) ) )
+ {
+ ret = copy_to_user( (void*)arg, &channel->termios, sizeof(struct termios) );
+ } else {
+@@ -508,7 +508,7 @@
+ }
+ break;
+ case TCSETS:
+- if( access_ok(VERIFY_WRITE, (void *)arg, sizeof(struct termios) ) )
++ if( access_ok((void *)arg, sizeof(struct termios) ) )
+ {
+ ret = copy_from_user( &channel->termios, (void*)arg, sizeof(struct termios) );
+ } else {