diff options
author | Johannes Berg <johannes.berg@intel.com> | 2017-05-03 13:04:40 +0200 |
---|---|---|
committer | Luca Coelho <luciano.coelho@intel.com> | 2017-06-23 11:57:48 +0300 |
commit | 8790fce4f696ed55195283d26685cc0edaea63a8 (patch) | |
tree | 077fa1ec69d309f8588be9b5968ca62a8817cbf7 /drivers/net/wireless/intel/iwlwifi/pcie/tx.c | |
parent | 78c1acf35fcd528ff4c76057d5724ac00e0f7fff (diff) | |
download | linux-8790fce4f696ed55195283d26685cc0edaea63a8.tar.gz linux-8790fce4f696ed55195283d26685cc0edaea63a8.tar.xz |
iwlwifi: fix TX tracing for non-linear SKBs
When sending non-linear SKBs that should be included in the regular
TX tracing completely (and not be pushed into the tx_data tracing),
the (tracing) code didn't correctly take the fact that they were
non-linear into account and added only the skb head portion.
This probably never really triggered, since those frames we want
traced fully are most likely linear anyway, but the code gets easier
to understand and we lose an argument to the tracing function, so
overall fixing this is better.
Fixes: 206eea783385 ("iwlwifi: pcie: support frag SKBs")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/pcie/tx.c')
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c index 98cccaeeecdd..be38dd3a6d93 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c @@ -1978,7 +1978,7 @@ static int iwl_fill_data_tbs(struct iwl_trans *trans, struct sk_buff *skb, iwl_pcie_get_tfd(trans_pcie, txq, txq->write_ptr), trans_pcie->tfd_size, &dev_cmd->hdr, IWL_FIRST_TB_SIZE + tb1_len, - skb->data + hdr_len, tb2_len); + hdr_len); trace_iwlwifi_dev_tx_data(trans->dev, skb, hdr_len); return 0; } @@ -2051,8 +2051,7 @@ static int iwl_fill_data_tbs_amsdu(struct iwl_trans *trans, struct sk_buff *skb, trace_iwlwifi_dev_tx(trans->dev, skb, iwl_pcie_get_tfd(trans_pcie, txq, txq->write_ptr), trans_pcie->tfd_size, - &dev_cmd->hdr, IWL_FIRST_TB_SIZE + tb1_len, - NULL, 0); + &dev_cmd->hdr, IWL_FIRST_TB_SIZE + tb1_len, 0); ip_hdrlen = skb_transport_header(skb) - skb_network_header(skb); snap_ip_tcp_hdrlen = 8 + ip_hdrlen + tcp_hdrlen(skb); |