Linux 6.1.133
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.1.133 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
------------
Makefile | 2 arch/arm/boot/dts/imx6qdl-apalis.dtsi | 10 - arch/arm/mm/fault.c | 8 drivers/counter/microchip-tcb-capture.c | 19 ++ drivers/counter/stm32-lptimer-cnt.c | 24 +- drivers/gpu/drm/amd/display/dc/dcn315/dcn315_resource.c | 2 drivers/hid/hid-plantronics.c | 144 +++++++--------- drivers/media/i2c/et8ek8/et8ek8_driver.c | 4 drivers/memstick/host/rtsx_usb_ms.c | 1 drivers/net/usb/qmi_wwan.c | 2 drivers/net/usb/usbnet.c | 21 +- drivers/tty/serial/8250/8250_dma.c | 2 drivers/tty/serial/8250/8250_pci.c | 46 +++++ drivers/usb/gadget/function/uvc_v4l2.c | 12 + drivers/usb/typec/ucsi/ucsi.c | 13 - net/atm/mpc.c | 2 net/ipv6/netfilter/nf_socket_ipv6.c | 23 ++ sound/pci/hda/patch_realtek.c | 1 sound/usb/mixer_quirks.c | 51 +++++ 19 files changed, 278 insertions(+), 109 deletions(-)
Abhishek Tamboli (1):
usb: gadget: uvc: Fix ERR_PTR dereference in uvc_v4l2.c
Alex Hung (1):
drm/amd/display: Check denominator crb_pipes before used
Andrei Kuchynski (1):
usb: typec: ucsi: Fix NULL pointer access
Cameron Williams (2):
tty: serial: 8250: Add some more device IDs
tty: serial: 8250: Add Brainboxes XC devices
Dhruv Deshpande (1):
ALSA: hda/realtek: Support mute LED on HP Laptop 15s-du3xxx
Dominique Martinet (1):
net: usb: usbnet: restore usb%d name exception for local mac addresses
Fabio Porcedda (2):
net: usb: qmi_wwan: add Telit Cinterion FN990B composition
net: usb: qmi_wwan: add Telit Cinterion FE990B composition
Fabrice Gasnier (1):
counter: stm32-lptimer-cnt: fix error handling when enabling
Greg Kroah-Hartman (1):
Linux 6.1.133
John Keeping (1):
serial: 8250_dma: terminate correct DMA in tx_dma_flush()
Kees Cook (2):
ARM: 9350/1: fault: Implement copy_from_kernel_nofault_allowed()
ARM: 9351/1: fault: Add "cut here" line for prefetch aborts
Luo Qiu (1):
memstick: rtsx_usb_ms: Fix slab-use-after-free in rtsx_usb_ms_drv_remove
Maxim Mikityanskiy (1):
netfilter: socket: Lookup orig tuple for IPv6 SNAT
Minjoong Kim (1):
atm: Fix NULL pointer dereference
Stefan Eichenberger (1):
ARM: dts: imx6qdl-apalis: Fix poweroff on Apalis iMX6
Terry Junge (2):
ALSA: usb-audio: Add quirk for Plantronics headsets to fix control names
HID: hid-plantronics: Add mic mute mapping and generalize quirks
Uwe Kleine-König (1):
media: i2c: et8ek8: Don't strip remove function when driver is builtin
William Breathitt Gray (1):
counter: microchip-tcb-capture: Fix undefined counter channel state on probe
Yanjun Yang (1):
ARM: Remove address checking for MMUless devices
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 1 -SUBLEVEL = 132 +SUBLEVEL = 133 EXTRAVERSION = NAME = Curry Ramen
arch/arm/boot/dts/imx6qdl-apalis.dtsi +5 -5
@@ -101,6 +101,11 @@ lvds_panel_in: endpoint { }; }; + poweroff { + compatible = "regulator-poweroff"; + cpu-supply = <&vgen2_reg>; + }; + reg_module_3v3: regulator-module-3v3 { compatible = "regulator-fixed"; regulator-always-on;
@@ -220,10 +225,6 @@ &can2 { status = "disabled"; }; -&clks { - fsl,pmic-stby-poweroff; -}; - /* Apalis SPI1 */ &ecspi1 { cs-gpios = <&gpio5 25 GPIO_ACTIVE_LOW>;
@@ -511,7 +512,6 @@ &i2c2 { pmic: pmic@8 { compatible = "fsl,pfuze100"; - fsl,pmic-stby-poweroff; reg = <0x08>; regulators {
arch/arm/mm/fault.c +8 -0
@@ -27,6 +27,13 @@#ifdef CONFIG_MMU +bool copy_from_kernel_nofault_allowed (const void *unsafe_src,size_t size) +{ +unsigned long addr = (unsigned long )unsafe_src; + +return addr >=TASK_SIZE &&ULONG_MAX - addr >= size; +} +/* * This is useful to dump out the page tables associated with * 'addr' in mm 'mm'.
@@ -552,6 +559,7 @@ do_PrefetchAbort(unsigned long addr, unsigned int ifsr, struct pt_regs *regs)if (!inf->fn (addr, ifsr |FSR_LNX_PF , regs))return ; +pr_alert ("8<--- cut here ---\n" );pr_alert ("Unhandled prefetch abort: %s (0x%03x) at 0x%08lx\n" , inf->name, ifsr, addr);
drivers/counter/microchip-tcb-capture.c +19 -0
@@ -369,6 +369,25 @@ static int mchp_tc_probe(struct platform_device *pdev) channel); } +/* Disable Quadrature Decoder and position measure */ + ret =regmap_update_bits (regmap,ATMEL_TC_BMR ,ATMEL_TC_QDEN |ATMEL_TC_POSEN ,0 ); +if (ret) +return ret; + +/* Setup the period capture mode */ + ret =regmap_update_bits (regmap,ATMEL_TC_REG (priv->channel[0 ],CMR ), +ATMEL_TC_WAVE |ATMEL_TC_ABETRG |ATMEL_TC_CMR_MASK | +ATMEL_TC_TCCLKS , +ATMEL_TC_CMR_MASK ); +if (ret) +return ret; + +/* Enable clock and trigger counter */ + ret =regmap_write (regmap,ATMEL_TC_REG (priv->channel[0 ],CCR ), +ATMEL_TC_CLKEN |ATMEL_TC_SWTRG ); +if (ret) +return ret; + priv->tc_cfg = tcb_config; priv->regmap = regmap; counter->name =dev_name (&pdev->dev);
drivers/counter/stm32-lptimer-cnt.c +15 -9
@@ -58,37 +58,43 @@ static int stm32_lptim_set_enable_state(struct stm32_lptim_cnt *priv,return 0 ; } + ret =clk_enable (priv->clk); +if (ret) + goto disable_cnt; +/* LP timer must be enabled before writing CMP & ARR */ ret =regmap_write (priv->regmap,STM32_LPTIM_ARR , priv->ceiling);if (ret) -return ret; + goto disable_clk; ret =regmap_write (priv->regmap,STM32_LPTIM_CMP ,0 );if (ret) -return ret; + goto disable_clk;/* ensure CMP & ARR registers are properly written */ ret =regmap_read_poll_timeout (priv->regmap,STM32_LPTIM_ISR , val, (val &STM32_LPTIM_CMPOK_ARROK ) ==STM32_LPTIM_CMPOK_ARROK ,100 ,1000 );if (ret) -return ret; + goto disable_clk; ret =regmap_write (priv->regmap,STM32_LPTIM_ICR ,STM32_LPTIM_CMPOKCF_ARROKCF );if (ret) -return ret; + goto disable_clk; - ret =clk_enable (priv->clk); -if (ret) { -regmap_write (priv->regmap,STM32_LPTIM_CR ,0 ); -return ret; - } priv->enabled = true;/* Start LP timer in continuous mode */ return regmap_update_bits (priv->regmap,STM32_LPTIM_CR ,STM32_LPTIM_CNTSTRT ,STM32_LPTIM_CNTSTRT ); + +disable_clk: +clk_disable (priv->clk); +disable_cnt: +regmap_write (priv->regmap,STM32_LPTIM_CR ,0 ); + +return ret; }static int stm32_lptim_setup (struct stm32_lptim_cnt *priv,int enable)
drivers/gpu/drm/amd/display/dc/dcn315/dcn315_resource.c +1 -1
@@ -1772,7 +1772,7 @@ static int dcn315_populate_dml_pipes_from_context(bool split_required = pipe->stream->timing.pix_clk_100hz >=dcn_get_max_non_odm_pix_rate_100hz (&dc->dml.soc) || (pipe->plane_state && pipe->plane_state->src_rect.width >5120 ); -if (remaining_det_segs >MIN_RESERVED_DET_SEGS ) +if (remaining_det_segs >MIN_RESERVED_DET_SEGS && crb_pipes !=0 ) pipes[pipe_cnt].pipe.src.det_size_override += (remaining_det_segs -MIN_RESERVED_DET_SEGS ) / crb_pipes + (crb_idx < (remaining_det_segs -MIN_RESERVED_DET_SEGS ) % crb_pipes ?1 :0 );if (pipes[pipe_cnt].pipe.src.det_size_override >2 *DCN3_15_MAX_DET_SEGS ) {
drivers/hid/hid-plantronics.c +67 -77
239 lines not on this page · raw message
drivers/media/i2c/et8ek8/et8ek8_driver.c +2 -2
@@ -1460,7 +1460,7 @@ static int et8ek8_probe(struct i2c_client *client)return ret; } -static void __exit et8ek8_remove(struct i2c_client *client) +static void et8ek8_remove (struct i2c_client *client) {struct v4l2_subdev *subdev =i2c_get_clientdata (client);struct et8ek8_sensor *sensor =to_et8ek8_sensor (subdev);
@@ -1502,7 +1502,7 @@ static struct i2c_driver et8ek8_i2c_driver = { .of_match_table = et8ek8_of_table, }, .probe_new = et8ek8_probe, - .remove = __exit_p(et8ek8_remove), + .remove = et8ek8_remove, .id_table = et8ek8_id_table, };
drivers/memstick/host/rtsx_usb_ms.c +1 -0
@@ -813,6 +813,7 @@ static int rtsx_usb_ms_drv_remove(struct platform_device *pdev) host->eject = true;cancel_work_sync (&host->handle_req); +cancel_delayed_work_sync (&host->poll_card);mutex_lock (&host->host_mutex);if (host->req) {
drivers/net/usb/qmi_wwan.c +2 -0
@@ -1372,9 +1372,11 @@ static const struct usb_device_id products[] = { {QMI_QUIRK_SET_DTR(0x1bc7, 0x10a0, 0)}, /* Telit FN920C04 */ {QMI_QUIRK_SET_DTR(0x1bc7, 0x10a4, 0)}, /* Telit FN920C04 */ {QMI_QUIRK_SET_DTR(0x1bc7, 0x10a9, 0)}, /* Telit FN920C04 */ + {QMI_QUIRK_SET_DTR(0x1bc7, 0x10b0, 0)}, /* Telit FE990B */ {QMI_QUIRK_SET_DTR(0x1bc7, 0x10c0, 0)}, /* Telit FE910C04 */ {QMI_QUIRK_SET_DTR(0x1bc7, 0x10c4, 0)}, /* Telit FE910C04 */ {QMI_QUIRK_SET_DTR(0x1bc7, 0x10c8, 0)}, /* Telit FE910C04 */ + {QMI_QUIRK_SET_DTR(0x1bc7, 0x10d0, 0)}, /* Telit FN990B */ {QMI_FIXED_INTF(0x1bc7, 0x1100, 3)}, /* Telit ME910 */ {QMI_FIXED_INTF(0x1bc7, 0x1101, 3)}, /* Telit ME910 dual modem */ {QMI_FIXED_INTF(0x1bc7, 0x1200, 5)}, /* Telit LE920 */
drivers/net/usb/usbnet.c +15 -6
@@ -178,6 +178,17 @@ int usbnet_get_ethernet_addr(struct usbnet *dev, int iMACAddress) }EXPORT_SYMBOL_GPL (usbnet_get_ethernet_addr); +static bool usbnet_needs_usb_name_format (struct usbnet *dev,struct net_device *net) +{ +/* Point to point devices which don't have a real MAC address +* (or report a fake local one) have historically used the usb%d +* naming. Preserve this.. +*/ +return (dev->driver_info->flags &FLAG_POINTTOPOINT ) !=0 && + (is_zero_ether_addr (net->dev_addr) || +is_local_ether_addr (net->dev_addr)); +} +static void intr_complete (struct urb *urb) {struct usbnet *dev = urb->context;
@@ -1761,13 +1772,11 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)if (status <0 ) goto out1; -// heuristic: "usb%d" for links we know are two-host, -// else "eth%d" when there's reasonable doubt. userspace -// can rename the link if it knows better. +/* heuristic: rename to "eth%d" if we are not sure this link +* is two-host (these links keep "usb%d") +*/ if ((dev->driver_info->flags &FLAG_ETHER ) !=0 && - ((dev->driver_info->flags &FLAG_POINTTOPOINT ) ==0 || -/* somebody touched it*/ - !is_zero_ether_addr (net->dev_addr))) + !usbnet_needs_usb_name_format (dev, net))strscpy (net->name,"eth%d" ,sizeof (net->name));/* WLAN devices should always be named "wlan%d" */ if ((dev->driver_info->flags &FLAG_WLAN ) !=0 )
drivers/tty/serial/8250/8250_dma.c +1 -1
@@ -146,7 +146,7 @@ void serial8250_tx_dma_flush(struct uart_8250_port *p)*/ dma->tx_size =0 ; -dmaengine_terminate_async (dma->rxchan); +dmaengine_terminate_async (dma->txchan); }int serial8250_rx_dma (struct uart_8250_port *p)
drivers/tty/serial/8250/8250_pci.c +46 -0
70 lines not on this page · raw message
drivers/usb/gadget/function/uvc_v4l2.c +11 -1
@@ -121,6 +121,9 @@ static struct uvcg_format *find_format_by_pix(struct uvc_device *uvc,list_for_each_entry (format, &uvc->header->formats, entry) {struct uvc_format_desc *fmtdesc =to_uvc_format (format->fmt); +if (IS_ERR (fmtdesc)) +continue ; +if (fmtdesc->fcc == pixelformat) { uformat = format->fmt;break ;
@@ -240,6 +243,7 @@ uvc_v4l2_try_format(struct file *file, void *fh, struct v4l2_format *fmt)struct uvc_video *video = &uvc->video;struct uvcg_format *uformat;struct uvcg_frame *uframe; +const struct uvc_format_desc *fmtdesc;u8 *fcc;if (fmt->type != video->queue.queue.type)
@@ -265,7 +269,10 @@ uvc_v4l2_try_format(struct file *file, void *fh, struct v4l2_format *fmt) fmt->fmt.pix.field =V4L2_FIELD_NONE ; fmt->fmt.pix.bytesperline =uvc_v4l2_get_bytesperline (uformat, uframe); fmt->fmt.pix.sizeimage =uvc_get_frame_size (uformat, uframe); - fmt->fmt.pix.pixelformat =to_uvc_format (uformat)->fcc; + fmtdesc =to_uvc_format (uformat); +if (IS_ERR (fmtdesc)) +return PTR_ERR (fmtdesc); + fmt->fmt.pix.pixelformat = fmtdesc->fcc; fmt->fmt.pix.colorspace =V4L2_COLORSPACE_SRGB ; fmt->fmt.pix.priv =0 ;
@@ -378,6 +385,9 @@ uvc_v4l2_enum_format(struct file *file, void *fh, struct v4l2_fmtdesc *f) f->flags |=V4L2_FMT_FLAG_COMPRESSED ; fmtdesc =to_uvc_format (uformat); +if (IS_ERR (fmtdesc)) +return PTR_ERR (fmtdesc); + f->pixelformat = fmtdesc->fcc;strscpy (f->description, fmtdesc->name,sizeof (f->description));
drivers/usb/typec/ucsi/ucsi.c +7 -6
@@ -1313,11 +1313,11 @@ static int ucsi_init(struct ucsi *ucsi) err_unregister:for (con = connector; con->port; con++) { +if (con->wq) +destroy_workqueue (con->wq);ucsi_unregister_partner (con);ucsi_unregister_altmodes (con,UCSI_RECIPIENT_CON );ucsi_unregister_port_psy (con); -if (con->wq) -destroy_workqueue (con->wq);typec_unregister_port (con->port); con->port =NULL ; }
@@ -1479,10 +1479,6 @@ void ucsi_unregister(struct ucsi *ucsi)for (i =0 ; i < ucsi->cap.num_connectors; i++) {cancel_work_sync (&ucsi->connector[i].work); -ucsi_unregister_partner (&ucsi->connector[i]); -ucsi_unregister_altmodes (&ucsi->connector[i], -UCSI_RECIPIENT_CON ); -ucsi_unregister_port_psy (&ucsi->connector[i]);if (ucsi->connector[i].wq) {struct ucsi_work *uwork;
@@ -1497,6 +1493,11 @@ void ucsi_unregister(struct ucsi *ucsi)mutex_unlock (&ucsi->connector[i].lock);destroy_workqueue (ucsi->connector[i].wq); } + +ucsi_unregister_partner (&ucsi->connector[i]); +ucsi_unregister_altmodes (&ucsi->connector[i], +UCSI_RECIPIENT_CON ); +ucsi_unregister_port_psy (&ucsi->connector[i]);typec_unregister_port (ucsi->connector[i].port); }
net/atm/mpc.c +2 -0
@@ -1314,6 +1314,8 @@ static void MPOA_cache_impos_rcvd(struct k_message *msg, holding_time = msg->content.eg_info.holding_time;dprintk ("(%s) entry = %p, holding_time = %u\n" , mpc->dev->name, entry, holding_time); +if (entry ==NULL && !holding_time) +return ;if (entry ==NULL && holding_time) { entry = mpc->eg_ops->add_entry (msg, mpc); mpc->eg_ops->put (entry);
net/ipv6/netfilter/nf_socket_ipv6.c +23 -0
@@ -103,6 +103,10 @@ struct sock *nf_sk_lookup_slow_v6(struct net *net, const struct sk_buff *skb,struct sk_buff *data_skb =NULL ;int doff =0 ;int thoff =0 , tproto; +#if IS_ENABLED (CONFIG_NF_CONNTRACK ) +enum ip_conntrack_info ctinfo; +struct nf_conn const *ct; +#endif tproto =ipv6_find_hdr (skb, &thoff,-1 ,NULL ,NULL );if (tproto <0 ) {
@@ -136,6 +140,25 @@ struct sock *nf_sk_lookup_slow_v6(struct net *net, const struct sk_buff *skb,return NULL ; } +#if IS_ENABLED (CONFIG_NF_CONNTRACK ) +/* Do the lookup with the original socket address in +* case this is a reply packet of an established +* SNAT-ted connection. +*/ + ct =nf_ct_get (skb, &ctinfo); +if (ct && + ((tproto !=IPPROTO_ICMPV6 && + ctinfo ==IP_CT_ESTABLISHED_REPLY ) || + (tproto ==IPPROTO_ICMPV6 && + ctinfo ==IP_CT_RELATED_REPLY )) && + (ct->status &IPS_SRC_NAT_DONE )) { + daddr = &ct->tuplehash[IP_CT_DIR_ORIGINAL ].tuple.src.u3.in6; + dport = (tproto ==IPPROTO_TCP ) ? + ct->tuplehash[IP_CT_DIR_ORIGINAL ].tuple.src.u.tcp.port : + ct->tuplehash[IP_CT_DIR_ORIGINAL ].tuple.src.u.udp.port; + } +#endif +return nf_socket_get_sock_v6 (net, data_skb, doff, tproto, saddr, daddr, sport, dport, indev); }
sound/pci/hda/patch_realtek.c +1 -0
@@ -9867,6 +9867,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {SND_PCI_QUIRK (0x103c ,0x8811 ,"HP Spectre x360 15-eb1xxx" ,ALC285_FIXUP_HP_SPECTRE_X360_EB1 ),SND_PCI_QUIRK (0x103c ,0x8812 ,"HP Spectre x360 15-eb1xxx" ,ALC285_FIXUP_HP_SPECTRE_X360_EB1 ),SND_PCI_QUIRK (0x103c ,0x881d ,"HP 250 G8 Notebook PC" ,ALC236_FIXUP_HP_MUTE_LED_COEFBIT2 ), +SND_PCI_QUIRK (0x103c ,0x881e ,"HP Laptop 15s-du3xxx" ,ALC236_FIXUP_HP_MUTE_LED_COEFBIT2 ),SND_PCI_QUIRK (0x103c ,0x8846 ,"HP EliteBook 850 G8 Notebook PC" ,ALC285_FIXUP_HP_GPIO_LED ),SND_PCI_QUIRK (0x103c ,0x8847 ,"HP EliteBook x360 830 G8 Notebook PC" ,ALC285_FIXUP_HP_GPIO_LED ), SND_PCI_QUIRK(0x103c, 0x884b, "HP EliteBook 840 Aero G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED),
sound/usb/mixer_quirks.c +51 -0
62 lines not on this page · raw message
Hi Greg,
Am 07.04.2025 um 10:19 schrieb Greg Kroah-Hartman:
Quoted 3 lines
I'm announcing the release of the 6.1.133 kernel.
All users of the 6.1 kernel series must upgrade.
When building 6.1.133, I get a warning in phase MODPOST about a section mismatch. I'm sure I didn't get this warning in -rc1.
I also have no clue whether this is important or serious in any way or whether it can be safely ignored. I just wanted to let you know about it, so that you can have a look into it.
GEN modules.builtin
GEN .vmlinux.objs
MODPOST Module.symvers
WARNING: modpost: vmlinux.o: section mismatch in reference: pci_xen_swiotlb_init_late (section: .text) -> xen_swiotlb_fixup (section: .init.text)
CC .vmlinux.export.o UPD include/generated/utsversion.h CC init/version-timestamp.o
Building on X86_64 (2-socket Ivy Bridge Xeon E5-2697 v2 server) with "make -j48", config attached. The remainder of the build works fine without further warnings or errors, and the machine boots and works just fine so far with the built kernel.
Beste Grüße,
Peter Schneider
Signature · 8 lines
Climb the mountain not to plant your flag, but to embrace the challenge, enjoy the air and behold the view. Climb it so you can see the world, not so the world can see you. -- David McCullough Jr. OpenPGP: 0xA3828BD796CCE11A8CADE8866E3A92C92C3FF244 Download: https://www.peters-netzplatz.de/download/pschneider1968_pub.asc https://keys.mailvelope.com/pks/lookup?op=get&[email protected] https://keys.mailvelope.com/pks/lookup?op=get&[email protected]