Message ID | 20240815124302.982711-3-dongml2@chinatelecom.cn (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: vxlan: add skb drop reasons support | expand |
On Thu, Aug 15, 2024 at 08:42:54PM +0800, Menglong Dong wrote: > For now, the skb drop reason can be SKB_NOT_DROPPED_YET, which makes the > kfree_skb_reason call consume_skb. Maybe I'm missing something, but kfree_skb_reason() only calls trace_consume_skb() if reason is SKB_CONSUMED. With SKB_NOT_DROPPED_YET you will get a warning. > In some case, we need to make sure that > kfree_skb is called, which means the reason can't be SKB_NOT_DROPPED_YET. > Introduce SKB_DR_RESET() to reset the reason to NOT_SPECIFIED if it is > SKB_NOT_DROPPED_YET. > > Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn> > --- > include/net/dropreason-core.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/include/net/dropreason-core.h b/include/net/dropreason-core.h > index 9707ab54fdd5..8da0129d1ed6 100644 > --- a/include/net/dropreason-core.h > +++ b/include/net/dropreason-core.h > @@ -445,5 +445,6 @@ enum skb_drop_reason { > name == SKB_NOT_DROPPED_YET) \ > SKB_DR_SET(name, reason); \ > } while (0) > +#define SKB_DR_RESET(name) SKB_DR_OR(name, NOT_SPECIFIED) > > #endif > -- > 2.39.2 >
On Tue, Aug 20, 2024 at 8:24 PM Ido Schimmel <idosch@nvidia.com> wrote: > > On Thu, Aug 15, 2024 at 08:42:54PM +0800, Menglong Dong wrote: > > For now, the skb drop reason can be SKB_NOT_DROPPED_YET, which makes the > > kfree_skb_reason call consume_skb. > > Maybe I'm missing something, but kfree_skb_reason() only calls > trace_consume_skb() if reason is SKB_CONSUMED. With SKB_NOT_DROPPED_YET > you will get a warning. > Yeah, I use this macro to avoid such WARNING. And I'm not sure if we need this patch now :/ > > In some case, we need to make sure that > > kfree_skb is called, which means the reason can't be SKB_NOT_DROPPED_YET. > > Introduce SKB_DR_RESET() to reset the reason to NOT_SPECIFIED if it is > > SKB_NOT_DROPPED_YET. > > > > Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn> > > --- > > include/net/dropreason-core.h | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/include/net/dropreason-core.h b/include/net/dropreason-core.h > > index 9707ab54fdd5..8da0129d1ed6 100644 > > --- a/include/net/dropreason-core.h > > +++ b/include/net/dropreason-core.h > > @@ -445,5 +445,6 @@ enum skb_drop_reason { > > name == SKB_NOT_DROPPED_YET) \ > > SKB_DR_SET(name, reason); \ > > } while (0) > > +#define SKB_DR_RESET(name) SKB_DR_OR(name, NOT_SPECIFIED) > > > > #endif > > -- > > 2.39.2 > >
diff --git a/include/net/dropreason-core.h b/include/net/dropreason-core.h index 9707ab54fdd5..8da0129d1ed6 100644 --- a/include/net/dropreason-core.h +++ b/include/net/dropreason-core.h @@ -445,5 +445,6 @@ enum skb_drop_reason { name == SKB_NOT_DROPPED_YET) \ SKB_DR_SET(name, reason); \ } while (0) +#define SKB_DR_RESET(name) SKB_DR_OR(name, NOT_SPECIFIED) #endif
For now, the skb drop reason can be SKB_NOT_DROPPED_YET, which makes the kfree_skb_reason call consume_skb. In some case, we need to make sure that kfree_skb is called, which means the reason can't be SKB_NOT_DROPPED_YET. Introduce SKB_DR_RESET() to reset the reason to NOT_SPECIFIED if it is SKB_NOT_DROPPED_YET. Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn> --- include/net/dropreason-core.h | 1 + 1 file changed, 1 insertion(+)