diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c index 4a86ffd67ec5e23ecec8c9ed42d9f00ecc051631..2f99ee206b9527c3cad6250caa95e2a3ceac9268 100644 --- a/arch/x86/kernel/hpet.c +++ b/arch/x86/kernel/hpet.c @@ -657,7 +657,7 @@ irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id) hpet_pie_count = 0; } - if (hpet_rtc_flags & RTC_PIE && + if (hpet_rtc_flags & RTC_AIE && (curr_time.tm_sec == hpet_alarm_time.tm_sec) && (curr_time.tm_min == hpet_alarm_time.tm_min) && (curr_time.tm_hour == hpet_alarm_time.tm_hour)) diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c index c7d19471261dc7050244bd3f0f0883bdac8c3ccb..3c76d194fd2ccef4df106a2f47fe9b02a3057264 100644 --- a/arch/x86/mm/init_32.c +++ b/arch/x86/mm/init_32.c @@ -321,8 +321,13 @@ extern void set_highmem_pages_init(int); static void __init set_highmem_pages_init(int bad_ppro) { int pfn; - for (pfn = highstart_pfn; pfn < highend_pfn; pfn++) - add_one_highpage_init(pfn_to_page(pfn), pfn, bad_ppro); + for (pfn = highstart_pfn; pfn < highend_pfn; pfn++) { + /* + * Holes under sparsemem might not have no mem_map[]: + */ + if (pfn_valid(pfn)) + add_one_highpage_init(pfn_to_page(pfn), pfn, bad_ppro); + } totalram_pages += totalhigh_pages; } #endif /* CONFIG_FLATMEM */ diff --git a/include/asm-x86/msr.h b/include/asm-x86/msr.h index 664a2fa7adc90baf18bad2d2424f3136b53ee96d..80b027081b3ce54ffc009e104250283cec5efdda 100644 --- a/include/asm-x86/msr.h +++ b/include/asm-x86/msr.h @@ -3,6 +3,10 @@ #include +#ifndef __ASSEMBLY__ +# include +#endif + #ifdef __i386__ #ifdef __KERNEL__