diff options
-rw-r--r-- | 0003-iwlwifi-Fix-regression-from-UDP-segmentation-support.patch | 34 | ||||
-rw-r--r-- | 0003-iwlwifi-provide-gso_type-to-GSO-packets.patch | 52 | ||||
-rw-r--r-- | 0004-HID-wacom-Correct-NULL-dereference-on-AES-pen-proximity.patch | 76 | ||||
-rw-r--r-- | 0004-Revert-SUNRPC-Handle-TCP-socket-sends-with-kernel_se.patch | 118 | ||||
-rw-r--r-- | PKGBUILD | 18 | ||||
-rw-r--r-- | config | 22 |
6 files changed, 200 insertions, 120 deletions
diff --git a/0003-iwlwifi-Fix-regression-from-UDP-segmentation-support.patch b/0003-iwlwifi-Fix-regression-from-UDP-segmentation-support.patch deleted file mode 100644 index 2a46e8c..0000000 --- a/0003-iwlwifi-Fix-regression-from-UDP-segmentation-support.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 2059ba0b121bb366467fcefb35cef22cc23e2fe9 Mon Sep 17 00:00:00 2001 -From: Eric Dumazet <edumazet@google.com> -Date: Mon, 21 Dec 2020 20:14:02 +0100 -Subject: iwlwifi: Fix regression from UDP segmentation support - -Eric's tentative fix from -https://lore.kernel.org/linux-wireless/CANn89iJWG2n1s3j7EdpwkQQv-9dOY02V+FGYHAWguO4JiqWuJA@mail.gmail.com/ ---- - drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c -index fe1c538cd718..c27743a58f81 100644 ---- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c -+++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c -@@ -833,6 +833,7 @@ iwl_mvm_tx_tso_segment(struct sk_buff *skb, unsigned int num_subframes, - - next = skb_gso_segment(skb, netdev_flags); - skb_shinfo(skb)->gso_size = mss; -+ skb_shinfo(skb)->gso_type = ipv4 ? SKB_GSO_TCPV4 : SKB_GSO_TCPV6; - if (WARN_ON_ONCE(IS_ERR(next))) - return -EINVAL; - else if (next) -@@ -855,6 +856,7 @@ iwl_mvm_tx_tso_segment(struct sk_buff *skb, unsigned int num_subframes, - - if (tcp_payload_len > mss) { - skb_shinfo(tmp)->gso_size = mss; -+ skb_shinfo(tmp)->gso_type = ipv4 ? SKB_GSO_TCPV4 : SKB_GSO_TCPV6; - } else { - if (qos) { - u8 *qc; --- -cgit v1.2.3-1-gf6bb5 - diff --git a/0003-iwlwifi-provide-gso_type-to-GSO-packets.patch b/0003-iwlwifi-provide-gso_type-to-GSO-packets.patch new file mode 100644 index 0000000..594302d --- /dev/null +++ b/0003-iwlwifi-provide-gso_type-to-GSO-packets.patch @@ -0,0 +1,52 @@ +From 545d6504ef3c786b8294ca2129111227a7bb6515 Mon Sep 17 00:00:00 2001 +From: Eric Dumazet <edumazet@google.com> +Date: Mon, 25 Jan 2021 07:09:49 -0800 +Subject: iwlwifi: provide gso_type to GSO packets + +commit 81a86e1bd8e7060ebba1718b284d54f1238e9bf9 upstream. + +net/core/tso.c got recent support for USO, and this broke iwlfifi +because the driver implemented a limited form of GSO. + +Providing ->gso_type allows for skb_is_gso_tcp() to provide +a correct result. + +Fixes: 3d5b459ba0e3 ("net: tso: add UDP segmentation support") +Signed-off-by: Eric Dumazet <edumazet@google.com> +Reported-by: Ben Greear <greearb@candelatech.com> +Tested-by: Ben Greear <greearb@candelatech.com> +Cc: Luca Coelho <luciano.coelho@intel.com> +Cc: Johannes Berg <johannes@sipsolutions.net> +Link: https://bugzilla.kernel.org/show_bug.cgi?id=209913 +Link: https://lore.kernel.org/r/20210125150949.619309-1-eric.dumazet@gmail.com +Signed-off-by: Jakub Kicinski <kuba@kernel.org> +Cc: Robert Hancock <hancockrwd@gmail.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +--- + drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c +index fe1c538cd718..7626117c01fa 100644 +--- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c ++++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c +@@ -833,6 +833,7 @@ iwl_mvm_tx_tso_segment(struct sk_buff *skb, unsigned int num_subframes, + + next = skb_gso_segment(skb, netdev_flags); + skb_shinfo(skb)->gso_size = mss; ++ skb_shinfo(skb)->gso_type = ipv4 ? SKB_GSO_TCPV4 : SKB_GSO_TCPV6; + if (WARN_ON_ONCE(IS_ERR(next))) + return -EINVAL; + else if (next) +@@ -855,6 +856,8 @@ iwl_mvm_tx_tso_segment(struct sk_buff *skb, unsigned int num_subframes, + + if (tcp_payload_len > mss) { + skb_shinfo(tmp)->gso_size = mss; ++ skb_shinfo(tmp)->gso_type = ipv4 ? SKB_GSO_TCPV4 : ++ SKB_GSO_TCPV6; + } else { + if (qos) { + u8 *qc; +-- +cgit v1.2.3-1-gf6bb5 + diff --git a/0004-HID-wacom-Correct-NULL-dereference-on-AES-pen-proximity.patch b/0004-HID-wacom-Correct-NULL-dereference-on-AES-pen-proximity.patch deleted file mode 100644 index 0de03e8..0000000 --- a/0004-HID-wacom-Correct-NULL-dereference-on-AES-pen-proximity.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 85c0c0e3a81f87290db5e881af609d51021b54b7 Mon Sep 17 00:00:00 2001 -From: Jason Gerecke <killertofu@gmail.com> -Date: Thu, 21 Jan 2021 10:46:49 -0800 -Subject: HID: wacom: Correct NULL dereference on AES pen proximity - -The recent commit to fix a memory leak introduced an inadvertant NULL -pointer dereference. The `wacom_wac->pen_fifo` variable was never -intialized, resuling in a crash whenever functions tried to use it. -Since the FIFO is only used by AES pens (to buffer events from pen -proximity until the hardware reports the pen serial number) this would -have been easily overlooked without testing an AES device. - -This patch converts `wacom_wac->pen_fifo` over to a pointer (since the -call to `devres_alloc` allocates memory for us) and ensures that we assign -it to point to the allocated and initalized `pen_fifo` before the function -returns. - -Link: https://github.com/linuxwacom/input-wacom/issues/230 -Fixes: 37309f47e2f5 ("HID: wacom: Fix memory leakage caused by kfifo_alloc") -CC: stable@vger.kernel.org # v4.19+ -Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com> -Tested-by: Ping Cheng <ping.cheng@wacom.com> ---- - drivers/hid/wacom_sys.c | 7 ++++--- - drivers/hid/wacom_wac.h | 2 +- - 2 files changed, 5 insertions(+), 4 deletions(-) - -diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c -index 9e852b4bbf92..73dafa60080f 100644 ---- a/drivers/hid/wacom_sys.c -+++ b/drivers/hid/wacom_sys.c -@@ -147,9 +147,9 @@ static int wacom_wac_pen_serial_enforce(struct hid_device *hdev, - } - - if (flush) -- wacom_wac_queue_flush(hdev, &wacom_wac->pen_fifo); -+ wacom_wac_queue_flush(hdev, wacom_wac->pen_fifo); - else if (insert) -- wacom_wac_queue_insert(hdev, &wacom_wac->pen_fifo, -+ wacom_wac_queue_insert(hdev, wacom_wac->pen_fifo, - raw_data, report_size); - - return insert && !flush; -@@ -1280,7 +1280,7 @@ static void wacom_devm_kfifo_release(struct device *dev, void *res) - static int wacom_devm_kfifo_alloc(struct wacom *wacom) - { - struct wacom_wac *wacom_wac = &wacom->wacom_wac; -- struct kfifo_rec_ptr_2 *pen_fifo = &wacom_wac->pen_fifo; -+ struct kfifo_rec_ptr_2 *pen_fifo; - int error; - - pen_fifo = devres_alloc(wacom_devm_kfifo_release, -@@ -1297,6 +1297,7 @@ static int wacom_devm_kfifo_alloc(struct wacom *wacom) - } - - devres_add(&wacom->hdev->dev, pen_fifo); -+ wacom_wac->pen_fifo = pen_fifo; - - return 0; - } -diff --git a/drivers/hid/wacom_wac.h b/drivers/hid/wacom_wac.h -index da612b6e9c77..195910dd2154 100644 ---- a/drivers/hid/wacom_wac.h -+++ b/drivers/hid/wacom_wac.h -@@ -342,7 +342,7 @@ struct wacom_wac { - struct input_dev *pen_input; - struct input_dev *touch_input; - struct input_dev *pad_input; -- struct kfifo_rec_ptr_2 pen_fifo; -+ struct kfifo_rec_ptr_2 *pen_fifo; - int pid; - int num_contacts_left; - u8 bt_features; --- -cgit v1.2.3-1-gf6bb5 - diff --git a/0004-Revert-SUNRPC-Handle-TCP-socket-sends-with-kernel_se.patch b/0004-Revert-SUNRPC-Handle-TCP-socket-sends-with-kernel_se.patch new file mode 100644 index 0000000..ea9af03 --- /dev/null +++ b/0004-Revert-SUNRPC-Handle-TCP-socket-sends-with-kernel_se.patch @@ -0,0 +1,118 @@ +From 78a29b77d3643814a19ce55937309b89010a763c Mon Sep 17 00:00:00 2001 +From: graysky <graysky@archlinux.us> +Date: Sun, 31 Jan 2021 16:38:13 -0500 +Subject: [PATCH] Revert "SUNRPC: Handle TCP socket sends with + kernel_sendpage() again" + +This reverts commit 00ee972739fb2526d3936f1e7ccfc8c91d250c60. +--- + net/sunrpc/svcsock.c | 86 +------------------------------------------- + 1 file changed, 1 insertion(+), 85 deletions(-) + +diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c +index c9766d07eb81..b248f2349437 100644 +--- a/net/sunrpc/svcsock.c ++++ b/net/sunrpc/svcsock.c +@@ -1062,90 +1062,6 @@ static int svc_tcp_recvfrom(struct svc_rqst *rqstp) + return 0; /* record not complete */ + } + +-static int svc_tcp_send_kvec(struct socket *sock, const struct kvec *vec, +- int flags) +-{ +- return kernel_sendpage(sock, virt_to_page(vec->iov_base), +- offset_in_page(vec->iov_base), +- vec->iov_len, flags); +-} +- +-/* +- * kernel_sendpage() is used exclusively to reduce the number of +- * copy operations in this path. Therefore the caller must ensure +- * that the pages backing @xdr are unchanging. +- * +- * In addition, the logic assumes that * .bv_len is never larger +- * than PAGE_SIZE. +- */ +-static int svc_tcp_sendmsg(struct socket *sock, struct msghdr *msg, +- struct xdr_buf *xdr, rpc_fraghdr marker, +- unsigned int *sentp) +-{ +- const struct kvec *head = xdr->head; +- const struct kvec *tail = xdr->tail; +- struct kvec rm = { +- .iov_base = &marker, +- .iov_len = sizeof(marker), +- }; +- int flags, ret; +- +- *sentp = 0; +- xdr_alloc_bvec(xdr, GFP_KERNEL); +- +- msg->msg_flags = MSG_MORE; +- ret = kernel_sendmsg(sock, msg, &rm, 1, rm.iov_len); +- if (ret < 0) +- return ret; +- *sentp += ret; +- if (ret != rm.iov_len) +- return -EAGAIN; +- +- flags = head->iov_len < xdr->len ? MSG_MORE | MSG_SENDPAGE_NOTLAST : 0; +- ret = svc_tcp_send_kvec(sock, head, flags); +- if (ret < 0) +- return ret; +- *sentp += ret; +- if (ret != head->iov_len) +- goto out; +- +- if (xdr->page_len) { +- unsigned int offset, len, remaining; +- struct bio_vec *bvec; +- +- bvec = xdr->bvec; +- offset = xdr->page_base; +- remaining = xdr->page_len; +- flags = MSG_MORE | MSG_SENDPAGE_NOTLAST; +- while (remaining > 0) { +- if (remaining <= PAGE_SIZE && tail->iov_len == 0) +- flags = 0; +- len = min(remaining, bvec->bv_len); +- ret = kernel_sendpage(sock, bvec->bv_page, +- bvec->bv_offset + offset, +- len, flags); +- if (ret < 0) +- return ret; +- *sentp += ret; +- if (ret != len) +- goto out; +- remaining -= len; +- offset = 0; +- bvec++; +- } +- } +- +- if (tail->iov_len) { +- ret = svc_tcp_send_kvec(sock, tail, 0); +- if (ret < 0) +- return ret; +- *sentp += ret; +- } +- +-out: +- return 0; +-} +- + /** + * svc_tcp_sendto - Send out a reply on a TCP socket + * @rqstp: completed svc_rqst +@@ -1173,7 +1089,7 @@ static int svc_tcp_sendto(struct svc_rqst *rqstp) + mutex_lock(&xprt->xpt_mutex); + if (svc_xprt_is_dead(xprt)) + goto out_notconn; +- err = svc_tcp_sendmsg(svsk->sk_sock, &msg, xdr, marker, &sent); ++ err = xprt_sock_sendmsg(svsk->sk_sock, &msg, xdr, 0, marker, &sent); + xdr_free_bvec(xdr); + trace_svcsock_tcp_send(xprt, err < 0 ? err : sent); + if (err < 0 || sent != (xdr->len + sizeof(marker))) +-- +2.30.0 + @@ -22,7 +22,7 @@ _custom=1 pkgbase=linux-ck _supver=5 _majver=10 -_minver=10 +_minver=12 _gccpatchver='20201113' _gccpatchger='10.1' _gccpatchker='5.8' @@ -50,8 +50,8 @@ source=( config # the main kernel config file 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch 0002-HID-quirks-Add-Apple-Magic-Trackpad-2-to-hid_have_special_driver-list.patch - 0003-iwlwifi-Fix-regression-from-UDP-segmentation-support.patch - 0004-HID-wacom-Correct-NULL-dereference-on-AES-pen-proximity.patch + 0003-iwlwifi-provide-gso_type-to-GSO-packets.patch + 0004-Revert-SUNRPC-Handle-TCP-socket-sends-with-kernel_se.patch linux-ck-patch-${_supver}.${_majver}-${_ckpatchversion}.xz::http://ck.kolivas.org/patches/${_supver}.0/${_supver}.${_majver}/${_supver}.${_majver}-${_ckpatchversion}/patch-${_supver}.${_majver}-${_ckpatchversion}.xz kernel_gcc_patch-${_gccpatchver}.tar.gz::https://github.com/graysky2/kernel_gcc_patch/archive/${_gccpatchver}.tar.gz ath9k-regdom-hack.patch @@ -62,13 +62,13 @@ validpgpkeys=( '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman ) # https://www.kernel.org/pub/linux/kernel/v5.x/sha256sums.asc -b2sums=('180f0dd063eab9542fd799c54dd335c4f310bea739048800ab3222526cb1ea7cc4ef43d2a2c27ed0e37a776f5c77540c33795aa63297704d9e215735a1a98606' +b2sums=('f5e16e92c9543708997d9dfee28feb2cd6e6909a33dc7f97c40b507a8d03bd72717b1af84bed3fa25b2a167652d8cd93b66d145d484e5ad292af24b3bf64a649' 'SKIP' - 'e8f7b8d77e57b8df10e27903347ba6995a98d15c37bdd5d243c00ffcfe8eb2bb58f11ab11dafdc005cb109ad2e55ec43f8d95caad7a2ce013928ae86b1547954' + 'c806a64fc5ae6ac07990cde710aafff666eb081ca7d78c0e6e0f92dfb62bffec47e9bc7f5d06b5fa0faf96943075cafd966281bfac39895562dae8b0b8a89396' '2f9195675270d79d735a3aaec25887c2f80b76eae98be8fcc5fd59ab71d925c5ee20ec5e2a015deb68b61bc2cc7f56f546a22cb96ee038e2e24c2c9dd5c3f79f' 'd8297e09f552a2d6bb24c2ba10481fd2b407057f3b24278e72a89233473460d339c83838791989773623178b5af80588fb4c484da2931f1040e313cce7ceca00' - '15d9b32ff1ad4c897b097173de259cdb89bbbf6ab0230faf4557eca511a59c1f2c76b85be30d25cf9534f91e1af43e72d072bc82dbf2219eadf772822f573d38' - '078dca48f0937ad021b1d50ba98dc1c156fb67a18b25fa079d2d35d0aa5480fb820e952c7f569cff5744cd32976a23942c2e822d1cfada8144e9a8dc9bae1d82' + '9b973fa8d55d9d68020f8d05458edfad2eea916ad0bbefcabf3e41a750aae8d9bb1c1c3820105bb785e050dd7a4343ab55c8bd97ab657520c17d2da3c18b7a99' + '4a40db184421fdda2b01efe22adee7a4e1ce82cbc877bfaea5aaaae7215d1fe9aeb307a5241af6b7b9e539ae3d1a26f35adaedce82c61d3edb60f6e0d1673743' '067f3389124fdd937ca69e9e9568b1b3194791960a093e81037051eb6d25e80b40bf7f60c61373ac9e92bff9db760766009b1e6f9ee8429a883bb7fce2d60f8a' '7f1eb5938472f57748216bd00e0c875feab99fc1c5cb89babfea467ee30ca5c8e9fc5a691efe2e602bef1ea79820c5383822d7cec354b48d23321ccda8ee8127' 'b6ef77035611139fa9a6d5b8d30570e2781bb4da483bb569884b0bd0129b62e0b82a5a6776fefe43fee801c70d39de1ea4d4c177f7cedd5ac135e3c64f7b895a' @@ -92,8 +92,8 @@ prepare() { echo "Applying hotfixes" patch -p1 -i ../0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch patch -p1 -i ../0002-HID-quirks-Add-Apple-Magic-Trackpad-2-to-hid_have_special_driver-list.patch - patch -p1 -i ../0003-iwlwifi-Fix-regression-from-UDP-segmentation-support.patch - patch -p1 -i ../0004-HID-wacom-Correct-NULL-dereference-on-AES-pen-proximity.patch + patch -p1 -i ../0003-iwlwifi-provide-gso_type-to-GSO-packets.patch + patch -p1 -i ../0004-Revert-SUNRPC-Handle-TCP-socket-sends-with-kernel_se.patch # ck patch @@ -5391,7 +5391,7 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y CONFIG_MEDIA_RADIO_SUPPORT=y # CONFIG_MEDIA_SDR_SUPPORT is not set CONFIG_MEDIA_PLATFORM_SUPPORT=y -# CONFIG_MEDIA_TEST_SUPPORT is not set +CONFIG_MEDIA_TEST_SUPPORT=y # end of Media device types CONFIG_VIDEO_DEV=m @@ -5419,6 +5419,11 @@ CONFIG_VIDEOBUF_VMALLOC=m # Media controller options # CONFIG_MEDIA_CONTROLLER_DVB=y +CONFIG_MEDIA_CONTROLLER_REQUEST_API=y + +# +# Please notice that the enabled Media controller Request API is EXPERIMENTAL +# # end of Media controller options # @@ -5714,6 +5719,7 @@ CONFIG_VIDEO_SAA7146_VV=m CONFIG_SMS_SIANO_MDTV=m CONFIG_SMS_SIANO_RC=y # CONFIG_SMS_SIANO_DEBUGFS is not set +CONFIG_VIDEO_V4L2_TPG=m CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_VIDEO_CAFE_CCIC=m CONFIG_VIDEO_CADENCE=y @@ -5728,6 +5734,15 @@ CONFIG_DVB_PLATFORM_DRIVERS=y # MMC/SDIO DVB adapters # CONFIG_SMS_SDIO_DRV=m +CONFIG_V4L_TEST_DRIVERS=y +CONFIG_VIDEO_VIMC=m +CONFIG_VIDEO_VIVID=m +CONFIG_VIDEO_VIVID_CEC=y +CONFIG_VIDEO_VIVID_MAX_DEVS=64 +CONFIG_VIDEO_VIM2M=m +CONFIG_VIDEO_VICODEC=m +CONFIG_DVB_TEST_DRIVERS=y +CONFIG_DVB_VIDTV=m # # FireWire (IEEE 1394) Adapters @@ -6065,6 +6080,11 @@ CONFIG_DVB_HELENE=m # CONFIG_DVB_CXD2099=m CONFIG_DVB_SP2=m + +# +# Tools to develop new frontends +# +CONFIG_DVB_DUMMY_FE=m # end of Media ancillary drivers # |