Introduce a new devmethod for handling any admin irq logicFor interfaces with admin completion queues, such asintroduce a new devmethod
serving asynchronous events, which cannot be run from an interrupt
contextIFDI_ADMIN_COMPLETION_HANDLE and a corresponding flag IFLIB_HAS_ADMINCQ.
This method is called from within iflib'sprovides an option for handling any admin taskcq logic, making it safe towhich cannot be
sleeprun from an interrupt context.
Background:Said method is called from within iflib's admin task, making it safe to
When working on porting the Amazon ENA driver to iflib, we faced an
issue with processing the Asynchronous Event Notification Queues (AENQ).
As the AENQ handler expects to sleep, we cannot simply register a filter
in `iflib_irq_alloc_generic` and deal with it there. Furthermore, since
iflib already sets up its own admin task, we think that it justifies
creating a new devmethod and calling it from said place, rather than
spawning a custom task on the driver side and running it in parallelsleep.
Submitted by: Artur Rojek <ar@semihalf.com>
Obtained from: Semihalf
Sponsored by: Amazon, Inc.