git: e283c994ab27 - main - x86/xen: fill hypercall page with int3

From: Roger Pau Monné <royger_at_FreeBSD.org>
Date: Thu, 22 Feb 2024 10:31:20 UTC
The branch main has been updated by royger:

URL: https://cgit.FreeBSD.org/src/commit/?id=e283c994ab270706142ef5dde9092950000af901

commit e283c994ab270706142ef5dde9092950000af901
Author:     Roger Pau Monné <royger@FreeBSD.org>
AuthorDate: 2024-02-02 08:50:16 +0000
Commit:     Roger Pau Monné <royger@FreeBSD.org>
CommitDate: 2024-02-22 10:08:04 +0000

    x86/xen: fill hypercall page with int3
    
    Filling the hypercall page with nops is not helpful from a debugging point of
    view, as for example attempting to execute an hypercall before the page is
    initialized will result in the execution flow falling through into
    xen_start32, making the mistake less obvious to spot.
    
    Instead fill the page with int3 (0xcc) which will result in a #BP trap.
    
    Sponsored by: Cloud Software Group
    Reviewed by: markj
    Differential revision: https://reviews.freebsd.org/D43930
---
 sys/amd64/amd64/xen-locore.S | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/amd64/amd64/xen-locore.S b/sys/amd64/amd64/xen-locore.S
index db949af1e7ca..ed2aae038b6d 100644
--- a/sys/amd64/amd64/xen-locore.S
+++ b/sys/amd64/amd64/xen-locore.S
@@ -67,7 +67,7 @@
 .p2align PAGE_SHIFT, 0x90	/* Hypercall_page needs to be PAGE aligned */
 
 ENTRY(hypercall_page)
-	.skip	0x1000, 0x90	/* Fill with "nop"s */
+	.skip	0x1000, 0xcc	/* Fill with `int3` to generate a #BP trap. */
 
 /* PVH entry point. */
 	.code32