From: Sasha Levin Date: Thu, 15 Sep 2022 12:31:59 +0000 (-0400) Subject: Fixes for 5.4 X-Git-Tag: v4.9.329~35 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=99133bcb79eb110739a9be15c9f174f6cf82612f;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 5.4 Signed-off-by: Sasha Levin --- diff --git a/queue-5.4/drm-msm-rd-fix-fifo-full-deadlock.patch b/queue-5.4/drm-msm-rd-fix-fifo-full-deadlock.patch new file mode 100644 index 00000000000..9c567b8df36 --- /dev/null +++ b/queue-5.4/drm-msm-rd-fix-fifo-full-deadlock.patch @@ -0,0 +1,39 @@ +From cf344c7952bd6906f37233151c47feed47f9c38a Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sun, 7 Aug 2022 09:09:01 -0700 +Subject: drm/msm/rd: Fix FIFO-full deadlock + +From: Rob Clark + +[ Upstream commit 174974d8463b77c2b4065e98513adb204e64de7d ] + +If the previous thing cat'ing $debugfs/rd left the FIFO full, then +subsequent open could deadlock in rd_write() (because open is blocked, +not giving a chance for read() to consume any data in the FIFO). Also +it is generally a good idea to clear out old data from the FIFO. + +Signed-off-by: Rob Clark +Patchwork: https://patchwork.freedesktop.org/patch/496706/ +Link: https://lore.kernel.org/r/20220807160901.2353471-2-robdclark@gmail.com +Signed-off-by: Sasha Levin +--- + drivers/gpu/drm/msm/msm_rd.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/drivers/gpu/drm/msm/msm_rd.c b/drivers/gpu/drm/msm/msm_rd.c +index c7832a951039f..a6b024b06b363 100644 +--- a/drivers/gpu/drm/msm/msm_rd.c ++++ b/drivers/gpu/drm/msm/msm_rd.c +@@ -191,6 +191,9 @@ static int rd_open(struct inode *inode, struct file *file) + file->private_data = rd; + rd->open = true; + ++ /* Reset fifo to clear any previously unread data: */ ++ rd->fifo.head = rd->fifo.tail = 0; ++ + /* the parsing tools need to know gpu-id to know which + * register database to load. + */ +-- +2.35.1 + diff --git a/queue-5.4/hid-intel-ish-hid-ishtp-fix-ishtp-client-sending-dis.patch b/queue-5.4/hid-intel-ish-hid-ishtp-fix-ishtp-client-sending-dis.patch new file mode 100644 index 00000000000..5e337728cb7 --- /dev/null +++ b/queue-5.4/hid-intel-ish-hid-ishtp-fix-ishtp-client-sending-dis.patch @@ -0,0 +1,154 @@ +From d16e54a6bcc748af609acd7db84e004a5d9fb0a0 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 4 Aug 2022 08:59:19 +0800 +Subject: hid: intel-ish-hid: ishtp: Fix ishtp client sending disordered + message + +From: Even Xu + +[ Upstream commit e1fa076706209cc447d7a2abd0843a18277e5ef7 ] + +There is a timing issue captured during ishtp client sending stress tests. +It was observed during stress tests that ISH firmware is getting out of +ordered messages. This is a rare scenario as the current set of ISH client +drivers don't send much data to firmware. But this may not be the case +going forward. + +When message size is bigger than IPC MTU, ishtp splits the message into +fragments and uses serialized async method to send message fragments. +The call stack: +ishtp_cl_send_msg_ipc->ipc_tx_callback(first fregment)-> +ishtp_send_msg(with callback)->write_ipc_to_queue-> +write_ipc_from_queue->callback->ipc_tx_callback(next fregment)...... + +When an ipc write complete interrupt is received, driver also calls +write_ipc_from_queue->ipc_tx_callback in ISR to start sending of next fragment. + +Through ipc_tx_callback uses spin_lock to protect message splitting, as the +serialized sending method will call back to ipc_tx_callback again, so it doesn't +put sending under spin_lock, it causes driver cannot guarantee all fragments +be sent in order. + +Considering this scenario: +ipc_tx_callback just finished a fragment splitting, and not call ishtp_send_msg +yet, there is a write complete interrupt happens, then ISR->write_ipc_from_queue +->ipc_tx_callback->ishtp_send_msg->write_ipc_to_queue...... + +Because ISR has higher exec priority than normal thread, this causes the new +fragment be sent out before previous fragment. This disordered message causes +invalid message to firmware. + +The solution is, to send fragments synchronously: +Use ishtp_write_message writing fragments into tx queue directly one by one, +instead of ishtp_send_msg only writing one fragment with completion callback. +As no completion callback be used, so change ipc_tx_callback to ipc_tx_send. + +Signed-off-by: Even Xu +Acked-by: Srinivas Pandruvada +Signed-off-by: Jiri Kosina +Signed-off-by: Sasha Levin +--- + drivers/hid/intel-ish-hid/ishtp/client.c | 68 ++++++++++++++---------- + 1 file changed, 39 insertions(+), 29 deletions(-) + +diff --git a/drivers/hid/intel-ish-hid/ishtp/client.c b/drivers/hid/intel-ish-hid/ishtp/client.c +index 1cc157126fce7..c0d69303e3b09 100644 +--- a/drivers/hid/intel-ish-hid/ishtp/client.c ++++ b/drivers/hid/intel-ish-hid/ishtp/client.c +@@ -626,13 +626,14 @@ static void ishtp_cl_read_complete(struct ishtp_cl_rb *rb) + } + + /** +- * ipc_tx_callback() - IPC tx callback function ++ * ipc_tx_send() - IPC tx send function + * @prm: Pointer to client device instance + * +- * Send message over IPC either first time or on callback on previous message +- * completion ++ * Send message over IPC. Message will be split into fragments ++ * if message size is bigger than IPC FIFO size, and all ++ * fragments will be sent one by one. + */ +-static void ipc_tx_callback(void *prm) ++static void ipc_tx_send(void *prm) + { + struct ishtp_cl *cl = prm; + struct ishtp_cl_tx_ring *cl_msg; +@@ -677,32 +678,41 @@ static void ipc_tx_callback(void *prm) + list); + rem = cl_msg->send_buf.size - cl->tx_offs; + +- ishtp_hdr.host_addr = cl->host_client_id; +- ishtp_hdr.fw_addr = cl->fw_client_id; +- ishtp_hdr.reserved = 0; +- pmsg = cl_msg->send_buf.data + cl->tx_offs; ++ while (rem > 0) { ++ ishtp_hdr.host_addr = cl->host_client_id; ++ ishtp_hdr.fw_addr = cl->fw_client_id; ++ ishtp_hdr.reserved = 0; ++ pmsg = cl_msg->send_buf.data + cl->tx_offs; ++ ++ if (rem <= dev->mtu) { ++ /* Last fragment or only one packet */ ++ ishtp_hdr.length = rem; ++ ishtp_hdr.msg_complete = 1; ++ /* Submit to IPC queue with no callback */ ++ ishtp_write_message(dev, &ishtp_hdr, pmsg); ++ cl->tx_offs = 0; ++ cl->sending = 0; + +- if (rem <= dev->mtu) { +- ishtp_hdr.length = rem; +- ishtp_hdr.msg_complete = 1; +- cl->sending = 0; +- list_del_init(&cl_msg->list); /* Must be before write */ +- spin_unlock_irqrestore(&cl->tx_list_spinlock, tx_flags); +- /* Submit to IPC queue with no callback */ +- ishtp_write_message(dev, &ishtp_hdr, pmsg); +- spin_lock_irqsave(&cl->tx_free_list_spinlock, tx_free_flags); +- list_add_tail(&cl_msg->list, &cl->tx_free_list.list); +- ++cl->tx_ring_free_size; +- spin_unlock_irqrestore(&cl->tx_free_list_spinlock, +- tx_free_flags); +- } else { +- /* Send IPC fragment */ +- spin_unlock_irqrestore(&cl->tx_list_spinlock, tx_flags); +- cl->tx_offs += dev->mtu; +- ishtp_hdr.length = dev->mtu; +- ishtp_hdr.msg_complete = 0; +- ishtp_send_msg(dev, &ishtp_hdr, pmsg, ipc_tx_callback, cl); ++ break; ++ } else { ++ /* Send ipc fragment */ ++ ishtp_hdr.length = dev->mtu; ++ ishtp_hdr.msg_complete = 0; ++ /* All fregments submitted to IPC queue with no callback */ ++ ishtp_write_message(dev, &ishtp_hdr, pmsg); ++ cl->tx_offs += dev->mtu; ++ rem = cl_msg->send_buf.size - cl->tx_offs; ++ } + } ++ ++ list_del_init(&cl_msg->list); ++ spin_unlock_irqrestore(&cl->tx_list_spinlock, tx_flags); ++ ++ spin_lock_irqsave(&cl->tx_free_list_spinlock, tx_free_flags); ++ list_add_tail(&cl_msg->list, &cl->tx_free_list.list); ++ ++cl->tx_ring_free_size; ++ spin_unlock_irqrestore(&cl->tx_free_list_spinlock, ++ tx_free_flags); + } + + /** +@@ -720,7 +730,7 @@ static void ishtp_cl_send_msg_ipc(struct ishtp_device *dev, + return; + + cl->tx_offs = 0; +- ipc_tx_callback(cl); ++ ipc_tx_send(cl); + ++cl->send_msg_cnt_ipc; + } + +-- +2.35.1 + diff --git a/queue-5.4/hid-ishtp-hid-clienthid-ishtp-hid-client-fix-comment.patch b/queue-5.4/hid-ishtp-hid-clienthid-ishtp-hid-client-fix-comment.patch new file mode 100644 index 00000000000..9e175d81b02 --- /dev/null +++ b/queue-5.4/hid-ishtp-hid-clienthid-ishtp-hid-client-fix-comment.patch @@ -0,0 +1,34 @@ +From 54b97d9ef7a5a3140691f4f48cbee8aa0b3a3349 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 4 Aug 2022 08:58:14 +0800 +Subject: HID: ishtp-hid-clientHID: ishtp-hid-client: Fix comment typo + +From: Jason Wang + +[ Upstream commit 94553f8a218540d676efbf3f7827ed493d1057cf ] + +The double `like' is duplicated in the comment, remove one. + +Signed-off-by: Jason Wang +Signed-off-by: Jiri Kosina +Signed-off-by: Sasha Levin +--- + drivers/hid/intel-ish-hid/ishtp-hid.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/hid/intel-ish-hid/ishtp-hid.h b/drivers/hid/intel-ish-hid/ishtp-hid.h +index 5ffd0da3cf1fa..65af0ebef79f6 100644 +--- a/drivers/hid/intel-ish-hid/ishtp-hid.h ++++ b/drivers/hid/intel-ish-hid/ishtp-hid.h +@@ -110,7 +110,7 @@ struct report_list { + * @multi_packet_cnt: Count of fragmented packet count + * + * This structure is used to store completion flags and per client data like +- * like report description, number of HID devices etc. ++ * report description, number of HID devices etc. + */ + struct ishtp_cl_data { + /* completion flags */ +-- +2.35.1 + diff --git a/queue-5.4/ieee802154-cc2520-add-rc-code-in-cc2520_tx.patch b/queue-5.4/ieee802154-cc2520-add-rc-code-in-cc2520_tx.patch new file mode 100644 index 00000000000..225d14d563b --- /dev/null +++ b/queue-5.4/ieee802154-cc2520-add-rc-code-in-cc2520_tx.patch @@ -0,0 +1,35 @@ +From 33ad2cd48f48a54268dfddaf9ba462957f0e8c42 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 29 Aug 2022 15:12:59 +0800 +Subject: ieee802154: cc2520: add rc code in cc2520_tx() + +From: Li Qiong + +[ Upstream commit ffd7bdddaab193c38416fd5dd416d065517d266e ] + +The rc code is 0 at the error path "status & CC2520_STATUS_TX_UNDERFLOW". +Assign rc code with '-EINVAL' at this error path to fix it. + +Signed-off-by: Li Qiong +Link: https://lore.kernel.org/r/20220829071259.18330-1-liqiong@nfschina.com +Signed-off-by: Stefan Schmidt +Signed-off-by: Sasha Levin +--- + drivers/net/ieee802154/cc2520.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/net/ieee802154/cc2520.c b/drivers/net/ieee802154/cc2520.c +index 43506948e444d..0432a4f829a98 100644 +--- a/drivers/net/ieee802154/cc2520.c ++++ b/drivers/net/ieee802154/cc2520.c +@@ -507,6 +507,7 @@ cc2520_tx(struct ieee802154_hw *hw, struct sk_buff *skb) + goto err_tx; + + if (status & CC2520_STATUS_TX_UNDERFLOW) { ++ rc = -EINVAL; + dev_err(&priv->spi->dev, "cc2520 tx underflow exception\n"); + goto err_tx; + } +-- +2.35.1 + diff --git a/queue-5.4/input-iforce-add-support-for-boeder-force-feedback-w.patch b/queue-5.4/input-iforce-add-support-for-boeder-force-feedback-w.patch new file mode 100644 index 00000000000..a837dc05c0e --- /dev/null +++ b/queue-5.4/input-iforce-add-support-for-boeder-force-feedback-w.patch @@ -0,0 +1,48 @@ +From 632cc9523cc25d07af77b541ce05de51e77d27a2 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 29 Aug 2022 11:21:03 -0700 +Subject: Input: iforce - add support for Boeder Force Feedback Wheel + +From: Greg Tulli + +[ Upstream commit 9c9c71168f7979f3798b61c65b4530fbfbcf19d1 ] + +Add a new iforce_device entry to support the Boeder Force Feedback Wheel +device. + +Signed-off-by: Greg Tulli +Link: https://lore.kernel.org/r/3256420-c8ac-31b-8499-3c488a9880fd@gmail.com +Signed-off-by: Dmitry Torokhov +Signed-off-by: Sasha Levin +--- + Documentation/input/joydev/joystick.rst | 1 + + drivers/input/joystick/iforce/iforce-main.c | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/Documentation/input/joydev/joystick.rst b/Documentation/input/joydev/joystick.rst +index 9746fd76cc581..f38c330c028e5 100644 +--- a/Documentation/input/joydev/joystick.rst ++++ b/Documentation/input/joydev/joystick.rst +@@ -517,6 +517,7 @@ All I-Force devices are supported by the iforce module. This includes: + * AVB Mag Turbo Force + * AVB Top Shot Pegasus + * AVB Top Shot Force Feedback Racing Wheel ++* Boeder Force Feedback Wheel + * Logitech WingMan Force + * Logitech WingMan Force Wheel + * Guillemot Race Leader Force Feedback +diff --git a/drivers/input/joystick/iforce/iforce-main.c b/drivers/input/joystick/iforce/iforce-main.c +index b2a68bc9f0b4d..b86de1312512b 100644 +--- a/drivers/input/joystick/iforce/iforce-main.c ++++ b/drivers/input/joystick/iforce/iforce-main.c +@@ -50,6 +50,7 @@ static struct iforce_device iforce_device[] = { + { 0x046d, 0xc291, "Logitech WingMan Formula Force", btn_wheel, abs_wheel, ff_iforce }, + { 0x05ef, 0x020a, "AVB Top Shot Pegasus", btn_joystick_avb, abs_avb_pegasus, ff_iforce }, + { 0x05ef, 0x8884, "AVB Mag Turbo Force", btn_wheel, abs_wheel, ff_iforce }, ++ { 0x05ef, 0x8886, "Boeder Force Feedback Wheel", btn_wheel, abs_wheel, ff_iforce }, + { 0x05ef, 0x8888, "AVB Top Shot Force Feedback Racing Wheel", btn_wheel, abs_wheel, ff_iforce }, //? + { 0x061c, 0xc0a4, "ACT LABS Force RS", btn_wheel, abs_wheel, ff_iforce }, //? + { 0x061c, 0xc084, "ACT LABS Force RS", btn_wheel, abs_wheel, ff_iforce }, +-- +2.35.1 + diff --git a/queue-5.4/nvmet-tcp-fix-unhandled-tcp-states-in-nvmet_tcp_stat.patch b/queue-5.4/nvmet-tcp-fix-unhandled-tcp-states-in-nvmet_tcp_stat.patch new file mode 100644 index 00000000000..6a4dc90c22f --- /dev/null +++ b/queue-5.4/nvmet-tcp-fix-unhandled-tcp-states-in-nvmet_tcp_stat.patch @@ -0,0 +1,47 @@ +From 24b288837fa148711696fbc6bcb025d98ec36462 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 29 Aug 2022 14:40:30 +0200 +Subject: nvmet-tcp: fix unhandled tcp states in nvmet_tcp_state_change() + +From: Maurizio Lombardi + +[ Upstream commit 478814a5584197fa1fb18377653626e3416e7cd6 ] + +TCP_FIN_WAIT2 and TCP_LAST_ACK were not handled, the connection is closing +so we can ignore them and avoid printing the "unhandled state" +warning message. + +[ 1298.852386] nvmet_tcp: queue 2 unhandled state 5 +[ 1298.879112] nvmet_tcp: queue 7 unhandled state 5 +[ 1298.884253] nvmet_tcp: queue 8 unhandled state 5 +[ 1298.889475] nvmet_tcp: queue 9 unhandled state 5 + +v2: Do not call nvmet_tcp_schedule_release_queue(), just ignore +the fin_wait2 and last_ack states. + +Signed-off-by: Maurizio Lombardi +Reviewed-by: Sagi Grimberg +Reviewed-by: Chaitanya Kulkarni +Signed-off-by: Christoph Hellwig +Signed-off-by: Sasha Levin +--- + drivers/nvme/target/tcp.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/drivers/nvme/target/tcp.c b/drivers/nvme/target/tcp.c +index e9512d077b8a8..eb5b39c2bba84 100644 +--- a/drivers/nvme/target/tcp.c ++++ b/drivers/nvme/target/tcp.c +@@ -1416,6 +1416,9 @@ static void nvmet_tcp_state_change(struct sock *sk) + goto done; + + switch (sk->sk_state) { ++ case TCP_FIN_WAIT2: ++ case TCP_LAST_ACK: ++ break; + case TCP_FIN_WAIT1: + case TCP_CLOSE_WAIT: + case TCP_CLOSE: +-- +2.35.1 + diff --git a/queue-5.4/perf-arm_pmu_platform-fix-tests-for-platform_get_irq.patch b/queue-5.4/perf-arm_pmu_platform-fix-tests-for-platform_get_irq.patch new file mode 100644 index 00000000000..a07a5d7cf51 --- /dev/null +++ b/queue-5.4/perf-arm_pmu_platform-fix-tests-for-platform_get_irq.patch @@ -0,0 +1,36 @@ +From 3a886c021b3175c28c74223501b59d025fd63d92 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 25 Aug 2022 09:18:44 +0800 +Subject: perf/arm_pmu_platform: fix tests for platform_get_irq() failure + +From: Yu Zhe + +[ Upstream commit 6bb0d64c100091e131cd16710b62fda3319cd0af ] + +The platform_get_irq() returns negative error codes. It can't actually +return zero. + +Signed-off-by: Yu Zhe +Link: https://lore.kernel.org/r/20220825011844.8536-1-yuzhe@nfschina.com +Signed-off-by: Will Deacon +Signed-off-by: Sasha Levin +--- + drivers/perf/arm_pmu_platform.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/perf/arm_pmu_platform.c b/drivers/perf/arm_pmu_platform.c +index e35cb76c8d104..6eb077db7384d 100644 +--- a/drivers/perf/arm_pmu_platform.c ++++ b/drivers/perf/arm_pmu_platform.c +@@ -118,7 +118,7 @@ static int pmu_parse_irqs(struct arm_pmu *pmu) + + if (num_irqs == 1) { + int irq = platform_get_irq(pdev, 0); +- if (irq && irq_is_percpu_devid(irq)) ++ if ((irq > 0) && irq_is_percpu_devid(irq)) + return pmu_parse_percpu_irq(pmu, irq); + } + +-- +2.35.1 + diff --git a/queue-5.4/platform-x86-acer-wmi-acer-aspire-one-aod270-packard.patch b/queue-5.4/platform-x86-acer-wmi-acer-aspire-one-aod270-packard.patch new file mode 100644 index 00000000000..a23912879b2 --- /dev/null +++ b/queue-5.4/platform-x86-acer-wmi-acer-aspire-one-aod270-packard.patch @@ -0,0 +1,59 @@ +From aaf1b2f7611f4e161f3b5fd14679acffc4e246a4 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 29 Aug 2022 18:35:44 +0200 +Subject: platform/x86: acer-wmi: Acer Aspire One AOD270/Packard Bell Dot + keymap fixes + +From: Hans de Goede + +[ Upstream commit c3b82d26bc85f5fc2fef5ec8cce17c89633a55a8 ] + +2 keymap fixes for the Acer Aspire One AOD270 and the same hardware +rebranded as Packard Bell Dot SC: + +1. The F2 key is marked with a big '?' symbol on the Packard Bell Dot SC, +this sends WMID_HOTKEY_EVENTs with a scancode of 0x27 add a mapping +for this. + +2. Scancode 0x61 is KEY_SWITCHVIDEOMODE. Usually this is a duplicate +input event with the "Video Bus" input device events. But on these devices +the "Video Bus" does not send events for this key. Map 0x61 to KEY_UNKNOWN +instead of using KE_IGNORE so that udev/hwdb can override it on these devs. + +Signed-off-by: Hans de Goede +Link: https://lore.kernel.org/r/20220829163544.5288-1-hdegoede@redhat.com +Signed-off-by: Sasha Levin +--- + drivers/platform/x86/acer-wmi.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c +index d27a564389a47..e88bd54ff8bd6 100644 +--- a/drivers/platform/x86/acer-wmi.c ++++ b/drivers/platform/x86/acer-wmi.c +@@ -93,6 +93,7 @@ static const struct key_entry acer_wmi_keymap[] __initconst = { + {KE_KEY, 0x22, {KEY_PROG2} }, /* Arcade */ + {KE_KEY, 0x23, {KEY_PROG3} }, /* P_Key */ + {KE_KEY, 0x24, {KEY_PROG4} }, /* Social networking_Key */ ++ {KE_KEY, 0x27, {KEY_HELP} }, + {KE_KEY, 0x29, {KEY_PROG3} }, /* P_Key for TM8372 */ + {KE_IGNORE, 0x41, {KEY_MUTE} }, + {KE_IGNORE, 0x42, {KEY_PREVIOUSSONG} }, +@@ -106,7 +107,13 @@ static const struct key_entry acer_wmi_keymap[] __initconst = { + {KE_IGNORE, 0x48, {KEY_VOLUMEUP} }, + {KE_IGNORE, 0x49, {KEY_VOLUMEDOWN} }, + {KE_IGNORE, 0x4a, {KEY_VOLUMEDOWN} }, +- {KE_IGNORE, 0x61, {KEY_SWITCHVIDEOMODE} }, ++ /* ++ * 0x61 is KEY_SWITCHVIDEOMODE. Usually this is a duplicate input event ++ * with the "Video Bus" input device events. But sometimes it is not ++ * a dup. Map it to KEY_UNKNOWN instead of using KE_IGNORE so that ++ * udev/hwdb can override it on systems where it is not a dup. ++ */ ++ {KE_KEY, 0x61, {KEY_UNKNOWN} }, + {KE_IGNORE, 0x62, {KEY_BRIGHTNESSUP} }, + {KE_IGNORE, 0x63, {KEY_BRIGHTNESSDOWN} }, + {KE_KEY, 0x64, {KEY_SWITCHVIDEOMODE} }, /* Display Switch */ +-- +2.35.1 + diff --git a/queue-5.4/series b/queue-5.4/series new file mode 100644 index 00000000000..08ac217eb26 --- /dev/null +++ b/queue-5.4/series @@ -0,0 +1,10 @@ +drm-msm-rd-fix-fifo-full-deadlock.patch +hid-ishtp-hid-clienthid-ishtp-hid-client-fix-comment.patch +hid-intel-ish-hid-ishtp-fix-ishtp-client-sending-dis.patch +tg3-disable-tg3-device-on-system-reboot-to-avoid-tri.patch +ieee802154-cc2520-add-rc-code-in-cc2520_tx.patch +input-iforce-add-support-for-boeder-force-feedback-w.patch +nvmet-tcp-fix-unhandled-tcp-states-in-nvmet_tcp_stat.patch +perf-arm_pmu_platform-fix-tests-for-platform_get_irq.patch +platform-x86-acer-wmi-acer-aspire-one-aod270-packard.patch +usb-storage-add-asus-0x0b05-0x1932-to-ignore_uas.patch diff --git a/queue-5.4/tg3-disable-tg3-device-on-system-reboot-to-avoid-tri.patch b/queue-5.4/tg3-disable-tg3-device-on-system-reboot-to-avoid-tri.patch new file mode 100644 index 00000000000..9cc5f9f4284 --- /dev/null +++ b/queue-5.4/tg3-disable-tg3-device-on-system-reboot-to-avoid-tri.patch @@ -0,0 +1,83 @@ +From 5699db0fd61573be4b0f04f52bd67145931f20d1 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 26 Aug 2022 08:25:30 +0800 +Subject: tg3: Disable tg3 device on system reboot to avoid triggering AER + +From: Kai-Heng Feng + +[ Upstream commit 2ca1c94ce0b65a2ce7512b718f3d8a0fe6224bca ] + +Commit d60cd06331a3 ("PM: ACPI: reboot: Use S5 for reboot") caused a +reboot hang on one Dell servers so the commit was reverted. + +Someone managed to collect the AER log and it's caused by MSI: +[ 148.762067] ACPI: Preparing to enter system sleep state S5 +[ 148.794638] {1}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 5 +[ 148.803731] {1}[Hardware Error]: event severity: recoverable +[ 148.810191] {1}[Hardware Error]: Error 0, type: fatal +[ 148.816088] {1}[Hardware Error]: section_type: PCIe error +[ 148.822391] {1}[Hardware Error]: port_type: 0, PCIe end point +[ 148.829026] {1}[Hardware Error]: version: 3.0 +[ 148.834266] {1}[Hardware Error]: command: 0x0006, status: 0x0010 +[ 148.841140] {1}[Hardware Error]: device_id: 0000:04:00.0 +[ 148.847309] {1}[Hardware Error]: slot: 0 +[ 148.852077] {1}[Hardware Error]: secondary_bus: 0x00 +[ 148.857876] {1}[Hardware Error]: vendor_id: 0x14e4, device_id: 0x165f +[ 148.865145] {1}[Hardware Error]: class_code: 020000 +[ 148.870845] {1}[Hardware Error]: aer_uncor_status: 0x00100000, aer_uncor_mask: 0x00010000 +[ 148.879842] {1}[Hardware Error]: aer_uncor_severity: 0x000ef030 +[ 148.886575] {1}[Hardware Error]: TLP Header: 40000001 0000030f 90028090 00000000 +[ 148.894823] tg3 0000:04:00.0: AER: aer_status: 0x00100000, aer_mask: 0x00010000 +[ 148.902795] tg3 0000:04:00.0: AER: [20] UnsupReq (First) +[ 148.910234] tg3 0000:04:00.0: AER: aer_layer=Transaction Layer, aer_agent=Requester ID +[ 148.918806] tg3 0000:04:00.0: AER: aer_uncor_severity: 0x000ef030 +[ 148.925558] tg3 0000:04:00.0: AER: TLP Header: 40000001 0000030f 90028090 00000000 + +The MSI is probably raised by incoming packets, so power down the device +and disable bus mastering to stop the traffic, as user confirmed this +approach works. + +In addition to that, be extra safe and cancel reset task if it's running. + +Cc: Josef Bacik +Link: https://lore.kernel.org/all/b8db79e6857c41dab4ef08bdf826ea7c47e3bafc.1615947283.git.josef@toxicpanda.com/ +BugLink: https://bugs.launchpad.net/bugs/1917471 +Signed-off-by: Kai-Heng Feng +Reviewed-by: Michael Chan +Link: https://lore.kernel.org/r/20220826002530.1153296-1-kai.heng.feng@canonical.com +Signed-off-by: Jakub Kicinski +Signed-off-by: Sasha Levin +--- + drivers/net/ethernet/broadcom/tg3.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c +index 70bd79dc43f2e..a9962474d551d 100644 +--- a/drivers/net/ethernet/broadcom/tg3.c ++++ b/drivers/net/ethernet/broadcom/tg3.c +@@ -18154,16 +18154,20 @@ static void tg3_shutdown(struct pci_dev *pdev) + struct net_device *dev = pci_get_drvdata(pdev); + struct tg3 *tp = netdev_priv(dev); + ++ tg3_reset_task_cancel(tp); ++ + rtnl_lock(); ++ + netif_device_detach(dev); + + if (netif_running(dev)) + dev_close(dev); + +- if (system_state == SYSTEM_POWER_OFF) +- tg3_power_down(tp); ++ tg3_power_down(tp); + + rtnl_unlock(); ++ ++ pci_disable_device(pdev); + } + + /** +-- +2.35.1 + diff --git a/queue-5.4/usb-storage-add-asus-0x0b05-0x1932-to-ignore_uas.patch b/queue-5.4/usb-storage-add-asus-0x0b05-0x1932-to-ignore_uas.patch new file mode 100644 index 00000000000..14cf7c75da3 --- /dev/null +++ b/queue-5.4/usb-storage-add-asus-0x0b05-0x1932-to-ignore_uas.patch @@ -0,0 +1,45 @@ +From e49e75444583a245f5b1bd55833b9c1bd2365e31 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 1 Sep 2022 12:57:37 +0800 +Subject: usb: storage: Add ASUS <0x0b05:0x1932> to IGNORE_UAS + +From: Hu Xiaoying + +[ Upstream commit c61feaee68b9735be06f162bc046c7f1959efb0c ] + +USB external storage device(0x0b05:1932), use gnome-disk-utility tools +to test usb write < 30MB/s. +if does not to load module of uas for this device, can increase the +write speed from 20MB/s to >40MB/s. + +Suggested-by: Matthias Kaehlcke +Acked-by: Alan Stern +Signed-off-by: Hu Xiaoying +Link: https://lore.kernel.org/r/20220901045737.3438046-1-huxiaoying@kylinos.cn +Signed-off-by: Greg Kroah-Hartman +Signed-off-by: Sasha Levin +--- + drivers/usb/storage/unusual_uas.h | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h +index 2f72753c3e225..0b37c8e550e7d 100644 +--- a/drivers/usb/storage/unusual_uas.h ++++ b/drivers/usb/storage/unusual_uas.h +@@ -62,6 +62,13 @@ UNUSUAL_DEV(0x0984, 0x0301, 0x0128, 0x0128, + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_IGNORE_UAS), + ++/* Reported-by: Tom Hu */ ++UNUSUAL_DEV(0x0b05, 0x1932, 0x0000, 0x9999, ++ "ASUS", ++ "External HDD", ++ USB_SC_DEVICE, USB_PR_DEVICE, NULL, ++ US_FL_IGNORE_UAS), ++ + /* Reported-by: David Webb */ + UNUSUAL_DEV(0x0bc2, 0x331a, 0x0000, 0x9999, + "Seagate", +-- +2.35.1 +