Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

wireless/rt2x00: don't use PREPARE_WORK in rt2800usb.c

PREPARE_[DELAYED_]WORK() are being phased out. They have few users
and a nasty surprise in terms of reentrancy guarantee as workqueue
considers work items to be different if they don't have the same work
function.

Update rt2800usb.c to use INIT_WORK() instead of PREPARE_WORK(). As
the work item isn't in active use during rt2800usb_probe_hw(), this
doesn't cause any behavior difference.

It would probably be best to route this with other related updates
through the workqueue tree.

Only compile tested.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Ivo van Doorn <IvDoorn@gmail.com>
Cc: Gertjan van Wingerde <gwingerde@gmail.com>
Cc: Helmut Schaa <helmut.schaa@googlemail.com>
Cc: linux-wireless@vger.kernel.org

Tejun Heo d82fead4 5078585a

+1 -1
+1 -1
drivers/net/wireless/rt2x00/rt2800usb.c
··· 764 764 /* 765 765 * Overwrite TX done handler 766 766 */ 767 - PREPARE_WORK(&rt2x00dev->txdone_work, rt2800usb_work_txdone); 767 + INIT_WORK(&rt2x00dev->txdone_work, rt2800usb_work_txdone); 768 768 769 769 return 0; 770 770 }