Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc

* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
powerpc: Remove IOMMU_VMERGE config option
powerpc: Fix swiotlb to respect the boot option
powerpc: Do not call prink when CONFIG_PRINTK is not defined
powerpc: Use correct ccr bit for syscall error status
powerpc/fsl-booke: Get coherent bit from PTE
powerpc/85xx: Make sure lwarx hint isn't set on ppc32

+17 -40
-13
arch/powerpc/Kconfig
··· 313 313 314 314 It is recommended that you build a soft-float userspace instead. 315 315 316 - config IOMMU_VMERGE 317 - bool "Enable IOMMU virtual merging" 318 - depends on PPC64 319 - default y 320 - help 321 - Cause IO segments sent to a device for DMA to be merged virtually 322 - by the IOMMU when they happen to have been allocated contiguously. 323 - This doesn't add pressure to the IOMMU allocator. However, some 324 - drivers don't support getting large merged segments coming back 325 - from *_map_sg(). 326 - 327 - Most drivers don't have this problem; it is safe to say Y here. 328 - 329 316 config IOMMU_HELPER 330 317 def_bool PPC64 331 318
+3 -3
arch/powerpc/include/asm/ppc-opcode.h
··· 25 25 #define PPC_INST_LDARX 0x7c0000a8 26 26 #define PPC_INST_LSWI 0x7c0004aa 27 27 #define PPC_INST_LSWX 0x7c00042a 28 - #define PPC_INST_LWARX 0x7c000029 28 + #define PPC_INST_LWARX 0x7c000028 29 29 #define PPC_INST_LWSYNC 0x7c2004ac 30 30 #define PPC_INST_LXVD2X 0x7c000698 31 31 #define PPC_INST_MCRXR 0x7c000400 ··· 62 62 #define __PPC_T_TLB(t) (((t) & 0x3) << 21) 63 63 #define __PPC_WC(w) (((w) & 0x3) << 21) 64 64 /* 65 - * Only use the larx hint bit on 64bit CPUs. Once we verify it doesn't have 66 - * any side effects on all 32bit processors, we can do this all the time. 65 + * Only use the larx hint bit on 64bit CPUs. e500v1/v2 based CPUs will treat a 66 + * larx with EH set as an illegal instruction. 67 67 */ 68 68 #ifdef CONFIG_PPC64 69 69 #define __PPC_EH(eh) (((eh) & 0x1) << 0)
+3 -3
arch/powerpc/include/asm/syscall.h
··· 30 30 static inline long syscall_get_error(struct task_struct *task, 31 31 struct pt_regs *regs) 32 32 { 33 - return (regs->ccr & 0x1000) ? -regs->gpr[3] : 0; 33 + return (regs->ccr & 0x10000000) ? -regs->gpr[3] : 0; 34 34 } 35 35 36 36 static inline long syscall_get_return_value(struct task_struct *task, ··· 44 44 int error, long val) 45 45 { 46 46 if (error) { 47 - regs->ccr |= 0x1000L; 47 + regs->ccr |= 0x10000000L; 48 48 regs->gpr[3] = -error; 49 49 } else { 50 - regs->ccr &= ~0x1000L; 50 + regs->ccr &= ~0x10000000L; 51 51 regs->gpr[3] = val; 52 52 } 53 53 }
+4 -3
arch/powerpc/kernel/head_fsl_booke.S
··· 747 747 #else 748 748 rlwimi r12, r11, 26, 27, 31 /* extract WIMGE from pte */ 749 749 #endif 750 - #ifdef CONFIG_SMP 751 - ori r12, r12, MAS2_M 752 - #endif 753 750 mtspr SPRN_MAS2, r12 754 751 755 752 #ifdef CONFIG_PTE_64BIT ··· 884 887 lwz r3,_MSR(r1) 885 888 oris r3,r3,MSR_SPE@h 886 889 stw r3,_MSR(r1) /* enable use of SPE after return */ 890 + #ifdef CONFIG_PRINTK 887 891 lis r3,87f@h 888 892 ori r3,r3,87f@l 889 893 mr r4,r2 /* current */ 890 894 lwz r5,_NIP(r1) 891 895 bl printk 896 + #endif 892 897 b ret_from_except 898 + #ifdef CONFIG_PRINTK 893 899 87: .string "SPE used in kernel (task=%p, pc=%x) \n" 900 + #endif 894 901 .align 4,0 895 902 896 903 #endif /* CONFIG_SPE */
+1 -6
arch/powerpc/kernel/iommu.c
··· 42 42 43 43 #define DBG(...) 44 44 45 - #ifdef CONFIG_IOMMU_VMERGE 46 - static int novmerge = 0; 47 - #else 48 - static int novmerge = 1; 49 - #endif 50 - 45 + static int novmerge; 51 46 static int protect4gb = 1; 52 47 53 48 static void __iommu_free(struct iommu_table *, dma_addr_t, unsigned int);
-6
arch/powerpc/kernel/setup_32.c
··· 39 39 #include <asm/serial.h> 40 40 #include <asm/udbg.h> 41 41 #include <asm/mmu_context.h> 42 - #include <asm/swiotlb.h> 43 42 44 43 #include "setup.h" 45 44 ··· 341 342 if (ppc_md.setup_arch) 342 343 ppc_md.setup_arch(); 343 344 if ( ppc_md.progress ) ppc_md.progress("arch: exit", 0x3eab); 344 - 345 - #ifdef CONFIG_SWIOTLB 346 - if (ppc_swiotlb_enable) 347 - swiotlb_init(1); 348 - #endif 349 345 350 346 paging_init(); 351 347
-6
arch/powerpc/kernel/setup_64.c
··· 61 61 #include <asm/xmon.h> 62 62 #include <asm/udbg.h> 63 63 #include <asm/kexec.h> 64 - #include <asm/swiotlb.h> 65 64 #include <asm/mmu_context.h> 66 65 67 66 #include "setup.h" ··· 539 540 540 541 if (ppc_md.setup_arch) 541 542 ppc_md.setup_arch(); 542 - 543 - #ifdef CONFIG_SWIOTLB 544 - if (ppc_swiotlb_enable) 545 - swiotlb_init(1); 546 - #endif 547 543 548 544 paging_init(); 549 545
+6
arch/powerpc/mm/mem.c
··· 48 48 #include <asm/sparsemem.h> 49 49 #include <asm/vdso.h> 50 50 #include <asm/fixmap.h> 51 + #include <asm/swiotlb.h> 51 52 52 53 #include "mmu_decl.h" 53 54 ··· 320 319 unsigned long i; 321 320 struct page *page; 322 321 unsigned long reservedpages = 0, codesize, initsize, datasize, bsssize; 322 + 323 + #ifdef CONFIG_SWIOTLB 324 + if (ppc_swiotlb_enable) 325 + swiotlb_init(1); 326 + #endif 323 327 324 328 num_physpages = lmb.memory.size >> PAGE_SHIFT; 325 329 high_memory = (void *) __va(max_low_pfn * PAGE_SIZE);