diff options
author | Tejun Heo <tj@kernel.org> | 2012-12-22 02:57:10 +0100 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2013-02-09 20:34:19 +0100 |
commit | 23663c873154f01220ef679558e1ca110c4c4ca4 (patch) | |
tree | 5d142c7485c667e4ff7553267f38893a65b482ef /kernel/kprobes.c | |
parent | kprobes: fix wait_for_kprobe_optimizer() (diff) | |
download | linux-23663c873154f01220ef679558e1ca110c4c4ca4.tar.xz linux-23663c873154f01220ef679558e1ca110c4c4ca4.zip |
wimax/i2400m: fix i2400m->wake_tx_skb handling
i2400m_net_wake_tx() sets ->wake_tx_skb with the given skb if
->wake_tx_ws is not pending; however, i2400m_wake_tx_work() could have
just started execution and haven't fetched -><wake_tx_skb yet. The
previous packet will be leaked.
Update ->wake_tx_skb handling.
* i2400m_net_wake_tx() now tests whether the previous ->wake_tx_skb
has been consumed by ->wake_tx_ws instead of testing work_pending().
* i2400m_net_wake_stop() is simplified similarly. It always puts
->wake_tx_skb if non-NULL.
* Spurious ->wake_tx_skb dereference outside critical section dropped
from i2400m_wake_tx_work().
Only compile tested.
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Dan Williams <dcbw@redhat.com>
Cc: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
Cc: linux-wimax@intel.com
Cc: wimax@linuxwimax.org
Diffstat (limited to 'kernel/kprobes.c')
0 files changed, 0 insertions, 0 deletions