diff -drupN a/net/ipv4/ping.c b/net/ipv4/ping.c
--- a/net/ipv4/ping.c	2018-08-06 17:23:04.000000000 +0300
+++ b/net/ipv4/ping.c	2022-06-12 05:28:14.000000000 +0300
@@ -59,8 +59,11 @@ struct ping_table {
 };
 
 static struct ping_table ping_table;
+
+#if IS_ENABLED(CONFIG_IPV6)
 struct pingv6_ops pingv6_ops;
 EXPORT_SYMBOL_GPL(pingv6_ops);
+#endif
 
 static u16 ping_port_rover;
 
@@ -798,7 +801,8 @@ static int ping_v4_sendmsg(struct sock *
 
 	flowi4_init_output(&fl4, ipc.oif, sk->sk_mark, tos,
 			   RT_SCOPE_UNIVERSE, sk->sk_protocol,
-			   inet_sk_flowi_flags(sk), faddr, saddr, 0, 0);
+			   inet_sk_flowi_flags(sk), faddr, saddr, 0, 0,
+			   sk->sk_uid);
 
 	security_sk_classify_flow(sk, flowi4_to_flowi(&fl4));
 	rt = ip_route_output_flow(net, &fl4, sk);
@@ -1217,6 +1221,9 @@ void ping_proc_exit(void)
 	unregister_pernet_subsys(&ping_v4_net_ops);
 }
 
+module_init(ping_proc_init);
+module_exit(ping_proc_exit);
+
 #endif
 
 void __init ping_init(void)