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