• Emmanuel Grumbach's avatar
    iwlwifi: mvm: fix TSO with highly fragmented SKBs · 0eac9aba
    Emmanuel Grumbach authored
    Our hardware has a limited amount of buffer descriptors
    for each Tx packet. Because of that, there is a short
    piece of code that makes sure that that we don't push too
    many subframes in an A-MSDU because of subframes needs 2
    buffer descriptors. This code also takes into account the
    number of fragment of the skb since we also need a buffer
    descriptor for each fragment in the skb.
    
    This piece of code though didn't check that the resulting
    number of subframes wasn't 0.
    
    A user reported that using NFS client, he could get skbs
    that are so fragmented that the code mentioned above
    returned 0 for the number of subframes making
    skb_gso_segment fail and subconsequently iwlwifi would WARN.
    
    Fix this by make sure that num_subframes is at least 1.
    
    This fixes:
    https://bugzilla.kernel.org/show_bug.cgi?id=199209
    
    Fixes: a6d5e32f ("iwlwifi: mvm: send large SKBs to the transport")
    Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
    0eac9aba
tx.c 56.8 KB