DragonFly commits List (threaded) for 2013-03
git: async_rcvd: Fix possible deadlock
Author: Sepherosa Ziehau <firstname.lastname@example.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.
Summary of changes:
sys/kern/uipc_msg.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
DragonFly BSD source repository