Lines Matching refs:state

76  * struct efx_loopback_state - persistent state during a loopback selftest
289 struct efx_loopback_state *state = efx->loopback_selftest;
296 if ((state == NULL) || state->flush)
299 payload = &state->payload;
304 if (state->offload_csum)
361 atomic_inc(&state->rx_good);
366 if (atomic_read(&state->rx_bad) == 0) {
372 &state->payload.packet, EFX_LOOPBACK_PAYLOAD_LEN,
376 atomic_inc(&state->rx_bad);
382 struct efx_loopback_state *state = efx->loopback_selftest;
384 struct efx_loopback_payload *payload = &state->payload;
410 /* Fill out remaining state members */
411 atomic_set(&state->rx_good, 0);
412 atomic_set(&state->rx_bad, 0);
419 struct efx_loopback_state *state = efx->loopback_selftest;
426 for (i = 0; i < state->packet_count; i++) {
429 skb = alloc_skb(sizeof(state->payload), GFP_KERNEL);
432 state->skbs[i] = skb;
437 payload = skb_put(skb, sizeof(state->payload));
438 memcpy(payload, &state->payload, sizeof(state->payload));
457 i + 1, state->packet_count,
471 struct efx_loopback_state *state = efx->loopback_selftest;
473 return atomic_read(&state->rx_good) == state->packet_count;
480 struct efx_loopback_state *state = efx->loopback_selftest;
489 for (i = 0; i < state->packet_count; i++) {
490 skb = state->skbs[i];
499 rx_good = atomic_read(&state->rx_good);
500 rx_bad = atomic_read(&state->rx_bad);
501 if (tx_done != state->packet_count) {
508 tx_queue->label, tx_done, state->packet_count,
515 if (rx_good != state->packet_count) {
519 tx_queue->label, rx_good, state->packet_count,
526 lb_tests->tx_sent[tx_queue->label] += state->packet_count;
539 struct efx_loopback_state *state = efx->loopback_selftest;
544 state->packet_count = efx->txq_entries / 3;
545 state->packet_count = min(1 << (i << 2), state->packet_count);
546 state->skbs = kcalloc(state->packet_count,
547 sizeof(state->skbs[0]), GFP_KERNEL);
548 if (!state->skbs)
550 state->flush = false;
555 state->packet_count);
569 kfree(state->skbs);
582 state->packet_count);
627 struct efx_loopback_state *state;
634 * all received packets will be dropped. Mark the state as
636 state = kzalloc(sizeof(*state), GFP_KERNEL);
637 if (state == NULL)
640 state->flush = true;
641 efx->loopback_selftest = state;
649 state->flush = true;
671 state->offload_csum = (tx_queue->type &
682 state->flush = true;
685 kfree(state);
770 /* restore the PHY to the previous state */