Zhu Yi b8ddafd759 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 <yi.zhu@intel.com>
Signed-off-by: Chatre, Reinette <reinette.chatre@intel.com>
Tested-by: Frank Seidel <fseidel@suse.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-12-05 09:18:35 -05:00
..
2008-11-16 01:35:56 -08:00
2008-11-03 15:23:02 -05:00
2008-10-16 16:52:05 +02:00
2008-10-08 16:53:40 -07:00
2008-11-25 01:00:47 -08:00
2008-10-16 16:52:05 +02:00
2008-01-28 15:04:05 -08:00
2008-06-10 18:20:17 -04:00
2008-08-14 04:26:38 -04:00
2008-10-12 21:15:17 -07:00
2008-07-18 17:54:17 -07:00
2008-10-09 12:22:38 -07:00
2008-08-13 16:05:38 -07:00
2008-08-13 16:05:37 -07:00
2008-08-13 16:05:37 -07:00
2008-11-03 16:46:58 -08:00
2008-08-13 16:05:37 -07:00
2008-09-03 14:38:00 -07:00
2008-09-22 19:27:10 -07:00
2008-09-22 19:27:10 -07:00
2008-03-26 00:18:43 -04:00
2008-02-01 20:54:03 +11:00
2008-01-28 15:07:59 -08:00
2008-10-08 17:09:54 -07:00
2008-11-14 18:18:30 -05:00
2008-05-22 14:12:40 -04:00
2008-01-28 15:07:12 -08:00
2008-11-25 21:05:51 -08:00
2008-07-22 17:50:44 -04:00
2008-08-27 05:36:57 -04:00
2008-07-25 15:44:44 +10:00
2008-03-17 08:11:41 -04:00
2008-08-14 04:26:38 -04:00
2008-10-08 19:51:33 -07:00
2008-04-25 02:08:51 -04:00
2008-01-28 15:07:12 -08:00
2008-11-21 16:33:25 -08:00
2008-10-08 17:09:54 -07:00
2008-07-22 17:50:44 -04:00
2008-03-17 07:56:33 -04:00
2008-03-26 00:18:00 -04:00
2008-11-14 14:44:08 -08:00
2008-05-30 22:19:22 -04:00
2008-03-05 16:34:41 -06:00
2008-07-20 17:12:34 -07:00
2008-01-28 15:11:27 -08:00
2008-07-20 17:12:34 -07:00
2008-10-30 23:35:02 -07:00
2008-10-17 02:38:35 +11:00
2008-01-28 15:03:59 -08:00
2008-04-16 20:41:44 -04:00
2008-05-30 22:07:17 -04:00
2008-08-07 02:20:57 -04:00
2008-10-12 20:59:48 -07:00
2008-08-07 01:55:50 -04:00
2008-01-28 15:11:27 -08:00
2008-07-20 17:12:34 -07:00
2008-11-30 10:03:37 -08:00
2008-11-30 10:03:37 -08:00
2008-10-22 06:22:13 -04:00
2008-01-28 15:03:59 -08:00
2008-04-16 20:06:50 -04:00
2008-08-29 02:13:33 -07:00
2008-01-28 15:07:10 -08:00
2008-08-29 02:14:29 -07:00
2008-08-31 20:59:37 -07:00
2008-08-29 02:14:43 -07:00
2008-10-12 21:01:53 -07:00
2008-05-30 22:18:02 -04:00
2008-11-01 09:49:46 -07:00