From owner-svn-src-projects@FreeBSD.ORG Fri May 13 19:56:59 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 62F1A1065675; Fri, 13 May 2011 19:56:59 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 489E28FC24; Fri, 13 May 2011 19:56:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4DJuxfC081020; Fri, 13 May 2011 19:56:59 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4DJuxnk081014; Fri, 13 May 2011 19:56:59 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201105131956.p4DJuxnk081014@svn.freebsd.org> From: Attilio Rao Date: Fri, 13 May 2011 19:56:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221857 - in projects/largeSMP/sys/mips: cavium include mips rmi sibyte X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 May 2011 19:56:59 -0000 Author: attilio Date: Fri May 13 19:56:58 2011 New Revision: 221857 URL: http://svn.freebsd.org/changeset/base/221857 Log: Fix a brain-o in platform_cpu_mask() by just specifying a possible cpuset_t to be copied, rather than return the array. I can't rely anymore on this being a simple int/long object. Reported by: art Modified: projects/largeSMP/sys/mips/cavium/octeon_mp.c projects/largeSMP/sys/mips/include/hwfunc.h projects/largeSMP/sys/mips/mips/mp_machdep.c projects/largeSMP/sys/mips/rmi/xlr_machdep.c projects/largeSMP/sys/mips/sibyte/sb_scd.c Modified: projects/largeSMP/sys/mips/cavium/octeon_mp.c ============================================================================== --- projects/largeSMP/sys/mips/cavium/octeon_mp.c Fri May 13 19:40:02 2011 (r221856) +++ projects/largeSMP/sys/mips/cavium/octeon_mp.c Fri May 13 19:56:58 2011 (r221857) @@ -102,20 +102,18 @@ platform_init_ap(int cpuid) mips_wbflush(); } -cpuset_t -platform_cpu_mask(void) +void +platform_cpu_mask(cpuset_t *mask) { - cpuset_t cpumask; - CPU_ZERO(&cpumask); + CPU_ZERO(mask); /* * XXX: hack in order to simplify CPU set building, assuming that * core_mask is 32-bits. */ - memcpy(&cpumask, &octeon_bootinfo->core_mask, + memcpy(mask, &octeon_bootinfo->core_mask, sizeof(octeon_bootinfo->core_mask)); - return (cpumask); } struct cpu_group * Modified: projects/largeSMP/sys/mips/include/hwfunc.h ============================================================================== --- projects/largeSMP/sys/mips/include/hwfunc.h Fri May 13 19:40:02 2011 (r221856) +++ projects/largeSMP/sys/mips/include/hwfunc.h Fri May 13 19:56:58 2011 (r221857) @@ -93,7 +93,7 @@ extern int platform_processor_id(void); /* * Return the cpumask of available processors. */ -extern cpuset_t platform_cpu_mask(void); +extern void platform_cpu_mask(cpuset_t *mask); /* * Return the topology of processors on this platform Modified: projects/largeSMP/sys/mips/mips/mp_machdep.c ============================================================================== --- projects/largeSMP/sys/mips/mips/mp_machdep.c Fri May 13 19:40:02 2011 (r221856) +++ projects/largeSMP/sys/mips/mips/mp_machdep.c Fri May 13 19:56:58 2011 (r221857) @@ -205,7 +205,7 @@ cpu_mp_setmaxid(void) cpuset_t cpumask; int cpu, last; - cpumask = platform_cpu_mask(); + platform_cpu_mask(&cpumask); mp_ncpus = 0; last = 1; while ((cpu = cpusetobj_ffs(&cpumask)) != 0) { @@ -247,7 +247,7 @@ cpu_mp_start(void) mtx_init(&ap_boot_mtx, "ap boot", NULL, MTX_SPIN); CPU_ZERO(&all_cpus); - cpumask = platform_cpu_mask(); + platform_cpu_mask(&cpumask); while (!CPU_EMPTY(&cpumask)) { cpuid = cpusetobj_ffs(&cpumask) - 1; Modified: projects/largeSMP/sys/mips/rmi/xlr_machdep.c ============================================================================== --- projects/largeSMP/sys/mips/rmi/xlr_machdep.c Fri May 13 19:40:02 2011 (r221856) +++ projects/largeSMP/sys/mips/rmi/xlr_machdep.c Fri May 13 19:56:58 2011 (r221857) @@ -614,17 +614,15 @@ platform_processor_id(void) return (xlr_hwtid_to_cpuid[xlr_cpu_id()]); } -cpuset_t -platform_cpu_mask(void) +void +platform_cpu_mask(cpuset_t *mask) { - cpuset_t cpumask; int i, s; - CPU_ZERO(&cpumask); + CPU_ZERO(mask); s = xlr_ncores * xlr_threads_per_core; for (i = 0; i < s; i++) - CPU_SET(i, &cpumask); - return (cpumask); + CPU_SET(i, mask); } struct cpu_group * Modified: projects/largeSMP/sys/mips/sibyte/sb_scd.c ============================================================================== --- projects/largeSMP/sys/mips/sibyte/sb_scd.c Fri May 13 19:40:02 2011 (r221856) +++ projects/largeSMP/sys/mips/sibyte/sb_scd.c Fri May 13 19:56:58 2011 (r221857) @@ -243,17 +243,15 @@ sb_clear_mailbox(int cpu, uint64_t val) sb_store64(regaddr, val); } -cpuset_t -platform_cpu_mask(void) +void +platform_cpu_mask(cpuset_t *mask) { - cpuset_t cpumask; int i, s; - CPU_ZERO(&cpumask); + CPU_ZERO(mask); s = SYSREV_NUM_PROCESSORS(sb_read_sysrev()); for (i = 0; i < s; i++) - CPU_SET(i, &cpumask); - return (cpumask); + CPU_SET(i, mask); } #endif /* SMP */