diff options
author | Damjan Marion <damarion@cisco.com> | 2018-07-11 13:29:17 +0200 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2018-07-11 13:22:36 +0000 |
commit | 9a02c54e4f3c53cbaceee4cbb30835113f0641ce (patch) | |
tree | 2f52ef058d9c5f071fc29b4ad4ff49cdf64a5694 /src/plugins/avf/avf.h | |
parent | 151b32249245880fbe4060769b7edc02026fe566 (diff) |
avf: descriptor should be volatile
Change-Id: I2cb4cf2167b6e958d2e57b461848a4a189e3fda0
Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'src/plugins/avf/avf.h')
-rw-r--r-- | src/plugins/avf/avf.h | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/src/plugins/avf/avf.h b/src/plugins/avf/avf.h index c8074ebf6c7..32bbb46fde4 100644 --- a/src/plugins/avf/avf.h +++ b/src/plugins/avf/avf.h @@ -38,19 +38,39 @@ enum #undef _ }; -typedef struct +typedef volatile struct { - u64 qword[4]; + union + { + struct + { + u64 mirr:13; + u64 rsv1:3; + u64 l2tag1:16; + u64 filter_status:32; + u64 status:19; + u64 error:8; + u64 rsv2:3; + u64 ptype:8; + u64 length:26; + }; + u64 qword[4]; +#ifdef CLIB_HAVE_VEC256 + u64x4 as_u64x4; +#endif + }; } avf_rx_desc_t; STATIC_ASSERT_SIZEOF (avf_rx_desc_t, 32); -typedef struct +typedef volatile struct { union { u64 qword[2]; +#ifdef CLIB_HAVE_VEC128 u64x2 as_u64x2; +#endif }; } avf_tx_desc_t; @@ -64,7 +84,7 @@ typedef struct u16 size; avf_rx_desc_t *descs; u32 *bufs; - u16 n_bufs; + u16 n_enqueued; } avf_rxq_t; typedef struct @@ -76,7 +96,7 @@ typedef struct clib_spinlock_t lock; avf_tx_desc_t *descs; u32 *bufs; - u16 n_bufs; + u16 n_enqueued; } avf_txq_t; typedef struct |