[PATCH] drm/i915/gvt: Fix superfluous newline in GVT_DISPLAY_READY env var

Zhenyu Wang zhenyuw at linux.intel.com
Tue Feb 21 02:49:25 UTC 2017


On 2017.02.20 14:58:25 +0100, Takashi Iwai wrote:
> send_display_send_uevent() sends two environment variable, and the
> first one GVT_DISPLAY_READY is set including a new line at the end of
> the string; that is obviously superfluous and wrong -- at least, it
> *looks* so when you only read the code.
> 
> However, it doesn't appear in the actual output by a (supposedly
> unexpected) trick.  The code uses snprintf() and truncates the string
> in size 20 bytes.  This makes the string as GVT_DISPLAY_READY=0 or
> ...=1 including the trailing NUL-letter.  That is, the '\n' found in
> the format string is always cut off as a result.
> 
> Although the code gives the correct result, it is confusing.  This
> patch addresses it, just removing the superfluous '\n' from the format
> string for avoiding further confusion.  If the argument "ready" were
> not a  bool, the size 20 should be corrected as well.  But it's a
> bool, so we can leave the magic number 20 as is for now.
> 
> FWIW, the bug was spotted by a new GCC7 warning:
>   drivers/gpu/drm/i915/gvt/handlers.c: In function 'pvinfo_mmio_write':
>   drivers/gpu/drm/i915/gvt/handlers.c:1042:34: error: 'snprintf' output truncated before the last format character [-Werror=format-truncation=]
>     snprintf(display_ready_str, 20, "GVT_DISPLAY_READY=%d\n", ready);
>                                     ^~~~~~~~~~~~~~~~~~~~~~~~
>   drivers/gpu/drm/i915/gvt/handlers.c:1042:2: note: 'snprintf' output 21 bytes into a destination of size 20
>     snprintf(display_ready_str, 20, "GVT_DISPLAY_READY=%d\n", ready);
>     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> Fixes: 04d348ae3f0a ("drm/i915/gvt: vGPU display virtualization")
> Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1025903
> Reported-by: Richard Biener <rguenther at suse.com>
> Cc: <stable at vger.kernel.org>
> Signed-off-by: Takashi Iwai <tiwai at suse.de>
> ---

Applied. Thanks!

>  drivers/gpu/drm/i915/gvt/handlers.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/gvt/handlers.c b/drivers/gpu/drm/i915/gvt/handlers.c
> index 1d450627ff65..845aa1511cbf 100644
> --- a/drivers/gpu/drm/i915/gvt/handlers.c
> +++ b/drivers/gpu/drm/i915/gvt/handlers.c
> @@ -1039,7 +1039,7 @@ static int send_display_ready_uevent(struct intel_vgpu *vgpu, int ready)
>  	char vmid_str[20];
>  	char display_ready_str[20];
>  
> -	snprintf(display_ready_str, 20, "GVT_DISPLAY_READY=%d\n", ready);
> +	snprintf(display_ready_str, 20, "GVT_DISPLAY_READY=%d", ready);
>  	env[0] = display_ready_str;
>  
>  	snprintf(vmid_str, 20, "VMID=%d", vgpu->id);
> -- 
> 2.11.1
> 
> _______________________________________________
> intel-gvt-dev mailing list
> intel-gvt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gvt-dev

-- 
Open Source Technology Center, Intel ltd.

$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 163 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gvt-dev/attachments/20170221/4491e7a7/attachment.sig>


More information about the intel-gvt-dev mailing list