kern/148698: commit references a PR
dfilter service
dfilter at FreeBSD.ORG
Mon Aug 9 00:30:11 UTC 2010
The following reply was made to PR kern/148698; it has been noted by GNATS.
From: dfilter at FreeBSD.ORG (dfilter service)
To: bug-followup at FreeBSD.org
Cc:
Subject: Re: kern/148698: commit references a PR
Date: Mon, 9 Aug 2010 00:24:11 +0000 (UTC)
Author: attilio
Date: Mon Aug 9 00:23:57 2010
New Revision: 211087
URL: http://svn.freebsd.org/changeset/base/211087
Log:
The r208165 fixed a bug related to unsigned integer overflowing for the
number of CPUs detection.
However, that was not mention at all, the problem was not reported, the
patch has not been MFCed and the fix is mostly improper.
Fix the original overflow (caused when 32 CPUs must be detected) by
just using a different mathematical computation (it also makes more
explicit the size of operands involved, which is good in the moment
waiting for a more complete support for a large number of CPUs).
PR: kern/148698
Submitted by: Joe Landers <jlanders at vmware dot com>
Tested by: gianni
MFC after: 10 days
Modified:
head/sys/kern/subr_smp.c
Modified: head/sys/kern/subr_smp.c
==============================================================================
--- head/sys/kern/subr_smp.c Sun Aug 8 23:24:23 2010 (r211086)
+++ head/sys/kern/subr_smp.c Mon Aug 9 00:23:57 2010 (r211087)
@@ -504,10 +504,7 @@ smp_topo_none(void)
top = &group[0];
top->cg_parent = NULL;
top->cg_child = NULL;
- if (mp_ncpus == sizeof(top->cg_mask) * 8)
- top->cg_mask = -1;
- else
- top->cg_mask = (1 << mp_ncpus) - 1;
+ top->cg_mask = ~0U >> (32 - mp_ncpus);
top->cg_count = mp_ncpus;
top->cg_children = 0;
top->cg_level = CG_SHARE_NONE;
_______________________________________________
svn-src-all at freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"
More information about the freebsd-bugs
mailing list