aboutsummaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2008-10-22 10:00:26 -0500
committerRusty Russell <rusty@rustcorp.com.au>2008-10-22 10:00:26 +1100
commit8163bcac779f62c6bf847caed9bce905db0693fb (patch)
tree8fcf397c504fadbebecde09901aacef06b4551d8 /init
parentstop_machine: use workqueues instead of kernel threads (diff)
downloadlinux-dev-8163bcac779f62c6bf847caed9bce905db0693fb.tar.xz
linux-dev-8163bcac779f62c6bf847caed9bce905db0693fb.zip
stop_machine: fix error code handling on multiple cpus
Using |= for updating a value which might be updated on several cpus concurrently will not always work since we need to make sure that the update happens atomically. To fix this just use a write if the called function returns an error code on a cpu. We end up writing the error code of an arbitrary cpu if multiple ones fail but that should be sufficient. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'init')
0 files changed, 0 insertions, 0 deletions