[v2,03/26] net/ntnic: replace pragma pack with DPDK defined macros

Message ID 20250505071309.586015-4-okl-plv@napatech.com (mailing list archive)
State Awaiting Upstream
Delegated to: Stephen Hemminger
Headers
Series net/ntnic: fixes and improvements |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Oleksandr Kolomeiets May 5, 2025, 7:12 a.m. UTC
The macros __rte_packed_begin and __rte_packed_end are used instead
of #pragma pack(1) when structure or union memory should be minimized.

Signed-off-by: Oleksandr Kolomeiets <okl-plv@napatech.com>
---
 drivers/net/ntnic/include/hw_mod_flm_v25.h | 14 ++++++--------
 drivers/net/ntnic/nthw/core/nthw_spi_v3.c  | 15 +++++++--------
 2 files changed, 13 insertions(+), 16 deletions(-)
  

Patch

diff --git a/drivers/net/ntnic/include/hw_mod_flm_v25.h b/drivers/net/ntnic/include/hw_mod_flm_v25.h
index 12135a652c..132a585802 100644
--- a/drivers/net/ntnic/include/hw_mod_flm_v25.h
+++ b/drivers/net/ntnic/include/hw_mod_flm_v25.h
@@ -226,8 +226,7 @@  struct flm_v25_scrub_s {
 	uint8_t inf;
 };
 
-#pragma pack(1)
-struct flm_v25_lrn_data_s {
+struct __rte_packed_begin flm_v25_lrn_data_s {
 	uint32_t sw9;	/* 31:0 (32) */
 	uint32_t sw8;	/* 63:32 (32) */
 	uint32_t qw4[4];/* 191:64 (128) */
@@ -267,9 +266,9 @@  struct flm_v25_lrn_data_s {
 	uint64_t nofi : 1;	/* 716:716 (1) */
 	uint64_t pad : 50;	/* 766:717 (50) */
 	uint64_t eor : 1;	/* 767:767 (1) */
-};
+} __rte_packed_end;
 
-struct flm_v25_inf_data_s {
+struct __rte_packed_begin flm_v25_inf_data_s {
 	uint64_t bytes;
 	uint64_t packets;
 	uint64_t ts;
@@ -277,9 +276,9 @@  struct flm_v25_inf_data_s {
 	uint64_t cause : 3;
 	uint64_t pad : 60;
 	uint64_t eor : 1;
-};
+} __rte_packed_end;
 
-struct flm_v25_sta_data_s {
+struct __rte_packed_begin flm_v25_sta_data_s {
 	uint32_t id;
 	uint64_t lds : 1;
 	uint64_t lfs : 1;
@@ -292,8 +291,7 @@  struct flm_v25_sta_data_s {
 	uint64_t pis : 1;
 	uint64_t pad : 54;
 	uint64_t eor : 1;
-};
-#pragma pack()
+} __rte_packed_end;
 
 struct hw_mod_flm_v25_s {
 	struct flm_v25_control_s *control;
diff --git a/drivers/net/ntnic/nthw/core/nthw_spi_v3.c b/drivers/net/ntnic/nthw/core/nthw_spi_v3.c
index 0b611462a0..6ef739279a 100644
--- a/drivers/net/ntnic/nthw/core/nthw_spi_v3.c
+++ b/drivers/net/ntnic/nthw/core/nthw_spi_v3.c
@@ -171,26 +171,23 @@  int nthw_spi_v3_transfer(nthw_spi_v3_t *p, uint16_t opcode, struct tx_rx_buf *tx
 	const uint16_t max_payload_rx_size = rx_buf->size;
 	int result = 0;
 
-#pragma pack(push, 1)
-	union {
+	union __rte_packed_begin {
 		uint32_t raw;
 
 		struct {
 			uint16_t opcode;
 			uint16_t size;
 		};
-	} spi_tx_hdr;
+	} __rte_packed_end spi_tx_hdr;
 
-	union {
+	union __rte_packed_begin {
 		uint32_t raw;
 
 		struct {
 			uint16_t error_code;
 			uint16_t size;
 		};
-	} spi_rx_hdr;
-
-#pragma pack(pop)
+	} __rte_packed_end spi_rx_hdr;
 
 #ifdef SPI_V3_DEBUG_PRINT
 	NT_LOG_DBG(DBG, NTHW, "Started");
@@ -294,7 +291,9 @@  int nthw_spi_v3_transfer(nthw_spi_v3_t *p, uint16_t opcode, struct tx_rx_buf *tx
 				if (result != 0)
 					return result;
 
-				result = nthw_spis_read_rx_fifo(p->mp_spis_mod, &spi_rx_hdr.raw);
+				typeof(spi_rx_hdr.raw) raw;
+				result = nthw_spis_read_rx_fifo(p->mp_spis_mod, &raw);
+				spi_rx_hdr.raw = raw;
 
 				if (result != 0) {
 					NT_LOG(WRN, NTHW, "nthw_spis_read_rx_fifo failed");