summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/intel/io/viona/viona_rx.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/usr/src/uts/intel/io/viona/viona_rx.c b/usr/src/uts/intel/io/viona/viona_rx.c
index e6f6f421d5..03e4698b29 100644
--- a/usr/src/uts/intel/io/viona/viona_rx.c
+++ b/usr/src/uts/intel/io/viona/viona_rx.c
@@ -36,6 +36,7 @@
* Copyright 2015 Pluribus Networks Inc.
* Copyright 2019 Joyent, Inc.
* Copyright 2022 Oxide Computer Company
+ * Copyright 2022 Michael Zeller
*/
#include <sys/types.h>
@@ -133,7 +134,13 @@ viona_worker_rx(viona_vring_t *ring, viona_link_t *link)
mac_rx_barrier(link->l_mch);
mutex_enter(&ring->vr_lock);
- viona_ring_enable_notify(ring);
+ /*
+ * If we bailed while renewing the ring lease, we cannot reset
+ * USED_NO_NOTIFY, since we lack a valid mapping to do so.
+ */
+ if (ring->vr_lease != NULL) {
+ viona_ring_enable_notify(ring);
+ }
}
static size_t