diff options
Diffstat (limited to 'libre/linux-libre-pae')
5 files changed, 90 insertions, 37 deletions
diff --git a/libre/linux-libre-pae/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch b/libre/linux-libre-pae/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch index b8a148ae5..4f5e8626a 100644 --- a/libre/linux-libre-pae/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch +++ b/libre/linux-libre-pae/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch @@ -1,7 +1,7 @@ -From bd72838cba44f93e3166e76f69c50136a65df228 Mon Sep 17 00:00:00 2001 +From 9927eac296fb506ef31e1c926dfbfc1ceeb44852 Mon Sep 17 00:00:00 2001 From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> Date: Mon, 16 Sep 2019 04:53:20 +0200 -Subject: [PATCH] ZEN: Add sysctl and CONFIG to disallow unprivileged +Subject: [PATCH 1/2] ZEN: Add sysctl and CONFIG to disallow unprivileged CLONE_NEWUSER Our default behavior continues to match the vanilla kernel. @@ -40,7 +40,7 @@ index bd7d650d4a99..658f9c052151 100644 bool "PID Namespaces" default y diff --git a/kernel/fork.c b/kernel/fork.c -index 541fd805fb88..ffd57c812153 100644 +index 3647097e6783..f092d7be6847 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -106,6 +106,11 @@ diff --git a/libre/linux-libre-pae/0002-Bluetooth-hidp-Fix-assumptions-on-the-return-value-o.patch b/libre/linux-libre-pae/0002-Bluetooth-hidp-Fix-assumptions-on-the-return-value-o.patch new file mode 100644 index 000000000..aaefa37bb --- /dev/null +++ b/libre/linux-libre-pae/0002-Bluetooth-hidp-Fix-assumptions-on-the-return-value-o.patch @@ -0,0 +1,63 @@ +From 0bee55974a73eed4a9b9c9e87000df34117e7f69 Mon Sep 17 00:00:00 2001 +From: Dan Elkouby <streetwalkermc@gmail.com> +Date: Fri, 6 Sep 2019 14:06:44 +0300 +Subject: [PATCH 2/2] Bluetooth: hidp: Fix assumptions on the return value of + hidp_send_message + +hidp_send_message was changed to return non-zero values on success, +which some other bits did not expect. This caused spurious errors to be +propagated through the stack, breaking some drivers, such as hid-sony +for the Dualshock 4 in Bluetooth mode. + +As pointed out by Dan Carpenter, hid-microsoft directly relied on that +assumption as well. + +Fixes: 48d9cc9d85dd ("Bluetooth: hidp: Let hidp_send_message return number of queued bytes") + +Signed-off-by: Dan Elkouby <streetwalkermc@gmail.com> +Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com> +Reviewed-by: Jiri Kosina <jkosina@suse.cz> +Signed-off-by: Marcel Holtmann <marcel@holtmann.org> +--- + drivers/hid/hid-microsoft.c | 2 +- + net/bluetooth/hidp/core.c | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/drivers/hid/hid-microsoft.c b/drivers/hid/hid-microsoft.c +index 8b3a922bdad3..2cf83856f2e4 100644 +--- a/drivers/hid/hid-microsoft.c ++++ b/drivers/hid/hid-microsoft.c +@@ -303,7 +303,7 @@ static void ms_ff_worker(struct work_struct *work) + r->magnitude[MAGNITUDE_WEAK] = ms->weak; /* right actuator */ + + ret = hid_hw_output_report(hdev, (__u8 *)r, sizeof(*r)); +- if (ret) ++ if (ret < 0) + hid_warn(hdev, "failed to send FF report\n"); + } + +diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c +index 8d889969ae7e..bef84b95e2c4 100644 +--- a/net/bluetooth/hidp/core.c ++++ b/net/bluetooth/hidp/core.c +@@ -267,7 +267,7 @@ static int hidp_get_raw_report(struct hid_device *hid, + set_bit(HIDP_WAITING_FOR_RETURN, &session->flags); + data[0] = report_number; + ret = hidp_send_ctrl_message(session, report_type, data, 1); +- if (ret) ++ if (ret < 0) + goto err; + + /* Wait for the return of the report. The returned report +@@ -343,7 +343,7 @@ static int hidp_set_raw_report(struct hid_device *hid, unsigned char reportnum, + data[0] = reportnum; + set_bit(HIDP_WAITING_FOR_SEND_ACK, &session->flags); + ret = hidp_send_ctrl_message(session, report_type, data, count); +- if (ret) ++ if (ret < 0) + goto err; + + /* Wait for the ACK from the device. */ +-- +2.23.0 + diff --git a/libre/linux-libre-pae/60-linux.hook b/libre/linux-libre-pae/60-linux.hook index b33873c85..584ce3537 100644 --- a/libre/linux-libre-pae/60-linux.hook +++ b/libre/linux-libre-pae/60-linux.hook @@ -4,7 +4,6 @@ Operation = Install Operation = Upgrade Operation = Remove Target = usr/lib/modules/%KERNVER%/* -Target = usr/lib/modules/%EXTRAMODULES%/* [Action] Description = Updating %PKGBASE% module dependencies... diff --git a/libre/linux-libre-pae/PKGBUILD b/libre/linux-libre-pae/PKGBUILD index 6ab701c00..22f63bf89 100644 --- a/libre/linux-libre-pae/PKGBUILD +++ b/libre/linux-libre-pae/PKGBUILD @@ -11,7 +11,7 @@ pkgbase=linux-libre-pae _srcbasever=5.3-gnu -_srcver=5.3.1-gnu +_srcver=5.3.7-gnu _replacesarchkernel=('linux%') # '%' gets replaced with _kernelname _replacesoldkernels=() # '%' gets replaced with _kernelname @@ -48,6 +48,7 @@ source=( # Arch's custom linux patches 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch + 0002-Bluetooth-hidp-Fix-assumptions-on-the-return-value-o.patch ) validpgpkeys=( '474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva @@ -55,7 +56,7 @@ validpgpkeys=( ) sha512sums=('85d83c973ef96ab414354414da70ab3e1c3df19c3088458498cec1594952878b7967a8988bd9e36d4e728cc573a36e6eac056dbcab2f9aa742f18cbb4fb3164f' 'SKIP' - 'f58ba041868ef3475ca3b4ad2943ed2df3da17e4eadb6597131e9903a95b734d4df22d096e7cf66d30778e88c9e799512b2e3f51119c997dc2b7a766c104bcc2' + '22064d7cf6da426eff98b3fd72a52e6dc1349f1c5f53755041b487335fa8ff61fc1083440af38ef631056301d30d827c5c203566d1f720b9a65505e9c2cd3ee8' 'SKIP' '13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3' 'SKIP' @@ -63,13 +64,14 @@ sha512sums=('85d83c973ef96ab414354414da70ab3e1c3df19c3088458498cec1594952878b796 'SKIP' '267295aa0cea65684968420c68b32f1a66a22d018b9d2b2c1ef14267bcf4cb68aaf7099d073cbfefe6c25c8608bdcbbd45f7ac8893fdcecbf1e621abdfe9ecc1' 'SKIP' - '9f8b97bd899717034dc99406c1c773945f3f463c23a7a81326130dc89cac34df5eae70a2b1cd8793ba2c83511ccfb79144d8eae1cd40f0ad23700934860b2231' - '7ad5be75ee422dda3b80edd2eb614d8a9181e2c8228cd68b3881e2fb95953bf2dea6cbe7900ce1013c9de89b2802574b7b24869fc5d7a95d3cc3112c4d27063a' + '8f329e2d0735ab6e004ebf094c929c1f354a79809f6543ad6c41ed0d7967ad75733352d5a045e5880d34d57e2a436e73df82371d49fa997f154a57517b5cdcd6' + '6b57a66b870b2f525e2dedd8f224b89474fd4ec6ea18484b0a67a1a2b9a4fc95d025cac181504406ea42a35d6c1b184c0d4e38c92815022935fc55746c69c7c1' '4a8b324aee4cccf3a512ad04ce1a272d14e5b05c8de90feb82075f55ea3845948d817e1b0c6f298f5816834ddd3e5ce0a0e2619866289f3c1ab8fd2f35f04f44' '2dc6b0ba8f7dbf19d2446c5c5f1823587de89f4e28e9595937dd51a87755099656f2acec50e3e2546ea633ad1bfd1c722e0c2b91eef1d609103d8abdc0a7cbaf' '02af4dd2a007e41db0c63822c8ab3b80b5d25646af1906dc85d0ad9bb8bbf5236f8e381d7f91cf99ed4b0978c50aee37cb9567cdeef65b7ec3d91b882852b1af' 'b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168' - '2ff49b3e5ee3ca61494cfcd6e3ba5dc31d8b625a193f5c5f24aca55d91cbd60a91897bbf6953e172acc596e72b033b3eeb6041380efd52d90a3c832db563cbf4') + '5c48b0092ab6a31453e27e6345347fd2d066e1c306c4c8a9144260bf37d0d13879b5cfe688906a06627d39a40a37e229e5300a479b2c9159e93e05ea7adc6b0a' + 'b07d84cac1c784f5652a4681efd54ef89ce9cb0778bd2a633709b7150f9fb59db978dc290b92bcb69b8d211471c22a0be2a81a129318cd7efff601a3c591483c') _kernelname=${pkgbase#linux-libre} _replacesarchkernel=("${_replacesarchkernel[@]/\%/${_kernelname}}") @@ -106,8 +108,8 @@ prepare() { cp ../config .config make olddefconfig - make -s kernelrelease > ../version - msg2 "Prepared %s version %s" "$pkgbase" "$(<../version)" + make -s kernelrelease > version + msg2 "Prepared %s version %s" "$pkgbase" "$(<version)" } build() { @@ -117,36 +119,31 @@ build() { _package() { pkgdesc="The ${pkgbase^} kernel and modules with PAE (physical address extension) support" - [[ $pkgbase = linux-libre ]] && groups=(base base-openrc) - depends=(coreutils linux-libre-firmware kmod mkinitcpio) - optdepends=('crda: to set the correct wireless channels of your country') + depends=(coreutils kmod initramfs) + optdepends=('crda: to set the correct wireless channels of your country' + 'linux-libre-firmware: firmware images needed for some devices') provides=("${_replacesarchkernel[@]/%/=${_archpkgver}}" "LINUX-ABI_VERSION=${_srcver%%-*}") conflicts=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") replaces=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") backup=("etc/mkinitcpio.d/$pkgbase.preset") install=linux.install + cd $_srcname local kernver="$(<version)" local modulesdir="$pkgdir/usr/lib/modules/$kernver" - cd $_srcname - msg2 "Installing boot image..." # systemd expects to find the kernel here to allow hibernation # https://github.com/systemd/systemd/commit/edda44605f06a41fb86b7ab8128dcf99161d2344 install -Dm644 "$(make -s image_name)" "$modulesdir/vmlinuz" install -Dm644 "$modulesdir/vmlinuz" "$pkgdir/boot/vmlinuz-$pkgbase" + # Used by mkinitcpio to name the kernel + echo "$pkgbase" | install -Dm644 /dev/stdin "$modulesdir/pkgbase" + msg2 "Installing modules..." make INSTALL_MOD_PATH="$pkgdir/usr" modules_install - # a place for external modules, - # with version file for building modules and running depmod from hook - local extramodules="extramodules$_kernelname" - local extradir="$pkgdir/usr/lib/modules/$extramodules" - install -Dt "$extradir" -m644 ../version - ln -sr "$extradir" "$modulesdir/extramodules" - # remove build and source links rm "$modulesdir"/{source,build} @@ -155,7 +152,6 @@ _package() { local subst=" s|%PKGBASE%|$pkgbase|g s|%KERNVER%|$kernver|g - s|%EXTRAMODULES%|$extramodules|g " # hack to allow specifying an initially nonexisting install file @@ -180,12 +176,12 @@ _package-headers() { conflicts=("${_replacesarchkernel[@]/%/-headers}" "${_replacesoldkernels[@]/%/-headers}") replaces=("${_replacesarchkernel[@]/%/-headers}" "${_replacesoldkernels[@]/%/-headers}") - local builddir="$pkgdir/usr/lib/modules/$(<version)/build" - cd $_srcname + local builddir="$pkgdir/usr/lib/modules/$(<version)/build" msg2 "Installing build files..." - install -Dt "$builddir" -m644 Makefile .config Module.symvers System.map vmlinux + install -Dt "$builddir" -m644 .config Makefile Module.symvers System.map \ + localversion.* version vmlinux install -Dt "$builddir/kernel" -m644 kernel/Makefile install -Dt "$builddir/arch/x86" -m644 arch/x86/Makefile install -Dt "$builddir/arch/x86" -m644 arch/x86/Makefile_32.cpu @@ -194,9 +190,6 @@ _package-headers() { # add xfs and shmem for aufs building mkdir -p "$builddir"/{fs/xfs,mm} - # ??? - mkdir "$builddir/.tmp_versions" - msg2 "Installing headers..." cp -t "$builddir" -a include cp -t "$builddir/arch/x86" -a arch/x86/include @@ -250,7 +243,7 @@ _package-headers() { msg2 "Adding symlink..." mkdir -p "$pkgdir/usr/src" - ln -sr "$builddir" "$pkgdir/usr/src/$pkgbase-$pkgver" + ln -sr "$builddir" "$pkgdir/usr/src/$pkgbase" msg2 "Fixing permissions..." chmod -Rc u=rwX,go=rX "$pkgdir" @@ -262,9 +255,8 @@ _package-docs() { conflicts=("${_replacesarchkernel[@]/%/-docs}" "${_replacesoldkernels[@]/%/-docs}") replaces=("${_replacesarchkernel[@]/%/-docs}" "${_replacesoldkernels[@]/%/-docs}") - local builddir="$pkgdir/usr/lib/modules/$(<version)/build" - cd $_srcname + local builddir="$pkgdir/usr/lib/modules/$(<version)/build" msg2 "Installing documentation..." mkdir -p "$builddir" diff --git a/libre/linux-libre-pae/config b/libre/linux-libre-pae/config index c0d8c2f4d..d9a9ef74c 100644 --- a/libre/linux-libre-pae/config +++ b/libre/linux-libre-pae/config @@ -1,13 +1,13 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.3.1-gnu Kernel Configuration +# Linux/x86 5.3.7-gnu Kernel Configuration # # -# Compiler: gcc (GCC) 9.1.0 +# Compiler: gcc (GCC) 9.2.0 # CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=90100 +CONFIG_GCC_VERSION=90200 CONFIG_CLANG_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_HAS_ASM_GOTO=y @@ -7379,7 +7379,6 @@ CONFIG_USB_EMI62=m CONFIG_USB_EMI26=m CONFIG_USB_ADUTUX=m CONFIG_USB_SEVSEG=m -CONFIG_USB_RIO500=m CONFIG_USB_LEGOTOWER=m CONFIG_USB_LCD=m CONFIG_USB_CYPRESS_CY7C63=m |