Sebastian Andrzej Siewior aaffaa8a3b iommu/iova: Don't disable preempt around this_cpu_ptr()
Commit 583248e6620a ("iommu/iova: Disable preemption around use of
this_cpu_ptr()") disables preemption while accessing a per-CPU variable.
This does keep lockdep quiet. However I don't see the point why it is
bad if we get migrated after its access to another CPU.
__iova_rcache_insert() and __iova_rcache_get() immediately locks the
variable after obtaining it - before accessing its members.
_If_ we get migrated away after retrieving the address of cpu_rcache
before taking the lock then the *other* task on the same CPU will
retrieve the same address of cpu_rcache and will spin on the lock.

alloc_iova_fast() disables preemption while invoking
free_cpu_cached_iovas() on each CPU. The function itself uses
per_cpu_ptr() which does not trigger a warning (like this_cpu_ptr()
does). It _could_ make sense to use get_online_cpus() instead but the we
have a hotplug notifier for CPU down (and none for up) so we are good.

Cc: Joerg Roedel <joro@8bytes.org>
Cc: iommu@lists.linux-foundation.org
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
2017-06-28 12:23:01 +02:00
..
2017-06-14 16:48:03 -07:00
2017-05-04 19:15:35 -07:00
2017-06-16 17:38:23 +09:00
2017-06-01 14:49:47 -04:00
2017-06-18 08:51:35 +09:00
2017-05-05 19:33:07 -07:00
2017-06-15 17:37:40 +09:00
2017-06-11 11:29:15 -07:00
2017-06-20 15:41:56 -04:00
2017-04-17 00:42:22 +02:00
2017-06-19 14:24:41 -04:00
2017-04-20 09:54:24 +02:00
2017-05-09 10:01:15 -07:00
2017-06-16 17:30:44 +09:00
2017-05-04 19:15:35 -07:00
2017-06-23 12:25:37 -07:00
2017-06-18 08:36:30 +09:00
2017-05-18 23:54:47 -07:00
2017-06-04 10:23:25 +02:00
2017-06-18 08:39:54 +09:00
2017-05-05 11:36:44 -07:00
2017-06-09 09:59:51 -07:00