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-...@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(-)

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");
-- 
2.47.1

Reply via email to