diff options
author | Eric Biggers <ebiggers@google.com> | 2023-07-05 14:27:42 -0700 |
---|---|---|
committer | Eric Biggers <ebiggers@google.com> | 2023-07-11 22:49:18 -0700 |
commit | e77000ccc531088c486fe5fbd13416fd5e3d2714 (patch) | |
tree | cc75f2c75caa4054a06635125884bf67210aa066 /fs/verity/verify.c | |
parent | 5d37a1198068b099de47073411efc087d1b555ca (diff) | |
download | lwn-e77000ccc531088c486fe5fbd13416fd5e3d2714.tar.gz lwn-e77000ccc531088c486fe5fbd13416fd5e3d2714.zip |
fsverity: simplify handling of errors during initcall
Since CONFIG_FS_VERITY is a bool, not a tristate, fs/verity/ can only be
builtin or absent entirely; it can't be a loadable module. Therefore,
the error code that gets returned from the fsverity_init() initcall is
never used. If any part of the initcall does fail, which should never
happen, the kernel will be left in a bad state.
Following the usual convention for builtin code, just panic the kernel
if any of part of the initcall fails.
Link: https://lore.kernel.org/r/20230705212743.42180-2-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
Diffstat (limited to 'fs/verity/verify.c')
-rw-r--r-- | fs/verity/verify.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/fs/verity/verify.c b/fs/verity/verify.c index 433cef51f5f6..904ccd7e8e16 100644 --- a/fs/verity/verify.c +++ b/fs/verity/verify.c @@ -346,7 +346,7 @@ void fsverity_enqueue_verify_work(struct work_struct *work) } EXPORT_SYMBOL_GPL(fsverity_enqueue_verify_work); -int __init fsverity_init_workqueue(void) +void __init fsverity_init_workqueue(void) { /* * Use a high-priority workqueue to prioritize verification work, which @@ -360,12 +360,5 @@ int __init fsverity_init_workqueue(void) WQ_HIGHPRI, num_online_cpus()); if (!fsverity_read_workqueue) - return -ENOMEM; - return 0; -} - -void __init fsverity_exit_workqueue(void) -{ - destroy_workqueue(fsverity_read_workqueue); - fsverity_read_workqueue = NULL; + panic("failed to allocate fsverity_read_queue"); } |