| .. | .. |
|---|
| 35 | 35 | |
|---|
| 36 | 36 | #define ENA_REGS_ADMIN_INTR_MASK 1 |
|---|
| 37 | 37 | |
|---|
| 38 | +#define ENA_MAX_BACKOFF_DELAY_EXP 16U |
|---|
| 39 | + |
|---|
| 38 | 40 | #define ENA_MIN_ADMIN_POLL_US 100 |
|---|
| 39 | 41 | |
|---|
| 40 | 42 | #define ENA_MAX_ADMIN_POLL_US 5000 |
|---|
| .. | .. |
|---|
| 522 | 524 | |
|---|
| 523 | 525 | static void ena_delay_exponential_backoff_us(u32 exp, u32 delay_us) |
|---|
| 524 | 526 | { |
|---|
| 527 | + exp = min_t(u32, exp, ENA_MAX_BACKOFF_DELAY_EXP); |
|---|
| 525 | 528 | delay_us = max_t(u32, ENA_MIN_ADMIN_POLL_US, delay_us); |
|---|
| 526 | 529 | delay_us = min_t(u32, delay_us * (1U << exp), ENA_MAX_ADMIN_POLL_US); |
|---|
| 527 | 530 | usleep_range(delay_us, 2 * delay_us); |
|---|