Hi, On 08/19/2015 10:10 PM, Sergei Shtylyov wrote: > Hello. > > On 08/19/2015 03:59 PM, Emmanuel Grumbach wrote: > >> This allows to release the backpressure on the socket only >> when the last segment is released. >> Now the truesize looks like this: >> if the truesize of the original skb is 65420, all the >> segments will have a truesize of 704 (skb itself) and the >> last one will have 65420. >> >> Change-Id: I3c894cf2afc0aedfe7b2a5b992ba41653ff79c0e >> Signed-off-by: Emmanuel Grumbach <emmanuel.grumb...@intel.com> >> --- >> drivers/net/wireless/iwlwifi/mvm/tx.c | 17 ++++++++++++++++- >> 1 file changed, 16 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/net/wireless/iwlwifi/mvm/tx.c >> b/drivers/net/wireless/iwlwifi/mvm/tx.c >> index 5046833..046e50d 100644 >> --- a/drivers/net/wireless/iwlwifi/mvm/tx.c >> +++ b/drivers/net/wireless/iwlwifi/mvm/tx.c > [...] >> @@ -1034,6 +1035,20 @@ static int iwl_mvm_tx_tso(struct iwl_mvm *mvm, struct >> sk_buff *skb_gso, >> } >> >> __skb_queue_tail(mpdus_skb, skb); >> + sum_truesize += skb->truesize; >> + } >> + >> + /* Release the backpressure on the socket only when >> + * the last segment is released. >> + */ >> + if (skb_gso->destructor == sock_wfree) {
I need to change the destructor function here as per Eric's comment. >> + struct sk_buff *tail = mpdus_skb->prev; >> + >> + swap(tail->truesize, skb_gso->truesize); >> + swap(tail->destructor, skb_gso->destructor); >> + swap(tail->sk, skb_gso->sk); >> + atomic_add(sum_truesize - skb_gso->truesize, > > Please indent using tabs, not spaces. I am happy this is the only flaw you found ;) Sure - I'll fix. And I'll remove the Change-ID and checkpatch will be happy. No worries ;) > >> + &skb_gso->sk->sk_wmem_alloc); >> } >> >> ret = 0; > > MBR, Sergei > > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html