]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests/vsock: fix vsock_test path shadowing in nested VMs
authorBobby Eshleman <bobbyeshleman@meta.com>
Tue, 17 Mar 2026 22:09:36 +0000 (15:09 -0700)
committerJakub Kicinski <kuba@kernel.org>
Sat, 21 Mar 2026 01:34:48 +0000 (18:34 -0700)
The /root mount introduced for nested VM support shadows any host paths
under /root. This breaks systems where the outer VM runs as root and the
vsock_test binary path is something like:

/root/linux/tools/testing/selftests/vsock/vsock_test

Fix this by copying vsock_test into the temporary home directory that
gets mounted as /root in the guest, and using a relative path to invoke
it.

Signed-off-by: Bobby Eshleman <bobbyeshleman@meta.com>
Link: https://patch.msgid.link/20260317-vsock-vmtest-nested-fixes-v2-2-0b3f53b80a0f@meta.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/vsock/vmtest.sh

index c8d5cb66bf5f500c7e0dbeddfd08d345a9aa1b19..d97913a6bdc70179ea554efd048c5651134c9e56 100755 (executable)
@@ -393,6 +393,7 @@ handle_build() {
 setup_home() {
        mkdir -p "$(dirname "${SSH_KEY_PATH}")"
        ssh-keygen -t ed25519 -f "${SSH_KEY_PATH}" -N "" -q
+       cp "${VSOCK_TEST}" "${TEST_HOME}"/vsock_test
 }
 
 create_pidfile() {
@@ -620,7 +621,7 @@ vm_vsock_test() {
        # log output and use pipefail to respect vsock_test errors
        set -o pipefail
        if [[ "${host}" != server ]]; then
-               vm_ssh "${ns}" -- "${VSOCK_TEST}" \
+               vm_ssh "${ns}" -- ./vsock_test \
                        --mode=client \
                        --control-host="${host}" \
                        --peer-cid="${cid}" \
@@ -628,7 +629,7 @@ vm_vsock_test() {
                        2>&1 | log_guest
                rc=$?
        else
-               vm_ssh "${ns}" -- "${VSOCK_TEST}" \
+               vm_ssh "${ns}" -- ./vsock_test \
                        --mode=server \
                        --peer-cid="${cid}" \
                        --control-port="${port}" \