| From 3d2a80a230250c2534ce5b17503670adaf1d7fff Mon Sep 17 00:00:00 2001 |
| From: Peter Hurley <peter@hurleysoftware.com> |
| Date: Wed, 27 Feb 2013 15:28:28 -0500 |
| Subject: x86/kvm: Fix pvclock vsyscall fixmap |
| |
| From: Peter Hurley <peter@hurleysoftware.com> |
| |
| commit 3d2a80a230250c2534ce5b17503670adaf1d7fff upstream. |
| |
| The physical memory fixmapped for the pvclock clock_gettime vsyscall |
| was allocated, and thus is not a kernel symbol. __pa() is the proper |
| method to use in this case. |
| |
| Fixes the crash below when booting a next-20130204+ smp guest on a |
| 3.8-rc5+ KVM host. |
| |
| [ 0.666410] udevd[97]: starting version 175 |
| [ 0.674043] udevd[97]: udevd:[97]: segfault at ffffffffff5fd020 |
| ip 00007fff069e277f sp 00007fff068c9ef8 error d |
| |
| Acked-by: Marcelo Tosatti <mtosatti@redhat.com> |
| Signed-off-by: Peter Hurley <peter@hurleysoftware.com> |
| Signed-off-by: Gleb Natapov <gleb@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/x86/kernel/pvclock.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/arch/x86/kernel/pvclock.c |
| +++ b/arch/x86/kernel/pvclock.c |
| @@ -185,7 +185,7 @@ int __init pvclock_init_vsyscall(struct |
| |
| for (idx = 0; idx <= (PVCLOCK_FIXMAP_END-PVCLOCK_FIXMAP_BEGIN); idx++) { |
| __set_fixmap(PVCLOCK_FIXMAP_BEGIN + idx, |
| - __pa_symbol(i) + (idx*PAGE_SIZE), |
| + __pa(i) + (idx*PAGE_SIZE), |
| PAGE_KERNEL_VVAR); |
| } |
| |