[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86/MCE: mctelem_init() cleanup
Jan Beulich wrote: > The function can be __init with its caller taking care of only calling > it on the BSP. And with that all its static variables can be dropped. > > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Reviewed-by: Liu Jinsong <jinsong.liu@xxxxxxxxx> > > --- a/xen/arch/x86/cpu/mcheck/mce.c > +++ b/xen/arch/x86/cpu/mcheck/mce.c > @@ -775,13 +775,15 @@ void mcheck_init(struct cpuinfo_x86 *c, > > intpose_init(); > > - mctelem_init(sizeof(struct mc_info)); > + if ( bsp ) > + { > + mctelem_init(sizeof(struct mc_info)); > + register_cpu_notifier(&cpu_nfb); > + } > > /* Turn on MCE now */ > set_in_cr4(X86_CR4_MCE); > > - if ( bsp ) > - register_cpu_notifier(&cpu_nfb); > set_poll_bankmask(c); > > return; > --- a/xen/arch/x86/cpu/mcheck/mctelem.c > +++ b/xen/arch/x86/cpu/mcheck/mctelem.c > @@ -248,25 +248,14 @@ static void mctelem_processing_release(s > } > } > > -void mctelem_init(int reqdatasz) > +void __init mctelem_init(unsigned int datasz) > { > - static int called = 0; > - static int datasz = 0, realdatasz = 0; > char *datarr; > - int i; > + unsigned int i; > > - BUG_ON(MC_URGENT != 0 || MC_NONURGENT != 1 || MC_NCLASSES != 2); > + BUILD_BUG_ON(MC_URGENT != 0 || MC_NONURGENT != 1 || MC_NCLASSES != > 2); > > - /* Called from mcheck_init for all processors; initialize for the > - * first call only (no race here since the boot cpu completes > - * init before others start up). */ > - if (++called == 1) { > - realdatasz = reqdatasz; > - datasz = (reqdatasz & ~0xf) + 0x10; /* 16 byte roundup */ > - } else { > - BUG_ON(reqdatasz != realdatasz); > - return; > - } > + datasz = (datasz & ~0xf) + 0x10; /* 16 byte roundup */ > > if ((mctctl.mctc_elems = xmalloc_array(struct mctelem_ent, > MC_NENT)) == NULL || > --- a/xen/arch/x86/cpu/mcheck/mctelem.h > +++ b/xen/arch/x86/cpu/mcheck/mctelem.h > @@ -59,7 +59,7 @@ typedef enum mctelem_class { > MC_NONURGENT > } mctelem_class_t; > > -extern void mctelem_init(int); > +extern void mctelem_init(unsigned int); > extern mctelem_cookie_t mctelem_reserve(mctelem_class_t); > extern void *mctelem_dataptr(mctelem_cookie_t); > extern void mctelem_commit(mctelem_cookie_t); _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |