Mercurial > illumos > illumos-gate
changeset 8028:cd6790ddf574
6763758 processor_bind() incorrectly reports old binding as PBIND_NONE for bound processes on unbind
author | Alexander Kolbasov <Alexander.Kolbasov@Sun.COM> |
---|---|
date | Thu, 06 Nov 2008 15:40:19 -0800 |
parents | 0ed4c2d79627 |
children | d7695059e7a6 |
files | usr/src/uts/common/os/cpu.c |
diffstat | 1 files changed, 2 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/uts/common/os/cpu.c Thu Nov 06 15:16:47 2008 -0500 +++ b/usr/src/uts/common/os/cpu.c Thu Nov 06 15:40:19 2008 -0800 @@ -23,8 +23,6 @@ * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - /* * Architecture-independent CPU control functions. */ @@ -2451,11 +2449,12 @@ * reporting PBIND_NONE for a process when some LWPs are bound. */ binding = tp->t_bind_cpu; + if (binding != PBIND_NONE) + *obind = binding; /* record old binding */ switch (bind) { case PBIND_QUERY: /* Just return the old binding */ - *obind = binding; thread_unlock(tp); return (0); @@ -2471,7 +2470,6 @@ * binding */ TB_CPU_SOFT_SET(tp); - *obind = binding; thread_unlock(tp); return (0); @@ -2481,16 +2479,10 @@ * binding */ TB_CPU_HARD_SET(tp); - *obind = binding; thread_unlock(tp); return (0); - case PBIND_NONE: - break; - default: - /* record old binding */ - *obind = binding; break; }