diff options
-rw-r--r-- | arch/powerpc/boot/Makefile | 3 | ||||
-rw-r--r-- | arch/powerpc/boot/opal.c | 2 | ||||
-rw-r--r-- | arch/powerpc/kernel/eeh_driver.c | 4 | ||||
-rw-r--r-- | arch/powerpc/kernel/vmlinux.lds.S | 9 | ||||
-rw-r--r-- | arch/powerpc/mm/hash64_4k.c | 2 | ||||
-rw-r--r-- | arch/powerpc/mm/hash64_64k.c | 4 |
6 files changed, 18 insertions, 6 deletions
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index eae2dc8bc218..9d47f2efa830 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile | |||
@@ -100,7 +100,8 @@ src-wlib-y := string.S crt0.S crtsavres.S stdio.c decompress.c main.c \ | |||
100 | ns16550.c serial.c simple_alloc.c div64.S util.S \ | 100 | ns16550.c serial.c simple_alloc.c div64.S util.S \ |
101 | elf_util.c $(zlib-y) devtree.c stdlib.c \ | 101 | elf_util.c $(zlib-y) devtree.c stdlib.c \ |
102 | oflib.c ofconsole.c cuboot.c mpsc.c cpm-serial.c \ | 102 | oflib.c ofconsole.c cuboot.c mpsc.c cpm-serial.c \ |
103 | uartlite.c mpc52xx-psc.c opal.c opal-calls.S | 103 | uartlite.c mpc52xx-psc.c opal.c |
104 | src-wlib-$(CONFIG_PPC64_BOOT_WRAPPER) += opal-calls.S | ||
104 | src-wlib-$(CONFIG_40x) += 4xx.c planetcore.c | 105 | src-wlib-$(CONFIG_40x) += 4xx.c planetcore.c |
105 | src-wlib-$(CONFIG_44x) += 4xx.c ebony.c bamboo.c | 106 | src-wlib-$(CONFIG_44x) += 4xx.c ebony.c bamboo.c |
106 | src-wlib-$(CONFIG_8xx) += mpc8xx.c planetcore.c fsl-soc.c | 107 | src-wlib-$(CONFIG_8xx) += mpc8xx.c planetcore.c fsl-soc.c |
diff --git a/arch/powerpc/boot/opal.c b/arch/powerpc/boot/opal.c index d7b4fd47eb44..0272570d02de 100644 --- a/arch/powerpc/boot/opal.c +++ b/arch/powerpc/boot/opal.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <libfdt.h> | 13 | #include <libfdt.h> |
14 | #include "../include/asm/opal-api.h" | 14 | #include "../include/asm/opal-api.h" |
15 | 15 | ||
16 | #ifdef __powerpc64__ | 16 | #ifdef CONFIG_PPC64_BOOT_WRAPPER |
17 | 17 | ||
18 | /* Global OPAL struct used by opal-call.S */ | 18 | /* Global OPAL struct used by opal-call.S */ |
19 | struct opal { | 19 | struct opal { |
diff --git a/arch/powerpc/kernel/eeh_driver.c b/arch/powerpc/kernel/eeh_driver.c index a62be72da274..5c31369435f2 100644 --- a/arch/powerpc/kernel/eeh_driver.c +++ b/arch/powerpc/kernel/eeh_driver.c | |||
@@ -671,8 +671,10 @@ static int eeh_reset_device(struct eeh_pe *pe, struct pci_bus *bus, | |||
671 | 671 | ||
672 | /* Clear frozen state */ | 672 | /* Clear frozen state */ |
673 | rc = eeh_clear_pe_frozen_state(pe, false); | 673 | rc = eeh_clear_pe_frozen_state(pe, false); |
674 | if (rc) | 674 | if (rc) { |
675 | pci_unlock_rescan_remove(); | ||
675 | return rc; | 676 | return rc; |
677 | } | ||
676 | 678 | ||
677 | /* Give the system 5 seconds to finish running the user-space | 679 | /* Give the system 5 seconds to finish running the user-space |
678 | * hotplug shutdown scripts, e.g. ifdown for ethernet. Yes, | 680 | * hotplug shutdown scripts, e.g. ifdown for ethernet. Yes, |
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S index 8295f51c1a5f..7394b770ae1f 100644 --- a/arch/powerpc/kernel/vmlinux.lds.S +++ b/arch/powerpc/kernel/vmlinux.lds.S | |||
@@ -94,8 +94,17 @@ SECTIONS | |||
94 | * detected, and will result in a crash at boot due to offsets being | 94 | * detected, and will result in a crash at boot due to offsets being |
95 | * wrong. | 95 | * wrong. |
96 | */ | 96 | */ |
97 | #ifdef CONFIG_PPC64 | ||
98 | /* | ||
99 | * BLOCK(0) overrides the default output section alignment because | ||
100 | * this needs to start right after .head.text in order for fixed | ||
101 | * section placement to work. | ||
102 | */ | ||
103 | .text BLOCK(0) : AT(ADDR(.text) - LOAD_OFFSET) { | ||
104 | #else | ||
97 | .text : AT(ADDR(.text) - LOAD_OFFSET) { | 105 | .text : AT(ADDR(.text) - LOAD_OFFSET) { |
98 | ALIGN_FUNCTION(); | 106 | ALIGN_FUNCTION(); |
107 | #endif | ||
99 | /* careful! __ftr_alt_* sections need to be close to .text */ | 108 | /* careful! __ftr_alt_* sections need to be close to .text */ |
100 | *(.text .fixup __ftr_alt_* .ref.text) | 109 | *(.text .fixup __ftr_alt_* .ref.text) |
101 | SCHED_TEXT | 110 | SCHED_TEXT |
diff --git a/arch/powerpc/mm/hash64_4k.c b/arch/powerpc/mm/hash64_4k.c index 42c702b3be1f..6fa450c12d6d 100644 --- a/arch/powerpc/mm/hash64_4k.c +++ b/arch/powerpc/mm/hash64_4k.c | |||
@@ -55,7 +55,7 @@ int __hash_page_4K(unsigned long ea, unsigned long access, unsigned long vsid, | |||
55 | */ | 55 | */ |
56 | rflags = htab_convert_pte_flags(new_pte); | 56 | rflags = htab_convert_pte_flags(new_pte); |
57 | 57 | ||
58 | if (!cpu_has_feature(CPU_FTR_NOEXECUTE) && | 58 | if (cpu_has_feature(CPU_FTR_NOEXECUTE) && |
59 | !cpu_has_feature(CPU_FTR_COHERENT_ICACHE)) | 59 | !cpu_has_feature(CPU_FTR_COHERENT_ICACHE)) |
60 | rflags = hash_page_do_lazy_icache(rflags, __pte(old_pte), trap); | 60 | rflags = hash_page_do_lazy_icache(rflags, __pte(old_pte), trap); |
61 | 61 | ||
diff --git a/arch/powerpc/mm/hash64_64k.c b/arch/powerpc/mm/hash64_64k.c index 3bbbea07378c..1a68cb19b0e3 100644 --- a/arch/powerpc/mm/hash64_64k.c +++ b/arch/powerpc/mm/hash64_64k.c | |||
@@ -87,7 +87,7 @@ int __hash_page_4K(unsigned long ea, unsigned long access, unsigned long vsid, | |||
87 | subpg_pte = new_pte & ~subpg_prot; | 87 | subpg_pte = new_pte & ~subpg_prot; |
88 | rflags = htab_convert_pte_flags(subpg_pte); | 88 | rflags = htab_convert_pte_flags(subpg_pte); |
89 | 89 | ||
90 | if (!cpu_has_feature(CPU_FTR_NOEXECUTE) && | 90 | if (cpu_has_feature(CPU_FTR_NOEXECUTE) && |
91 | !cpu_has_feature(CPU_FTR_COHERENT_ICACHE)) { | 91 | !cpu_has_feature(CPU_FTR_COHERENT_ICACHE)) { |
92 | 92 | ||
93 | /* | 93 | /* |
@@ -258,7 +258,7 @@ int __hash_page_64K(unsigned long ea, unsigned long access, | |||
258 | 258 | ||
259 | rflags = htab_convert_pte_flags(new_pte); | 259 | rflags = htab_convert_pte_flags(new_pte); |
260 | 260 | ||
261 | if (!cpu_has_feature(CPU_FTR_NOEXECUTE) && | 261 | if (cpu_has_feature(CPU_FTR_NOEXECUTE) && |
262 | !cpu_has_feature(CPU_FTR_COHERENT_ICACHE)) | 262 | !cpu_has_feature(CPU_FTR_COHERENT_ICACHE)) |
263 | rflags = hash_page_do_lazy_icache(rflags, __pte(old_pte), trap); | 263 | rflags = hash_page_do_lazy_icache(rflags, __pte(old_pte), trap); |
264 | 264 | ||