Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) // SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) #include <linux/sysctl.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3) #include <linux/slab.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4) #include <net/net_namespace.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) #include <net/xfrm.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) static void __net_init __xfrm_sysctl_init(struct net *net)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) 	net->xfrm.sysctl_aevent_etime = XFRM_AE_ETIME;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) 	net->xfrm.sysctl_aevent_rseqth = XFRM_AE_SEQT_SIZE;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) 	net->xfrm.sysctl_larval_drop = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) 	net->xfrm.sysctl_acq_expires = 30;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #ifdef CONFIG_SYSCTL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) static struct ctl_table xfrm_table[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 	{
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 		.procname	= "xfrm_aevent_etime",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 		.maxlen		= sizeof(u32),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 		.mode		= 0644,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 		.proc_handler	= proc_douintvec
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 	},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 	{
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 		.procname	= "xfrm_aevent_rseqth",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 		.maxlen		= sizeof(u32),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 		.mode		= 0644,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 		.proc_handler	= proc_douintvec
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 	},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 	{
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 		.procname	= "xfrm_larval_drop",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 		.maxlen		= sizeof(int),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 		.mode		= 0644,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 		.proc_handler	= proc_dointvec
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 	},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 	{
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 		.procname	= "xfrm_acq_expires",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 		.maxlen		= sizeof(int),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 		.mode		= 0644,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 		.proc_handler	= proc_dointvec
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 	},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 	{}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) int __net_init xfrm_sysctl_init(struct net *net)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 	struct ctl_table *table;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 	__xfrm_sysctl_init(net);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 	table = kmemdup(xfrm_table, sizeof(xfrm_table), GFP_KERNEL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) 	if (!table)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 		goto out_kmemdup;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) 	table[0].data = &net->xfrm.sysctl_aevent_etime;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) 	table[1].data = &net->xfrm.sysctl_aevent_rseqth;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) 	table[2].data = &net->xfrm.sysctl_larval_drop;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) 	table[3].data = &net->xfrm.sysctl_acq_expires;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 	/* Don't export sysctls to unprivileged users */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) 	if (net->user_ns != &init_user_ns)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) 		table[0].procname = NULL;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) 	net->xfrm.sysctl_hdr = register_net_sysctl(net, "net/core", table);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) 	if (!net->xfrm.sysctl_hdr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) 		goto out_register;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) 	return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) out_register:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) 	kfree(table);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) out_kmemdup:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) 	return -ENOMEM;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) void __net_exit xfrm_sysctl_fini(struct net *net)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) 	struct ctl_table *table;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) 	table = net->xfrm.sysctl_hdr->ctl_table_arg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) 	unregister_net_sysctl_table(net->xfrm.sysctl_hdr);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) 	kfree(table);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) int __net_init xfrm_sysctl_init(struct net *net)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) 	__xfrm_sysctl_init(net);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) 	return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) #endif