• Sean Christopherson's avatar
    KVM: selftests: Treat %llx like %lx when formatting guest printf · b15e7490
    Sean Christopherson authored
    Treat %ll* formats the same as %l* formats when processing printfs from
    the guest so that using e.g. %llx instead of %lx generates the expected
    output.  Ideally, unexpected formats would generate compile-time warnings
    or errors, but it's not at all obvious how to actually accomplish that.
    
    Alternatively, guest_vsnprintf() could assert on an unexpected format,
    but since the vast majority of printfs are for failed guest asserts,
    getting *something* printed is better than nothing.
    
    E.g. before
    
     ==== Test Assertion Failure ====
      x86_64/private_mem_conversions_test.c:265: mem[i] == 0
      pid=4286 tid=4290 errno=4 - Interrupted system call
         1	0x0000000000401c74: __test_mem_conversions at private_mem_conversions_test.c:336
         2	0x00007f3aae6076da: ?? ??:0
         3	0x00007f3aae32161e: ?? ??:0
      Expected 0x0 at offset 0 (gpa 0x%lx), got 0x0
    
    and after
    
     ==== Test Assertion Failure ====
      x86_64/private_mem_conversions_test.c:265: mem[i] == 0
      pid=5664 tid=5668 errno=4 - Interrupted system call
         1	0x0000000000401c74: __test_mem_conversions at private_mem_conversions_test.c:336
         2	0x00007fbe180076da: ?? ??:0
         3	0x00007fbe17d2161e: ?? ??:0
      Expected 0x0 at offset 0 (gpa 0x100000000), got 0xcc
    
    Fixes: e5119382 ("KVM: selftests: Add guest_snprintf() to KVM selftests")
    Cc: Aaron Lewis <aaronlewis@google.com>
    Link: https://lore.kernel.org/r/20230921171641.3641776-1-seanjc@google.comSigned-off-by: default avatarSean Christopherson <seanjc@google.com>
    b15e7490
guest_sprintf.c 6.25 KB