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:
parent
5661516f22
commit
40d2864c8a
@ -566,6 +566,12 @@ efx_ev_usecs_to_ticks(
|
|||||||
{
|
{
|
||||||
efx_nic_cfg_t *encp = &(enp->en_nic_cfg);
|
efx_nic_cfg_t *encp = &(enp->en_nic_cfg);
|
||||||
unsigned int ticks;
|
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 */
|
/* Convert microseconds to a timer tick count */
|
||||||
if (us == 0)
|
if (us == 0)
|
||||||
@ -577,6 +583,10 @@ efx_ev_usecs_to_ticks(
|
|||||||
|
|
||||||
*ticksp = ticks;
|
*ticksp = ticks;
|
||||||
return (0);
|
return (0);
|
||||||
|
|
||||||
|
fail1:
|
||||||
|
EFSYS_PROBE1(fail1, efx_rc_t, rc);
|
||||||
|
return (rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
__checkReturn efx_rc_t
|
__checkReturn efx_rc_t
|
||||||
|
Loading…
x
Reference in New Issue
Block a user