···64 * sys_connect:65 * sys_sendmsg:66 * sys_sendto:067 *68 * struct sockaddr_un loses its padding with EABI. Since the size of the69 * structure is used as a validation test in unix_mkname(), we need to···79#include <linux/eventpoll.h>80#include <linux/sem.h>81#include <linux/socket.h>082#include <asm/ipc.h>83#include <asm/uaccess.h>84···410 return sys_sendmsg(fd, msg, flags);411}4120000000000000000000000000000
···64 * sys_connect:65 * sys_sendmsg:66 * sys_sendto:67+ * sys_socketcall:68 *69 * struct sockaddr_un loses its padding with EABI. Since the size of the70 * structure is used as a validation test in unix_mkname(), we need to···78#include <linux/eventpoll.h>79#include <linux/sem.h>80#include <linux/socket.h>81+#include <linux/net.h>82#include <asm/ipc.h>83#include <asm/uaccess.h>84···408 return sys_sendmsg(fd, msg, flags);409}410411+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 mb();141}142000000000000143void __init smp_prepare_cpus(unsigned int max_cpus)144{145 unsigned int ncores = get_core_count();···188 max_cpus = ncores;189190 /*191- * Initialise the possible/present maps.192- * cpu_possible_map describes the set of CPUs which may be present193- * cpu_present_map describes the set of CPUs populated194 */195- for (i = 0; i < max_cpus; i++) {196- cpu_set(i, cpu_possible_map);197 cpu_set(i, cpu_present_map);198- }199200 /*201 * Do we need any more CPUs? If so, then let them know where
···140 mb();141}142143+/*144+ * Initialise the CPU possible map early - this describes the CPUs145+ * 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+155void __init smp_prepare_cpus(unsigned int max_cpus)156{157 unsigned int ncores = get_core_count();···176 max_cpus = ncores;177178 /*179+ * Initialise the present map, which describes the set of CPUs180+ * actually populated at the present time.0181 */182+ for (i = 0; i < max_cpus; i++)0183 cpu_set(i, cpu_present_map);0184185 /*186 * Do we need any more CPUs? If so, then let them know where
···143 mb();144}145000000000000146void __init smp_prepare_cpus(unsigned int max_cpus)147{148 unsigned int ncores = get_core_count();···191 local_timer_setup(cpu);192193 /*194- * Initialise the possible/present maps.195- * cpu_possible_map describes the set of CPUs which may be present196- * cpu_present_map describes the set of CPUs populated197 */198- for (i = 0; i < max_cpus; i++) {199- cpu_set(i, cpu_possible_map);200 cpu_set(i, cpu_present_map);201- }202203 /*204 * Do we need any more CPUs? If so, then let them know where
···143 mb();144}145146+/*147+ * Initialise the CPU possible map early - this describes the CPUs148+ * 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+158void __init smp_prepare_cpus(unsigned int max_cpus)159{160 unsigned int ncores = get_core_count();···179 local_timer_setup(cpu);180181 /*182+ * Initialise the present map, which describes the set of CPUs183+ * actually populated at the present time.0184 */185+ for (i = 0; i < max_cpus; i++)0186 cpu_set(i, cpu_present_map);0187188 /*189 * Do we need any more CPUs? If so, then let them know where
···42asmlinkage void do_IPI(struct pt_regs *regs);4344/*0000045 * Move global data into per-processor storage.46 */47extern void smp_store_cpu_info(unsigned int cpuid);
···42asmlinkage void do_IPI(struct pt_regs *regs);4344/*45+ * Setup the SMP cpu_possible_map46+ */47+extern void smp_init_cpus(void);48+49+/*50 * Move global data into per-processor storage.51 */52extern void smp_store_cpu_info(unsigned int cpuid);
+3-3
include/asm-arm/unistd.h
···309#define __NR_mq_getsetattr (__NR_SYSCALL_BASE+279)310#define __NR_waitid (__NR_SYSCALL_BASE+280)311312-#if 0 /* reserve these for un-muxing socketcall */313#define __NR_socket (__NR_SYSCALL_BASE+281)314#define __NR_bind (__NR_SYSCALL_BASE+282)315#define __NR_connect (__NR_SYSCALL_BASE+283)···329#define __NR_recvmsg (__NR_SYSCALL_BASE+297)330#endif331332-#if 0 /* reserve these for un-muxing ipc */333#define __NR_semop (__NR_SYSCALL_BASE+298)334#define __NR_semget (__NR_SYSCALL_BASE+299)335#define __NR_semctl (__NR_SYSCALL_BASE+300)···347#define __NR_request_key (__NR_SYSCALL_BASE+310)348#define __NR_keyctl (__NR_SYSCALL_BASE+311)349350-#if 0 /* reserved for un-muxing ipc */351#define __NR_semtimedop (__NR_SYSCALL_BASE+312)352#endif353
···309#define __NR_mq_getsetattr (__NR_SYSCALL_BASE+279)310#define __NR_waitid (__NR_SYSCALL_BASE+280)311312+#if defined(__ARM_EABI__) /* reserve these for un-muxing socketcall */313#define __NR_socket (__NR_SYSCALL_BASE+281)314#define __NR_bind (__NR_SYSCALL_BASE+282)315#define __NR_connect (__NR_SYSCALL_BASE+283)···329#define __NR_recvmsg (__NR_SYSCALL_BASE+297)330#endif331332+#if defined(__ARM_EABI__) /* reserve these for un-muxing ipc */333#define __NR_semop (__NR_SYSCALL_BASE+298)334#define __NR_semget (__NR_SYSCALL_BASE+299)335#define __NR_semctl (__NR_SYSCALL_BASE+300)···347#define __NR_request_key (__NR_SYSCALL_BASE+310)348#define __NR_keyctl (__NR_SYSCALL_BASE+311)349350+#if defined(__ARM_EABI__) /* reserved for un-muxing ipc */351#define __NR_semtimedop (__NR_SYSCALL_BASE+312)352#endif353