Re: [PATCH] drm: Don't split up debug output

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Nov 17, 2013 at 10:25:02PM +0100, Daniel Vetter wrote:
> Otherwise we risk that the 2nd part of the line ends up on a line of
> it's own, which means a kernel dmesg line without a log level. This
> then upsets the dmesg checker in piglit.
> 
> Only really happens in some of the truly nasty igt testcases which
> race cache dropping (through debugfs) with other gem operations.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
> ---
>  drivers/gpu/drm/drm_stub.c | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
> index f53d5246979c..74e0357c1c38 100644
> --- a/drivers/gpu/drm/drm_stub.c
> +++ b/drivers/gpu/drm/drm_stub.c
> @@ -99,13 +99,19 @@ void drm_ut_debug_printk(unsigned int request_level,
>  			 const char *function_name,
>  			 const char *format, ...)
>  {
> +	struct va_format vaf;
>  	va_list args;
>  
>  	if (drm_debug & request_level) {
> -		if (function_name)
> -			printk(KERN_DEBUG "[%s:%s], ", prefix, function_name);
>  		va_start(args, format);
> -		vprintk(format, args);
> +		vaf.fmt = format;
> +		vaf.va = &args;
> +
> +		if (function_name)
> +			printk(KERN_DEBUG "[%s:%s], %pV", prefix,
> +			       function_name, &vaf);
> +		else
> +			printk(KERN_DEBUG "%pV", &vaf);
>  		va_end(args);
>  	}
>  }

According to Documentation/printk-formats.txt, usage of %pV is not
recommended unless the format string and va_list can be properly
verified for correctness.

I guess we leave it up to the compiler to do that verification using the
__printf() annotation, so I think it should be fine to use it here:

Reviewed-by: Thierry Reding <treding@xxxxxxxxxx>

Attachment: pgpXT8b2k6418.pgp
Description: PGP signature

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux