mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
platform-op/XSM: move resource-{,un}plug-core checks
Integrate the checking with flask_platform_op(); there never really was a
need to defer these checks, as the sub-op has always been known to the
function. As a positive side effect, permissions are then checked at the
same early point with and without Flask.
This is CVE-2026-62427 / part of XSA-499.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-By: Daniel P. Smith <dpsmith@apertussolutions.com>
(cherry picked from commit 4ef45cbe31)
This commit is contained in:
1 parent
edf749b7c3
commit
f1f45c8c32
2 files changed
+5
-20
No files matched your search
@@ -673,10 +673,6 @@ ret_t do_platform_op(
|
||||
{
|
||||
int cpu = op->u.cpu_ol.cpuid;
|
||||
|
||||
ret = xsm_resource_plug_core(XSM_HOOK);
|
||||
if ( ret )
|
||||
break;
|
||||
|
||||
if ( cpu >= nr_cpu_ids || !cpu_present(cpu) ||
|
||||
clocksource_is_tsc() )
|
||||
{
|
||||
@@ -699,10 +695,6 @@ ret_t do_platform_op(
|
||||
{
|
||||
int cpu = op->u.cpu_ol.cpuid;
|
||||
|
||||
ret = xsm_resource_unplug_core(XSM_HOOK);
|
||||
if ( ret )
|
||||
break;
|
||||
|
||||
if ( cpu == 0 )
|
||||
{
|
||||
ret = -EOPNOTSUPP;
|
||||
@@ -728,20 +720,12 @@ ret_t do_platform_op(
|
||||
break;
|
||||
|
||||
case XENPF_cpu_hotadd:
|
||||
ret = xsm_resource_plug_core(XSM_HOOK);
|
||||
if ( ret )
|
||||
break;
|
||||
|
||||
ret = cpu_add(op->u.cpu_add.apic_id,
|
||||
op->u.cpu_add.acpi_id,
|
||||
op->u.cpu_add.pxm);
|
||||
break;
|
||||
break;
|
||||
|
||||
case XENPF_mem_hotadd:
|
||||
ret = xsm_resource_plug_core(XSM_HOOK);
|
||||
if ( ret )
|
||||
break;
|
||||
|
||||
ret = memory_add(op->u.mem_add.spfn,
|
||||
op->u.mem_add.epfn,
|
||||
op->u.mem_add.pxm);
|
||||
|
||||
@@ -1554,12 +1554,13 @@ static int cf_check flask_platform_op(uint32_t op)
|
||||
switch ( op )
|
||||
{
|
||||
#ifdef CONFIG_X86
|
||||
/* These operations have their own XSM hooks */
|
||||
case XENPF_cpu_online:
|
||||
case XENPF_cpu_offline:
|
||||
case XENPF_cpu_hotadd:
|
||||
case XENPF_mem_hotadd:
|
||||
return 0;
|
||||
return flask_resource_plug_core();
|
||||
|
||||
case XENPF_cpu_offline:
|
||||
return flask_resource_unplug_core();
|
||||
#endif
|
||||
|
||||
case XENPF_settime32:
|
||||
|
||||