On Wed, 23 Sep 2026 12:50:09 -0400 Willem de Bruijn wrote:
>> @@ -117,6 +119,7 @@ struct sk_buff *__skb_gso_segment(struct sk_buff *skb,
>>  
>>      SKB_GSO_CB(skb)->mac_offset = skb_headroom(skb);
>>      SKB_GSO_CB(skb)->encap_level = 0;
>> +    SKB_GSO_CB(skb)->max_segs = min_t(unsigned int, max_segs, U16_MAX);
> 
> Can this use GSO_MAX_SEGS rather than U16_MAX.

Good idea.

>> @@ -4975,6 +4979,12 @@ struct sk_buff *skb_segment(struct sk_buff *head_skb,
>>  
>>              __copy_skb_header(nskb, head_skb);
>>  
>> +            /*
>> +             * max_segs is a per-call limit, so output skbs must not
>> +             * inherit it from the input skb.
>> +             */
>> +            SKB_GSO_CB(nskb)->max_segs = 0;
>> +
> 
> cb has to be treated as uninitialized between layers. All callers of
> __skb_gso_segment should (re)initialize this field. Is it necessary to
> clear it here. Note that we do not do that for any other cb fields.

I checked again, it is indeed unnecessary, and I will drop it in v3.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to