[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: [PATCH 2/6] trace: fix T_INFO_FIRST_OFFSET
Good catch. This fix produces the correct index, but: * It's not as clear, IMHO, where the math is coming from * I think it may give the wrong result if the t_info struct ever changes (e.g., more data before the cpu offset list) The bug in the original math was that I should have added 3 to round up, rather than 1. I'm attaching a patch that will hopefully fix the bug and make it more clear. Thoughts? -George On Tue, Jun 29, 2010 at 4:32 PM, Jan Beulich <JBeulich@xxxxxxxxxx> wrote: > This wasn't defined correctly, thus allowing in the > num_online_cpus() == NR_CPUS case to pass a corrupted MFN to > Dom0. > > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx> > > --- 2010-06-15.orig/xen/common/trace.c 2010-06-28 11:58:37.000000000 +0200 > +++ 2010-06-15/xen/common/trace.c 2010-06-28 11:58:37.000000000 +0200 > @@ -51,7 +51,7 @@ static struct t_info *t_info; > #define T_INFO_PAGES 2 /* Size fixed at 2 pages for now. */ > #define T_INFO_SIZE ((T_INFO_PAGES)*(PAGE_SIZE)) > /* t_info.tbuf_size + list of mfn offsets + 1 to round up / sizeof uint32_t > */ > -#define T_INFO_FIRST_OFFSET ((sizeof(int16_t) + NR_CPUS * sizeof(int16_t) + > 1) / sizeof(uint32_t)) > +#define T_INFO_FIRST_OFFSET (((2 + NR_CPUS) * sizeof(uint16_t)) / > sizeof(uint32_t)) > static DEFINE_PER_CPU_READ_MOSTLY(struct t_buf *, t_bufs); > static DEFINE_PER_CPU_READ_MOSTLY(unsigned char *, t_data); > static DEFINE_PER_CPU_READ_MOSTLY(spinlock_t, t_lock); > > > > Attachment:
trace-t_info-first-offset-v2.patch _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |