Hi Rob, Jean,
On Fri, Sep 22, 2017 at 02:42:44PM -0400, Rob Clark wrote:
I'm in favour if splitting the reporting *somehow*.. the two
approaches that seemed sane are:
1) call fault handler from irq and having separate domain->resume()
called by the driver, potentially from a wq
2) or having two fault callbacks, first called before wq and then
based on returned value, optionally 2nd callback called from wq
The first seemed less intrusive to me, but I'm flexible.
How about adding a flag to the fault-handler call-back that tells us
whether it wants to sleep or not. If it wants, we call it from a wq, if
not we call call it directly like we do today in the
report_iommu_fault() function.
In any case we call iommu_ops->resume() when set on completion of the
fault-handler either from the workqueue or report_iommu_fault itself.
Regards,
Joerg