summaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
Diffstat (limited to 'debian')
-rw-r--r--debian/changelog2
-rw-r--r--debian/patches/libpager_deadlock.patch20
-rw-r--r--debian/patches/series1
3 files changed, 23 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index d545bb51..9cf1dbeb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -17,6 +17,8 @@ hurd (20110303-1) UNRELEASED; urgency=low
correct response.
* debian/patches/auth-intr-cure.patch: Add patch to mitigate
reauthentication issue triggered by sudo.
+ * debian/patches/libpager_deadlock.patch: Add patch to fix a known
+ synchronization deadlock.
[ Justus Winter ]
* debian/hurd.{postinst,postrm}: Add/remove loginpr shell and login user with
diff --git a/debian/patches/libpager_deadlock.patch b/debian/patches/libpager_deadlock.patch
new file mode 100644
index 00000000..ea2d9087
--- /dev/null
+++ b/debian/patches/libpager_deadlock.patch
@@ -0,0 +1,20 @@
+See http://lists.gnu.org/archive/html/bug-hurd/2010-03/msg00127.html
+for the story. This should be completely safe, but Sergio believes
+memory_object_lock_request shouldn't actually block.
+
+diff --git a/libpager/lock-object.c b/libpager/lock-object.c
+index d108666..d8d4a1b 100644
+--- a/libpager/lock-object.c
++++ b/libpager/lock-object.c
+@@ -65,9 +65,11 @@ _pager_lock_object (struct pager *p,
+ }
+ }
+
++ mutex_unlock (&p->interlock);
+ memory_object_lock_request (p->memobjcntl, offset, size, should_return,
+ should_flush, lock_value,
+ sync ? p->port.port_right : MACH_PORT_NULL);
++ mutex_lock (&p->interlock);
+
+ if (sync)
+ {
diff --git a/debian/patches/series b/debian/patches/series
index dffa9a24..5bfb36e5 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -29,3 +29,4 @@ libpthread_sigmask.patch
disable-proc_getnports.patch
ext2fs_nowait.patch
auth-intr-cure.patch
+libpager_deadlock.patch