On Fri, Jan 04, 2013 at 03:19:55PM -0600, Dan Williams wrote: > On Fri, 2012-12-21 at 17:57 -0800, Tejun Heo wrote: > > 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 at kernel.org> > > Acked-by: Dan Williams <dcbw at redhat.com> > > No regressions in a quick connection check to Clear and browsing a bunch > of pages. Applied to wq/for-3.9-cleanups. Thanks! -- tejun