summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorarybchik <arybchik@FreeBSD.org>2017-01-01 19:16:57 +0000
committerarybchik <arybchik@FreeBSD.org>2017-01-01 19:16:57 +0000
commit383532fe2345f3881b7d69d961b89c989a034c4c (patch)
tree8587873003ee52308db9d5b5e969182d9eecc8df
parent43403d3ce1addd6936d57d617606042aa64d69fc (diff)
downloadFreeBSD-src-383532fe2345f3881b7d69d961b89c989a034c4c.zip
FreeBSD-src-383532fe2345f3881b7d69d961b89c989a034c4c.tar.gz
MFC r310755
sfxge(4): do not use enum for filter flags It is not 100% correct to assign non-enum values to enum type variables. Found by ICC build (DPDK PMD upstreaming). Sponsored by: Solarflare Communications, Inc.
-rw-r--r--sys/dev/sfxge/common/ef10_filter.c10
-rw-r--r--sys/dev/sfxge/common/efx.h32
-rw-r--r--sys/dev/sfxge/common/efx_filter.c2
3 files changed, 23 insertions, 21 deletions
diff --git a/sys/dev/sfxge/common/ef10_filter.c b/sys/dev/sfxge/common/ef10_filter.c
index 20049a3..1fc7cf4 100644
--- a/sys/dev/sfxge/common/ef10_filter.c
+++ b/sys/dev/sfxge/common/ef10_filter.c
@@ -985,7 +985,7 @@ static __checkReturn efx_rc_t
ef10_filter_insert_unicast(
__in efx_nic_t *enp,
__in_ecount(6) uint8_t const *addr,
- __in efx_filter_flag_t filter_flags)
+ __in efx_filter_flags_t filter_flags)
{
ef10_filter_table_t *eftp = enp->en_filter.ef_ef10_filter_table;
efx_filter_spec_t spec;
@@ -1016,7 +1016,7 @@ fail1:
static __checkReturn efx_rc_t
ef10_filter_insert_all_unicast(
__in efx_nic_t *enp,
- __in efx_filter_flag_t filter_flags)
+ __in efx_filter_flags_t filter_flags)
{
ef10_filter_table_t *eftp = enp->en_filter.ef_ef10_filter_table;
efx_filter_spec_t spec;
@@ -1050,7 +1050,7 @@ ef10_filter_insert_multicast_list(
__in boolean_t brdcst,
__in_ecount(6*count) uint8_t const *addrs,
__in uint32_t count,
- __in efx_filter_flag_t filter_flags,
+ __in efx_filter_flags_t filter_flags,
__in boolean_t rollback)
{
ef10_filter_table_t *eftp = enp->en_filter.ef_ef10_filter_table;
@@ -1143,7 +1143,7 @@ fail1:
static __checkReturn efx_rc_t
ef10_filter_insert_all_multicast(
__in efx_nic_t *enp,
- __in efx_filter_flag_t filter_flags)
+ __in efx_filter_flags_t filter_flags)
{
ef10_filter_table_t *eftp = enp->en_filter.ef_ef10_filter_table;
efx_filter_spec_t spec;
@@ -1245,7 +1245,7 @@ ef10_filter_reconfigure(
{
efx_nic_cfg_t *encp = &enp->en_nic_cfg;
ef10_filter_table_t *table = enp->en_filter.ef_ef10_filter_table;
- efx_filter_flag_t filter_flags;
+ efx_filter_flags_t filter_flags;
unsigned int i;
efx_rc_t all_unicst_rc = 0;
efx_rc_t all_mulcst_rc = 0;
diff --git a/sys/dev/sfxge/common/efx.h b/sys/dev/sfxge/common/efx.h
index cdc956b..068fdda 100644
--- a/sys/dev/sfxge/common/efx.h
+++ b/sys/dev/sfxge/common/efx.h
@@ -2180,20 +2180,22 @@ efx_tx_qdestroy(
#define EFX_IPPROTO_TCP 6
#define EFX_IPPROTO_UDP 17
-typedef enum efx_filter_flag_e {
- EFX_FILTER_FLAG_RX_RSS = 0x01, /* use RSS to spread across
- * multiple queues */
- EFX_FILTER_FLAG_RX_SCATTER = 0x02, /* enable RX scatter */
- EFX_FILTER_FLAG_RX_OVER_AUTO = 0x04, /* Override an automatic filter
- * (priority EFX_FILTER_PRI_AUTO).
- * May only be set by the filter
- * implementation for each type.
- * A removal request will
- * restore the automatic filter
- * in its place. */
- EFX_FILTER_FLAG_RX = 0x08, /* Filter is for RX */
- EFX_FILTER_FLAG_TX = 0x10, /* Filter is for TX */
-} efx_filter_flag_t;
+/* Use RSS to spread across multiple queues */
+#define EFX_FILTER_FLAG_RX_RSS 0x01
+/* Enable RX scatter */
+#define EFX_FILTER_FLAG_RX_SCATTER 0x02
+/*
+ * Override an automatic filter (priority EFX_FILTER_PRI_AUTO).
+ * May only be set by the filter implementation for each type.
+ * A removal request will restore the automatic filter in its place.
+ */
+#define EFX_FILTER_FLAG_RX_OVER_AUTO 0x04
+/* Filter is for RX */
+#define EFX_FILTER_FLAG_RX 0x08
+/* Filter is for TX */
+#define EFX_FILTER_FLAG_TX 0x10
+
+typedef unsigned int efx_filter_flags_t;
typedef enum efx_filter_match_flags_e {
EFX_FILTER_MATCH_REM_HOST = 0x0001, /* Match by remote IP host
@@ -2289,7 +2291,7 @@ extern void
efx_filter_spec_init_rx(
__out efx_filter_spec_t *spec,
__in efx_filter_priority_t priority,
- __in efx_filter_flag_t flags,
+ __in efx_filter_flags_t flags,
__in efx_rxq_t *erp);
extern void
diff --git a/sys/dev/sfxge/common/efx_filter.c b/sys/dev/sfxge/common/efx_filter.c
index dd62b59..64c7123 100644
--- a/sys/dev/sfxge/common/efx_filter.c
+++ b/sys/dev/sfxge/common/efx_filter.c
@@ -276,7 +276,7 @@ fail1:
efx_filter_spec_init_rx(
__out efx_filter_spec_t *spec,
__in efx_filter_priority_t priority,
- __in efx_filter_flag_t flags,
+ __in efx_filter_flags_t flags,
__in efx_rxq_t *erp)
{
EFSYS_ASSERT3P(spec, !=, NULL);
OpenPOWER on IntegriCloud