lkml.org 
[lkml]   [2017]   [Nov]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: [PATCH v2] checkpatch: Add a warning for log messages that don't end in a new line


On 27/11/17 02:25 AM, Joe Perches wrote:
> []
> diff -u -p a/lib/locking-selftest.c b/lib/locking-selftest.c
> --- a/lib/locking-selftest.c
> +++ b/lib/locking-selftest.c
> @@ -1186,7 +1186,7 @@ static void dotest(void (*testcase_fn)(v
>
> static inline void print_testname(const char *testname)
> {
> - printk("%33s:", testname);
> + printk("%33s:\n", testname);
> }

Coincidentally, the checkpatch script does not hit this false positive.
This because a pr_cont actually follows in a #define. It doesn't feel
right but checkpatch does do the correct thing on this one.

> diff -u -p a/lib/dynamic_debug.c b/lib/dynamic_debug.c
> --- a/lib/dynamic_debug.c
> +++ b/lib/dynamic_debug.c
> @@ -562,7 +562,8 @@ void __dynamic_pr_debug(struct _ddebug *
> vaf.fmt = fmt;
> vaf.va = &args;
>
> - printk(KERN_DEBUG "%s%pV", dynamic_emit_prefix(descriptor, buf), &vaf);
> + printk(KERN_DEBUG "%s%pV\n", dynamic_emit_prefix(descriptor, buf),
> + &vaf);
>
> va_end(args);
> }

This is a valid false positive that I also missed. However, it can
actually be very easily ignored by checking if the format string ends in
%pV. There were about 100 cases in my results that match this.

>
> diff -u -p a/drivers/tty/serial/ioc4_serial.c b/drivers/tty/serial/ioc4_serial.c
> --- a/drivers/tty/serial/ioc4_serial.c
> +++ b/drivers/tty/serial/ioc4_serial.c
> @@ -2858,8 +2858,7 @@ ioc4_serial_attach_one(struct ioc4_drive
> "sgi-ioc4serial", soft)) {
> control->ic_irq = idd->idd_pdev->irq;
> } else {
> - printk(KERN_WARNING
> - "%s : request_irq fails for IRQ 0x%x\n ",
> + printk(KERN_WARNING "%s : request_irq fails for IRQ 0x%x\n \n",
> __func__, idd->idd_pdev->irq);
> }
> ret = ioc4_attach_local(idd);
>
> []

This isn't an issue for the checkpatch script as it doesn't try to fix
it, it only warns that it is wrong (as it is actually wrong).


> diff -u -p a/drivers/isdn/gigaset/ev-layer.c b/drivers/isdn/gigaset/ev-layer.c
> --- a/drivers/isdn/gigaset/ev-layer.c
> +++ b/drivers/isdn/gigaset/ev-layer.c
> @@ -411,7 +411,7 @@ static void add_cid_event(struct cardsta
> unsigned next, tail;
> struct event_t *event;
>
> - gig_dbg(DEBUG_EVENT, "queueing event %d for cid %d", type, cid);
> + gig_dbg(DEBUG_EVENT, "queueing event %d for cid %d\n", type, cid);
>
> spin_lock_irqsave(&cs->ev_lock, flags);

This is why I elected to only look at printk, pr_xxx, and dev_xxx in v2
of my patch. So this is another false positive the checkpatch script
would not hit.


Logan

\
 
 \ /
  Last update: 2017-11-27 18:07    [W:0.758 / U:2.508 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site