Lines Matching refs:ena

24 	ena_t *ena = arg;  in ena_watchdog()  local
41 if (ena->ena_state & ENA_STATE_ERROR) { in ena_watchdog()
42 atomic_and_32(&ena->ena_state, ~ENA_STATE_ERROR); in ena_watchdog()
47 statusreg = ena_hw_bar_read32(ena, ENAHW_REG_DEV_STS); in ena_watchdog()
54 if (ena->ena_watchdog_last_keepalive > 0 && in ena_watchdog()
55 gethrtime() - ena->ena_watchdog_last_keepalive > in ena_watchdog()
63 for (uint_t i = 0; i < ena->ena_num_txqs; i++) { in ena_watchdog()
64 ena_txq_t *txq = &ena->ena_txqs[i]; in ena_watchdog()
89 mutex_enter(&ena->ena_lock); in ena_watchdog()
92 ena->ena_device_stat.eds_reset_forced.value.ui64++; in ena_watchdog()
93 ena_err(ena, "forced reset"); in ena_watchdog()
101 ena->ena_device_stat.eds_reset_error.value.ui64++; in ena_watchdog()
102 ena_err(ena, "error state detected"); in ena_watchdog()
103 reason = ena->ena_reset_reason; in ena_watchdog()
106 ena->ena_device_stat.eds_reset_fatal.value.ui64++; in ena_watchdog()
107 ena_err(ena, "device reports fatal error (status 0x%x)" in ena_watchdog()
112 ena->ena_device_stat.eds_reset_keepalive.value.ui64++; in ena_watchdog()
113 ena_err(ena, "device keepalive timeout"); in ena_watchdog()
117 ena->ena_device_stat.eds_reset_txstall.value.ui64++; in ena_watchdog()
118 ena_err(ena, "TX ring 0x%x appears stalled, resetting", in ena_watchdog()
123 ena_panic(ena, "unhandled case in reset switch"); in ena_watchdog()
125 ena->ena_reset_reason = reason; in ena_watchdog()
126 mutex_exit(&ena->ena_lock); in ena_watchdog()
128 if (!ena_reset(ena, reason)) in ena_watchdog()
129 ena_panic(ena, "failed to reset device"); in ena_watchdog()
134 ena_enable_watchdog(ena_t *ena) in ena_enable_watchdog() argument
136 mutex_enter(&ena->ena_watchdog_lock); in ena_enable_watchdog()
137 if (ena->ena_watchdog_periodic == NULL) { in ena_enable_watchdog()
138 ena->ena_watchdog_periodic = ddi_periodic_add(ena_watchdog, in ena_enable_watchdog()
139 (void *)ena, ENA_WATCHDOG_INTERVAL_NS, DDI_IPL_0); in ena_enable_watchdog()
141 mutex_exit(&ena->ena_watchdog_lock); in ena_enable_watchdog()
145 ena_disable_watchdog(ena_t *ena) in ena_disable_watchdog() argument
147 mutex_enter(&ena->ena_watchdog_lock); in ena_disable_watchdog()
148 if (ena->ena_watchdog_periodic != NULL) { in ena_disable_watchdog()
149 ddi_periodic_delete(ena->ena_watchdog_periodic); in ena_disable_watchdog()
150 ena->ena_watchdog_periodic = NULL; in ena_disable_watchdog()
152 mutex_exit(&ena->ena_watchdog_lock); in ena_disable_watchdog()