FreeBSD Bugzilla – Attachment 174031 Details for
Bug 211947
bconsole won't die sitting on do_rw_wrlock
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Unset URWLOCK_READ_WAITERS even when error occured.
1.patch (text/plain), 736 bytes, created by
Konstantin Belousov
on 2016-08-24 21:15:18 UTC
(
hide
)
Description:
Unset URWLOCK_READ_WAITERS even when error occured.
Filename:
MIME Type:
Creator:
Konstantin Belousov
Created:
2016-08-24 21:15:18 UTC
Size:
736 bytes
patch
obsolete
>diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c >index 33eb8bc..51495aa 100644 >--- a/sys/kern/kern_umtx.c >+++ b/sys/kern/kern_umtx.c >@@ -2743,9 +2743,12 @@ sleep: > suword32(&rwlock->rw_blocked_readers, blocked_readers-1); > if (blocked_readers == 1) { > rv = fueword32(&rwlock->rw_state, &state); >- if (rv == -1) >+ if (rv == -1) { >+ umtxq_unbusy_unlocked(&uq->uq_key); > error = EFAULT; >- while (error == 0) { >+ break; >+ } >+ for (;;) { > rv = casueword32(&rwlock->rw_state, state, > &oldstate, state & ~URWLOCK_READ_WAITERS); > if (rv == -1) { >@@ -2756,6 +2759,8 @@ sleep: > break; > state = oldstate; > error = umtxq_check_susp(td); >+ if (error != 0) >+ break; > } > } >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 211947
: 174031