Lines Matching refs:e
73 struct smt_entry *end, *e; in t4_find_or_alloc_sme() local
77 for (e = &s->smtab[0], end = &s->smtab[s->smt_size]; e != end; ++e) { in t4_find_or_alloc_sme()
78 if (atomic_load_acq_int(&e->refcnt) == 0) { in t4_find_or_alloc_sme()
80 first_free = e; in t4_find_or_alloc_sme()
82 if (e->state == SMT_STATE_SWITCHING) { in t4_find_or_alloc_sme()
87 if (memcmp(e->smac, smac, ETHER_ADDR_LEN) == 0) in t4_find_or_alloc_sme()
93 e = first_free; in t4_find_or_alloc_sme()
99 e->state = SMT_STATE_UNUSED; in t4_find_or_alloc_sme()
101 atomic_add_int(&e->refcnt, 1); in t4_find_or_alloc_sme()
102 return e; in t4_find_or_alloc_sme()
109 t4_write_sme(struct smt_entry *e) in t4_write_sme() argument
119 mtx_assert(&e->lock, MA_OWNED); in t4_write_sme()
121 MPASS(e->wrq != NULL); in t4_write_sme()
122 wrq = e->wrq; in t4_write_sme()
139 row = (e->idx >> 1); in t4_write_sme()
140 if (e->idx & 1) { in t4_write_sme()
142 memcpy(req->src_mac1, e->smac, ETHER_ADDR_LEN); in t4_write_sme()
147 memcpy(req->src_mac0, s->smtab[e->idx - 1].smac, in t4_write_sme()
151 memcpy(req->src_mac0, e->smac, ETHER_ADDR_LEN); in t4_write_sme()
156 memcpy(req->src_mac1, s->smtab[e->idx + 1].smac, in t4_write_sme()
169 memcpy(req->src_mac0, s->smtab[e->idx].smac, ETHER_ADDR_LEN); in t4_write_sme()
170 row = e->idx; in t4_write_sme()
172 OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_SMT_WRITE_REQ, e->idx | in t4_write_sme()
173 V_TID_QID(e->iqid))); in t4_write_sme()
189 struct smt_entry *e; in t4_smt_alloc_switching() local
193 e = t4_find_or_alloc_sme(s, smac); in t4_smt_alloc_switching()
195 return e; in t4_smt_alloc_switching()
203 t4_smt_set_switching(struct adapter *sc, struct smt_entry *e, uint16_t pfvf, in t4_smt_set_switching() argument
208 if (atomic_load_acq_int(&e->refcnt) == 1) { in t4_smt_set_switching()
210 mtx_lock(&e->lock); in t4_smt_set_switching()
211 e->wrq = &sc->sge.ctrlq[0]; in t4_smt_set_switching()
212 e->iqid = sc->sge.fwq.abs_id; in t4_smt_set_switching()
213 e->pfvf = pfvf; in t4_smt_set_switching()
214 e->state = SMT_STATE_SWITCHING; in t4_smt_set_switching()
215 memcpy(e->smac, smac, ETHER_ADDR_LEN); in t4_smt_set_switching()
216 rc = t4_write_sme(e); in t4_smt_set_switching()
217 mtx_unlock(&e->lock); in t4_smt_set_switching()
239 struct smt_entry *e = &s->smtab[i]; in t4_init_smt() local
241 e->idx = i; in t4_init_smt()
242 e->state = SMT_STATE_UNUSED; in t4_init_smt()
243 mtx_init(&e->lock, "SMT_E", NULL, MTX_DEF); in t4_init_smt()
244 atomic_store_rel_int(&e->refcnt, 0); in t4_init_smt()
275 struct smt_entry *e = &sc->smt->smtab[smtidx]; in do_smt_write_rpl() local
279 mtx_lock(&e->lock); in do_smt_write_rpl()
280 e->state = SMT_STATE_ERROR; in do_smt_write_rpl()
281 mtx_unlock(&e->lock); in do_smt_write_rpl()
289 smt_state(const struct smt_entry *e) in smt_state() argument
291 switch (e->state) { in smt_state()
303 struct smt_entry *e; in sysctl_smt() local
318 e = &smt->smtab[0]; in sysctl_smt()
319 for (i = 0; i < smt->smt_size; i++, e++) { in sysctl_smt()
320 mtx_lock(&e->lock); in sysctl_smt()
321 if (e->state == SMT_STATE_UNUSED) in sysctl_smt()
331 e->idx, e->smac[0], e->smac[1], e->smac[2], in sysctl_smt()
332 e->smac[3], e->smac[4], e->smac[5], in sysctl_smt()
333 smt_state(e), atomic_load_acq_int(&e->refcnt)); in sysctl_smt()
335 mtx_unlock(&e->lock); in sysctl_smt()