From nobody Wed Mar 19 22:35:18 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZJ3SR1CJvz5qprC; Wed, 19 Mar 2025 22:35:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZJ3SQ50c3z3kSJ; Wed, 19 Mar 2025 22:35:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1742423718; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=O9iY+5JmU3RGaBQfnwTz7ZZNEluCWZrpJde3Sdg8r/s=; b=iqYln4sgleBFJ3BxmG7GpYVOJOzFnj+ilqPJ2xIlf3BkrGM3zFFzHwQHbubwILT+POiqFB qeWm7gRDxqlHi6gZEd6GOrovZU/QXw1MnvE95fK5XQv+VJBDs5BxKmEuTAgYJ0NaA9HgHm NA17On+O280Qp8MpPcrPcjC7xC+g+lg+Ak4DiIghfFSMuL0ZS+T7avohY/ZOq8dW3EkEGP hEeKBWcGd2CzJDCyqHHEt+YcVd9Ou93FUmU9l1e/P7QoTVoTAZi3mu762AyCD+rkJ+a3a0 PVsIgLJr8YZPmz6CDK4RUfM3RJFUF3lnbiHFRsVnqAFtt2A/l8dlrGy0ci4N0A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1742423718; a=rsa-sha256; cv=none; b=Al98te3f3Qwq5RKNlo9solMhuzLzFD422849gB5mEsVO9P9yPRqz0tYDNr3TVaXYmgzc40 u6J03dLnqKEjKF5XwfQXZ8e5XA3UyfUhxUvqHU7Hd0D/82e2sy7R0bCtobcsgeWhyEhyDu +BcHzXd+z7fC0xePmdXuCxSB2QJTPmd0g54fiTopyIRNouhvOLxrrYq9wExfGBbsROw1Cz dP0dbXufiQ+c63G5qeu9HFTMUT8y/ULW6jWe5VAmvSj4NtIwRJmfWRz2i6x8hmJ+t3rdZt k9A6GhOy5hVrxaY/A/ptBtkIcU87Q7cfPUqE4dBUTlo0XIeT2I/4vrHXCdWMAg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1742423718; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=O9iY+5JmU3RGaBQfnwTz7ZZNEluCWZrpJde3Sdg8r/s=; b=mq3qPK8QBo0xsxGt5vFQ3t4BOQs4L+xeOtkSqJSWujM+2Jfg0+oAAYmQTgKWN6Qhv7uFWT SyXdYQCbyvzgMI8N8f5kPAYSMMkFhoWO/ZywKTWsiIQk1EBgise6q/B3BjHVjBhR24TCOQ NDMX7tkHYFGF/SJN2aRHviaja859HnVOINv+QX4gWXa3ceKN9jMVONm27d0UKrEkdht/U+ r+afNOekJGYfsJg/Lj0k1xlZWpT4JxvG5BbDADgXnrkab+kygveLwJVZsoLxRoXyCDgsT2 W2BSCS2hyyGCp+hxmPNfgYdmoG3OaGagvZ3kSYnCz+9SS2YF3b3ljePDDCjryw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZJ3SQ4cgszfxx; Wed, 19 Mar 2025 22:35:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 52JMZIFx062598; Wed, 19 Mar 2025 22:35:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 52JMZIKs062595; Wed, 19 Mar 2025 22:35:18 GMT (envelope-from git) Date: Wed, 19 Mar 2025 22:35:18 GMT Message-Id: <202503192235.52JMZIKs062595@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Justin Hibbits Subject: git: 0b663e0cee89 - main - powerpc: Add Hypervisor Facility Unavailable handling List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhibbits X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0b663e0cee89dedf5b070ff4e839d5ad95061535 Auto-Submitted: auto-generated The branch main has been updated by jhibbits: URL: https://cgit.FreeBSD.org/src/commit/?id=0b663e0cee89dedf5b070ff4e839d5ad95061535 commit 0b663e0cee89dedf5b070ff4e839d5ad95061535 Author: Justin Hibbits AuthorDate: 2025-03-19 22:22:32 +0000 Commit: Justin Hibbits CommitDate: 2025-03-19 22:22:32 +0000 powerpc: Add Hypervisor Facility Unavailable handling Treat Hypervisor Facility Unavailable as an illegal instruction in user space. This way programs that use facilities like transactional memory, which will never be supported as it has been removed from the ISA, will not crash the kernel. Tested by: pkubaj MFC after: 1 week --- sys/powerpc/aim/aim_machdep.c | 1 + sys/powerpc/powerpc/trap.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/sys/powerpc/aim/aim_machdep.c b/sys/powerpc/aim/aim_machdep.c index b439905441d3..814c679ff47e 100644 --- a/sys/powerpc/aim/aim_machdep.c +++ b/sys/powerpc/aim/aim_machdep.c @@ -417,6 +417,7 @@ aim_cpu_init(vm_offset_t toc) bcopy(&hypertrapcode, (void *)(EXC_HEA + trap_offset), trapsize); bcopy(&hypertrapcode, (void *)(EXC_HMI + trap_offset), trapsize); bcopy(&hypertrapcode, (void *)(EXC_HVI + trap_offset), trapsize); + bcopy(&hypertrapcode, (void *)(EXC_HFAC + trap_offset), trapsize); bcopy(&hypertrapcode, (void *)(EXC_SOFT_PATCH + trap_offset), trapsize); #endif diff --git a/sys/powerpc/powerpc/trap.c b/sys/powerpc/powerpc/trap.c index ab3e56875169..d919b7715664 100644 --- a/sys/powerpc/powerpc/trap.c +++ b/sys/powerpc/powerpc/trap.c @@ -138,6 +138,7 @@ static struct powerpc_exception powerpc_exceptions[] = { { EXC_VEC, "altivec unavailable" }, { EXC_VSX, "vsx unavailable" }, { EXC_FAC, "facility unavailable" }, + { EXC_HFAC, "hypervisor facility unavailable" }, { EXC_ITMISS, "instruction tlb miss" }, { EXC_DLMISS, "data load tlb miss" }, { EXC_DSMISS, "data store tlb miss" }, @@ -147,6 +148,7 @@ static struct powerpc_exception powerpc_exceptions[] = { { EXC_THRM, "thermal management" }, { EXC_RUNMODETRC, "run mode/trace" }, { EXC_SOFT_PATCH, "soft patch exception" }, + { EXC_HVI, "hypervisor virtualization" }, { EXC_LAST, NULL } }; @@ -351,6 +353,7 @@ trap(struct trapframe *frame) mtspr(SPR_FSCR, fscr & ~FSCR_IC_MASK); break; case EXC_HEA: + case EXC_HFAC: sig = SIGILL; ucode = ILL_ILLOPC; break;