From c5f008b03368bae99145bf25f03c221d48bd3b54 Mon Sep 17 00:00:00 2001 From: jc_gargma Date: Mon, 28 Oct 2019 10:39:59 -0700 Subject: Updated to 5.3.7 --- ...-on-the-return-value-of-hidp_send_message.patch | 62 ++++ PKGBUILD | 89 +++--- config.x86_64 | 326 +++++++++++++++++---- 3 files changed, 370 insertions(+), 107 deletions(-) create mode 100644 0002-Bluetooth-hidp-Fix-assumptions-on-the-return-value-of-hidp_send_message.patch diff --git a/0002-Bluetooth-hidp-Fix-assumptions-on-the-return-value-of-hidp_send_message.patch b/0002-Bluetooth-hidp-Fix-assumptions-on-the-return-value-of-hidp_send_message.patch new file mode 100644 index 0000000..f2bceca --- /dev/null +++ b/0002-Bluetooth-hidp-Fix-assumptions-on-the-return-value-of-hidp_send_message.patch @@ -0,0 +1,62 @@ +From 0bee55974a73eed4a9b9c9e87000df34117e7f69 Mon Sep 17 00:00:00 2001 +From: Dan Elkouby +Date: Fri, 6 Sep 2019 14:06:44 +0300 +Subject: 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 +Reviewed-by: Dan Carpenter +Reviewed-by: Jiri Kosina +Signed-off-by: Marcel Holtmann +--- + 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. */ +-- +cgit v1.2.1-1-g437b diff --git a/PKGBUILD b/PKGBUILD index fe85197..00a2813 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -17,18 +17,19 @@ # Arch version builds documentation pkgbase=linux-ck -_majver=5.2 -_minver=21 +_supver=5 +_majver=3 +_minver=7 if [ "$_minver" == "0" ]; then - pkgver=${_majver} + pkgver=${_supver}.${_majver} else - pkgver=${_majver}.${_minver} + pkgver=${_supver}.${_majver}.${_minver} fi +_srcname=linux-${pkgver} _ckpatchversion=ck1 -_ckpatch="patch-${_majver}-${_ckpatchversion}" +_ckpatch="patch-${_supver}.${_majver}-${_ckpatchversion}" _gccpatchver='20190822' -_srcname=linux-${pkgver} -pkgrel=1 +pkgrel=2 url='https://kernel.org' #url='http://ck.kolivas.org/patches/' arch=('x86_64') @@ -39,9 +40,10 @@ makedepends=( conflicts=('linux-libre') options=('!strip') source=( - https://www.kernel.org/pub/linux/kernel/v5.x/linux-$pkgver.tar.{xz,sign} + https://www.kernel.org/pub/linux/kernel/v${_supver}.x/linux-$pkgver.tar.{xz,sign} 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER.patch - linux-ck-patch-${_majver}-${_ckpatchversion}.xz::http://ck.kolivas.org/patches/5.0/${_majver}/${_majver}-${_ckpatchversion}/${_ckpatch}.xz + 0002-Bluetooth-hidp-Fix-assumptions-on-the-return-value-of-hidp_send_message.patch + linux-ck-patch-${_supver}.${_majver}-${_ckpatchversion}.xz::http://ck.kolivas.org/patches/${_supver}.0/${_supver}.${_majver}/${_supver}.${_majver}-${_ckpatchversion}/${_ckpatch}.xz graysky_bdver2-hotfix.patch kernel_gcc_patch-${_gccpatchver}.tar.gz::https://github.com/graysky2/kernel_gcc_patch/archive/${_gccpatchver}.tar.gz ath9k-regdom-hack.patch @@ -51,15 +53,16 @@ source=( 90-linux.hook # pacman hook for initramfs regeneration linux.preset # standard config files for mkinitcpio ramdisk ) -sha256sums=('9a8ee3ff75dabffa76141c8dc7529dfbb3ca07888a3708a13f15b412268b3538' +sha256sums=('c6c9714e21531c825c306b107bc6f6c7bfa2d5270a14bad170f8de5a73d34802' 'SKIP' 'e862ecd2cb0b20e1859ec3e47616457a9a3acb111cd5a86094f9ed1dbd7f42ac' - 'f1abc13a8d859fbf6350040e45d7f04ad551a6d39f113ba96fbbd820118c0e36' + '9b92add42581aeb427a0c2cffc584815f0e4223a1a6bc27802ccd77eaf6e4bec' + '5b66761eae4efa4cb967aba9d4e555aa320cf5c004f0848e6bfbcb75ef66fbf1' 'c5405139aa0a90a6f68f6a13e066a2bd0600c970f9f525cd3aa114b044a7f73b' '8c11086809864b5cef7d079f930bd40da8d0869c091965fa62e95de9a0fe13b5' 'e7ebf050c22bcec0028c0b3c79fd6d3913b0370ecc6a23dfe78ce475630cf503' '0f81d6e4158b7beeb0eb514f1b9401f7e23699cb0f7b0d513e25dae1815daaeb' - '2b2b5734042c314552658b9ddf35d9a9549065a76c08be5b773a9102ea8de0f5' + 'c90c450baccd563dc01829f03e71cfc4e1b8fb26a367838f4751a186c70a395f' '452b8d4d71e1565ca91b1bebb280693549222ef51c47ba8964e411b2d461699c' '75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919' 'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65') @@ -69,6 +72,9 @@ validpgpkeys=( ) _kernelname=${pkgbase#linux} +#export KBUILD_BUILD_HOST=arc4linux +export KBUILD_BUILD_USER=$pkgbase +export KBUILD_BUILD_TIMESTAMP="@${SOURCE_DATE_EPOCH:-$(date +%s)}" prepare() { cd $_srcname @@ -76,24 +82,25 @@ prepare() { # add upstream patch # if [ "$_minver" != "0" ]; then # msg2 "Applying upstream patch" -# patch -Np1 < ../patch-${_majver}-${_pkgver} +# patch -Np1 < ../patch-${_supver}.${_majver}-${_pkgver} # fi # Hotfixes msg2 "Applying hotfixes" patch -p1 -i ../0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER.patch + patch -p1 -i ../0002-Bluetooth-hidp-Fix-assumptions-on-the-return-value-of-hidp_send_message.patch # fix naming schema in EXTRAVERSION of ck patch set - sed -i -re "s/^(.EXTRAVERSION).*$/\1 = /" "../linux-ck-patch-${_majver}-${_ckpatchversion}" + sed -i -re "s/^(.EXTRAVERSION).*$/\1 = /" "../linux-ck-patch-${_supver}.${_majver}-${_ckpatchversion}" # fix ck1 patchset for 5.2.18 - sed -i -e '/^-CFLAGS/ s,+=,:=,' -i -e '/^+CFLAGS/ s,+=,:=,' ../"${_ckpatch}" + sed -i -e '/^-CFLAGS/ s,+=,:=,' -i -e '/^+CFLAGS/ s,+=,:=,' "../linux-ck-patch-${_supver}.${_majver}-${_ckpatchversion}" # ck patch msg2 "Applying ck patch" - patch -F 3 -Np1 -i ../linux-ck-patch-${_majver}-${_ckpatchversion} + patch -F 3 -Np1 -i ../linux-ck-patch-${_supver}.${_majver}-${_ckpatchversion} # graysky gcc hotfixes @@ -122,29 +129,22 @@ prepare() { msg2 "Setting config..." # we are in src/linux-x.yy.zz, looking for a config next to the pkgbuild - if [ -f ${SRCDEST}/config.ck.previous ]; then - cp ${SRCDEST}/config.ck.previous .config - else +# if [ -f ${SRCDEST}/config.ck.previous ]; then +# cp ${SRCDEST}/config.ck.previous .config +# else cp ../config.x86_64 .config - fi - - # https://bbs.archlinux.org/viewtopic.php?pid=1824594#p1824594 - sed -i -e 's/# CONFIG_PSI_DEFAULT_DISABLED is not set/CONFIG_PSI_DEFAULT_DISABLED=y/' ./.config - - # https://bbs.archlinux.org/viewtopic.php?pid=1863567#p1863567 - sed -i -e 's/CONFIG_LATENCYTOP=y/# CONFIG_LATENCYTOP is not set/' \ - -i -e 's/CONFIG_SCHED_DEBUG=y/# CONFIG_SCHED_DEBUG is not set/' ./.config +# fi make olddefconfig - make menuconfig +# make menuconfig # Remove sublevel when no sublevel exists if [ "$_minver" == "0" ]; then sed -i '/SUBLEVEL = 0/d' Makefile fi - make -s kernelrelease > ../version + make -s kernelrelease > version # workaround for make -s kernelrelease not applying # localversion to version when changed using menuconfig @@ -153,13 +153,13 @@ prepare() { cat "localversion.10-pkgrel" >> ../version.temp cat "localversion.20-pkgname" >> ../version.temp cat ../localversion >> ../version.temp - cat ../version.temp | tr -d "\n" > ../version + cat ../version.temp | tr -d "\n" > version # back up the config - msg2 "Backing up config..." - cp .config ${SRCDEST}/config.ck.previous +# msg2 "Backing up config..." +# cp .config ${SRCDEST}/config.ck.previous - msg2 "Prepared %s version %s" "$pkgbase" "$(<../version)" + msg2 "Prepared %s version %s" "$pkgbase" "$(