瀏覽代碼

Merge branch 'ath-current' of git://github.com/kvalo/ath

John W. Linville 11 年之前
父節點
當前提交
e055a6e20a
共有 2 個文件被更改,包括 5 次插入19 次删除
  1. 5 1
      drivers/net/wireless/ath/ath10k/core.c
  2. 0 18
      drivers/net/wireless/ath/ath10k/htt_rx.c

+ 5 - 1
drivers/net/wireless/ath/ath10k/core.c

@@ -795,7 +795,11 @@ int ath10k_core_start(struct ath10k *ar)
 	if (status)
 	if (status)
 		goto err_htc_stop;
 		goto err_htc_stop;
 
 
-	ar->free_vdev_map = (1 << TARGET_NUM_VDEVS) - 1;
+	if (test_bit(ATH10K_FW_FEATURE_WMI_10X, ar->fw_features))
+		ar->free_vdev_map = (1 << TARGET_10X_NUM_VDEVS) - 1;
+	else
+		ar->free_vdev_map = (1 << TARGET_NUM_VDEVS) - 1;
+
 	INIT_LIST_HEAD(&ar->arvifs);
 	INIT_LIST_HEAD(&ar->arvifs);
 
 
 	if (!test_bit(ATH10K_FLAG_FIRST_BOOT_DONE, &ar->dev_flags))
 	if (!test_bit(ATH10K_FLAG_FIRST_BOOT_DONE, &ar->dev_flags))

+ 0 - 18
drivers/net/wireless/ath/ath10k/htt_rx.c

@@ -312,7 +312,6 @@ static int ath10k_htt_rx_amsdu_pop(struct ath10k_htt *htt,
 	int msdu_len, msdu_chaining = 0;
 	int msdu_len, msdu_chaining = 0;
 	struct sk_buff *msdu;
 	struct sk_buff *msdu;
 	struct htt_rx_desc *rx_desc;
 	struct htt_rx_desc *rx_desc;
-	bool corrupted = false;
 
 
 	lockdep_assert_held(&htt->rx_ring.lock);
 	lockdep_assert_held(&htt->rx_ring.lock);
 
 
@@ -439,9 +438,6 @@ static int ath10k_htt_rx_amsdu_pop(struct ath10k_htt *htt,
 		last_msdu = __le32_to_cpu(rx_desc->msdu_end.info0) &
 		last_msdu = __le32_to_cpu(rx_desc->msdu_end.info0) &
 				RX_MSDU_END_INFO0_LAST_MSDU;
 				RX_MSDU_END_INFO0_LAST_MSDU;
 
 
-		if (msdu_chaining && !last_msdu)
-			corrupted = true;
-
 		if (last_msdu) {
 		if (last_msdu) {
 			msdu->next = NULL;
 			msdu->next = NULL;
 			break;
 			break;
@@ -456,20 +452,6 @@ static int ath10k_htt_rx_amsdu_pop(struct ath10k_htt *htt,
 	if (*head_msdu == NULL)
 	if (*head_msdu == NULL)
 		msdu_chaining = -1;
 		msdu_chaining = -1;
 
 
-	/*
-	 * Apparently FW sometimes reports weird chained MSDU sequences with
-	 * more than one rx descriptor. This seems like a bug but needs more
-	 * analyzing. For the time being fix it by dropping such sequences to
-	 * avoid blowing up the host system.
-	 */
-	if (corrupted) {
-		ath10k_warn("failed to pop chained msdus, dropping\n");
-		ath10k_htt_rx_free_msdu_chain(*head_msdu);
-		*head_msdu = NULL;
-		*tail_msdu = NULL;
-		msdu_chaining = -EINVAL;
-	}
-
 	/*
 	/*
 	 * Don't refill the ring yet.
 	 * Don't refill the ring yet.
 	 *
 	 *