···6464 * sys_connect:6565 * sys_sendmsg:6666 * sys_sendto:6767+ * sys_socketcall:6768 *6869 * struct sockaddr_un loses its padding with EABI. Since the size of the6970 * structure is used as a validation test in unix_mkname(), we need to···7978#include <linux/eventpoll.h>8079#include <linux/sem.h>8180#include <linux/socket.h>8181+#include <linux/net.h>8282#include <asm/ipc.h>8383#include <asm/uaccess.h>8484···410408 return sys_sendmsg(fd, msg, flags);411409}412410411411+asmlinkage long sys_oabi_socketcall(int call, unsigned long __user *args)412412+{413413+ unsigned long r = -EFAULT, a[6];414414+415415+ switch (call) {416416+ case SYS_BIND:417417+ if (copy_from_user(a, args, 3 * sizeof(long)) == 0)418418+ r = sys_oabi_bind(a[0], (struct sockaddr __user *)a[1], a[2]);419419+ break;420420+ case SYS_CONNECT:421421+ if (copy_from_user(a, args, 3 * sizeof(long)) == 0)422422+ r = sys_oabi_connect(a[0], (struct sockaddr __user *)a[1], a[2]);423423+ break;424424+ case SYS_SENDTO:425425+ if (copy_from_user(a, args, 6 * sizeof(long)) == 0)426426+ r = sys_oabi_sendto(a[0], (void __user *)a[1], a[2], a[3],427427+ (struct sockaddr __user *)a[4], a[5]);428428+ break;429429+ case SYS_SENDMSG:430430+ if (copy_from_user(a, args, 3 * sizeof(long)) == 0)431431+ r = sys_oabi_sendmsg(a[0], (struct msghdr __user *)a[1], a[2]);432432+ break;433433+ default:434434+ r = sys_socketcall(call, args);435435+ }436436+437437+ return r;438438+}
+15-6
arch/arm/mach-integrator/platsmp.c
···140140 mb();141141}142142143143+/*144144+ * Initialise the CPU possible map early - this describes the CPUs145145+ * which may be present or become present in the system.146146+ */147147+void __init smp_init_cpus(void)148148+{149149+ unsigned int i, ncores = get_core_count();150150+151151+ for (i = 0; i < ncores; i++)152152+ cpu_set(i, cpu_possible_map);153153+}154154+143155void __init smp_prepare_cpus(unsigned int max_cpus)144156{145157 unsigned int ncores = get_core_count();···188176 max_cpus = ncores;189177190178 /*191191- * Initialise the possible/present maps.192192- * cpu_possible_map describes the set of CPUs which may be present193193- * cpu_present_map describes the set of CPUs populated179179+ * Initialise the present map, which describes the set of CPUs180180+ * actually populated at the present time.194181 */195195- for (i = 0; i < max_cpus; i++) {196196- cpu_set(i, cpu_possible_map);182182+ for (i = 0; i < max_cpus; i++)197183 cpu_set(i, cpu_present_map);198198- }199184200185 /*201186 * Do we need any more CPUs? If so, then let them know where
···143143 mb();144144}145145146146+/*147147+ * Initialise the CPU possible map early - this describes the CPUs148148+ * which may be present or become present in the system.149149+ */150150+void __init smp_init_cpus(void)151151+{152152+ unsigned int i, ncores = get_core_count();153153+154154+ for (i = 0; i < ncores; i++)155155+ cpu_set(i, cpu_possible_map);156156+}157157+146158void __init smp_prepare_cpus(unsigned int max_cpus)147159{148160 unsigned int ncores = get_core_count();···191179 local_timer_setup(cpu);192180193181 /*194194- * Initialise the possible/present maps.195195- * cpu_possible_map describes the set of CPUs which may be present196196- * cpu_present_map describes the set of CPUs populated182182+ * Initialise the present map, which describes the set of CPUs183183+ * actually populated at the present time.197184 */198198- for (i = 0; i < max_cpus; i++) {199199- cpu_set(i, cpu_possible_map);185185+ for (i = 0; i < max_cpus; i++)200186 cpu_set(i, cpu_present_map);201201- }202187203188 /*204189 * Do we need any more CPUs? If so, then let them know where
···4242asmlinkage void do_IPI(struct pt_regs *regs);43434444/*4545+ * Setup the SMP cpu_possible_map4646+ */4747+extern void smp_init_cpus(void);4848+4949+/*4550 * Move global data into per-processor storage.4651 */4752extern void smp_store_cpu_info(unsigned int cpuid);
+3-3
include/asm-arm/unistd.h
···309309#define __NR_mq_getsetattr (__NR_SYSCALL_BASE+279)310310#define __NR_waitid (__NR_SYSCALL_BASE+280)311311312312-#if 0 /* reserve these for un-muxing socketcall */312312+#if defined(__ARM_EABI__) /* reserve these for un-muxing socketcall */313313#define __NR_socket (__NR_SYSCALL_BASE+281)314314#define __NR_bind (__NR_SYSCALL_BASE+282)315315#define __NR_connect (__NR_SYSCALL_BASE+283)···329329#define __NR_recvmsg (__NR_SYSCALL_BASE+297)330330#endif331331332332-#if 0 /* reserve these for un-muxing ipc */332332+#if defined(__ARM_EABI__) /* reserve these for un-muxing ipc */333333#define __NR_semop (__NR_SYSCALL_BASE+298)334334#define __NR_semget (__NR_SYSCALL_BASE+299)335335#define __NR_semctl (__NR_SYSCALL_BASE+300)···347347#define __NR_request_key (__NR_SYSCALL_BASE+310)348348#define __NR_keyctl (__NR_SYSCALL_BASE+311)349349350350-#if 0 /* reserved for un-muxing ipc */350350+#if defined(__ARM_EABI__) /* reserved for un-muxing ipc */351351#define __NR_semtimedop (__NR_SYSCALL_BASE+312)352352#endif353353