Linux 5.15.85
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.15.85 kernel.
All users of the 5.15 kernel series must upgrade.
The updated 5.15.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.15.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-uclogic-core.c | 1 drivers/net/ethernet/intel/igb/igb_main.c | 2 drivers/net/loopback.c | 2 drivers/usb/dwc3/dwc3-pci.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 - tools/testing/selftests/net/toeplitz.sh | 2 15 files changed, 82 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.15.85
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
Shruthi Sanil (1):
usb: dwc3: pci: Update PCIe device ID for USB3 controller on CPU sub-system for Raptor Lake
Sungwoo Kim (1):
Bluetooth: L2CAP: Fix u8 overflow
Szymon Heidrich (1):
usb: gadget: uvc: Prevent buffer overflow in setup handler
Tiezhu Yang (1):
selftests: net: Use "grep -E" instead of "egrep"
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 = 15 -SUBLEVEL = 84 +SUBLEVEL = 85 EXTRAVERSION = NAME = Trick or Treat
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
@@ -7410,7 +7410,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/dwc3/dwc3-pci.c +1 -1
@@ -43,7 +43,7 @@#define PCI_DEVICE_ID_INTEL_ADLP 0x51ee#define PCI_DEVICE_ID_INTEL_ADLM 0x54ee#define PCI_DEVICE_ID_INTEL_ADLS 0x7ae1 -#define PCI_DEVICE_ID_INTEL_RPL 0x460e +#define PCI_DEVICE_ID_INTEL_RPL 0xa70e#define PCI_DEVICE_ID_INTEL_RPLS 0x7a61#define PCI_DEVICE_ID_INTEL_MTLP 0x7ec1#define PCI_DEVICE_ID_INTEL_MTL 0x7e7e
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_RENOIR_XHCI 0x1639#define PCI_DEVICE_ID_AMD_PROMONTORYA_4 0x43b9
@@ -247,7 +248,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
@@ -195,6 +195,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); }
@@ -519,9 +516,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
@@ -536,9 +536,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); }
@@ -568,9 +565,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
@@ -4453,7 +4453,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 ;
tools/testing/selftests/net/toeplitz.sh +1 -1
@@ -32,7 +32,7 @@ DEV="eth0" # This is determined by reading the RSS indirection table using ethtool. get_rss_cfg_num_rxqs() { echo $(ethtool -x "${DEV}" | - egrep [[:space:]]+[0-9]+:[[:space:]]+ | + grep -E [[:space:]]+[0-9]+:[[:space:]]+ | cut -d: -f2- | awk '{$1=$1};1' | tr ' ' '\n' |