aboutsummaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/ena/ena.c5
-rw-r--r--sys/dev/ena/ena.h2
-rw-r--r--sys/dev/ena/ena_netmap.c8
-rw-r--r--sys/dev/ena/ena_rss.h3
-rw-r--r--sys/dev/virtio/virtqueue.c6
5 files changed, 15 insertions, 9 deletions
diff --git a/sys/dev/ena/ena.c b/sys/dev/ena/ena.c
index af158b5aea1d..eddb7dbd42e8 100644
--- a/sys/dev/ena/ena.c
+++ b/sys/dev/ena/ena.c
@@ -1861,7 +1861,7 @@ ena_setup_io_intr(struct ena_adapter *adapter)
adapter->que[i].domain = idx;
#else
adapter->que[i].domain = -1;
-#endif
+#endif /* RSS */
}
return (0);
@@ -2766,8 +2766,7 @@ ena_set_llq_configurations(struct ena_llq_configurations *llq_config,
llq_config->llq_num_decs_before_header =
ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_2;
- switch (ena_force_large_llq_header)
- {
+ switch (ena_force_large_llq_header) {
case ENA_LLQ_HEADER_SIZE_POLICY_REGULAR:
use_large_llq = false;
break;
diff --git a/sys/dev/ena/ena.h b/sys/dev/ena/ena.h
index 3b01605b4ba7..f67c7002327d 100644
--- a/sys/dev/ena/ena.h
+++ b/sys/dev/ena/ena.h
@@ -39,7 +39,7 @@
#define ENA_DRV_MODULE_VER_MAJOR 2
#define ENA_DRV_MODULE_VER_MINOR 8
-#define ENA_DRV_MODULE_VER_SUBMINOR 1
+#define ENA_DRV_MODULE_VER_SUBMINOR 2
#define ENA_DRV_MODULE_NAME "ena"
diff --git a/sys/dev/ena/ena_netmap.c b/sys/dev/ena/ena_netmap.c
index 8a220373ec3f..0e8c95fb289a 100644
--- a/sys/dev/ena/ena_netmap.c
+++ b/sys/dev/ena/ena_netmap.c
@@ -223,9 +223,11 @@ ena_ring_in_netmap(struct ena_adapter *adapter, int qid, enum txrx x)
if (if_getcapenable(adapter->ifp) & IFCAP_NETMAP) {
na = NA(adapter->ifp);
- kring = (x == NR_RX) ? na->rx_rings[qid] : na->tx_rings[qid];
- if (kring->nr_mode == NKR_NETMAP_ON)
- return true;
+ if (na->na_flags & NAF_NATIVE) {
+ kring = (x == NR_RX) ? na->rx_rings[qid] : na->tx_rings[qid];
+ if (kring->nr_mode == NKR_NETMAP_ON)
+ return true;
+ }
}
return false;
}
diff --git a/sys/dev/ena/ena_rss.h b/sys/dev/ena/ena_rss.h
index b7c5181397af..d1236ef26c33 100644
--- a/sys/dev/ena/ena_rss.h
+++ b/sys/dev/ena/ena_rss.h
@@ -35,11 +35,10 @@
#include "opt_rss.h"
#include <sys/types.h>
+#include "ena.h"
#include <net/rss_config.h>
-#include "ena.h"
-
#define ENA_RX_RSS_MSG_RECORD_SZ 8
struct ena_indir {
diff --git a/sys/dev/virtio/virtqueue.c b/sys/dev/virtio/virtqueue.c
index dbd55e02e091..b7fdb4703ccb 100644
--- a/sys/dev/virtio/virtqueue.c
+++ b/sys/dev/virtio/virtqueue.c
@@ -565,6 +565,9 @@ virtqueue_notify(struct virtqueue *vq)
/* Ensure updated avail->idx is visible to host. */
bus_dmamap_sync(vq->vq_ring_dmat, vq->vq_ring_mapp,
BUS_DMASYNC_PREWRITE);
+#if defined(__i386__) || defined(__amd64__)
+ mb();
+#endif
if (vq_ring_must_notify_host(vq))
vq_ring_notify_host(vq);
@@ -960,6 +963,9 @@ vq_ring_enable_interrupt(struct virtqueue *vq, uint16_t ndesc)
bus_dmamap_sync(vq->vq_ring_dmat, vq->vq_ring_mapp,
BUS_DMASYNC_PREWRITE);
+#if defined(__i386__) || defined(__amd64__)
+ mb();
+#endif
/*
* Enough items may have already been consumed to meet our threshold