summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Wood <swood@redhat.com>2018-01-28 23:22:19 +0300
committerJoerg Roedel <jroedel@suse.de>2018-02-13 16:18:06 +0300
commit01ee04badefd296eb7a4430497373be9b7b16783 (patch)
tree052d934c5c284606d63ed20e44db4b19ede82d0d
parent27790398c2aed917828dc3c6f81240d57f1584c9 (diff)
downloadlinux-01ee04badefd296eb7a4430497373be9b7b16783.tar.xz
iommu/amd: Don't use dev_data in irte_ga_set_affinity()
search_dev_data() acquires a non-raw lock, which can't be done from atomic context on PREEMPT_RT. There is no need to look at dev_data because guest_mode should never be set if use_vapic is not set. Signed-off-by: Scott Wood <swood@redhat.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
-rw-r--r--drivers/iommu/amd_iommu.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
index d227f761cc21..d666246ac30b 100644
--- a/drivers/iommu/amd_iommu.c
+++ b/drivers/iommu/amd_iommu.c
@@ -3877,10 +3877,8 @@ static void irte_ga_set_affinity(void *entry, u16 devid, u16 index,
u8 vector, u32 dest_apicid)
{
struct irte_ga *irte = (struct irte_ga *) entry;
- struct iommu_dev_data *dev_data = search_dev_data(devid);
- if (!dev_data || !dev_data->use_vapic ||
- !irte->lo.fields_remap.guest_mode) {
+ if (!irte->lo.fields_remap.guest_mode) {
irte->hi.fields.vector = vector;
irte->lo.fields_remap.destination = dest_apicid;
modify_irte_ga(devid, index, irte, NULL);