[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <063D6719AE5E284EB5DD2968C1650D6D1C9F1E54@AcuExch.aculab.com>
Date: Mon, 17 Nov 2014 14:15:40 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Eric Dumazet' <eric.dumazet@...il.com>,
Jeff Kirsher <jeffrey.t.kirsher@...el.com>
CC: "davem@...emloft.net" <davem@...emloft.net>,
Serey Kong <serey.kong@...el.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"nhorman@...hat.com" <nhorman@...hat.com>,
"sassmann@...hat.com" <sassmann@...hat.com>,
"jogreene@...hat.com" <jogreene@...hat.com>,
"Shannon Nelson" <shannon.nelson@...el.com>
Subject: RE: [net-next 03/12] i40e: Handle a single mss packet with more
than 8 frags
From: Eric Dumazet
> > This handles the case where a single packet with more than 8 data
> > descriptors triggers a Malicious Driver Detect event in the device.
Whose bright idea was that?
> > @@ -2129,10 +2129,16 @@ static void i40e_tx_map(struct i40e_ring *tx_ring, struct sk_buff *skb,
> > I40E_TX_FLAGS_VLAN_SHIFT;
> > }
> >
> > - if (tx_flags & (I40E_TX_FLAGS_TSO | I40E_TX_FLAGS_FSO))
> > + if (tx_flags & (I40E_TX_FLAGS_TSO | I40E_TX_FLAGS_FSO)) {
> > gso_segs = skb_shinfo(skb)->gso_segs;
> > - else
> > + } else {
> > gso_segs = 1;
> > + if (skb_shinfo(skb)->nr_frags >= I40E_MAX_BUFFER_TXD)
> > + skb_linearize(skb);
>
> What exactly happens if skb_linearize() fails ?
Didn't someone write a function that significantly reduces the
number of fragments without actually requiring a single linear block?
David
Powered by blists - more mailing lists