Преглед изворни кода

qcacld-3.0: Fix TX data no DSCP to user priority mapping issue

(1) is_critical pointer flag in hdd_wmm_classify_pkt is not referred
properly which then hdd_wmm_get_user_priority_from_ip_tos() is skipped.
(2) CONFIG_WLAN_CUSTOM_DSCP_UP_MAP is only configured when
CONFIG_REMOVE_PKT_LOG is 'n', so if CONFIG_REMOVE_PKT_LOG is set to 'y',
CONFIG_WLAN_CUSTOM_DSCP_UP_MAP will no chance to be enabled,
then hdd_custom_dscp_up_map() dummy function is invoked always.

CONFIG_WLAN_CUSTOM_DSCP_UP_MAP should not be tied with
CONFIG_REMOVE_PKT_LOG, move it out of CONFIG_REMOVE_PKT_LOG,
also fix is_critical flag referring issue.

Change-Id: Iac6e7ccb41270677298d152498ad7a9c0c66ff14
CRs-Fixed: 3205745
Jinwei Chen пре 2 година
родитељ
комит
877541166c
2 измењених фајлова са 19 додато и 18 уклоњено
  1. 18 17
      configs/default_defconfig
  2. 1 1
      core/hdd/src/wlan_hdd_wmm.c

+ 18 - 17
configs/default_defconfig

@@ -866,23 +866,6 @@ ifeq ($(CONFIG_HELIUMPLUS), y)
 CONFIG_PKTLOG_LEGACY := y
 endif
 
-#Customize DSCP_to-UP map based on RFC8325
-ifeq ($(CONFIG_HELIUMPLUS), y)
-CONFIG_WLAN_CUSTOM_DSCP_UP_MAP := y
-CONFIG_WLAN_SEND_DSCP_UP_MAP_TO_FW := y
-endif
-ifeq (y,$(filter y,$(CONFIG_LITHIUM) $(CONFIG_BERYLLIUM)))
-CONFIG_WLAN_CUSTOM_DSCP_UP_MAP := y
-endif
-
-ifeq ($(CONFIG_ARCH_BENGAL), y)
-CONFIG_SMMU_S1_UNMAP := y
-endif
-
-ifeq ($(CONFIG_ICNSS2_HELIUM), y)
-CONFIG_SMMU_S1_UNMAP := y
-endif
-
 ifeq ($(CONFIG_ROME_IF), sdio)
 CONFIG_PKTLOG_LEGACY := y
 endif
@@ -904,6 +887,24 @@ ifeq (y,$(filter y,$(CONFIG_LITHIUM) $(CONFIG_BERYLLIUM)))
 CONFIG_PKTLOG_LEGACY := n
 endif
 
+#Customize DSCP_to-UP map based on RFC8325
+ifeq ($(CONFIG_HELIUMPLUS), y)
+CONFIG_WLAN_CUSTOM_DSCP_UP_MAP := y
+CONFIG_WLAN_SEND_DSCP_UP_MAP_TO_FW := y
+endif
+
+ifeq (y,$(filter y,$(CONFIG_LITHIUM) $(CONFIG_BERYLLIUM)))
+CONFIG_WLAN_CUSTOM_DSCP_UP_MAP := y
+endif
+
+ifeq ($(CONFIG_ARCH_BENGAL), y)
+CONFIG_SMMU_S1_UNMAP := y
+endif
+
+ifeq ($(CONFIG_ICNSS2_HELIUM), y)
+CONFIG_SMMU_S1_UNMAP := y
+endif
+
 ifeq (y,$(filter y,$(CONFIG_LITHIUM) $(CONFIG_BERYLLIUM)))
 CONFIG_WAPI_BIG_ENDIAN := y
 else

+ 1 - 1
core/hdd/src/wlan_hdd_wmm.c

@@ -1992,7 +1992,7 @@ void hdd_wmm_classify_pkt(struct hdd_adapter *adapter,
 {
 	hdd_wmm_classify_critical_pkt(adapter, skb, user_pri, is_critical);
 
-	if (!is_critical) {
+	if (false == *is_critical) {
 		hdd_wmm_get_user_priority_from_ip_tos(adapter, skb, user_pri);
 		hdd_check_and_upgrade_udp_qos(adapter, skb, user_pri);
 	}