phylib: convert state_queue work to delayed_work
authorMarcin Slusarz <marcin.slusarz@gmail.com>
Fri, 13 Mar 2009 22:41:19 +0000 (15:41 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 13 Mar 2009 22:41:19 +0000 (15:41 -0700)
commita390d1f379cf821248b735f43d2e1147ebb8241d
tree8011cb8a5056055bedb4a9f4948929e2543a727d
parent34cd347cec6dba8075ceca06efd4fb0c6574cb75
phylib: convert state_queue work to delayed_work

It closes a race in phy_stop_machine when reprogramming of phy_timer
(from phy_state_machine) happens between del_timer_sync and cancel_work_sync.

Without this change it could lead to crash if phy_device would be freed after
phy_stop_machine (timer would fire and schedule freed work).

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Acked-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/phy.c
include/linux/phy.h