Эх сурвалжийг харах

qcacmn: FIPS waikiki WMI TLV

Align FIPS waikiki data TLV.

Change-Id: I6343cbd821809a88d07819933ba1f8019f50e08f
Disha Das 3 жил өмнө
parent
commit
4b0a899533

+ 8 - 4
wmi/src/wmi_unified_tlv.c

@@ -8713,6 +8713,7 @@ send_pdev_fips_extend_cmd_tlv(wmi_unified_t wmi_handle,
 	wmi_buf_t buf;
 	uint8_t *buf_ptr;
 	uint32_t len = sizeof(wmi_pdev_fips_extend_cmd_fixed_param);
+	uint32_t data_len_aligned;
 	QDF_STATUS retval = QDF_STATUS_SUCCESS;
 
 	len += WMI_TLV_HDR_SIZE;
@@ -8721,8 +8722,10 @@ send_pdev_fips_extend_cmd_tlv(wmi_unified_t wmi_handle,
 
 	/* Length TLV placeholder for array of bytes */
 	len += WMI_TLV_HDR_SIZE;
-	if (param->data_len)
-		len += (param->data_len * sizeof(uint8_t));
+	if (param->data_len) {
+		data_len_aligned = roundup(param->data_len, sizeof(uint32_t));
+		len += (data_len_aligned * sizeof(uint8_t));
+	}
 
 	buf = wmi_buf_alloc(wmi_handle, len);
 	if (!buf)
@@ -8785,8 +8788,9 @@ send_pdev_fips_extend_cmd_tlv(wmi_unified_t wmi_handle,
 		buf_ptr += WMI_TLV_HDR_SIZE;
 	}
 
-	if (param->data) {
-		WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_BYTE, param->data_len);
+	if (param->data_len && param->data) {
+		WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_BYTE,
+			       data_len_aligned);
 
 		buf_ptr += WMI_TLV_HDR_SIZE;
 		if (param->data_len)