Message ID | 20181026212300.5827-1-linux@rasmusvillemoes.dk |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Series | ptp: drop redundant kasprintf() to create worker name | expand |
On Fri, Oct 26, 2018 at 11:22:59PM +0200, Rasmus Villemoes wrote: > Building with -Wformat-nonliteral, gcc complains > > drivers/ptp/ptp_clock.c: In function ‘ptp_clock_register’: > drivers/ptp/ptp_clock.c:239:26: warning: format not a string literal and no format arguments [-Wformat-nonliteral] > worker_name : info->name); > > kthread_create_worker takes fmt+varargs to set the name of the > worker, and that happens with a vsnprintf() to a stack buffer (that is > then copied into task_comm). So there's no reason not to just pass > "ptp%d", ptp->index to kthread_create_worker() and avoid the > intermediate worker_name variable. Acked-by: Richard Cochran <richardcochran@gmail.com>
On Fri, Oct 26, 2018 at 10:22 PM, Rasmus Villemoes <linux@rasmusvillemoes.dk> wrote: > Building with -Wformat-nonliteral, gcc complains > > drivers/ptp/ptp_clock.c: In function ‘ptp_clock_register’: > drivers/ptp/ptp_clock.c:239:26: warning: format not a string literal and no format arguments [-Wformat-nonliteral] > worker_name : info->name); > > kthread_create_worker takes fmt+varargs to set the name of the > worker, and that happens with a vsnprintf() to a stack buffer (that is > then copied into task_comm). So there's no reason not to just pass > "ptp%d", ptp->index to kthread_create_worker() and avoid the > intermediate worker_name variable. > > Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Reviewed-by: Kees Cook <keescook@chromium.org> -Kees > --- > drivers/ptp/ptp_clock.c | 6 +----- > 1 file changed, 1 insertion(+), 5 deletions(-) > > diff --git a/drivers/ptp/ptp_clock.c b/drivers/ptp/ptp_clock.c > index 7eacc1c4b3b1..5419a89d300e 100644 > --- a/drivers/ptp/ptp_clock.c > +++ b/drivers/ptp/ptp_clock.c > @@ -232,12 +232,8 @@ struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info, > init_waitqueue_head(&ptp->tsev_wq); > > if (ptp->info->do_aux_work) { > - char *worker_name = kasprintf(GFP_KERNEL, "ptp%d", ptp->index); > - > kthread_init_delayed_work(&ptp->aux_work, ptp_aux_kworker); > - ptp->kworker = kthread_create_worker(0, worker_name ? > - worker_name : info->name); > - kfree(worker_name); > + ptp->kworker = kthread_create_worker(0, "ptp%d", ptp->index); > if (IS_ERR(ptp->kworker)) { > err = PTR_ERR(ptp->kworker); > pr_err("failed to create ptp aux_worker %d\n", err); > -- > 2.19.1.6.gbde171bbf5 >
From: Rasmus Villemoes <linux@rasmusvillemoes.dk> Date: Fri, 26 Oct 2018 23:22:59 +0200 > Building with -Wformat-nonliteral, gcc complains > > drivers/ptp/ptp_clock.c: In function ‘ptp_clock_register’: > drivers/ptp/ptp_clock.c:239:26: warning: format not a string literal and no format arguments [-Wformat-nonliteral] > worker_name : info->name); > > kthread_create_worker takes fmt+varargs to set the name of the > worker, and that happens with a vsnprintf() to a stack buffer (that is > then copied into task_comm). So there's no reason not to just pass > "ptp%d", ptp->index to kthread_create_worker() and avoid the > intermediate worker_name variable. > > Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Applied.
diff --git a/drivers/ptp/ptp_clock.c b/drivers/ptp/ptp_clock.c index 7eacc1c4b3b1..5419a89d300e 100644 --- a/drivers/ptp/ptp_clock.c +++ b/drivers/ptp/ptp_clock.c @@ -232,12 +232,8 @@ struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info, init_waitqueue_head(&ptp->tsev_wq); if (ptp->info->do_aux_work) { - char *worker_name = kasprintf(GFP_KERNEL, "ptp%d", ptp->index); - kthread_init_delayed_work(&ptp->aux_work, ptp_aux_kworker); - ptp->kworker = kthread_create_worker(0, worker_name ? - worker_name : info->name); - kfree(worker_name); + ptp->kworker = kthread_create_worker(0, "ptp%d", ptp->index); if (IS_ERR(ptp->kworker)) { err = PTR_ERR(ptp->kworker); pr_err("failed to create ptp aux_worker %d\n", err);
Building with -Wformat-nonliteral, gcc complains drivers/ptp/ptp_clock.c: In function ‘ptp_clock_register’: drivers/ptp/ptp_clock.c:239:26: warning: format not a string literal and no format arguments [-Wformat-nonliteral] worker_name : info->name); kthread_create_worker takes fmt+varargs to set the name of the worker, and that happens with a vsnprintf() to a stack buffer (that is then copied into task_comm). So there's no reason not to just pass "ptp%d", ptp->index to kthread_create_worker() and avoid the intermediate worker_name variable. Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> --- drivers/ptp/ptp_clock.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)