Browse Source

qcacld-3.0: Add protection for type_specific_data in ath_pktlog_hdr

The member of type_specific_data is not valid for ROME module. Add macro
protection for type_specific_data in the ath_pktlog_hdr to avoid offset
error when getting the msdu id info during  processing pktlog TX info.

Change-Id: Icb8b95cef9a32732116522e4fc3b39067ff36037
CRs-Fixed: 2522277
Tiger Yu 5 years ago
parent
commit
bf14ba81a9
5 changed files with 27 additions and 1 deletions
  1. 3 0
      Kbuild
  2. 11 0
      configs/default_defconfig
  3. 5 0
      configs/genoa.common
  4. 5 0
      configs/qca6390_defconfig
  5. 3 1
      uapi/linux/pktlog_ac_fmt.h

+ 3 - 0
Kbuild

@@ -2336,6 +2336,9 @@ cppflags-$(CONFIG_ATH_SUPPORT_SPECTRAL) += -DATH_SUPPORT_SPECTRAL
 #Enable WDI Event support
 cppflags-$(CONFIG_WDI_EVENT_ENABLE) += -DWDI_EVENT_ENABLE
 
+#Enable the type_specific_data in the struct ath_pktlog_arg
+cppflags-$(CONFIG_PKTLOG_HAS_SPECIFIC_DATA) += -DPKTLOG_HAS_SPECIFIC_DATA
+
 #Endianness selection
 ifeq ($(CONFIG_LITTLE_ENDIAN), y)
 cppflags-y += -DANI_LITTLE_BYTE_ENDIAN

+ 11 - 0
configs/default_defconfig

@@ -522,6 +522,17 @@ else
 CONFIG_WDI_EVENT_ENABLE := y
 endif
 
+#Enable the type_specific_data in the ath_pktlog_arg
+ifeq ($(CONFIG_REMOVE_PKT_LOG), n)
+ifeq ($(CONFIG_LITHIUM), y)
+CONFIG_PKTLOG_HAS_SPECIFIC_DATA := y
+endif
+
+ifeq ($(CONFIG_HELIUMPLUS), y)
+CONFIG_PKTLOG_HAS_SPECIFIC_DATA := y
+endif
+endif
+
 #Endianness selection
 CONFIG_LITTLE_ENDIAN := y
 

+ 5 - 0
configs/genoa.common

@@ -88,6 +88,11 @@ else
 CONFIG_WDI_EVENT_ENABLE := y
 endif
 
+#Enable the type_specific_data in the ath_pktlog_arg
+ifeq ($(CONFIG_REMOVE_PKT_LOG), n)
+CONFIG_PKTLOG_HAS_SPECIFIC_DATA := y
+endif
+
 PANIC_ON_BUG := y
 WLAN_WARN_ON_ASSERT := y
 CONFIG_WLAN_LOGGING_SOCK_SVC := y

+ 5 - 0
configs/qca6390_defconfig

@@ -457,6 +457,11 @@ else
 CONFIG_WDI_EVENT_ENABLE := y
 endif
 
+#Enable the type_specific_data in the ath_pktlog_arg
+ifeq ($(CONFIG_REMOVE_PKT_LOG), n)
+CONFIG_PKTLOG_HAS_SPECIFIC_DATA := y
+endif
+
 #Endianness selection
 CONFIG_LITTLE_ENDIAN := y
 

+ 3 - 1
uapi/linux/pktlog_ac_fmt.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -61,7 +61,9 @@ struct ath_pktlog_hdr {
 #endif
 	uint16_t size;
 	uint32_t timestamp;
+#ifdef PKTLOG_HAS_SPECIFIC_DATA
 	uint32_t type_specific_data;
+#endif
 } __ATTRIB_PACK;
 
 #define ATH_PKTLOG_HDR_FLAGS_MASK 0xffff