diff options
author | Olaf Hering <olaf@aepfle.de> | 2011-03-25 08:56:33 +0000 |
---|---|---|
committer | Olaf Hering <olaf@aepfle.de> | 2011-03-25 08:56:33 +0000 |
commit | 7699f779251088a0999625a8d403ea70b9941094 (patch) | |
tree | bab8cae6187c00f3741e37426b5c5a770e0372e9 /xen/common/trace.c | |
parent | 2f885fa9cc94101e7289f7ea42e8df8bc0297a4f (diff) | |
download | xen-7699f779251088a0999625a8d403ea70b9941094.tar.gz xen-7699f779251088a0999625a8d403ea70b9941094.tar.bz2 xen-7699f779251088a0999625a8d403ea70b9941094.zip |
xentrace: fix t_info_pages calculation.
Signed-off-by: Olaf Hering <olaf@aepfle.de>
Diffstat (limited to 'xen/common/trace.c')
-rw-r--r-- | xen/common/trace.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/xen/common/trace.c b/xen/common/trace.c index 4b71169e85..e290cdce17 100644 --- a/xen/common/trace.c +++ b/xen/common/trace.c @@ -29,6 +29,7 @@ #include <xen/init.h> #include <xen/mm.h> #include <xen/percpu.h> +#include <xen/pfn.h> #include <xen/cpu.h> #include <asm/atomic.h> #include <public/sysctl.h> @@ -109,6 +110,7 @@ static int calculate_tbuf_size(unsigned int pages) { struct t_buf dummy; typeof(dummy.prod) size; + unsigned int t_info_words, t_info_bytes; /* force maximum value for an unsigned type */ size = -1; @@ -122,11 +124,9 @@ static int calculate_tbuf_size(unsigned int pages) pages = size; } - t_info_pages = num_online_cpus() * pages + t_info_first_offset; - t_info_pages *= sizeof(uint32_t); - t_info_pages /= PAGE_SIZE; - if ( t_info_pages % PAGE_SIZE ) - t_info_pages++; + t_info_words = num_online_cpus() * pages + t_info_first_offset; + t_info_bytes = t_info_words * sizeof(uint32_t); + t_info_pages = PFN_UP(t_info_bytes); return pages; } |