diff --git a/Patchlist.changelog b/Patchlist.changelog index ce381b26c..7e97c3c4a 100644 --- a/Patchlist.changelog +++ b/Patchlist.changelog @@ -1,3 +1,15 @@ +"https://gitlab.com/cki-project/kernel-ark/-/commit"/14005bf69741499a3df8cb2e74c0dc99c37e9438 + 14005bf69741499a3df8cb2e74c0dc99c37e9438 NFS: Correct timing for assigning access cache timestamp + +"https://gitlab.com/cki-project/kernel-ark/-/commit"/b7c0075f41aa13dc0ed14938e56f5d68e2956c21 + b7c0075f41aa13dc0ed14938e56f5d68e2956c21 usb: ucsi: Fix ucsi->connector race + +"https://gitlab.com/cki-project/kernel-ark/-/commit"/4e622b7d9003916c4aa60cc08fa035b18e4f3a4e + 4e622b7d9003916c4aa60cc08fa035b18e4f3a4e usb: ucsi_acpi: Increase the command completion timeout + +"https://gitlab.com/cki-project/kernel-ark/-/commit"/28d667bc40d7af758a6968e29f8a93be531696ab + 28d667bc40d7af758a6968e29f8a93be531696ab usb: ucsi: Fix NULL pointer deref in ucsi_connector_change() + "https://gitlab.com/cki-project/kernel-ark/-/commit"/7bc9c467e64c373fd366282769229b76379659ac 7bc9c467e64c373fd366282769229b76379659ac wifi: cfg80211: Fix use after free for wext diff --git a/kernel-aarch64-debug-fedora.config b/kernel-aarch64-debug-fedora.config index ccfdc0b3e..674b86dcc 100644 --- a/kernel-aarch64-debug-fedora.config +++ b/kernel-aarch64-debug-fedora.config @@ -4809,7 +4809,7 @@ CONFIG_NET_SCH_ETF=m CONFIG_NET_SCH_ETS=m CONFIG_NET_SCH_FQ_CODEL=y CONFIG_NET_SCH_FQ=m -# CONFIG_NET_SCH_FQ_PIE is not set +CONFIG_NET_SCH_FQ_PIE=m CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_HHF=m diff --git a/kernel-aarch64-fedora.config b/kernel-aarch64-fedora.config index f0074ca21..f6e1cb398 100644 --- a/kernel-aarch64-fedora.config +++ b/kernel-aarch64-fedora.config @@ -4789,7 +4789,7 @@ CONFIG_NET_SCH_ETF=m CONFIG_NET_SCH_ETS=m CONFIG_NET_SCH_FQ_CODEL=y CONFIG_NET_SCH_FQ=m -# CONFIG_NET_SCH_FQ_PIE is not set +CONFIG_NET_SCH_FQ_PIE=m CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_HHF=m diff --git a/kernel-armv7hl-debug-fedora.config b/kernel-armv7hl-debug-fedora.config index a78ee57e3..60271a5b2 100644 --- a/kernel-armv7hl-debug-fedora.config +++ b/kernel-armv7hl-debug-fedora.config @@ -4796,7 +4796,7 @@ CONFIG_NET_SCH_ETF=m CONFIG_NET_SCH_ETS=m CONFIG_NET_SCH_FQ_CODEL=y CONFIG_NET_SCH_FQ=m -# CONFIG_NET_SCH_FQ_PIE is not set +CONFIG_NET_SCH_FQ_PIE=m CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_HHF=m diff --git a/kernel-armv7hl-fedora.config b/kernel-armv7hl-fedora.config index 6397ec7e1..6110cb1a3 100644 --- a/kernel-armv7hl-fedora.config +++ b/kernel-armv7hl-fedora.config @@ -4778,7 +4778,7 @@ CONFIG_NET_SCH_ETF=m CONFIG_NET_SCH_ETS=m CONFIG_NET_SCH_FQ_CODEL=y CONFIG_NET_SCH_FQ=m -# CONFIG_NET_SCH_FQ_PIE is not set +CONFIG_NET_SCH_FQ_PIE=m CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_HHF=m diff --git a/kernel-armv7hl-lpae-debug-fedora.config b/kernel-armv7hl-lpae-debug-fedora.config index 4afba539d..0461e9e56 100644 --- a/kernel-armv7hl-lpae-debug-fedora.config +++ b/kernel-armv7hl-lpae-debug-fedora.config @@ -4699,7 +4699,7 @@ CONFIG_NET_SCH_ETF=m CONFIG_NET_SCH_ETS=m CONFIG_NET_SCH_FQ_CODEL=y CONFIG_NET_SCH_FQ=m -# CONFIG_NET_SCH_FQ_PIE is not set +CONFIG_NET_SCH_FQ_PIE=m CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_HHF=m diff --git a/kernel-armv7hl-lpae-fedora.config b/kernel-armv7hl-lpae-fedora.config index 0e2356467..586636723 100644 --- a/kernel-armv7hl-lpae-fedora.config +++ b/kernel-armv7hl-lpae-fedora.config @@ -4681,7 +4681,7 @@ CONFIG_NET_SCH_ETF=m CONFIG_NET_SCH_ETS=m CONFIG_NET_SCH_FQ_CODEL=y CONFIG_NET_SCH_FQ=m -# CONFIG_NET_SCH_FQ_PIE is not set +CONFIG_NET_SCH_FQ_PIE=m CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_HHF=m diff --git a/kernel-ppc64le-debug-fedora.config b/kernel-ppc64le-debug-fedora.config index 9c49dbf8e..1c38233cf 100644 --- a/kernel-ppc64le-debug-fedora.config +++ b/kernel-ppc64le-debug-fedora.config @@ -4035,7 +4035,7 @@ CONFIG_NET_SCH_ETF=m CONFIG_NET_SCH_ETS=m CONFIG_NET_SCH_FQ_CODEL=y CONFIG_NET_SCH_FQ=m -# CONFIG_NET_SCH_FQ_PIE is not set +CONFIG_NET_SCH_FQ_PIE=m CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_HHF=m diff --git a/kernel-ppc64le-fedora.config b/kernel-ppc64le-fedora.config index 1232358f7..fbc6958f0 100644 --- a/kernel-ppc64le-fedora.config +++ b/kernel-ppc64le-fedora.config @@ -4015,7 +4015,7 @@ CONFIG_NET_SCH_ETF=m CONFIG_NET_SCH_ETS=m CONFIG_NET_SCH_FQ_CODEL=y CONFIG_NET_SCH_FQ=m -# CONFIG_NET_SCH_FQ_PIE is not set +CONFIG_NET_SCH_FQ_PIE=m CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_HHF=m diff --git a/kernel-s390x-debug-fedora.config b/kernel-s390x-debug-fedora.config index 523a05322..887aadf54 100644 --- a/kernel-s390x-debug-fedora.config +++ b/kernel-s390x-debug-fedora.config @@ -4014,7 +4014,7 @@ CONFIG_NET_SCH_ETF=m CONFIG_NET_SCH_ETS=m CONFIG_NET_SCH_FQ_CODEL=y CONFIG_NET_SCH_FQ=m -# CONFIG_NET_SCH_FQ_PIE is not set +CONFIG_NET_SCH_FQ_PIE=m CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_HHF=m diff --git a/kernel-s390x-fedora.config b/kernel-s390x-fedora.config index b458fd563..8366a461b 100644 --- a/kernel-s390x-fedora.config +++ b/kernel-s390x-fedora.config @@ -3994,7 +3994,7 @@ CONFIG_NET_SCH_ETF=m CONFIG_NET_SCH_ETS=m CONFIG_NET_SCH_FQ_CODEL=y CONFIG_NET_SCH_FQ=m -# CONFIG_NET_SCH_FQ_PIE is not set +CONFIG_NET_SCH_FQ_PIE=m CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_HHF=m diff --git a/kernel-x86_64-debug-fedora.config b/kernel-x86_64-debug-fedora.config index 4baac6a75..a0ef84b0c 100644 --- a/kernel-x86_64-debug-fedora.config +++ b/kernel-x86_64-debug-fedora.config @@ -4342,7 +4342,7 @@ CONFIG_NET_SCH_ETF=m CONFIG_NET_SCH_ETS=m CONFIG_NET_SCH_FQ_CODEL=y CONFIG_NET_SCH_FQ=m -# CONFIG_NET_SCH_FQ_PIE is not set +CONFIG_NET_SCH_FQ_PIE=m CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_HHF=m diff --git a/kernel-x86_64-fedora.config b/kernel-x86_64-fedora.config index bdc3b50f9..8ff899ac8 100644 --- a/kernel-x86_64-fedora.config +++ b/kernel-x86_64-fedora.config @@ -4323,7 +4323,7 @@ CONFIG_NET_SCH_ETF=m CONFIG_NET_SCH_ETS=m CONFIG_NET_SCH_FQ_CODEL=y CONFIG_NET_SCH_FQ=m -# CONFIG_NET_SCH_FQ_PIE is not set +CONFIG_NET_SCH_FQ_PIE=m CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_HHF=m diff --git a/kernel.spec b/kernel.spec index 7dd8e0204..6363ef2e0 100755 --- a/kernel.spec +++ b/kernel.spec @@ -107,12 +107,13 @@ Summary: The Linux kernel %endif %ifarch x86_64 -%if 0%{?fedora} > 36 %global efiuki 1 -%endif %else %global efiuki 0 %endif +%if 0%{?fedora} < 37 +%global efiuki 0 +%endif %if %{zipmodules} %global zipsed -e 's/\.ko$/\.ko.xz/' @@ -147,17 +148,17 @@ Summary: The Linux kernel # the --with-release option overrides this setting.) %define debugbuildsenabled 1 # define buildid .local -%define specversion 6.2.6 +%define specversion 6.2.7 %define patchversion 6.2 %define pkgrelease 300 %define kversion 6 -%define tarfile_release 6.2.6 +%define tarfile_release 6.2.7 # 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.6 +%define kabiversion 6.2.7 # If this variable is set to 1, a bpf selftests build failure will cause a # fatal kernel package build error @@ -3345,6 +3346,17 @@ fi # # %changelog +* Fri Mar 17 2023 Justin M. Forbes [6.2.7-0] +- NFS: Correct timing for assigning access cache timestamp (Chengen Du) +- usb: ucsi: Fix ucsi->connector race (Hans de Goede) +- usb: ucsi_acpi: Increase the command completion timeout (Hans de Goede) +- usb: ucsi: Fix NULL pointer deref in ucsi_connector_change() (Hans de Goede) +- Enable CONFIG_NET_SCH_FQ_PIE for Fedora (Justin M. Forbes) +- Fix build issue with efiuki conditional (Justin M. Forbes) +- Move endif to correct location for efiuki conditional (Justin M. Forbes) +- EFI UKI revert now conditionalized in spec. Drop revert (Justin M. Forbes) +- Linux v6.2.7 + * Mon Mar 13 2023 Justin M. Forbes [6.2.6-0] - Add Fedora 37 and 36 to release targets (Justin M. Forbes) - wifi: cfg80211: Fix use after free for wext (Alexander Wetzel) diff --git a/patch-6.2-redhat.patch b/patch-6.2-redhat.patch index 54d6478ac..399e4fbf7 100644 --- a/patch-6.2-redhat.patch +++ b/patch-6.2-redhat.patch @@ -21,6 +21,9 @@ drivers/iommu/iommu.c | 22 + drivers/pci/quirks.c | 24 + drivers/usb/core/hub.c | 7 + + drivers/usb/typec/ucsi/ucsi.c | 33 +- + drivers/usb/typec/ucsi/ucsi_acpi.c | 2 +- + fs/nfs/dir.c | 2 +- include/linux/efi.h | 22 +- include/linux/lsm_hook_defs.h | 2 + include/linux/lsm_hooks.h | 6 + @@ -33,10 +36,10 @@ security/lockdown/Kconfig | 13 + security/lockdown/lockdown.c | 1 + security/security.c | 6 + - 35 files changed, 980 insertions(+), 177 deletions(-) + 38 files changed, 997 insertions(+), 197 deletions(-) diff --git a/Makefile b/Makefile -index 70e66e771608..f2acee86e2e0 100644 +index 43cf2c785cb1..f3441e6f1ed6 100644 --- a/Makefile +++ b/Makefile @@ -22,6 +22,10 @@ $(if $(filter __%, $(MAKECMDGOALS)), \ @@ -1028,6 +1031,137 @@ index 97a0f8faea6e..d837548d2024 100644 /* Lock the device, then check to see if we were * disconnected while waiting for the lock to succeed. */ usb_lock_device(hdev); +diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c +index 1cf8947c6d66..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) + return NULL; + } + +-static int ucsi_register_port(struct ucsi *ucsi, int index) ++static int ucsi_register_port(struct ucsi *ucsi, struct ucsi_connector *con) + { +- struct ucsi_connector *con = &ucsi->connector[index]; + struct typec_capability *cap = &con->typec_cap; + enum typec_accessory *accessory = cap->accessory; + enum usb_role u_role = USB_ROLE_NONE; +@@ -1062,7 +1061,6 @@ static int ucsi_register_port(struct ucsi *ucsi, int index) + init_completion(&con->complete); + mutex_init(&con->lock); + INIT_LIST_HEAD(&con->partner_tasks); +- con->num = index + 1; + con->ucsi = ucsi; + + cap->fwnode = ucsi_find_fwnode(con); +@@ -1204,8 +1202,8 @@ 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; + 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) + } + + /* Allocate the connectors. Released in ucsi_unregister() */ +- ucsi->connector = kcalloc(ucsi->cap.num_connectors + 1, +- sizeof(*ucsi->connector), GFP_KERNEL); +- if (!ucsi->connector) { ++ connector = kcalloc(ucsi->cap.num_connectors + 1, sizeof(*connector), GFP_KERNEL); ++ if (!connector) { + ret = -ENOMEM; + goto err_reset; + } + + /* Register all connectors */ + for (i = 0; i < ucsi->cap.num_connectors; i++) { +- ret = ucsi_register_port(ucsi, i); ++ connector[i].num = i + 1; ++ ret = ucsi_register_port(ucsi, &connector[i]); + 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); + if (ret < 0) + goto err_unregister; + ++ ucsi->connector = connector; ++ ucsi->ntfy = ntfy; + return 0; + + err_unregister: +- for (con = ucsi->connector; con->port; con++) { ++ for (con = connector; con->port; con++) { + 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) + typec_unregister_port(con->port); + con->port = NULL; + } +- +- kfree(ucsi->connector); +- ucsi->connector = NULL; +- ++ kfree(connector); + 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; + } +- 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 diff --git a/include/linux/efi.h b/include/linux/efi.h index 98598bd1d2fa..34a6233fabaf 100644 --- a/include/linux/efi.h diff --git a/sources b/sources index aa8ee09df..53afb8db9 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (linux-6.2.6.tar.xz) = 0420c3a03cc88d9becf35fa553e72e548b74a6879c8791d5f80492f510ec950066938b09c1e7c91c9628dbca24dc9ae956ae696edde30137f9e3817e409b4741 -SHA512 (kernel-abi-stablelists-6.2.6.tar.bz2) = 692cfd6e3b0013e2441de8a62feda280063bdd4c0d16202509afae5ea7b8dd93a87ef57013f75b41cbec35c304cc94fc5fe9994bb83b8bbdfcf1e5b2c6f3a8cd -SHA512 (kernel-kabi-dw-6.2.6.tar.bz2) = 05fb670b2a4c87e85712345639c133eabc1678d1de074ffac44c3bb4bc467f482441ab46a83119334afd6768d823278d1b3ea3faf9e7bfcc74b7bb6a39599373 +SHA512 (linux-6.2.7.tar.xz) = 8772cbcf960138de2826c91a86af4bbe2bc3013f4231c7a89592e32b064181267497d05c0e4df693823b701e169fd4da89c994dcaa787581a9bcdaf491940e60 +SHA512 (kernel-abi-stablelists-6.2.7.tar.bz2) = ebbd50801a327a6dc91133ada84663aa7199ee69a4f77db97bfd2955e324661dc5846d581b470f442c55c4d830c9e80ef4123b1bbec90682a1ba9c8f086fbcff +SHA512 (kernel-kabi-dw-6.2.7.tar.bz2) = 53d2a6e44a4dda0c33b8801c2eaeb5c91ee9aa7d71dfae2ea4b3cc8673dba278f83ccdc8e88bb2aed9ebd79b1c74ff5ca2345634f31b6e06c4018d535f46a9e3