br2684: don't send frames on not-ready vcc
authorDavid Woodhouse <dwmw2@infradead.org>
Tue, 27 Nov 2012 23:28:36 +0000 (23:28 +0000)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Sun, 2 Dec 2012 00:05:14 +0000 (00:05 +0000)
commitb89588531f1db93a218c108eee713ff6002a67bf
tree074d0b433a381f95325082c8d9f0ba10a835b517
parentc971f08cba56ed17fe22040ca5ff97fe5c3f0bd7
br2684: don't send frames on not-ready vcc

Avoid submitting packets to a vcc which is being closed. Things go badly
wrong when the ->pop method gets later called after everything's been
torn down.

Use the ATM socket lock for synchronisation with vcc_destroy_socket(),
which clears the ATM_VF_READY bit under the same lock. Otherwise, we
could end up submitting a packet to the device driver even after its
->ops->close method has been called. And it could call the vcc's ->pop
method after the protocol has been shut down. Which leads to a panic.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Acked-by: Krzysztof Mazur <krzysiek@podlesie.net>
net/atm/br2684.c