Linux 6.1.1
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.1.1 kernel.
All users of the 6.1 kernel series must upgrade.
The updated 6.1.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.1.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
------------
Documentation/security/keys/trusted-encrypted.rst | 3 Makefile | 2 arch/mips/include/asm/mach-ralink/mt7621.h | 4 arch/mips/ralink/mt7621.c | 97 ++++++++++---- arch/x86/entry/vdso/vdso.lds.S | 2 drivers/irqchip/irq-ls-extirq.c | 2 drivers/net/ethernet/intel/igb/igb_main.c | 2 drivers/pci/controller/pcie-mt7621.c | 3 drivers/staging/r8188eu/core/rtw_led.c | 25 --- 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 drivers/usb/typec/ucsi/ucsi.c | 17 ++ drivers/usb/typec/ucsi/ucsi.h | 1 fs/cifs/cifsglob.h | 68 ++++++++++ fs/cifs/cifsproto.h | 4 fs/cifs/misc.c | 4 fs/cifs/smb2ops.c | 143 ++++++++++------------ fs/udf/inode.c | 76 +++++------ fs/udf/truncate.c | 48 ++----- security/keys/encrypted-keys/encrypted.c | 6 sound/pci/hda/patch_realtek.c | 2 tools/lib/bpf/btf_dump.c | 2 27 files changed, 317 insertions(+), 234 deletions(-)
Andy Chi (1):
ALSA: hda/realtek: fix mute/micmute LEDs for a HP ProBook
Bruno Thomsen (1):
USB: serial: cp210x: add Kamstrup RF sniffer PIDs
David Michael (1):
libbpf: Fix uninitialized warning in btf_dump_dump_type_data
Duke Xin (1):
USB: serial: option: add Quectel EM05-G modem
Greg Kroah-Hartman (1):
Linux 6.1.1
Heikki Krogerus (1):
usb: typec: ucsi: Resume in separate work
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
John Thomson (4):
PCI: mt7621: Add sentinel to quirks table
mips: ralink: mt7621: define MT7621_SYSC_BASE with __iomem
mips: ralink: mt7621: soc queries and tests as functions
mips: ralink: mt7621: do not use kzalloc too early
Martin Kaiser (1):
staging: r8188eu: fix led register settings
Nathan Chancellor (1):
x86/vdso: Conditionally export __vdso_sgx_enter_enclave()
Nikolaus Voss (1):
KEYS: encrypted: fix key instantiation with user-provided data
Paulo Alcantara (1):
cifs: fix oops during encryption
Reka Norman (1):
xhci: Apply XHCI_RESET_TO_DEFAULT quirk to ADL-N
Sean Anderson (1):
irqchip/ls-extirq: Fix endianness detection
Shruthi Sanil (1):
usb: dwc3: pci: Update PCIe device ID for USB3 controller on CPU sub-system for Raptor Lake
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
maintainerDocumentation/security/keys/trusted-encrypted.rst +2 -1
@@ -350,7 +350,8 @@ Load an encrypted key "evm" from saved blob:: Instantiate an encrypted key "evm" using user-provided decrypted data:: - $ keyctl add encrypted evm "new default user:kmk 32 `cat evm_decrypted_data.blob`" @u + $ evmkey=$(dd if=/dev/urandom bs=1 count=32 | xxd -c32 -p) + $ keyctl add encrypted evm "new default user:kmk 32 $evmkey" @u 794890253 $ keyctl print 794890253
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 1 -SUBLEVEL = 0 +SUBLEVEL = 1 EXTRAVERSION = NAME = Hurr durr I'ma ninja sloth
arch/mips/include/asm/mach-ralink/mt7621.h +3 -1
@@ -7,10 +7,12 @@#ifndef _MT7621_REGS_H_#define _MT7621_REGS_H_ +#define IOMEM (x) ((void __iomem *)(KSEG1ADDR(x))) +#define MT7621_PALMBUS_BASE 0x1C000000#define MT7621_PALMBUS_SIZE 0x03FFFFFF -#define MT7621_SYSC_BASE 0x1E000000 +#define MT7621_SYSC_BASE IOMEM(0x1E000000)#define SYSC_REG_CHIP_NAME0 0x00#define SYSC_REG_CHIP_NAME1 0x04
arch/mips/ralink/mt7621.c +68 -29
142 lines not on this page · raw message
arch/x86/entry/vdso/vdso.lds.S +2 -0
@@ -27,7 +27,9 @@ VERSION { __vdso_time; clock_getres; __vdso_clock_getres; +#ifdef CONFIG_X86_SGX __vdso_sgx_enter_enclave; +#endif local: *; }; }
drivers/irqchip/irq-ls-extirq.c +1 -1
@@ -203,7 +203,7 @@ ls_extirq_of_init(struct device_node *node, struct device_node *parent)if (ret) goto err_parse_map; - priv->big_endian =of_device_is_big_endian (parent); + priv->big_endian =of_device_is_big_endian (node->parent); priv->is_ls1021a_or_ls1043a =of_device_is_compatible (node,"fsl,ls1021a-extirq" ) ||of_device_is_compatible (node,"fsl,ls1043a-extirq" );raw_spin_lock_init (&priv->lock);
drivers/net/ethernet/intel/igb/igb_main.c +1 -1
@@ -7521,7 +7521,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/pci/controller/pcie-mt7621.c +2 -1
@@ -466,7 +466,8 @@ static int mt7621_pcie_register_host(struct pci_host_bridge *host) }static const struct soc_device_attribute mt7621_pcie_quirks_match[] = { - { .soc_id ="mt7621" , .revision ="E2" } + { .soc_id ="mt7621" , .revision ="E2" }, + {/* sentinel */ } };static int mt7621_pcie_probe (struct platform_device *pdev)
drivers/staging/r8188eu/core/rtw_led.c +2 -23
@@ -32,40 +32,19 @@ static void ResetLedStatus(struct led_priv *pLed)static void SwLedOn (struct adapter *padapter,struct led_priv *pLed) { -u8 LedCfg; -int res; -if (padapter->bDriverStopped)return ; - res =rtw_read8 (padapter,REG_LEDCFG2 , &LedCfg); -if (res) -return ; - -rtw_write8 (padapter,REG_LEDCFG2 , (LedCfg &0xf0 ) |BIT (5 ) |BIT (6 ));/* SW control led0 on. */ +rtw_write8 (padapter,REG_LEDCFG2 ,BIT (5 ));/* SW control led0 on. */ pLed->bLedOn = true; }static void SwLedOff (struct adapter *padapter,struct led_priv *pLed) { -u8 LedCfg; -int res; -if (padapter->bDriverStopped) goto exit; - res =rtw_read8 (padapter,REG_LEDCFG2 , &LedCfg);/* 0x4E */ -if (res) - goto exit; - - LedCfg &=0x90 ;/* Set to software control. */ -rtw_write8 (padapter,REG_LEDCFG2 , (LedCfg |BIT (3 ))); - res =rtw_read8 (padapter,REG_MAC_PINMUX_CFG , &LedCfg); -if (res) - goto exit; - - LedCfg &=0xFE ; -rtw_write8 (padapter,REG_MAC_PINMUX_CFG , LedCfg); +rtw_write8 (padapter,REG_LEDCFG2 ,BIT (5 ) |BIT (3 )); exit: pLed->bLedOn = false; }
drivers/usb/dwc3/dwc3-pci.c +1 -1
@@ -45,7 +45,7 @@#define PCI_DEVICE_ID_INTEL_ADLN 0x465e#define PCI_DEVICE_ID_INTEL_ADLN_PCH 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
@@ -216,8 +216,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
@@ -246,7 +247,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); }
@@ -498,9 +495,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) },
drivers/usb/typec/ucsi/ucsi.c +13 -4
@@ -1270,8 +1270,9 @@ static int ucsi_init(struct ucsi *ucsi)return ret; } -int ucsi_resume (struct ucsi *ucsi) +static void ucsi_resume_work (struct work_struct *work) { + struct ucsi *ucsi = container_of(work, struct ucsi, resume_work);struct ucsi_connector *con;u64 command;int ret;
@@ -1279,15 +1280,21 @@ int ucsi_resume(struct ucsi *ucsi)/* Restore UCSI notification enable mask after system resume */ command =UCSI_SET_NOTIFICATION_ENABLE | ucsi->ntfy; ret =ucsi_send_command (ucsi, command,NULL ,0 ); -if (ret <0 ) -return ret; +if (ret <0 ) { +dev_err (ucsi->dev,"failed to re-enable notifications (%d)\n" , ret); +return ; + }for (con = ucsi->connector; con->port; con++) {mutex_lock (&con->lock); -ucsi_check_connection (con); +ucsi_partner_task (con, ucsi_check_connection,1 ,0 );mutex_unlock (&con->lock); } +} +int ucsi_resume (struct ucsi *ucsi) +{ +queue_work (system_long_wq, &ucsi->resume_work);return 0 ; }EXPORT_SYMBOL_GPL (ucsi_resume);
@@ -1347,6 +1354,7 @@ struct ucsi *ucsi_create(struct device *dev, const struct ucsi_operations *ops)if (!ucsi)return ERR_PTR (-ENOMEM ); +INIT_WORK (&ucsi->resume_work, ucsi_resume_work);INIT_DELAYED_WORK (&ucsi->work, ucsi_init_work);mutex_init (&ucsi->ppm_lock); ucsi->dev = dev;
@@ -1401,6 +1409,7 @@ void ucsi_unregister(struct ucsi *ucsi)/* Make sure that we are not in the middle of driver initialization */ cancel_delayed_work_sync (&ucsi->work); +cancel_work_sync (&ucsi->resume_work);/* Disable notifications */ ucsi->ops->async_write (ucsi,UCSI_CONTROL , &cmd,sizeof (cmd));
drivers/usb/typec/ucsi/ucsi.h +1 -0
@@ -287,6 +287,7 @@ struct ucsi {struct ucsi_capability cap;struct ucsi_connector *connector; +struct work_struct resume_work;struct delayed_work work;int work_count;#define UCSI_ROLE_SWITCH_RETRY_PER_HZ 10
fs/cifs/cifsglob.h +68 -0
78 lines not on this page · raw message
fs/cifs/cifsproto.h +2 -2
@@ -600,8 +600,8 @@ int setup_aio_ctx_iter(struct cifs_aio_ctx *ctx, struct iov_iter *iter, int rw);int cifs_alloc_hash (const char *name,struct shash_desc **sdesc);void cifs_free_hash (struct shash_desc **sdesc); -extern void rqst_page_get_length (struct smb_rqst *rqst,unsigned int page, -unsigned int *len,unsigned int *offset); +void rqst_page_get_length (const struct smb_rqst *rqst,unsigned int page, +unsigned int *len,unsigned int *offset);struct cifs_chan *cifs_ses_find_chan (struct cifs_ses *ses,struct TCP_Server_Info *server);int cifs_try_adding_channels (struct cifs_sb_info *cifs_sb,struct cifs_ses *ses);
fs/cifs/misc.c +2 -2
@@ -1136,8 +1136,8 @@ cifs_free_hash(struct shash_desc **sdesc)* @len: Where to store the length for this page: * @offset: Where to store the offset for this page */ -void rqst_page_get_length (struct smb_rqst *rqst,unsigned int page, -unsigned int *len,unsigned int *offset) +void rqst_page_get_length (const struct smb_rqst *rqst,unsigned int page, +unsigned int *len,unsigned int *offset) { *len = rqst->rq_pagesz; *offset = (page ==0 ) ? rqst->rq_offset :0 ;
fs/cifs/smb2ops.c +68 -75
197 lines not on this page · raw message
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
security/keys/encrypted-keys/encrypted.c +3 -3
@@ -627,7 +627,7 @@ static struct encrypted_key_payload *encrypted_key_alloc(struct key *key,pr_err ("encrypted key: instantiation of keys using provided decrypted data is disabled since CONFIG_USER_DECRYPTED_DATA is set to false\n" );return ERR_PTR (-EINVAL ); } -if (strlen (decrypted_data) != decrypted_datalen) { +if (strlen (decrypted_data) != decrypted_datalen *2 ) {pr_err ("encrypted key: decrypted data provided does not match decrypted data length provided\n" );return ERR_PTR (-EINVAL ); }
@@ -791,8 +791,8 @@ static int encrypted_init(struct encrypted_key_payload *epayload, ret =encrypted_key_decrypt (epayload, format, hex_encoded_iv); }else if (decrypted_data) {get_random_bytes (epayload->iv, ivsize); -memcpy (epayload->decrypted_data, decrypted_data, - epayload->decrypted_datalen); + ret =hex2bin (epayload->decrypted_data, decrypted_data, + epayload->decrypted_datalen); }else {get_random_bytes (epayload->iv, ivsize);get_random_bytes (epayload->decrypted_data, epayload->decrypted_datalen);
sound/pci/hda/patch_realtek.c +2 -0
@@ -9354,6 +9354,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {SND_PCI_QUIRK (0x103c ,0x8abb ,"HP ZBook Firefly 14 G9" ,ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED ),SND_PCI_QUIRK (0x103c ,0x8ad1 ,"HP EliteBook 840 14 inch G9 Notebook PC" ,ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED ),SND_PCI_QUIRK (0x103c ,0x8ad2 ,"HP EliteBook 860 16 inch G9 Notebook PC" ,ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED ), +SND_PCI_QUIRK (0x103c ,0x8b5d ,"HP" ,ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF ), +SND_PCI_QUIRK (0x103c ,0x8b5e ,"HP" ,ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF ),SND_PCI_QUIRK (0x1043 ,0x103e ,"ASUS X540SA" ,ALC256_FIXUP_ASUS_MIC ),SND_PCI_QUIRK (0x1043 ,0x103f ,"ASUS TX300" ,ALC282_FIXUP_ASUS_TX300 ), SND_PCI_QUIRK(0x1043, 0x106d, "Asus K53BE", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
tools/lib/bpf/btf_dump.c +1 -1
@@ -1963,7 +1963,7 @@ static int btf_dump_struct_data(struct btf_dump *d, {const struct btf_member *m =btf_members (t);__u16 n =btf_vlen (t); -int i, err; +int i, err =0 ;/* note that we increment depth before calling btf_dump_print() below; * this is intentional. btf_dump_data_newline() will not print a