net/sfc: do not panic if alarms are not supported
Alarms are not supported on the FreeBSD.
Application must poll link status periodically itself using
rte_eth_link_get_nowait() to avoid management event queue overflow.
Fixes: 2de39f4e13
("net/sfc: periodic management EVQ polling using alarm")
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Andrew Lee <alee@solarflare.com>
Reviewed-by: Andy Moreton <amoreton@solarflare.com>
This commit is contained in:
parent
0603df73a0
commit
323706ab8b
@ -499,10 +499,14 @@ sfc_ev_mgmt_periodic_qpoll(void *arg)
|
|||||||
|
|
||||||
rc = rte_eal_alarm_set(SFC_MGMT_EV_QPOLL_PERIOD_US,
|
rc = rte_eal_alarm_set(SFC_MGMT_EV_QPOLL_PERIOD_US,
|
||||||
sfc_ev_mgmt_periodic_qpoll, sa);
|
sfc_ev_mgmt_periodic_qpoll, sa);
|
||||||
if (rc != 0)
|
if (rc == -ENOTSUP) {
|
||||||
sfc_panic(sa,
|
sfc_warn(sa, "alarms are not supported");
|
||||||
"cannot rearm management EVQ polling alarm (rc=%d)",
|
sfc_warn(sa, "management EVQ must be polled indirectly using no-wait link status update");
|
||||||
rc);
|
} else if (rc != 0) {
|
||||||
|
sfc_err(sa,
|
||||||
|
"cannot rearm management EVQ polling alarm (rc=%d)",
|
||||||
|
rc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
Reference in New Issue
Block a user