1. 14 Oct, 2022 3 commits
    • Colin Ian King's avatar
      parisc: Fix spelling mistake "mis-match" -> "mismatch" in eisa driver · 34314cd6
      Colin Ian King authored
      There are several spelling mistakes in kernel error messages. Fix them.
      Signed-off-by: default avatarColin Ian King <colin.i.king@gmail.com>
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      34314cd6
    • Helge Deller's avatar
      parisc: Fix userspace graphics card breakage due to pgtable special bit · 70be49f2
      Helge Deller authored
      Commit df24e178 ("parisc: Add vDSO support") introduced the vDSO
      support, for which a _PAGE_SPECIAL page table flag was needed.  Since we
      wanted to keep every page table entry in 32-bits, this patch re-used the
      existing - but yet unused - _PAGE_DMB flag (which triggers a hardware break
      if a page is accessed) to store the special bit.
      
      But when graphics card memory is mmapped into userspace, the kernel uses
      vm_iomap_memory() which sets the the special flag. So, with the DMB bit
      set, every access to the graphics memory now triggered a hardware
      exception and segfaulted the userspace program.
      
      Fix this breakage by dropping the DMB bit when writing the page
      protection bits to the CPU TLB.
      
      In addition this patch adds a small optimization: if huge pages aren't
      configured (which is at least the case for 32-bit kernels), then the
      special bit is stored in the hpage (HUGE PAGE) bit instead. That way we
      can skip to reset the DMB bit.
      
      Fixes: df24e178 ("parisc: Add vDSO support")
      Cc: <stable@vger.kernel.org> # 5.18+
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      70be49f2
    • Helge Deller's avatar
      parisc: fbdev/stifb: Align graphics memory size to 4MB · aca7c13d
      Helge Deller authored
      Independend of the current graphics resolution, adjust the reported
      graphics card memory size to the next 4MB boundary.
      This fixes the fbtest program which expects a naturally aligned size.
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      Cc: <stable@vger.kernel.org>
      aca7c13d
  2. 11 Oct, 2022 2 commits
    • Helge Deller's avatar
      parisc: Convert PDC console to an early console · 027c3d34
      Helge Deller authored
      Rewrite the PDC console to become an early console.
      Beside the fact that now boot information is visible until another
      (text- or graphics) console takes over, this benefits as well machines
      with a yet-unsupported STI console and kgdb.
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      027c3d34
    • Helge Deller's avatar
      parisc: Reduce kernel size by packing alternative tables · b148766e
      Helge Deller authored
      The values stored in the length and condition fields of the alternative
      tables fit into 16 bits, so we can save 4 bytes per alternative table
      entry.
      Since a typical 32-bit kernel has more than 3000 entries this
      saves > 12k of storage on disc.
      
      bloat-o-meter shows a reduction of -0.01% by this change:
      Total: Before=10196505, After=10195529, chg -0.01%
      
      $ ls -la vmlinux vmlinux.before
      -rwxr-xr-x  14437324 vmlinux
      -rwxr-xr-x  14449512 vmlinux.before
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      b148766e
  3. 02 Oct, 2022 4 commits
  4. 01 Oct, 2022 9 commits
  5. 30 Sep, 2022 22 commits
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2022-10-01' of git://anongit.freedesktop.org/drm/drm · ffb4d94b
      Linus Torvalds authored
      Pull drm fixes from Daniel Vetter:
       "Some last minute amd fixes:
      
         - VCN 4.x and GC 11.x fixes, mostly around fw"
      
      * tag 'drm-fixes-2022-10-01' of git://anongit.freedesktop.org/drm/drm:
        drm/amdgpu/gfx11: switch to amdgpu_gfx_rlc_init_microcode
        drm/amdgpu: add helper to init rlc firmware
        drm/amdgpu: add helper to init rlc fw in header v2_4
        drm/amdgpu: add helper to init rlc fw in header v2_3
        drm/amdgpu: add helper to init rlc fw in header v2_2
        drm/amdgpu: add helper to init rlc fw in header v2_1
        drm/amdgpu: add helper to init rlc fw in header v2_0
        drm/amdgpu: save rlcv/rlcp ucode version in amdgpu_gfx
        drm/amdgpu: Enable sram on vcn_4_0_2
        drm/amdgpu: Enable VCN DPG for GC11_0_1
      ffb4d94b
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · e5fa173f
      Linus Torvalds authored
      Pull clk driver fixes from Stephen Boyd:
       "Here's the last batch of clk driver fixes for this release.
      
        These patches fix serious problems, for example, i.MX has an issue
        where changing the NAND clk frequency hangs the system. On Allwinner
        H6 the GPU is being overclocked which could lead to long term hardware
        damage.
      
        And finally on some Broadcom SoCs the serial console stopped working
        because the clk tree hierarchy description got broken by an
        inadvertant DT node name change. That's fixed by using
        'clock-output-names' to generate a stable and unique name for clks so
        the framework can properly link things up.
      
        There's also a couple build fixes in here. One to fix CONFIG_OF=n
        builds and one to avoid an array out of bounds bug that happens during
        clk registration on microchip. I hope that KASAN would have found that
        OOB problem, but probably KASAN wasn't attempted. Instead LLVM/clang
        compilation caused an oops, while GCC didn't"
      
      * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
        clk: imx93: drop of_match_ptr
        clk: iproc: Do not rely on node name for correct PLL setup
        clk: sunxi-ng: h6: Fix default PLL GPU rate
        clk: imx: imx6sx: remove the SET_RATE_PARENT flag for QSPI clocks
        clk: microchip: mpfs: make the rtc's ahb clock critical
        clk: microchip: mpfs: fix clk_cfg array bounds violation
        clk: ingenic-tcu: Properly enable registers before accessing timers
      e5fa173f
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v6.0-2022-09-29' of... · c816f2e9
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v6.0-2022-09-29' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tools fixes from Arnaldo Carvalho de Melo:
      
       - Fail the 'perf test record' entry on error, fixing a regression where
         just setup stuff like allocating memory and not the actual things
         being tested failed.
      
       - Fixup disabling of -Wdeprecated-declarations for the python scripting
         engine, the previous attempt had a brown paper bag thinko.
      
       - Fix branch stack sampling test to include sanity check for branch
         filter on PowerPC.
      
       - Update is_ignored_symbol function to match the kernel ignored list,
         fixing running the 'perf test' entry that compares resolving symbols
         from kallsyms to resolving from vmlinux.
      
       - Augment the data source type with ARM's neoverse_spe list, the
         previous code was limited in its search resolving the data source.
      
       - Fix some clang 5 variable set but unused cases.
      
       - Get a perf cgroup more portably in BPF as the
         __builtin_preserve_enum_value builtin is not available in older
         versions of clang. In those cases we can forgo BPF's CO-RE (Compile
         Once, Run Everywhere).
      
       - More Fixes for Intel's hybrid CPU model.
      
      * tag 'perf-tools-fixes-for-v6.0-2022-09-29' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
        perf build: Fixup disabling of -Wdeprecated-declarations for the python scripting engine
        perf tests mmap-basic: Remove unused variable to address clang 15 warning
        perf parse-events: Ignore clang 15 warning about variable set but unused in bison produced code
        perf tests record: Fail the test if the 'errs' counter is not zero
        perf test: Fix test case 87 ("perf record tests") for hybrid systems
        perf arm-spe: augment the data source type with neoverse_spe list
        perf tests vmlinux-kallsyms: Update is_ignored_symbol function to match the kernel ignored list
        perf tests powerpc: Fix branch stack sampling test to include sanity check for branch filter
        perf parse-events: Remove "not supported" hybrid cache events
        perf print-events: Fix "perf list" can not display the PMU prefix for some hybrid cache events
        perf tools: Get a perf cgroup more portably in BPF
      c816f2e9
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.0' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 920541bb
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
       "A small fix to the reported set of supported CPUID bits, and selftests
        fixes:
      
         - Skip tests that require EPT when it is not available
      
         - Do not hang when a test fails with an empty stack trace
      
         - avoid spurious failure when running access_tracking_perf_test in a
           KVM guest
      
         - work around GCC's tendency to optimize loops into mem*() functions,
           which breaks because the guest code in selftests cannot call into
           PLTs
      
         - fix -Warray-bounds error in fix_hypercall_test"
      
      * tag 'for-linus-6.0' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: selftests: Compare insn opcodes directly in fix_hypercall_test
        KVM: selftests: Implement memcmp(), memcpy(), and memset() for guest use
        KVM: x86: Hide IA32_PLATFORM_DCA_CAP[31:0] from the guest
        KVM: selftests: Gracefully handle empty stack traces
        KVM: selftests: replace assertion with warning in access_tracking_perf_test
        KVM: selftests: Skip tests that require EPT when it is not available
      920541bb
    • Daniel Vetter's avatar
      Merge tag 'amd-drm-fixes-6.0-2022-09-30-1' of... · 414208e4
      Daniel Vetter authored
      Merge tag 'amd-drm-fixes-6.0-2022-09-30-1' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
      
      amd-drm-fixes-6.0-2022-09-30-1:
      
      amdgpu:
      - VCN 4.x fixes
      - RLC fixes for GC 11.x
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220930210454.542719-1-alexander.deucher@amd.com
      414208e4
    • Hawking Zhang's avatar
      drm/amdgpu/gfx11: switch to amdgpu_gfx_rlc_init_microcode · 0fd85e89
      Hawking Zhang authored
      switch to common helper to initialize rlc firmware
      for gfx11
      Signed-off-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
      Acked-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      0fd85e89
    • Hawking Zhang's avatar
      drm/amdgpu: add helper to init rlc firmware · 04fa38cc
      Hawking Zhang authored
      To initialzie rlc firmware according to rlc
      firmware header version
      
      v2: squash in backwards compat fix
      Signed-off-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
      Acked-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      04fa38cc
    • Hawking Zhang's avatar
      drm/amdgpu: add helper to init rlc fw in header v2_4 · b33139ee
      Hawking Zhang authored
      To initialize rlc firmware in header v2_4
      Signed-off-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
      Acked-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      b33139ee
    • Hawking Zhang's avatar
      drm/amdgpu: add helper to init rlc fw in header v2_3 · c1c3f41f
      Hawking Zhang authored
      To initialize rlc firmware in header v2_3
      Signed-off-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
      Acked-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      c1c3f41f
    • Hawking Zhang's avatar
      drm/amdgpu: add helper to init rlc fw in header v2_2 · bcecb652
      Hawking Zhang authored
      To initialize rlc firmware in header v2_2
      Signed-off-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
      Acked-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      bcecb652
    • Hawking Zhang's avatar
      drm/amdgpu: add helper to init rlc fw in header v2_1 · 90df1512
      Hawking Zhang authored
      To initialize rlc firmware in header v2_1
      Signed-off-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
      Acked-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      90df1512
    • Hawking Zhang's avatar
      drm/amdgpu: add helper to init rlc fw in header v2_0 · 2f3f9586
      Hawking Zhang authored
      To initialize rlc firmware in header v2_0
      Signed-off-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
      Acked-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      2f3f9586
    • Hawking Zhang's avatar
      drm/amdgpu: save rlcv/rlcp ucode version in amdgpu_gfx · af81a920
      Hawking Zhang authored
      cache rlcv/rlcvp ucode version info in amdgpu_gfx
      structure
      Signed-off-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
      Reviewed-by: default avatarLikun Gao <Likun.Gao@amd.com>
      Reviewed-by: default avatarFeifei Xu <Feifei.Xu@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      af81a920
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 70575e77
      Linus Torvalds authored
      Pull virtio fixes from Michael Tsirkin:
       "Some last minute fixes.
      
        The virtio-blk one is the most important one since it was actually
        seen in the field, but the rest of them are small and clearly safe,
        everything here has been in next for a while"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        vdpa/mlx5: Fix MQ to support non power of two num queues
        vduse: prevent uninitialized memory accesses
        virtio-blk: Fix WARN_ON_ONCE in virtio_queue_rq()
        virtio_test: fixup for vq reset
        virtio-crypto: fix memory-leak
        vdpa/ifcvf: fix the calculation of queuepair
      70575e77
    • Linus Torvalds's avatar
      Merge tag 'block-6.0-2022-09-29' of git://git.kernel.dk/linux · 7bc6e90d
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "A single NVMe pull request via Christoph with a few fixes that should
        go into the 6.0 release:
      
         - Fix IOC_PR_CLEAR and IOC_PR_RELEASE ioctls for nvme devices
           (Michael Kelley)
      
         - Disable Write Zeroes on Phison E3C/E4C (Tina Hsu)"
      
      * tag 'block-6.0-2022-09-29' of git://git.kernel.dk/linux:
        nvme-pci: disable Write Zeroes on Phison E3C/E4C
        nvme: Fix IOC_PR_CLEAR and IOC_PR_RELEASE ioctls for nvme devices
      7bc6e90d
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.0-2022-09-29' of git://git.kernel.dk/linux · a0debc4c
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "Two fixes that should go into 6.0:
      
         - Tweak the single issuer logic to register the task at creation,
           rather than at first submit. SINGLE_ISSUER was added for 6.0, and
           after some discussion on this, we decided to make it a bit stricter
           while it's still possible to do so (Dylan).
      
         - Stefan from Samba had some doubts on the level triggered poll that
           was added for this release. Rather than attempt to mess around with
           it now, just do the quick one-liner to disable it for release and
           we have time to discuss and change it for 6.1 instead (me)"
      
      * tag 'io_uring-6.0-2022-09-29' of git://git.kernel.dk/linux:
        io_uring/poll: disable level triggered poll
        io_uring: register single issuer task at creation
      a0debc4c
    • Linus Torvalds's avatar
      Merge tag 'pstore-v6.0-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · d649d2c4
      Linus Torvalds authored
      Pull pstore revert from Kees Cook:
       "A misbehavior with some compression backends in pstore was just
        discovered due to the recent crypto acomp migration.
      
        Since we're so close to release, it seems better to just simply revert
        it, and we can figure out what's going on without leaving it broken
        for a release.
      
         - Revert crypto acomp migration (Guilherme G. Piccoli)"
      
      * tag 'pstore-v6.0-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        Revert "pstore: migrate to crypto acomp interface"
      d649d2c4
    • Linus Torvalds's avatar
      Merge tag 'gpio-fixes-for-v6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · 89e10b86
      Linus Torvalds authored
      Pull gpio fixes from Bartosz Golaszewski:
       "One more fix for the upcoming release:
      
         - fix the check for pwm support on non-A8K platforms in gpio-mvebu"
      
      * tag 'gpio-fixes-for-v6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        gpio: mvebu: Fix check for pwm support on non-A8K platforms
      89e10b86
    • Guilherme G. Piccoli's avatar
      Revert "pstore: migrate to crypto acomp interface" · 40158dbf
      Guilherme G. Piccoli authored
      This reverts commit e4f0a7ec.
      
      When using this new interface, both efi_pstore and ramoops
      backends are unable to properly decompress dmesg if using
      zstd, lz4 and lzo algorithms (and maybe more). It does succeed
      with deflate though.
      
      The message observed in the kernel log is:
      
      [2.328828] pstore: crypto_acomp_decompress failed, ret = -22!
      
      The pstore infrastructure is able to collect the dmesg with
      both backends tested, but since decompression fails it's
      unreadable. With this revert everything is back to normal.
      
      Fixes: e4f0a7ec ("pstore: migrate to crypto acomp interface")
      Cc: Ard Biesheuvel <ardb@kernel.org>
      Signed-off-by: default avatarGuilherme G. Piccoli <gpiccoli@igalia.com>
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Link: https://lore.kernel.org/r/20220929215515.276486-1-gpiccoli@igalia.com
      40158dbf
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2022-09-30-1' of git://anongit.freedesktop.org/drm/drm · 5a773869
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Last set of fixes for 6.0 hopefully - minor bridge fixes, i915 fixes,
        and a bunch of amdgpu fixes for new IP blocks, along with a couple of
        regression fixes. Should be all set for merge window next week.
      
        amdgpu:
         - GC 11.x fixes
         - SMU 13.x fixes
         - DCN 3.1.4 fixes
         - DCN 3.2.x fixes
         - GC 9.x fix
         - Fence fix
         - SR-IOV supend/resume fix
         - PSR regression fix
      
        i915:
         - Restrict forced preemption to the active context
         - Restrict perf_limit_reasons to the supported platforms - gen11+
      
        bridge:
         - analogix: Revert earlier suspend fix
         - lt8912b: Fix corrupt display output"
      
      * tag 'drm-fixes-2022-09-30-1' of git://anongit.freedesktop.org/drm/drm: (26 commits)
        drm/amd/display: Prevent OTG shutdown during PSR SU
        drm/i915/gt: Perf_limit_reasons are only available for Gen11+
        drm/amdgpu: Add amdgpu suspend-resume code path under SRIOV
        drm/amdgpu: Remove fence_process in count_emitted
        drm/amdgpu: Correct the position in patch_cond_exec
        drm/amd/display: fill in clock values when DPM is not enabled
        drm/amd/display: Avoid unnecessary pixel rate divider programming
        drm/amd/display: Remove assert for odm transition case
        drm/amd/display: Fix typo in get_pixel_rate_div
        drm/amd/display: Fix audio on display after unplugging another
        drm/amd/display: Add explicit FIFO disable for DP blank
        drm/amd/display: Wrap OTG disable workaround with FIFO control
        drm/amd/display: Do DIO FIFO enable after DP video stream enable
        drm/amd/display: Update DCN32 to use new SR latencies
        drm/amd/display: Avoid avoid unnecessary pixel rate divider programming
        drm/amdkfd: fix dropped interrupt in kfd_int_process_v11
        drm/amdgpu: pass queue size and is_aql_queue to MES
        drm/amdkfd: fix MQD init for GFX11 in init_mqd
        drm/amd/pm: use adverse selection for dpm features unsupported by driver
        drm/amd/pm: enable gfxoff feature for SMU 13.0.0
        ...
      5a773869
    • Sean Christopherson's avatar
      KVM: selftests: Compare insn opcodes directly in fix_hypercall_test · 39426507
      Sean Christopherson authored
      Directly compare the expected versus observed hypercall instructions when
      verifying that KVM patched in the native hypercall (FIX_HYPERCALL_INSN
      quirk enabled).  gcc rightly complains that doing a 4-byte memcpy() with
      an "unsigned char" as the source generates an out-of-bounds accesses.
      
      Alternatively, "exp" and "obs" could be declared as 3-byte arrays, but
      there's no known reason to copy locally instead of comparing directly.
      
      In function ‘assert_hypercall_insn’,
          inlined from ‘guest_main’ at x86_64/fix_hypercall_test.c:91:2:
      x86_64/fix_hypercall_test.c:63:9: error: array subscript ‘unsigned int[0]’
       is partly outside array bounds of ‘unsigned char[1]’ [-Werror=array-bounds]
         63 |         memcpy(&exp, exp_insn, sizeof(exp));
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      x86_64/fix_hypercall_test.c: In function ‘guest_main’:
      x86_64/fix_hypercall_test.c:42:22: note: object ‘vmx_hypercall_insn’ of size 1
         42 | extern unsigned char vmx_hypercall_insn;
            |                      ^~~~~~~~~~~~~~~~~~
      x86_64/fix_hypercall_test.c:25:22: note: object ‘svm_hypercall_insn’ of size 1
         25 | extern unsigned char svm_hypercall_insn;
            |                      ^~~~~~~~~~~~~~~~~~
      In function ‘assert_hypercall_insn’,
          inlined from ‘guest_main’ at x86_64/fix_hypercall_test.c:91:2:
      x86_64/fix_hypercall_test.c:64:9: error: array subscript ‘unsigned int[0]’
       is partly outside array bounds of ‘unsigned char[1]’ [-Werror=array-bounds]
         64 |         memcpy(&obs, obs_insn, sizeof(obs));
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      x86_64/fix_hypercall_test.c: In function ‘guest_main’:
      x86_64/fix_hypercall_test.c:25:22: note: object ‘svm_hypercall_insn’ of size 1
         25 | extern unsigned char svm_hypercall_insn;
            |                      ^~~~~~~~~~~~~~~~~~
      x86_64/fix_hypercall_test.c:42:22: note: object ‘vmx_hypercall_insn’ of size 1
         42 | extern unsigned char vmx_hypercall_insn;
            |                      ^~~~~~~~~~~~~~~~~~
      cc1: all warnings being treated as errors
      make: *** [../lib.mk:135: tools/testing/selftests/kvm/x86_64/fix_hypercall_test] Error 1
      
      Fixes: 6c2fa8b2 ("selftests: KVM: Test KVM_X86_QUIRK_FIX_HYPERCALL_INSN")
      Cc: Oliver Upton <oliver.upton@linux.dev>
      Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
      Reviewed-by: default avatarOliver Upton <oliver.upton@linux.dev>
      Message-Id: <20220928233652.783504-3-seanjc@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      39426507
    • Sean Christopherson's avatar
      KVM: selftests: Implement memcmp(), memcpy(), and memset() for guest use · 6b6f7148
      Sean Christopherson authored
      Implement memcmp(), memcpy(), and memset() to override the compiler's
      built-in versions in order to guarantee that the compiler won't generate
      out-of-line calls to external functions via the PLT.  This allows the
      helpers to be safely used in guest code, as KVM selftests don't support
      dynamic loading of guest code.
      
      Steal the implementations from the kernel's generic versions, sans the
      optimizations in memcmp() for unaligned accesses.
      
      Put the utilities in a separate compilation unit and build with
      -ffreestanding to fudge around a gcc "feature" where it will optimize
      memset(), memcpy(), etc... by generating a recursive call.  I.e. the
      compiler optimizes itself into infinite recursion.  Alternatively, the
      individual functions could be tagged with
      optimize("no-tree-loop-distribute-patterns"), but using "optimize" for
      anything but debug is discouraged, and Linus NAK'd the use of the flag
      in the kernel proper[*].
      
      https://lore.kernel.org/lkml/CAHk-=wik-oXnUpfZ6Hw37uLykc-_P0Apyn2XuX-odh-3Nzop8w@mail.gmail.com
      
      Cc: Andrew Jones <andrew.jones@linux.dev>
      Cc: Anup Patel <anup@brainfault.org>
      Cc: Atish Patra <atishp@atishpatra.org>
      Cc: Christian Borntraeger <borntraeger@linux.ibm.com>
      Cc: Janosch Frank <frankja@linux.ibm.com>
      Cc: Claudio Imbrenda <imbrenda@linux.ibm.com>
      Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
      Message-Id: <20220928233652.783504-2-seanjc@google.com>
      Reviewed-by: default avatarAndrew Jones <andrew.jones@linux.dev>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      6b6f7148