Sricharan R
d3e01c5159
arm: dma-mapping: Reset the device's dma_ops
...
arch_teardown_dma_ops() being the inverse of arch_setup_dma_ops()
,dma_ops should be cleared in the teardown path. Currently, only the
device's iommu mapping structures are cleared in arch_teardown_dma_ops,
but not the dma_ops. So on the next reprobe, dma_ops left in place is
stale from the first IOMMU setup, but iommu mappings has been disposed
of. This is a problem when the probe of the device is deferred and
recalled with the IOMMU probe deferral.
So for fixing this, slightly refactor by moving the code from
__arm_iommu_detach_device to arm_iommu_detach_device and cleanup
the former. This takes care of resetting the dma_ops in the teardown
path.
Fixes: 09515ef5dd
("of/acpi: Configure dma operations at probe time for platform/amba/pci bus devices")
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Signed-off-by: Sricharan R <sricharan@codeaurora.org >
Signed-off-by: Joerg Roedel <jroedel@suse.de >
2017-05-30 11:31:34 +02:00
..
2015-08-26 20:27:02 +01:00
2011-07-02 10:56:11 +01:00
2015-08-26 20:27:02 +01:00
2015-08-26 20:27:02 +01:00
2015-08-26 20:27:02 +01:00
2015-08-26 20:27:02 +01:00
2016-10-19 10:18:43 +01:00
2015-08-26 20:27:02 +01:00
2011-07-02 10:56:11 +01:00
2017-03-02 08:42:34 +01:00
2012-11-06 19:47:35 +00:00
2014-07-18 12:29:04 +01:00
2015-08-18 14:00:30 +01:00
2016-12-25 10:47:44 +01:00
2017-03-17 10:01:26 +00:00
2014-07-18 12:29:04 +01:00
2015-11-26 22:12:26 +00:00
2013-12-29 12:32:47 +00:00
2017-02-28 11:06:17 +00:00
2014-07-18 12:29:04 +01:00
2014-07-18 12:29:04 +01:00
2014-07-18 12:29:04 +01:00
2014-07-18 12:29:04 +01:00
2017-02-27 18:43:46 -08:00
2017-02-27 18:43:46 -08:00
2012-03-28 18:30:01 +01:00
2015-12-02 23:57:54 +00:00
2012-03-20 21:48:14 +08:00
2012-03-20 21:48:14 +08:00
2012-03-29 16:53:48 -07:00
2012-03-20 21:48:14 +08:00
2012-03-20 21:48:14 +08:00
2014-12-03 16:00:04 +00:00
2012-03-20 21:48:14 +08:00
2012-03-29 16:53:48 -07:00
2017-05-30 11:31:34 +02:00
2015-08-01 22:25:04 +01:00
2017-03-29 17:39:17 +01:00
2017-01-24 12:41:46 -05:00
2014-11-21 15:24:50 +00:00
2017-03-02 08:42:34 +01:00
2017-01-30 12:04:12 +00:00
2017-01-10 23:31:30 +00:00
2011-12-08 10:30:37 +00:00
2013-06-04 16:52:38 +01:00
2015-11-09 15:11:24 -08:00
2015-06-24 17:49:41 -07:00
2017-03-02 08:42:37 +01:00
2017-04-26 10:59:36 +01:00
2012-02-23 20:18:56 -07:00
2017-04-24 13:53:13 -05:00
2017-02-28 11:50:53 -08:00
2014-05-30 00:47:23 +01:00
2014-07-18 12:29:04 +01:00
2017-02-28 11:06:09 +00:00
2014-06-02 09:20:11 +01:00
2017-03-02 08:42:30 +01:00
2017-05-08 12:37:56 -07:00
2017-05-08 19:03:25 -07:00
2011-07-02 10:56:10 +01:00
2011-07-02 10:56:10 +01:00
2011-07-02 10:56:10 +01:00
2017-05-08 17:15:13 -07:00
2016-07-26 16:19:19 -07:00
2017-02-28 11:06:09 +00:00
2015-03-28 15:46:14 +00:00
2015-03-28 15:46:14 +00:00
2015-03-28 15:46:14 +00:00
2015-03-28 15:46:14 +00:00
2015-03-28 15:46:14 +00:00
2015-03-28 15:46:14 +00:00
2015-05-03 23:22:27 +01:00
2015-03-28 15:46:14 +00:00
2015-04-14 22:28:25 +01:00
2015-04-14 22:28:25 +01:00
2015-05-03 23:22:09 +01:00
2015-05-03 23:22:09 +01:00
2015-03-28 15:46:14 +00:00
2015-03-28 15:46:14 +00:00
2015-03-28 15:46:14 +00:00
2015-05-03 23:23:09 +01:00
2016-09-06 15:51:07 +01:00
2015-12-01 21:44:25 +01:00
2015-03-28 15:46:14 +00:00
2015-03-28 15:46:14 +00:00
2013-03-26 09:55:34 +00:00
2015-03-28 15:46:14 +00:00
2015-06-12 21:18:08 +01:00
2015-06-01 23:48:19 +01:00
2017-04-09 07:49:25 -07:00
2017-04-26 10:59:49 +01:00
2015-03-28 15:46:14 +00:00
2015-03-28 15:46:14 +00:00
2015-06-01 23:46:33 +01:00
2013-04-17 16:53:24 +01:00
2014-07-18 12:29:04 +01:00
2014-07-18 12:29:04 +01:00
2014-07-18 12:29:04 +01:00
2014-07-18 12:29:04 +01:00
2014-07-18 12:29:04 +01:00
2014-07-18 12:29:04 +01:00