Linux 5.10.161
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.10.161 kernel.
All users of the 5.10 kernel series must upgrade.
The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2 drivers/hid/hid-ids.h | 2 drivers/hid/hid-ite.c | 26 +++++++++- drivers/hid/hid-uclogic-core.c | 1 drivers/net/ethernet/intel/igb/igb_main.c | 2 drivers/net/loopback.c | 2 drivers/usb/gadget/function/f_uvc.c | 5 + drivers/usb/host/xhci-pci.c | 4 + drivers/usb/serial/cp210x.c | 2 drivers/usb/serial/f81232.c | 12 ++-- drivers/usb/serial/f81534.c | 12 ++-- drivers/usb/serial/option.c | 3 + fs/udf/inode.c | 76 +++++++++++++----------------- fs/udf/truncate.c | 48 +++++------------- net/bluetooth/l2cap_core.c | 3 - 15 files changed, 106 insertions(+), 94 deletions(-)
Bruno Thomsen (1):
USB: serial: cp210x: add Kamstrup RF sniffer PIDs
Duke Xin (1):
USB: serial: option: add Quectel EM05-G modem
Greg Kroah-Hartman (1):
Linux 5.10.161
Hans de Goede (3):
HID: ite: Add support for Acer S1002 keyboard-dock
HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch 10E
HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch V 10
Jan Kara (4):
udf: Discard preallocation before extending file with a hole
udf: Fix preallocation discarding at indirect extent boundary
udf: Do not bother looking for prealloc extents if i_lenExtents matches i_size
udf: Fix extending file within last block
Johan Hovold (2):
USB: serial: f81232: fix division by zero on line-speed change
USB: serial: f81534: fix division by zero on line-speed change
José Expósito (1):
HID: uclogic: Add HID_QUIRK_HIDINPUT_FORCE quirk
Rasmus Villemoes (1):
net: loopback: use NET_NAME_PREDICTABLE for name_assign_type
Reka Norman (1):
xhci: Apply XHCI_RESET_TO_DEFAULT quirk to ADL-N
Sungwoo Kim (1):
Bluetooth: L2CAP: Fix u8 overflow
Szymon Heidrich (1):
usb: gadget: uvc: Prevent buffer overflow in setup handler
Tony Nguyen (1):
igb: Initialize mailbox message for VF reset
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 10 -SUBLEVEL = 160 +SUBLEVEL = 161 EXTRAVERSION = NAME = Dare mighty things
drivers/hid/hid-ids.h +2 -0
@@ -1150,7 +1150,9 @@#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_017 0x73f6#define USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5 0x81a7#define USB_VENDOR_ID_TEXAS_INSTRUMENTS 0x2047
drivers/hid/hid-ite.c +24 -2
@@ -18,10 +18,21 @@ static __u8 *ite_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned intunsigned 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/S1003 keyboard-dock */ +if (*rsize ==188 && rdesc[185 ] ==0x81 && rdesc[186 ] ==0x02 ) { +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;
@@ -103,7 +114,18 @@ 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_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 ), + .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);
drivers/hid/hid-uclogic-core.c +1 -0
@@ -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 );
drivers/net/ethernet/intel/igb/igb_main.c +1 -1
@@ -7416,7 +7416,7 @@ static void igb_vf_reset_msg(struct igb_adapter *adapter, u32 vf) {struct e1000_hw *hw = &adapter->hw;unsigned char *vf_mac = adapter->vf_data[vf].vf_mac_addresses; -u32 reg, msgbuf[3 ]; +u32 reg, msgbuf[3 ] = {};u8 *addr = (u8 *)(&msgbuf[1 ]);/* process all the same items cleared in a function level reset */
drivers/net/loopback.c +1 -1
@@ -208,7 +208,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;
drivers/usb/gadget/function/f_uvc.c +3 -2
@@ -213,8 +213,9 @@ uvc_function_ep0_complete(struct usb_ep *ep, struct usb_request *req)memset (&v4l2_event,0 ,sizeof (v4l2_event)); v4l2_event.type =UVC_EVENT_DATA ; - uvc_event->data.length = req->actual; -memcpy (&uvc_event->data.data, req->buf, req->actual); + uvc_event->data.length = min_t(unsigned int, req->actual, +sizeof (uvc_event->data.data)); +memcpy (&uvc_event->data.data, req->buf, uvc_event->data.length);v4l2_event_queue (&uvc->vdev, &v4l2_event); } }
drivers/usb/host/xhci-pci.c +3 -1
@@ -59,6 +59,7 @@#define PCI_DEVICE_ID_INTEL_TIGER_LAKE_XHCI 0x9a13#define PCI_DEVICE_ID_INTEL_MAPLE_RIDGE_XHCI 0x1138#define PCI_DEVICE_ID_INTEL_ALDER_LAKE_PCH_XHCI 0x51ed +#define PCI_DEVICE_ID_INTEL_ALDER_LAKE_N_PCH_XHCI 0x54ed#define PCI_DEVICE_ID_AMD_PROMONTORYA_4 0x43b9#define PCI_DEVICE_ID_AMD_PROMONTORYA_3 0x43ba
@@ -242,7 +243,8 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) xhci->quirks |=XHCI_MISSING_CAS ;if (pdev->vendor ==PCI_VENDOR_ID_INTEL && - pdev->device ==PCI_DEVICE_ID_INTEL_ALDER_LAKE_PCH_XHCI ) + (pdev->device ==PCI_DEVICE_ID_INTEL_ALDER_LAKE_PCH_XHCI || + pdev->device ==PCI_DEVICE_ID_INTEL_ALDER_LAKE_N_PCH_XHCI )) xhci->quirks |=XHCI_RESET_TO_DEFAULT ; if (pdev->vendor == PCI_VENDOR_ID_INTEL &&
drivers/usb/serial/cp210x.c +2 -0
@@ -199,6 +199,8 @@ static const struct usb_device_id id_table[] = { { USB_DEVICE(0x16DC, 0x0015) }, /* W-IE-NE-R Plein & Baus GmbH CML Control, Monitoring and Data Logger */ { USB_DEVICE(0x17A8, 0x0001) }, /* Kamstrup Optical Eye/3-wire */ { USB_DEVICE(0x17A8, 0x0005) }, /* Kamstrup M-Bus Master MultiPort 250D */ + { USB_DEVICE(0x17A8, 0x0011) }, /* Kamstrup 444 MHz RF sniffer */ + { USB_DEVICE(0x17A8, 0x0013) }, /* Kamstrup 870 MHz RF sniffer */ { USB_DEVICE(0x17A8, 0x0101) }, /* Kamstrup 868 MHz wM-Bus C-Mode Meter Reader (Int Ant) */ { USB_DEVICE(0x17A8, 0x0102) }, /* Kamstrup 868 MHz wM-Bus C-Mode Meter Reader (Ext Ant) */ { USB_DEVICE(0x17F4, 0xAAAA) }, /* Wavesense Jazz blood glucose meter */
drivers/usb/serial/f81232.c +7 -5
@@ -130,9 +130,6 @@ static u8 const clock_table[] = { F81232_CLK_1_846_MHZ, F81232_CLK_14_77_MHZ,static int calc_baud_divisor (speed_t baudrate,speed_t clockrate) { -if (!baudrate) -return 0 ; -return DIV_ROUND_CLOSEST (clockrate, baudrate); }
@@ -523,9 +520,14 @@ static void f81232_set_baudrate(struct tty_struct *tty,speed_t baud_list[] = { baudrate, old_baudrate,F81232_DEF_BAUDRATE };for (i =0 ; i <ARRAY_SIZE (baud_list); ++i) { - idx =f81232_find_clk (baud_list[i]); + baudrate = baud_list[i]; +if (baudrate ==0 ) { +tty_encode_baud_rate (tty,0 ,0 ); +return ; + } + + idx =f81232_find_clk (baudrate);if (idx >=0 ) { - baudrate = baud_list[i];tty_encode_baud_rate (tty, baudrate, baudrate);break ; }
drivers/usb/serial/f81534.c +7 -5
@@ -538,9 +538,6 @@ static int f81534_submit_writer(struct usb_serial_port *port, gfp_t mem_flags)static u32 f81534_calc_baud_divisor (u32 baudrate,u32 clockrate) { -if (!baudrate) -return 0 ; -/* Round to nearest divisor */ return DIV_ROUND_CLOSEST (clockrate, baudrate); }
@@ -570,9 +567,14 @@ static int f81534_set_port_config(struct usb_serial_port *port,u32 baud_list[] = {baudrate, old_baudrate,F81534_DEFAULT_BAUD_RATE };for (i =0 ; i <ARRAY_SIZE (baud_list); ++i) { - idx =f81534_find_clk (baud_list[i]); + baudrate = baud_list[i]; +if (baudrate ==0 ) { +tty_encode_baud_rate (tty,0 ,0 ); +return 0 ; + } + + idx =f81534_find_clk (baudrate);if (idx >=0 ) { - baudrate = baud_list[i];tty_encode_baud_rate (tty, baudrate, baudrate);break ; }
drivers/usb/serial/option.c +3 -0
@@ -255,6 +255,7 @@ static void option_instat_callback(struct urb *urb);#define QUECTEL_PRODUCT_EP06 0x0306#define QUECTEL_PRODUCT_EM05G 0x030a#define QUECTEL_PRODUCT_EM060K 0x030b +#define QUECTEL_PRODUCT_EM05G_SG 0x0311#define QUECTEL_PRODUCT_EM12 0x0512#define QUECTEL_PRODUCT_RM500Q 0x0800#define QUECTEL_PRODUCT_RM520N 0x0801
@@ -1160,6 +1161,8 @@ static const struct usb_device_id option_ids[] = { { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) }, { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05G, 0xff), .driver_info = RSVD(6) | ZLP }, + { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05G_SG, 0xff), + .driver_info = RSVD(6) | ZLP }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K, 0xff, 0x00, 0x40) }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K, 0xff, 0xff, 0x30) }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K, 0xff, 0xff, 0x40) },
fs/udf/inode.c +34 -42
153 lines not on this page · raw message
fs/udf/truncate.c +15 -33
75 lines not on this page · raw message
net/bluetooth/l2cap_core.c +2 -1
@@ -4449,7 +4449,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 ;