aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/percpu.c
Commit message (Collapse)AuthorAgeFilesLines
* x86/percpu: Force INVALID_PERCPU_AREA into the non-canonical address regionAndrew Cooper2013-10-041-1/+8
| | | | | | | | | | | | | This causes accidental uses of per_cpu() on a pcpu with an INVALID_PERCPU_AREA to result in a #GF for attempting to access the middle of the non-canonical virtual address region. This is preferable to the current behaviour, where incorrect use of per_cpu() will result in an effective NULL structure dereference which has security implication in the context of PV guests. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Keir Fraser <keir@xen.org>
* x86: Free per-cpu area for offline cpu via RCU.Keir Fraser2011-01-081-2/+18
| | | | | | | | | | | | This allows other CPUs to reference per-cpu areas with less strict locking. In particular, timer.c access a per-cpu lock with reference to a per-timer cpu field which it accesses with no synchronisation. One subtlety is that this prevents us bringing a cpu back online until the RCU work is completed. In this case we return EBUSY and the tool stack can report the (unlikely) error, or retry, as it sees fit. Signed-off-by: Keir Fraser <keir@xen.org>
* x86: Dynamically allocate percpu data area when a CPU comes online.Keir Fraser2010-05-181-0/+69
At the same time, the data area starts life zeroed. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>