From nobody Fri Mar 28 02:32:29 2025 X-Original-To: dev-commits-src-branches@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 4ZP4LQ46FFz5sGym; Fri, 28 Mar 2025 02:32:30 +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 4ZP4LQ0pcWz3N0p; Fri, 28 Mar 2025 02:32:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1743129150; 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=tBLyW4vMRDmLdiYlobVt+EMDotRas0Ooyb1QU8apwr4=; b=ZKLTzQkrYHXByKyTb6qkP8CwfMAFxWiqjPO6bKWkPG50Z6zrh3YU52CLE/lVTp86p+UNIL 129Ui0ApMM5OipOglbVcBHFBBY6112MRw4ol3goK7Stbdj3usQyT/YWW7rb4HVbIjhpfqO hbHwBtc7P1jN5ryuGkYuvjDk5/lpkyqEnGRXMBlumeKNAZUd6b4EUeuDbCNxtXESLHZX+V XgyI1QPrIqTocSrh+VD4pLhGaqgZVXtcS9VKAc1KBh1TUSS0M2xw3nL2QBaZ1hQs0vpNFY GsRLG4S5IGCjoMwOkAz1TZpI07XMlv2CgNXFAYRSaUhhXiEShS8vgOhCUKBJbw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1743129150; a=rsa-sha256; cv=none; b=ZexUd1ksxk7oLnF8vxZ/s0tLq9OC7D3Tx1OG221s3prxJZHGxjFL1jubFDAfmvBtTHrBC1 HU6wpGryG1clp67IYX+oSaNjq7tSUD8KdyuUbvu0m2di/Av5ZWd1O6/fnlPaHIJgzxaUwW 1XDpN2v8PvSaju/LS/s+/8hXYlA5CL6N+OwUVx+94Miwbnb3oToUeIR4LQ1/PGy4+pZUDd Uf4Qy+3EN7IUG83yuD11p6jhwAAbANKTPQtcv2XA1HmDzcYQcuVWxlKuQvZ3uBEwJok7h+ vhMoiwBpeQTfTqI53dKHFpJLFuJua2NZZwpqiWttddh11blMYL+5moLX1EeJ3A== 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=1743129150; 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=tBLyW4vMRDmLdiYlobVt+EMDotRas0Ooyb1QU8apwr4=; b=sNGy+VnAru3RA2sr5Hi5Yabvob+pswK52j8/F4/0YxVcswfAseajJ2/CMGD2db7dOglXIh 7MkKX1IEoTn2aYWX4ScOPax5Zkj5zDGD5G9fpBQ/P/pDISnyozd5GE667smFyHvyACTZwO q3TYRiAyxugIQ/nm43kvkAXLAsqITbASO6APW/IlI+RBzxCW2SWq8v/Kj+ArFcEjSvFxhX rn0Me4JNLcAFg+mIZ5OgEcH4MMSrjSxIYBZmLFGDOVy7kN2wm3DAhPZUj+FmJPMJs0TfJh nZb8ni7p/vLFw4Mlapm9fFGEwU5Y6i3J4Qr5Eb76oD5vohUic1TbLbIXEqivCg== 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 4ZP4LQ0JQLz7kn; Fri, 28 Mar 2025 02:32:30 +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 52S2WTA8064669; Fri, 28 Mar 2025 02:32:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 52S2WTSM064666; Fri, 28 Mar 2025 02:32:29 GMT (envelope-from git) Date: Fri, 28 Mar 2025 02:32:29 GMT Message-Id: <202503280232.52S2WTSM064666@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Justin Hibbits Subject: git: 16caf6a11ec2 - stable/14 - powerpc: Add Hypervisor Facility Unavailable handling List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/14 X-Git-Reftype: branch X-Git-Commit: 16caf6a11ec25d705514e31920c2a3d1bde0fb04 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhibbits: URL: https://cgit.FreeBSD.org/src/commit/?id=16caf6a11ec25d705514e31920c2a3d1bde0fb04 commit 16caf6a11ec25d705514e31920c2a3d1bde0fb04 Author: Justin Hibbits AuthorDate: 2025-03-19 22:22:32 +0000 Commit: Justin Hibbits CommitDate: 2025-03-28 02:32:19 +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 (cherry picked from commit 0b663e0cee89dedf5b070ff4e839d5ad95061535) --- 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 7f1a267f5cf2..dae1228c30fa 100644 --- a/sys/powerpc/powerpc/trap.c +++ b/sys/powerpc/powerpc/trap.c @@ -139,6 +139,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" }, @@ -148,6 +149,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 } }; @@ -352,6 +354,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;