Prasanna S. Panchamukhi
d11a6e4495
wimax i2400m: fix race condition while accessing rx_roq by using kref count
...
This patch fixes the race condition when one thread tries to destroy
the memory allocated for rx_roq, while another thread still happen
to access rx_roq.
Such a race condition occurs when i2400m-sdio kernel module gets
unloaded, destroying the memory allocated for rx_roq while rx_roq
is accessed by i2400m_rx_edata(), as explained below:
$thread1 $thread2
$ void i2400m_rx_edata() $
$Access rx_roq[] $
$roq = &i2400m->rx_roq[ro_cin] $
$ i2400m_roq_[reset/queue/update_ws] $
$ $ void i2400m_rx_release();
$ $kfree(rx->roq);
$ $rx->roq = NULL;
$Oops! rx_roq is NULL
This patch fixes the race condition using refcount approach.
Signed-off-by: Prasanna S. Panchamukhi <prasannax.s.panchamukhi@intel.com >
2010-05-11 14:08:23 -07:00
..
2010-04-16 16:08:07 -04:00
2010-04-06 10:55:33 -04:00
2010-04-20 16:37:13 -07:00
2010-03-30 22:02:32 +09:00
2010-04-09 10:05:33 -07:00
2010-04-09 11:50:29 -07:00
2010-05-10 09:34:04 +02:00
2010-02-26 13:58:08 +01:00
2010-04-20 09:21:19 -07:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-06 11:26:32 -08:00
2010-04-15 11:56:20 -07:00
2010-04-07 11:02:23 -07:00
2010-04-07 08:38:02 -07:00
2010-04-20 09:20:11 -07:00
2010-04-05 11:37:28 +09:00
2010-04-14 16:14:10 +02:00
2010-03-30 22:02:32 +09:00
2010-04-08 07:45:36 -07:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-04-11 14:53:53 -07:00
2010-04-15 11:49:55 -07:00
2010-04-22 16:12:48 -07:00
2010-03-30 22:02:32 +09:00
2010-04-14 21:43:56 +09:30
2010-04-07 08:38:03 -07:00
2010-03-30 22:02:32 +09:00
2010-04-11 14:53:53 -07:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-04-05 11:37:28 +09:00
2010-04-07 08:38:03 -07:00
2010-03-30 22:02:32 +09:00
2010-05-11 14:08:23 -07:00
2010-03-30 22:02:32 +09:00
2010-04-05 11:37:28 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-04-05 11:37:28 +09:00
2010-04-17 17:54:38 +02:00
2010-04-07 08:38:03 -07:00
2010-04-06 17:06:22 -04:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-04-07 08:38:05 -07:00
2010-04-11 14:53:53 -07:00
2010-03-30 22:02:32 +09:00
2010-04-20 16:37:13 -07:00
2010-04-17 17:53:32 +02:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-05-05 16:14:16 -04:00
2010-04-11 14:53:53 -07:00
2010-03-30 22:02:32 +09:00
2010-04-07 08:38:03 -07:00
2010-03-30 22:02:32 +09:00
2010-04-05 11:37:28 +09:00
2010-03-30 22:02:32 +09:00
2010-04-14 22:52:46 -07:00
2010-04-07 08:38:04 -07:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-04-16 12:26:32 +00:00
2010-03-30 22:02:32 +09:00
2010-02-15 15:38:10 +01:00
2010-03-06 11:26:28 -08:00
2010-03-08 20:21:04 +00:00