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 Mooreint 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 Mooreint 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 Mooreint 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