[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r5897 - in glibc-package/branches/eglibc-2.18/debian: . patches patches/hurd-i386



Author: sthibault
Date: 2013-12-31 12:21:04 +0000 (Tue, 31 Dec 2013)
New Revision: 5897

Added:
   glibc-package/branches/eglibc-2.18/debian/patches/hurd-i386/tg-sigstate_locking.diff
Modified:
   glibc-package/branches/eglibc-2.18/debian/changelog
   glibc-package/branches/eglibc-2.18/debian/patches/series
Log:
patches/hurd-i386/tg-sigstate_locking.diff: New patch to fix sigstate creation.

Modified: glibc-package/branches/eglibc-2.18/debian/changelog
===================================================================
--- glibc-package/branches/eglibc-2.18/debian/changelog	2013-12-31 12:18:03 UTC (rev 5896)
+++ glibc-package/branches/eglibc-2.18/debian/changelog	2013-12-31 12:21:04 UTC (rev 5897)
@@ -18,6 +18,8 @@
   [ Samuel Thibault ]
   * patches/hurd-i386/tg-nfds-poll.diff: New patch to fix poll call with big
     array.
+  * patches/hurd-i386/tg-sigstate_locking.diff: New patch to fix sigstate
+    creation.
 
  -- Adam Conrad <adconrad@ubuntu.com>  Tue, 10 Dec 2013 01:59:47 -0700
 

Added: glibc-package/branches/eglibc-2.18/debian/patches/hurd-i386/tg-sigstate_locking.diff
===================================================================
--- glibc-package/branches/eglibc-2.18/debian/patches/hurd-i386/tg-sigstate_locking.diff	                        (rev 0)
+++ glibc-package/branches/eglibc-2.18/debian/patches/hurd-i386/tg-sigstate_locking.diff	2013-12-31 12:21:04 UTC (rev 5897)
@@ -0,0 +1,34 @@
+From: Richard Braun <rbraun@sceen.net>
+Subject: [PATCH] Hurd: fix sigstate locking
+
+It looks like _hurd_thread_sigstate used to return with the sigstate
+lock held long ago, but since that's no longer the case, don't unlock
+something that isn't locked.
+
+Note that it's unlikely this change fixes anything in practice since
+its current implementation (on i386) makes this call a nop.
+
+* hurd/hurd/signal.h (_hurd_critical_section_lock): Don't unlock
+sigstate.
+
+---
+ hurd/hurd/signal.h | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/hurd/hurd/signal.h b/hurd/hurd/signal.h
+index d4079ef..13c5f0e 100644
+--- a/hurd/hurd/signal.h
++++ b/hurd/hurd/signal.h
+@@ -175,9 +175,8 @@ _hurd_critical_section_lock (void)
+       /* The thread variable is unset; this must be the first time we've
+ 	 asked for it.  In this case, the critical section flag cannot
+ 	 possible already be set.  Look up our sigstate structure the slow
+-	 way; this locks the sigstate lock.  */
++	 way.  */
+       ss = *location = _hurd_thread_sigstate (__mach_thread_self ());
+-      __spin_unlock (&ss->lock);
+     }
+ 
+   if (! __spin_try_lock (&ss->critical_section_lock))
+-- 
+tg: (9a079e2..) t/sigstate_locking (depends on: baseline)

Modified: glibc-package/branches/eglibc-2.18/debian/patches/series
===================================================================
--- glibc-package/branches/eglibc-2.18/debian/patches/series	2013-12-31 12:18:03 UTC (rev 5896)
+++ glibc-package/branches/eglibc-2.18/debian/patches/series	2013-12-31 12:21:04 UTC (rev 5897)
@@ -144,6 +144,7 @@
 hurd-i386/cvs-libpthread-userstack.diff
 hurd-i386/tg-libc_getspecific.diff
 hurd-i386/tg-nfds-poll.diff
+hurd-i386/tg-sigstate_locking.diff
 
 i386/local-biarch.diff
 i386/local-cmov.diff


Reply to: