[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] linux: use __initdata where possible



Probably still not catching all possible cases, but using static (where not
already the case) makes the code size smaller, and using __initdata has
the usual advantages.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>

Index: head-2006-10-16/arch/i386/kernel/sysenter.c
===================================================================
--- head-2006-10-16.orig/arch/i386/kernel/sysenter.c    2006-10-26 
10:29:04.000000000 +0200
+++ head-2006-10-16/arch/i386/kernel/sysenter.c 2006-10-23 15:35:17.000000000 
+0200
@@ -60,7 +60,7 @@ extern asmlinkage void sysenter_entry(vo
 
 #ifdef CONFIG_XEN
        if (boot_cpu_has(X86_FEATURE_SEP)) {
-               struct callback_register sysenter = {
+               static struct callback_register __initdata sysenter = {
                        .type = CALLBACKTYPE_sysenter,
                        .address = { __KERNEL_CS, (unsigned long)sysenter_entry 
},
                };
Index: head-2006-10-16/include/asm-i386/mach-xen/setup_arch_post.h
===================================================================
--- head-2006-10-16.orig/include/asm-i386/mach-xen/setup_arch_post.h    
2006-10-16 10:36:03.000000000 +0200
+++ head-2006-10-16/include/asm-i386/mach-xen/setup_arch_post.h 2006-10-26 
11:37:26.000000000 +0200
@@ -56,15 +56,15 @@ void __init machine_specific_arch_setup(
        struct xen_machphys_mapping mapping;
        unsigned long machine_to_phys_nr_ents;
        struct xen_platform_parameters pp;
-       struct callback_register event = {
+       static struct callback_register __initdata event = {
                .type = CALLBACKTYPE_event,
                .address = { __KERNEL_CS, (unsigned long)hypervisor_callback },
        };
-       struct callback_register failsafe = {
+       static struct callback_register __initdata failsafe = {
                .type = CALLBACKTYPE_failsafe,
                .address = { __KERNEL_CS, (unsigned long)failsafe_callback },
        };
-       struct callback_register nmi_cb = {
+       static struct callback_register __initdata nmi_cb = {
                .type = CALLBACKTYPE_nmi,
                .address = { __KERNEL_CS, (unsigned long)nmi },
        };
@@ -80,9 +80,10 @@ void __init machine_specific_arch_setup(
 
        ret = HYPERVISOR_callback_op(CALLBACKOP_register, &nmi_cb);
        if (ret == -ENOSYS) {
-               struct xennmi_callback cb;
+               static struct xennmi_callback __initdata cb = {
+                       .handler_address = (unsigned long)nmi;
+               };
 
-               cb.handler_address = nmi_cb.address.eip;
                HYPERVISOR_nmi_op(XENNMI_register_callback, &cb);
        }
 
Index: head-2006-10-16/include/asm-x86_64/mach-xen/setup_arch_post.h
===================================================================
--- head-2006-10-16.orig/include/asm-x86_64/mach-xen/setup_arch_post.h  
2006-10-26 10:30:56.000000000 +0200
+++ head-2006-10-16/include/asm-x86_64/mach-xen/setup_arch_post.h       
2006-10-26 11:37:26.000000000 +0200
@@ -15,20 +15,20 @@ extern void nmi(void);
 static void __init machine_specific_arch_setup(void)
 {
        int ret;
-       struct callback_register event = {
+       static struct callback_register __initdata event = {
                .type = CALLBACKTYPE_event,
                .address = (unsigned long) hypervisor_callback,
        };
-       struct callback_register failsafe = {
+       static struct callback_register __initdata failsafe = {
                .type = CALLBACKTYPE_failsafe,
                .address = (unsigned long)failsafe_callback,
        };
-       struct callback_register syscall = {
+       static struct callback_register __initdata syscall = {
                .type = CALLBACKTYPE_syscall,
                .address = (unsigned long)system_call,
        };
 #ifdef CONFIG_X86_LOCAL_APIC
-       struct callback_register nmi_cb = {
+       static struct callback_register __initdata nmi_cb = {
                .type = CALLBACKTYPE_nmi,
                .address = (unsigned long)nmi,
        };
@@ -49,9 +49,10 @@ static void __init machine_specific_arch
 #ifdef CONFIG_X86_LOCAL_APIC
        ret = HYPERVISOR_callback_op(CALLBACKOP_register, &nmi_cb);
        if (ret == -ENOSYS) {
-               struct xennmi_callback cb;
+               static struct xennmi_callback __initdata cb = {
+                       .handler_address = (unsigned long)nmi;
+               };
 
-               cb.handler_address = nmi_cb.address;
                HYPERVISOR_nmi_op(XENNMI_register_callback, &cb);
        }
 #endif


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.