Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/cxgbe/t4_main.c
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
Show First 20 Lines • Show All 5,387 Lines • ▼ Show 20 Lines | |||||
#ifdef KERN_TLS | #ifdef KERN_TLS | ||||
static void | static void | ||||
ktls_tick(void *arg) | ktls_tick(void *arg) | ||||
{ | { | ||||
struct adapter *sc; | struct adapter *sc; | ||||
uint32_t tstamp; | uint32_t tstamp; | ||||
sc = arg; | sc = arg; | ||||
if (sc->flags & KERN_TLS_ON) { | |||||
tstamp = tcp_ts_getticks(); | tstamp = tcp_ts_getticks(); | ||||
t4_write_reg(sc, A_TP_SYNC_TIME_HI, tstamp >> 1); | t4_write_reg(sc, A_TP_SYNC_TIME_HI, tstamp >> 1); | ||||
t4_write_reg(sc, A_TP_SYNC_TIME_LO, tstamp << 31); | t4_write_reg(sc, A_TP_SYNC_TIME_LO, tstamp << 31); | ||||
} | |||||
callout_schedule_sbt(&sc->ktls_tick, SBT_1MS, 0, C_HARDCLOCK); | callout_schedule_sbt(&sc->ktls_tick, SBT_1MS, 0, C_HARDCLOCK); | ||||
} | } | ||||
static int | static int | ||||
t4_config_kern_tls(struct adapter *sc, bool enable) | t4_config_kern_tls(struct adapter *sc, bool enable) | ||||
{ | { | ||||
int rc; | int rc; | ||||
uint32_t param = V_FW_PARAMS_MNEM(FW_PARAMS_MNEM_DEV) | | uint32_t param = V_FW_PARAMS_MNEM(FW_PARAMS_MNEM_DEV) | | ||||
V_FW_PARAMS_PARAM_X(FW_PARAMS_PARAM_DEV_KTLS_HW) | | V_FW_PARAMS_PARAM_X(FW_PARAMS_PARAM_DEV_KTLS_HW) | | ||||
V_FW_PARAMS_PARAM_Y(enable ? 1 : 0) | | V_FW_PARAMS_PARAM_Y(enable ? 1 : 0) | | ||||
V_FW_PARAMS_PARAM_Z(FW_PARAMS_PARAM_DEV_KTLS_HW_USER_ENABLE); | V_FW_PARAMS_PARAM_Z(FW_PARAMS_PARAM_DEV_KTLS_HW_USER_ENABLE); | ||||
rc = -t4_set_params(sc, sc->mbox, sc->pf, 0, 1, ¶m, ¶m); | rc = -t4_set_params(sc, sc->mbox, sc->pf, 0, 1, ¶m, ¶m); | ||||
if (rc != 0) { | if (rc != 0) { | ||||
CH_ERR(sc, "failed to %s NIC TLS: %d\n", | CH_ERR(sc, "failed to %s NIC TLS: %d\n", | ||||
enable ? "enable" : "disable", rc); | enable ? "enable" : "disable", rc); | ||||
return (rc); | return (rc); | ||||
} | } | ||||
if (enable) | if (enable) { | ||||
sc->flags |= KERN_TLS_ON; | sc->flags |= KERN_TLS_ON; | ||||
else | callout_reset_sbt(&sc->ktls_tick, SBT_1MS, 0, ktls_tick, sc, | ||||
C_HARDCLOCK); | |||||
} else { | |||||
sc->flags &= ~KERN_TLS_ON; | sc->flags &= ~KERN_TLS_ON; | ||||
callout_stop(&sc->ktls_tick); | |||||
} | |||||
return (rc); | return (rc); | ||||
} | } | ||||
#endif | #endif | ||||
static int | static int | ||||
set_params__post_init(struct adapter *sc) | set_params__post_init(struct adapter *sc) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 1,031 Lines • ▼ Show 20 Lines | for (i = 0; i < nitems(sc->tq); i++) { | ||||
taskqueue_start_threads(&sc->tq[i], 1, PI_NET, "%s tq%d", | taskqueue_start_threads(&sc->tq[i], 1, PI_NET, "%s tq%d", | ||||
device_get_nameunit(sc->dev), i); | device_get_nameunit(sc->dev), i); | ||||
} | } | ||||
if (!(sc->flags & IS_VF)) { | if (!(sc->flags & IS_VF)) { | ||||
write_global_rss_key(sc); | write_global_rss_key(sc); | ||||
t4_intr_enable(sc); | t4_intr_enable(sc); | ||||
} | } | ||||
#ifdef KERN_TLS | |||||
if (is_ktls(sc)) | |||||
callout_reset_sbt(&sc->ktls_tick, SBT_1MS, 0, ktls_tick, sc, | |||||
C_HARDCLOCK); | |||||
#endif | |||||
return (0); | return (0); | ||||
} | } | ||||
int | int | ||||
adapter_init(struct adapter *sc) | adapter_init(struct adapter *sc) | ||||
{ | { | ||||
int rc; | int rc; | ||||
▲ Show 20 Lines • Show All 6,590 Lines • Show Last 20 Lines |