diff options
author | hselasky <hselasky@FreeBSD.org> | 2015-12-15 09:02:05 +0000 |
---|---|---|
committer | hselasky <hselasky@FreeBSD.org> | 2015-12-15 09:02:05 +0000 |
commit | 918ba30df9494e6475cf598129cb23c99b02f28f (patch) | |
tree | 8caf1aec11f0ed8feb9da05d8eaf26cbd3cd4f45 /contrib/llvm/lib/CodeGen/MachineSSAUpdater.cpp | |
parent | ce202b136bfa54551668b2cb19d58f1d68e6b91e (diff) | |
download | FreeBSD-src-918ba30df9494e6475cf598129cb23c99b02f28f.zip FreeBSD-src-918ba30df9494e6475cf598129cb23c99b02f28f.tar.gz |
Properly drain callouts in the IPFW subsystem to avoid use after free
panics when unloading the dummynet and IPFW modules:
- The callout drain function can sleep and should not be called having
a non-sleepable lock locked. Remove locks around "ipfw_dyn_uninit(0)".
- Add a new "dn_gone" variable to prevent asynchronous restart of
dummynet callouts when unloading the dummynet kernel module.
- Call "dn_reschedule()" locked so that "dn_gone" can be set and
checked atomically with regard to starting a new callout.
Reviewed by: hiren
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D3855
Diffstat (limited to 'contrib/llvm/lib/CodeGen/MachineSSAUpdater.cpp')
0 files changed, 0 insertions, 0 deletions