brintos

brintos / linux-shallow public Read only

0
0
Text · 1.5 KiB · f440f0e Raw
70 lines · c
1// SPDX-License-Identifier: GPL-2.02/*3 * fs-verity module initialization and logging4 *5 * Copyright 2019 Google LLC6 */7 8#include "fsverity_private.h"9 10#include <linux/ratelimit.h>11 12#ifdef CONFIG_SYSCTL13static struct ctl_table fsverity_sysctl_table[] = {14#ifdef CONFIG_FS_VERITY_BUILTIN_SIGNATURES15	{16		.procname       = "require_signatures",17		.data           = &fsverity_require_signatures,18		.maxlen         = sizeof(int),19		.mode           = 0644,20		.proc_handler   = proc_dointvec_minmax,21		.extra1         = SYSCTL_ZERO,22		.extra2         = SYSCTL_ONE,23	},24#endif25};26 27static void __init fsverity_init_sysctl(void)28{29	register_sysctl_init("fs/verity", fsverity_sysctl_table);30}31#else /* CONFIG_SYSCTL */32static inline void fsverity_init_sysctl(void)33{34}35#endif /* !CONFIG_SYSCTL */36 37void fsverity_msg(const struct inode *inode, const char *level,38		  const char *fmt, ...)39{40	static DEFINE_RATELIMIT_STATE(rs, DEFAULT_RATELIMIT_INTERVAL,41				      DEFAULT_RATELIMIT_BURST);42	struct va_format vaf;43	va_list args;44 45	if (!__ratelimit(&rs))46		return;47 48	va_start(args, fmt);49	vaf.fmt = fmt;50	vaf.va = &args;51	if (inode)52		printk("%sfs-verity (%s, inode %lu): %pV\n",53		       level, inode->i_sb->s_id, inode->i_ino, &vaf);54	else55		printk("%sfs-verity: %pV\n", level, &vaf);56	va_end(args);57}58 59static int __init fsverity_init(void)60{61	fsverity_check_hash_algs();62	fsverity_init_info_cache();63	fsverity_init_workqueue();64	fsverity_init_sysctl();65	fsverity_init_signature();66	fsverity_init_bpf();67	return 0;68}69late_initcall(fsverity_init)70