iwlwifi: drop yet another patch n/a for 4.8.x

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
diff --git a/queue/iwlwifi-mvm-pcie-adjust-A-MSDU-tx_cmd-length-in-PCIe.patch b/queue/iwlwifi-mvm-pcie-adjust-A-MSDU-tx_cmd-length-in-PCIe.patch
deleted file mode 100644
index 7c9d426..0000000
--- a/queue/iwlwifi-mvm-pcie-adjust-A-MSDU-tx_cmd-length-in-PCIe.patch
+++ /dev/null
@@ -1,198 +0,0 @@
-From 05e5a7e58d3f8f597ebe6f78aaa13a2656b78239 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg@intel.com>
-Date: Fri, 2 Dec 2016 10:04:49 +0100
-Subject: [PATCH] iwlwifi: mvm/pcie: adjust A-MSDU tx_cmd length in PCIe
-
-commit 05e5a7e58d3f8f597ebe6f78aaa13a2656b78239 upstream.
-
-Instead of setting the tx_cmd length in the mvm code, which is
-complicated by the fact that DQA may want to temporarily store
-the SKB on the side, adjust the length in the PCIe code which
-also knows about this since it's responsible for duplicating
-all those headers that are account for in this code.
-
-As the PCIe code already relies on the tx_cmd->len field, this
-doesn't really introduce any new dependencies.
-
-To make this possible we need to move the memcpy() of the TX
-command until after it was updated.
-
-This does even simplify the code though, since the PCIe code
-already does a lot of manipulations to build A-MSDUs correctly
-and changing the length becomes a simple operation to see how
-much was added/removed, rather than predicting it.
-
-Fixes: 24afba7690e4 ("iwlwifi: mvm: support bss dynamic alloc/dealloc of queues")
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
-index 0dcf0ebab45d..8daf4fbe4534 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
-@@ -202,7 +202,6 @@ void iwl_mvm_set_tx_cmd(struct iwl_mvm *mvm, struct sk_buff *skb,
- 			struct iwl_tx_cmd *tx_cmd,
- 			struct ieee80211_tx_info *info, u8 sta_id)
- {
--	struct ieee80211_tx_info *skb_info = IEEE80211_SKB_CB(skb);
- 	struct ieee80211_hdr *hdr = (void *)skb->data;
- 	__le16 fc = hdr->frame_control;
- 	u32 tx_flags = le32_to_cpu(tx_cmd->tx_flags);
-@@ -284,9 +283,8 @@ void iwl_mvm_set_tx_cmd(struct iwl_mvm *mvm, struct sk_buff *skb,
- 		tx_flags |= TX_CMD_FLG_WRITE_TX_POWER;
- 
- 	tx_cmd->tx_flags = cpu_to_le32(tx_flags);
--	/* Total # bytes to be transmitted */
--	tx_cmd->len = cpu_to_le16((u16)skb->len +
--		(uintptr_t)skb_info->driver_data[0]);
-+	/* Total # bytes to be transmitted - PCIe code will adjust for A-MSDU */
-+	tx_cmd->len = cpu_to_le16((u16)skb->len);
- 	tx_cmd->life_time = cpu_to_le32(TX_CMD_LIFE_TIME_INFINITE);
- 	tx_cmd->sta_id = sta_id;
- 
-@@ -562,9 +560,6 @@ int iwl_mvm_tx_skb_non_sta(struct iwl_mvm *mvm, struct sk_buff *skb)
- 			  info.hw_queue != info.control.vif->cab_queue)))
- 		return -1;
- 
--	/* This holds the amsdu headers length */
--	skb_info->driver_data[0] = (void *)(uintptr_t)0;
--
- 	queue = info.hw_queue;
- 
- 	/*
-@@ -651,7 +646,7 @@ static int iwl_mvm_tx_tso(struct iwl_mvm *mvm, struct sk_buff *skb,
- 	unsigned int num_subframes, tcp_payload_len, subf_len, max_amsdu_len;
- 	bool ipv4 = (skb->protocol == htons(ETH_P_IP));
- 	u16 ip_base_id = ipv4 ? ntohs(ip_hdr(skb)->id) : 0;
--	u16 amsdu_add, snap_ip_tcp, pad, i = 0;
-+	u16 snap_ip_tcp, pad, i = 0;
- 	unsigned int dbg_max_amsdu_len;
- 	netdev_features_t netdev_features = NETIF_F_CSUM_MASK | NETIF_F_SG;
- 	u8 *qc, tid, txf;
-@@ -753,21 +748,6 @@ static int iwl_mvm_tx_tso(struct iwl_mvm *mvm, struct sk_buff *skb,
- 
- 	/* This skb fits in one single A-MSDU */
- 	if (num_subframes * mss >= tcp_payload_len) {
--		struct ieee80211_tx_info *skb_info = IEEE80211_SKB_CB(skb);
--
--		/*
--		 * Compute the length of all the data added for the A-MSDU.
--		 * This will be used to compute the length to write in the TX
--		 * command. We have: SNAP + IP + TCP for n -1 subframes and
--		 * ETH header for n subframes. Note that the original skb
--		 * already had one set of SNAP / IP / TCP headers.
--		 */
--		num_subframes = DIV_ROUND_UP(tcp_payload_len, mss);
--		amsdu_add = num_subframes * sizeof(struct ethhdr) +
--			(num_subframes - 1) * (snap_ip_tcp + pad);
--		/* This holds the amsdu headers length */
--		skb_info->driver_data[0] = (void *)(uintptr_t)amsdu_add;
--
- 		__skb_queue_tail(mpdus_skb, skb);
- 		return 0;
- 	}
-@@ -806,14 +786,6 @@ segment:
- 			ip_hdr(tmp)->id = htons(ip_base_id + i * num_subframes);
- 
- 		if (tcp_payload_len > mss) {
--			struct ieee80211_tx_info *skb_info =
--				IEEE80211_SKB_CB(tmp);
--
--			num_subframes = DIV_ROUND_UP(tcp_payload_len, mss);
--			amsdu_add = num_subframes * sizeof(struct ethhdr) +
--				(num_subframes - 1) * (snap_ip_tcp + pad);
--			skb_info->driver_data[0] =
--				(void *)(uintptr_t)amsdu_add;
- 			skb_shinfo(tmp)->gso_size = mss;
- 		} else {
- 			qc = ieee80211_get_qos_ctl((void *)tmp->data);
-@@ -1059,7 +1031,6 @@ int iwl_mvm_tx_skb(struct iwl_mvm *mvm, struct sk_buff *skb,
- 		   struct ieee80211_sta *sta)
- {
- 	struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
--	struct ieee80211_tx_info *skb_info = IEEE80211_SKB_CB(skb);
- 	struct ieee80211_tx_info info;
- 	struct sk_buff_head mpdus_skbs;
- 	unsigned int payload_len;
-@@ -1073,9 +1044,6 @@ int iwl_mvm_tx_skb(struct iwl_mvm *mvm, struct sk_buff *skb,
- 
- 	memcpy(&info, skb->cb, sizeof(info));
- 
--	/* This holds the amsdu headers length */
--	skb_info->driver_data[0] = (void *)(uintptr_t)0;
--
- 	if (!skb_is_gso(skb))
- 		return iwl_mvm_tx_mpdu(mvm, skb, &info, sta);
- 
-diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
-index e44e5adc2b95..911cf9868107 100644
---- a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
-+++ b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
-@@ -2096,6 +2096,7 @@ static int iwl_fill_data_tbs_amsdu(struct iwl_trans *trans, struct sk_buff *skb,
- 				   struct iwl_cmd_meta *out_meta,
- 				   struct iwl_device_cmd *dev_cmd, u16 tb1_len)
- {
-+	struct iwl_tx_cmd *tx_cmd = (void *)dev_cmd->payload;
- 	struct iwl_trans_pcie *trans_pcie = txq->trans_pcie;
- 	struct ieee80211_hdr *hdr = (void *)skb->data;
- 	unsigned int snap_ip_tcp_hdrlen, ip_hdrlen, total_len, hdr_room;
-@@ -2145,6 +2146,13 @@ static int iwl_fill_data_tbs_amsdu(struct iwl_trans *trans, struct sk_buff *skb,
- 	 */
- 	skb_pull(skb, hdr_len + iv_len);
- 
-+	/*
-+	 * Remove the length of all the headers that we don't actually
-+	 * have in the MPDU by themselves, but that we duplicate into
-+	 * all the different MSDUs inside the A-MSDU.
-+	 */
-+	le16_add_cpu(&tx_cmd->len, -snap_ip_tcp_hdrlen);
-+
- 	tso_start(skb, &tso);
- 
- 	while (total_len) {
-@@ -2155,7 +2163,7 @@ static int iwl_fill_data_tbs_amsdu(struct iwl_trans *trans, struct sk_buff *skb,
- 		unsigned int hdr_tb_len;
- 		dma_addr_t hdr_tb_phys;
- 		struct tcphdr *tcph;
--		u8 *iph;
-+		u8 *iph, *subf_hdrs_start = hdr_page->pos;
- 
- 		total_len -= data_left;
- 
-@@ -2216,6 +2224,8 @@ static int iwl_fill_data_tbs_amsdu(struct iwl_trans *trans, struct sk_buff *skb,
- 				       hdr_tb_len, false);
- 		trace_iwlwifi_dev_tx_tso_chunk(trans->dev, start_hdr,
- 					       hdr_tb_len);
-+		/* add this subframe's headers' length to the tx_cmd */
-+		le16_add_cpu(&tx_cmd->len, hdr_page->pos - subf_hdrs_start);
- 
- 		/* prepare the start_hdr for the next subframe */
- 		start_hdr = hdr_page->pos;
-@@ -2408,9 +2418,10 @@ int iwl_trans_pcie_tx(struct iwl_trans *trans, struct sk_buff *skb,
- 		tb1_len = len;
- 	}
- 
--	/* The first TB points to bi-directional DMA data */
--	memcpy(&txq->first_tb_bufs[txq->write_ptr], &dev_cmd->hdr,
--	       IWL_FIRST_TB_SIZE);
-+	/*
-+	 * The first TB points to bi-directional DMA data, we'll
-+	 * memcpy the data into it later.
-+	 */
- 	iwl_pcie_txq_build_tfd(trans, txq, tb0_phys,
- 			       IWL_FIRST_TB_SIZE, true);
- 
-@@ -2434,6 +2445,10 @@ int iwl_trans_pcie_tx(struct iwl_trans *trans, struct sk_buff *skb,
- 		goto out_err;
- 	}
- 
-+	/* building the A-MSDU might have changed this data, so memcpy it now */
-+	memcpy(&txq->first_tb_bufs[txq->write_ptr], &dev_cmd->hdr,
-+	       IWL_FIRST_TB_SIZE);
-+
- 	tfd = iwl_pcie_get_tfd(trans_pcie, txq, txq->write_ptr);
- 	/* Set up entry for this TFD in Tx byte-count array */
- 	iwl_pcie_txq_update_byte_cnt_tbl(trans, txq, le16_to_cpu(tx_cmd->len),
--- 
-2.12.0
-
diff --git a/queue/series b/queue/series
index f05afb2..69fe9a7 100644
--- a/queue/series
+++ b/queue/series
@@ -86,7 +86,6 @@
 iwlwifi-pcie-don-t-increment-decrement-a-bool.patch
 iwlwifi-mvm-fix-reorder-timer-re-arming.patch
 iwlwifi-mvm-Use-aux-queue-for-offchannel-frames-in-d.patch
-iwlwifi-mvm-pcie-adjust-A-MSDU-tx_cmd-length-in-PCIe.patch
 iwlwifi-mvm-fix-pending-frame-counter-calculation.patch
 iwlwifi-mvm-fix-references-to-first_agg_queue-in-DQA.patch
 iwlwifi-mvm-synchronize-firmware-DMA-paging-memory.patch