OSDN Git Service

x86/sgx: Break up long non-preemptible delays in sgx_vepc_release()
[tomoyo/tomoyo-test1.git] / arch / x86 / kernel / cpu / sgx / virt.c
index c3e37ea..7aaa365 100644 (file)
@@ -204,6 +204,7 @@ static int sgx_vepc_release(struct inode *inode, struct file *file)
                        continue;
 
                xa_erase(&vepc->page_array, index);
+               cond_resched();
        }
 
        /*
@@ -222,6 +223,7 @@ static int sgx_vepc_release(struct inode *inode, struct file *file)
                        list_add_tail(&epc_page->list, &secs_pages);
 
                xa_erase(&vepc->page_array, index);
+               cond_resched();
        }
 
        /*
@@ -243,6 +245,7 @@ static int sgx_vepc_release(struct inode *inode, struct file *file)
 
                if (sgx_vepc_free_page(epc_page))
                        list_add_tail(&epc_page->list, &secs_pages);
+               cond_resched();
        }
 
        if (!list_empty(&secs_pages))