]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
x86/PCI: VMD: Select device dma ops to override
authorKeith Busch <keith.busch@intel.com>
Tue, 17 May 2016 17:13:24 +0000 (11:13 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 13 Jun 2016 20:59:31 +0000 (15:59 -0500)
VMD device doesn't usually have device archdata specific dma_ops, so we
need to override the default ops for VMD devices.

Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by Jon Derrick: <jonathan.derrick@intel.com>

arch/x86/pci/vmd.c

index 7792aba266df695a6d6aca686c95fbbbc733fa57..b1662bf17937fe9756bd2990ebbae5bacd1721bf 100644 (file)
@@ -261,7 +261,7 @@ static struct device *to_vmd_dev(struct device *dev)
 
 static struct dma_map_ops *vmd_dma_ops(struct device *dev)
 {
-       return to_vmd_dev(dev)->archdata.dma_ops;
+       return get_dma_ops(to_vmd_dev(dev));
 }
 
 static void *vmd_alloc(struct device *dev, size_t size, dma_addr_t *addr,
@@ -367,7 +367,7 @@ static void vmd_teardown_dma_ops(struct vmd_dev *vmd)
 {
        struct dma_domain *domain = &vmd->dma_domain;
 
-       if (vmd->dev->dev.archdata.dma_ops)
+       if (get_dma_ops(&vmd->dev->dev))
                del_dma_domain(domain);
 }
 
@@ -379,7 +379,7 @@ static void vmd_teardown_dma_ops(struct vmd_dev *vmd)
 
 static void vmd_setup_dma_ops(struct vmd_dev *vmd)
 {
-       const struct dma_map_ops *source = vmd->dev->dev.archdata.dma_ops;
+       const struct dma_map_ops *source = get_dma_ops(&vmd->dev->dev);
        struct dma_map_ops *dest = &vmd->dma_ops;
        struct dma_domain *domain = &vmd->dma_domain;