On Fri, Aug 21, 2020 at 6:50 AM Greg Rose <[email protected]> wrote: > > From: Tonghao Zhang <[email protected]> > > Upstream commit: > commit 61ca533c0e94104c35fcb7858a23ec9a05d78143 > Author: Tonghao Zhang <[email protected]> > Date: Thu Nov 14 23:51:08 2019 +0800 > > net: openvswitch: don't call pad_packet if not necessary > > The nla_put_u16/nla_put_u32 makes sure that > *attrlen is align. The call tree is that: > > nla_put_u16/nla_put_u32 > -> nla_put attrlen = sizeof(u16) or sizeof(u32) > -> __nla_put attrlen > -> __nla_reserve attrlen > -> skb_put(skb, nla_total_size(attrlen)) > > nla_total_size returns the total length of attribute > including padding. > > Cc: Joe Stringer <[email protected]> > Cc: William Tu <[email protected]> > Signed-off-by: Tonghao Zhang <[email protected]> > Acked-by: Pravin B Shelar <[email protected]> > Signed-off-by: David S. Miller <[email protected]> > > Cc: Tonghao Zhang <[email protected]> > Signed-off-by: Greg Rose <[email protected]> Reviewed-by: Tonghao Zhang <[email protected]> > --- > datapath/datapath.c | 22 ++++++++-------------- > 1 file changed, 8 insertions(+), 14 deletions(-) > > diff --git a/datapath/datapath.c b/datapath/datapath.c > index f04ce21..b9ac676 100644 > --- a/datapath/datapath.c > +++ b/datapath/datapath.c > @@ -512,23 +512,17 @@ static int queue_userspace_packet(struct datapath *dp, > struct sk_buff *skb, > } > > /* Add OVS_PACKET_ATTR_MRU */ > - if (upcall_info->mru) { > - if (nla_put_u16(user_skb, OVS_PACKET_ATTR_MRU, > - upcall_info->mru)) { > - err = -ENOBUFS; > - goto out; > - } > - pad_packet(dp, user_skb); > + if (upcall_info->mru && > + nla_put_u16(user_skb, OVS_PACKET_ATTR_MRU, upcall_info->mru)) { > + err = -ENOBUFS; > + goto out; > } > > /* Add OVS_PACKET_ATTR_LEN when packet is truncated */ > - if (cutlen > 0) { > - if (nla_put_u32(user_skb, OVS_PACKET_ATTR_LEN, > - skb->len)) { > - err = -ENOBUFS; > - goto out; > - } > - pad_packet(dp, user_skb); > + if (cutlen > 0 && > + nla_put_u32(user_skb, OVS_PACKET_ATTR_LEN, skb->len)) { > + err = -ENOBUFS; > + goto out; > } > > /* Add OVS_PACKET_ATTR_HASH */ > -- > 1.8.3.1 >
-- Best regards, Tonghao _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
