Hi Dave:
This is a resend of an earlier patch to dst_dev_event. I've changed
it slightly by moving the input/output assignment into dst_ifdown.
To recap, this patch drops lingering IPsec references to a device that
is being unregistered. The child processing in the GC is too late
since it never runs until the reference on the dst hits zero which
could take a long time for things like TCP connections.
The reason I've left the input/output assignment outside the loop is
because they aren't really necessary for the IPsec dst's, and if
it were in the loop then we'll have to do the same child processing
in ___dst_free as well.
I've tested this with an ESP/IPCOMP tunnel and I can confirm that it
does fix the problem.
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
p
Description: Text document
|