diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/avr32/configs/atstk1002_defconfig | 39 | ||||
-rw-r--r-- | arch/avr32/kernel/avr32_ksyms.c | 1 | ||||
-rw-r--r-- | arch/i386/kernel/entry.S | 4 | ||||
-rw-r--r-- | arch/i386/kernel/sysenter.c | 14 | ||||
-rw-r--r-- | arch/mips/Makefile | 2 | ||||
-rw-r--r-- | arch/mips/dec/prom/memory.c | 2 | ||||
-rw-r--r-- | arch/mips/kernel/smtc.c | 10 | ||||
-rw-r--r-- | arch/mips/kernel/vpe.c | 9 | ||||
-rw-r--r-- | arch/mips/mm/init.c | 3 | ||||
-rw-r--r-- | arch/powerpc/Kconfig | 6 | ||||
-rw-r--r-- | arch/powerpc/kernel/pci_64.c | 2 | ||||
-rw-r--r-- | arch/powerpc/kernel/vdso.c | 7 | ||||
-rw-r--r-- | arch/powerpc/platforms/ps3/Makefile | 3 | ||||
-rw-r--r-- | arch/powerpc/platforms/ps3/interrupt.c | 2 | ||||
-rw-r--r-- | arch/sparc64/kernel/sun4v_tlb_miss.S | 4 | ||||
-rw-r--r-- | arch/um/Kconfig.i386 | 34 | ||||
-rw-r--r-- | arch/x86_64/ia32/ia32_binfmt.c | 49 | ||||
-rw-r--r-- | arch/x86_64/ia32/syscall32.c | 15 |
18 files changed, 108 insertions, 98 deletions
diff --git a/arch/avr32/configs/atstk1002_defconfig b/arch/avr32/configs/atstk1002_defconfig index ae92a14ef9a0..77dace9d54bc 100644 --- a/arch/avr32/configs/atstk1002_defconfig +++ b/arch/avr32/configs/atstk1002_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.19-rc2 | 3 | # Linux kernel version: 2.6.20-rc6 |
4 | # Fri Oct 20 11:52:37 2006 | 4 | # Fri Jan 26 13:12:59 2007 |
5 | # | 5 | # |
6 | CONFIG_AVR32=y | 6 | CONFIG_AVR32=y |
7 | CONFIG_GENERIC_HARDIRQS=y | 7 | CONFIG_GENERIC_HARDIRQS=y |
@@ -9,6 +9,8 @@ CONFIG_HARDIRQS_SW_RESEND=y | |||
9 | CONFIG_GENERIC_IRQ_PROBE=y | 9 | CONFIG_GENERIC_IRQ_PROBE=y |
10 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 10 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
11 | CONFIG_GENERIC_TIME=y | 11 | CONFIG_GENERIC_TIME=y |
12 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
13 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
12 | CONFIG_GENERIC_HWEIGHT=y | 14 | CONFIG_GENERIC_HWEIGHT=y |
13 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 15 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
14 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 16 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
@@ -36,6 +38,7 @@ CONFIG_TASK_DELAY_ACCT=y | |||
36 | # CONFIG_UTS_NS is not set | 38 | # CONFIG_UTS_NS is not set |
37 | CONFIG_AUDIT=y | 39 | CONFIG_AUDIT=y |
38 | # CONFIG_IKCONFIG is not set | 40 | # CONFIG_IKCONFIG is not set |
41 | CONFIG_SYSFS_DEPRECATED=y | ||
39 | CONFIG_RELAY=y | 42 | CONFIG_RELAY=y |
40 | CONFIG_INITRAMFS_SOURCE="" | 43 | CONFIG_INITRAMFS_SOURCE="" |
41 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 44 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
@@ -75,7 +78,9 @@ CONFIG_MODULE_UNLOAD=y | |||
75 | # Block layer | 78 | # Block layer |
76 | # | 79 | # |
77 | CONFIG_BLOCK=y | 80 | CONFIG_BLOCK=y |
81 | # CONFIG_LBD is not set | ||
78 | # CONFIG_BLK_DEV_IO_TRACE is not set | 82 | # CONFIG_BLK_DEV_IO_TRACE is not set |
83 | # CONFIG_LSF is not set | ||
79 | 84 | ||
80 | # | 85 | # |
81 | # IO Schedulers | 86 | # IO Schedulers |
@@ -125,6 +130,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
125 | # CONFIG_OWNERSHIP_TRACE is not set | 130 | # CONFIG_OWNERSHIP_TRACE is not set |
126 | # CONFIG_HZ_100 is not set | 131 | # CONFIG_HZ_100 is not set |
127 | CONFIG_HZ_250=y | 132 | CONFIG_HZ_250=y |
133 | # CONFIG_HZ_300 is not set | ||
128 | # CONFIG_HZ_1000 is not set | 134 | # CONFIG_HZ_1000 is not set |
129 | CONFIG_HZ=250 | 135 | CONFIG_HZ=250 |
130 | CONFIG_CMDLINE="" | 136 | CONFIG_CMDLINE="" |
@@ -182,6 +188,7 @@ CONFIG_INET_TCP_DIAG=y | |||
182 | # CONFIG_TCP_CONG_ADVANCED is not set | 188 | # CONFIG_TCP_CONG_ADVANCED is not set |
183 | CONFIG_TCP_CONG_CUBIC=y | 189 | CONFIG_TCP_CONG_CUBIC=y |
184 | CONFIG_DEFAULT_TCP_CONG="cubic" | 190 | CONFIG_DEFAULT_TCP_CONG="cubic" |
191 | # CONFIG_TCP_MD5SIG is not set | ||
185 | # CONFIG_IPV6 is not set | 192 | # CONFIG_IPV6 is not set |
186 | # CONFIG_INET6_XFRM_TUNNEL is not set | 193 | # CONFIG_INET6_XFRM_TUNNEL is not set |
187 | # CONFIG_INET6_TUNNEL is not set | 194 | # CONFIG_INET6_TUNNEL is not set |
@@ -260,6 +267,7 @@ CONFIG_MTD_CMDLINE_PARTS=y | |||
260 | # User Modules And Translation Layers | 267 | # User Modules And Translation Layers |
261 | # | 268 | # |
262 | CONFIG_MTD_CHAR=y | 269 | CONFIG_MTD_CHAR=y |
270 | CONFIG_MTD_BLKDEVS=y | ||
263 | CONFIG_MTD_BLOCK=y | 271 | CONFIG_MTD_BLOCK=y |
264 | # CONFIG_FTL is not set | 272 | # CONFIG_FTL is not set |
265 | # CONFIG_NFTL is not set | 273 | # CONFIG_NFTL is not set |
@@ -355,7 +363,6 @@ CONFIG_BLK_DEV_INITRD=y | |||
355 | # | 363 | # |
356 | # Misc devices | 364 | # Misc devices |
357 | # | 365 | # |
358 | # CONFIG_SGI_IOC4 is not set | ||
359 | # CONFIG_TIFM_CORE is not set | 366 | # CONFIG_TIFM_CORE is not set |
360 | 367 | ||
361 | # | 368 | # |
@@ -405,11 +412,14 @@ CONFIG_TUN=m | |||
405 | # | 412 | # |
406 | # PHY device support | 413 | # PHY device support |
407 | # | 414 | # |
415 | # CONFIG_PHYLIB is not set | ||
408 | 416 | ||
409 | # | 417 | # |
410 | # Ethernet (10 or 100Mbit) | 418 | # Ethernet (10 or 100Mbit) |
411 | # | 419 | # |
412 | # CONFIG_NET_ETHERNET is not set | 420 | CONFIG_NET_ETHERNET=y |
421 | CONFIG_MII=y | ||
422 | CONFIG_MACB=y | ||
413 | 423 | ||
414 | # | 424 | # |
415 | # Ethernet (1000 Mbit) | 425 | # Ethernet (1000 Mbit) |
@@ -505,10 +515,6 @@ CONFIG_UNIX98_PTYS=y | |||
505 | # CONFIG_GEN_RTC is not set | 515 | # CONFIG_GEN_RTC is not set |
506 | # CONFIG_DTLK is not set | 516 | # CONFIG_DTLK is not set |
507 | # CONFIG_R3964 is not set | 517 | # CONFIG_R3964 is not set |
508 | |||
509 | # | ||
510 | # Ftape, the floppy tape device driver | ||
511 | # | ||
512 | # CONFIG_RAW_DRIVER is not set | 518 | # CONFIG_RAW_DRIVER is not set |
513 | 519 | ||
514 | # | 520 | # |
@@ -621,6 +627,10 @@ CONFIG_UNIX98_PTYS=y | |||
621 | # | 627 | # |
622 | 628 | ||
623 | # | 629 | # |
630 | # Virtualization | ||
631 | # | ||
632 | |||
633 | # | ||
624 | # File systems | 634 | # File systems |
625 | # | 635 | # |
626 | CONFIG_EXT2_FS=m | 636 | CONFIG_EXT2_FS=m |
@@ -683,7 +693,6 @@ CONFIG_CONFIGFS_FS=m | |||
683 | # CONFIG_BEFS_FS is not set | 693 | # CONFIG_BEFS_FS is not set |
684 | # CONFIG_BFS_FS is not set | 694 | # CONFIG_BFS_FS is not set |
685 | # CONFIG_EFS_FS is not set | 695 | # CONFIG_EFS_FS is not set |
686 | # CONFIG_JFFS_FS is not set | ||
687 | CONFIG_JFFS2_FS=y | 696 | CONFIG_JFFS2_FS=y |
688 | CONFIG_JFFS2_FS_DEBUG=0 | 697 | CONFIG_JFFS2_FS_DEBUG=0 |
689 | CONFIG_JFFS2_FS_WRITEBUFFER=y | 698 | CONFIG_JFFS2_FS_WRITEBUFFER=y |
@@ -763,6 +772,11 @@ CONFIG_NLS_ISO8859_1=m | |||
763 | CONFIG_NLS_UTF8=m | 772 | CONFIG_NLS_UTF8=m |
764 | 773 | ||
765 | # | 774 | # |
775 | # Distributed Lock Manager | ||
776 | # | ||
777 | # CONFIG_DLM is not set | ||
778 | |||
779 | # | ||
766 | # Kernel hacking | 780 | # Kernel hacking |
767 | # | 781 | # |
768 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 782 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -770,6 +784,8 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y | |||
770 | CONFIG_ENABLE_MUST_CHECK=y | 784 | CONFIG_ENABLE_MUST_CHECK=y |
771 | CONFIG_MAGIC_SYSRQ=y | 785 | CONFIG_MAGIC_SYSRQ=y |
772 | # CONFIG_UNUSED_SYMBOLS is not set | 786 | # CONFIG_UNUSED_SYMBOLS is not set |
787 | CONFIG_DEBUG_FS=y | ||
788 | # CONFIG_HEADERS_CHECK is not set | ||
773 | CONFIG_DEBUG_KERNEL=y | 789 | CONFIG_DEBUG_KERNEL=y |
774 | CONFIG_LOG_BUF_SHIFT=14 | 790 | CONFIG_LOG_BUF_SHIFT=14 |
775 | CONFIG_DETECT_SOFTLOCKUP=y | 791 | CONFIG_DETECT_SOFTLOCKUP=y |
@@ -785,13 +801,10 @@ CONFIG_DETECT_SOFTLOCKUP=y | |||
785 | # CONFIG_DEBUG_KOBJECT is not set | 801 | # CONFIG_DEBUG_KOBJECT is not set |
786 | CONFIG_DEBUG_BUGVERBOSE=y | 802 | CONFIG_DEBUG_BUGVERBOSE=y |
787 | # CONFIG_DEBUG_INFO is not set | 803 | # CONFIG_DEBUG_INFO is not set |
788 | CONFIG_DEBUG_FS=y | ||
789 | # CONFIG_DEBUG_VM is not set | 804 | # CONFIG_DEBUG_VM is not set |
790 | # CONFIG_DEBUG_LIST is not set | 805 | # CONFIG_DEBUG_LIST is not set |
791 | CONFIG_FRAME_POINTER=y | 806 | CONFIG_FRAME_POINTER=y |
792 | # CONFIG_UNWIND_INFO is not set | ||
793 | CONFIG_FORCED_INLINING=y | 807 | CONFIG_FORCED_INLINING=y |
794 | # CONFIG_HEADERS_CHECK is not set | ||
795 | # CONFIG_RCU_TORTURE_TEST is not set | 808 | # CONFIG_RCU_TORTURE_TEST is not set |
796 | # CONFIG_KPROBES is not set | 809 | # CONFIG_KPROBES is not set |
797 | 810 | ||
@@ -809,6 +822,7 @@ CONFIG_FORCED_INLINING=y | |||
809 | # | 822 | # |
810 | # Library routines | 823 | # Library routines |
811 | # | 824 | # |
825 | CONFIG_BITREVERSE=y | ||
812 | CONFIG_CRC_CCITT=m | 826 | CONFIG_CRC_CCITT=m |
813 | # CONFIG_CRC16 is not set | 827 | # CONFIG_CRC16 is not set |
814 | CONFIG_CRC32=y | 828 | CONFIG_CRC32=y |
@@ -817,3 +831,4 @@ CONFIG_AUDIT_GENERIC=y | |||
817 | CONFIG_ZLIB_INFLATE=y | 831 | CONFIG_ZLIB_INFLATE=y |
818 | CONFIG_ZLIB_DEFLATE=y | 832 | CONFIG_ZLIB_DEFLATE=y |
819 | CONFIG_PLIST=y | 833 | CONFIG_PLIST=y |
834 | CONFIG_IOMAP_COPY=y | ||
diff --git a/arch/avr32/kernel/avr32_ksyms.c b/arch/avr32/kernel/avr32_ksyms.c index 7c4c76114bba..80f55f8dbf1c 100644 --- a/arch/avr32/kernel/avr32_ksyms.c +++ b/arch/avr32/kernel/avr32_ksyms.c | |||
@@ -29,6 +29,7 @@ EXPORT_SYMBOL(__avr32_asr64); | |||
29 | */ | 29 | */ |
30 | EXPORT_SYMBOL(memset); | 30 | EXPORT_SYMBOL(memset); |
31 | EXPORT_SYMBOL(memcpy); | 31 | EXPORT_SYMBOL(memcpy); |
32 | EXPORT_SYMBOL(clear_page); | ||
32 | 33 | ||
33 | /* | 34 | /* |
34 | * Userspace access stuff. | 35 | * Userspace access stuff. |
diff --git a/arch/i386/kernel/entry.S b/arch/i386/kernel/entry.S index 06461b8b715d..5e47683fc63a 100644 --- a/arch/i386/kernel/entry.S +++ b/arch/i386/kernel/entry.S | |||
@@ -302,12 +302,16 @@ sysenter_past_esp: | |||
302 | pushl $(__USER_CS) | 302 | pushl $(__USER_CS) |
303 | CFI_ADJUST_CFA_OFFSET 4 | 303 | CFI_ADJUST_CFA_OFFSET 4 |
304 | /*CFI_REL_OFFSET cs, 0*/ | 304 | /*CFI_REL_OFFSET cs, 0*/ |
305 | #ifndef CONFIG_COMPAT_VDSO | ||
305 | /* | 306 | /* |
306 | * Push current_thread_info()->sysenter_return to the stack. | 307 | * Push current_thread_info()->sysenter_return to the stack. |
307 | * A tiny bit of offset fixup is necessary - 4*4 means the 4 words | 308 | * A tiny bit of offset fixup is necessary - 4*4 means the 4 words |
308 | * pushed above; +8 corresponds to copy_thread's esp0 setting. | 309 | * pushed above; +8 corresponds to copy_thread's esp0 setting. |
309 | */ | 310 | */ |
310 | pushl (TI_sysenter_return-THREAD_SIZE+8+4*4)(%esp) | 311 | pushl (TI_sysenter_return-THREAD_SIZE+8+4*4)(%esp) |
312 | #else | ||
313 | pushl $SYSENTER_RETURN | ||
314 | #endif | ||
311 | CFI_ADJUST_CFA_OFFSET 4 | 315 | CFI_ADJUST_CFA_OFFSET 4 |
312 | CFI_REL_OFFSET eip, 0 | 316 | CFI_REL_OFFSET eip, 0 |
313 | 317 | ||
diff --git a/arch/i386/kernel/sysenter.c b/arch/i386/kernel/sysenter.c index 7de9117b5a3a..5da744204d10 100644 --- a/arch/i386/kernel/sysenter.c +++ b/arch/i386/kernel/sysenter.c | |||
@@ -79,11 +79,6 @@ int __init sysenter_setup(void) | |||
79 | #ifdef CONFIG_COMPAT_VDSO | 79 | #ifdef CONFIG_COMPAT_VDSO |
80 | __set_fixmap(FIX_VDSO, __pa(syscall_page), PAGE_READONLY); | 80 | __set_fixmap(FIX_VDSO, __pa(syscall_page), PAGE_READONLY); |
81 | printk("Compat vDSO mapped to %08lx.\n", __fix_to_virt(FIX_VDSO)); | 81 | printk("Compat vDSO mapped to %08lx.\n", __fix_to_virt(FIX_VDSO)); |
82 | #else | ||
83 | /* | ||
84 | * In the non-compat case the ELF coredumping code needs the fixmap: | ||
85 | */ | ||
86 | __set_fixmap(FIX_VDSO, __pa(syscall_page), PAGE_KERNEL_RO); | ||
87 | #endif | 82 | #endif |
88 | 83 | ||
89 | if (!boot_cpu_has(X86_FEATURE_SEP)) { | 84 | if (!boot_cpu_has(X86_FEATURE_SEP)) { |
@@ -100,6 +95,7 @@ int __init sysenter_setup(void) | |||
100 | return 0; | 95 | return 0; |
101 | } | 96 | } |
102 | 97 | ||
98 | #ifndef CONFIG_COMPAT_VDSO | ||
103 | static struct page *syscall_nopage(struct vm_area_struct *vma, | 99 | static struct page *syscall_nopage(struct vm_area_struct *vma, |
104 | unsigned long adr, int *type) | 100 | unsigned long adr, int *type) |
105 | { | 101 | { |
@@ -146,6 +142,13 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int exstack) | |||
146 | vma->vm_end = addr + PAGE_SIZE; | 142 | vma->vm_end = addr + PAGE_SIZE; |
147 | /* MAYWRITE to allow gdb to COW and set breakpoints */ | 143 | /* MAYWRITE to allow gdb to COW and set breakpoints */ |
148 | vma->vm_flags = VM_READ|VM_EXEC|VM_MAYREAD|VM_MAYEXEC|VM_MAYWRITE; | 144 | vma->vm_flags = VM_READ|VM_EXEC|VM_MAYREAD|VM_MAYEXEC|VM_MAYWRITE; |
145 | /* | ||
146 | * Make sure the vDSO gets into every core dump. | ||
147 | * Dumping its contents makes post-mortem fully interpretable later | ||
148 | * without matching up the same kernel and hardware config to see | ||
149 | * what PC values meant. | ||
150 | */ | ||
151 | vma->vm_flags |= VM_ALWAYSDUMP; | ||
149 | vma->vm_flags |= mm->def_flags; | 152 | vma->vm_flags |= mm->def_flags; |
150 | vma->vm_page_prot = protection_map[vma->vm_flags & 7]; | 153 | vma->vm_page_prot = protection_map[vma->vm_flags & 7]; |
151 | vma->vm_ops = &syscall_vm_ops; | 154 | vma->vm_ops = &syscall_vm_ops; |
@@ -187,3 +190,4 @@ int in_gate_area_no_task(unsigned long addr) | |||
187 | { | 190 | { |
188 | return 0; | 191 | return 0; |
189 | } | 192 | } |
193 | #endif | ||
diff --git a/arch/mips/Makefile b/arch/mips/Makefile index d1b026a0337d..c68b5d3e5d18 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile | |||
@@ -623,7 +623,7 @@ LDFLAGS += -m $(ld-emul) | |||
623 | 623 | ||
624 | ifdef CONFIG_MIPS | 624 | ifdef CONFIG_MIPS |
625 | CHECKFLAGS += $(shell $(CC) $(CFLAGS) -dM -E -xc /dev/null | \ | 625 | CHECKFLAGS += $(shell $(CC) $(CFLAGS) -dM -E -xc /dev/null | \ |
626 | egrep -vw '__GNUC_(MAJOR|MINOR|PATCHLEVEL)__' | \ | 626 | egrep -vw '__GNUC_(|MINOR_|PATCHLEVEL_)_' | \ |
627 | sed -e 's/^\#define /-D/' -e "s/ /='/" -e "s/$$/'/") | 627 | sed -e 's/^\#define /-D/' -e "s/ /='/" -e "s/$$/'/") |
628 | ifdef CONFIG_64BIT | 628 | ifdef CONFIG_64BIT |
629 | CHECKFLAGS += -m64 | 629 | CHECKFLAGS += -m64 |
diff --git a/arch/mips/dec/prom/memory.c b/arch/mips/dec/prom/memory.c index 3027ce782797..3aa01d268f2d 100644 --- a/arch/mips/dec/prom/memory.c +++ b/arch/mips/dec/prom/memory.c | |||
@@ -122,7 +122,7 @@ unsigned long __init prom_free_prom_memory(void) | |||
122 | addr += PAGE_SIZE; | 122 | addr += PAGE_SIZE; |
123 | } | 123 | } |
124 | 124 | ||
125 | printk("Freeing unused PROM memory: %ldk freed\n", | 125 | printk("Freeing unused PROM memory: %ldkb freed\n", |
126 | (end - PAGE_SIZE) >> 10); | 126 | (end - PAGE_SIZE) >> 10); |
127 | 127 | ||
128 | return end - PAGE_SIZE; | 128 | return end - PAGE_SIZE; |
diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c index 44238ab2fc99..6a857bf030b0 100644 --- a/arch/mips/kernel/smtc.c +++ b/arch/mips/kernel/smtc.c | |||
@@ -4,6 +4,7 @@ | |||
4 | #include <linux/sched.h> | 4 | #include <linux/sched.h> |
5 | #include <linux/cpumask.h> | 5 | #include <linux/cpumask.h> |
6 | #include <linux/interrupt.h> | 6 | #include <linux/interrupt.h> |
7 | #include <linux/module.h> | ||
7 | 8 | ||
8 | #include <asm/cpu.h> | 9 | #include <asm/cpu.h> |
9 | #include <asm/processor.h> | 10 | #include <asm/processor.h> |
@@ -270,9 +271,12 @@ void smtc_configure_tlb(void) | |||
270 | * of their initialization in smtc_cpu_setup(). | 271 | * of their initialization in smtc_cpu_setup(). |
271 | */ | 272 | */ |
272 | 273 | ||
273 | tlbsiz = tlbsiz & 0x3f; /* MIPS32 limits TLB indices to 64 */ | 274 | /* MIPS32 limits TLB indices to 64 */ |
274 | cpu_data[0].tlbsize = tlbsiz; | 275 | if (tlbsiz > 64) |
276 | tlbsiz = 64; | ||
277 | cpu_data[0].tlbsize = current_cpu_data.tlbsize = tlbsiz; | ||
275 | smtc_status |= SMTC_TLB_SHARED; | 278 | smtc_status |= SMTC_TLB_SHARED; |
279 | local_flush_tlb_all(); | ||
276 | 280 | ||
277 | printk("TLB of %d entry pairs shared by %d VPEs\n", | 281 | printk("TLB of %d entry pairs shared by %d VPEs\n", |
278 | tlbsiz, vpes); | 282 | tlbsiz, vpes); |
@@ -1044,6 +1048,8 @@ void smtc_ipi_replay(void) | |||
1044 | } | 1048 | } |
1045 | } | 1049 | } |
1046 | 1050 | ||
1051 | EXPORT_SYMBOL(smtc_ipi_replay); | ||
1052 | |||
1047 | void smtc_idle_loop_hook(void) | 1053 | void smtc_idle_loop_hook(void) |
1048 | { | 1054 | { |
1049 | #ifdef SMTC_IDLE_HOOK_DEBUG | 1055 | #ifdef SMTC_IDLE_HOOK_DEBUG |
diff --git a/arch/mips/kernel/vpe.c b/arch/mips/kernel/vpe.c index 666bef484dcb..458fccf87c54 100644 --- a/arch/mips/kernel/vpe.c +++ b/arch/mips/kernel/vpe.c | |||
@@ -139,13 +139,16 @@ struct tc { | |||
139 | struct list_head list; | 139 | struct list_head list; |
140 | }; | 140 | }; |
141 | 141 | ||
142 | struct vpecontrol_ { | 142 | struct { |
143 | /* Virtual processing elements */ | 143 | /* Virtual processing elements */ |
144 | struct list_head vpe_list; | 144 | struct list_head vpe_list; |
145 | 145 | ||
146 | /* Thread contexts */ | 146 | /* Thread contexts */ |
147 | struct list_head tc_list; | 147 | struct list_head tc_list; |
148 | } vpecontrol; | 148 | } vpecontrol = { |
149 | .vpe_list = LIST_HEAD_INIT(vpecontrol.vpe_list), | ||
150 | .tc_list = LIST_HEAD_INIT(vpecontrol.tc_list) | ||
151 | }; | ||
149 | 152 | ||
150 | static void release_progmem(void *ptr); | 153 | static void release_progmem(void *ptr); |
151 | /* static __attribute_used__ void dump_vpe(struct vpe * v); */ | 154 | /* static __attribute_used__ void dump_vpe(struct vpe * v); */ |
@@ -1388,8 +1391,6 @@ static int __init vpe_module_init(void) | |||
1388 | 1391 | ||
1389 | /* dump_mtregs(); */ | 1392 | /* dump_mtregs(); */ |
1390 | 1393 | ||
1391 | INIT_LIST_HEAD(&vpecontrol.vpe_list); | ||
1392 | INIT_LIST_HEAD(&vpecontrol.tc_list); | ||
1393 | 1394 | ||
1394 | val = read_c0_mvpconf0(); | 1395 | val = read_c0_mvpconf0(); |
1395 | for (i = 0; i < ((val & MVPCONF0_PTC) + 1); i++) { | 1396 | for (i = 0; i < ((val & MVPCONF0_PTC) + 1); i++) { |
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c index 30245c09d025..49065c133ebf 100644 --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c | |||
@@ -501,7 +501,8 @@ void free_initmem(void) | |||
501 | 501 | ||
502 | freed = prom_free_prom_memory(); | 502 | freed = prom_free_prom_memory(); |
503 | if (freed) | 503 | if (freed) |
504 | printk(KERN_INFO "Freeing firmware memory: %ldk freed\n",freed); | 504 | printk(KERN_INFO "Freeing firmware memory: %ldkb freed\n", |
505 | freed >> 10); | ||
505 | 506 | ||
506 | free_init_pages("unused kernel memory", | 507 | free_init_pages("unused kernel memory", |
507 | __pa_symbol(&__init_begin), | 508 | __pa_symbol(&__init_begin), |
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 0855d55c194d..d6abe495c6b0 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
@@ -484,6 +484,7 @@ config PPC_MAPLE | |||
484 | select PPC_970_NAP | 484 | select PPC_970_NAP |
485 | select PPC_NATIVE | 485 | select PPC_NATIVE |
486 | select PPC_RTAS | 486 | select PPC_RTAS |
487 | select ATA_NONSTANDARD if ATA | ||
487 | default n | 488 | default n |
488 | help | 489 | help |
489 | This option enables support for the Maple 970FX Evaluation Board. | 490 | This option enables support for the Maple 970FX Evaluation Board. |
@@ -525,12 +526,15 @@ config PPC_IBM_CELL_BLADE | |||
525 | select UDBG_RTAS_CONSOLE | 526 | select UDBG_RTAS_CONSOLE |
526 | 527 | ||
527 | config PPC_PS3 | 528 | config PPC_PS3 |
528 | bool "Sony PS3" | 529 | bool "Sony PS3 (incomplete)" |
529 | depends on PPC_MULTIPLATFORM && PPC64 | 530 | depends on PPC_MULTIPLATFORM && PPC64 |
530 | select PPC_CELL | 531 | select PPC_CELL |
531 | help | 532 | help |
532 | This option enables support for the Sony PS3 game console | 533 | This option enables support for the Sony PS3 game console |
533 | and other platforms using the PS3 hypervisor. | 534 | and other platforms using the PS3 hypervisor. |
535 | Support for this platform is not yet complete, so | ||
536 | enabling this will not result in a bootable kernel on a | ||
537 | PS3 system. | ||
534 | 538 | ||
535 | config PPC_NATIVE | 539 | config PPC_NATIVE |
536 | bool | 540 | bool |
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c index 73c59ec49120..01f18c683407 100644 --- a/arch/powerpc/kernel/pci_64.c +++ b/arch/powerpc/kernel/pci_64.c | |||
@@ -1430,7 +1430,7 @@ long sys_pciconfig_iobase(long which, unsigned long in_bus, | |||
1430 | 1430 | ||
1431 | for (ln = pci_root_buses.next; ln != &pci_root_buses; ln = ln->next) { | 1431 | for (ln = pci_root_buses.next; ln != &pci_root_buses; ln = ln->next) { |
1432 | bus = pci_bus_b(ln); | 1432 | bus = pci_bus_b(ln); |
1433 | if (in_bus >= bus->number && in_bus < (bus->number + bus->subordinate)) | 1433 | if (in_bus >= bus->number && in_bus <= bus->subordinate) |
1434 | break; | 1434 | break; |
1435 | bus = NULL; | 1435 | bus = NULL; |
1436 | } | 1436 | } |
diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c index a4b28c73bba0..ae0ede19879d 100644 --- a/arch/powerpc/kernel/vdso.c +++ b/arch/powerpc/kernel/vdso.c | |||
@@ -284,6 +284,13 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, | |||
284 | * pages though | 284 | * pages though |
285 | */ | 285 | */ |
286 | vma->vm_flags = VM_READ|VM_EXEC|VM_MAYREAD|VM_MAYWRITE|VM_MAYEXEC; | 286 | vma->vm_flags = VM_READ|VM_EXEC|VM_MAYREAD|VM_MAYWRITE|VM_MAYEXEC; |
287 | /* | ||
288 | * Make sure the vDSO gets into every core dump. | ||
289 | * Dumping its contents makes post-mortem fully interpretable later | ||
290 | * without matching up the same kernel and hardware config to see | ||
291 | * what PC values meant. | ||
292 | */ | ||
293 | vma->vm_flags |= VM_ALWAYSDUMP; | ||
287 | vma->vm_flags |= mm->def_flags; | 294 | vma->vm_flags |= mm->def_flags; |
288 | vma->vm_page_prot = protection_map[vma->vm_flags & 0x7]; | 295 | vma->vm_page_prot = protection_map[vma->vm_flags & 0x7]; |
289 | vma->vm_ops = &vdso_vmops; | 296 | vma->vm_ops = &vdso_vmops; |
diff --git a/arch/powerpc/platforms/ps3/Makefile b/arch/powerpc/platforms/ps3/Makefile index 3757cfabc8ce..1994904f580f 100644 --- a/arch/powerpc/platforms/ps3/Makefile +++ b/arch/powerpc/platforms/ps3/Makefile | |||
@@ -1,4 +1,5 @@ | |||
1 | obj-y += setup.o mm.o smp.o time.o hvcall.o htab.o repository.o | 1 | obj-y += setup.o mm.o time.o hvcall.o htab.o repository.o |
2 | obj-y += interrupt.o exports.o os-area.o | 2 | obj-y += interrupt.o exports.o os-area.o |
3 | 3 | ||
4 | obj-$(CONFIG_SMP) += smp.o | ||
4 | obj-$(CONFIG_SPU_BASE) += spu.o | 5 | obj-$(CONFIG_SPU_BASE) += spu.o |
diff --git a/arch/powerpc/platforms/ps3/interrupt.c b/arch/powerpc/platforms/ps3/interrupt.c index 056c1e4141ba..6f5de438b980 100644 --- a/arch/powerpc/platforms/ps3/interrupt.c +++ b/arch/powerpc/platforms/ps3/interrupt.c | |||
@@ -71,7 +71,7 @@ int ps3_free_io_irq(unsigned int virq) | |||
71 | 71 | ||
72 | result = lv1_destruct_io_irq_outlet(virq_to_hw(virq)); | 72 | result = lv1_destruct_io_irq_outlet(virq_to_hw(virq)); |
73 | 73 | ||
74 | if (!result) | 74 | if (result) |
75 | pr_debug("%s:%d: lv1_destruct_io_irq_outlet failed: %s\n", | 75 | pr_debug("%s:%d: lv1_destruct_io_irq_outlet failed: %s\n", |
76 | __func__, __LINE__, ps3_result(result)); | 76 | __func__, __LINE__, ps3_result(result)); |
77 | 77 | ||
diff --git a/arch/sparc64/kernel/sun4v_tlb_miss.S b/arch/sparc64/kernel/sun4v_tlb_miss.S index b731881224e8..9871dbb1ab42 100644 --- a/arch/sparc64/kernel/sun4v_tlb_miss.S +++ b/arch/sparc64/kernel/sun4v_tlb_miss.S | |||
@@ -142,9 +142,9 @@ sun4v_dtlb_prot: | |||
142 | rdpr %tl, %g1 | 142 | rdpr %tl, %g1 |
143 | cmp %g1, 1 | 143 | cmp %g1, 1 |
144 | bgu,pn %xcc, winfix_trampoline | 144 | bgu,pn %xcc, winfix_trampoline |
145 | nop | ||
146 | ba,pt %xcc, sparc64_realfault_common | ||
147 | mov FAULT_CODE_DTLB | FAULT_CODE_WRITE, %g4 | 145 | mov FAULT_CODE_DTLB | FAULT_CODE_WRITE, %g4 |
146 | ba,pt %xcc, sparc64_realfault_common | ||
147 | nop | ||
148 | 148 | ||
149 | /* Called from trap table: | 149 | /* Called from trap table: |
150 | * %g4: vaddr | 150 | * %g4: vaddr |
diff --git a/arch/um/Kconfig.i386 b/arch/um/Kconfig.i386 index f191a550a079..77558a88a2fe 100644 --- a/arch/um/Kconfig.i386 +++ b/arch/um/Kconfig.i386 | |||
@@ -19,22 +19,22 @@ config SEMAPHORE_SLEEPERS | |||
19 | choice | 19 | choice |
20 | prompt "Host memory split" | 20 | prompt "Host memory split" |
21 | default HOST_VMSPLIT_3G | 21 | default HOST_VMSPLIT_3G |
22 | ---help--- | 22 | help |
23 | This is needed when the host kernel on which you run has a non-default | 23 | This is needed when the host kernel on which you run has a non-default |
24 | (like 2G/2G) memory split, instead of the customary 3G/1G. If you did | 24 | (like 2G/2G) memory split, instead of the customary 3G/1G. If you did |
25 | not recompile your own kernel but use the default distro's one, you can | 25 | not recompile your own kernel but use the default distro's one, you can |
26 | safely accept the "Default split" option. | 26 | safely accept the "Default split" option. |
27 | 27 | ||
28 | It can be enabled on recent (>=2.6.16-rc2) vanilla kernels via | 28 | It can be enabled on recent (>=2.6.16-rc2) vanilla kernels via |
29 | CONFIG_VM_SPLIT_*, or on previous kernels with special patches (-ck | 29 | CONFIG_VM_SPLIT_*, or on previous kernels with special patches (-ck |
30 | patchset by Con Kolivas, or other ones) - option names match closely the | 30 | patchset by Con Kolivas, or other ones) - option names match closely the |
31 | host CONFIG_VM_SPLIT_* ones. | 31 | host CONFIG_VM_SPLIT_* ones. |
32 | 32 | ||
33 | A lower setting (where 1G/3G is lowest and 3G/1G is higher) will | 33 | A lower setting (where 1G/3G is lowest and 3G/1G is higher) will |
34 | tolerate even more "normal" host kernels, but an higher setting will be | 34 | tolerate even more "normal" host kernels, but an higher setting will be |
35 | stricter. | 35 | stricter. |
36 | 36 | ||
37 | So, if you do not know what to do here, say 'Default split'. | 37 | So, if you do not know what to do here, say 'Default split'. |
38 | 38 | ||
39 | config HOST_VMSPLIT_3G | 39 | config HOST_VMSPLIT_3G |
40 | bool "Default split (3G/1G user/kernel host split)" | 40 | bool "Default split (3G/1G user/kernel host split)" |
@@ -67,13 +67,13 @@ config 3_LEVEL_PGTABLES | |||
67 | 67 | ||
68 | config STUB_CODE | 68 | config STUB_CODE |
69 | hex | 69 | hex |
70 | default 0xbfffe000 if !HOST_2G_2G | 70 | default 0xbfffe000 if !HOST_VMSPLIT_2G |
71 | default 0x7fffe000 if HOST_2G_2G | 71 | default 0x7fffe000 if HOST_VMSPLIT_2G |
72 | 72 | ||
73 | config STUB_DATA | 73 | config STUB_DATA |
74 | hex | 74 | hex |
75 | default 0xbffff000 if !HOST_2G_2G | 75 | default 0xbffff000 if !HOST_VMSPLIT_2G |
76 | default 0x7ffff000 if HOST_2G_2G | 76 | default 0x7ffff000 if HOST_VMSPLIT_2G |
77 | 77 | ||
78 | config STUB_START | 78 | config STUB_START |
79 | hex | 79 | hex |
diff --git a/arch/x86_64/ia32/ia32_binfmt.c b/arch/x86_64/ia32/ia32_binfmt.c index 543ef4f405e9..5ce0bd486bbf 100644 --- a/arch/x86_64/ia32/ia32_binfmt.c +++ b/arch/x86_64/ia32/ia32_binfmt.c | |||
@@ -64,55 +64,6 @@ typedef unsigned int elf_greg_t; | |||
64 | #define ELF_NGREG (sizeof (struct user_regs_struct32) / sizeof(elf_greg_t)) | 64 | #define ELF_NGREG (sizeof (struct user_regs_struct32) / sizeof(elf_greg_t)) |
65 | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; | 65 | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; |
66 | 66 | ||
67 | /* | ||
68 | * These macros parameterize elf_core_dump in fs/binfmt_elf.c to write out | ||
69 | * extra segments containing the vsyscall DSO contents. Dumping its | ||
70 | * contents makes post-mortem fully interpretable later without matching up | ||
71 | * the same kernel and hardware config to see what PC values meant. | ||
72 | * Dumping its extra ELF program headers includes all the other information | ||
73 | * a debugger needs to easily find how the vsyscall DSO was being used. | ||
74 | */ | ||
75 | #define ELF_CORE_EXTRA_PHDRS (find_vma(current->mm, VSYSCALL32_BASE) ? \ | ||
76 | (VSYSCALL32_EHDR->e_phnum) : 0) | ||
77 | #define ELF_CORE_WRITE_EXTRA_PHDRS \ | ||
78 | do { \ | ||
79 | if (find_vma(current->mm, VSYSCALL32_BASE)) { \ | ||
80 | const struct elf32_phdr *const vsyscall_phdrs = \ | ||
81 | (const struct elf32_phdr *) (VSYSCALL32_BASE \ | ||
82 | + VSYSCALL32_EHDR->e_phoff);\ | ||
83 | int i; \ | ||
84 | Elf32_Off ofs = 0; \ | ||
85 | for (i = 0; i < VSYSCALL32_EHDR->e_phnum; ++i) { \ | ||
86 | struct elf32_phdr phdr = vsyscall_phdrs[i]; \ | ||
87 | if (phdr.p_type == PT_LOAD) { \ | ||
88 | BUG_ON(ofs != 0); \ | ||
89 | ofs = phdr.p_offset = offset; \ | ||
90 | phdr.p_memsz = PAGE_ALIGN(phdr.p_memsz); \ | ||
91 | phdr.p_filesz = phdr.p_memsz; \ | ||
92 | offset += phdr.p_filesz; \ | ||
93 | } \ | ||
94 | else \ | ||
95 | phdr.p_offset += ofs; \ | ||
96 | phdr.p_paddr = 0; /* match other core phdrs */ \ | ||
97 | DUMP_WRITE(&phdr, sizeof(phdr)); \ | ||
98 | } \ | ||
99 | } \ | ||
100 | } while (0) | ||
101 | #define ELF_CORE_WRITE_EXTRA_DATA \ | ||
102 | do { \ | ||
103 | if (find_vma(current->mm, VSYSCALL32_BASE)) { \ | ||
104 | const struct elf32_phdr *const vsyscall_phdrs = \ | ||
105 | (const struct elf32_phdr *) (VSYSCALL32_BASE \ | ||
106 | + VSYSCALL32_EHDR->e_phoff); \ | ||
107 | int i; \ | ||
108 | for (i = 0; i < VSYSCALL32_EHDR->e_phnum; ++i) { \ | ||
109 | if (vsyscall_phdrs[i].p_type == PT_LOAD) \ | ||
110 | DUMP_WRITE((void *) (u64) vsyscall_phdrs[i].p_vaddr,\ | ||
111 | PAGE_ALIGN(vsyscall_phdrs[i].p_memsz)); \ | ||
112 | } \ | ||
113 | } \ | ||
114 | } while (0) | ||
115 | |||
116 | struct elf_siginfo | 67 | struct elf_siginfo |
117 | { | 68 | { |
118 | int si_signo; /* signal number */ | 69 | int si_signo; /* signal number */ |
diff --git a/arch/x86_64/ia32/syscall32.c b/arch/x86_64/ia32/syscall32.c index 3e5ed20cba45..59f1fa155915 100644 --- a/arch/x86_64/ia32/syscall32.c +++ b/arch/x86_64/ia32/syscall32.c | |||
@@ -59,6 +59,13 @@ int syscall32_setup_pages(struct linux_binprm *bprm, int exstack) | |||
59 | vma->vm_end = VSYSCALL32_END; | 59 | vma->vm_end = VSYSCALL32_END; |
60 | /* MAYWRITE to allow gdb to COW and set breakpoints */ | 60 | /* MAYWRITE to allow gdb to COW and set breakpoints */ |
61 | vma->vm_flags = VM_READ|VM_EXEC|VM_MAYREAD|VM_MAYEXEC|VM_MAYWRITE; | 61 | vma->vm_flags = VM_READ|VM_EXEC|VM_MAYREAD|VM_MAYEXEC|VM_MAYWRITE; |
62 | /* | ||
63 | * Make sure the vDSO gets into every core dump. | ||
64 | * Dumping its contents makes post-mortem fully interpretable later | ||
65 | * without matching up the same kernel and hardware config to see | ||
66 | * what PC values meant. | ||
67 | */ | ||
68 | vma->vm_flags |= VM_ALWAYSDUMP; | ||
62 | vma->vm_flags |= mm->def_flags; | 69 | vma->vm_flags |= mm->def_flags; |
63 | vma->vm_page_prot = protection_map[vma->vm_flags & 7]; | 70 | vma->vm_page_prot = protection_map[vma->vm_flags & 7]; |
64 | vma->vm_ops = &syscall32_vm_ops; | 71 | vma->vm_ops = &syscall32_vm_ops; |
@@ -75,6 +82,14 @@ int syscall32_setup_pages(struct linux_binprm *bprm, int exstack) | |||
75 | return 0; | 82 | return 0; |
76 | } | 83 | } |
77 | 84 | ||
85 | const char *arch_vma_name(struct vm_area_struct *vma) | ||
86 | { | ||
87 | if (vma->vm_start == VSYSCALL32_BASE && | ||
88 | vma->vm_mm && vma->vm_mm->task_size == IA32_PAGE_OFFSET) | ||
89 | return "[vdso]"; | ||
90 | return NULL; | ||
91 | } | ||
92 | |||
78 | static int __init init_syscall32(void) | 93 | static int __init init_syscall32(void) |
79 | { | 94 | { |
80 | syscall32_page = (void *)get_zeroed_page(GFP_KERNEL); | 95 | syscall32_page = (void *)get_zeroed_page(GFP_KERNEL); |