mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 08:33:17 +02:00
x86/virt/tdx: Use ida_is_empty() to detect if any TDs may be running
Drop nr_configured_hkid and instead use ida_is_empty() to detect if any HKIDs have been allocated/configured. Suggested-by: Dan Williams <dan.j.williams@intel.com> Reviewed-by: Dan Williams <dan.j.williams@intel.com> Reviewed-by: Chao Gao <chao.gao@intel.com> Tested-by: Chao Gao <chao.gao@intel.com> Tested-by: Sagi Shahar <sagis@google.com> Link: https://patch.msgid.link/20260214012702.2368778-15-seanjc@google.com Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
parent
eac90a5ba0
commit
afe31de159
|
|
@ -59,8 +59,6 @@ static LIST_HEAD(tdx_memlist);
|
|||
static struct tdx_sys_info tdx_sysinfo __ro_after_init;
|
||||
static bool tdx_module_initialized __ro_after_init;
|
||||
|
||||
static atomic_t nr_configured_hkid;
|
||||
|
||||
typedef void (*sc_err_func_t)(u64 fn, u64 err, struct tdx_module_args *args);
|
||||
|
||||
static inline void seamcall_err(u64 fn, u64 err, struct tdx_module_args *args)
|
||||
|
|
@ -191,7 +189,7 @@ static int tdx_offline_cpu(unsigned int cpu)
|
|||
int i;
|
||||
|
||||
/* No TD is running. Allow any cpu to be offline. */
|
||||
if (!atomic_read(&nr_configured_hkid))
|
||||
if (ida_is_empty(&tdx_guest_keyid_pool))
|
||||
goto done;
|
||||
|
||||
/*
|
||||
|
|
@ -1542,22 +1540,15 @@ EXPORT_SYMBOL_FOR_KVM(tdx_get_nr_guest_keyids);
|
|||
|
||||
int tdx_guest_keyid_alloc(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = ida_alloc_range(&tdx_guest_keyid_pool, tdx_guest_keyid_start,
|
||||
tdx_guest_keyid_start + tdx_nr_guest_keyids - 1,
|
||||
GFP_KERNEL);
|
||||
if (ret >= 0)
|
||||
atomic_inc(&nr_configured_hkid);
|
||||
|
||||
return ret;
|
||||
return ida_alloc_range(&tdx_guest_keyid_pool, tdx_guest_keyid_start,
|
||||
tdx_guest_keyid_start + tdx_nr_guest_keyids - 1,
|
||||
GFP_KERNEL);
|
||||
}
|
||||
EXPORT_SYMBOL_FOR_KVM(tdx_guest_keyid_alloc);
|
||||
|
||||
void tdx_guest_keyid_free(unsigned int keyid)
|
||||
{
|
||||
ida_free(&tdx_guest_keyid_pool, keyid);
|
||||
atomic_dec(&nr_configured_hkid);
|
||||
}
|
||||
EXPORT_SYMBOL_FOR_KVM(tdx_guest_keyid_free);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user