git: async_rcvd: Fix possible deadlock
Sepherosa Ziehau
sephe at crater.dragonflybsd.org
Sun Mar 10 18:57:40 PDT 2013
commit d4cbc55116b8cf96243f52483e50d48e08a50bf2
Author: Sepherosa Ziehau <sephe at 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
More information about the Commits
mailing list