public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] use __pa_symbol to calculate the address of a C symbol.
@ 2009-08-31  7:04 Glauber Costa
  2009-08-31 11:24 ` Avi Kivity
  0 siblings, 1 reply; 2+ messages in thread
From: Glauber Costa @ 2009-08-31  7:04 UTC (permalink / raw)
  To: kvm; +Cc: linux-kernel, avi

The use of __pa() to calculate the address of a C-visible symbol
is wrong, and can lead to unpredictable results. See arch/x86/include/asm/page.h
for details.

It should be replaced with __pa_symbol(), that does the correct math here,
by taking relocations into account.

Signed-off-by: Glauber Costa <glommer@redhat.com>
---
 arch/x86/kernel/kvmclock.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 223af43..e5efcdc 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -50,8 +50,8 @@ static unsigned long kvm_get_wallclock(void)
 	struct timespec ts;
 	int low, high;
 
-	low = (int)__pa(&wall_clock);
-	high = ((u64)__pa(&wall_clock) >> 32);
+	low = (int)__pa_symbol(&wall_clock);
+	high = ((u64)__pa_symbol(&wall_clock) >> 32);
 	native_write_msr(MSR_KVM_WALL_CLOCK, low, high);
 
 	vcpu_time = &get_cpu_var(hv_clock);
-- 
1.6.2.2


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] use __pa_symbol to calculate the address of a C symbol.
  2009-08-31  7:04 [PATCH] use __pa_symbol to calculate the address of a C symbol Glauber Costa
@ 2009-08-31 11:24 ` Avi Kivity
  0 siblings, 0 replies; 2+ messages in thread
From: Avi Kivity @ 2009-08-31 11:24 UTC (permalink / raw)
  To: Glauber Costa; +Cc: kvm, linux-kernel

On 08/31/2009 10:04 AM, Glauber Costa wrote:
> The use of __pa() to calculate the address of a C-visible symbol
> is wrong, and can lead to unpredictable results. See arch/x86/include/asm/page.h
> for details.
>
> It should be replaced with __pa_symbol(), that does the correct math here,
> by taking relocations into account.
>    

Applied, thanks.

I note that the changelog entry says nothing about what component is 
involved and what the effect of the bug is.  This reduces its usefulness 
for someone looking over the log and trying to see if a particular bug 
is fixed.

-- 
error compiling committee.c: too many arguments to function


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-08-31 11:24 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-31  7:04 [PATCH] use __pa_symbol to calculate the address of a C symbol Glauber Costa
2009-08-31 11:24 ` Avi Kivity

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox