diff options
Diffstat (limited to 'arch/ia64/kernel')
| -rw-r--r-- | arch/ia64/kernel/efi.c | 5 | ||||
| -rw-r--r-- | arch/ia64/kernel/head.S | 9 | ||||
| -rw-r--r-- | arch/ia64/kernel/module.c | 9 | ||||
| -rw-r--r-- | arch/ia64/kernel/setup.c | 2 | ||||
| -rw-r--r-- | arch/ia64/kernel/smpboot.c | 4 | ||||
| -rw-r--r-- | arch/ia64/kernel/vmlinux.lds.S | 8 |
6 files changed, 16 insertions, 21 deletions
diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c index d45f215bc8fc..51b75cea7018 100644 --- a/arch/ia64/kernel/efi.c +++ b/arch/ia64/kernel/efi.c | |||
| @@ -1232,9 +1232,10 @@ efi_initialize_iomem_resources(struct resource *code_resource, | |||
| 1232 | if (md->attribute & EFI_MEMORY_WP) { | 1232 | if (md->attribute & EFI_MEMORY_WP) { |
| 1233 | name = "System ROM"; | 1233 | name = "System ROM"; |
| 1234 | flags |= IORESOURCE_READONLY; | 1234 | flags |= IORESOURCE_READONLY; |
| 1235 | } else { | 1235 | } else if (md->attribute == EFI_MEMORY_UC) |
| 1236 | name = "Uncached RAM"; | ||
| 1237 | else | ||
| 1236 | name = "System RAM"; | 1238 | name = "System RAM"; |
| 1237 | } | ||
| 1238 | break; | 1239 | break; |
| 1239 | 1240 | ||
| 1240 | case EFI_ACPI_MEMORY_NVS: | 1241 | case EFI_ACPI_MEMORY_NVS: |
diff --git a/arch/ia64/kernel/head.S b/arch/ia64/kernel/head.S index 8bdea8eb62e3..66e491d8baac 100644 --- a/arch/ia64/kernel/head.S +++ b/arch/ia64/kernel/head.S | |||
| @@ -367,16 +367,17 @@ start_ap: | |||
| 367 | ;; | 367 | ;; |
| 368 | #else | 368 | #else |
| 369 | (isAP) br.few 2f | 369 | (isAP) br.few 2f |
| 370 | mov r20=r19 | 370 | movl r20=__cpu0_per_cpu |
| 371 | sub r19=r19,r18 | ||
| 372 | ;; | 371 | ;; |
| 373 | shr.u r18=r18,3 | 372 | shr.u r18=r18,3 |
| 374 | 1: | 373 | 1: |
| 375 | ld8 r21=[r20],8;; | 374 | ld8 r21=[r19],8;; |
| 376 | st8[r19]=r21,8 | 375 | st8[r20]=r21,8 |
| 377 | adds r18=-1,r18;; | 376 | adds r18=-1,r18;; |
| 378 | cmp4.lt p7,p6=0,r18 | 377 | cmp4.lt p7,p6=0,r18 |
| 379 | (p7) br.cond.dptk.few 1b | 378 | (p7) br.cond.dptk.few 1b |
| 379 | mov r19=r20 | ||
| 380 | ;; | ||
| 380 | 2: | 381 | 2: |
| 381 | #endif | 382 | #endif |
| 382 | tpa r19=r19 | 383 | tpa r19=r19 |
diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c index 29aad349e0c4..aaa7d901521f 100644 --- a/arch/ia64/kernel/module.c +++ b/arch/ia64/kernel/module.c | |||
| @@ -135,15 +135,6 @@ static const char *reloc_name[256] = { | |||
| 135 | 135 | ||
| 136 | #undef N | 136 | #undef N |
| 137 | 137 | ||
| 138 | struct got_entry { | ||
| 139 | uint64_t val; | ||
| 140 | }; | ||
| 141 | |||
| 142 | struct fdesc { | ||
| 143 | uint64_t ip; | ||
| 144 | uint64_t gp; | ||
| 145 | }; | ||
| 146 | |||
| 147 | /* Opaque struct for insns, to protect against derefs. */ | 138 | /* Opaque struct for insns, to protect against derefs. */ |
| 148 | struct insn; | 139 | struct insn; |
| 149 | 140 | ||
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c index c27d5b2c182b..de636b215677 100644 --- a/arch/ia64/kernel/setup.c +++ b/arch/ia64/kernel/setup.c | |||
| @@ -616,7 +616,9 @@ setup_arch (char **cmdline_p) | |||
| 616 | ia64_mca_init(); | 616 | ia64_mca_init(); |
| 617 | 617 | ||
| 618 | platform_setup(cmdline_p); | 618 | platform_setup(cmdline_p); |
| 619 | #ifndef CONFIG_IA64_HP_SIM | ||
| 619 | check_sal_cache_flush(); | 620 | check_sal_cache_flush(); |
| 621 | #endif | ||
| 620 | paging_init(); | 622 | paging_init(); |
| 621 | } | 623 | } |
| 622 | 624 | ||
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c index bcea81e432fd..d8f05e504fbf 100644 --- a/arch/ia64/kernel/smpboot.c +++ b/arch/ia64/kernel/smpboot.c | |||
| @@ -741,16 +741,14 @@ int __cpu_disable(void) | |||
| 741 | return -EBUSY; | 741 | return -EBUSY; |
| 742 | } | 742 | } |
| 743 | 743 | ||
| 744 | cpu_clear(cpu, cpu_online_map); | ||
| 745 | |||
| 746 | if (migrate_platform_irqs(cpu)) { | 744 | if (migrate_platform_irqs(cpu)) { |
| 747 | cpu_set(cpu, cpu_online_map); | 745 | cpu_set(cpu, cpu_online_map); |
| 748 | return (-EBUSY); | 746 | return (-EBUSY); |
| 749 | } | 747 | } |
| 750 | 748 | ||
| 751 | remove_siblinginfo(cpu); | 749 | remove_siblinginfo(cpu); |
| 752 | cpu_clear(cpu, cpu_online_map); | ||
| 753 | fixup_irqs(); | 750 | fixup_irqs(); |
| 751 | cpu_clear(cpu, cpu_online_map); | ||
| 754 | local_flush_tlb_all(); | 752 | local_flush_tlb_all(); |
| 755 | cpu_clear(cpu, cpu_callin_map); | 753 | cpu_clear(cpu, cpu_callin_map); |
| 756 | return 0; | 754 | return 0; |
diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S index de71da811cd6..10a7d47e8510 100644 --- a/arch/ia64/kernel/vmlinux.lds.S +++ b/arch/ia64/kernel/vmlinux.lds.S | |||
| @@ -215,9 +215,6 @@ SECTIONS | |||
| 215 | /* Per-cpu data: */ | 215 | /* Per-cpu data: */ |
| 216 | percpu : { } :percpu | 216 | percpu : { } :percpu |
| 217 | . = ALIGN(PERCPU_PAGE_SIZE); | 217 | . = ALIGN(PERCPU_PAGE_SIZE); |
| 218 | #ifdef CONFIG_SMP | ||
| 219 | . = . + PERCPU_PAGE_SIZE; /* cpu0 per-cpu space */ | ||
| 220 | #endif | ||
| 221 | __phys_per_cpu_start = .; | 218 | __phys_per_cpu_start = .; |
| 222 | .data.percpu PERCPU_ADDR : AT(__phys_per_cpu_start - LOAD_OFFSET) | 219 | .data.percpu PERCPU_ADDR : AT(__phys_per_cpu_start - LOAD_OFFSET) |
| 223 | { | 220 | { |
| @@ -233,6 +230,11 @@ SECTIONS | |||
| 233 | data : { } :data | 230 | data : { } :data |
| 234 | .data : AT(ADDR(.data) - LOAD_OFFSET) | 231 | .data : AT(ADDR(.data) - LOAD_OFFSET) |
| 235 | { | 232 | { |
| 233 | #ifdef CONFIG_SMP | ||
| 234 | . = ALIGN(PERCPU_PAGE_SIZE); | ||
| 235 | __cpu0_per_cpu = .; | ||
| 236 | . = . + PERCPU_PAGE_SIZE; /* cpu0 per-cpu space */ | ||
| 237 | #endif | ||
| 236 | DATA_DATA | 238 | DATA_DATA |
| 237 | *(.data1) | 239 | *(.data1) |
| 238 | *(.gnu.linkonce.d*) | 240 | *(.gnu.linkonce.d*) |
