Patchwork Fix semaphores fallback code

login
register
mail settings
Submitter Brad
Date Dec. 28, 2012, 9:11 p.m.
Message ID <20121228211101.GF27232@rox.home.comstyle.com>
Download mbox | patch
Permalink /patch/208590/
State New
Headers show

Comments

Brad - Dec. 28, 2012, 9:11 p.m.
On Fri, Dec 28, 2012 at 08:13:37PM +0000, Blue Swirl wrote:
> On Fri, Dec 28, 2012 at 6:00 AM, Brad Smith <brad@comstyle.com> wrote:
> > As reported in bug 1087114 the semaphores fallback code is broken which
> > results in QEMU crashing and making QEMU unusable.
> >
> > This patch is from Paolo.
> >
> > This needs to be back ported to the 1.3 stable tree as well.
> 
> Needs to be back ported to HEAD as well because of the reorganization,
> or applied after Paolo's series.
> 
> >
> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> > Signed-off-by: Brad Smith <brad@comstyle.com>

Here is a patch applied to HEAD.

Patch

diff --git a/qemu-thread-posix.c b/qemu-thread-posix.c
index 6374df3..4489abf 100644
--- a/qemu-thread-posix.c
+++ b/qemu-thread-posix.c
@@ -213,6 +213,7 @@  int qemu_sem_timedwait(QemuSemaphore *sem, int ms)
     while (sem->count < 0) {
         rc = pthread_cond_timedwait(&sem->cond, &sem->lock, &ts);
         if (rc == ETIMEDOUT) {
+            ++sem->count;
             break;
         }
         if (rc != 0) {