aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'xen/arch/x86/setup.c')
-rw-r--r--xen/arch/x86/setup.c39
1 files changed, 3 insertions, 36 deletions
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index a4e470984f..92b90dc282 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -257,6 +257,9 @@ void __init cpu_init(void)
panic("CPU#%d already initialized!!!\n", nr);
printk("Initializing CPU#%d\n", nr);
+ t->bitmap = INVALID_IO_BITMAP_OFFSET;
+ memset(t->io_bitmap, ~0, sizeof(t->io_bitmap));
+
/* Set up GDT and IDT. */
SET_GDT_ENTRIES(current, DEFAULT_GDT_ENTRIES);
SET_GDT_ADDRESS(current, DEFAULT_GDT_ADDRESS);
@@ -294,31 +297,6 @@ static void __init do_initcalls(void)
(*call)();
}
-/*
- * IBM-compatible BIOSes place drive info tables at initial interrupt
- * vectors 0x41 and 0x46. These are in the for of 16-bit-mode far ptrs.
- */
-struct drive_info_struct { unsigned char dummy[32]; } drive_info;
-void get_bios_driveinfo(void)
-{
- unsigned long seg, off, tab1, tab2;
-
- off = (unsigned long)*(unsigned short *)(4*0x41+0);
- seg = (unsigned long)*(unsigned short *)(4*0x41+2);
- tab1 = (seg<<4) + off;
-
- off = (unsigned long)*(unsigned short *)(4*0x46+0);
- seg = (unsigned long)*(unsigned short *)(4*0x46+2);
- tab2 = (seg<<4) + off;
-
- printk("Reading BIOS drive-info tables at 0x%05lx and 0x%05lx\n",
- tab1, tab2);
-
- memcpy(drive_info.dummy+ 0, (char *)tab1, 16);
- memcpy(drive_info.dummy+16, (char *)tab2, 16);
-}
-
-
unsigned long pci_mem_start = 0x10000000;
void __init start_of_day(void)
@@ -326,8 +304,6 @@ void __init start_of_day(void)
extern void trap_init(void);
extern void init_IRQ(void);
extern void time_init(void);
- extern void timer_bh(void);
- extern void init_timervecs(void);
extern void ac_timer_init(void);
extern void initialize_keytable();
extern void initialize_keyboard(void);
@@ -348,12 +324,6 @@ void __init start_of_day(void)
if ( opt_watchdog )
nmi_watchdog = NMI_LOCAL_APIC;
- /*
- * We do this early, but tables are in the lowest 1MB (usually
- * 0xfe000-0xfffff). Therefore they're unlikely to ever get clobbered.
- */
- get_bios_driveinfo();
-
/* Tell the PCI layer not to allocate too close to the RAM area.. */
low_mem_size = ((max_page << PAGE_SHIFT) + 0xfffff) & ~0xfffff;
if ( low_mem_size > pci_mem_start ) pci_mem_start = low_mem_size;
@@ -380,14 +350,11 @@ void __init start_of_day(void)
if ( smp_found_config )
get_smp_config();
#endif
- domain_init();
scheduler_init();
trap_init();
init_IRQ(); /* installs simple interrupt wrappers. Starts HZ clock. */
time_init(); /* installs software handler for HZ clock. */
softirq_init();
- init_timervecs();
- init_bh(TIMER_BH, timer_bh);
init_apic_mappings(); /* make APICs addressable in our pagetables. */
#ifndef CONFIG_SMP