Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: src/sys
Module Name: src
Committed By: ozaki-r
Date: Wed Dec 21 08:47:02 UTC 2016
Modified Files:
src/sys/net: if_llatbl.c if_llatbl.h
src/sys/netinet6: in6.c nd6.c
Log Message:
Fix deadlock between llentry timers and destruction of llentry
llentry timer (of nd6) holds both llentry's lock and softnet_lock.
A caller also holds them and calls callout_halt to wait for the
timer to quit. However we can pass only one lock to callout_halt,
so passing either of them can cause a deadlock. Fix it by avoid
calling callout_halt without holding llentry's lock.
BTW in the first place we cannot pass llentry's lock to callout_halt
because it's a rwlock...
To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/sys/net/if_llatbl.c
cvs rdiff -u -r1.9 -r1.10 src/sys/net/if_llatbl.h
cvs rdiff -u -r1.225 -r1.226 src/sys/netinet6/in6.c
cvs rdiff -u -r1.221 -r1.222 src/sys/netinet6/nd6.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index