From c7daa76da73d0047cf84e443bec6cd80abab8a3f Mon Sep 17 00:00:00 2001 From: Augusto Caringi Date: Thu, 30 Mar 2023 18:55:36 -0300 Subject: [PATCH] kernel-6.2.9-300 * Thu Mar 30 2023 Augusto Caringi [6.2.9-0] - Add bug numbers from recent MRs (Justin M. Forbes) - net: wwan: iosm: fixes 7560 modem crash (M Chetan Kumar) - Input: alps - fix compatibility with -funsigned-char (msizanoen) - Input: focaltech - use explicitly signed char type (Jason A. Donenfeld) - drm/nouveau/kms: Fix backlight registration (Hans de Goede) - Add bugs addressed so far for the 6.2.9 build (Justin M. Forbes) - btrfs: fix race between quota disable and quota assign ioctls (Filipe Manana) - redhat/configs: Enable CONFIG_SND_SOC_CS42L83 (Neal Gompa) - Add patch to turn off EFI_ZBOOT for Fedora 36 (Justin M. Forbes) - Linux v6.2.9 Resolves: Signed-off-by: Augusto Caringi --- Patchlist.changelog | 15 ++ kernel-aarch64-debug-fedora.config | 2 +- kernel-aarch64-fedora.config | 2 +- kernel-armv7hl-debug-fedora.config | 2 +- kernel-armv7hl-fedora.config | 2 +- kernel-armv7hl-lpae-debug-fedora.config | 2 +- kernel-armv7hl-lpae-fedora.config | 2 +- kernel-ppc64le-debug-fedora.config | 2 +- kernel-ppc64le-fedora.config | 2 +- kernel-s390x-debug-fedora.config | 2 +- kernel-s390x-fedora.config | 2 +- kernel-x86_64-debug-fedora.config | 2 +- kernel-x86_64-fedora.config | 2 +- kernel.spec | 18 +- patch-6.2-redhat.patch | 255 +++++++++++++++++------- sources | 6 +- 16 files changed, 230 insertions(+), 88 deletions(-) diff --git a/Patchlist.changelog b/Patchlist.changelog index 2d5398b36..53079bcc3 100644 --- a/Patchlist.changelog +++ b/Patchlist.changelog @@ -1,3 +1,18 @@ +"https://gitlab.com/cki-project/kernel-ark/-/commit"/b07be483040ffde4aea1f4979bf5aba52898e736 + b07be483040ffde4aea1f4979bf5aba52898e736 net: wwan: iosm: fixes 7560 modem crash + +"https://gitlab.com/cki-project/kernel-ark/-/commit"/84ec9dc84621513d0d1696c0535ea1e305181c2a + 84ec9dc84621513d0d1696c0535ea1e305181c2a Input: alps - fix compatibility with -funsigned-char + +"https://gitlab.com/cki-project/kernel-ark/-/commit"/e4823b9e65e36058a10a875e053ee550861c860a + e4823b9e65e36058a10a875e053ee550861c860a Input: focaltech - use explicitly signed char type + +"https://gitlab.com/cki-project/kernel-ark/-/commit"/97e494ffa8f7e65e75c0631f1a5bf3ac70a96e99 + 97e494ffa8f7e65e75c0631f1a5bf3ac70a96e99 drm/nouveau/kms: Fix backlight registration + +"https://gitlab.com/cki-project/kernel-ark/-/commit"/78eac5b28b5a43c7a99b65798af08c0fba4a62aa + 78eac5b28b5a43c7a99b65798af08c0fba4a62aa btrfs: fix race between quota disable and quota assign ioctls + "https://gitlab.com/cki-project/kernel-ark/-/commit"/d72fed198ee1835d3950d0cb4787b7f3a082ff40 d72fed198ee1835d3950d0cb4787b7f3a082ff40 Revert "usb: xhci-pci: Set PROBE_PREFER_ASYNCHRONOUS" diff --git a/kernel-aarch64-debug-fedora.config b/kernel-aarch64-debug-fedora.config index 674b86dcc..d44e94deb 100644 --- a/kernel-aarch64-debug-fedora.config +++ b/kernel-aarch64-debug-fedora.config @@ -7239,7 +7239,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set -# CONFIG_SND_SOC_CS42L83 is not set +CONFIG_SND_SOC_CS42L83=m CONFIG_SND_SOC_CS42XX8_I2C=m CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4341 is not set diff --git a/kernel-aarch64-fedora.config b/kernel-aarch64-fedora.config index f6e1cb398..c168533b2 100644 --- a/kernel-aarch64-fedora.config +++ b/kernel-aarch64-fedora.config @@ -7217,7 +7217,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set -# CONFIG_SND_SOC_CS42L83 is not set +CONFIG_SND_SOC_CS42L83=m CONFIG_SND_SOC_CS42XX8_I2C=m CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4341 is not set diff --git a/kernel-armv7hl-debug-fedora.config b/kernel-armv7hl-debug-fedora.config index 60271a5b2..044c61663 100644 --- a/kernel-armv7hl-debug-fedora.config +++ b/kernel-armv7hl-debug-fedora.config @@ -7243,7 +7243,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set -# CONFIG_SND_SOC_CS42L83 is not set +CONFIG_SND_SOC_CS42L83=m CONFIG_SND_SOC_CS42XX8_I2C=m CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4341 is not set diff --git a/kernel-armv7hl-fedora.config b/kernel-armv7hl-fedora.config index 6110cb1a3..c02ae54c2 100644 --- a/kernel-armv7hl-fedora.config +++ b/kernel-armv7hl-fedora.config @@ -7223,7 +7223,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set -# CONFIG_SND_SOC_CS42L83 is not set +CONFIG_SND_SOC_CS42L83=m CONFIG_SND_SOC_CS42XX8_I2C=m CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4341 is not set diff --git a/kernel-armv7hl-lpae-debug-fedora.config b/kernel-armv7hl-lpae-debug-fedora.config index 0461e9e56..91a6aee41 100644 --- a/kernel-armv7hl-lpae-debug-fedora.config +++ b/kernel-armv7hl-lpae-debug-fedora.config @@ -7053,7 +7053,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set -# CONFIG_SND_SOC_CS42L83 is not set +CONFIG_SND_SOC_CS42L83=m CONFIG_SND_SOC_CS42XX8_I2C=m CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4341 is not set diff --git a/kernel-armv7hl-lpae-fedora.config b/kernel-armv7hl-lpae-fedora.config index 586636723..c0bcb6036 100644 --- a/kernel-armv7hl-lpae-fedora.config +++ b/kernel-armv7hl-lpae-fedora.config @@ -7033,7 +7033,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set -# CONFIG_SND_SOC_CS42L83 is not set +CONFIG_SND_SOC_CS42L83=m CONFIG_SND_SOC_CS42XX8_I2C=m CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4341 is not set diff --git a/kernel-ppc64le-debug-fedora.config b/kernel-ppc64le-debug-fedora.config index 68dbeb8fa..5f38b2456 100644 --- a/kernel-ppc64le-debug-fedora.config +++ b/kernel-ppc64le-debug-fedora.config @@ -6065,7 +6065,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set -# CONFIG_SND_SOC_CS42L83 is not set +CONFIG_SND_SOC_CS42L83=m # CONFIG_SND_SOC_CS42XX8_I2C is not set CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4341 is not set diff --git a/kernel-ppc64le-fedora.config b/kernel-ppc64le-fedora.config index 7995c331e..f591158be 100644 --- a/kernel-ppc64le-fedora.config +++ b/kernel-ppc64le-fedora.config @@ -6043,7 +6043,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set -# CONFIG_SND_SOC_CS42L83 is not set +CONFIG_SND_SOC_CS42L83=m # CONFIG_SND_SOC_CS42XX8_I2C is not set CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4341 is not set diff --git a/kernel-s390x-debug-fedora.config b/kernel-s390x-debug-fedora.config index 887aadf54..b0f9cffaa 100644 --- a/kernel-s390x-debug-fedora.config +++ b/kernel-s390x-debug-fedora.config @@ -6005,7 +6005,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set -# CONFIG_SND_SOC_CS42L83 is not set +CONFIG_SND_SOC_CS42L83=m # CONFIG_SND_SOC_CS42XX8_I2C is not set CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4341 is not set diff --git a/kernel-s390x-fedora.config b/kernel-s390x-fedora.config index 8366a461b..acfd326be 100644 --- a/kernel-s390x-fedora.config +++ b/kernel-s390x-fedora.config @@ -5983,7 +5983,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set -# CONFIG_SND_SOC_CS42L83 is not set +CONFIG_SND_SOC_CS42L83=m # CONFIG_SND_SOC_CS42XX8_I2C is not set CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4341 is not set diff --git a/kernel-x86_64-debug-fedora.config b/kernel-x86_64-debug-fedora.config index a0ef84b0c..f3b8e2390 100644 --- a/kernel-x86_64-debug-fedora.config +++ b/kernel-x86_64-debug-fedora.config @@ -6437,7 +6437,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set -# CONFIG_SND_SOC_CS42L83 is not set +CONFIG_SND_SOC_CS42L83=m # CONFIG_SND_SOC_CS42XX8_I2C is not set CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4341 is not set diff --git a/kernel-x86_64-fedora.config b/kernel-x86_64-fedora.config index 8ff899ac8..55b929ab0 100644 --- a/kernel-x86_64-fedora.config +++ b/kernel-x86_64-fedora.config @@ -6416,7 +6416,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set -# CONFIG_SND_SOC_CS42L83 is not set +CONFIG_SND_SOC_CS42L83=m # CONFIG_SND_SOC_CS42XX8_I2C is not set CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4341 is not set diff --git a/kernel.spec b/kernel.spec index c5d215edc..cb7d50ac1 100755 --- a/kernel.spec +++ b/kernel.spec @@ -148,17 +148,17 @@ Summary: The Linux kernel # the --with-release option overrides this setting.) %define debugbuildsenabled 1 # define buildid .local -%define specversion 6.2.8 +%define specversion 6.2.9 %define patchversion 6.2 %define pkgrelease 300 %define kversion 6 -%define tarfile_release 6.2.8 +%define tarfile_release 6.2.9 # This is needed to do merge window version magic %define patchlevel 2 # This allows pkg_release to have configurable %%{?dist} tag %define specrelease 300%{?buildid}%{?dist} # This defines the kabi tarball version -%define kabiversion 6.2.8 +%define kabiversion 6.2.9 # If this variable is set to 1, a bpf selftests build failure will cause a # fatal kernel package build error @@ -3346,6 +3346,18 @@ fi # # %changelog +* Thu Mar 30 2023 Augusto Caringi [6.2.9-0] +- Add bug numbers from recent MRs (Justin M. Forbes) +- net: wwan: iosm: fixes 7560 modem crash (M Chetan Kumar) +- Input: alps - fix compatibility with -funsigned-char (msizanoen) +- Input: focaltech - use explicitly signed char type (Jason A. Donenfeld) +- drm/nouveau/kms: Fix backlight registration (Hans de Goede) +- Add bugs addressed so far for the 6.2.9 build (Justin M. Forbes) +- btrfs: fix race between quota disable and quota assign ioctls (Filipe Manana) +- redhat/configs: Enable CONFIG_SND_SOC_CS42L83 (Neal Gompa) +- Add patch to turn off EFI_ZBOOT for Fedora 36 (Justin M. Forbes) +- Linux v6.2.9 + * Wed Mar 22 2023 Augusto Caringi [6.2.8-0] - Add new config option for 6.2.8 (Augusto Caringi) - Revert "usb: xhci-pci: Set PROBE_PREFER_ASYNCHRONOUS" (Kate Hsuan) diff --git a/patch-6.2-redhat.patch b/patch-6.2-redhat.patch index 2442da0ea..057891447 100644 --- a/patch-6.2-redhat.patch +++ b/patch-6.2-redhat.patch @@ -15,16 +15,20 @@ drivers/firmware/efi/efi.c | 124 +++-- drivers/firmware/efi/secureboot.c | 38 ++ drivers/firmware/sysfb.c | 18 +- + drivers/gpu/drm/nouveau/nouveau_backlight.c | 7 +- drivers/hid/hid-rmi.c | 66 --- drivers/hwtracing/coresight/coresight-etm4x-core.c | 19 + + drivers/input/mouse/alps.c | 16 +- + drivers/input/mouse/focaltech.c | 8 +- drivers/input/rmi4/rmi_driver.c | 124 +++-- drivers/iommu/iommu.c | 22 + + drivers/net/wwan/iosm/iosm_ipc_imem.c | 7 + drivers/pci/quirks.c | 24 + drivers/usb/core/hub.c | 7 + drivers/usb/host/xhci-pci.c | 7 +- - drivers/usb/typec/ucsi/ucsi.c | 33 +- - drivers/usb/typec/ucsi/ucsi_acpi.c | 2 +- - fs/nfs/dir.c | 2 +- + drivers/usb/typec/ucsi/ucsi.c | 22 +- + fs/btrfs/ioctl.c | 2 + + fs/btrfs/qgroup.c | 11 +- include/linux/efi.h | 22 +- include/linux/lsm_hook_defs.h | 2 + include/linux/lsm_hooks.h | 6 + @@ -37,10 +41,10 @@ security/lockdown/Kconfig | 13 + security/lockdown/lockdown.c | 1 + security/security.c | 6 + - 39 files changed, 1000 insertions(+), 201 deletions(-) + 43 files changed, 1029 insertions(+), 208 deletions(-) diff --git a/Makefile b/Makefile -index 2c90d9b067f4..93b82f038789 100644 +index 8732f7208d59..2ef18d9eed77 100644 --- a/Makefile +++ b/Makefile @@ -22,6 +22,10 @@ $(if $(filter __%, $(MAKECMDGOALS)), \ @@ -559,7 +563,7 @@ index 000000000000..de0a3714a5d4 + } +} diff --git a/drivers/firmware/sysfb.c b/drivers/firmware/sysfb.c -index 3fd3563d962b..75d67e6dde2a 100644 +index 3c197db42c9d..16e4a2e90fae 100644 --- a/drivers/firmware/sysfb.c +++ b/drivers/firmware/sysfb.c @@ -34,6 +34,22 @@ @@ -585,7 +589,7 @@ index 3fd3563d962b..75d67e6dde2a 100644 static struct platform_device *pd; static DEFINE_MUTEX(disable_lock); static bool disabled; -@@ -83,7 +99,7 @@ static __init int sysfb_init(void) +@@ -85,7 +101,7 @@ static __init int sysfb_init(void) /* try to create a simple-framebuffer device */ compatible = sysfb_parse_mode(si, &mode); @@ -594,6 +598,32 @@ index 3fd3563d962b..75d67e6dde2a 100644 pd = sysfb_create_simplefb(si, &mode); if (!IS_ERR(pd)) goto unlock_mutex; +diff --git a/drivers/gpu/drm/nouveau/nouveau_backlight.c b/drivers/gpu/drm/nouveau/nouveau_backlight.c +index 40409a29f5b6..91b5ecc57538 100644 +--- a/drivers/gpu/drm/nouveau/nouveau_backlight.c ++++ b/drivers/gpu/drm/nouveau/nouveau_backlight.c +@@ -33,6 +33,7 @@ + #include + #include + #include ++#include + + #include "nouveau_drv.h" + #include "nouveau_reg.h" +@@ -299,8 +300,12 @@ nv50_backlight_init(struct nouveau_backlight *bl, + struct nouveau_drm *drm = nouveau_drm(nv_encoder->base.base.dev); + struct nvif_object *device = &drm->client.device.object; + ++ /* ++ * Note when this runs the connectors have not been probed yet, ++ * so nv_conn->base.status is not set yet. ++ */ + if (!nvif_rd32(device, NV50_PDISP_SOR_PWM_CTL(ffs(nv_encoder->dcb->or) - 1)) || +- nv_conn->base.status != connector_status_connected) ++ drm_helper_probe_detect(&nv_conn->base, NULL, false) != connector_status_connected) + return -ENODEV; + + if (nv_conn->type == DCB_CONNECTOR_eDP) { diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c index 84e7ba5314d3..efc96776f761 100644 --- a/drivers/hid/hid-rmi.c @@ -747,6 +777,83 @@ index 77bca6932f01..27f5455aef6c 100644 amba_driver_unregister(&etm4x_amba_driver); platform_driver_unregister(&etm4_platform_driver); etm4_pm_clear(); +diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c +index 989228b5a0a4..e2c11d9f3868 100644 +--- a/drivers/input/mouse/alps.c ++++ b/drivers/input/mouse/alps.c +@@ -852,8 +852,8 @@ static void alps_process_packet_v6(struct psmouse *psmouse) + x = y = z = 0; + + /* Divide 4 since trackpoint's speed is too fast */ +- input_report_rel(dev2, REL_X, (char)x / 4); +- input_report_rel(dev2, REL_Y, -((char)y / 4)); ++ input_report_rel(dev2, REL_X, (s8)x / 4); ++ input_report_rel(dev2, REL_Y, -((s8)y / 4)); + + psmouse_report_standard_buttons(dev2, packet[3]); + +@@ -1104,8 +1104,8 @@ static void alps_process_trackstick_packet_v7(struct psmouse *psmouse) + ((packet[3] & 0x20) << 1); + z = (packet[5] & 0x3f) | ((packet[3] & 0x80) >> 1); + +- input_report_rel(dev2, REL_X, (char)x); +- input_report_rel(dev2, REL_Y, -((char)y)); ++ input_report_rel(dev2, REL_X, (s8)x); ++ input_report_rel(dev2, REL_Y, -((s8)y)); + input_report_abs(dev2, ABS_PRESSURE, z); + + psmouse_report_standard_buttons(dev2, packet[1]); +@@ -2294,20 +2294,20 @@ static int alps_get_v3_v7_resolution(struct psmouse *psmouse, int reg_pitch) + if (reg < 0) + return reg; + +- x_pitch = (char)(reg << 4) >> 4; /* sign extend lower 4 bits */ ++ x_pitch = (s8)(reg << 4) >> 4; /* sign extend lower 4 bits */ + x_pitch = 50 + 2 * x_pitch; /* In 0.1 mm units */ + +- y_pitch = (char)reg >> 4; /* sign extend upper 4 bits */ ++ y_pitch = (s8)reg >> 4; /* sign extend upper 4 bits */ + y_pitch = 36 + 2 * y_pitch; /* In 0.1 mm units */ + + reg = alps_command_mode_read_reg(psmouse, reg_pitch + 1); + if (reg < 0) + return reg; + +- x_electrode = (char)(reg << 4) >> 4; /* sign extend lower 4 bits */ ++ x_electrode = (s8)(reg << 4) >> 4; /* sign extend lower 4 bits */ + x_electrode = 17 + x_electrode; + +- y_electrode = (char)reg >> 4; /* sign extend upper 4 bits */ ++ y_electrode = (s8)reg >> 4; /* sign extend upper 4 bits */ + y_electrode = 13 + y_electrode; + + x_phys = x_pitch * (x_electrode - 1); /* In 0.1 mm units */ +diff --git a/drivers/input/mouse/focaltech.c b/drivers/input/mouse/focaltech.c +index 6fd5fff0cbff..c74b99077d16 100644 +--- a/drivers/input/mouse/focaltech.c ++++ b/drivers/input/mouse/focaltech.c +@@ -202,8 +202,8 @@ static void focaltech_process_rel_packet(struct psmouse *psmouse, + state->pressed = packet[0] >> 7; + finger1 = ((packet[0] >> 4) & 0x7) - 1; + if (finger1 < FOC_MAX_FINGERS) { +- state->fingers[finger1].x += (char)packet[1]; +- state->fingers[finger1].y += (char)packet[2]; ++ state->fingers[finger1].x += (s8)packet[1]; ++ state->fingers[finger1].y += (s8)packet[2]; + } else { + psmouse_err(psmouse, "First finger in rel packet invalid: %d\n", + finger1); +@@ -218,8 +218,8 @@ static void focaltech_process_rel_packet(struct psmouse *psmouse, + */ + finger2 = ((packet[3] >> 4) & 0x7) - 1; + if (finger2 < FOC_MAX_FINGERS) { +- state->fingers[finger2].x += (char)packet[4]; +- state->fingers[finger2].y += (char)packet[5]; ++ state->fingers[finger2].x += (s8)packet[4]; ++ state->fingers[finger2].y += (s8)packet[5]; + } + } + diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c index 258d5fe3d395..f7298e3dc8f3 100644 --- a/drivers/input/rmi4/rmi_driver.c @@ -979,6 +1086,24 @@ index f8100067502f..e0823c45e2fa 100644 /* * Changes the default domain of an iommu group that has *only* one device * +diff --git a/drivers/net/wwan/iosm/iosm_ipc_imem.c b/drivers/net/wwan/iosm/iosm_ipc_imem.c +index 1e6a47976642..c066b0040a3f 100644 +--- a/drivers/net/wwan/iosm/iosm_ipc_imem.c ++++ b/drivers/net/wwan/iosm/iosm_ipc_imem.c +@@ -587,6 +587,13 @@ static void ipc_imem_run_state_worker(struct work_struct *instance) + while (ctrl_chl_idx < IPC_MEM_MAX_CHANNELS) { + if (!ipc_chnl_cfg_get(&chnl_cfg_port, ctrl_chl_idx)) { + ipc_imem->ipc_port[ctrl_chl_idx] = NULL; ++ ++ if (ipc_imem->pcie->pci->device == INTEL_CP_DEVICE_7560_ID && ++ chnl_cfg_port.wwan_port_type == WWAN_PORT_XMMRPC) { ++ ctrl_chl_idx++; ++ continue; ++ } ++ + if (ipc_imem->pcie->pci->device == INTEL_CP_DEVICE_7360_ID && + chnl_cfg_port.wwan_port_type == WWAN_PORT_MBIM) { + ctrl_chl_idx++; diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 494fa46f5767..27bc8dd45ad8 100644 --- a/drivers/pci/quirks.c @@ -1053,7 +1178,7 @@ index fb988e4ea924..6db07ca419c3 100644 static int __init xhci_pci_init(void) diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c -index 1cf8947c6d66..086b50968983 100644 +index 8cbbb002fefe..086b50968983 100644 --- a/drivers/usb/typec/ucsi/ucsi.c +++ b/drivers/usb/typec/ucsi/ucsi.c @@ -1039,9 +1039,8 @@ static struct fwnode_handle *ucsi_find_fwnode(struct ucsi_connector *con) @@ -1075,29 +1200,16 @@ index 1cf8947c6d66..086b50968983 100644 con->ucsi = ucsi; cap->fwnode = ucsi_find_fwnode(con); -@@ -1204,8 +1202,8 @@ static int ucsi_register_port(struct ucsi *ucsi, int index) +@@ -1204,7 +1202,7 @@ static int ucsi_register_port(struct ucsi *ucsi, int index) */ static int ucsi_init(struct ucsi *ucsi) { - struct ucsi_connector *con; -- u64 command; + struct ucsi_connector *con, *connector; -+ u64 command, ntfy; + u64 command, ntfy; int ret; int i; - -@@ -1217,8 +1215,8 @@ static int ucsi_init(struct ucsi *ucsi) - } - - /* Enable basic notifications */ -- ucsi->ntfy = UCSI_ENABLE_NTFY_CMD_COMPLETE | UCSI_ENABLE_NTFY_ERROR; -- command = UCSI_SET_NOTIFICATION_ENABLE | ucsi->ntfy; -+ ntfy = UCSI_ENABLE_NTFY_CMD_COMPLETE | UCSI_ENABLE_NTFY_ERROR; -+ command = UCSI_SET_NOTIFICATION_ENABLE | ntfy; - ret = ucsi_send_command(ucsi, command, NULL, 0); - if (ret < 0) - goto err_reset; -@@ -1235,31 +1233,33 @@ static int ucsi_init(struct ucsi *ucsi) +@@ -1235,16 +1233,16 @@ static int ucsi_init(struct ucsi *ucsi) } /* Allocate the connectors. Released in ucsi_unregister() */ @@ -1118,18 +1230,12 @@ index 1cf8947c6d66..086b50968983 100644 if (ret) goto err_unregister; } - - /* Enable all notifications */ -- ucsi->ntfy = UCSI_ENABLE_NTFY_ALL; -- command = UCSI_SET_NOTIFICATION_ENABLE | ucsi->ntfy; -+ ntfy = UCSI_ENABLE_NTFY_ALL; -+ command = UCSI_SET_NOTIFICATION_ENABLE | ntfy; - ret = ucsi_send_command(ucsi, command, NULL, 0); +@@ -1256,11 +1254,12 @@ static int ucsi_init(struct ucsi *ucsi) if (ret < 0) goto err_unregister; + ucsi->connector = connector; -+ ucsi->ntfy = ntfy; + ucsi->ntfy = ntfy; return 0; err_unregister: @@ -1138,7 +1244,7 @@ index 1cf8947c6d66..086b50968983 100644 ucsi_unregister_partner(con); ucsi_unregister_altmodes(con, UCSI_RECIPIENT_CON); ucsi_unregister_port_psy(con); -@@ -1268,10 +1268,7 @@ static int ucsi_init(struct ucsi *ucsi) +@@ -1269,10 +1268,7 @@ static int ucsi_init(struct ucsi *ucsi) typec_unregister_port(con->port); con->port = NULL; } @@ -1150,41 +1256,50 @@ index 1cf8947c6d66..086b50968983 100644 err_reset: memset(&ucsi->cap, 0, sizeof(ucsi->cap)); ucsi_reset_ppm(ucsi); -diff --git a/drivers/usb/typec/ucsi/ucsi_acpi.c b/drivers/usb/typec/ucsi/ucsi_acpi.c -index ce0c8ef80c04..62206a6b8ea7 100644 ---- a/drivers/usb/typec/ucsi/ucsi_acpi.c -+++ b/drivers/usb/typec/ucsi/ucsi_acpi.c -@@ -78,7 +78,7 @@ static int ucsi_acpi_sync_write(struct ucsi *ucsi, unsigned int offset, - if (ret) - goto out_clear_bit; - -- if (!wait_for_completion_timeout(&ua->complete, HZ)) -+ if (!wait_for_completion_timeout(&ua->complete, 5 * HZ)) - ret = -ETIMEDOUT; - - out_clear_bit: -diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c -index f7e4a88d5d92..e28dd6475e39 100644 ---- a/fs/nfs/dir.c -+++ b/fs/nfs/dir.c -@@ -3089,7 +3089,6 @@ static void nfs_access_add_rbtree(struct inode *inode, - else - goto found; +diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c +index 7e348bd2ccde..c232636ecdfe 100644 +--- a/fs/btrfs/ioctl.c ++++ b/fs/btrfs/ioctl.c +@@ -3731,7 +3731,9 @@ static long btrfs_ioctl_qgroup_assign(struct file *file, void __user *arg) } -- set->timestamp = ktime_get_ns(); - rb_link_node(&set->rb_node, parent, p); - rb_insert_color(&set->rb_node, root_node); - list_add_tail(&set->lru, &nfsi->access_cache_entry_lru); -@@ -3114,6 +3113,7 @@ void nfs_access_add_cache(struct inode *inode, struct nfs_access_entry *set, - cache->fsgid = cred->fsgid; - cache->group_info = get_group_info(cred->group_info); - cache->mask = set->mask; -+ cache->timestamp = ktime_get_ns(); - /* The above field assignments must be visible - * before this item appears on the lru. We cannot easily + /* update qgroup status and info */ ++ mutex_lock(&fs_info->qgroup_ioctl_lock); + err = btrfs_run_qgroups(trans); ++ mutex_unlock(&fs_info->qgroup_ioctl_lock); + if (err < 0) + btrfs_handle_fs_error(fs_info, err, + "failed to update qgroup status and info"); +diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c +index af97413abcf4..abf2b7f14307 100644 +--- a/fs/btrfs/qgroup.c ++++ b/fs/btrfs/qgroup.c +@@ -2828,13 +2828,22 @@ int btrfs_qgroup_account_extents(struct btrfs_trans_handle *trans) + } + + /* +- * called from commit_transaction. Writes all changed qgroups to disk. ++ * Writes all changed qgroups to disk. ++ * Called by the transaction commit path and the qgroup assign ioctl. + */ + int btrfs_run_qgroups(struct btrfs_trans_handle *trans) + { + struct btrfs_fs_info *fs_info = trans->fs_info; + int ret = 0; + ++ /* ++ * In case we are called from the qgroup assign ioctl, assert that we ++ * are holding the qgroup_ioctl_lock, otherwise we can race with a quota ++ * disable operation (ioctl) and access a freed quota root. ++ */ ++ if (trans->transaction->state != TRANS_STATE_COMMIT_DOING) ++ lockdep_assert_held(&fs_info->qgroup_ioctl_lock); ++ + if (!fs_info->quota_root) + return ret; + diff --git a/include/linux/efi.h b/include/linux/efi.h -index 98598bd1d2fa..34a6233fabaf 100644 +index ac22f7ca195a..e680835ad387 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h @@ -43,6 +43,8 @@ @@ -1196,7 +1311,7 @@ index 98598bd1d2fa..34a6233fabaf 100644 typedef unsigned long efi_status_t; typedef u8 efi_bool_t; typedef u16 efi_char16_t; /* UNICODE character */ -@@ -851,6 +853,14 @@ extern int __init efi_setup_pcdp_console(char *); +@@ -852,6 +854,14 @@ extern int __init efi_setup_pcdp_console(char *); #define EFI_MEM_ATTR 10 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */ #define EFI_MEM_NO_SOFT_RESERVE 11 /* Is the kernel configured to ignore soft reservations? */ #define EFI_PRESERVE_BS_REGIONS 12 /* Are EFI boot-services memory segments available? */ @@ -1211,7 +1326,7 @@ index 98598bd1d2fa..34a6233fabaf 100644 #ifdef CONFIG_EFI /* -@@ -862,6 +872,8 @@ static inline bool efi_enabled(int feature) +@@ -863,6 +873,8 @@ static inline bool efi_enabled(int feature) } extern void efi_reboot(enum reboot_mode reboot_mode, const char *__unused); @@ -1220,7 +1335,7 @@ index 98598bd1d2fa..34a6233fabaf 100644 bool __pure __efi_soft_reserve_enabled(void); static inline bool __pure efi_soft_reserve_enabled(void) -@@ -883,6 +895,8 @@ static inline bool efi_enabled(int feature) +@@ -884,6 +896,8 @@ static inline bool efi_enabled(int feature) static inline void efi_reboot(enum reboot_mode reboot_mode, const char *__unused) {} @@ -1229,7 +1344,7 @@ index 98598bd1d2fa..34a6233fabaf 100644 static inline bool efi_soft_reserve_enabled(void) { return false; -@@ -897,6 +911,7 @@ static inline void efi_find_mirror(void) {} +@@ -898,6 +912,7 @@ static inline void efi_find_mirror(void) {} #endif extern int efi_status_to_err(efi_status_t status); @@ -1237,7 +1352,7 @@ index 98598bd1d2fa..34a6233fabaf 100644 /* * Variable Attributes -@@ -1099,13 +1114,6 @@ static inline bool efi_runtime_disabled(void) { return true; } +@@ -1100,13 +1115,6 @@ static inline bool efi_runtime_disabled(void) { return true; } extern void efi_call_virt_check_flags(unsigned long flags, const char *call); extern unsigned long efi_call_virt_save_flags(void); diff --git a/sources b/sources index 38e7f715c..e765d0f72 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (linux-6.2.8.tar.xz) = 7e7ab30dc4977f60cd97bfc035f99ce6d67ec1f5636c68b7239955e67b7b4681b3aed76a62258988cb2c87f7a3a4ca9d80f38dd86a9451f3a8a4b62dee418a23 -SHA512 (kernel-abi-stablelists-6.2.8.tar.bz2) = 4e5efb2e23401f5a96c8cdedeb8c1bcef89f1b17dc159878429bd9ee279cfc34c29aa20eda7fb90b3a8acd6521d67f5e9c4028abd7e69d518815634b0f9bd9aa -SHA512 (kernel-kabi-dw-6.2.8.tar.bz2) = 9c8f60cd5085ae4f0f804db31349e850e730614748f3177c0550bc9877b15cf4de11ad684414ff23071931dcd40fefe4b33f7425c619c6362c877bd56fb4788e +SHA512 (linux-6.2.9.tar.xz) = 826a125b2a8b6739e55ac739f2f3a909f016a6c512e84e9f4928aca40ba66ae2dd8711e6fe4e3f09809e4a7bd1717eca90fa87585c67a21704d9aa9ffc02f0ed +SHA512 (kernel-abi-stablelists-6.2.9.tar.bz2) = 3f14e56f382c468656415729ec563333998ca3581110e2c64fe482b6718f6d8bbd8a06e44910bcb1dd4a24cf98c05d62b1d01b088b510e095c5e766dd15c8864 +SHA512 (kernel-kabi-dw-6.2.9.tar.bz2) = 470efb441d4bb6688422ff20cf8ae2bc8d9bbc40bfd32a0fc1aa24f37ae71fc249e281142ce2c83b2330d067b15aa17e20153310ee0505a86c37ad2bf638367a