From: Adrian Moreno Date: Thu, 4 Jul 2024 08:56:54 +0000 (+0200) Subject: net: psample: skip packet copy if no listeners X-Git-Tag: v6.11-rc1~163^2~80^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c35d86a23029f1186e3c7a65df7c38b762fb0434;p=thirdparty%2Fkernel%2Flinux.git net: psample: skip packet copy if no listeners If nobody is listening on the multicast group, generating the sample, which involves copying packet data, seems completely unnecessary. Return fast in this case. Reviewed-by: Aaron Conole Acked-by: Eelco Chaudron Reviewed-by: Ido Schimmel Reviewed-by: Simon Horman Signed-off-by: Adrian Moreno Link: https://patch.msgid.link/20240704085710.353845-4-amorenoz@redhat.com Signed-off-by: Jakub Kicinski --- diff --git a/net/psample/psample.c b/net/psample/psample.c index b37488f426bc2..1c76f3e48dcd9 100644 --- a/net/psample/psample.c +++ b/net/psample/psample.c @@ -376,6 +376,10 @@ void psample_sample_packet(struct psample_group *group, struct sk_buff *skb, void *data; int ret; + if (!genl_has_listeners(&psample_nl_family, group->net, + PSAMPLE_NL_MCGRP_SAMPLE)) + return; + meta_len = (in_ifindex ? nla_total_size(sizeof(u16)) : 0) + (out_ifindex ? nla_total_size(sizeof(u16)) : 0) + (md->out_tc_valid ? nla_total_size(sizeof(u16)) : 0) +