1 message in com.xensource.lists.xen-devel[Xen-devel] [PATCH] linux: use __init...| From | Sent On | Attachments |
|---|---|---|
| Jan Beulich | 30 Oct 2006 05:22 |
| Subject: | [Xen-devel] [PATCH] linux: use __initdata where possible![]() |
|---|---|
| From: | Jan Beulich (jbeu...@novell.com) |
| Date: | 10/30/2006 05:22:41 AM |
| List: | com.xensource.lists.xen-devel |
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 <jbeu...@novell.com>
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-...@lists.xensource.com http://lists.xensource.com/xen-devel




