Module Name: src
Committed By: bouyer
Date: Mon Oct 16 17:29:31 UTC 2023
Modified Files:
src/sys/arch/amd64/amd64: locore.S
src/sys/arch/i386/i386: locore.S
src/sys/arch/xen/include: hypervisor.h
Log Message:
Xen's start_info_t is larger than 512 bytes these days, so bump the copy
size to a whole PAGE_SIZE, and CTASSERT() that start_info_t is smaller.
Luckily we didn't use yet the parts skipped
To generate a diff of this commit:
cvs rdiff -u -r1.223 -r1.224 src/sys/arch/amd64/amd64/locore.S
cvs rdiff -u -r1.196 -r1.197 src/sys/arch/i386/i386/locore.S
cvs rdiff -u -r1.57 -r1.58 src/sys/arch/xen/include/hypervisor.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/amd64/amd64/locore.S
diff -u src/sys/arch/amd64/amd64/locore.S:1.223 src/sys/arch/amd64/amd64/locore.S:1.224
--- src/sys/arch/amd64/amd64/locore.S:1.223 Sun Jul 16 19:55:43 2023
+++ src/sys/arch/amd64/amd64/locore.S Mon Oct 16 17:29:30 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.S,v 1.223 2023/07/16 19:55:43 riastradh Exp $ */
+/* $NetBSD: locore.S,v 1.224 2023/10/16 17:29:30 bouyer Exp $ */
/*
* Copyright-o-rama!
@@ -939,7 +939,7 @@ longmode_hi:
/* Copy start_info to a safe place. */
movq %rbx,%rsi
movq $_C_LABEL(start_info_union),%rdi
- movq $64,%rcx
+ movq $(PAGE_SIZE / 8),%rcx
rep
movsq
Index: src/sys/arch/i386/i386/locore.S
diff -u src/sys/arch/i386/i386/locore.S:1.196 src/sys/arch/i386/i386/locore.S:1.197
--- src/sys/arch/i386/i386/locore.S:1.196 Sun Jul 16 19:55:43 2023
+++ src/sys/arch/i386/i386/locore.S Mon Oct 16 17:29:31 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.S,v 1.196 2023/07/16 19:55:43 riastradh Exp $ */
+/* $NetBSD: locore.S,v 1.197 2023/10/16 17:29:31 bouyer Exp $ */
/*
* Copyright-o-rama!
@@ -128,7 +128,7 @@
*/
#include <machine/asm.h>
-__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.196 2023/07/16 19:55:43 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.197 2023/10/16 17:29:31 bouyer Exp $");
#include "opt_copy_symtab.h"
#include "opt_ddb.h"
@@ -1142,7 +1142,7 @@ begin:
/* Copy the necessary stuff from start_info structure. */
/* We need to copy shared_info early, so that sti/cli work */
movl $RELOC(start_info_union),%edi
- movl $128,%ecx
+ movl $(PAGE_SIZE / 4),%ecx
rep
movsl
Index: src/sys/arch/xen/include/hypervisor.h
diff -u src/sys/arch/xen/include/hypervisor.h:1.57 src/sys/arch/xen/include/hypervisor.h:1.58
--- src/sys/arch/xen/include/hypervisor.h:1.57 Sat Feb 25 00:34:48 2023
+++ src/sys/arch/xen/include/hypervisor.h Mon Oct 16 17:29:31 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: hypervisor.h,v 1.57 2023/02/25 00:34:48 riastradh Exp $ */
+/* $NetBSD: hypervisor.h,v 1.58 2023/10/16 17:29:31 bouyer Exp $ */
/*
* Copyright (c) 2006 Manuel Bouyer.
@@ -58,6 +58,8 @@
#include "isa.h"
#include "pci.h"
+#include <machine/vmparam.h>
+
struct cpu_info;
int xen_hvm_init(void);
@@ -134,11 +136,13 @@ struct xen_npx_attach_args {
union start_info_union
{
start_info_t start_info;
- char padding[512];
+ char padding[PAGE_SIZE];
};
extern union start_info_union start_info_union;
#define xen_start_info (start_info_union.start_info)
+CTASSERT(sizeof(start_info_t) <= PAGE_SIZE);
+
extern struct hvm_start_info *hvm_start_info;
/* For use in guest OSes. */