summaryrefslogtreecommitdiff
path: root/open_issues
diff options
context:
space:
mode:
Diffstat (limited to 'open_issues')
-rw-r--r--open_issues/dde.mdwn23
-rw-r--r--open_issues/dde/13778443
2 files changed, 3 insertions, 63 deletions
diff --git a/open_issues/dde.mdwn b/open_issues/dde.mdwn
index 9e2ec742..e2cff94f 100644
--- a/open_issues/dde.mdwn
+++ b/open_issues/dde.mdwn
@@ -8,25 +8,8 @@ Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
is included in the section entitled [[GNU Free Documentation
License|/fdl]]."]]"""]]
-[[General Information|/dde]].
-
-
-# IRC, freenode, #hurd, 2011-10-18
+[[!tag open_issue_hurd open_issue_gnumach]]
-[[!tag open_issue_hurd]]
-
- [DDE crash, or similar]
- <youpi> it's fake_local_irq_disable_flags(), then raw_local_irq_disable(),
- then raw_local_irq_restore(), which *does not* release the cli_lock
- <youpi> the "prove it" comment is (as I expected) completely wrong
- <youpi> npnth: http://paste.debian.net/137784/
-
-[[137784]]
+[[General Information|/dde]].
- <youpi> could you try this patch ?
- <youpi> (I've not even tried to build it)
- <npnth> youpi: speaking of which, it still seems to hang :/ I'll 1) double
- check it applied correctly and 2) get a gdb output if it did
- <youpi> npnth: could you add printing the value of unlock_refcnt?
- <youpi> so we can check what's happening
- <npnth> unlock_refcnt is at 0, interesting
+Still waiting for interface finalization and proper integration.
diff --git a/open_issues/dde/137784 b/open_issues/dde/137784
deleted file mode 100644
index 1529465b..00000000
--- a/open_issues/dde/137784
+++ /dev/null
@@ -1,43 +0,0 @@
-diff --git a/libdde_linux26/lib/src/arch/l4/cli_sti.c b/libdde_linux26/lib/src/arch/l4/cli_sti.c
-index 051f259..6a8c460 100644
---- a/libdde_linux26/lib/src/arch/l4/cli_sti.c
-+++ b/libdde_linux26/lib/src/arch/l4/cli_sti.c
-@@ -4,6 +4,8 @@
-
- /* IRQ lock reference counter */
- static atomic_t _refcnt = ATOMIC_INIT(0);
-+/* Refcnt value at which unlocking the cli_lock (it's not always 0) */
-+static int unlock_refcnt;
- static ddekit_lock_t cli_lock;
-
- /* Check whether IRQs are currently disabled.
-@@ -57,9 +59,6 @@ void fake_local_irq_restore(unsigned long flags)
- /* Store the current flags state.
- *
- * This is done by returning the current refcnt.
-- *
-- * XXX: Up to now, flags was always 0 at this point and
-- * I assume that this is always the case. Prove?
- */
- unsigned long __raw_local_save_flags(void)
- {
-@@ -82,7 +81,7 @@ void raw_local_irq_restore(unsigned long flags)
- {
- Assert(cli_lock != NULL);
- atomic_set(&_refcnt, flags);
-- if (flags == 0)
-+ if (flags == unlock_refcnt)
- ddekit_lock_unlock(&cli_lock);
- }
-
-@@ -95,7 +94,9 @@ void raw_local_irq_disable(void)
- if (cli_lock == NULL)
- ddekit_lock_init_unlocked(&cli_lock);
-
-- nested_lock(cli_lock);
-+ if (nested_lock(cli_lock))
-+ /* Tell the corresponding restorer to release cli_lock */
-+ unlock_refcnt = atomic_read(&_refcnt);
- atomic_inc(&_refcnt);
- }
-