summaryrefslogtreecommitdiff
path: root/kernel/dma/ops_helpers.c
diff options
context:
space:
mode:
authorLennert Buytenhek <buytenh@wantstofly.org>2021-09-28 13:44:21 +0300
committerJoerg Roedel <jroedel@suse.de>2021-09-29 15:05:20 +0300
commit9f78e446bde812d18f228976f2c6b8f25b93f08b (patch)
tree44179bd46b7d602459e25cc964afdfbc41dc1fa7 /kernel/dma/ops_helpers.c
parent5816b3e6577eaa676ceb00a848f0fd65fe2adc29 (diff)
downloadlinux-9f78e446bde812d18f228976f2c6b8f25b93f08b.tar.xz
iommu/amd: Use report_iommu_fault()
This patch makes iommu/amd call report_iommu_fault() when an I/O page fault occurs, which has two effects: 1) It allows device drivers to register a callback to be notified of I/O page faults, via the iommu_set_fault_handler() API. 2) It triggers the io_page_fault tracepoint in report_iommu_fault() when an I/O page fault occurs. The latter point is the main aim of this patch, as it allows rasdaemon-like daemons to be notified of I/O page faults, and to possibly initiate corrective action in response. A number of other IOMMU drivers already use report_iommu_fault(), and I/O page faults on those IOMMUs therefore already trigger this tracepoint -- but this isn't yet the case for AMD-Vi and Intel DMAR. The AMD IOMMU specification suggests that the bit in an I/O page fault event log entry that signals whether an I/O page fault was for a read request or for a write request is only meaningful when the faulting access was to a present page, but some testing on a Ryzen 3700X suggests that this bit encodes the correct value even for I/O page faults to non-present pages, and therefore, this patch passes the R/W information up the stack even for I/O page faults to non-present pages. Signed-off-by: Lennert Buytenhek <buytenh@arista.com> Link: https://lore.kernel.org/r/YVLyBW97vZLpOaAp@wantstofly.org Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'kernel/dma/ops_helpers.c')
0 files changed, 0 insertions, 0 deletions