Lines Matching refs:state
75 * struct efx_loopback_state - persistent state during a loopback selftest
288 struct efx_loopback_state *state = efx->loopback_selftest;
295 if ((state == NULL) || state->flush)
298 payload = &state->payload;
303 if (state->offload_csum)
360 atomic_inc(&state->rx_good);
365 if (atomic_read(&state->rx_bad) == 0) {
371 &state->payload.packet, EFX_LOOPBACK_PAYLOAD_LEN,
375 atomic_inc(&state->rx_bad);
381 struct efx_loopback_state *state = efx->loopback_selftest;
383 struct efx_loopback_payload *payload = &state->payload;
409 /* Fill out remaining state members */
410 atomic_set(&state->rx_good, 0);
411 atomic_set(&state->rx_bad, 0);
418 struct efx_loopback_state *state = efx->loopback_selftest;
425 for (i = 0; i < state->packet_count; i++) {
428 skb = alloc_skb(sizeof(state->payload), GFP_KERNEL);
431 state->skbs[i] = skb;
436 payload = skb_put(skb, sizeof(state->payload));
437 memcpy(payload, &state->payload, sizeof(state->payload));
456 i + 1, state->packet_count,
470 struct efx_loopback_state *state = efx->loopback_selftest;
472 return atomic_read(&state->rx_good) == state->packet_count;
479 struct efx_loopback_state *state = efx->loopback_selftest;
488 for (i = 0; i < state->packet_count; i++) {
489 skb = state->skbs[i];
498 rx_good = atomic_read(&state->rx_good);
499 rx_bad = atomic_read(&state->rx_bad);
500 if (tx_done != state->packet_count) {
507 tx_queue->label, tx_done, state->packet_count,
514 if (rx_good != state->packet_count) {
518 tx_queue->label, rx_good, state->packet_count,
525 lb_tests->tx_sent[tx_queue->label] += state->packet_count;
538 struct efx_loopback_state *state = efx->loopback_selftest;
543 state->packet_count = efx->txq_entries / 3;
544 state->packet_count = min(1 << (i << 2), state->packet_count);
545 state->skbs = kcalloc(state->packet_count,
546 sizeof(state->skbs[0]), GFP_KERNEL);
547 if (!state->skbs)
549 state->flush = false;
554 state->packet_count);
568 kfree(state->skbs);
581 state->packet_count);
622 struct efx_loopback_state *state;
629 * all received packets will be dropped. Mark the state as
631 state = kzalloc(sizeof(*state), GFP_KERNEL);
632 if (state == NULL)
635 state->flush = true;
636 efx->loopback_selftest = state;
644 state->flush = true;
666 state->offload_csum = (tx_queue->type &
677 state->flush = true;
680 kfree(state);
765 /* restore the PHY to the previous state */