Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6

+70 -28
+4 -12
arch/ia64/kernel/efi.c
··· 410 410 efi_config_table_t *config_tables; 411 411 efi_char16_t *c16; 412 412 u64 efi_desc_size; 413 - char *cp, *end, vendor[100] = "unknown"; 413 + char *cp, vendor[100] = "unknown"; 414 414 extern char saved_command_line[]; 415 415 int i; 416 416 417 417 /* it's too early to be able to use the standard kernel command line support... */ 418 418 for (cp = saved_command_line; *cp; ) { 419 419 if (memcmp(cp, "mem=", 4) == 0) { 420 - cp += 4; 421 - mem_limit = memparse(cp, &end); 422 - if (end != cp) 423 - break; 424 - cp = end; 420 + mem_limit = memparse(cp + 4, &cp); 425 421 } else if (memcmp(cp, "max_addr=", 9) == 0) { 426 - cp += 9; 427 - max_addr = GRANULEROUNDDOWN(memparse(cp, &end)); 428 - if (end != cp) 429 - break; 430 - cp = end; 422 + max_addr = GRANULEROUNDDOWN(memparse(cp + 9, &cp)); 431 423 } else { 432 424 while (*cp != ' ' && *cp) 433 425 ++cp; ··· 450 458 /* Show what we know for posterity */ 451 459 c16 = __va(efi.systab->fw_vendor); 452 460 if (c16) { 453 - for (i = 0;i < (int) sizeof(vendor) && *c16; ++i) 461 + for (i = 0;i < (int) sizeof(vendor) - 1 && *c16; ++i) 454 462 vendor[i] = *c16++; 455 463 vendor[i] = '\0'; 456 464 }
+1
arch/ia64/kernel/head.S
··· 352 352 mov ar.rsc=0 // place RSE in enforced lazy mode 353 353 ;; 354 354 loadrs // clear the dirty partition 355 + mov IA64_KR(PER_CPU_DATA)=r0 // clear physical per-CPU base 355 356 ;; 356 357 mov ar.bspstore=r2 // establish the new RSE stack 357 358 ;;
+4
arch/ia64/kernel/setup.c
··· 71 71 EXPORT_SYMBOL(__per_cpu_offset); 72 72 #endif 73 73 74 + extern void ia64_setup_printk_clock(void); 75 + 74 76 DEFINE_PER_CPU(struct cpuinfo_ia64, cpu_info); 75 77 DEFINE_PER_CPU(unsigned long, local_per_cpu_offset); 76 78 DEFINE_PER_CPU(unsigned long, ia64_phys_stacked_size_p8); ··· 446 444 447 445 /* process SAL system table: */ 448 446 ia64_sal_init(efi.sal_systab); 447 + 448 + ia64_setup_printk_clock(); 449 449 450 450 #ifdef CONFIG_SMP 451 451 cpu_physical_id(0) = hard_smp_processor_id();
+27
arch/ia64/kernel/time.c
··· 278 278 } 279 279 } 280 280 EXPORT_SYMBOL(udelay); 281 + 282 + static unsigned long long ia64_itc_printk_clock(void) 283 + { 284 + if (ia64_get_kr(IA64_KR_PER_CPU_DATA)) 285 + return sched_clock(); 286 + return 0; 287 + } 288 + 289 + static unsigned long long ia64_default_printk_clock(void) 290 + { 291 + return (unsigned long long)(jiffies_64 - INITIAL_JIFFIES) * 292 + (1000000000/HZ); 293 + } 294 + 295 + unsigned long long (*ia64_printk_clock)(void) = &ia64_default_printk_clock; 296 + 297 + unsigned long long printk_clock(void) 298 + { 299 + return ia64_printk_clock(); 300 + } 301 + 302 + void __init 303 + ia64_setup_printk_clock(void) 304 + { 305 + if (!(sal_platform_features & IA64_SAL_PLATFORM_FEATURE_ITC_DRIFT)) 306 + ia64_printk_clock = ia64_itc_printk_clock; 307 + }
+3 -2
arch/ia64/sn/kernel/mca.c
··· 3 3 * License. See the file "COPYING" in the main directory of this archive 4 4 * for more details. 5 5 * 6 - * Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved. 6 + * Copyright (c) 2000-2006 Silicon Graphics, Inc. All Rights Reserved. 7 7 */ 8 8 9 9 #include <linux/types.h> ··· 137 137 138 138 static int __init sn_salinfo_init(void) 139 139 { 140 - salinfo_platform_oemdata = &sn_salinfo_platform_oemdata; 140 + if (ia64_platform_is("sn2")) 141 + salinfo_platform_oemdata = &sn_salinfo_platform_oemdata; 141 142 return 0; 142 143 } 143 144
+27 -13
arch/ia64/sn/kernel/setup.c
··· 67 67 extern void (*ia64_mark_idle) (int); 68 68 extern void snidle(int); 69 69 extern unsigned char acpi_kbd_controller_present; 70 + extern unsigned long long (*ia64_printk_clock)(void); 70 71 71 72 unsigned long sn_rtc_cycles_per_second; 72 73 EXPORT_SYMBOL(sn_rtc_cycles_per_second); ··· 359 358 } 360 359 } 361 360 361 + static unsigned long sn2_rtc_initial; 362 + 363 + static unsigned long long ia64_sn2_printk_clock(void) 364 + { 365 + unsigned long rtc_now = rtc_time(); 366 + 367 + return (rtc_now - sn2_rtc_initial) * 368 + (1000000000 / sn_rtc_cycles_per_second); 369 + } 370 + 362 371 /** 363 372 * sn_setup - SN platform setup routine 364 373 * @cmdline_p: kernel command line ··· 383 372 u32 version = sn_sal_rev(); 384 373 extern void sn_cpu_init(void); 385 374 375 + sn2_rtc_initial = rtc_time(); 386 376 ia64_sn_plat_set_error_handling_features(); // obsolete 387 377 ia64_sn_set_os_feature(OSF_MCA_SLV_TO_OS_INIT_SLV); 388 378 ia64_sn_set_os_feature(OSF_FEAT_LOG_SBES); ··· 435 423 */ 436 424 build_cnode_tables(); 437 425 438 - /* 439 - * Old PROMs do not provide an ACPI FADT. Disable legacy keyboard 440 - * support here so we don't have to listen to failed keyboard probe 441 - * messages. 442 - */ 443 - if (version <= 0x0209 && acpi_kbd_controller_present) { 444 - printk(KERN_INFO "Disabling legacy keyboard support as prom " 445 - "is too old and doesn't provide FADT\n"); 446 - acpi_kbd_controller_present = 0; 447 - } 448 - 449 - printk("SGI SAL version %x.%02x\n", version >> 8, version & 0x00FF); 450 - 451 426 status = 452 427 ia64_sal_freq_base(SAL_FREQ_BASE_REALTIME_CLOCK, &ticks_per_sec, 453 428 &drift); ··· 447 448 sn_rtc_cycles_per_second = ticks_per_sec; 448 449 449 450 platform_intr_list[ACPI_INTERRUPT_CPEI] = IA64_CPE_VECTOR; 451 + 452 + ia64_printk_clock = ia64_sn2_printk_clock; 453 + 454 + /* 455 + * Old PROMs do not provide an ACPI FADT. Disable legacy keyboard 456 + * support here so we don't have to listen to failed keyboard probe 457 + * messages. 458 + */ 459 + if (version <= 0x0209 && acpi_kbd_controller_present) { 460 + printk(KERN_INFO "Disabling legacy keyboard support as prom " 461 + "is too old and doesn't provide FADT\n"); 462 + acpi_kbd_controller_present = 0; 463 + } 464 + 465 + printk("SGI SAL version %x.%02x\n", version >> 8, version & 0x00FF); 450 466 451 467 /* 452 468 * we set the default root device to /dev/hda
+4 -1
arch/ia64/sn/kernel/sn2/sn_hwperf.c
··· 3 3 * License. See the file "COPYING" in the main directory of this archive 4 4 * for more details. 5 5 * 6 - * Copyright (C) 2004-2005 Silicon Graphics, Inc. All rights reserved. 6 + * Copyright (C) 2004-2006 Silicon Graphics, Inc. All rights reserved. 7 7 * 8 8 * SGI Altix topology and hardware performance monitoring API. 9 9 * Mark Goodwin <markgw@sgi.com>. ··· 972 972 static int __devinit sn_hwperf_misc_register_init(void) 973 973 { 974 974 int e; 975 + 976 + if (!ia64_platform_is("sn2")) 977 + return 0; 975 978 976 979 sn_hwperf_init(); 977 980