Stanislaw Gruszka
d6b0fa557a
rt2x00: fix crash in rt2800usb_get_txwi
commit 674db1344443204b6ce3293f2df8fd1b7665deea upstream.
Patch should fix this oops:
BUG: unable to handle kernel NULL pointer dereference at 000000a0
IP: [<f81b30c9>] rt2800usb_get_txwi+0x19/0x70 [rt2800usb]
*pdpt = 0000000000000000 *pde = f000ff53f000ff53
Oops: 0000 [#1] SMP
Pid: 198, comm: kworker/u:3 Tainted: G W 3.0.0-wl+ #9 LENOVO 6369CTO/6369CTO
EIP: 0060:[<f81b30c9>] EFLAGS: 00010283 CPU: 1
EIP is at rt2800usb_get_txwi+0x19/0x70 [rt2800usb]
EAX: 00000000 EBX: f465e140 ECX: f4494960 EDX: ef24c5f8
ESI: 810f21f5 EDI: f1da9960 EBP: f4581e80 ESP: f4581e70
DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Process kworker/u:3 (pid: 198, ti=f4580000 task=f4494960 task.ti=f4580000)
Call Trace:
[<f804790f>] rt2800_txdone_entry+0x2f/0xf0 [rt2800lib]
[<c045110d>] ? warn_slowpath_common+0x7d/0xa0
[<f81b3a38>] ? rt2800usb_work_txdone+0x288/0x360 [rt2800usb]
[<f81b3a38>] ? rt2800usb_work_txdone+0x288/0x360 [rt2800usb]
[<f81b3a13>] rt2800usb_work_txdone+0x263/0x360 [rt2800usb]
[<c046a8d6>] process_one_work+0x186/0x440
[<c046a85a>] ? process_one_work+0x10a/0x440
[<f81b37b0>] ? rt2800usb_probe_hw+0x120/0x120 [rt2800usb]
[<c046c283>] worker_thread+0x133/0x310
[<c04885db>] ? trace_hardirqs_on+0xb/0x10
[<c046c150>] ? manage_workers+0x1e0/0x1e0
[<c047054c>] kthread+0x7c/0x90
[<c04704d0>] ? __init_kthread_worker+0x60/0x60
[<c0826b42>] kernel_thread_helper+0x6/0x1
Oops might happen because we check rt2x00queue_empty(queue) twice,
but this condition can change and we can process entry in
rt2800_txdone_entry(), which was already processed by
rt2800usb_txdone_entry_check() -> rt2x00lib_txdone_noinfo() and
has nullify entry->skb .
Reported-by: Justin Piszcz <jpiszcz@lucidpixels.com>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-10-03 11:39:58 -07:00
..
2011-06-11 16:25:16 -07:00
2011-05-19 18:44:41 -04:00
2011-04-29 14:03:01 -07:00
2011-05-23 09:12:26 -07:00
2011-05-24 13:33:45 -04:00
2011-07-01 17:49:45 -07:00
2011-06-29 05:48:41 -07:00
2011-08-15 18:31:38 -07:00
2011-06-04 06:33:24 +09:00
2011-06-29 05:58:42 -07:00
2011-05-22 21:41:57 -07:00
2011-04-11 13:44:25 -07:00
2011-06-24 17:55:22 -07:00
2011-05-22 21:41:57 -07:00
2011-05-22 21:41:57 -07:00
2011-05-22 21:41:57 -07:00
2011-08-15 18:31:42 -07:00
2011-05-23 16:33:31 -04:00
2011-05-22 21:41:57 -07:00
2011-06-17 15:20:49 -04:00
2011-07-01 17:30:00 -07:00
2011-04-17 17:47:36 -07:00
2011-08-29 13:29:16 -07:00
2011-05-22 21:41:57 -07:00
2011-06-04 06:33:24 +09:00
2011-05-22 21:41:57 -07:00
2011-05-22 21:41:57 -07:00
2011-05-22 21:41:57 -07:00
2011-04-29 14:03:01 -07:00
2011-05-22 21:41:57 -07:00
2011-06-20 13:04:12 -07:00
2011-05-22 21:41:57 -07:00
2011-05-24 13:28:35 -07:00
2011-08-15 18:31:42 -07:00
2011-06-05 14:18:19 -07:00
2011-07-01 17:36:04 -07:00
2011-05-27 20:06:53 -07:00
2011-03-31 11:26:23 -03:00
2011-05-22 21:41:57 -07:00
2011-05-25 15:35:32 -07:00
2011-05-31 19:28:32 -07:00
2011-07-18 10:44:44 -07:00
2011-07-08 09:07:59 -07:00
2011-07-07 00:25:52 -07:00
2011-05-22 21:41:57 -07:00
2011-08-15 18:31:38 -07:00
2011-03-31 11:26:23 -03:00
2011-10-03 11:39:58 -07:00
2011-05-17 15:27:35 -04:00
2011-05-31 19:28:32 -07:00
2011-03-31 11:26:23 -03:00
2011-06-13 18:25:19 -04:00
2011-05-31 19:28:32 -07:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-04-10 18:55:19 -07:00
2011-07-03 19:54:10 -07:00
2011-03-23 14:10:37 -07:00
2011-05-20 13:43:21 -07:00
2011-05-02 14:42:55 -07:00
2011-03-23 14:10:36 -07:00
2011-03-31 11:26:23 -03:00
2011-05-19 18:19:10 +02:00
2011-04-29 14:03:01 -07:00
2011-04-29 14:03:01 -07:00
2011-06-17 00:19:09 -04:00
2011-05-05 14:59:02 -07:00
2011-04-10 18:55:21 -07:00
2011-04-29 14:03:01 -07:00
2011-03-31 11:26:23 -03:00
2011-03-31 17:04:22 -07:00
2011-05-22 21:41:57 -07:00
2011-03-31 17:04:22 -07:00
2011-03-22 19:25:05 -07:00
2011-03-22 19:25:05 -07:00
2011-06-01 21:20:14 -07:00
2011-05-31 19:28:32 -07:00
2011-06-11 16:02:00 -07:00
2011-06-01 21:22:15 -07:00
2011-05-05 10:57:45 -07:00
2011-05-07 03:08:38 -07:00
2011-04-29 14:03:01 -07:00
2011-03-31 11:26:23 -03:00
2011-04-29 14:03:01 -07:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-04-29 14:03:01 -07:00
2011-03-31 11:26:23 -03:00
2011-05-22 21:41:57 -07:00
2011-04-29 12:41:59 -07:00
2011-06-09 00:12:57 -07:00
2011-08-15 18:31:42 -07:00
2011-07-15 16:00:20 -07:00
2011-07-15 16:00:20 -07:00
2011-07-04 21:39:10 -07:00
2011-04-17 17:47:36 -07:00
2011-05-07 22:31:35 -07:00
2011-06-19 16:28:02 -07:00
2011-03-31 11:26:23 -03:00
2011-06-13 18:32:36 -04:00
2011-05-12 16:59:57 -04:00
2011-05-31 19:28:32 -07:00
2011-03-31 11:26:23 -03:00
2011-10-03 11:39:55 -07:00
2011-08-15 18:31:38 -07:00
2011-05-25 08:39:03 -07:00
2011-03-31 11:26:23 -03:00
2011-08-04 21:58:34 -07:00
2011-04-01 20:56:30 -07:00
2011-06-21 16:26:27 -07:00
2011-06-04 23:16:00 +09:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-04-29 14:03:00 -07:00
2011-05-19 09:55:43 +01:00
2011-03-31 11:26:23 -03:00
2011-05-08 15:59:12 -07:00
2011-03-31 11:26:23 -03:00
2011-05-23 09:12:26 -07:00
2011-08-15 18:31:38 -07:00
2011-08-15 18:31:38 -07:00
2011-04-29 14:03:01 -07:00
2011-03-31 11:26:23 -03:00
2011-05-05 14:59:02 -07:00
2011-04-29 14:03:01 -07:00
2011-03-31 11:26:23 -03:00
2011-07-10 07:07:40 -07:00
2011-05-31 19:28:32 -07:00
2011-05-12 16:59:57 -04:00
2011-05-22 21:01:19 -04:00
2011-08-15 18:31:38 -07:00
2011-04-06 14:35:23 -07:00
2011-04-29 14:03:01 -07:00
2011-05-22 21:41:57 -07:00
2011-03-31 11:26:23 -03:00
2011-04-29 14:01:30 -07:00
2011-06-16 23:43:55 -04:00
2011-06-29 05:48:41 -07:00
2011-03-31 11:26:23 -03:00
2011-06-04 06:33:24 +09:00
2011-07-18 11:48:28 -07:00
2011-05-03 20:41:42 -07:00
2011-04-29 14:03:01 -07:00
2011-04-12 14:50:43 -07:00
2011-04-12 14:50:43 -07:00
2011-06-20 14:02:07 -07:00
2011-05-22 21:41:57 -07:00
2011-03-31 11:26:23 -03:00
2011-07-15 08:10:33 -07:00
2011-08-15 18:31:39 -07:00
2011-10-03 11:39:46 -07:00
2011-05-23 09:12:26 -07:00
2011-04-12 11:21:30 -07:00
2011-05-22 21:41:57 -07:00
2011-04-29 14:03:01 -07:00
2011-04-26 10:22:59 +02:00
2011-04-06 06:19:38 -07:00
2011-07-05 23:41:17 -07:00
2011-08-15 18:31:39 -07:00
2011-04-12 14:56:00 -07:00
2011-05-22 21:41:57 -07:00
2011-04-11 13:44:25 -07:00
2011-04-29 14:03:01 -07:00
2011-04-12 14:50:42 -07:00
2011-07-11 20:27:57 -07:00
2011-06-05 17:02:51 -07:00
2011-03-31 11:26:23 -03:00
2011-04-29 14:03:01 -07:00
2011-05-31 19:28:32 -07:00
2011-04-13 17:13:00 -07:00
2011-03-30 21:39:22 -07:00
2011-03-31 11:26:23 -03:00
2011-04-29 14:03:01 -07:00
2011-04-15 15:50:39 -07:00
2011-04-15 15:50:39 -07:00
2011-04-01 20:10:08 -07:00
2011-03-31 11:26:23 -03:00
2011-04-29 14:03:01 -07:00
2011-03-18 10:37:40 -07:00
2011-05-20 13:43:21 -07:00
2011-03-31 11:26:23 -03:00
2011-05-22 21:41:57 -07:00
2011-04-29 14:03:01 -07:00
2011-03-31 11:26:23 -03:00
2011-06-03 00:01:30 -07:00
2011-05-19 18:00:00 -04:00
2011-03-31 11:26:23 -03:00
2011-08-15 18:31:38 -07:00
2011-04-29 14:03:01 -07:00
2011-05-23 09:12:26 -07:00
2011-03-31 11:26:23 -03:00
2011-08-15 18:31:38 -07:00
2011-04-17 17:56:37 -07:00
2011-04-29 14:03:01 -07:00
2011-05-25 17:55:32 -04:00
2011-05-30 11:14:16 +09:30
2011-05-25 17:55:32 -04:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-05-12 16:59:57 -04:00