net/sfc/base: avoid division by 0 if no event queue timers

If event queue timers are not supported, enc_evq_timer_quantum_ns and
enc_evq_timer_max_us should be set to 0. Make sure that division by 0
does not happen in libefx, if public function efx_ev_usecs_to_ticks()
is used in this case.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
This commit is contained in:
Andrew Rybchenko 2019-02-07 16:29:41 +00:00 committed by Ferruh Yigit
parent 5661516f22
commit 40d2864c8a

View File

@ -566,6 +566,12 @@ efx_ev_usecs_to_ticks(
{
efx_nic_cfg_t *encp = &(enp->en_nic_cfg);
unsigned int ticks;
efx_rc_t rc;
if (encp->enc_evq_timer_quantum_ns == 0) {
rc = ENOTSUP;
goto fail1;
}
/* Convert microseconds to a timer tick count */
if (us == 0)
@ -577,6 +583,10 @@ efx_ev_usecs_to_ticks(
*ticksp = ticks;
return (0);
fail1:
EFSYS_PROBE1(fail1, efx_rc_t, rc);
return (rc);
}
__checkReturn efx_rc_t