linux/arch/s390
David Hildenbrand 0f7f848915 s390/mm: fix races on gmap_shadow creation
Before any thread is allowed to use a gmap_shadow, it has to be fully
initialized. However, for invalidation to work properly, we have to
register the new gmap_shadow before we protect the parent gmap table.

Because locking is tricky, and we have to avoid duplicate gmaps, let's
introduce an initialized field, that signalizes other threads if that
gmap_shadow can already be used or if they have to retry.

Let's properly return errors using ERR_PTR() instead of simply returning
NULL, so a caller can properly react on the error.

Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
2016-06-20 09:54:28 +02:00
..
appldata s390: appldata: drop owner assignment from platform_drivers 2014-10-20 16:20:13 +02:00
boot kbuild: delete unnecessary "@:" 2016-04-20 10:36:57 +02:00
configs s390/config: update default configuration 2016-05-23 09:11:37 +02:00
crypto s390/crypto: cleanup and move the header with the cpacf definitions 2016-04-15 18:16:40 +02:00
hypfs s390: Make diag224 public 2016-06-10 12:07:10 +02:00
include s390/mm: fix races on gmap_shadow creation 2016-06-20 09:54:28 +02:00
kernel s390: Make diag224 public 2016-06-10 12:07:10 +02:00
kvm s390/mm: shadow pages with real guest requested protection 2016-06-20 09:54:19 +02:00
lib s390/spinlock: avoid yield to non existent cpu 2016-04-15 18:01:48 +02:00
mm s390/mm: fix races on gmap_shadow creation 2016-06-20 09:54:28 +02:00
net s390/bpf: fix recache skb->data/hlen for skb_vlan_push/pop 2016-05-19 09:14:27 +02:00
numa s390/numa: move numa_init_late() from device to arch_initcall 2016-01-26 12:45:24 +01:00
oprofile s390/oprofile: add z13/z13s model numbers 2016-02-24 12:18:10 +01:00
pci Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2016-05-18 12:17:16 -07:00
tools s390/facilities: add helper tool to generate facility lists 2015-12-18 14:59:20 +01:00
defconfig s390/config: update default configuration 2016-05-23 09:11:37 +02:00
Kbuild s390/numa: add core infrastructure 2015-08-03 18:40:25 +02:00
Kconfig lib/GCD.c: use binary GCD algorithm instead of Euclidean 2016-05-20 17:58:30 -07:00
Kconfig.debug arch: consolidate CONFIG_STRICT_DEVM in lib/Kconfig.debug 2016-01-09 06:30:49 -08:00
Makefile s390/facilities: add helper tool to generate facility lists 2015-12-18 14:59:20 +01:00