Date: Thursday, July 9, 2020 @ 18:35:31 Author: heftig Revision: 391505
5.4.51-1 Added: linux-lts/trunk/0002-Revert-ath9k-Fix-general-protection-fault-in-ath9k_h.patch Modified: linux-lts/trunk/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch linux-lts/trunk/PKGBUILD Deleted: linux-lts/trunk/0002-ALSA-usb-audio-Fix-packet-size-calculation.patch linux-lts/trunk/0003-drm-amd-display-Only-revalidate-bandwidth-on-medium-.patch -----------------------------------------------------------------+ 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch | 4 0002-ALSA-usb-audio-Fix-packet-size-calculation.patch | 35 - 0002-Revert-ath9k-Fix-general-protection-fault-in-ath9k_h.patch | 254 ++++++++++ 0003-drm-amd-display-Only-revalidate-bandwidth-on-medium-.patch | 43 - PKGBUILD | 12 5 files changed, 261 insertions(+), 87 deletions(-) Modified: 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch =================================================================== --- 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch 2020-07-09 18:11:25 UTC (rev 391504) +++ 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch 2020-07-09 18:35:31 UTC (rev 391505) @@ -1,4 +1,4 @@ -From f4b254de5d2b75143dd7c225e58afb3f5ee3bae6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: "Jan Alexander Steffens (heftig)" <[email protected]> Date: Mon, 16 Sep 2019 04:53:20 +0200 Subject: [PATCH] ZEN: Add sysctl and CONFIG to disallow unprivileged @@ -128,5 +128,5 @@ static DEFINE_MUTEX(userns_state_mutex); -- -2.26.2 +2.27.0 Deleted: 0002-ALSA-usb-audio-Fix-packet-size-calculation.patch =================================================================== --- 0002-ALSA-usb-audio-Fix-packet-size-calculation.patch 2020-07-09 18:11:25 UTC (rev 391504) +++ 0002-ALSA-usb-audio-Fix-packet-size-calculation.patch 2020-07-09 18:35:31 UTC (rev 391505) @@ -1,35 +0,0 @@ -From f28f67e0c17c11790c8795e7f727d3e39c4d5c92 Mon Sep 17 00:00:00 2001 -From: Alexander Tsoy <[email protected]> -Date: Mon, 29 Jun 2020 05:59:33 +0300 -Subject: [PATCH 1/2] ALSA: usb-audio: Fix packet size calculation - -Commit f0bd62b64016 ("ALSA: usb-audio: Improve frames size computation") -introduced a regression for devices which have playback endpoints with -bInterval > 1. Fix this by taking ep->datainterval into account. - -Note that frame and fps are actually mean packet and packets per second -in the code introduces by the mentioned commit. This will be fixed in a -follow-up patch. - -Fixes: f0bd62b64016 ("ALSA: usb-audio: Improve frames size computation") -BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=208353 -Signed-off-by: Alexander Tsoy <[email protected]> ---- - sound/usb/endpoint.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c -index 9bea7d3f99f8..11f23778f0a5 100644 ---- a/sound/usb/endpoint.c -+++ b/sound/usb/endpoint.c -@@ -1093,6 +1093,7 @@ int snd_usb_endpoint_set_params(struct snd_usb_endpoint *ep, - ep->freqn = get_usb_high_speed_rate(rate); - ep->fps = 8000; - } -+ ep->fps >>= ep->datainterval; - - ep->sample_rem = rate % ep->fps; - ep->framesize[0] = rate / ep->fps; --- -2.27.0 - Added: 0002-Revert-ath9k-Fix-general-protection-fault-in-ath9k_h.patch =================================================================== --- 0002-Revert-ath9k-Fix-general-protection-fault-in-ath9k_h.patch (rev 0) +++ 0002-Revert-ath9k-Fix-general-protection-fault-in-ath9k_h.patch 2020-07-09 18:35:31 UTC (rev 391505) @@ -0,0 +1,254 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Viktor=20J=C3=A4gersk=C3=BCpper?= + <[email protected]> +Date: Wed, 1 Jul 2020 23:32:28 +0200 +Subject: [PATCH] Revert "ath9k: Fix general protection fault in + ath9k_hif_usb_rx_cb" +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This reverts commit 2bbcaaee1fcb ("ath9k: Fix general protection fault +in ath9k_hif_usb_rx_cb") because the driver gets stuck like this: + + [ 5.778803] usb 1-5: Manufacturer: ATHEROS + [ 21.697488] usb 1-5: ath9k_htc: Firmware ath9k_htc/htc_9271-1.4.0.fw requested + [ 21.701377] usbcore: registered new interface driver ath9k_htc + [ 22.053705] usb 1-5: ath9k_htc: Transferred FW: ath9k_htc/htc_9271-1.4.0.fw, size: 51008 + [ 22.306182] ath9k_htc 1-5:1.0: ath9k_htc: HTC initialized with 33 credits + [ 115.708513] ath9k_htc: Failed to initialize the device + [ 115.708683] usb 1-5: ath9k_htc: USB layer deinitialized + +Reported-by: Roman Mamedov <[email protected]> +Ref: https://bugzilla.kernel.org/show_bug.cgi?id=208251 +Fixes: 2bbcaaee1fcb ("ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb") +Tested-by: Viktor Jägersküpper <[email protected]> +Signed-off-by: Viktor Jägersküpper <[email protected]> +--- + drivers/net/wireless/ath/ath9k/hif_usb.c | 48 ++++++------------------ + drivers/net/wireless/ath/ath9k/hif_usb.h | 5 --- + 2 files changed, 11 insertions(+), 42 deletions(-) + +diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c +index 4ed21dad6a8e..6049d3766c64 100644 +--- a/drivers/net/wireless/ath/ath9k/hif_usb.c ++++ b/drivers/net/wireless/ath/ath9k/hif_usb.c +@@ -643,9 +643,9 @@ static void ath9k_hif_usb_rx_stream(struct hif_device_usb *hif_dev, + + static void ath9k_hif_usb_rx_cb(struct urb *urb) + { +- struct rx_buf *rx_buf = (struct rx_buf *)urb->context; +- struct hif_device_usb *hif_dev = rx_buf->hif_dev; +- struct sk_buff *skb = rx_buf->skb; ++ struct sk_buff *skb = (struct sk_buff *) urb->context; ++ struct hif_device_usb *hif_dev = ++ usb_get_intfdata(usb_ifnum_to_if(urb->dev, 0)); + int ret; + + if (!skb) +@@ -685,15 +685,14 @@ static void ath9k_hif_usb_rx_cb(struct urb *urb) + return; + free: + kfree_skb(skb); +- kfree(rx_buf); + } + + static void ath9k_hif_usb_reg_in_cb(struct urb *urb) + { +- struct rx_buf *rx_buf = (struct rx_buf *)urb->context; +- struct hif_device_usb *hif_dev = rx_buf->hif_dev; +- struct sk_buff *skb = rx_buf->skb; ++ struct sk_buff *skb = (struct sk_buff *) urb->context; + struct sk_buff *nskb; ++ struct hif_device_usb *hif_dev = ++ usb_get_intfdata(usb_ifnum_to_if(urb->dev, 0)); + int ret; + + if (!skb) +@@ -751,7 +750,6 @@ static void ath9k_hif_usb_reg_in_cb(struct urb *urb) + return; + free: + kfree_skb(skb); +- kfree(rx_buf); + urb->context = NULL; + } + +@@ -797,7 +795,7 @@ static int ath9k_hif_usb_alloc_tx_urbs(struct hif_device_usb *hif_dev) + init_usb_anchor(&hif_dev->mgmt_submitted); + + for (i = 0; i < MAX_TX_URB_NUM; i++) { +- tx_buf = kzalloc(sizeof(*tx_buf), GFP_KERNEL); ++ tx_buf = kzalloc(sizeof(struct tx_buf), GFP_KERNEL); + if (!tx_buf) + goto err; + +@@ -834,146 +832,122 @@ static void ath9k_hif_usb_dealloc_rx_urbs(struct hif_device_usb *hif_dev) + + static int ath9k_hif_usb_alloc_rx_urbs(struct hif_device_usb *hif_dev) + { +- struct rx_buf *rx_buf = NULL; +- struct sk_buff *skb = NULL; + struct urb *urb = NULL; ++ struct sk_buff *skb = NULL; + int i, ret; + + init_usb_anchor(&hif_dev->rx_submitted); + spin_lock_init(&hif_dev->rx_lock); + + for (i = 0; i < MAX_RX_URB_NUM; i++) { + +- rx_buf = kzalloc(sizeof(*rx_buf), GFP_KERNEL); +- if (!rx_buf) { +- ret = -ENOMEM; +- goto err_rxb; +- } +- + /* Allocate URB */ + urb = usb_alloc_urb(0, GFP_KERNEL); + if (urb == NULL) { + ret = -ENOMEM; + goto err_urb; + } + + /* Allocate buffer */ + skb = alloc_skb(MAX_RX_BUF_SIZE, GFP_KERNEL); + if (!skb) { + ret = -ENOMEM; + goto err_skb; + } + +- rx_buf->hif_dev = hif_dev; +- rx_buf->skb = skb; +- + usb_fill_bulk_urb(urb, hif_dev->udev, + usb_rcvbulkpipe(hif_dev->udev, + USB_WLAN_RX_PIPE), + skb->data, MAX_RX_BUF_SIZE, +- ath9k_hif_usb_rx_cb, rx_buf); ++ ath9k_hif_usb_rx_cb, skb); + + /* Anchor URB */ + usb_anchor_urb(urb, &hif_dev->rx_submitted); + + /* Submit URB */ + ret = usb_submit_urb(urb, GFP_KERNEL); + if (ret) { + usb_unanchor_urb(urb); + goto err_submit; + } + + /* + * Drop reference count. + * This ensures that the URB is freed when killing them. + */ + usb_free_urb(urb); + } + + return 0; + + err_submit: + kfree_skb(skb); + err_skb: + usb_free_urb(urb); + err_urb: +- kfree(rx_buf); +-err_rxb: + ath9k_hif_usb_dealloc_rx_urbs(hif_dev); + return ret; + } + + static void ath9k_hif_usb_dealloc_reg_in_urbs(struct hif_device_usb *hif_dev) + { + usb_kill_anchored_urbs(&hif_dev->reg_in_submitted); + } + + static int ath9k_hif_usb_alloc_reg_in_urbs(struct hif_device_usb *hif_dev) + { +- struct rx_buf *rx_buf = NULL; +- struct sk_buff *skb = NULL; + struct urb *urb = NULL; ++ struct sk_buff *skb = NULL; + int i, ret; + + init_usb_anchor(&hif_dev->reg_in_submitted); + + for (i = 0; i < MAX_REG_IN_URB_NUM; i++) { + +- rx_buf = kzalloc(sizeof(*rx_buf), GFP_KERNEL); +- if (!rx_buf) { +- ret = -ENOMEM; +- goto err_rxb; +- } +- + /* Allocate URB */ + urb = usb_alloc_urb(0, GFP_KERNEL); + if (urb == NULL) { + ret = -ENOMEM; + goto err_urb; + } + + /* Allocate buffer */ + skb = alloc_skb(MAX_REG_IN_BUF_SIZE, GFP_KERNEL); + if (!skb) { + ret = -ENOMEM; + goto err_skb; + } + +- rx_buf->hif_dev = hif_dev; +- rx_buf->skb = skb; +- + usb_fill_int_urb(urb, hif_dev->udev, + usb_rcvintpipe(hif_dev->udev, + USB_REG_IN_PIPE), + skb->data, MAX_REG_IN_BUF_SIZE, +- ath9k_hif_usb_reg_in_cb, rx_buf, 1); ++ ath9k_hif_usb_reg_in_cb, skb, 1); + + /* Anchor URB */ + usb_anchor_urb(urb, &hif_dev->reg_in_submitted); + + /* Submit URB */ + ret = usb_submit_urb(urb, GFP_KERNEL); + if (ret) { + usb_unanchor_urb(urb); + goto err_submit; + } + + /* + * Drop reference count. + * This ensures that the URB is freed when killing them. + */ + usb_free_urb(urb); + } + + return 0; + + err_submit: + kfree_skb(skb); + err_skb: + usb_free_urb(urb); + err_urb: +- kfree(rx_buf); +-err_rxb: + ath9k_hif_usb_dealloc_reg_in_urbs(hif_dev); + return ret; + } +diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.h b/drivers/net/wireless/ath/ath9k/hif_usb.h +index 5985aa15ca93..a94e7e1c86e9 100644 +--- a/drivers/net/wireless/ath/ath9k/hif_usb.h ++++ b/drivers/net/wireless/ath/ath9k/hif_usb.h +@@ -86,11 +86,6 @@ struct tx_buf { + struct list_head list; + }; + +-struct rx_buf { +- struct sk_buff *skb; +- struct hif_device_usb *hif_dev; +-}; +- + #define HIF_USB_TX_STOP BIT(0) + #define HIF_USB_TX_FLUSH BIT(1) + +-- +2.27.0 + Deleted: 0003-drm-amd-display-Only-revalidate-bandwidth-on-medium-.patch =================================================================== --- 0003-drm-amd-display-Only-revalidate-bandwidth-on-medium-.patch 2020-07-09 18:11:25 UTC (rev 391504) +++ 0003-drm-amd-display-Only-revalidate-bandwidth-on-medium-.patch 2020-07-09 18:35:31 UTC (rev 391505) @@ -1,43 +0,0 @@ -From e140fa77c6a3f6b5282553ac91be3dae6cc7cc0b Mon Sep 17 00:00:00 2001 -From: Nicholas Kazlauskas <[email protected]> -Date: Mon, 29 Jun 2020 13:03:52 -0400 -Subject: [PATCH 2/2] drm/amd/display: Only revalidate bandwidth on medium and - fast updates - -[Why] -Changes that are fast don't require updating DLG parameters making -this call unnecessary. Considering this is an expensive call it should -not be done on every flip. - -[How] -Guard the validation to only happen if update type isn't FAST. - -Signed-off-by: Nicholas Kazlauskas <[email protected]> ---- - drivers/gpu/drm/amd/display/dc/core/dc.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c -index 47e7d11ca0c9..68d56a91d44b 100644 ---- a/drivers/gpu/drm/amd/display/dc/core/dc.c -+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c -@@ -2226,10 +2226,12 @@ void dc_commit_updates_for_stream(struct dc *dc, - - copy_stream_update_to_stream(dc, context, stream, stream_update); - -- if (!dc->res_pool->funcs->validate_bandwidth(dc, context, false)) { -- DC_ERROR("Mode validation failed for stream update!\n"); -- dc_release_state(context); -- return; -+ if (update_type > UPDATE_TYPE_FAST) { -+ if (!dc->res_pool->funcs->validate_bandwidth(dc, context, false)) { -+ DC_ERROR("Mode validation failed for stream update!\n"); -+ dc_release_state(context); -+ return; -+ } - } - - commit_planes_for_stream( --- -2.27.0 - Modified: PKGBUILD =================================================================== --- PKGBUILD 2020-07-09 18:11:25 UTC (rev 391504) +++ PKGBUILD 2020-07-09 18:35:31 UTC (rev 391505) @@ -1,7 +1,7 @@ # Maintainer: Andreas Radke <[email protected]> pkgbase=linux-lts -pkgver=5.4.50 +pkgver=5.4.51 pkgrel=1 pkgdesc='LTS Linux' url="https://www.kernel.org/" @@ -17,8 +17,7 @@ https://www.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/${_srcname}.tar.{xz,sign} config # the main kernel config file 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch - 0002-ALSA-usb-audio-Fix-packet-size-calculation.patch - 0003-drm-amd-display-Only-revalidate-bandwidth-on-medium-.patch + 0002-Revert-ath9k-Fix-general-protection-fault-in-ath9k_h.patch sphinx-workaround.patch ) validpgpkeys=( @@ -26,12 +25,11 @@ '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman ) # https://www.kernel.org/pub/linux/kernel/v5.x/sha256sums.asc -sha256sums=('ad10f4c1e900f4e3eb4903b65dbcb4ca74250de63aa9fa7105b9b3c3f9a8a6e2' +sha256sums=('9e8bea8b4cd636726b7e495a3b467c8ffe96f8eddc159a45fe4a7e6e07a2069d' 'SKIP' 'd20936f94b29f3e86513108ab772ef4778a8cb95ec7cd44519523a6eea40aa5d' - 'bdd05caf94135898bceac0a9d14ec6b1b458dba162d00efd46a292fe97f2679b' - 'a4c0688aaf3e94c60f20684ed5fed8c8c1c4974926fa37c6fc50bb143d73c4f0' - '085b7ca855a0d6630b2a8b34f3d0d541c64ba816eefb0b72f96e2ca9d0907592' + '93de5436e4d62abd7d3f2f9de0008aa647e67cba5a54fea0641ddcf4f6d85e97' + '5a317a467e5387e711f2ecc7c70b94d5df5bda10429e9c5cd7002e6b710bd2d0' 'b7c814c8183e4645947a6dcc3cbf80431de8a8fd4e895b780f9a5fd92f82cb8e') export KBUILD_BUILD_HOST=archlinux
