public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/kernel] f45: kernel-7.2.3-300
@ 2026-09-02 13:51 Justin M. Forbes
  0 siblings, 0 replies; only message in thread
From: Justin M. Forbes @ 2026-09-02 13:51 UTC (permalink / raw)
  To: git-commits

            A new commit has been pushed.

            Repo   : rpms/kernel
            Branch : f45
            Commit : af2eda9f76f0355e8a0eefa4c744d0699ed0491d
            Author : Justin M. Forbes <jforbes@fedoraproject.org>
            Date   : 2026-09-02T07:50:52-06:00
            Stats  : +829/-22 in 5 file(s)
            URL    : https://src.fedoraproject.org/rpms/kernel/c/af2eda9f76f0355e8a0eefa4c744d0699ed0491d?branch=f45

            Log:
            kernel-7.2.3-300

* Wed Sep 02 2026 Justin M. Forbes <jforbes@fedoraproject.org> [7.2.3-0]
- Bluetooth: btusb: limit RTL8761B BROKEN_EXT_SCAN quirk to 0bda:a728 (Junjie Cao)
- ACPI: scan: Do not combine resources that overlap completely (Rafael J. Wysocki)
- ACPI: scan: Avoid registering platform devices with resource overlaps (Rafael J. Wysocki)
- page_pool: keep frag_offset aligned for odd-sized requests (Florian Schauer) [2521546 2521847]
- media: i2c: cvs: Pass link frequency explicitly to csi_set_link_cfg() (Laurent Pinchart)
- media: i2c: cvs: Add NVL ACPI ID (Arun T)
- media: i2c: cvs: Add IPU8 PCI device ID (Arun T)
- random: Drop the extrng module reference when import_ubuf() fails (Junjie Cao) [2524262]
- Add mechanism to back out the af_alg_restrict sysctl (Justin M. Forbes)
- crypto: af_alg - Stop after finding name in allowlist (Eric Biggers)
- crypto: af_alg - Replace 'bool privileged' with flags (Eric Biggers)
- crypto: af_alg - Make cbc(paes) privileged-only (Eric Biggers)
- crypto: af_alg - clean up kernel-doc warnings (Randy Dunlap)
- crypto: af_alg - Allow additional ciphers for cryptsetup (Eric Biggers)
- crypto: af_alg - Add af_alg_restrict sysctl, defaulting to 1 (Eric Biggers)
- Linux v7.2.3
Resolves: rhbz#2521546, rhbz#2521847, rhbz#2524262

Signed-off-by: Justin M. Forbes <jforbes@fedoraproject.org>

---
diff --git a/Patchlist.changelog b/Patchlist.changelog
index 37e92c5..6a6f2c3 100644
--- a/Patchlist.changelog
+++ b/Patchlist.changelog
@@ -1,3 +1,45 @@
+https://gitlab.com/cki-project/kernel-ark/-/commit/e8406125b1518ccea6da3a6d24c083d1266e86c2
+ e8406125b1518ccea6da3a6d24c083d1266e86c2 Bluetooth: btusb: limit RTL8761B BROKEN_EXT_SCAN quirk to 0bda:a728
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/6a286cd1edf4510f39fa76e9e9c74578dd6d066a
+ 6a286cd1edf4510f39fa76e9e9c74578dd6d066a ACPI: scan: Do not combine resources that overlap completely
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/c83e3a20e2c864a3a262a68715b003e34cd83693
+ c83e3a20e2c864a3a262a68715b003e34cd83693 ACPI: scan: Avoid registering platform devices with resource overlaps
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/a3cf371d7ad3947bc73d6fb68226f2cb93b4e703
+ a3cf371d7ad3947bc73d6fb68226f2cb93b4e703 page_pool: keep frag_offset aligned for odd-sized requests
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/16fd65fad1784d16d1e38ca90bf672fe6dbd3703
+ 16fd65fad1784d16d1e38ca90bf672fe6dbd3703 media: i2c: cvs: Pass link frequency explicitly to csi_set_link_cfg()
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/dd40a4985ebc29b4d1e12960b4e7cf715128722b
+ dd40a4985ebc29b4d1e12960b4e7cf715128722b media: i2c: cvs: Add NVL ACPI ID
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/2aafb1ce0a15a4453bcb2b6501e2b759c6558a7d
+ 2aafb1ce0a15a4453bcb2b6501e2b759c6558a7d media: i2c: cvs: Add IPU8 PCI device ID
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/2efed24569953e88ce1f9a6ed579a71bafece833
+ 2efed24569953e88ce1f9a6ed579a71bafece833 random: Drop the extrng module reference when import_ubuf() fails
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/e597dba8c0eb131768f5aa3498822d52c6cb356a
+ e597dba8c0eb131768f5aa3498822d52c6cb356a crypto: af_alg - Stop after finding name in allowlist
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/dfb9f20d58fe088049b7a4e5f7b0597fbe39a76d
+ dfb9f20d58fe088049b7a4e5f7b0597fbe39a76d crypto: af_alg - Replace 'bool privileged' with flags
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/9ce90cf073745eb142bfe1669e9b8f6625a763b6
+ 9ce90cf073745eb142bfe1669e9b8f6625a763b6 crypto: af_alg - Make cbc(paes) privileged-only
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/76bcc03f09041646f7bdcf3020b756b5bd8e09db
+ 76bcc03f09041646f7bdcf3020b756b5bd8e09db crypto: af_alg - clean up kernel-doc warnings
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/13d0095a68c6be26a179e14df996cab6be9ee9f1
+ 13d0095a68c6be26a179e14df996cab6be9ee9f1 crypto: af_alg - Allow additional ciphers for cryptsetup
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/e5a7d83cf810d0227ce161a6b2a94a1897f843ce
+ e5a7d83cf810d0227ce161a6b2a94a1897f843ce crypto: af_alg - Add af_alg_restrict sysctl, defaulting to 1
+
 https://gitlab.com/cki-project/kernel-ark/-/commit/d088d8766e390303a72e82a86d2970f17e6846df
  d088d8766e390303a72e82a86d2970f17e6846df redhat: Add DENYLIST.rhel to BPF selftests
 

diff --git a/kernel.changelog b/kernel.changelog
index 6d85e7e..1ac197f 100644
--- a/kernel.changelog
+++ b/kernel.changelog
@@ -1,3 +1,22 @@
+* Wed Sep 02 2026 Justin M. Forbes <jforbes@fedoraproject.org> [7.2.3-0]
+- Bluetooth: btusb: limit RTL8761B BROKEN_EXT_SCAN quirk to 0bda:a728 (Junjie Cao)
+- ACPI: scan: Do not combine resources that overlap completely (Rafael J. Wysocki)
+- ACPI: scan: Avoid registering platform devices with resource overlaps (Rafael J. Wysocki)
+- page_pool: keep frag_offset aligned for odd-sized requests (Florian Schauer) [2521546 2521847]
+- media: i2c: cvs: Pass link frequency explicitly to csi_set_link_cfg() (Laurent Pinchart)
+- media: i2c: cvs: Add NVL ACPI ID (Arun T)
+- media: i2c: cvs: Add IPU8 PCI device ID (Arun T)
+- random: Drop the extrng module reference when import_ubuf() fails (Junjie Cao) [2524262]
+- Add mechanism to back out the af_alg_restrict sysctl (Justin M. Forbes)
+- crypto: af_alg - Stop after finding name in allowlist (Eric Biggers)
+- crypto: af_alg - Replace 'bool privileged' with flags (Eric Biggers)
+- crypto: af_alg - Make cbc(paes) privileged-only (Eric Biggers)
+- crypto: af_alg - clean up kernel-doc warnings (Randy Dunlap)
+- crypto: af_alg - Allow additional ciphers for cryptsetup (Eric Biggers)
+- crypto: af_alg - Add af_alg_restrict sysctl, defaulting to 1 (Eric Biggers)
+- Linux v7.2.3
+Resolves: rhbz#2521546, rhbz#2521847, rhbz#2524262
+
 * Fri Aug 28 2026 Justin M. Forbes <jforbes@fedoraproject.org> [7.2.2-0]
 - Linux v7.2.2
 Resolves: 

diff --git a/kernel.spec b/kernel.spec
index c787b40..44fe405 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -192,18 +192,18 @@ Summary: The Linux kernel
 #  the --with-release option overrides this setting.)
 %define debugbuildsenabled 1
 # define buildid .local
-%define specrpmversion 7.2.2
-%define specversion 7.2.2
+%define specrpmversion 7.2.3
+%define specversion 7.2.3
 %define patchversion 7.2
 %define pkgrelease 300
 %define kversion 7
-%define tarfile_release 7.2.2
+%define tarfile_release 7.2.3
 # 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 7.2.2
+%define kabiversion 7.2.3
 
 # If this variable is set to 1, a bpf selftests build failure will cause a
 # fatal kernel package build error
@@ -4964,6 +4964,24 @@ fi\
 #
 #
 %changelog
+* Wed Sep 02 2026 Justin M. Forbes <jforbes@fedoraproject.org> [7.2.3-0]
+- Bluetooth: btusb: limit RTL8761B BROKEN_EXT_SCAN quirk to 0bda:a728 (Junjie Cao)
+- ACPI: scan: Do not combine resources that overlap completely (Rafael J. Wysocki)
+- ACPI: scan: Avoid registering platform devices with resource overlaps (Rafael J. Wysocki)
+- page_pool: keep frag_offset aligned for odd-sized requests (Florian Schauer) [2521546 2521847]
+- media: i2c: cvs: Pass link frequency explicitly to csi_set_link_cfg() (Laurent Pinchart)
+- media: i2c: cvs: Add NVL ACPI ID (Arun T)
+- media: i2c: cvs: Add IPU8 PCI device ID (Arun T)
+- random: Drop the extrng module reference when import_ubuf() fails (Junjie Cao) [2524262]
+- Add mechanism to back out the af_alg_restrict sysctl (Justin M. Forbes)
+- crypto: af_alg - Stop after finding name in allowlist (Eric Biggers)
+- crypto: af_alg - Replace 'bool privileged' with flags (Eric Biggers)
+- crypto: af_alg - Make cbc(paes) privileged-only (Eric Biggers)
+- crypto: af_alg - clean up kernel-doc warnings (Randy Dunlap)
+- crypto: af_alg - Allow additional ciphers for cryptsetup (Eric Biggers)
+- crypto: af_alg - Add af_alg_restrict sysctl, defaulting to 1 (Eric Biggers)
+- Linux v7.2.3
+
 * Fri Aug 28 2026 Justin M. Forbes <jforbes@fedoraproject.org> [7.2.2-0]
 - Linux v7.2.2
 

diff --git a/patch-7.2-redhat.patch b/patch-7.2-redhat.patch
index 2a034cd..250476a 100644
--- a/patch-7.2-redhat.patch
+++ b/patch-7.2-redhat.patch
@@ -1,3 +1,5 @@
+ Documentation/admin-guide/sysctl/crypto.rst        |  36 ++++++
+ Documentation/crypto/userspace-if.rst              |  13 ++-
  Makefile                                           |  30 +++++
  arch/arm/Kconfig                                   |   4 +-
  arch/arm64/Kconfig                                 |   2 +-
@@ -6,45 +8,133 @@
  arch/s390/kernel/ipl.c                             |   5 +
  arch/s390/kernel/setup.c                           |   4 +
  arch/x86/kernel/setup.c                            |  22 ++--
+ crypto/af_alg.c                                    |  76 +++++++++++-
  crypto/akcipher.c                                  |   3 +-
+ crypto/algif_aead.c                                |  11 ++
+ crypto/algif_hash.c                                |  24 ++++
+ crypto/algif_rng.c                                 |   9 ++
+ crypto/algif_skcipher.c                            |  27 ++++-
  crypto/dh.c                                        |  25 ++++
  crypto/seqiv.c                                     |  15 ++-
  crypto/sig.c                                       |   3 +-
  crypto/testmgr.c                                   |   6 +-
+ drivers/acpi/acpi_platform.c                       |  45 +++++++-
  drivers/acpi/apei/hest.c                           |   8 ++
  drivers/acpi/irq.c                                 |  17 ++-
  drivers/acpi/scan.c                                |   9 ++
  drivers/ata/libahci.c                              |  18 +++
+ drivers/bluetooth/btrtl.c                          |  13 ---
+ drivers/bluetooth/btusb.c                          |   8 ++
  drivers/char/ipmi/ipmi_dmi.c                       |  15 +++
  drivers/char/ipmi/ipmi_msghandler.c                |  16 ++-
- drivers/char/random.c                              | 126 ++++++++++++++++++++-
+ drivers/char/random.c                              | 128 ++++++++++++++++++++-
  drivers/firmware/efi/Makefile                      |   1 +
  drivers/firmware/efi/efi.c                         | 124 +++++++++++++++-----
  drivers/firmware/efi/libstub/fdt.c                 |   5 +
  drivers/firmware/efi/libstub/secureboot.c          |  14 ++-
- drivers/firmware/efi/secureboot.c                  |  38 +++++++
- drivers/hwtracing/coresight/coresight-etm4x-core.c |  19 ++++
+ drivers/firmware/efi/secureboot.c                  |  38 ++++++
+ drivers/hwtracing/coresight/coresight-etm4x-core.c |  19 +++
  drivers/iommu/iommu.c                              |  22 ++++
+ drivers/media/i2c/cvs/core.c                       |   3 +
+ drivers/media/i2c/cvs/icvs.h                       |   2 -
+ drivers/media/i2c/cvs/v4l2.c                       |  17 ++-
  drivers/pci/quirks.c                               |  24 ++++
  drivers/usb/core/hub.c                             |   7 ++
+ include/crypto/if_alg.h                            |  42 ++++---
  include/linux/crypto.h                             |   2 +
  include/linux/efi.h                                |  22 ++--
  include/linux/lsm_hook_defs.h                      |   1 +
  include/linux/random.h                             |  10 ++
  include/linux/security.h                           |   9 ++
  kernel/module/signing.c                            |   9 +-
+ net/core/page_pool.c                               |   3 +-
  scripts/Makefile.lib                               |   3 +
  scripts/tags.sh                                    |   2 +
  security/integrity/platform_certs/load_uefi.c      |   6 +-
  security/lockdown/Kconfig                          |  13 +++
  security/lockdown/lockdown.c                       |  11 ++
- tools/testing/selftests/bpf/DENYLIST.rhel          |  76 +++++++++++++
+ tools/testing/selftests/bpf/DENYLIST.rhel          |  76 ++++++++++++
  tools/testing/selftests/bpf/Makefile               |   2 +-
  tools/testing/selftests/bpf/prog_tests/ksyms_btf.c |  31 -----
- 43 files changed, 701 insertions(+), 106 deletions(-)
+ 58 files changed, 979 insertions(+), 159 deletions(-)
 
+diff --git a/Documentation/admin-guide/sysctl/crypto.rst b/Documentation/admin-guide/sysctl/crypto.rst
+index b707bd314a64..9a1bd53287f4 100644
+--- a/Documentation/admin-guide/sysctl/crypto.rst
++++ b/Documentation/admin-guide/sysctl/crypto.rst
+@@ -7,6 +7,42 @@ kernel configuration:
+ 
+ .. contents:: :local:
+ 
++.. _af_alg_restrict:
++
++af_alg_restrict
++===============
++
++Controls the level of restriction of AF_ALG.
++
++AF_ALG is a deprecated and rarely-used userspace interface that is a
++frequent source of vulnerabilities. It also unnecessarily exposes a
++large number of kernel implementation details. For more information
++about AF_ALG, see :ref:`Documentation/crypto/userspace-if.rst
++<crypto_userspace_interface>`.
++
++Starting in Linux v7.3, AF_ALG supports only a limited set of
++algorithms by default. This sysctl allows the system administrator to
++remove this restriction when needed for compatibility reasons, or to
++go further and disable AF_ALG entirely. The default value is 1.
++
++===  ==================================================================
++0    AF_ALG is unrestricted.
++
++1    AF_ALG is supported with a limited list of algorithms. The list
++     is designed for compatibility with known users such as iwd and
++     bluez that haven't yet been fixed to use userspace crypto code.
++
++     Specifically, there is an allowlist for unprivileged processes
++     and a somewhat longer allowlist for processes that hold
++     CAP_SYS_ADMIN or CAP_NET_ADMIN in the initial user namespace.
++
++     Attempts to bind() an AF_ALG socket with a disallowed algorithm
++     fail with ENOENT.
++
++2    AF_ALG is completely disabled. Attempts to create an AF_ALG
++     socket fail with EAFNOSUPPORT.
++===  ==================================================================
++
+ fips_enabled
+ ============
+ 
+diff --git a/Documentation/crypto/userspace-if.rst b/Documentation/crypto/userspace-if.rst
+index ab93300c8e04..d6194346e366 100644
+--- a/Documentation/crypto/userspace-if.rst
++++ b/Documentation/crypto/userspace-if.rst
+@@ -1,3 +1,5 @@
++.. _crypto_userspace_interface:
++
+ User Space Interface
+ ====================
+ 
+@@ -12,9 +14,14 @@ AF_ALG is insecure and is deprecated. Originally added to the kernel in 2010,
+ most kernel developers now consider it to be a mistake. Support for hardware
+ accelerators, which was the original purpose of AF_ALG, has been removed.
+ 
+-AF_ALG continues to be supported only for backwards compatibility. On systems
+-where no programs using AF_ALG remain, the support for it should be disabled by
+-disabling ``CONFIG_CRYPTO_USER_API_*``.
++AF_ALG continues to be supported only for backwards compatibility.
++
++Starting in Linux v7.3, the set of algorithms supported by AF_ALG is limited by
++default. See :ref:`/proc/sys/crypto/af_alg_restrict <af_alg_restrict>`.
++
++On systems where no programs using AF_ALG remain, the support for it should be
++disabled entirely by setting ``/proc/sys/crypto/af_alg_restrict`` to 2 or by
++disabling ``CONFIG_CRYPTO_USER_API_*`` in the kernel configuration.
+ 
+ Deprecation
+ -----------
 diff --git a/Makefile b/Makefile
-index ee964fb0c056..a579dc02a0fe 100644
+index 150b1c1d7bed..de832cf47e7b 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -358,6 +358,17 @@ ifneq ($(filter install,$(MAKECMDGOALS)),)
@@ -273,6 +363,140 @@ index 46882ce79c3a..9c73814c31e0 100644
  
  	reserve_initrd();
  
+diff --git a/crypto/af_alg.c b/crypto/af_alg.c
+index cce000e8590e..ab84c4488a15 100644
+--- a/crypto/af_alg.c
++++ b/crypto/af_alg.c
+@@ -8,6 +8,7 @@
+  */
+ 
+ #include <linux/atomic.h>
++#include <linux/capability.h>
+ #include <crypto/if_alg.h>
+ #include <linux/crypto.h>
+ #include <linux/init.h>
+@@ -22,10 +23,28 @@
+ #include <linux/sched/signal.h>
+ #include <linux/security.h>
+ #include <linux/string.h>
++#include <linux/sysctl.h>
++#include <linux/user_namespace.h>
+ #include <keys/user-type.h>
+ #include <keys/trusted-type.h>
+ #include <keys/encrypted-type.h>
+ 
++static int af_alg_restrict = 1;
++
++static const struct ctl_table af_alg_table[] = {
++	{
++		.procname       = "af_alg_restrict",
++		.data           = &af_alg_restrict,
++		.maxlen         = sizeof(int),
++		.mode           = 0644,
++		.proc_handler   = proc_dointvec_minmax,
++		.extra1		= SYSCTL_ZERO,
++		.extra2		= SYSCTL_TWO,
++	},
++};
++
++static struct ctl_table_header *af_alg_header;
++
+ struct alg_type_list {
+ 	const struct af_alg_type *type;
+ 	struct list_head list;
+@@ -110,6 +129,43 @@ int af_alg_unregister_type(const struct af_alg_type *type)
+ }
+ EXPORT_SYMBOL_GPL(af_alg_unregister_type);
+ 
++static bool af_alg_capable(void)
++{
++	return ns_capable_noaudit(&init_user_ns, CAP_NET_ADMIN) ||
++	       capable(CAP_SYS_ADMIN);
++}
++
++int af_alg_check_restriction(const char *name,
++			     const struct af_alg_allowlist_entry allowlist[])
++{
++	int level = READ_ONCE(af_alg_restrict);
++
++	if (level == 0)
++		return 0;
++	if (level == 1) {
++		for (const struct af_alg_allowlist_entry *ent = allowlist;
++		     ent->name; ent++) {
++			if (strcmp(name, ent->name) == 0) {
++				if ((ent->flags & AF_ALG_UNPRIVILEGED) ||
++				    af_alg_capable())
++					return 0;
++				/* List contains at most one entry per name. */
++				break;
++			}
++		}
++	}
++	/*
++	 * Use -ENOENT (the error code for "algorithm not found") instead of
++	 * -EACCES or -EPERM, for the highest chance of correctly triggering
++	 * fallback code paths in userspace programs.
++	 *
++	 * Don't log a warning, since it would be noisy.  iwd tries to bind a
++	 * bunch of algorithms that it never uses.
++	 */
++	return -ENOENT;
++}
++EXPORT_SYMBOL_GPL(af_alg_check_restriction);
++
+ static void alg_do_release(const struct af_alg_type *type, void *private)
+ {
+ 	if (!type)
+@@ -506,6 +562,9 @@ static int alg_create(struct net *net, struct socket *sock, int protocol,
+ 	struct sock *sk;
+ 	int err;
+ 
++	if (READ_ONCE(af_alg_restrict) == 2)
++		return -EAFNOSUPPORT;
++
+ 	if (sock->type != SOCK_SEQPACKET)
+ 		return -ESOCKTNOSUPPORT;
+ 	if (protocol != 0)
+@@ -1222,27 +1281,32 @@ EXPORT_SYMBOL_GPL(af_alg_get_rsgl);
+ 
+ static int __init af_alg_init(void)
+ {
+-	int err = proto_register(&alg_proto, 0);
++	int err;
++
++	af_alg_header = register_sysctl("crypto", af_alg_table);
+ 
++	err = proto_register(&alg_proto, 0);
+ 	if (err)
+-		goto out;
++		goto out_unregister_sysctl;
+ 
+ 	err = sock_register(&alg_family);
+-	if (err != 0)
++	if (err)
+ 		goto out_unregister_proto;
+ 
+-out:
+-	return err;
++	return 0;
+ 
+ out_unregister_proto:
+ 	proto_unregister(&alg_proto);
+-	goto out;
++out_unregister_sysctl:
++	unregister_sysctl_table(af_alg_header);
++	return err;
+ }
+ 
+ static void __exit af_alg_exit(void)
+ {
+ 	sock_unregister(PF_ALG);
+ 	proto_unregister(&alg_proto);
++	unregister_sysctl_table(af_alg_header);
+ }
+ 
+ module_init(af_alg_init);
 diff --git a/crypto/akcipher.c b/crypto/akcipher.c
 index 630bb19738be..8da7eedce31e 100644
 --- a/crypto/akcipher.c
@@ -287,6 +511,151 @@ index 630bb19738be..8da7eedce31e 100644
  	if (!alg->set_priv_key)
  		alg->set_priv_key = akcipher_default_set_key;
  
+diff --git a/crypto/algif_aead.c b/crypto/algif_aead.c
+index 787aac8aeb24..5574e2d70539 100644
+--- a/crypto/algif_aead.c
++++ b/crypto/algif_aead.c
+@@ -34,6 +34,11 @@
+ #include <linux/net.h>
+ #include <net/sock.h>
+ 
++static const struct af_alg_allowlist_entry aead_allowlist[] = {
++	{ "ccm(aes)" }, /* bluez */
++	{},
++};
++
+ static inline bool aead_sufficient_data(struct sock *sk)
+ {
+ 	struct alg_sock *ask = alg_sk(sk);
+@@ -344,6 +349,12 @@ static struct proto_ops algif_aead_ops_nokey = {
+ 
+ static void *aead_bind(const char *name)
+ {
++	int err;
++
++	err = af_alg_check_restriction(name, aead_allowlist);
++	if (err)
++		return ERR_PTR(err);
++
+ 	return crypto_alloc_aead(name, 0, AF_ALG_CRYPTOAPI_MASK);
+ }
+ 
+diff --git a/crypto/algif_hash.c b/crypto/algif_hash.c
+index 5452ad6c1506..6e8b5fb82a7f 100644
+--- a/crypto/algif_hash.c
++++ b/crypto/algif_hash.c
+@@ -16,6 +16,24 @@
+ #include <linux/net.h>
+ #include <net/sock.h>
+ 
++static const struct af_alg_allowlist_entry hash_allowlist[] = {
++	{ "cmac(aes)" }, /* iwd, bluez */
++	{ "hmac(md5)" }, /* iwd */
++	{ "hmac(sha1)" }, /* iwd */
++	{ "hmac(sha224)" }, /* iwd */
++	{ "hmac(sha256)" }, /* iwd */
++	{ "hmac(sha384)" }, /* iwd */
++	{ "hmac(sha512)" }, /* iwd, sha512hmac */
++	{ "md4" }, /* iwd */
++	{ "md5" }, /* iwd */
++	{ "sha1", AF_ALG_UNPRIVILEGED }, /* iwd, iproute2 < 7.0 */
++	{ "sha224" }, /* iwd */
++	{ "sha256" }, /* iwd */
++	{ "sha384" }, /* iwd */
++	{ "sha512" }, /* iwd */
++	{},
++};
++
+ struct hash_ctx {
+ 	struct af_alg_sgl sgl;
+ 
+@@ -382,6 +400,12 @@ static struct proto_ops algif_hash_ops_nokey = {
+ 
+ static void *hash_bind(const char *name)
+ {
++	int err;
++
++	err = af_alg_check_restriction(name, hash_allowlist);
++	if (err)
++		return ERR_PTR(err);
++
+ 	return crypto_alloc_ahash(name, 0, AF_ALG_CRYPTOAPI_MASK);
+ }
+ 
+diff --git a/crypto/algif_rng.c b/crypto/algif_rng.c
+index 4dfe7899f8fa..bd522915d56d 100644
+--- a/crypto/algif_rng.c
++++ b/crypto/algif_rng.c
+@@ -50,6 +50,10 @@ MODULE_LICENSE("GPL");
+ MODULE_AUTHOR("Stephan Mueller <smueller@chronox.de>");
+ MODULE_DESCRIPTION("User-space interface for random number generators");
+ 
++static const struct af_alg_allowlist_entry rng_allowlist[] = {
++	{},
++};
++
+ struct rng_ctx {
+ #define MAXSIZE 128
+ 	unsigned int len;
+@@ -201,6 +205,11 @@ static void *rng_bind(const char *name)
+ {
+ 	struct rng_parent_ctx *pctx;
+ 	struct crypto_rng *rng;
++	int err;
++
++	err = af_alg_check_restriction(name, rng_allowlist);
++	if (err)
++		return ERR_PTR(err);
+ 
+ 	pctx = kzalloc_obj(*pctx);
+ 	if (!pctx)
+diff --git a/crypto/algif_skcipher.c b/crypto/algif_skcipher.c
+index 035fed7db81f..d469a3ec1491 100644
+--- a/crypto/algif_skcipher.c
++++ b/crypto/algif_skcipher.c
+@@ -35,6 +35,24 @@
+ #include <linux/string.h>
+ #include <net/sock.h>
+ 
++static const struct af_alg_allowlist_entry skcipher_allowlist[] = {
++	{ "adiantum(xchacha12,aes)", AF_ALG_UNPRIVILEGED }, /* cryptsetup */
++	{ "adiantum(xchacha20,aes)", AF_ALG_UNPRIVILEGED }, /* cryptsetup */
++	{ "cbc(aes)" }, /* iwd */
++	{ "cbc(des)" }, /* iwd */
++	{ "cbc(des3_ede)" }, /* iwd */
++	{ "cbc(paes)" }, /* caam and others */
++	{ "ctr(aes)" }, /* iwd */
++	{ "ecb(aes)" }, /* iwd, bluez */
++	{ "ecb(des)" }, /* iwd */
++	{ "hctr2(aes)", AF_ALG_UNPRIVILEGED }, /* cryptsetup */
++	{ "xts(aes)", AF_ALG_UNPRIVILEGED }, /* cryptsetup benchmark */
++	{ "xts(camellia)", AF_ALG_UNPRIVILEGED }, /* cryptsetup */
++	{ "xts(serpent)", AF_ALG_UNPRIVILEGED }, /* cryptsetup */
++	{ "xts(twofish)", AF_ALG_UNPRIVILEGED }, /* cryptsetup */
++	{},
++};
++
+ static int skcipher_sendmsg(struct socket *sock, struct msghdr *msg,
+ 			    size_t size)
+ {
+@@ -310,12 +328,13 @@ static struct proto_ops algif_skcipher_ops_nokey = {
+ 
+ static void *skcipher_bind(const char *name)
+ {
+-	u32 mask = AF_ALG_CRYPTOAPI_MASK;
++	int err;
+ 
+-	if (strcmp(name, "cbc(paes)") == 0)
+-		mask = 0;
++	err = af_alg_check_restriction(name, skcipher_allowlist);
++	if (err)
++		return ERR_PTR(err);
+ 
+-	return crypto_alloc_skcipher(name, 0, mask);
++	return crypto_alloc_skcipher(name, 0, AF_ALG_CRYPTOAPI_MASK);
+ }
+ 
+ static void skcipher_release(void *private)
 diff --git a/crypto/dh.c b/crypto/dh.c
 index 7ad4768716c8..01ccc24db074 100644
 --- a/crypto/dh.c
@@ -411,6 +780,78 @@ index 4958211fbfa9..ee6d34885696 100644
  		.suite = {
  			.kpp = __VECS(ecdh_p384_tv_template)
  		}
+diff --git a/drivers/acpi/acpi_platform.c b/drivers/acpi/acpi_platform.c
+index a09636a4168e..e3c77a65f61c 100644
+--- a/drivers/acpi/acpi_platform.c
++++ b/drivers/acpi/acpi_platform.c
+@@ -12,6 +12,7 @@
+ #include <linux/bits.h>
+ #include <linux/device.h>
+ #include <linux/err.h>
++#include <linux/ioport.h>
+ #include <linux/kernel.h>
+ #include <linux/module.h>
+ #include <linux/dma-mapping.h>
+@@ -71,6 +72,42 @@ static struct notifier_block acpi_platform_notifier = {
+ 	.notifier_call = acpi_platform_device_remove_notify,
+ };
+ 
++static unsigned int acpi_platform_adjust_resources(struct acpi_device *adev,
++						   struct resource *new_res,
++						   struct resource *resources,
++						   unsigned int count)
++{
++	unsigned int i;
++
++	if (!(new_res->flags & (IORESOURCE_IO | IORESOURCE_MEM)))
++		return count;
++
++	for (i = 0; i < count; ) {
++		struct resource *res = &resources[i];
++
++		/*
++		 * Look for overlaps of resources of the same type that would
++		 * cause resource insertion to fail down the road.
++		 */
++		if (__resource_contains_unbound(res, new_res) ||
++		    __resource_contains_unbound(new_res, res) ||
++		    resource_type(new_res) != resource_type(res) ||
++		    !resource_union(new_res, res, new_res)) {
++			i++;
++			continue;
++		}
++
++		dev_info(&adev->dev, "%pR expanded due to overlap\n", new_res);
++		/*
++		 * Eliminate the previously processed resource that overlapped
++		 * with the new one because it is not necessary any more.
++		 */
++		memmove(res, res + 1, (--count - i) * sizeof(*res));
++	}
++
++	return count;
++}
++
+ static void acpi_platform_fill_resource(struct acpi_device *adev,
+ 	const struct resource *src, struct resource *dest)
+ {
+@@ -151,10 +188,14 @@ struct platform_device *acpi_create_platform_device(struct acpi_device *adev,
+ 				return ERR_PTR(-ENOMEM);
+ 			}
+ 			count = 0;
+-			list_for_each_entry(rentry, &resource_list, node)
++			list_for_each_entry(rentry, &resource_list, node) {
++				count = acpi_platform_adjust_resources(adev,
++								       rentry->res,
++								       resources,
++								       count);
+ 				acpi_platform_fill_resource(adev, rentry->res,
+ 							    &resources[count++]);
+-
++			}
+ 			acpi_dev_free_resource_list(&resource_list);
+ 		}
+ 	}
 diff --git a/drivers/acpi/apei/hest.c b/drivers/acpi/apei/hest.c
 index 20d757687e3d..90a13f20f052 100644
 --- a/drivers/acpi/apei/hest.c
@@ -522,6 +963,63 @@ index 6d72eb017b49..0a6701eb8d37 100644
  	/* wait for engine to stop. This could be as long as 500 msec */
  	tmp = ata_wait_register(ap, port_mmio + PORT_CMD,
  				PORT_CMD_LIST_ON, PORT_CMD_LIST_ON, 1, 500);
+diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c
+index 7f54d2d2d13a..03fa9409e3ee 100644
+--- a/drivers/bluetooth/btrtl.c
++++ b/drivers/bluetooth/btrtl.c
+@@ -1343,19 +1343,6 @@ void btrtl_set_quirks(struct hci_dev *hdev, struct btrtl_device_info *btrtl_dev)
+ 	if (!btrtl_dev->ic_info)
+ 		return;
+ 
+-	switch (btrtl_dev->project_id) {
+-	case CHIP_ID_8761B:
+-		/* RTL8761B/BU reports HCI version 5.1 but does not support
+-		 * the LE Extended Scan commands (Opcode 0x2042), causing
+-		 * repeated -EBUSY failures when BlueZ attempts extended
+-		 * scanning while a connection is active.
+-		 */
+-		hci_set_quirk(hdev, HCI_QUIRK_BROKEN_EXT_SCAN);
+-		break;
+-	default:
+-		break;
+-	}
+-
+ 	switch (btrtl_dev->ic_info->lmp_subver) {
+ 	case RTL_ROM_LMP_8703B:
+ 		/* 8723CS reports two pages for local ext features,
+diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
+index 184e95c1625e..adee77ebd9aa 100644
+--- a/drivers/bluetooth/btusb.c
++++ b/drivers/bluetooth/btusb.c
+@@ -67,6 +67,7 @@ static struct usb_driver btusb_driver;
+ #define BTUSB_INTEL_NO_WBS_SUPPORT	BIT(26)
+ #define BTUSB_ACTIONS_SEMI		BIT(27)
+ #define BTUSB_BARROT			BIT(28)
++#define BTUSB_BROKEN_EXT_SCAN		BIT(29)
+ 
+ static const struct usb_device_id btusb_table[] = {
+ 	/* Generic Bluetooth USB device */
+@@ -615,6 +616,10 @@ static const struct usb_device_id quirks_table[] = {
+ 	{ USB_DEVICE(0x0489, 0xe130), .driver_info = BTUSB_REALTEK |
+ 						     BTUSB_WIDEBAND_SPEECH },
+ 
++	/* Realtek 8761BU Bluetooth devices */
++	{ USB_DEVICE(0x0bda, 0xa728), .driver_info = BTUSB_REALTEK |
++						     BTUSB_BROKEN_EXT_SCAN },
++
+ 	/* Realtek Bluetooth devices */
+ 	{ USB_VENDOR_AND_INTERFACE_INFO(0x0bda, 0xe0, 0x01, 0x01),
+ 	  .driver_info = BTUSB_REALTEK },
+@@ -4366,6 +4371,9 @@ static int btusb_probe(struct usb_interface *intf,
+ 	if (id->driver_info & BTUSB_INVALID_LE_STATES)
+ 		hci_set_quirk(hdev, HCI_QUIRK_BROKEN_LE_STATES);
+ 
++	if (id->driver_info & BTUSB_BROKEN_EXT_SCAN)
++		hci_set_quirk(hdev, HCI_QUIRK_BROKEN_EXT_SCAN);
++
+ 	if (id->driver_info & BTUSB_DIGIANSWER) {
+ 		data->cmdreq_type = USB_TYPE_VENDOR;
+ 		hci_set_quirk(hdev, HCI_QUIRK_RESET_ON_CLOSE);
 diff --git a/drivers/char/ipmi/ipmi_dmi.c b/drivers/char/ipmi/ipmi_dmi.c
 index 505e32911c34..26f7ee0ccf40 100644
 --- a/drivers/char/ipmi/ipmi_dmi.c
@@ -584,7 +1082,7 @@ index ab4c85f3d6fe..92de1165f6ef 100644
  	rv = ipmi_register_driver();
  	mutex_unlock(&ipmi_interfaces_mutex);
 diff --git a/drivers/char/random.c b/drivers/char/random.c
-index b4da1fb976c1..1e112e2b405b 100644
+index b4da1fb976c1..7ff4dd4d9836 100644
 --- a/drivers/char/random.c
 +++ b/drivers/char/random.c
 @@ -51,9 +51,11 @@
@@ -659,7 +1157,7 @@ index b4da1fb976c1..1e112e2b405b 100644
  
  	if (flags & ~(GRND_NONBLOCK | GRND_RANDOM | GRND_INSECURE))
  		return -EINVAL;
-@@ -1392,6 +1417,21 @@ SYSCALL_DEFINE3(getrandom, char __user *, ubuf, size_t, len, unsigned int, flags
+@@ -1392,6 +1417,23 @@ SYSCALL_DEFINE3(getrandom, char __user *, ubuf, size_t, len, unsigned int, flags
  	if ((flags & (GRND_INSECURE | GRND_RANDOM)) == (GRND_INSECURE | GRND_RANDOM))
  		return -EINVAL;
  
@@ -671,8 +1169,10 @@ index b4da1fb976c1..1e112e2b405b 100644
 +
 +	if (rng) {
 +		ret = import_ubuf(ITER_DEST, ubuf, len, &iter);
-+		if (unlikely(ret))
++		if (unlikely(ret)) {
++			module_put(rng->owner);
 +			return ret;
++		}
 +		ret = rng->extrng_read_iter(&iter, !!(flags & GRND_RANDOM));
 +		module_put(rng->owner);
 +		return ret;
@@ -681,7 +1181,7 @@ index b4da1fb976c1..1e112e2b405b 100644
  	if (!crng_ready() && !(flags & GRND_INSECURE)) {
  		if (flags & GRND_NONBLOCK)
  			return -EAGAIN;
-@@ -1412,6 +1452,12 @@ static __poll_t random_poll(struct file *file, poll_table *wait)
+@@ -1412,6 +1454,12 @@ static __poll_t random_poll(struct file *file, poll_table *wait)
  	return crng_ready() ? EPOLLIN | EPOLLRDNORM : EPOLLOUT | EPOLLWRNORM;
  }
  
@@ -694,7 +1194,7 @@ index b4da1fb976c1..1e112e2b405b 100644
  static ssize_t write_pool_user(struct iov_iter *iter)
  {
  	u8 block[BLAKE2S_BLOCK_SIZE];
-@@ -1552,7 +1598,58 @@ static int random_fasync(int fd, struct file *filp, int on)
+@@ -1552,7 +1600,58 @@ static int random_fasync(int fd, struct file *filp, int on)
  	return fasync_helper(fd, filp, on, &fasync);
  }
  
@@ -753,7 +1253,7 @@ index b4da1fb976c1..1e112e2b405b 100644
  	.read_iter = random_read_iter,
  	.write_iter = random_write_iter,
  	.poll = random_poll,
-@@ -1565,6 +1662,7 @@ const struct file_operations random_fops = {
+@@ -1565,6 +1664,7 @@ const struct file_operations random_fops = {
  };
  
  const struct file_operations urandom_fops = {
@@ -761,7 +1261,7 @@ index b4da1fb976c1..1e112e2b405b 100644
  	.read_iter = urandom_read_iter,
  	.write_iter = random_write_iter,
  	.unlocked_ioctl = random_ioctl,
-@@ -1575,6 +1673,32 @@ const struct file_operations urandom_fops = {
+@@ -1575,6 +1675,32 @@ const struct file_operations urandom_fops = {
  	.splice_write = iter_file_splice_write,
  };
  
@@ -1138,6 +1638,118 @@ index e8f13dcebbde..dd7014ca962c 100644
  /**
   * iommu_setup_default_domain - Set the default_domain for the group
   * @group: Group to change
+diff --git a/drivers/media/i2c/cvs/core.c b/drivers/media/i2c/cvs/core.c
+index fe9e59ac311c..d4a3b9c3bab1 100644
+--- a/drivers/media/i2c/cvs/core.c
++++ b/drivers/media/i2c/cvs/core.c
+@@ -31,6 +31,7 @@
+ 
+ #define PCI_DEVICE_ID_INTEL_IPU7		0x645d	/* MTL / LNL */
+ #define PCI_DEVICE_ID_INTEL_IPU7P5		0xb05d	/* ARL / PTL */
++#define PCI_DEVICE_ID_INTEL_IPU8		0xd719	/* NVL */
+ 
+ /*
+  * IPU7 PCI device IDs not covered by ipu6_pci_tbl in ipu6-pci-table.h.
+@@ -39,6 +40,7 @@
+ static const struct pci_device_id icvs_ipu7_tbl[] = {
+ 	{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IPU7) },
+ 	{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IPU7P5) },
++	{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IPU8) },
+ 	{ }
+ };
+ 
+@@ -962,6 +964,7 @@ static const struct acpi_device_id intel_cvs_acpi_match[] = {
+ 	{ "INTC10DE" }, /* LNL */
+ 	{ "INTC10E0" }, /* ARL */
+ 	{ "INTC10E1" }, /* PTL */
++	{ "INTC10FA" }, /* NVL */
+ 	{ }
+ };
+ MODULE_DEVICE_TABLE(acpi, intel_cvs_acpi_match);
+diff --git a/drivers/media/i2c/cvs/icvs.h b/drivers/media/i2c/cvs/icvs.h
+index cfa8ef5d975c..17beb0920dd2 100644
+--- a/drivers/media/i2c/cvs/icvs.h
++++ b/drivers/media/i2c/cvs/icvs.h
+@@ -432,7 +432,6 @@ enum icvs_state {
+  * @freq_ctrl: (future) frequency control pointer
+  * @pads: Local media pads (sink/source)
+  * @nr_of_lanes: Active CSI-2 lane count
+- * @link_freq: Current link frequency (Hz)
+  * @ipu_link: PM runtime device link (IPU consumer, CVS supplier)
+  * @res: Resource capability (light/full)
+  * @caps: Reported device protocol capabilities
+@@ -458,7 +457,6 @@ struct icvs {
+ 	struct v4l2_ctrl *freq_ctrl;
+ 	struct media_pad pads[ICVS_CSI_NUM_PADS];
+ 	u32 nr_of_lanes;
+-	u64 link_freq;
+ 	struct device_link *ipu_link;
+ 	enum icvs_resources res;
+ 	struct icvs_dev_capabilities caps;
+diff --git a/drivers/media/i2c/cvs/v4l2.c b/drivers/media/i2c/cvs/v4l2.c
+index 3a1ec0059ef7..9fadca7a3bee 100644
+--- a/drivers/media/i2c/cvs/v4l2.c
++++ b/drivers/media/i2c/cvs/v4l2.c
+@@ -46,6 +46,7 @@ static const struct v4l2_mbus_framefmt cvs_csi_format_mbus_default = {
+ /**
+  * csi_set_link_cfg - Program default CSI-2 link parameters
+  * @ctx: CVS device context
++ * @link_freq: Link frequency (Hz)
+  *
+  * Populates a HOST_SET_MIPI_CONFIG command using current lane count and
+  * link frequency, then submits it to the device.
+@@ -53,12 +54,12 @@ static const struct v4l2_mbus_framefmt cvs_csi_format_mbus_default = {
+  *
+  * Return: 0 on success or negative errno.
+  */
+-static int csi_set_link_cfg(struct icvs *ctx)
++static int csi_set_link_cfg(struct icvs *ctx, u64 link_freq)
+ {
+ 	struct icvs_cmd cmd = {
+ 		.cmd_id = cpu_to_be16(ICVS_HOST_SET_MIPI_CONFIG),
+ 		.param.conf.nr_of_lanes = ctx->nr_of_lanes,
+-		.param.conf.link_freq = ctx->link_freq,
++		.param.conf.link_freq = link_freq,
+ 	};
+ 	size_t cmd_size = sizeof(cmd.cmd_id) + sizeof(cmd.param.conf);
+ 
+@@ -91,7 +92,7 @@ static int cvs_csi_enable_streams(struct v4l2_subdev *sd,
+ 	struct v4l2_subdev *remote_sd =
+ 			    media_entity_to_v4l2_subdev(ctx->remote->entity);
+ 	struct device *dev = cvs_dev(ctx);
+-	s64 freq;
++	s64 link_freq;
+ 	int ret;
+ 
+ 	/* cvs_set_link_owner(ICVS_CSI_LINK_HOST) */
+@@ -99,15 +100,14 @@ static int cvs_csi_enable_streams(struct v4l2_subdev *sd,
+ 	if (ret < 0)
+ 		return ret;
+ 
+-	freq = v4l2_get_link_freq(ctx->remote, 0, 0);
+-	if (freq < 0) {
+-		ret = freq;
++	link_freq = v4l2_get_link_freq(ctx->remote, 0, 0);
++	if (link_freq < 0) {
++		ret = link_freq;
+ 		goto err_rpm_put;
+ 	}
+-	ctx->link_freq = freq;
+ 
+ 	if (ctx->i2c_client) {
+-		ret = csi_set_link_cfg(ctx);
++		ret = csi_set_link_cfg(ctx, link_freq);
+ 		if (ret < 0)
+ 			goto err_rpm_put_sync;
+ 	}
+@@ -345,7 +345,6 @@ static int cvs_csi_get_mbus_config(struct v4l2_subdev *sd, unsigned int pad,
+ 	if (freq < 0)
+ 		return -EINVAL;
+ 
+-	ctx->link_freq = freq;
+ 	cfg->link_freq = freq;
+ 
+ 	return 0;
 diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
 index b09f27f7846f..b54fe538511a 100644
 --- a/drivers/pci/quirks.c
@@ -1174,10 +1786,10 @@ index b09f27f7846f..b54fe538511a 100644
   * Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero)
   * class code.  Fix it.
 diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
-index d92bf887739d..039fd5620282 100644
+index 068c7bea3102..cecfac2b0bdc 100644
 --- a/drivers/usb/core/hub.c
 +++ b/drivers/usb/core/hub.c
-@@ -5902,6 +5902,13 @@ static void hub_event(struct work_struct *work)
+@@ -5907,6 +5907,13 @@ static void hub_event(struct work_struct *work)
  			(u16) hub->change_bits[0],
  			(u16) hub->event_bits[0]);
  
@@ -1191,6 +1803,108 @@ index d92bf887739d..039fd5620282 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/include/crypto/if_alg.h b/include/crypto/if_alg.h
+index 7643ba954125..0d51428c1da4 100644
+--- a/include/crypto/if_alg.h
++++ b/include/crypto/if_alg.h
+@@ -8,6 +8,7 @@
+ #ifndef _CRYPTO_IF_ALG_H
+ #define _CRYPTO_IF_ALG_H
+ 
++#include <linux/bits.h>
+ #include <linux/compiler.h>
+ #include <linux/completion.h>
+ #include <linux/if_alg.h>
+@@ -121,7 +122,7 @@ struct af_alg_async_req {
+  * @iv:			IV for cipher operation
+  * @state:		Existing state for continuing operation
+  * @aead_assoclen:	Length of AAD for AEAD cipher operations
+- * @completion:		Work queue for synchronous operation
++ * @wait:		For waiting for completion of async crypto ops
+  * @used:		TX bytes sent to kernel. This variable is used to
+  *			ensure that user space cannot cause the kernel
+  *			to allocate too much memory in sendmsg operation.
+@@ -161,9 +162,20 @@ struct af_alg_ctx {
+ 	unsigned int inflight;
+ };
+ 
++/* Flags for af_alg_allowlist_entry::flags: */
++#define AF_ALG_UNPRIVILEGED BIT(0) /* Unprivileged use is allowed */
++
++struct af_alg_allowlist_entry {
++	const char *name;
++	u32 flags;
++};
++
+ int af_alg_register_type(const struct af_alg_type *type);
+ int af_alg_unregister_type(const struct af_alg_type *type);
+ 
++int af_alg_check_restriction(const char *name,
++			     const struct af_alg_allowlist_entry allowlist[]);
++
+ int af_alg_release(struct socket *sock);
+ void af_alg_release_parent(struct sock *sk);
+ int af_alg_accept(struct sock *sk, struct socket *newsock,
+@@ -177,10 +189,11 @@ static inline struct alg_sock *alg_sk(struct sock *sk)
+ }
+ 
+ /**
+- * Size of available buffer for sending data from user space to kernel.
++ * af_alg_sndbuf - Size of available buffer for sending data from user space to kernel.
+  *
+- * @sk socket of connection to user space
+- * @return number of bytes still available
++ * @sk: socket of connection to user space
++ *
++ * Returns: number of bytes still available
+  */
+ static inline int af_alg_sndbuf(struct sock *sk)
+ {
+@@ -192,10 +205,11 @@ static inline int af_alg_sndbuf(struct sock *sk)
+ }
+ 
+ /**
+- * Can the send buffer still be written to?
++ * af_alg_writable - Can the send buffer still be written to?
++ *
++ * @sk: socket of connection to user space
+  *
+- * @sk socket of connection to user space
+- * @return true => writable, false => not writable
++ * Returns: true => writable, false => not writable
+  */
+ static inline bool af_alg_writable(struct sock *sk)
+ {
+@@ -203,10 +217,11 @@ static inline bool af_alg_writable(struct sock *sk)
+ }
+ 
+ /**
+- * Size of available buffer used by kernel for the RX user space operation.
++ * af_alg_rcvbuf - Size of available buffer used by kernel for the RX user space operation.
+  *
+- * @sk socket of connection to user space
+- * @return number of bytes still available
++ * @sk: socket of connection to user space
++ *
++ * Returns: number of bytes still available
+  */
+ static inline int af_alg_rcvbuf(struct sock *sk)
+ {
+@@ -218,10 +233,11 @@ static inline int af_alg_rcvbuf(struct sock *sk)
+ }
+ 
+ /**
+- * Can the RX buffer still be written to?
++ * af_alg_readable - Can the RX buffer still be read from?
++ *
++ * @sk: socket of connection to user space
+  *
+- * @sk socket of connection to user space
+- * @return true => writable, false => not writable
++ * Returns: true => readable, false => not readable
+  */
+ static inline bool af_alg_readable(struct sock *sk)
+ {
 diff --git a/include/linux/crypto.h b/include/linux/crypto.h
 index b7c97f1c47c9..0a484f45b24a 100644
 --- a/include/linux/crypto.h
@@ -1353,6 +2067,20 @@ index 590ba29c85ab..02153d857531 100644
  }
  
  int module_sig_check(struct load_info *info, int flags)
+diff --git a/net/core/page_pool.c b/net/core/page_pool.c
+index 21dc4a9c8714..c8331e9cf5d9 100644
+--- a/net/core/page_pool.c
++++ b/net/core/page_pool.c
+@@ -1063,7 +1063,8 @@ netmem_ref page_pool_alloc_frag_netmem(struct page_pool *pool,
+ 	if (WARN_ON(size > max_size))
+ 		return 0;
+ 
+-	size = ALIGN(size, dma_get_cache_alignment());
++	size = ALIGN(size, max_t(unsigned int, dma_get_cache_alignment(),
++				 __alignof__(struct skb_shared_info)));
+ 	*offset = pool->frag_offset;
+ 
+ 	if (netmem && *offset + size > max_size) {
 diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
 index 0a4fdd8bd975..dcb12dad419f 100644
 --- a/scripts/Makefile.lib

diff --git a/sources b/sources
index a0d8841..e826d0a 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (linux-7.2.2.tar.xz) = 68317db0b38d12cc18fcfea9ff403172076ba347fcc8e09cd754c96a6f399848af11cdf2e4a1d66fae332c4f34a0e47f3c90adc91b8f20a9800a5c0497ceedb0
-SHA512 (kernel-abi-stablelists-7.2.2.tar.xz) = e90bf77d9ab78a91f1e98dfd19ccfcb3dac1c74735a79061d953b9db513be208f382f4f0761d70d12b150b6ca41e25140ee6b8cb4e2c96f8798e57ede1c155ad
-SHA512 (kernel-kabi-dw-7.2.2.tar.xz) = 12791da7c3fd756fab70a70fbd91b27fb7aa7fd6b46f59e3cd883fee0d1c36dbf2fba861088e60bf7519641c94bfedf11dbea51a60e490ade095219140ea569a
+SHA512 (linux-7.2.3.tar.xz) = 26f55349766553ede454e96253bd86280db21a11a1d1d3c1671b49e4afbaf4964cd976a8f9e983f1ab79a964159da3e4e57f210ce98ebbcc631f15afd4c1c18e
+SHA512 (kernel-abi-stablelists-7.2.3.tar.xz) = fcfcc48b32e1ec45b74ebcd1a0fd05f107d2fdba7a55bc6bbdff164e9fea30a0817282f0d2b8e7757cb9d711eb24c5f05356d324f2806b849d0874c09c192a03
+SHA512 (kernel-kabi-dw-7.2.3.tar.xz) = 3aa66a108e53cafc7de7316e68c79ec31fb522a69f85412cd4ae8768b1eb41ee39b268dafde8038fb89cc95e8c909a75fb5f62ead38ea5de3d6832cf0967ee54

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-02 13:51 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-02 13:51 [rpms/kernel] f45: kernel-7.2.3-300 Justin M. Forbes

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox