Zekun Shen
e89df5c432
net: alx: fix race condition in alx_remove
...
There is a race condition exist during termination. The path is
alx_stop and then alx_remove. An alx_schedule_link_check could be called
before alx_stop by interrupt handler and invoke alx_link_check later.
Alx_stop frees the napis, and alx_remove cancels any pending works.
If any of the work is scheduled before termination and invoked before
alx_remove, a null-ptr-deref occurs because both expect alx->napis[i].
This patch fix the race condition by moving cancel_work_sync functions
before alx_free_napis inside alx_stop. Because interrupt handler can call
alx_schedule_link_check again, alx_free_irq is moved before
cancel_work_sync calls too.
Signed-off-by: Zekun Shen <bruceshenzk@gmail.com >
Signed-off-by: David S. Miller <davem@davemloft.net >
2020-06-15 13:20:14 -07:00
..
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-02-24 11:24:47 -08:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-15 13:20:14 -07:00
2020-01-22 21:16:32 +01:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-15 13:10:34 -07:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-13 16:27:13 -07:00
2020-06-14 01:57:21 +09:00
2020-01-09 12:13:43 -08:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-15 13:18:13 -07:00
2020-06-13 16:27:13 -07:00
2020-06-13 16:27:13 -07:00
2020-06-14 01:57:21 +09:00
2020-06-13 16:27:13 -07:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-05-27 14:54:31 -07:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-05-05 11:39:43 -07:00
2020-06-14 01:57:21 +09:00
2020-05-05 11:17:56 -07:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-11 18:26:19 -07:00
2020-06-15 13:05:50 -07:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-13 16:27:13 -07:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-06-15 13:02:03 -07:00
2020-06-14 01:57:21 +09:00
2020-06-14 01:57:21 +09:00
2020-04-20 12:18:13 -07:00
2020-03-03 17:54:55 -08:00
2020-01-28 16:02:33 -08:00
2020-03-03 17:54:55 -08:00
2020-03-14 21:13:54 -07:00
2020-06-14 01:57:21 +09:00
2020-06-09 09:39:13 -07:00
2020-01-28 16:02:33 -08:00
2020-05-06 14:24:06 -07:00