Use AlmaLinux OS secure boot cert
Enable Btrfs support for all kernel variants
KVM: x86: check for invalid/obsolete root after making MMU pages available {CVE-2026-64561}
hpsa: bring back deprecated PCI ids #CFHack #CFHack2024
mptsas: bring back deprecated PCI ids #CFHack #CFHack2024
megaraid_sas: bring back deprecated PCI ids #CFHack #CFHack2024
qla2xxx: bring back deprecated PCI ids #CFHack #CFHack2024
qla4xxx: bring back deprecated PCI ids
be2iscsi: bring back deprecated PCI ids
kernel/rh_messages.h: enable all disabled pci devices by moving to unmaintained
gve: update QPL page registration logic to honor max_registered_pages (backport from upstream)
gve: enable reading max ring size from the device in DQO-QPL mode (backport from upstream)
68 lines
2.4 KiB
Diff
68 lines
2.4 KiB
Diff
From 67455700958bf8d6868d2ba366556948f36b17b1 Mon Sep 17 00:00:00 2001
|
|
From: Michal Schmidt <mschmidt@redhat.com>
|
|
Date: Mon, 22 Jun 2026 17:13:47 +0200
|
|
Subject: [PATCH] dpll: Prevent duplicate registrations
|
|
|
|
JIRA: https://redhat.atlassian.net/browse/RHEL-186631
|
|
|
|
commit f3ddbaaaaf4d0633b40482f471753f9c71294a4a
|
|
Author: Ivan Vecera <ivecera@redhat.com>
|
|
Date: Wed Jan 21 14:00:11 2026 +0100
|
|
|
|
dpll: Prevent duplicate registrations
|
|
|
|
Modify the internal registration helpers dpll_xa_ref_{dpll,pin}_add()
|
|
to reject duplicate registration attempts.
|
|
|
|
Previously, if a caller attempted to register the same pin multiple
|
|
times (with the same ops, priv, and cookie) on the same device, the core
|
|
silently increments the reference count and return success. This behavior
|
|
is incorrect because if the caller makes these duplicate registrations
|
|
then for the first one dpll_pin_registration is allocated and for others
|
|
the associated dpll_pin_ref.refcount is incremented. During the first
|
|
unregistration the associated dpll_pin_registration is freed and for
|
|
others WARN is fired.
|
|
|
|
Fix this by updating the logic to return `-EEXIST` if a matching
|
|
registration is found to enforce a strict "register once" policy.
|
|
|
|
Fixes: 9431063ad323 ("dpll: core: Add DPLL framework base functions")
|
|
Signed-off-by: Ivan Vecera <ivecera@redhat.com>
|
|
Reviewed-by: Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
|
|
Reviewed-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
|
|
Link: https://patch.msgid.link/20260121130012.112606-1-ivecera@redhat.com
|
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
|
|
Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
|
|
|
|
diff --git a/drivers/dpll/dpll_core.c b/drivers/dpll/dpll_core.c
|
|
index 8b260a3..f1b76fc 100644
|
|
--- a/drivers/dpll/dpll_core.c
|
|
+++ b/drivers/dpll/dpll_core.c
|
|
@@ -198,10 +198,8 @@ dpll_xa_ref_pin_add(struct xarray *xa_pins, struct dpll_pin *pin,
|
|
if (ref->pin != pin)
|
|
continue;
|
|
reg = dpll_pin_registration_find(ref, ops, priv, cookie);
|
|
- if (reg) {
|
|
- refcount_inc(&ref->refcount);
|
|
- return 0;
|
|
- }
|
|
+ if (reg)
|
|
+ return -EEXIST;
|
|
ref_exists = true;
|
|
break;
|
|
}
|
|
@@ -281,10 +279,8 @@ dpll_xa_ref_dpll_add(struct xarray *xa_dplls, struct dpll_device *dpll,
|
|
if (ref->dpll != dpll)
|
|
continue;
|
|
reg = dpll_pin_registration_find(ref, ops, priv, cookie);
|
|
- if (reg) {
|
|
- refcount_inc(&ref->refcount);
|
|
- return 0;
|
|
- }
|
|
+ if (reg)
|
|
+ return -EEXIST;
|
|
ref_exists = true;
|
|
break;
|
|
}
|