diff options
Diffstat (limited to 'security/security.c')
-rw-r--r-- | security/security.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/security/security.c b/security/security.c index 613a5c00e602..47e5849d7557 100644 --- a/security/security.c +++ b/security/security.c | |||
@@ -39,7 +39,7 @@ | |||
39 | #define LSM_COUNT (__end_lsm_info - __start_lsm_info) | 39 | #define LSM_COUNT (__end_lsm_info - __start_lsm_info) |
40 | 40 | ||
41 | struct security_hook_heads security_hook_heads __lsm_ro_after_init; | 41 | struct security_hook_heads security_hook_heads __lsm_ro_after_init; |
42 | static ATOMIC_NOTIFIER_HEAD(lsm_notifier_chain); | 42 | static BLOCKING_NOTIFIER_HEAD(blocking_lsm_notifier_chain); |
43 | 43 | ||
44 | static struct kmem_cache *lsm_file_cache; | 44 | static struct kmem_cache *lsm_file_cache; |
45 | static struct kmem_cache *lsm_inode_cache; | 45 | static struct kmem_cache *lsm_inode_cache; |
@@ -430,23 +430,26 @@ void __init security_add_hooks(struct security_hook_list *hooks, int count, | |||
430 | panic("%s - Cannot get early memory.\n", __func__); | 430 | panic("%s - Cannot get early memory.\n", __func__); |
431 | } | 431 | } |
432 | 432 | ||
433 | int call_lsm_notifier(enum lsm_event event, void *data) | 433 | int call_blocking_lsm_notifier(enum lsm_event event, void *data) |
434 | { | 434 | { |
435 | return atomic_notifier_call_chain(&lsm_notifier_chain, event, data); | 435 | return blocking_notifier_call_chain(&blocking_lsm_notifier_chain, |
436 | event, data); | ||
436 | } | 437 | } |
437 | EXPORT_SYMBOL(call_lsm_notifier); | 438 | EXPORT_SYMBOL(call_blocking_lsm_notifier); |
438 | 439 | ||
439 | int register_lsm_notifier(struct notifier_block *nb) | 440 | int register_blocking_lsm_notifier(struct notifier_block *nb) |
440 | { | 441 | { |
441 | return atomic_notifier_chain_register(&lsm_notifier_chain, nb); | 442 | return blocking_notifier_chain_register(&blocking_lsm_notifier_chain, |
443 | nb); | ||
442 | } | 444 | } |
443 | EXPORT_SYMBOL(register_lsm_notifier); | 445 | EXPORT_SYMBOL(register_blocking_lsm_notifier); |
444 | 446 | ||
445 | int unregister_lsm_notifier(struct notifier_block *nb) | 447 | int unregister_blocking_lsm_notifier(struct notifier_block *nb) |
446 | { | 448 | { |
447 | return atomic_notifier_chain_unregister(&lsm_notifier_chain, nb); | 449 | return blocking_notifier_chain_unregister(&blocking_lsm_notifier_chain, |
450 | nb); | ||
448 | } | 451 | } |
449 | EXPORT_SYMBOL(unregister_lsm_notifier); | 452 | EXPORT_SYMBOL(unregister_blocking_lsm_notifier); |
450 | 453 | ||
451 | /** | 454 | /** |
452 | * lsm_cred_alloc - allocate a composite cred blob | 455 | * lsm_cred_alloc - allocate a composite cred blob |