HomeFreeBSD

Split ENA reset routine into restore and destroy stages

Description

Split ENA reset routine into restore and destroy stages

For alignment with Linux driver and better handling ena_detach(), the
reset is now calling ena_device_restore() and ena_device_destroy().

The ena_device_destroy() is also being called on ena_detach(), so the
code will be more readable.

The watchdog is now being activated after reset only, if it was active
before.

There were added additional checks to ensure, that there is no race with
the link state change AENQ handler.

Submitted by: Michal Krawczyk <mk@semihalf.com>
Obtained from: Semihalf
Sponsored by: Amazon, Inc.

Details

Provenance
mwAuthored on May 30 2019, 1:39 PM
Parents
rGfd43fd2af08e: Use bitfield for storing global ENA device states
Branches
Unknown
Tags
Unknown