diff options
Diffstat (limited to 'arch/ia64')
| -rw-r--r-- | arch/ia64/configs/gensparse_defconfig | 12 | ||||
| -rw-r--r-- | arch/ia64/kernel/cyclone.c | 2 | ||||
| -rw-r--r-- | arch/ia64/kernel/ivt.S | 15 | ||||
| -rw-r--r-- | arch/ia64/kernel/mca_drv.c | 16 | ||||
| -rw-r--r-- | arch/ia64/sn/kernel/sn2/sn2_smp.c | 2 | ||||
| -rw-r--r-- | arch/ia64/sn/kernel/tiocx.c | 2 |
6 files changed, 33 insertions, 16 deletions
diff --git a/arch/ia64/configs/gensparse_defconfig b/arch/ia64/configs/gensparse_defconfig index 184678fe7832..744fd2f79f61 100644 --- a/arch/ia64/configs/gensparse_defconfig +++ b/arch/ia64/configs/gensparse_defconfig | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.16-rc5 | 3 | # Linux kernel version: 2.6.16-rc5 |
| 4 | # Mon Feb 27 16:15:43 2006 | 4 | # Thu Mar 2 16:39:10 2006 |
| 5 | # | 5 | # |
| 6 | 6 | ||
| 7 | # | 7 | # |
| @@ -312,7 +312,13 @@ CONFIG_FW_LOADER=m | |||
| 312 | # | 312 | # |
| 313 | # Plug and Play support | 313 | # Plug and Play support |
| 314 | # | 314 | # |
| 315 | # CONFIG_PNP is not set | 315 | CONFIG_PNP=y |
| 316 | # CONFIG_PNP_DEBUG is not set | ||
| 317 | |||
| 318 | # | ||
| 319 | # Protocols | ||
| 320 | # | ||
| 321 | CONFIG_PNPACPI=y | ||
| 316 | 322 | ||
| 317 | # | 323 | # |
| 318 | # Block devices | 324 | # Block devices |
| @@ -357,6 +363,7 @@ CONFIG_BLK_DEV_IDESCSI=m | |||
| 357 | # IDE chipset support/bugfixes | 363 | # IDE chipset support/bugfixes |
| 358 | # | 364 | # |
| 359 | CONFIG_IDE_GENERIC=y | 365 | CONFIG_IDE_GENERIC=y |
| 366 | # CONFIG_BLK_DEV_IDEPNP is not set | ||
| 360 | CONFIG_BLK_DEV_IDEPCI=y | 367 | CONFIG_BLK_DEV_IDEPCI=y |
| 361 | # CONFIG_IDEPCI_SHARE_IRQ is not set | 368 | # CONFIG_IDEPCI_SHARE_IRQ is not set |
| 362 | # CONFIG_BLK_DEV_OFFBOARD is not set | 369 | # CONFIG_BLK_DEV_OFFBOARD is not set |
| @@ -525,6 +532,7 @@ CONFIG_DUMMY=m | |||
| 525 | # CONFIG_BONDING is not set | 532 | # CONFIG_BONDING is not set |
| 526 | # CONFIG_EQUALIZER is not set | 533 | # CONFIG_EQUALIZER is not set |
| 527 | # CONFIG_TUN is not set | 534 | # CONFIG_TUN is not set |
| 535 | # CONFIG_NET_SB1000 is not set | ||
| 528 | 536 | ||
| 529 | # | 537 | # |
| 530 | # ARCnet devices | 538 | # ARCnet devices |
diff --git a/arch/ia64/kernel/cyclone.c b/arch/ia64/kernel/cyclone.c index 6ade3790ce07..e00b21514f7c 100644 --- a/arch/ia64/kernel/cyclone.c +++ b/arch/ia64/kernel/cyclone.c | |||
| @@ -36,7 +36,7 @@ int __init init_cyclone_clock(void) | |||
| 36 | u32* volatile cyclone_timer; /* Cyclone MPMC0 register */ | 36 | u32* volatile cyclone_timer; /* Cyclone MPMC0 register */ |
| 37 | 37 | ||
| 38 | if (!use_cyclone) | 38 | if (!use_cyclone) |
| 39 | return -ENODEV; | 39 | return 0; |
| 40 | 40 | ||
| 41 | printk(KERN_INFO "Summit chipset: Starting Cyclone Counter.\n"); | 41 | printk(KERN_INFO "Summit chipset: Starting Cyclone Counter.\n"); |
| 42 | 42 | ||
diff --git a/arch/ia64/kernel/ivt.S b/arch/ia64/kernel/ivt.S index 9f80569a32b0..dcd906fe5749 100644 --- a/arch/ia64/kernel/ivt.S +++ b/arch/ia64/kernel/ivt.S | |||
| @@ -561,11 +561,12 @@ ENTRY(dirty_bit) | |||
| 561 | ;; // avoid RAW on r18 | 561 | ;; // avoid RAW on r18 |
| 562 | mov ar.ccv=r18 // set compare value for cmpxchg | 562 | mov ar.ccv=r18 // set compare value for cmpxchg |
| 563 | or r25=_PAGE_D|_PAGE_A,r18 // set the dirty and accessed bits | 563 | or r25=_PAGE_D|_PAGE_A,r18 // set the dirty and accessed bits |
| 564 | tbit.z p7,p6 = r18,_PAGE_P_BIT // Check present bit | ||
| 564 | ;; | 565 | ;; |
| 565 | cmpxchg8.acq r26=[r17],r25,ar.ccv | 566 | (p6) cmpxchg8.acq r26=[r17],r25,ar.ccv // Only update if page is present |
| 566 | mov r24=PAGE_SHIFT<<2 | 567 | mov r24=PAGE_SHIFT<<2 |
| 567 | ;; | 568 | ;; |
| 568 | cmp.eq p6,p7=r26,r18 | 569 | (p6) cmp.eq p6,p7=r26,r18 // Only compare if page is present |
| 569 | ;; | 570 | ;; |
| 570 | (p6) itc.d r25 // install updated PTE | 571 | (p6) itc.d r25 // install updated PTE |
| 571 | ;; | 572 | ;; |
| @@ -626,11 +627,12 @@ ENTRY(iaccess_bit) | |||
| 626 | ;; | 627 | ;; |
| 627 | mov ar.ccv=r18 // set compare value for cmpxchg | 628 | mov ar.ccv=r18 // set compare value for cmpxchg |
| 628 | or r25=_PAGE_A,r18 // set the accessed bit | 629 | or r25=_PAGE_A,r18 // set the accessed bit |
| 630 | tbit.z p7,p6 = r18,_PAGE_P_BIT // Check present bit | ||
| 629 | ;; | 631 | ;; |
| 630 | cmpxchg8.acq r26=[r17],r25,ar.ccv | 632 | (p6) cmpxchg8.acq r26=[r17],r25,ar.ccv // Only if page present |
| 631 | mov r24=PAGE_SHIFT<<2 | 633 | mov r24=PAGE_SHIFT<<2 |
| 632 | ;; | 634 | ;; |
| 633 | cmp.eq p6,p7=r26,r18 | 635 | (p6) cmp.eq p6,p7=r26,r18 // Only if page present |
| 634 | ;; | 636 | ;; |
| 635 | (p6) itc.i r25 // install updated PTE | 637 | (p6) itc.i r25 // install updated PTE |
| 636 | ;; | 638 | ;; |
| @@ -680,11 +682,12 @@ ENTRY(daccess_bit) | |||
| 680 | ;; // avoid RAW on r18 | 682 | ;; // avoid RAW on r18 |
| 681 | mov ar.ccv=r18 // set compare value for cmpxchg | 683 | mov ar.ccv=r18 // set compare value for cmpxchg |
| 682 | or r25=_PAGE_A,r18 // set the dirty bit | 684 | or r25=_PAGE_A,r18 // set the dirty bit |
| 685 | tbit.z p7,p6 = r18,_PAGE_P_BIT // Check present bit | ||
| 683 | ;; | 686 | ;; |
| 684 | cmpxchg8.acq r26=[r17],r25,ar.ccv | 687 | (p6) cmpxchg8.acq r26=[r17],r25,ar.ccv // Only if page is present |
| 685 | mov r24=PAGE_SHIFT<<2 | 688 | mov r24=PAGE_SHIFT<<2 |
| 686 | ;; | 689 | ;; |
| 687 | cmp.eq p6,p7=r26,r18 | 690 | (p6) cmp.eq p6,p7=r26,r18 // Only if page is present |
| 688 | ;; | 691 | ;; |
| 689 | (p6) itc.d r25 // install updated PTE | 692 | (p6) itc.d r25 // install updated PTE |
| 690 | /* | 693 | /* |
diff --git a/arch/ia64/kernel/mca_drv.c b/arch/ia64/kernel/mca_drv.c index 8fd93afa75a7..e883d85906db 100644 --- a/arch/ia64/kernel/mca_drv.c +++ b/arch/ia64/kernel/mca_drv.c | |||
| @@ -123,8 +123,9 @@ mca_page_isolate(unsigned long paddr) | |||
| 123 | void | 123 | void |
| 124 | mca_handler_bh(unsigned long paddr) | 124 | mca_handler_bh(unsigned long paddr) |
| 125 | { | 125 | { |
| 126 | printk(KERN_DEBUG "OS_MCA: process [pid: %d](%s) encounters MCA.\n", | 126 | printk(KERN_ERR |
| 127 | current->pid, current->comm); | 127 | "OS_MCA: process [pid: %d](%s) encounters MCA (paddr=%lx)\n", |
| 128 | current->pid, current->comm, paddr); | ||
| 128 | 129 | ||
| 129 | spin_lock(&mca_bh_lock); | 130 | spin_lock(&mca_bh_lock); |
| 130 | switch (mca_page_isolate(paddr)) { | 131 | switch (mca_page_isolate(paddr)) { |
| @@ -132,7 +133,7 @@ mca_handler_bh(unsigned long paddr) | |||
| 132 | printk(KERN_DEBUG "Page isolation: ( %lx ) success.\n", paddr); | 133 | printk(KERN_DEBUG "Page isolation: ( %lx ) success.\n", paddr); |
| 133 | break; | 134 | break; |
| 134 | case ISOLATE_NG: | 135 | case ISOLATE_NG: |
| 135 | printk(KERN_DEBUG "Page isolation: ( %lx ) failure.\n", paddr); | 136 | printk(KERN_CRIT "Page isolation: ( %lx ) failure.\n", paddr); |
| 136 | break; | 137 | break; |
| 137 | default: | 138 | default: |
| 138 | break; | 139 | break; |
| @@ -567,10 +568,15 @@ recover_from_processor_error(int platform, slidx_table_t *slidx, | |||
| 567 | return 0; | 568 | return 0; |
| 568 | 569 | ||
| 569 | /* | 570 | /* |
| 570 | * If there is no bus error, record is weird but we need not to recover. | 571 | * The cache check and bus check bits have four possible states |
| 572 | * cc bc | ||
| 573 | * 0 0 Weird record, not recovered | ||
| 574 | * 1 0 Cache error, not recovered | ||
| 575 | * 0 1 I/O error, attempt recovery | ||
| 576 | * 1 1 Memory error, attempt recovery | ||
| 571 | */ | 577 | */ |
| 572 | if (psp->bc == 0 || pbci == NULL) | 578 | if (psp->bc == 0 || pbci == NULL) |
| 573 | return 1; | 579 | return 0; |
| 574 | 580 | ||
| 575 | /* | 581 | /* |
| 576 | * Sorry, we cannot handle so many. | 582 | * Sorry, we cannot handle so many. |
diff --git a/arch/ia64/sn/kernel/sn2/sn2_smp.c b/arch/ia64/sn/kernel/sn2/sn2_smp.c index 24eefb2fc55f..b2e1e746b47f 100644 --- a/arch/ia64/sn/kernel/sn2/sn2_smp.c +++ b/arch/ia64/sn/kernel/sn2/sn2_smp.c | |||
| @@ -446,7 +446,7 @@ static struct proc_dir_entry *proc_sn2_ptc; | |||
| 446 | static int __init sn2_ptc_init(void) | 446 | static int __init sn2_ptc_init(void) |
| 447 | { | 447 | { |
| 448 | if (!ia64_platform_is("sn2")) | 448 | if (!ia64_platform_is("sn2")) |
| 449 | return -ENOSYS; | 449 | return 0; |
| 450 | 450 | ||
| 451 | if (!(proc_sn2_ptc = create_proc_entry(PTC_BASENAME, 0444, NULL))) { | 451 | if (!(proc_sn2_ptc = create_proc_entry(PTC_BASENAME, 0444, NULL))) { |
| 452 | printk(KERN_ERR "unable to create %s proc entry", PTC_BASENAME); | 452 | printk(KERN_ERR "unable to create %s proc entry", PTC_BASENAME); |
diff --git a/arch/ia64/sn/kernel/tiocx.c b/arch/ia64/sn/kernel/tiocx.c index 8a56f8b5ffa2..99cb28e74295 100644 --- a/arch/ia64/sn/kernel/tiocx.c +++ b/arch/ia64/sn/kernel/tiocx.c | |||
| @@ -484,7 +484,7 @@ static int __init tiocx_init(void) | |||
| 484 | int found_tiocx_device = 0; | 484 | int found_tiocx_device = 0; |
| 485 | 485 | ||
| 486 | if (!ia64_platform_is("sn2")) | 486 | if (!ia64_platform_is("sn2")) |
| 487 | return -ENODEV; | 487 | return 0; |
| 488 | 488 | ||
| 489 | bus_register(&tiocx_bus_type); | 489 | bus_register(&tiocx_bus_type); |
| 490 | 490 | ||
