Symbol: ne_enclave
drivers/virt/nitro_enclaves/ne_misc_dev.c
1013
list_add(&ne_mem_region->mem_region_list_entry, &ne_enclave->mem_regions_list);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1019
slot_add_mem_req.slot_uid = ne_enclave->slot_uid;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1039
ne_enclave->mem_size += slot_add_mem_req.size;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1040
ne_enclave->nr_mem_regions++;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1069
static int ne_start_enclave_ioctl(struct ne_enclave *ne_enclave,
drivers/virt/nitro_enclaves/ne_misc_dev.c
1079
if (!ne_enclave->nr_mem_regions) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
1086
if (ne_enclave->mem_size < NE_MIN_ENCLAVE_MEM_SIZE) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
1094
if (!ne_enclave->nr_vcpus) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
1101
for (i = 0; i < ne_enclave->nr_parent_vm_cores; i++)
drivers/virt/nitro_enclaves/ne_misc_dev.c
1102
for_each_cpu(cpu, ne_enclave->threads_per_core[i])
drivers/virt/nitro_enclaves/ne_misc_dev.c
1103
if (!cpumask_test_cpu(cpu, ne_enclave->vcpu_ids)) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
1112
enclave_start_req.slot_uid = ne_enclave->slot_uid;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1124
ne_enclave->state = NE_STATE_RUNNING;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1144
struct ne_enclave *ne_enclave = file->private_data;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1154
mutex_lock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1156
if (ne_enclave->state != NE_STATE_INIT) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
1160
mutex_unlock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1165
if (vcpu_id >= (ne_enclave->nr_parent_vm_cores *
drivers/virt/nitro_enclaves/ne_misc_dev.c
1166
ne_enclave->nr_threads_per_core)) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
1170
mutex_unlock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1177
rc = ne_get_cpu_from_cpu_pool(ne_enclave, &vcpu_id);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1183
mutex_unlock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1189
rc = ne_check_cpu_in_cpu_pool(ne_enclave, vcpu_id);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1195
mutex_unlock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1201
rc = ne_add_vcpu_ioctl(ne_enclave, vcpu_id);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1203
mutex_unlock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1208
mutex_unlock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1222
mutex_lock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1224
if (ne_enclave->state != NE_STATE_INIT) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
1228
mutex_unlock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1233
mutex_unlock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1266
mutex_lock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1268
if (ne_enclave->state != NE_STATE_INIT) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
1272
mutex_unlock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1277
rc = ne_set_user_memory_region_ioctl(ne_enclave, mem_region);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1279
mutex_unlock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1284
mutex_unlock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1346
mutex_lock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1348
if (ne_enclave->state != NE_STATE_INIT) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
1352
mutex_unlock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1357
rc = ne_start_enclave_ioctl(ne_enclave, &enclave_start_info);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1359
mutex_unlock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1364
mutex_unlock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1387
static void ne_enclave_remove_all_mem_region_entries(struct ne_enclave *ne_enclave)
drivers/virt/nitro_enclaves/ne_misc_dev.c
1394
&ne_enclave->mem_regions_list,
drivers/virt/nitro_enclaves/ne_misc_dev.c
1414
static void ne_enclave_remove_all_vcpu_id_entries(struct ne_enclave *ne_enclave)
drivers/virt/nitro_enclaves/ne_misc_dev.c
1421
for (i = 0; i < ne_enclave->nr_parent_vm_cores; i++) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
1422
for_each_cpu(cpu, ne_enclave->threads_per_core[i])
drivers/virt/nitro_enclaves/ne_misc_dev.c
1426
free_cpumask_var(ne_enclave->threads_per_core[i]);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1431
kfree(ne_enclave->threads_per_core);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1433
free_cpumask_var(ne_enclave->vcpu_ids);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1446
static void ne_pci_dev_remove_enclave_entry(struct ne_enclave *ne_enclave,
drivers/virt/nitro_enclaves/ne_misc_dev.c
1449
struct ne_enclave *ne_enclave_entry = NULL;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1450
struct ne_enclave *ne_enclave_entry_tmp = NULL;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1454
if (ne_enclave_entry->slot_uid == ne_enclave->slot_uid) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
1476
struct ne_enclave *ne_enclave = file->private_data;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1482
if (!ne_enclave)
drivers/virt/nitro_enclaves/ne_misc_dev.c
1489
if (!ne_enclave->slot_uid)
drivers/virt/nitro_enclaves/ne_misc_dev.c
1497
mutex_lock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1499
if (ne_enclave->state != NE_STATE_INIT && ne_enclave->state != NE_STATE_STOPPED) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
1500
enclave_stop_request.slot_uid = ne_enclave->slot_uid;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1515
slot_free_req.slot_uid = ne_enclave->slot_uid;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1527
ne_pci_dev_remove_enclave_entry(ne_enclave, ne_pci_dev);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1528
ne_enclave_remove_all_mem_region_entries(ne_enclave);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1529
ne_enclave_remove_all_vcpu_id_entries(ne_enclave);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1531
mutex_unlock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1534
kfree(ne_enclave);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1539
mutex_unlock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1557
struct ne_enclave *ne_enclave = file->private_data;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1559
poll_wait(file, &ne_enclave->eventq, wait);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1561
if (ne_enclave->has_event)
drivers/virt/nitro_enclaves/ne_misc_dev.c
1595
struct ne_enclave *ne_enclave = NULL;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1617
ne_enclave = kzalloc_obj(*ne_enclave);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1618
if (!ne_enclave)
drivers/virt/nitro_enclaves/ne_misc_dev.c
1623
ne_enclave->nr_parent_vm_cores = ne_cpu_pool.nr_parent_vm_cores;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1624
ne_enclave->nr_threads_per_core = ne_cpu_pool.nr_threads_per_core;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1625
ne_enclave->numa_node = ne_cpu_pool.numa_node;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1629
ne_enclave->threads_per_core = kzalloc_objs(*ne_enclave->threads_per_core,
drivers/virt/nitro_enclaves/ne_misc_dev.c
1630
ne_enclave->nr_parent_vm_cores);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1631
if (!ne_enclave->threads_per_core) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
1637
for (i = 0; i < ne_enclave->nr_parent_vm_cores; i++)
drivers/virt/nitro_enclaves/ne_misc_dev.c
1638
if (!zalloc_cpumask_var(&ne_enclave->threads_per_core[i], GFP_KERNEL)) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
1644
if (!zalloc_cpumask_var(&ne_enclave->vcpu_ids, GFP_KERNEL)) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
1660
enclave_file = anon_inode_getfile("ne-vm", &ne_enclave_fops, ne_enclave, O_RDWR);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1680
init_waitqueue_head(&ne_enclave->eventq);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1681
ne_enclave->has_event = false;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1682
mutex_init(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1683
ne_enclave->max_mem_regions = cmd_reply.mem_regions;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1684
INIT_LIST_HEAD(&ne_enclave->mem_regions_list);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1685
ne_enclave->mm = current->mm;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1686
ne_enclave->slot_uid = cmd_reply.slot_uid;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1687
ne_enclave->state = NE_STATE_INIT;
drivers/virt/nitro_enclaves/ne_misc_dev.c
1689
list_add(&ne_enclave->enclave_list_entry, &ne_pci_dev->enclaves_list);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1691
if (copy_to_user(slot_uid, &ne_enclave->slot_uid, sizeof(ne_enclave->slot_uid))) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
1713
free_cpumask_var(ne_enclave->vcpu_ids);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1714
for (i = 0; i < ne_enclave->nr_parent_vm_cores; i++)
drivers/virt/nitro_enclaves/ne_misc_dev.c
1715
free_cpumask_var(ne_enclave->threads_per_core[i]);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1716
kfree(ne_enclave->threads_per_core);
drivers/virt/nitro_enclaves/ne_misc_dev.c
1718
kfree(ne_enclave);
drivers/virt/nitro_enclaves/ne_misc_dev.c
479
static bool ne_donated_cpu(struct ne_enclave *ne_enclave, unsigned int cpu)
drivers/virt/nitro_enclaves/ne_misc_dev.c
481
if (cpumask_test_cpu(cpu, ne_enclave->vcpu_ids))
drivers/virt/nitro_enclaves/ne_misc_dev.c
526
static int ne_set_enclave_threads_per_core(struct ne_enclave *ne_enclave,
drivers/virt/nitro_enclaves/ne_misc_dev.c
545
if (core_id >= ne_enclave->nr_parent_vm_cores) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
553
cpumask_set_cpu(cpu, ne_enclave->threads_per_core[core_id]);
drivers/virt/nitro_enclaves/ne_misc_dev.c
572
static int ne_get_cpu_from_cpu_pool(struct ne_enclave *ne_enclave, u32 *vcpu_id)
drivers/virt/nitro_enclaves/ne_misc_dev.c
584
for (i = 0; i < ne_enclave->nr_parent_vm_cores; i++)
drivers/virt/nitro_enclaves/ne_misc_dev.c
585
for_each_cpu(cpu, ne_enclave->threads_per_core[i])
drivers/virt/nitro_enclaves/ne_misc_dev.c
586
if (!ne_donated_cpu(ne_enclave, cpu)) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
600
rc = ne_set_enclave_threads_per_core(ne_enclave, core_id, *vcpu_id);
drivers/virt/nitro_enclaves/ne_misc_dev.c
604
*vcpu_id = cpumask_any(ne_enclave->threads_per_core[core_id]);
drivers/virt/nitro_enclaves/ne_misc_dev.c
651
static int ne_check_cpu_in_cpu_pool(struct ne_enclave *ne_enclave, u32 vcpu_id)
drivers/virt/nitro_enclaves/ne_misc_dev.c
657
if (ne_donated_cpu(ne_enclave, vcpu_id)) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
668
for (i = 0; i < ne_enclave->nr_parent_vm_cores; i++)
drivers/virt/nitro_enclaves/ne_misc_dev.c
669
if (cpumask_test_cpu(vcpu_id, ne_enclave->threads_per_core[i]))
drivers/virt/nitro_enclaves/ne_misc_dev.c
681
rc = ne_set_enclave_threads_per_core(ne_enclave, core_id, vcpu_id);
drivers/virt/nitro_enclaves/ne_misc_dev.c
705
static int ne_add_vcpu_ioctl(struct ne_enclave *ne_enclave, u32 vcpu_id)
drivers/virt/nitro_enclaves/ne_misc_dev.c
712
if (ne_enclave->mm != current->mm)
drivers/virt/nitro_enclaves/ne_misc_dev.c
715
slot_add_vcpu_req.slot_uid = ne_enclave->slot_uid;
drivers/virt/nitro_enclaves/ne_misc_dev.c
728
cpumask_set_cpu(vcpu_id, ne_enclave->vcpu_ids);
drivers/virt/nitro_enclaves/ne_misc_dev.c
730
ne_enclave->nr_vcpus++;
drivers/virt/nitro_enclaves/ne_misc_dev.c
747
static int ne_sanity_check_user_mem_region(struct ne_enclave *ne_enclave,
drivers/virt/nitro_enclaves/ne_misc_dev.c
752
if (ne_enclave->mm != current->mm)
drivers/virt/nitro_enclaves/ne_misc_dev.c
778
list_for_each_entry(ne_mem_region, &ne_enclave->mem_regions_list,
drivers/virt/nitro_enclaves/ne_misc_dev.c
809
static int ne_sanity_check_user_mem_region_page(struct ne_enclave *ne_enclave,
drivers/virt/nitro_enclaves/ne_misc_dev.c
826
if (ne_enclave->numa_node != page_to_nid(mem_region_page)) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
829
ne_enclave->numa_node);
drivers/virt/nitro_enclaves/ne_misc_dev.c
914
static int ne_set_user_memory_region_ioctl(struct ne_enclave *ne_enclave,
drivers/virt/nitro_enclaves/ne_misc_dev.c
926
rc = ne_sanity_check_user_mem_region(ne_enclave, mem_region);
drivers/virt/nitro_enclaves/ne_misc_dev.c
975
rc = ne_sanity_check_user_mem_region_page(ne_enclave, ne_mem_region->pages[i]);
drivers/virt/nitro_enclaves/ne_misc_dev.c
990
if ((ne_enclave->nr_mem_regions + phys_contig_mem_regions.num) >
drivers/virt/nitro_enclaves/ne_misc_dev.c
991
ne_enclave->max_mem_regions) {
drivers/virt/nitro_enclaves/ne_misc_dev.c
994
ne_enclave->max_mem_regions);
drivers/virt/nitro_enclaves/ne_pci_dev.c
217
struct ne_enclave *ne_enclave = NULL;
drivers/virt/nitro_enclaves/ne_pci_dev.c
231
list_for_each_entry(ne_enclave, &ne_pci_dev->enclaves_list, enclave_list_entry) {
drivers/virt/nitro_enclaves/ne_pci_dev.c
232
mutex_lock(&ne_enclave->enclave_info_mutex);
drivers/virt/nitro_enclaves/ne_pci_dev.c
238
if (ne_enclave->state != NE_STATE_RUNNING)
drivers/virt/nitro_enclaves/ne_pci_dev.c
241
slot_info_req.slot_uid = ne_enclave->slot_uid;
drivers/virt/nitro_enclaves/ne_pci_dev.c
250
if (ne_enclave->state != cmd_reply.state) {
drivers/virt/nitro_enclaves/ne_pci_dev.c
251
ne_enclave->state = cmd_reply.state;
drivers/virt/nitro_enclaves/ne_pci_dev.c
253
ne_enclave->has_event = true;
drivers/virt/nitro_enclaves/ne_pci_dev.c
255
wake_up_interruptible(&ne_enclave->eventq);
drivers/virt/nitro_enclaves/ne_pci_dev.c
259
mutex_unlock(&ne_enclave->enclave_info_mutex);