Kernel workqueues were disabled due to flawed use of kernel VA and SVA
API. Now that we have the support for attaching PASID to the device's
default domain and the ability to reserve global PASIDs from SVA APIs,
we can re-enable the kernel work queues and use them under DMA API.
We also use non-privileged access for in-kernel DMA to be consistent
with the IOMMU settings. Consequently, interrupt for user privilege is
enabled for work completion IRQs.
Link:https://lore.kernel.org/linux-iommu/20210511194726.GP1002214@xxxxxxxxxx/
Reviewed-by: Dave Jiang<dave.jiang@xxxxxxxxx>
Reviewed-by: Fenghua Yu<fenghua.yu@xxxxxxxxx>
Signed-off-by: Jacob Pan<jacob.jun.pan@xxxxxxxxxxxxxxx>