···410410 efi_config_table_t *config_tables;411411 efi_char16_t *c16;412412 u64 efi_desc_size;413413- char *cp, *end, vendor[100] = "unknown";413413+ char *cp, vendor[100] = "unknown";414414 extern char saved_command_line[];415415 int i;416416417417 /* it's too early to be able to use the standard kernel command line support... */418418 for (cp = saved_command_line; *cp; ) {419419 if (memcmp(cp, "mem=", 4) == 0) {420420- cp += 4;421421- mem_limit = memparse(cp, &end);422422- if (end != cp)423423- break;424424- cp = end;420420+ mem_limit = memparse(cp + 4, &cp);425421 } else if (memcmp(cp, "max_addr=", 9) == 0) {426426- cp += 9;427427- max_addr = GRANULEROUNDDOWN(memparse(cp, &end));428428- if (end != cp)429429- break;430430- cp = end;422422+ max_addr = GRANULEROUNDDOWN(memparse(cp + 9, &cp));431423 } else {432424 while (*cp != ' ' && *cp)433425 ++cp;···450458 /* Show what we know for posterity */451459 c16 = __va(efi.systab->fw_vendor);452460 if (c16) {453453- for (i = 0;i < (int) sizeof(vendor) && *c16; ++i)461461+ for (i = 0;i < (int) sizeof(vendor) - 1 && *c16; ++i)454462 vendor[i] = *c16++;455463 vendor[i] = '\0';456464 }
+1
arch/ia64/kernel/head.S
···352352 mov ar.rsc=0 // place RSE in enforced lazy mode353353 ;;354354 loadrs // clear the dirty partition355355+ mov IA64_KR(PER_CPU_DATA)=r0 // clear physical per-CPU base355356 ;;356357 mov ar.bspstore=r2 // establish the new RSE stack357358 ;;
+4
arch/ia64/kernel/setup.c
···7171EXPORT_SYMBOL(__per_cpu_offset);7272#endif73737474+extern void ia64_setup_printk_clock(void);7575+7476DEFINE_PER_CPU(struct cpuinfo_ia64, cpu_info);7577DEFINE_PER_CPU(unsigned long, local_per_cpu_offset);7678DEFINE_PER_CPU(unsigned long, ia64_phys_stacked_size_p8);···446444447445 /* process SAL system table: */448446 ia64_sal_init(efi.sal_systab);447447+448448+ ia64_setup_printk_clock();449449450450#ifdef CONFIG_SMP451451 cpu_physical_id(0) = hard_smp_processor_id();
+27
arch/ia64/kernel/time.c
···278278 }279279}280280EXPORT_SYMBOL(udelay);281281+282282+static unsigned long long ia64_itc_printk_clock(void)283283+{284284+ if (ia64_get_kr(IA64_KR_PER_CPU_DATA))285285+ return sched_clock();286286+ return 0;287287+}288288+289289+static unsigned long long ia64_default_printk_clock(void)290290+{291291+ return (unsigned long long)(jiffies_64 - INITIAL_JIFFIES) *292292+ (1000000000/HZ);293293+}294294+295295+unsigned long long (*ia64_printk_clock)(void) = &ia64_default_printk_clock;296296+297297+unsigned long long printk_clock(void)298298+{299299+ return ia64_printk_clock();300300+}301301+302302+void __init303303+ia64_setup_printk_clock(void)304304+{305305+ if (!(sal_platform_features & IA64_SAL_PLATFORM_FEATURE_ITC_DRIFT))306306+ ia64_printk_clock = ia64_itc_printk_clock;307307+}
+3-2
arch/ia64/sn/kernel/mca.c
···33 * License. See the file "COPYING" in the main directory of this archive44 * for more details.55 *66- * Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved.66+ * Copyright (c) 2000-2006 Silicon Graphics, Inc. All Rights Reserved.77 */8899#include <linux/types.h>···137137138138static int __init sn_salinfo_init(void)139139{140140- salinfo_platform_oemdata = &sn_salinfo_platform_oemdata;140140+ if (ia64_platform_is("sn2"))141141+ salinfo_platform_oemdata = &sn_salinfo_platform_oemdata;141142 return 0;142143}143144
+27-13
arch/ia64/sn/kernel/setup.c
···6767extern void (*ia64_mark_idle) (int);6868extern void snidle(int);6969extern unsigned char acpi_kbd_controller_present;7070+extern unsigned long long (*ia64_printk_clock)(void);70717172unsigned long sn_rtc_cycles_per_second;7273EXPORT_SYMBOL(sn_rtc_cycles_per_second);···359358 }360359}361360361361+static unsigned long sn2_rtc_initial;362362+363363+static unsigned long long ia64_sn2_printk_clock(void)364364+{365365+ unsigned long rtc_now = rtc_time();366366+367367+ return (rtc_now - sn2_rtc_initial) *368368+ (1000000000 / sn_rtc_cycles_per_second);369369+}370370+362371/**363372 * sn_setup - SN platform setup routine364373 * @cmdline_p: kernel command line···383372 u32 version = sn_sal_rev();384373 extern void sn_cpu_init(void);385374375375+ sn2_rtc_initial = rtc_time();386376 ia64_sn_plat_set_error_handling_features(); // obsolete387377 ia64_sn_set_os_feature(OSF_MCA_SLV_TO_OS_INIT_SLV);388378 ia64_sn_set_os_feature(OSF_FEAT_LOG_SBES);···435423 */436424 build_cnode_tables();437425438438- /*439439- * Old PROMs do not provide an ACPI FADT. Disable legacy keyboard440440- * support here so we don't have to listen to failed keyboard probe441441- * messages.442442- */443443- if (version <= 0x0209 && acpi_kbd_controller_present) {444444- printk(KERN_INFO "Disabling legacy keyboard support as prom "445445- "is too old and doesn't provide FADT\n");446446- acpi_kbd_controller_present = 0;447447- }448448-449449- printk("SGI SAL version %x.%02x\n", version >> 8, version & 0x00FF);450450-451426 status =452427 ia64_sal_freq_base(SAL_FREQ_BASE_REALTIME_CLOCK, &ticks_per_sec,453428 &drift);···447448 sn_rtc_cycles_per_second = ticks_per_sec;448449449450 platform_intr_list[ACPI_INTERRUPT_CPEI] = IA64_CPE_VECTOR;451451+452452+ ia64_printk_clock = ia64_sn2_printk_clock;453453+454454+ /*455455+ * Old PROMs do not provide an ACPI FADT. Disable legacy keyboard456456+ * support here so we don't have to listen to failed keyboard probe457457+ * messages.458458+ */459459+ if (version <= 0x0209 && acpi_kbd_controller_present) {460460+ printk(KERN_INFO "Disabling legacy keyboard support as prom "461461+ "is too old and doesn't provide FADT\n");462462+ acpi_kbd_controller_present = 0;463463+ }464464+465465+ printk("SGI SAL version %x.%02x\n", version >> 8, version & 0x00FF);450466451467 /*452468 * we set the default root device to /dev/hda
+4-1
arch/ia64/sn/kernel/sn2/sn_hwperf.c
···33 * License. See the file "COPYING" in the main directory of this archive44 * for more details.55 *66- * Copyright (C) 2004-2005 Silicon Graphics, Inc. All rights reserved.66+ * Copyright (C) 2004-2006 Silicon Graphics, Inc. All rights reserved.77 *88 * SGI Altix topology and hardware performance monitoring API.99 * Mark Goodwin <markgw@sgi.com>. ···972972static int __devinit sn_hwperf_misc_register_init(void)973973{974974 int e;975975+976976+ if (!ia64_platform_is("sn2"))977977+ return 0;975978976979 sn_hwperf_init();977980