iommu/amd: Don't use dev_data in irte_ga_set_affinity()
authorScott Wood <swood@redhat.com>
Sun, 28 Jan 2018 20:22:19 +0000 (14:22 -0600)
committerJoerg Roedel <jroedel@suse.de>
Tue, 13 Feb 2018 13:18:06 +0000 (14:18 +0100)
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>
drivers/iommu/amd_iommu.c

index d227f761cc21d1bc1a8335163f4be4b5ab974d93..d666246ac30b7f4d23a019082123ed69cd18fb13 100644 (file)
@@ -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);