diff options
Diffstat (limited to 'arch/powerpc/kernel')
-rw-r--r-- | arch/powerpc/kernel/irq.c | 2 | ||||
-rw-r--r-- | arch/powerpc/kernel/pci-common.c | 8 | ||||
-rw-r--r-- | arch/powerpc/kernel/setup_32.c | 6 |
3 files changed, 14 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c index 45096033d37b..290559df1e8b 100644 --- a/arch/powerpc/kernel/irq.c +++ b/arch/powerpc/kernel/irq.c | |||
@@ -441,7 +441,7 @@ void migrate_irqs(void) | |||
441 | 441 | ||
442 | chip = irq_data_get_irq_chip(data); | 442 | chip = irq_data_get_irq_chip(data); |
443 | 443 | ||
444 | cpumask_and(mask, data->affinity, map); | 444 | cpumask_and(mask, irq_data_get_affinity_mask(data), map); |
445 | if (cpumask_any(mask) >= nr_cpu_ids) { | 445 | if (cpumask_any(mask) >= nr_cpu_ids) { |
446 | pr_warn("Breaking affinity for irq %i\n", irq); | 446 | pr_warn("Breaking affinity for irq %i\n", irq); |
447 | cpumask_copy(mask, map); | 447 | cpumask_copy(mask, map); |
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index a1d0632d97c6..7587b2ae5f77 100644 --- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c | |||
@@ -1032,7 +1032,13 @@ void pcibios_set_master(struct pci_dev *dev) | |||
1032 | 1032 | ||
1033 | void pcibios_fixup_bus(struct pci_bus *bus) | 1033 | void pcibios_fixup_bus(struct pci_bus *bus) |
1034 | { | 1034 | { |
1035 | /* Fixup the bus */ | 1035 | /* When called from the generic PCI probe, read PCI<->PCI bridge |
1036 | * bases. This is -not- called when generating the PCI tree from | ||
1037 | * the OF device-tree. | ||
1038 | */ | ||
1039 | pci_read_bridge_bases(bus); | ||
1040 | |||
1041 | /* Now fixup the bus bus */ | ||
1036 | pcibios_setup_bus_self(bus); | 1042 | pcibios_setup_bus_self(bus); |
1037 | 1043 | ||
1038 | /* Now fixup devices on that bus */ | 1044 | /* Now fixup devices on that bus */ |
diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c index bb02e9f6944e..ad8c9db61237 100644 --- a/arch/powerpc/kernel/setup_32.c +++ b/arch/powerpc/kernel/setup_32.c | |||
@@ -38,6 +38,7 @@ | |||
38 | #include <asm/udbg.h> | 38 | #include <asm/udbg.h> |
39 | #include <asm/mmu_context.h> | 39 | #include <asm/mmu_context.h> |
40 | #include <asm/epapr_hcalls.h> | 40 | #include <asm/epapr_hcalls.h> |
41 | #include <asm/code-patching.h> | ||
41 | 42 | ||
42 | #define DBG(fmt...) | 43 | #define DBG(fmt...) |
43 | 44 | ||
@@ -109,6 +110,8 @@ notrace unsigned long __init early_init(unsigned long dt_ptr) | |||
109 | * This is called very early on the boot process, after a minimal | 110 | * This is called very early on the boot process, after a minimal |
110 | * MMU environment has been set up but before MMU_init is called. | 111 | * MMU environment has been set up but before MMU_init is called. |
111 | */ | 112 | */ |
113 | extern unsigned int memset_nocache_branch; /* Insn to be replaced by NOP */ | ||
114 | |||
112 | notrace void __init machine_init(u64 dt_ptr) | 115 | notrace void __init machine_init(u64 dt_ptr) |
113 | { | 116 | { |
114 | lockdep_init(); | 117 | lockdep_init(); |
@@ -116,6 +119,9 @@ notrace void __init machine_init(u64 dt_ptr) | |||
116 | /* Enable early debugging if any specified (see udbg.h) */ | 119 | /* Enable early debugging if any specified (see udbg.h) */ |
117 | udbg_early_init(); | 120 | udbg_early_init(); |
118 | 121 | ||
122 | patch_instruction((unsigned int *)&memcpy, PPC_INST_NOP); | ||
123 | patch_instruction(&memset_nocache_branch, PPC_INST_NOP); | ||
124 | |||
119 | /* Do some early initialization based on the flat device tree */ | 125 | /* Do some early initialization based on the flat device tree */ |
120 | early_init_devtree(__va(dt_ptr)); | 126 | early_init_devtree(__va(dt_ptr)); |
121 | 127 | ||