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
diff --git a/Kbuild b/Kbuild
index 9b80565..6f96109 100644
--- a/Kbuild
+++ b/Kbuild
@@ -2336,6 +2336,9 @@
#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
diff --git a/configs/default_defconfig b/configs/default_defconfig
index 13da9c0..72adc76 100644
--- a/configs/default_defconfig
+++ b/configs/default_defconfig
@@ -522,6 +522,17 @@
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
diff --git a/configs/genoa.common b/configs/genoa.common
index b953e18..469e04b 100644
--- a/configs/genoa.common
+++ b/configs/genoa.common
@@ -88,6 +88,11 @@
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
diff --git a/configs/qca6390_defconfig b/configs/qca6390_defconfig
index dd3784c..5995308 100644
--- a/configs/qca6390_defconfig
+++ b/configs/qca6390_defconfig
@@ -457,6 +457,11 @@
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
diff --git a/uapi/linux/pktlog_ac_fmt.h b/uapi/linux/pktlog_ac_fmt.h
index 2fe1f65..47964ec 100644
--- a/uapi/linux/pktlog_ac_fmt.h
+++ b/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 @@
#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