• Takashi Iwai's avatar
    drm/i915/gvt: Fix superfluous newline in GVT_DISPLAY_READY env var · 81383a00
    Takashi Iwai authored
    commit d8e9b2b9 upstream.
    
    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: 04d348ae ("drm/i915/gvt: vGPU display virtualization")
    Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1025903Reported-by: default avatarRichard Biener <rguenther@suse.com>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    Signed-off-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    81383a00
handlers.c 83.6 KB