All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915/gvt: Fix superfluous newline in GVT_DISPLAY_READY env var
@ 2017-02-20 13:58 Takashi Iwai
  2017-02-20 14:52 ` ✓ Fi.CI.BAT: success for " Patchwork
  2017-02-21  2:49 ` [PATCH] " Zhenyu Wang
  0 siblings, 2 replies; 3+ messages in thread
From: Takashi Iwai @ 2017-02-20 13:58 UTC (permalink / raw)
  To: intel-gvt-dev; +Cc: Richard Biener, intel-gfx, Daniel Vetter

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@suse.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 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-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* ✓ Fi.CI.BAT: success for drm/i915/gvt: Fix superfluous newline in GVT_DISPLAY_READY env var
  2017-02-20 13:58 [PATCH] drm/i915/gvt: Fix superfluous newline in GVT_DISPLAY_READY env var Takashi Iwai
@ 2017-02-20 14:52 ` Patchwork
  2017-02-21  2:49 ` [PATCH] " Zhenyu Wang
  1 sibling, 0 replies; 3+ messages in thread
From: Patchwork @ 2017-02-20 14:52 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/gvt: Fix superfluous newline in GVT_DISPLAY_READY env var
URL   : https://patchwork.freedesktop.org/series/19952/
State : success

== Summary ==

Series 19952v1 drm/i915/gvt: Fix superfluous newline in GVT_DISPLAY_READY env var
https://patchwork.freedesktop.org/api/1.0/series/19952/revisions/1/mbox/

fi-bdw-5557u     total:252  pass:241  dwarn:0   dfail:0   fail:0   skip:11 
fi-bsw-n3050     total:252  pass:213  dwarn:0   dfail:0   fail:0   skip:39 
fi-bxt-j4205     total:252  pass:233  dwarn:0   dfail:0   fail:0   skip:19 
fi-bxt-t5700     total:83   pass:70   dwarn:0   dfail:0   fail:0   skip:12 
fi-byt-j1900     total:252  pass:225  dwarn:0   dfail:0   fail:0   skip:27 
fi-byt-n2820     total:252  pass:221  dwarn:0   dfail:0   fail:0   skip:31 
fi-hsw-4770      total:252  pass:236  dwarn:0   dfail:0   fail:0   skip:16 
fi-hsw-4770r     total:252  pass:236  dwarn:0   dfail:0   fail:0   skip:16 
fi-ilk-650       total:252  pass:202  dwarn:0   dfail:0   fail:0   skip:50 
fi-ivb-3520m     total:252  pass:234  dwarn:0   dfail:0   fail:0   skip:18 
fi-ivb-3770      total:252  pass:234  dwarn:0   dfail:0   fail:0   skip:18 
fi-kbl-7500u     total:252  pass:234  dwarn:0   dfail:0   fail:0   skip:18 
fi-skl-6260u     total:252  pass:242  dwarn:0   dfail:0   fail:0   skip:10 
fi-skl-6700hq    total:252  pass:235  dwarn:0   dfail:0   fail:0   skip:17 
fi-skl-6700k     total:252  pass:230  dwarn:4   dfail:0   fail:0   skip:18 
fi-skl-6770hq    total:252  pass:242  dwarn:0   dfail:0   fail:0   skip:10 
fi-snb-2520m     total:252  pass:224  dwarn:0   dfail:0   fail:0   skip:28 
fi-snb-2600      total:252  pass:223  dwarn:0   dfail:0   fail:0   skip:29 

45a2990174f3cf4dfa5d07b204d17b11d6a7410a drm-tip: 2017y-02m-20d-12h-54m-53s UTC integration manifest
5435d46 drm/i915/gvt: Fix superfluous newline in GVT_DISPLAY_READY env var

== Logs ==

For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_3900/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm/i915/gvt: Fix superfluous newline in GVT_DISPLAY_READY env var
  2017-02-20 13:58 [PATCH] drm/i915/gvt: Fix superfluous newline in GVT_DISPLAY_READY env var Takashi Iwai
  2017-02-20 14:52 ` ✓ Fi.CI.BAT: success for " Patchwork
@ 2017-02-21  2:49 ` Zhenyu Wang
  1 sibling, 0 replies; 3+ messages in thread
From: Zhenyu Wang @ 2017-02-21  2:49 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: Richard Biener, intel-gfx, Daniel Vetter, intel-gvt-dev


[-- Attachment #1.1: Type: text/plain, Size: 2988 bytes --]

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@suse.com>
> Cc: <stable@vger.kernel.org>
> Signed-off-by: Takashi Iwai <tiwai@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@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

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 163 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-02-21  2:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-20 13:58 [PATCH] drm/i915/gvt: Fix superfluous newline in GVT_DISPLAY_READY env var Takashi Iwai
2017-02-20 14:52 ` ✓ Fi.CI.BAT: success for " Patchwork
2017-02-21  2:49 ` [PATCH] " Zhenyu Wang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.