|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Ping: [PATCH] x86/MCE: mctelem_init() cleanup
>>> On 28.02.14 at 17:45, "Jan Beulich" <JBeulich@xxxxxxxx> 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>
>
> --- 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 |