diff options
-rw-r--r-- | arch/powerpc/Makefile | 1 | ||||
-rw-r--r-- | arch/powerpc/boot/Makefile | 22 | ||||
-rwxr-xr-x | arch/powerpc/boot/wrapper | 4 | ||||
-rw-r--r-- | arch/powerpc/kernel/irq.c | 6 | ||||
-rw-r--r-- | arch/powerpc/kernel/prom.c | 11 | ||||
-rw-r--r-- | arch/powerpc/kernel/ptrace.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/pasemi/idle.c | 1 | ||||
-rw-r--r-- | arch/powerpc/platforms/ps3/interrupt.c | 1 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/xics.c | 10 | ||||
-rw-r--r-- | arch/ppc/syslib/ibm_ocp.c | 1 | ||||
-rw-r--r-- | drivers/macintosh/Kconfig | 2 | ||||
-rw-r--r-- | include/asm-powerpc/pgalloc-64.h | 3 | ||||
-rw-r--r-- | include/asm-powerpc/tlb.h | 9 |
13 files changed, 46 insertions, 27 deletions
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index 6238b5875fd1..fbafd965dcd2 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile | |||
@@ -142,7 +142,6 @@ drivers-$(CONFIG_OPROFILE) += arch/powerpc/oprofile/ | |||
142 | 142 | ||
143 | # Default to zImage, override when needed | 143 | # Default to zImage, override when needed |
144 | defaultimage-y := zImage | 144 | defaultimage-y := zImage |
145 | defaultimage-$(CONFIG_PPC_ISERIES) := vmlinux | ||
146 | defaultimage-$(CONFIG_DEFAULT_UIMAGE) := uImage | 145 | defaultimage-$(CONFIG_DEFAULT_UIMAGE) := uImage |
147 | KBUILD_IMAGE := $(defaultimage-y) | 146 | KBUILD_IMAGE := $(defaultimage-y) |
148 | all: $(KBUILD_IMAGE) | 147 | all: $(KBUILD_IMAGE) |
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index 83788986b93b..ff2701949ee1 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile | |||
@@ -11,20 +11,18 @@ | |||
11 | # bootloader and increase compatibility with OpenFirmware. | 11 | # bootloader and increase compatibility with OpenFirmware. |
12 | # | 12 | # |
13 | # To this end we need to define BOOTCC, etc, as the tools | 13 | # To this end we need to define BOOTCC, etc, as the tools |
14 | # needed to build the 32 bit image. These are normally HOSTCC, | 14 | # needed to build the 32 bit image. That's normally the same |
15 | # but may be a third compiler if, for example, you are cross | 15 | # compiler for the rest of the kernel, with the -m32 flag added. |
16 | # compiling from an intel box. Once the 64bit ppc gcc is | ||
17 | # stable it will probably simply be a compiler switch to | ||
18 | # compile for 32bit mode. | ||
19 | # To make it easier to setup a cross compiler, | 16 | # To make it easier to setup a cross compiler, |
20 | # CROSS32_COMPILE is setup as a prefix just like CROSS_COMPILE | 17 | # CROSS32_COMPILE is setup as a prefix just like CROSS_COMPILE |
21 | # in the toplevel makefile. | 18 | # in the toplevel makefile. |
22 | 19 | ||
23 | all: $(obj)/zImage | 20 | all: $(obj)/zImage |
24 | 21 | ||
25 | HOSTCC := gcc | 22 | BOOTCFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ |
26 | BOOTCFLAGS := $(HOSTCFLAGS) -fno-builtin -nostdinc -isystem \ | 23 | -fno-strict-aliasing -Os -msoft-float -pipe \ |
27 | $(shell $(CROSS32CC) -print-file-name=include) -fPIC | 24 | -fomit-frame-pointer -fno-builtin -fPIC -nostdinc \ |
25 | -isystem $(shell $(CROSS32CC) -print-file-name=include) | ||
28 | BOOTAFLAGS := -D__ASSEMBLY__ $(BOOTCFLAGS) -traditional -nostdinc | 26 | BOOTAFLAGS := -D__ASSEMBLY__ $(BOOTCFLAGS) -traditional -nostdinc |
29 | 27 | ||
30 | ifeq ($(call cc-option-yn, -fstack-protector),y) | 28 | ifeq ($(call cc-option-yn, -fstack-protector),y) |
@@ -33,8 +31,8 @@ endif | |||
33 | 31 | ||
34 | BOOTCFLAGS += -I$(obj) -I$(srctree)/$(obj) | 32 | BOOTCFLAGS += -I$(obj) -I$(srctree)/$(obj) |
35 | 33 | ||
36 | $(obj)/44x.o: BOOTCFLAGS += -Wa,-mbooke | 34 | $(obj)/44x.o: BOOTCFLAGS += -mcpu=440 |
37 | $(obj)/ebony.o: BOOTCFLAGS += -Wa,-mbooke | 35 | $(obj)/ebony.o: BOOTCFLAGS += -mcpu=440 |
38 | 36 | ||
39 | zlib := inffast.c inflate.c inftrees.c | 37 | zlib := inffast.c inflate.c inftrees.c |
40 | zlibheader := inffast.h inffixed.h inflate.h inftrees.h infutil.h | 38 | zlibheader := inffast.h inffixed.h inflate.h inftrees.h infutil.h |
@@ -136,6 +134,7 @@ image-$(CONFIG_PPC_EFIKA) += zImage.chrp | |||
136 | image-$(CONFIG_PPC_PMAC) += zImage.pmac | 134 | image-$(CONFIG_PPC_PMAC) += zImage.pmac |
137 | image-$(CONFIG_PPC_HOLLY) += zImage.holly-elf | 135 | image-$(CONFIG_PPC_HOLLY) += zImage.holly-elf |
138 | image-$(CONFIG_PPC_PRPMC2800) += zImage.prpmc2800 | 136 | image-$(CONFIG_PPC_PRPMC2800) += zImage.prpmc2800 |
137 | image-$(CONFIG_PPC_ISERIES) += zImage.iseries | ||
139 | image-$(CONFIG_DEFAULT_UIMAGE) += uImage | 138 | image-$(CONFIG_DEFAULT_UIMAGE) += uImage |
140 | 139 | ||
141 | ifneq ($(CONFIG_DEVICE_TREE),"") | 140 | ifneq ($(CONFIG_DEVICE_TREE),"") |
@@ -185,6 +184,9 @@ $(obj)/zImage.initrd.%: vmlinux $(wrapperbits) | |||
185 | $(obj)/zImage.%: vmlinux $(wrapperbits) | 184 | $(obj)/zImage.%: vmlinux $(wrapperbits) |
186 | $(call if_changed,wrap,$*) | 185 | $(call if_changed,wrap,$*) |
187 | 186 | ||
187 | $(obj)/zImage.iseries: vmlinux | ||
188 | $(STRIP) -s -R .comment $< -o $@ | ||
189 | |||
188 | $(obj)/zImage.ps3: vmlinux | 190 | $(obj)/zImage.ps3: vmlinux |
189 | $(STRIP) -s -R .comment $< -o $@ | 191 | $(STRIP) -s -R .comment $< -o $@ |
190 | 192 | ||
diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper index 2ed8b8b3f0ec..da77adc73078 100755 --- a/arch/powerpc/boot/wrapper +++ b/arch/powerpc/boot/wrapper | |||
@@ -129,7 +129,7 @@ case "$platform" in | |||
129 | pmac|pseries|chrp) | 129 | pmac|pseries|chrp) |
130 | platformo=$object/of.o | 130 | platformo=$object/of.o |
131 | ;; | 131 | ;; |
132 | pmaccoff) | 132 | coff) |
133 | platformo=$object/of.o | 133 | platformo=$object/of.o |
134 | lds=$object/zImage.coff.lds | 134 | lds=$object/zImage.coff.lds |
135 | ;; | 135 | ;; |
@@ -220,7 +220,7 @@ case "$platform" in | |||
220 | pseries|chrp) | 220 | pseries|chrp) |
221 | $object/addnote "$ofile" | 221 | $object/addnote "$ofile" |
222 | ;; | 222 | ;; |
223 | pmaccoff) | 223 | coff) |
224 | ${CROSS}objcopy -O aixcoff-rs6000 --set-start "$entry" "$ofile" | 224 | ${CROSS}objcopy -O aixcoff-rs6000 --set-start "$entry" "$ofile" |
225 | $object/hack-coff "$ofile" | 225 | $object/hack-coff "$ofile" |
226 | ;; | 226 | ;; |
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c index 068377a2a8dc..42c8ed6ed528 100644 --- a/arch/powerpc/kernel/irq.c +++ b/arch/powerpc/kernel/irq.c | |||
@@ -489,7 +489,7 @@ struct irq_host *irq_alloc_host(unsigned int revmap_type, | |||
489 | case IRQ_HOST_MAP_LINEAR: | 489 | case IRQ_HOST_MAP_LINEAR: |
490 | rmap = (unsigned int *)(host + 1); | 490 | rmap = (unsigned int *)(host + 1); |
491 | for (i = 0; i < revmap_arg; i++) | 491 | for (i = 0; i < revmap_arg; i++) |
492 | rmap[i] = IRQ_NONE; | 492 | rmap[i] = NO_IRQ; |
493 | host->revmap_data.linear.size = revmap_arg; | 493 | host->revmap_data.linear.size = revmap_arg; |
494 | smp_wmb(); | 494 | smp_wmb(); |
495 | host->revmap_data.linear.revmap = rmap; | 495 | host->revmap_data.linear.revmap = rmap; |
@@ -614,7 +614,7 @@ unsigned int irq_create_mapping(struct irq_host *host, | |||
614 | * host->ops->map() to update the flags | 614 | * host->ops->map() to update the flags |
615 | */ | 615 | */ |
616 | virq = irq_find_mapping(host, hwirq); | 616 | virq = irq_find_mapping(host, hwirq); |
617 | if (virq != IRQ_NONE) { | 617 | if (virq != NO_IRQ) { |
618 | if (host->ops->remap) | 618 | if (host->ops->remap) |
619 | host->ops->remap(host, virq, hwirq); | 619 | host->ops->remap(host, virq, hwirq); |
620 | pr_debug("irq: -> existing mapping on virq %d\n", virq); | 620 | pr_debug("irq: -> existing mapping on virq %d\n", virq); |
@@ -741,7 +741,7 @@ void irq_dispose_mapping(unsigned int virq) | |||
741 | switch(host->revmap_type) { | 741 | switch(host->revmap_type) { |
742 | case IRQ_HOST_MAP_LINEAR: | 742 | case IRQ_HOST_MAP_LINEAR: |
743 | if (hwirq < host->revmap_data.linear.size) | 743 | if (hwirq < host->revmap_data.linear.size) |
744 | host->revmap_data.linear.revmap[hwirq] = IRQ_NONE; | 744 | host->revmap_data.linear.revmap[hwirq] = NO_IRQ; |
745 | break; | 745 | break; |
746 | case IRQ_HOST_MAP_TREE: | 746 | case IRQ_HOST_MAP_TREE: |
747 | /* Check if radix tree allocated yet */ | 747 | /* Check if radix tree allocated yet */ |
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c index 066a6a7a25b8..af42ddab3ab4 100644 --- a/arch/powerpc/kernel/prom.c +++ b/arch/powerpc/kernel/prom.c | |||
@@ -1171,11 +1171,12 @@ EXPORT_SYMBOL(of_find_node_by_name); | |||
1171 | 1171 | ||
1172 | /** | 1172 | /** |
1173 | * of_find_node_by_type - Find a node by its "device_type" property | 1173 | * of_find_node_by_type - Find a node by its "device_type" property |
1174 | * @from: The node to start searching from or NULL, the node | 1174 | * @from: The node to start searching from, or NULL to start searching |
1175 | * you pass will not be searched, only the next one | 1175 | * the entire device tree. The node you pass will not be |
1176 | * will; typically, you pass what the previous call | 1176 | * searched, only the next one will; typically, you pass |
1177 | * returned. of_node_put() will be called on it | 1177 | * what the previous call returned. of_node_put() will be |
1178 | * @name: The type string to match against | 1178 | * called on from for you. |
1179 | * @type: The type string to match against | ||
1179 | * | 1180 | * |
1180 | * Returns a node pointer with refcount incremented, use | 1181 | * Returns a node pointer with refcount incremented, use |
1181 | * of_node_put() on it when done. | 1182 | * of_node_put() on it when done. |
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c index f4f391cdd8f5..bf76562167c3 100644 --- a/arch/powerpc/kernel/ptrace.c +++ b/arch/powerpc/kernel/ptrace.c | |||
@@ -218,6 +218,7 @@ set_single_step(struct task_struct *task) | |||
218 | regs->msr |= MSR_SE; | 218 | regs->msr |= MSR_SE; |
219 | #endif | 219 | #endif |
220 | } | 220 | } |
221 | set_tsk_thread_flag(task, TIF_SINGLESTEP); | ||
221 | } | 222 | } |
222 | 223 | ||
223 | static inline void | 224 | static inline void |
@@ -233,6 +234,7 @@ clear_single_step(struct task_struct *task) | |||
233 | regs->msr &= ~MSR_SE; | 234 | regs->msr &= ~MSR_SE; |
234 | #endif | 235 | #endif |
235 | } | 236 | } |
237 | clear_tsk_thread_flag(task, TIF_SINGLESTEP); | ||
236 | } | 238 | } |
237 | #endif /* CONFIG_PPC32 */ | 239 | #endif /* CONFIG_PPC32 */ |
238 | 240 | ||
diff --git a/arch/powerpc/platforms/pasemi/idle.c b/arch/powerpc/platforms/pasemi/idle.c index 03cd45d8fefa..3c962d5757be 100644 --- a/arch/powerpc/platforms/pasemi/idle.c +++ b/arch/powerpc/platforms/pasemi/idle.c | |||
@@ -26,6 +26,7 @@ | |||
26 | 26 | ||
27 | #include <asm/machdep.h> | 27 | #include <asm/machdep.h> |
28 | #include <asm/reg.h> | 28 | #include <asm/reg.h> |
29 | #include <asm/smp.h> | ||
29 | 30 | ||
30 | #include "pasemi.h" | 31 | #include "pasemi.h" |
31 | 32 | ||
diff --git a/arch/powerpc/platforms/ps3/interrupt.c b/arch/powerpc/platforms/ps3/interrupt.c index 9da82c266ba9..ec9030dbb5f1 100644 --- a/arch/powerpc/platforms/ps3/interrupt.c +++ b/arch/powerpc/platforms/ps3/interrupt.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <asm/machdep.h> | 25 | #include <asm/machdep.h> |
26 | #include <asm/udbg.h> | 26 | #include <asm/udbg.h> |
27 | #include <asm/lv1call.h> | 27 | #include <asm/lv1call.h> |
28 | #include <asm/smp.h> | ||
28 | 29 | ||
29 | #include "platform.h" | 30 | #include "platform.h" |
30 | 31 | ||
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c index b854e7f1001c..f1df942072bb 100644 --- a/arch/powerpc/platforms/pseries/xics.c +++ b/arch/powerpc/platforms/pseries/xics.c | |||
@@ -752,6 +752,7 @@ skip_gserver_check: | |||
752 | void xics_request_IPIs(void) | 752 | void xics_request_IPIs(void) |
753 | { | 753 | { |
754 | unsigned int ipi; | 754 | unsigned int ipi; |
755 | int rc; | ||
755 | 756 | ||
756 | ipi = irq_create_mapping(xics_host, XICS_IPI); | 757 | ipi = irq_create_mapping(xics_host, XICS_IPI); |
757 | BUG_ON(ipi == NO_IRQ); | 758 | BUG_ON(ipi == NO_IRQ); |
@@ -762,11 +763,12 @@ void xics_request_IPIs(void) | |||
762 | */ | 763 | */ |
763 | set_irq_handler(ipi, handle_percpu_irq); | 764 | set_irq_handler(ipi, handle_percpu_irq); |
764 | if (firmware_has_feature(FW_FEATURE_LPAR)) | 765 | if (firmware_has_feature(FW_FEATURE_LPAR)) |
765 | request_irq(ipi, xics_ipi_action_lpar, IRQF_DISABLED, | 766 | rc = request_irq(ipi, xics_ipi_action_lpar, IRQF_DISABLED, |
766 | "IPI", NULL); | 767 | "IPI", NULL); |
767 | else | 768 | else |
768 | request_irq(ipi, xics_ipi_action_direct, IRQF_DISABLED, | 769 | rc = request_irq(ipi, xics_ipi_action_direct, IRQF_DISABLED, |
769 | "IPI", NULL); | 770 | "IPI", NULL); |
771 | BUG_ON(rc); | ||
770 | } | 772 | } |
771 | #endif /* CONFIG_SMP */ | 773 | #endif /* CONFIG_SMP */ |
772 | 774 | ||
diff --git a/arch/ppc/syslib/ibm_ocp.c b/arch/ppc/syslib/ibm_ocp.c index 3f6e55c79181..2ee176610e7c 100644 --- a/arch/ppc/syslib/ibm_ocp.c +++ b/arch/ppc/syslib/ibm_ocp.c | |||
@@ -1,4 +1,5 @@ | |||
1 | #include <linux/module.h> | 1 | #include <linux/module.h> |
2 | #include <asm/ibm4xx.h> | ||
2 | #include <asm/ocp.h> | 3 | #include <asm/ocp.h> |
3 | 4 | ||
4 | struct ocp_sys_info_data ocp_sys_info = { | 5 | struct ocp_sys_info_data ocp_sys_info = { |
diff --git a/drivers/macintosh/Kconfig b/drivers/macintosh/Kconfig index f44c94abd883..ee699a7d6214 100644 --- a/drivers/macintosh/Kconfig +++ b/drivers/macintosh/Kconfig | |||
@@ -114,7 +114,7 @@ config PMAC_SMU | |||
114 | config PMAC_APM_EMU | 114 | config PMAC_APM_EMU |
115 | tristate "APM emulation" | 115 | tristate "APM emulation" |
116 | select APM_EMULATION | 116 | select APM_EMULATION |
117 | depends on ADB_PMU && PM | 117 | depends on ADB_PMU && PM && PPC32 |
118 | 118 | ||
119 | config PMAC_MEDIABAY | 119 | config PMAC_MEDIABAY |
120 | bool "Support PowerBook hotswap media bay" | 120 | bool "Support PowerBook hotswap media bay" |
diff --git a/include/asm-powerpc/pgalloc-64.h b/include/asm-powerpc/pgalloc-64.h index d9a3a8ca58a1..94d0294341d6 100644 --- a/include/asm-powerpc/pgalloc-64.h +++ b/include/asm-powerpc/pgalloc-64.h | |||
@@ -90,7 +90,8 @@ static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, | |||
90 | static inline struct page *pte_alloc_one(struct mm_struct *mm, | 90 | static inline struct page *pte_alloc_one(struct mm_struct *mm, |
91 | unsigned long address) | 91 | unsigned long address) |
92 | { | 92 | { |
93 | return virt_to_page(pte_alloc_one_kernel(mm, address)); | 93 | pte_t *pte = pte_alloc_one_kernel(mm, address); |
94 | return pte ? virt_to_page(pte) : NULL; | ||
94 | } | 95 | } |
95 | 96 | ||
96 | static inline void pte_free_kernel(pte_t *pte) | 97 | static inline void pte_free_kernel(pte_t *pte) |
diff --git a/include/asm-powerpc/tlb.h b/include/asm-powerpc/tlb.h index 0a17682663d8..66714042e438 100644 --- a/include/asm-powerpc/tlb.h +++ b/include/asm-powerpc/tlb.h | |||
@@ -38,6 +38,15 @@ extern void pte_free_finish(void); | |||
38 | 38 | ||
39 | static inline void tlb_flush(struct mmu_gather *tlb) | 39 | static inline void tlb_flush(struct mmu_gather *tlb) |
40 | { | 40 | { |
41 | struct ppc64_tlb_batch *tlbbatch = &__get_cpu_var(ppc64_tlb_batch); | ||
42 | |||
43 | /* If there's a TLB batch pending, then we must flush it because the | ||
44 | * pages are going to be freed and we really don't want to have a CPU | ||
45 | * access a freed page because it has a stale TLB | ||
46 | */ | ||
47 | if (tlbbatch->index) | ||
48 | __flush_tlb_pending(tlbbatch); | ||
49 | |||
41 | pte_free_finish(); | 50 | pte_free_finish(); |
42 | } | 51 | } |
43 | 52 | ||