diff options
| author | Zhu Yi <[email protected]> | 2008-11-27 05:42:20 +0000 |
|---|---|---|
| committer | John W. Linville <[email protected]> | 2008-12-05 14:18:35 +0000 |
| commit | b8ddafd759e356c839774a8b87011b768deb53b3 (patch) | |
| tree | 9913a6a2510c70b2ba6a61f84f1d9384731df491 /net/ipv4/tcp_output.c | |
| parent | iwlwifi: clean key table in iwl_clear_stations_table function (diff) | |
| download | kernel-b8ddafd759e356c839774a8b87011b768deb53b3.tar.gz kernel-b8ddafd759e356c839774a8b87011b768deb53b3.zip | |
ipw2200: fix netif_*_queue() removal regression
In "ipw2200: Call netif_*_queue() interfaces properly", netif_stop_queue()
and netif_wake_queue() were removed with the reason
"netif_carrier_{on,off}() handles starting and stopping packet flow into
the driver". The patch also removes a valid condition check that
ipw_tx_skb() cannot be called if device is not in STATUS_ASSOCIATED state.
But netif_carrier_off() doesn't guarantee netdev->hard_start_xmit won't
be called because linkwatch event is handled in a delayed workqueue. This
caused a kernel oops reported by Frank Seidel:
https://bugzilla.novell.com/show_bug.cgi?id=397390
This patch fixes the problem by moving the STATUS_ASSOCIATED check back
to ipw_tx_skb(). It also adds a missing netif_carrier_off() call to
ipw_disassociate().
Signed-off-by: Zhu Yi <[email protected]>
Signed-off-by: Chatre, Reinette <[email protected]>
Tested-by: Frank Seidel <[email protected]>
Signed-off-by: John W. Linville <[email protected]>
Diffstat (limited to 'net/ipv4/tcp_output.c')
0 files changed, 0 insertions, 0 deletions
