diff --git a/wmi_unified.c b/wmi_unified.c
index db2b082..ec0a3e9 100644
--- a/wmi_unified.c
+++ b/wmi_unified.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015-2017 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2015-2018 The Linux Foundation. All rights reserved.
  *
  * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
  *
@@ -1171,7 +1171,7 @@
 
 	qdf_spin_lock_bh(&wmi_handle->log_info.wmi_record_lock);
 
-	WMI_MGMT_COMMAND_RECORD(wmi_handle, cmd, data);
+	WMI_MGMT_COMMAND_RECORD(wmi_handle, cmd, (uint8_t *)data);
 
 	qdf_spin_unlock_bh(&wmi_handle->log_info.wmi_record_lock);
 }
@@ -1410,12 +1410,12 @@
 		 * * exclude TLV and WMI headers */
 		if (wmi_handle->ops->is_management_record(cmd_id)) {
 			WMI_MGMT_COMMAND_RECORD(wmi_handle, cmd_id,
-				((uint32_t *) qdf_nbuf_data(buf) +
-				 wmi_handle->log_info.buf_offset_command));
+				qdf_nbuf_data(buf) +
+				wmi_handle->log_info.buf_offset_command);
 		} else {
 			WMI_COMMAND_RECORD(wmi_handle, cmd_id,
-			((uint32_t *) qdf_nbuf_data(buf) +
-			 wmi_handle->log_info.buf_offset_command));
+					qdf_nbuf_data(buf) +
+			 wmi_handle->log_info.buf_offset_command);
 		}
 		qdf_spin_unlock_bh(&wmi_handle->log_info.wmi_record_lock);
 	}
@@ -1754,8 +1754,8 @@
 
 		qdf_spin_lock_bh(&wmi_handle->log_info.wmi_record_lock);
 		/* Exclude 4 bytes of TLV header */
-		WMI_RX_EVENT_RECORD(wmi_handle, id, ((uint8_t *) data +
-				wmi_handle->log_info.buf_offset_event));
+		WMI_RX_EVENT_RECORD(wmi_handle, id, data +
+				wmi_handle->log_info.buf_offset_event);
 		qdf_spin_unlock_bh(&wmi_handle->log_info.wmi_record_lock);
 	}
 #endif
@@ -1841,11 +1841,11 @@
 		qdf_spin_lock_bh(&wmi_handle->log_info.wmi_record_lock);
 		/* Exclude 4 bytes of TLV header */
 		if (wmi_handle->ops->is_management_record(id)) {
-			WMI_MGMT_EVENT_RECORD(wmi_handle, id, ((uint8_t *) data
-				+ wmi_handle->log_info.buf_offset_event));
+			WMI_MGMT_EVENT_RECORD(wmi_handle, id, data
+				+ wmi_handle->log_info.buf_offset_event);
 		} else {
-			WMI_EVENT_RECORD(wmi_handle, id, ((uint8_t *) data +
-					wmi_handle->log_info.buf_offset_event));
+			WMI_EVENT_RECORD(wmi_handle, id, data +
+					wmi_handle->log_info.buf_offset_event);
 		}
 		qdf_spin_unlock_bh(&wmi_handle->log_info.wmi_record_lock);
 	}
@@ -2293,12 +2293,12 @@
 	- exclude TLV and WMI headers */
 	if (wmi_handle->ops->is_management_record(cmd_id)) {
 		WMI_MGMT_COMMAND_TX_CMP_RECORD(wmi_handle, cmd_id,
-			((uint32_t *) qdf_nbuf_data(wmi_cmd_buf) +
-			wmi_handle->log_info.buf_offset_command));
+			qdf_nbuf_data(wmi_cmd_buf) +
+			wmi_handle->log_info.buf_offset_command);
 	} else {
 		WMI_COMMAND_TX_CMP_RECORD(wmi_handle, cmd_id,
-			((uint32_t *) qdf_nbuf_data(wmi_cmd_buf) +
-			wmi_handle->log_info.buf_offset_command));
+			qdf_nbuf_data(wmi_cmd_buf) +
+			wmi_handle->log_info.buf_offset_command);
 	}
 
 	qdf_spin_unlock_bh(&wmi_handle->log_info.wmi_record_lock);
diff --git a/wmi_unified_tlv.c b/wmi_unified_tlv.c
index 53b5e6f..0afe998 100644
--- a/wmi_unified_tlv.c
+++ b/wmi_unified_tlv.c
@@ -22225,7 +22225,9 @@
 {
 	wmi_handle->ops = &tlv_ops;
 #ifdef WMI_INTERFACE_EVENT_LOGGING
-	wmi_handle->log_info.buf_offset_command = 2;
+	/* Skip saving WMI_CMD_HDR and TLV HDR */
+	wmi_handle->log_info.buf_offset_command = 8;
+	/* WMI_CMD_HDR is already stripped, skip saving TLV HDR */
 	wmi_handle->log_info.buf_offset_event = 4;
 #endif
 	populate_tlv_events_id(wmi_handle->wmi_events);
