Lines Matching +full:signal +full:- +full:guard
1 // SPDX-License-Identifier: GPL-2.0
4 * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
8 #include <linux/sched/signal.h>
15 #include <as-layout.h>
18 #include <stub-data.h>
28 struct mm_id *new_id = &mm->context.id; in init_new_context()
30 int ret = -ENOMEM; in init_new_context()
36 new_id->stack = stack; in init_new_context()
40 list_add(&mm->context.list, &mm_list); in init_new_context()
53 free_pages(new_id->stack, ilog2(STUB_DATA_PAGES)); in init_new_context()
60 struct mm_context *mmu = &mm->context; in destroy_context()
70 if (mmu->id.pid >= 0 && mmu->id.pid < 2) { in destroy_context()
71 printk(KERN_ERR "corrupt mm_context - pid = %d\n", in destroy_context()
72 mmu->id.pid); in destroy_context()
76 if (mmu->id.pid > 0) { in destroy_context()
77 os_kill_ptraced_process(mmu->id.pid, 1); in destroy_context()
78 mmu->id.pid = -1; in destroy_context()
81 if (using_seccomp && mmu->id.sock) in destroy_context()
82 os_close_file(mmu->id.sock); in destroy_context()
84 free_pages(mmu->id.stack, ilog2(STUB_DATA_PAGES)); in destroy_context()
86 guard(spinlock_irqsave)(&mm_list_lock); in destroy_context()
88 list_del(&mm->context.list); in destroy_context()
96 guard(spinlock)(&mm_list_lock); in mm_sigchld_irq()
106 if (mm_context->id.pid == pid) { in mm_sigchld_irq()
111 mm_context->id.pid = -1; in mm_sigchld_irq()
117 stub_data = (void *)mm_context->id.stack; in mm_sigchld_irq()
118 stub_data->futex = FUTEX_IN_KERN; in mm_sigchld_irq()