Merge master.kernel.org:/home/rmk/linux-2.6-arm

+78 -23
+1 -1
arch/arm/kernel/calls.S
··· 111 111 CALL(sys_statfs) 112 112 /* 100 */ CALL(sys_fstatfs) 113 113 CALL(sys_ni_syscall) 114 - CALL(OBSOLETE(sys_socketcall)) 114 + CALL(OBSOLETE(ABI(sys_socketcall, sys_oabi_socketcall))) 115 115 CALL(sys_syslog) 116 116 CALL(sys_setitimer) 117 117 /* 105 */ CALL(sys_getitimer)
+5
arch/arm/kernel/setup.c
··· 23 23 #include <linux/root_dev.h> 24 24 #include <linux/cpu.h> 25 25 #include <linux/interrupt.h> 26 + #include <linux/smp.h> 26 27 27 28 #include <asm/cpu.h> 28 29 #include <asm/elf.h> ··· 771 770 parse_cmdline(cmdline_p, from); 772 771 paging_init(&meminfo, mdesc); 773 772 request_standard_resources(&meminfo, mdesc); 773 + 774 + #ifdef CONFIG_SMP 775 + smp_init_cpus(); 776 + #endif 774 777 775 778 cpu_init(); 776 779
-1
arch/arm/kernel/smp.c
··· 338 338 339 339 per_cpu(cpu_data, cpu).idle = current; 340 340 341 - cpu_set(cpu, cpu_possible_map); 342 341 cpu_set(cpu, cpu_present_map); 343 342 cpu_set(cpu, cpu_online_map); 344 343 }
+30
arch/arm/kernel/sys_oabi-compat.c
··· 64 64 * sys_connect: 65 65 * sys_sendmsg: 66 66 * sys_sendto: 67 + * sys_socketcall: 67 68 * 68 69 * struct sockaddr_un loses its padding with EABI. Since the size of the 69 70 * structure is used as a validation test in unix_mkname(), we need to ··· 79 78 #include <linux/eventpoll.h> 80 79 #include <linux/sem.h> 81 80 #include <linux/socket.h> 81 + #include <linux/net.h> 82 82 #include <asm/ipc.h> 83 83 #include <asm/uaccess.h> 84 84 ··· 410 408 return sys_sendmsg(fd, msg, flags); 411 409 } 412 410 411 + asmlinkage long sys_oabi_socketcall(int call, unsigned long __user *args) 412 + { 413 + unsigned long r = -EFAULT, a[6]; 414 + 415 + switch (call) { 416 + case SYS_BIND: 417 + if (copy_from_user(a, args, 3 * sizeof(long)) == 0) 418 + r = sys_oabi_bind(a[0], (struct sockaddr __user *)a[1], a[2]); 419 + break; 420 + case SYS_CONNECT: 421 + if (copy_from_user(a, args, 3 * sizeof(long)) == 0) 422 + r = sys_oabi_connect(a[0], (struct sockaddr __user *)a[1], a[2]); 423 + break; 424 + case SYS_SENDTO: 425 + if (copy_from_user(a, args, 6 * sizeof(long)) == 0) 426 + r = sys_oabi_sendto(a[0], (void __user *)a[1], a[2], a[3], 427 + (struct sockaddr __user *)a[4], a[5]); 428 + break; 429 + case SYS_SENDMSG: 430 + if (copy_from_user(a, args, 3 * sizeof(long)) == 0) 431 + r = sys_oabi_sendmsg(a[0], (struct msghdr __user *)a[1], a[2]); 432 + break; 433 + default: 434 + r = sys_socketcall(call, args); 435 + } 436 + 437 + return r; 438 + }
+15 -6
arch/arm/mach-integrator/platsmp.c
··· 140 140 mb(); 141 141 } 142 142 143 + /* 144 + * Initialise the CPU possible map early - this describes the CPUs 145 + * which may be present or become present in the system. 146 + */ 147 + void __init smp_init_cpus(void) 148 + { 149 + unsigned int i, ncores = get_core_count(); 150 + 151 + for (i = 0; i < ncores; i++) 152 + cpu_set(i, cpu_possible_map); 153 + } 154 + 143 155 void __init smp_prepare_cpus(unsigned int max_cpus) 144 156 { 145 157 unsigned int ncores = get_core_count(); ··· 188 176 max_cpus = ncores; 189 177 190 178 /* 191 - * Initialise the possible/present maps. 192 - * cpu_possible_map describes the set of CPUs which may be present 193 - * cpu_present_map describes the set of CPUs populated 179 + * Initialise the present map, which describes the set of CPUs 180 + * actually populated at the present time. 194 181 */ 195 - for (i = 0; i < max_cpus; i++) { 196 - cpu_set(i, cpu_possible_map); 182 + for (i = 0; i < max_cpus; i++) 197 183 cpu_set(i, cpu_present_map); 198 - } 199 184 200 185 /* 201 186 * Do we need any more CPUs? If so, then let them know where
-1
arch/arm/mach-iop3xx/iop321-setup.c
··· 13 13 #include <linux/mm.h> 14 14 #include <linux/init.h> 15 15 #include <linux/config.h> 16 - #include <linux/init.h> 17 16 #include <linux/major.h> 18 17 #include <linux/fs.h> 19 18 #include <linux/platform_device.h>
-1
arch/arm/mach-iop3xx/iop331-setup.c
··· 12 12 #include <linux/mm.h> 13 13 #include <linux/init.h> 14 14 #include <linux/config.h> 15 - #include <linux/init.h> 16 15 #include <linux/major.h> 17 16 #include <linux/fs.h> 18 17 #include <linux/platform_device.h>
+4 -2
arch/arm/mach-ixp4xx/nslu2-setup.c
··· 27 27 }; 28 28 29 29 static struct resource nslu2_flash_resource = { 30 - .start = NSLU2_FLASH_BASE, 31 - .end = NSLU2_FLASH_BASE + NSLU2_FLASH_SIZE, 32 30 .flags = IORESOURCE_MEM, 33 31 }; 34 32 ··· 113 115 static void __init nslu2_init(void) 114 116 { 115 117 ixp4xx_sys_init(); 118 + 119 + nslu2_flash_resource.start = IXP4XX_EXP_BUS_BASE(0); 120 + nslu2_flash_resource.end = 121 + IXP4XX_EXP_BUS_BASE(0) + ixp4xx_exp_bus_size - 1; 116 122 117 123 pm_power_off = nslu2_power_off; 118 124
+15 -6
arch/arm/mach-realview/platsmp.c
··· 143 143 mb(); 144 144 } 145 145 146 + /* 147 + * Initialise the CPU possible map early - this describes the CPUs 148 + * which may be present or become present in the system. 149 + */ 150 + void __init smp_init_cpus(void) 151 + { 152 + unsigned int i, ncores = get_core_count(); 153 + 154 + for (i = 0; i < ncores; i++) 155 + cpu_set(i, cpu_possible_map); 156 + } 157 + 146 158 void __init smp_prepare_cpus(unsigned int max_cpus) 147 159 { 148 160 unsigned int ncores = get_core_count(); ··· 191 179 local_timer_setup(cpu); 192 180 193 181 /* 194 - * Initialise the possible/present maps. 195 - * cpu_possible_map describes the set of CPUs which may be present 196 - * cpu_present_map describes the set of CPUs populated 182 + * Initialise the present map, which describes the set of CPUs 183 + * actually populated at the present time. 197 184 */ 198 - for (i = 0; i < max_cpus; i++) { 199 - cpu_set(i, cpu_possible_map); 185 + for (i = 0; i < max_cpus; i++) 200 186 cpu_set(i, cpu_present_map); 201 - } 202 187 203 188 /* 204 189 * Do we need any more CPUs? If so, then let them know where
-1
arch/arm/plat-omap/pm.c
··· 38 38 #include <linux/pm.h> 39 39 #include <linux/sched.h> 40 40 #include <linux/proc_fs.h> 41 - #include <linux/pm.h> 42 41 #include <linux/interrupt.h> 43 42 44 43 #include <asm/io.h>
-1
drivers/video/s3c2410fb.c
··· 82 82 #include <linux/fb.h> 83 83 #include <linux/init.h> 84 84 #include <linux/dma-mapping.h> 85 - #include <linux/string.h> 86 85 #include <linux/interrupt.h> 87 86 #include <linux/workqueue.h> 88 87 #include <linux/wait.h>
+5
include/asm-arm/smp.h
··· 42 42 asmlinkage void do_IPI(struct pt_regs *regs); 43 43 44 44 /* 45 + * Setup the SMP cpu_possible_map 46 + */ 47 + extern void smp_init_cpus(void); 48 + 49 + /* 45 50 * Move global data into per-processor storage. 46 51 */ 47 52 extern void smp_store_cpu_info(unsigned int cpuid);
+3 -3
include/asm-arm/unistd.h
··· 309 309 #define __NR_mq_getsetattr (__NR_SYSCALL_BASE+279) 310 310 #define __NR_waitid (__NR_SYSCALL_BASE+280) 311 311 312 - #if 0 /* reserve these for un-muxing socketcall */ 312 + #if defined(__ARM_EABI__) /* reserve these for un-muxing socketcall */ 313 313 #define __NR_socket (__NR_SYSCALL_BASE+281) 314 314 #define __NR_bind (__NR_SYSCALL_BASE+282) 315 315 #define __NR_connect (__NR_SYSCALL_BASE+283) ··· 329 329 #define __NR_recvmsg (__NR_SYSCALL_BASE+297) 330 330 #endif 331 331 332 - #if 0 /* reserve these for un-muxing ipc */ 332 + #if defined(__ARM_EABI__) /* reserve these for un-muxing ipc */ 333 333 #define __NR_semop (__NR_SYSCALL_BASE+298) 334 334 #define __NR_semget (__NR_SYSCALL_BASE+299) 335 335 #define __NR_semctl (__NR_SYSCALL_BASE+300) ··· 347 347 #define __NR_request_key (__NR_SYSCALL_BASE+310) 348 348 #define __NR_keyctl (__NR_SYSCALL_BASE+311) 349 349 350 - #if 0 /* reserved for un-muxing ipc */ 350 + #if defined(__ARM_EABI__) /* reserved for un-muxing ipc */ 351 351 #define __NR_semtimedop (__NR_SYSCALL_BASE+312) 352 352 #endif 353 353