Give this patch a shot and I'll resend if it fixes the bug. Fixes: b188c57af2b5 ("workqueue: Split alloc_workqueue into internal function and lockdep init") Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> --- kernel/workqueue.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index bfeeefeee332..2fb93f3088f9 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -5623,12 +5623,10 @@ static void wq_adjust_max_active(struct workqueue_struct *wq) } while (activated); } -__printf(1, 4) static struct workqueue_struct *__alloc_workqueue(const char *fmt, unsigned int flags, - int max_active, ...) + int max_active, va_list args) { - va_list args; struct workqueue_struct *wq; size_t wq_size; int name_len; @@ -5660,10 +5658,7 @@ static struct workqueue_struct *__alloc_workqueue(const char *fmt, goto err_free_wq; } - va_start(args, max_active); name_len = vsnprintf(wq->name, sizeof(wq->name), fmt, args); - va_end(args); - if (name_len >= WQ_NAME_LEN) pr_warn_once("workqueue: name exceeds WQ_NAME_LEN. Truncating to: %s\n", wq->name); -- 2.43.0