From: Sasha Levin Date: Mon, 19 Dec 2022 16:35:34 +0000 (-0500) Subject: Fixes for 5.4 X-Git-Tag: v5.10.161~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=871e54b8a5034f53cdbe92ced468dc1d4dec804a;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 5.4 Signed-off-by: Sasha Levin --- diff --git a/queue-5.4/bluetooth-l2cap-fix-u8-overflow.patch b/queue-5.4/bluetooth-l2cap-fix-u8-overflow.patch new file mode 100644 index 00000000000..092682341b1 --- /dev/null +++ b/queue-5.4/bluetooth-l2cap-fix-u8-overflow.patch @@ -0,0 +1,65 @@ +From d3b28a96e1fd573b3ba28896c52328553029e10c Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 18 Nov 2022 15:01:47 -0500 +Subject: Bluetooth: L2CAP: Fix u8 overflow + +From: Sungwoo Kim + +[ Upstream commit bcd70260ef56e0aee8a4fc6cd214a419900b0765 ] + +By keep sending L2CAP_CONF_REQ packets, chan->num_conf_rsp increases +multiple times and eventually it will wrap around the maximum number +(i.e., 255). +This patch prevents this by adding a boundary check with +L2CAP_MAX_CONF_RSP + +Btmon log: +Bluetooth monitor ver 5.64 += Note: Linux version 6.1.0-rc2 (x86_64) 0.264594 += Note: Bluetooth subsystem version 2.22 0.264636 +@ MGMT Open: btmon (privileged) version 1.22 {0x0001} 0.272191 += New Index: 00:00:00:00:00:00 (Primary,Virtual,hci0) [hci0] 13.877604 +@ RAW Open: 9496 (privileged) version 2.22 {0x0002} 13.890741 += Open Index: 00:00:00:00:00:00 [hci0] 13.900426 +(...) +> ACL Data RX: Handle 200 flags 0x00 dlen 1033 #32 [hci0] 14.273106 + invalid packet size (12 != 1033) + 08 00 01 00 02 01 04 00 01 10 ff ff ............ +> ACL Data RX: Handle 200 flags 0x00 dlen 1547 #33 [hci0] 14.273561 + invalid packet size (14 != 1547) + 0a 00 01 00 04 01 06 00 40 00 00 00 00 00 ........@..... +> ACL Data RX: Handle 200 flags 0x00 dlen 2061 #34 [hci0] 14.274390 + invalid packet size (16 != 2061) + 0c 00 01 00 04 01 08 00 40 00 00 00 00 00 00 04 ........@....... +> ACL Data RX: Handle 200 flags 0x00 dlen 2061 #35 [hci0] 14.274932 + invalid packet size (16 != 2061) + 0c 00 01 00 04 01 08 00 40 00 00 00 07 00 03 00 ........@....... += bluetoothd: Bluetooth daemon 5.43 14.401828 +> ACL Data RX: Handle 200 flags 0x00 dlen 1033 #36 [hci0] 14.275753 + invalid packet size (12 != 1033) + 08 00 01 00 04 01 04 00 40 00 00 00 ........@... + +Signed-off-by: Sungwoo Kim +Signed-off-by: Luiz Augusto von Dentz +Signed-off-by: Sasha Levin +--- + net/bluetooth/l2cap_core.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c +index fb2abd0e979a..0e51ed3412ef 100644 +--- a/net/bluetooth/l2cap_core.c ++++ b/net/bluetooth/l2cap_core.c +@@ -4210,7 +4210,8 @@ static inline int l2cap_config_req(struct l2cap_conn *conn, + + chan->ident = cmd->ident; + l2cap_send_cmd(conn, cmd->ident, L2CAP_CONF_RSP, len, rsp); +- chan->num_conf_rsp++; ++ if (chan->num_conf_rsp < L2CAP_CONF_MAX_CONF_RSP) ++ chan->num_conf_rsp++; + + /* Reset config buffer. */ + chan->conf_len = 0; +-- +2.35.1 + diff --git a/queue-5.4/hid-ite-add-support-for-acer-s1002-keyboard-dock.patch b/queue-5.4/hid-ite-add-support-for-acer-s1002-keyboard-dock.patch new file mode 100644 index 00000000000..8cf3e155d8d --- /dev/null +++ b/queue-5.4/hid-ite-add-support-for-acer-s1002-keyboard-dock.patch @@ -0,0 +1,75 @@ +From 9de775e1248d931f47e88a31d825341fca7f93f5 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 25 Nov 2020 23:37:45 +0100 +Subject: HID: ite: Add support for Acer S1002 keyboard-dock + +From: Hans de Goede + +[ Upstream commit c961facb5b19634eee5bcdd91fc5bf3f1c545bc5 ] + +Make the hid-ite driver handle the Acer S1002 keyboard-dock, this +leads to 2 improvements: + +1. The non working wifi-toggle hotkey now works. +2. Toggling the touchpad on of with the hotkey will no show OSD +notifications in e.g. GNOME3. The actual toggling is handled inside +the keyboard, this adds support for notifying evdev listeners about this. + +Signed-off-by: Hans de Goede +Signed-off-by: Jiri Kosina +Stable-dep-of: 9ad6645a9dce ("HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch V 10") +Signed-off-by: Sasha Levin +--- + drivers/hid/hid-ids.h | 1 + + drivers/hid/hid-ite.c | 13 ++++++++++++- + 2 files changed, 13 insertions(+), 1 deletion(-) + +diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h +index 0d4479f478aa..a590334cc2a3 100644 +--- a/drivers/hid/hid-ids.h ++++ b/drivers/hid/hid-ids.h +@@ -1140,6 +1140,7 @@ + #define USB_DEVICE_ID_SYNAPTICS_DELL_K12A 0x2819 + #define USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5_012 0x2968 + #define USB_DEVICE_ID_SYNAPTICS_TP_V103 0x5710 ++#define USB_DEVICE_ID_SYNAPTICS_ACER_ONE_S1002 0x73f4 + #define USB_DEVICE_ID_SYNAPTICS_ACER_ONE_S1003 0x73f5 + #define USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5 0x81a7 + +diff --git a/drivers/hid/hid-ite.c b/drivers/hid/hid-ite.c +index 742c052b0110..22bfbebceaf4 100644 +--- a/drivers/hid/hid-ite.c ++++ b/drivers/hid/hid-ite.c +@@ -18,10 +18,16 @@ static __u8 *ite_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int + unsigned long quirks = (unsigned long)hid_get_drvdata(hdev); + + if (quirks & QUIRK_TOUCHPAD_ON_OFF_REPORT) { ++ /* For Acer Aspire Switch 10 SW5-012 keyboard-dock */ + if (*rsize == 188 && rdesc[162] == 0x81 && rdesc[163] == 0x02) { +- hid_info(hdev, "Fixing up ITE keyboard report descriptor\n"); ++ hid_info(hdev, "Fixing up Acer Sw5-012 ITE keyboard report descriptor\n"); + rdesc[163] = HID_MAIN_ITEM_RELATIVE; + } ++ /* For Acer One S1002 keyboard-dock */ ++ if (*rsize == 188 && rdesc[185] == 0x81 && rdesc[186] == 0x02) { ++ hid_info(hdev, "Fixing up Acer S1002 ITE keyboard report descriptor\n"); ++ rdesc[186] = HID_MAIN_ITEM_RELATIVE; ++ } + } + + return rdesc; +@@ -101,6 +107,11 @@ static const struct hid_device_id ite_devices[] = { + USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5_012), + .driver_data = QUIRK_TOUCHPAD_ON_OFF_REPORT }, + /* ITE8910 USB kbd ctlr, with Synaptics touchpad connected to it. */ ++ { HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, ++ USB_VENDOR_ID_SYNAPTICS, ++ USB_DEVICE_ID_SYNAPTICS_ACER_ONE_S1002), ++ .driver_data = QUIRK_TOUCHPAD_ON_OFF_REPORT }, ++ /* ITE8910 USB kbd ctlr, with Synaptics touchpad connected to it. */ + { HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, + USB_VENDOR_ID_SYNAPTICS, + USB_DEVICE_ID_SYNAPTICS_ACER_ONE_S1003) }, +-- +2.35.1 + diff --git a/queue-5.4/hid-ite-enable-quirk_touchpad_on_off_report-on-acer-.patch b/queue-5.4/hid-ite-enable-quirk_touchpad_on_off_report-on-acer-.patch new file mode 100644 index 00000000000..3077091d0e1 --- /dev/null +++ b/queue-5.4/hid-ite-enable-quirk_touchpad_on_off_report-on-acer-.patch @@ -0,0 +1,86 @@ +From e9daca7ac4442123cf2544c0c263e9142f65b9b4 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sat, 6 Feb 2021 21:53:27 +0100 +Subject: HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch + 10E + +From: Hans de Goede + +[ Upstream commit b7c20f3815985570ac71c39b1a3e68c201109578 ] + +The Acer Aspire Switch 10E (SW3-016)'s keyboard-dock uses the same USB-ids +as the Acer One S1003 keyboard-dock. Yet they are not entirely the same: + +1. The S1003 keyboard-dock has the same report descriptors as the +S1002 keyboard-dock (which has different USB-ids) + +2. The Acer Aspire Switch 10E's keyboard-dock has different +report descriptors from the S1002/S1003 keyboard docks and it +sends 0x00880078 / 0x00880079 usage events when the touchpad is +toggled on/off (which is handled internally). + +This means that all Acer kbd-docks handled by the hid-ite.c drivers +report their touchpad being toggled on/off through these custom +usage-codes with the exception of the S1003 dock, which likely is +a bug of that dock. + +Add a QUIRK_TOUCHPAD_ON_OFF_REPORT quirk for the Aspire Switch 10E / S1003 +usb-id so that the touchpad toggling will get reported to userspace on +the Aspire Switch 10E. + +Since the Aspire Switch 10E's kbd-dock has different report-descriptors, +this also requires adding support for fixing those to ite_report_fixup(). + +Setting the quirk will also cause ite_report_fixup() to hit the +S1002/S1003 descriptors path on the S1003. Since the S1003 kbd-dock +never generates any input-reports for the fixed up part of the +descriptors this does not matter; and if there are versions out there +which do actually send input-reports for the touchpad-toggle then the +fixup should actually help to make things work. + +This was tested on both an Acer Aspire Switch 10E and on an Acer One S1003. + +Signed-off-by: Hans de Goede +Signed-off-by: Jiri Kosina +Stable-dep-of: 9ad6645a9dce ("HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch V 10") +Signed-off-by: Sasha Levin +--- + drivers/hid/hid-ite.c | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +diff --git a/drivers/hid/hid-ite.c b/drivers/hid/hid-ite.c +index 22bfbebceaf4..14fc068affad 100644 +--- a/drivers/hid/hid-ite.c ++++ b/drivers/hid/hid-ite.c +@@ -23,11 +23,16 @@ static __u8 *ite_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int + hid_info(hdev, "Fixing up Acer Sw5-012 ITE keyboard report descriptor\n"); + rdesc[163] = HID_MAIN_ITEM_RELATIVE; + } +- /* For Acer One S1002 keyboard-dock */ ++ /* For Acer One S1002/S1003 keyboard-dock */ + if (*rsize == 188 && rdesc[185] == 0x81 && rdesc[186] == 0x02) { +- hid_info(hdev, "Fixing up Acer S1002 ITE keyboard report descriptor\n"); ++ hid_info(hdev, "Fixing up Acer S1002/S1003 ITE keyboard report descriptor\n"); + rdesc[186] = HID_MAIN_ITEM_RELATIVE; + } ++ /* For Acer Aspire Switch 10E (SW3-016) keyboard-dock */ ++ if (*rsize == 210 && rdesc[184] == 0x81 && rdesc[185] == 0x02) { ++ hid_info(hdev, "Fixing up Acer Aspire Switch 10E (SW3-016) ITE keyboard report descriptor\n"); ++ rdesc[185] = HID_MAIN_ITEM_RELATIVE; ++ } + } + + return rdesc; +@@ -114,7 +119,8 @@ static const struct hid_device_id ite_devices[] = { + /* ITE8910 USB kbd ctlr, with Synaptics touchpad connected to it. */ + { HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, + USB_VENDOR_ID_SYNAPTICS, +- USB_DEVICE_ID_SYNAPTICS_ACER_ONE_S1003) }, ++ USB_DEVICE_ID_SYNAPTICS_ACER_ONE_S1003), ++ .driver_data = QUIRK_TOUCHPAD_ON_OFF_REPORT }, + { } + }; + MODULE_DEVICE_TABLE(hid, ite_devices); +-- +2.35.1 + diff --git a/queue-5.4/hid-ite-enable-quirk_touchpad_on_off_report-on-acer-.patch-30680 b/queue-5.4/hid-ite-enable-quirk_touchpad_on_off_report-on-acer-.patch-30680 new file mode 100644 index 00000000000..f07dfae6814 --- /dev/null +++ b/queue-5.4/hid-ite-enable-quirk_touchpad_on_off_report-on-acer-.patch-30680 @@ -0,0 +1,59 @@ +From d64bd9966a79baf73328f1d7a8d4cdebfa5ff279 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 8 Nov 2022 16:13:50 +0100 +Subject: HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch V + 10 + +From: Hans de Goede + +[ Upstream commit 9ad6645a9dce4d0e42daca6ebf32a154401c59d3 ] + +The Acer Aspire Switch V 10 (SW5-017)'s keyboard-dock uses the same +ITE controller setup as other Acer Switch 2-in-1's. + +This needs special handling for the wifi on/off toggle hotkey as well as +to properly report touchpad on/off keypresses. + +Add the USB-ids for the SW5-017's keyboard-dock with a quirk setting of +QUIRK_TOUCHPAD_ON_OFF_REPORT to fix both issues. + +Cc: Rudolf Polzer +Signed-off-by: Hans de Goede +Signed-off-by: Jiri Kosina +Signed-off-by: Sasha Levin +--- + drivers/hid/hid-ids.h | 1 + + drivers/hid/hid-ite.c | 5 +++++ + 2 files changed, 6 insertions(+) + +diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h +index a590334cc2a3..6d550681869f 100644 +--- a/drivers/hid/hid-ids.h ++++ b/drivers/hid/hid-ids.h +@@ -1142,6 +1142,7 @@ + #define USB_DEVICE_ID_SYNAPTICS_TP_V103 0x5710 + #define USB_DEVICE_ID_SYNAPTICS_ACER_ONE_S1002 0x73f4 + #define USB_DEVICE_ID_SYNAPTICS_ACER_ONE_S1003 0x73f5 ++#define USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5_017 0x73f6 + #define USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5 0x81a7 + + #define USB_VENDOR_ID_TEXAS_INSTRUMENTS 0x2047 +diff --git a/drivers/hid/hid-ite.c b/drivers/hid/hid-ite.c +index 14fc068affad..b8cce9c196d8 100644 +--- a/drivers/hid/hid-ite.c ++++ b/drivers/hid/hid-ite.c +@@ -121,6 +121,11 @@ static const struct hid_device_id ite_devices[] = { + USB_VENDOR_ID_SYNAPTICS, + USB_DEVICE_ID_SYNAPTICS_ACER_ONE_S1003), + .driver_data = QUIRK_TOUCHPAD_ON_OFF_REPORT }, ++ /* ITE8910 USB kbd ctlr, with Synaptics touchpad connected to it. */ ++ { HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, ++ USB_VENDOR_ID_SYNAPTICS, ++ USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5_017), ++ .driver_data = QUIRK_TOUCHPAD_ON_OFF_REPORT }, + { } + }; + MODULE_DEVICE_TABLE(hid, ite_devices); +-- +2.35.1 + diff --git a/queue-5.4/hid-uclogic-add-hid_quirk_hidinput_force-quirk.patch b/queue-5.4/hid-uclogic-add-hid_quirk_hidinput_force-quirk.patch new file mode 100644 index 00000000000..e30ba30aa21 --- /dev/null +++ b/queue-5.4/hid-uclogic-add-hid_quirk_hidinput_force-quirk.patch @@ -0,0 +1,46 @@ +From 001d7c61428361b3d3b43f2a7cd5b9b92df3f746 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 10 Nov 2022 18:40:56 +0100 +Subject: HID: uclogic: Add HID_QUIRK_HIDINPUT_FORCE quirk +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: José Expósito + +[ Upstream commit 3405a4beaaa852f3ed2a5eb3b5149932d5c3779b ] + +Commit f7d8e387d9ae ("HID: uclogic: Switch to Digitizer usage for +styluses") changed the usage used in UCLogic from "Pen" to "Digitizer". + +However, the IS_INPUT_APPLICATION() macro evaluates to false for +HID_DG_DIGITIZER causing issues with the XP-Pen Star G640 tablet. + +Add the HID_QUIRK_HIDINPUT_FORCE quirk to bypass the +IS_INPUT_APPLICATION() check. + +Reported-by: Torge Matthies +Reported-by: Alexander Zhang +Tested-by: Alexander Zhang +Signed-off-by: José Expósito +Signed-off-by: Jiri Kosina +Signed-off-by: Sasha Levin +--- + drivers/hid/hid-uclogic-core.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/hid/hid-uclogic-core.c b/drivers/hid/hid-uclogic-core.c +index 4edb24195704..e4811d37ca77 100644 +--- a/drivers/hid/hid-uclogic-core.c ++++ b/drivers/hid/hid-uclogic-core.c +@@ -172,6 +172,7 @@ static int uclogic_probe(struct hid_device *hdev, + * than the pen, so use QUIRK_MULTI_INPUT for all tablets. + */ + hdev->quirks |= HID_QUIRK_MULTI_INPUT; ++ hdev->quirks |= HID_QUIRK_HIDINPUT_FORCE; + + /* Allocate and assign driver data */ + drvdata = devm_kzalloc(&hdev->dev, sizeof(*drvdata), GFP_KERNEL); +-- +2.35.1 + diff --git a/queue-5.4/net-loopback-use-net_name_predictable-for-name_assig.patch b/queue-5.4/net-loopback-use-net_name_predictable-for-name_assig.patch new file mode 100644 index 00000000000..b321fb3f4b5 --- /dev/null +++ b/queue-5.4/net-loopback-use-net_name_predictable-for-name_assig.patch @@ -0,0 +1,50 @@ +From dd82804d6ca4c9068893fa3646c4cf1eed3fbba0 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 23 Nov 2022 15:18:28 +0100 +Subject: net: loopback: use NET_NAME_PREDICTABLE for name_assign_type + +From: Rasmus Villemoes + +[ Upstream commit 31d929de5a112ee1b977a89c57de74710894bbbf ] + +When the name_assign_type attribute was introduced (commit +685343fc3ba6, "net: add name_assign_type netdev attribute"), the +loopback device was explicitly mentioned as one which would make use +of NET_NAME_PREDICTABLE: + + The name_assign_type attribute gives hints where the interface name of a + given net-device comes from. These values are currently defined: +... + NET_NAME_PREDICTABLE: + The ifname has been assigned by the kernel in a predictable way + that is guaranteed to avoid reuse and always be the same for a + given device. Examples include statically created devices like + the loopback device [...] + +Switch to that so that reading /sys/class/net/lo/name_assign_type +produces something sensible instead of returning -EINVAL. + +Signed-off-by: Rasmus Villemoes +Reviewed-by: Jacob Keller +Signed-off-by: David S. Miller +Signed-off-by: Sasha Levin +--- + drivers/net/loopback.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/net/loopback.c b/drivers/net/loopback.c +index 14545a8797a8..7788f72c262e 100644 +--- a/drivers/net/loopback.c ++++ b/drivers/net/loopback.c +@@ -206,7 +206,7 @@ static __net_init int loopback_net_init(struct net *net) + int err; + + err = -ENOMEM; +- dev = alloc_netdev(0, "lo", NET_NAME_UNKNOWN, loopback_setup); ++ dev = alloc_netdev(0, "lo", NET_NAME_PREDICTABLE, loopback_setup); + if (!dev) + goto out; + +-- +2.35.1 + diff --git a/queue-5.4/series b/queue-5.4/series index 7b6a40bd2a3..0e1221b5773 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -11,3 +11,9 @@ usb-serial-f81534-fix-division-by-zero-on-line-speed-change.patch igb-initialize-mailbox-message-for-vf-reset.patch usb-ulpi-defer-ulpi_register-on-ulpi_read_id-timeout.patch xen-netback-move-removal-of-hotplug-status-to-the-right-place.patch +hid-ite-add-support-for-acer-s1002-keyboard-dock.patch +hid-ite-enable-quirk_touchpad_on_off_report-on-acer-.patch +hid-ite-enable-quirk_touchpad_on_off_report-on-acer-.patch-30680 +hid-uclogic-add-hid_quirk_hidinput_force-quirk.patch +bluetooth-l2cap-fix-u8-overflow.patch +net-loopback-use-net_name_predictable-for-name_assig.patch