workqueue: move init worker private code to the caller