DragonFly BSD
DragonFly commits List (threaded) for 2013-03
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: async_rcvd: Fix possible deadlock


From: Sepherosa Ziehau <sephe@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 10 Mar 2013 18:57:40 -0700 (PDT)

commit d4cbc55116b8cf96243f52483e50d48e08a50bf2
Author: Sepherosa Ziehau <sephe@dragonflybsd.org>
Date:   Mon Mar 11 09:50:05 2013 +0800

    async_rcvd: Fix possible deadlock
    
    It is possible when we try dropping the asynchronized rcvd message, the
    message is not on the msgport yet, but sendmsg_stage1 is done, i.e.
    MSG_DONE is cleared.  Originally we were waiting for the MSG_DONE to be
    set, however, it will _never_ be set, since the message dropping is done
    in the netisr and the MSG_DONE will only be turned on when the message
    is dequeued and runs in the _same_ netisr.
    
    Fixing this deadlock by keeping dropping the asynchronized rcvd message,
    if the message's MSG_DONE flag is not set.
    
    Reported-by: pavalos@

Summary of changes:
 sys/kern/uipc_msg.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/d4cbc55116b8cf96243f52483e50d48e08a50bf2


-- 
DragonFly BSD source repository



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