]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: psample: fix flag being set in wrong skb
authorAdrian Moreno <amorenoz@redhat.com>
Wed, 10 Jul 2024 17:10:04 +0000 (19:10 +0200)
committerJakub Kicinski <kuba@kernel.org>
Fri, 12 Jul 2024 01:11:31 +0000 (18:11 -0700)
A typo makes PSAMPLE_ATTR_SAMPLE_RATE netlink flag be added to the wrong
sk_buff.

Fix the error and make the input sk_buff pointer "const" so that it
doesn't happen again.

Acked-by: Eelco Chaudron <echaudro@redhat.com>
Fixes: 7b1b2b60c63f ("net: psample: allow using rate as probability")
Signed-off-by: Adrian Moreno <amorenoz@redhat.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Antoine Tenart <atenart@kernel.org>
Link: https://patch.msgid.link/20240710171004.2164034-1-amorenoz@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/net/psample.h
net/psample/psample.c

index c52e9ebd88ddfbc55ada860e02dc399e972f7cd6..5071b5fc2b5910b9b812b22c43171fbcef1300a7 100644 (file)
@@ -38,13 +38,15 @@ struct sk_buff;
 
 #if IS_ENABLED(CONFIG_PSAMPLE)
 
-void psample_sample_packet(struct psample_group *group, struct sk_buff *skb,
-                          u32 sample_rate, const struct psample_metadata *md);
+void psample_sample_packet(struct psample_group *group,
+                          const struct sk_buff *skb, u32 sample_rate,
+                          const struct psample_metadata *md);
 
 #else
 
 static inline void psample_sample_packet(struct psample_group *group,
-                                        struct sk_buff *skb, u32 sample_rate,
+                                        const struct sk_buff *skb,
+                                        u32 sample_rate,
                                         const struct psample_metadata *md)
 {
 }
index f48b5b9cd409e67646155727454e17a943366e25..a0ddae8a65f917c49ea243a6f245ca876349145e 100644 (file)
@@ -360,8 +360,9 @@ static int psample_tunnel_meta_len(struct ip_tunnel_info *tun_info)
 }
 #endif
 
-void psample_sample_packet(struct psample_group *group, struct sk_buff *skb,
-                          u32 sample_rate, const struct psample_metadata *md)
+void psample_sample_packet(struct psample_group *group,
+                          const struct sk_buff *skb, u32 sample_rate,
+                          const struct psample_metadata *md)
 {
        ktime_t tstamp = ktime_get_real();
        int out_ifindex = md->out_ifindex;
@@ -498,7 +499,7 @@ void psample_sample_packet(struct psample_group *group, struct sk_buff *skb,
                goto error;
 
        if (md->rate_as_probability)
-               nla_put_flag(skb, PSAMPLE_ATTR_SAMPLE_PROBABILITY);
+               nla_put_flag(nl_skb, PSAMPLE_ATTR_SAMPLE_PROBABILITY);
 
        genlmsg_end(nl_skb, data);
        genlmsg_multicast_netns(&psample_nl_family, group->net, nl_skb, 0,