diff options
author | Sven Peter <sven@svenpeter.dev> | 2023-01-28 12:35:32 +0100 |
---|---|---|
committer | Joerg Roedel <jroedel@suse.de> | 2023-02-03 10:56:01 +0100 |
commit | cf5c1c87c2391649e05e58ecc6dfc3dc5ebebc05 (patch) | |
tree | 5c0514daad83a25e562763bc16ed613817509902 /include | |
parent | d8bcc870d99d7e523df31ab60f1228a8d9061191 (diff) |
iommu/dart: Fix apple_dart_device_group for PCI groups
pci_device_group() can return an already existing IOMMU group if the PCI
device's pagetables have to be shared with another one due to bus
toplogy, isolation features and/or DMA alias quirks.
apple_dart_device_group() however assumes that the group has just been
created and overwrites its iommudata which will eventually lead to
apple_dart_release_group leaving stale entries in sid2group.
Fix that by merging the iommudata if the returned group already exists.
Fixes: f0b636804c7c ("iommu/dart: Clear sid2group entry when a group is freed")
Signed-off-by: Sven Peter <sven@svenpeter.dev>
Reviewed-by: Eric Curtin <ecurtin@redhat.com>
Link: https://lore.kernel.org/r/20230128113532.94651-1-sven@svenpeter.dev
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions