]> git.proxmox.com Git - mirror_qemu.git/commit
linux-user: In fork_end(), remove correct CPUs from CPU list
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 7 Jun 2016 16:31:04 +0000 (17:31 +0100)
committerRiku Voipio <riku.voipio@linaro.org>
Wed, 8 Jun 2016 09:06:57 +0000 (12:06 +0300)
commit014628a705bdaf31c09915c29e61f4088956564d
tree1ece1506156b7c2ad1c98dce7cc1feccba315e82
parentda2a34f7f9999da09f6c307b40b66eba8cc38283
linux-user: In fork_end(), remove correct CPUs from CPU list

In fork_end(), we must fix the list of current CPUs to match the fact
that the child of the fork has only one thread. Unfortunately we were
removing the wrong CPUs from the list, which meant that if the child
subsequently did an exclusive operation it would deadlock in
start_exclusive() waiting for a sibling CPU which didn't exist.

In particular this could cause hangs doing git submodule init
operations, as reported in https://bugs.launchpad.net/qemu/+bug/955379
comment #47.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
linux-user/main.c