Page MenuHomeFreeBSD
Authored By
gallatin
Dec 15 2021, 6:49 PM
Size
2 KB
Referenced Files
None
Subscribers
None
diff --git a/sys/dev/oce/oce_if.c b/sys/dev/oce/oce_if.c
index 271c35015a9..1127565282c 100644
--- a/sys/dev/oce/oce_if.c
+++ b/sys/dev/oce/oce_if.c
@@ -2039,14 +2039,17 @@ oce_rq_handler_lro(void *arg)
uint16_t
oce_rq_handler(void *arg)
{
+ struct epoch_tracker et;
struct oce_rq *rq = (struct oce_rq *)arg;
struct oce_cq *cq = rq->cq;
POCE_SOFTC sc = rq->parent;
struct oce_nic_rx_cqe *cqe;
int num_cqes = 0;
+ NET_EPOCH_ENTER(et);
if(rq->islro) {
oce_rq_handler_lro(arg);
+ NET_EPOCH_EXIT(et);
return 0;
}
LOCK(&rq->rx_lock);
@@ -2090,6 +2093,7 @@ oce_rq_handler(void *arg)
oce_check_rx_bufs(sc, num_cqes, rq);
UNLOCK(&rq->rx_lock);
+ NET_EPOCH_EXIT(et);
return 0;
}
@@ -2110,7 +2114,7 @@ oce_attach_ifp(POCE_SOFTC sc)
ifmedia_add(&sc->media, IFM_ETHER | IFM_AUTO, 0, NULL);
ifmedia_set(&sc->media, IFM_ETHER | IFM_AUTO);
- sc->ifp->if_flags = IFF_BROADCAST | IFF_MULTICAST;
+ sc->ifp->if_flags = IFF_BROADCAST | IFF_MULTICAST | IFF_KNOWSEPOCH;
sc->ifp->if_ioctl = oce_ioctl;
sc->ifp->if_start = oce_start;
sc->ifp->if_init = oce_init;
diff --git a/sys/dev/oce/oce_if.h b/sys/dev/oce/oce_if.h
index 8938dd86ecc..4ddce2aab59 100644
--- a/sys/dev/oce/oce_if.h
+++ b/sys/dev/oce/oce_if.h
@@ -43,6 +43,7 @@
#include <sys/param.h>
#include <sys/endian.h>
#include <sys/eventhandler.h>
+#include <sys/epoch.h>
#include <sys/malloc.h>
#include <sys/module.h>
#include <sys/kernel.h>
diff --git a/sys/dev/oce/oce_queue.c b/sys/dev/oce/oce_queue.c
index 04c92a5f397..1308ca1ab70 100644
--- a/sys/dev/oce/oce_queue.c
+++ b/sys/dev/oce/oce_queue.c
@@ -1233,12 +1233,14 @@ oce_rx_cq_clean(struct oce_rq *rq)
void
oce_stop_rx(POCE_SOFTC sc)
{
+ struct epoch_tracker et;
struct oce_mbx mbx;
struct mbx_delete_nic_rq *fwcmd;
struct mbx_delete_nic_rq_v1 *fwcmd1;
struct oce_rq *rq;
int i = 0;
+ NET_EPOCH_ENTER(et);
/* before deleting disable hwlro */
if(sc->enable_hwlro)
oce_mbox_nic_set_iface_lro_config(sc, 0);
@@ -1274,6 +1276,7 @@ oce_stop_rx(POCE_SOFTC sc)
UNLOCK(&rq->rx_lock);
}
}
+ NET_EPOCH_EXIT(et);
}
int

File Metadata

Mime Type
text/x-diff
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4342501
Default Alt Text
t.diff (2 KB)

Event Timeline