xref: /linux/security/lsm_notifier.c (revision 121cc35cfb55ab0bcf04c8ba6b364a0990eb2449)
1*a5e7c17cSPaul Moore // SPDX-License-Identifier: GPL-2.0-or-later
2*a5e7c17cSPaul Moore /*
3*a5e7c17cSPaul Moore  * LSM notifier functions
4*a5e7c17cSPaul Moore  *
5*a5e7c17cSPaul Moore  */
6*a5e7c17cSPaul Moore 
7*a5e7c17cSPaul Moore #include <linux/notifier.h>
8*a5e7c17cSPaul Moore #include <linux/security.h>
9*a5e7c17cSPaul Moore 
10*a5e7c17cSPaul Moore static BLOCKING_NOTIFIER_HEAD(blocking_lsm_notifier_chain);
11*a5e7c17cSPaul Moore 
call_blocking_lsm_notifier(enum lsm_event event,void * data)12*a5e7c17cSPaul Moore int call_blocking_lsm_notifier(enum lsm_event event, void *data)
13*a5e7c17cSPaul Moore {
14*a5e7c17cSPaul Moore 	return blocking_notifier_call_chain(&blocking_lsm_notifier_chain,
15*a5e7c17cSPaul Moore 					    event, data);
16*a5e7c17cSPaul Moore }
17*a5e7c17cSPaul Moore EXPORT_SYMBOL(call_blocking_lsm_notifier);
18*a5e7c17cSPaul Moore 
register_blocking_lsm_notifier(struct notifier_block * nb)19*a5e7c17cSPaul Moore int register_blocking_lsm_notifier(struct notifier_block *nb)
20*a5e7c17cSPaul Moore {
21*a5e7c17cSPaul Moore 	return blocking_notifier_chain_register(&blocking_lsm_notifier_chain,
22*a5e7c17cSPaul Moore 						nb);
23*a5e7c17cSPaul Moore }
24*a5e7c17cSPaul Moore EXPORT_SYMBOL(register_blocking_lsm_notifier);
25*a5e7c17cSPaul Moore 
unregister_blocking_lsm_notifier(struct notifier_block * nb)26*a5e7c17cSPaul Moore int unregister_blocking_lsm_notifier(struct notifier_block *nb)
27*a5e7c17cSPaul Moore {
28*a5e7c17cSPaul Moore 	return blocking_notifier_chain_unregister(&blocking_lsm_notifier_chain,
29*a5e7c17cSPaul Moore 						  nb);
30*a5e7c17cSPaul Moore }
31*a5e7c17cSPaul Moore EXPORT_SYMBOL(unregister_blocking_lsm_notifier);
32