diff options
Diffstat (limited to 'arch/powerpc/kernel')
| -rw-r--r-- | arch/powerpc/kernel/head_fsl_booke.S | 7 | ||||
| -rw-r--r-- | arch/powerpc/kernel/iommu.c | 7 | ||||
| -rw-r--r-- | arch/powerpc/kernel/perf_event.c | 21 | ||||
| -rw-r--r-- | arch/powerpc/kernel/setup_32.c | 6 | ||||
| -rw-r--r-- | arch/powerpc/kernel/setup_64.c | 6 | 
5 files changed, 25 insertions, 22 deletions
| diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S index 25793bb0e782..725526547994 100644 --- a/arch/powerpc/kernel/head_fsl_booke.S +++ b/arch/powerpc/kernel/head_fsl_booke.S @@ -747,9 +747,6 @@ finish_tlb_load:  #else  	rlwimi	r12, r11, 26, 27, 31	/* extract WIMGE from pte */  #endif -#ifdef CONFIG_SMP -	ori	r12, r12, MAS2_M -#endif  	mtspr	SPRN_MAS2, r12  #ifdef CONFIG_PTE_64BIT @@ -887,13 +884,17 @@ KernelSPE:  	lwz	r3,_MSR(r1)  	oris	r3,r3,MSR_SPE@h  	stw	r3,_MSR(r1)	/* enable use of SPE after return */ +#ifdef CONFIG_PRINTK  	lis	r3,87f@h  	ori	r3,r3,87f@l  	mr	r4,r2		/* current */  	lwz	r5,_NIP(r1)  	bl	printk +#endif  	b	ret_from_except +#ifdef CONFIG_PRINTK  87:	.string	"SPE used in kernel  (task=%p, pc=%x)  \n" +#endif  	.align	4,0  #endif /* CONFIG_SPE */ diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c index 5547ae6e6b0b..ec94f906ea43 100644 --- a/arch/powerpc/kernel/iommu.c +++ b/arch/powerpc/kernel/iommu.c @@ -42,12 +42,7 @@  #define DBG(...) -#ifdef CONFIG_IOMMU_VMERGE -static int novmerge = 0; -#else -static int novmerge = 1; -#endif - +static int novmerge;  static int protect4gb = 1;  static void __iommu_free(struct iommu_table *, dma_addr_t, unsigned int); diff --git a/arch/powerpc/kernel/perf_event.c b/arch/powerpc/kernel/perf_event.c index 5120bd44f69a..08460a2e9f41 100644 --- a/arch/powerpc/kernel/perf_event.c +++ b/arch/powerpc/kernel/perf_event.c @@ -1287,7 +1287,7 @@ static void perf_event_interrupt(struct pt_regs *regs)  		irq_exit();  } -void hw_perf_event_setup(int cpu) +static void power_pmu_setup(int cpu)  {  	struct cpu_hw_events *cpuhw = &per_cpu(cpu_hw_events, cpu); @@ -1297,6 +1297,23 @@ void hw_perf_event_setup(int cpu)  	cpuhw->mmcr[0] = MMCR0_FC;  } +static int __cpuinit +power_pmu_notifier(struct notifier_block *self, unsigned long action, void *hcpu) +{ +	unsigned int cpu = (long)hcpu; + +	switch (action & ~CPU_TASKS_FROZEN) { +	case CPU_UP_PREPARE: +		power_pmu_setup(cpu); +		break; + +	default: +		break; +	} + +	return NOTIFY_OK; +} +  int register_power_pmu(struct power_pmu *pmu)  {  	if (ppmu) @@ -1314,5 +1331,7 @@ int register_power_pmu(struct power_pmu *pmu)  		freeze_events_kernel = MMCR0_FCHV;  #endif /* CONFIG_PPC64 */ +	perf_cpu_notifier(power_pmu_notifier); +  	return 0;  } diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c index b152de3e64d4..8f58986c2ad9 100644 --- a/arch/powerpc/kernel/setup_32.c +++ b/arch/powerpc/kernel/setup_32.c @@ -39,7 +39,6 @@  #include <asm/serial.h>  #include <asm/udbg.h>  #include <asm/mmu_context.h> -#include <asm/swiotlb.h>  #include "setup.h" @@ -343,11 +342,6 @@ void __init setup_arch(char **cmdline_p)  		ppc_md.setup_arch();  	if ( ppc_md.progress ) ppc_md.progress("arch: exit", 0x3eab); -#ifdef CONFIG_SWIOTLB -	if (ppc_swiotlb_enable) -		swiotlb_init(1); -#endif -  	paging_init();  	/* Initialize the MMU context management stuff */ diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c index 63547394048c..914389158a9b 100644 --- a/arch/powerpc/kernel/setup_64.c +++ b/arch/powerpc/kernel/setup_64.c @@ -61,7 +61,6 @@  #include <asm/xmon.h>  #include <asm/udbg.h>  #include <asm/kexec.h> -#include <asm/swiotlb.h>  #include <asm/mmu_context.h>  #include "setup.h" @@ -541,11 +540,6 @@ void __init setup_arch(char **cmdline_p)  	if (ppc_md.setup_arch)  		ppc_md.setup_arch(); -#ifdef CONFIG_SWIOTLB -	if (ppc_swiotlb_enable) -		swiotlb_init(1); -#endif -  	paging_init();  	/* Initialize the MMU context management stuff */ | 
