Skip to content

Commit

Permalink
x86: Add probe_roms to x86_init
Browse files Browse the repository at this point in the history
probe_roms is only used on 32bit. Add it to the x86_init ops and
remove the #ifdefs.

Default initializer is x86_init_noop() which is overridden in
the 32bit boot code.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
  • Loading branch information
Thomas Gleixner committed Aug 27, 2009
1 parent 57844a8 commit f7cf5a5
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 3 deletions.
10 changes: 10 additions & 0 deletions arch/x86/include/asm/x86_init.h
Original file line number Diff line number Diff line change
@@ -1,11 +1,21 @@
#ifndef _ASM_X86_PLATFORM_H
#define _ASM_X86_PLATFORM_H

/**
* struct x86_init_resources - platform specific resource related ops
* @probe_roms: probe BIOS roms
*
*/
struct x86_init_resources {
void (*probe_roms)(void);
};

/**
* struct x86_init_ops - functions for platform specific setup
*
*/
struct x86_init_ops {
struct x86_init_resources resources;
};

extern struct x86_init_ops x86_init;
Expand Down
3 changes: 3 additions & 0 deletions arch/x86/kernel/head32.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ void __init i386_start_kernel(void)
reserve_early(ramdisk_image, ramdisk_end, "RAMDISK");
}
#endif
/* Initilize 32bit specific setup functions */
x86_init.resources.probe_roms = probe_roms;

reserve_ebda_region();

/*
Expand Down
4 changes: 1 addition & 3 deletions arch/x86/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -835,9 +835,7 @@ void __init setup_arch(char **cmdline_p)
*/
init_hypervisor(&boot_cpu_data);

#ifdef CONFIG_X86_32
probe_roms();
#endif
x86_init.resources.probe_roms();

/* after parse_early_param, so could debug it */
insert_resource(&iomem_resource, &code_resource);
Expand Down
4 changes: 4 additions & 0 deletions arch/x86/kernel/x86_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,8 @@ void __cpuinit x86_init_noop(void) { }
* for standard PC hardware.
*/
struct __initdata x86_init_ops x86_init = {

.resources = {
.probe_roms = x86_init_noop,
},
};

0 comments on commit f7cf5a5

Please sign in to comment.