The branch main has been updated by imp:

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

commit 5b90ffad8759633aa79bc9736b1bb65e3a5248b7
Author:     Warner Losh <i...@freebsd.org>
AuthorDate: 2025-05-26 03:46:32 +0000
Commit:     Warner Losh <i...@freebsd.org>
CommitDate: 2025-05-26 15:30:37 +0000

    stand/i386/zfsboot: Initialzie archsw at compile time.
    
    Also, add a comment about the weird reason we even have an archsw here
    at all. tl;dr: zfs code uses archsw when it aught not, but this hack
    here is easier than fixing that code properly.
    
    Sponsored by:           Netflix
---
 stand/i386/zfsboot/zfsboot.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/stand/i386/zfsboot/zfsboot.c b/stand/i386/zfsboot/zfsboot.c
index 07bf31eac7a1..4c8eae9b65e5 100644
--- a/stand/i386/zfsboot/zfsboot.c
+++ b/stand/i386/zfsboot/zfsboot.c
@@ -131,7 +131,16 @@ static int parse_cmd(void);
 static char gelipw[GELI_PW_MAXLEN];
 #endif
 
-struct arch_switch archsw;     /* MI/MD interface boundary */
+/*
+ * Only because the zfs code requires access through archsw, otherwise the
+ * 'boot' programs don't need archsw. This is less than ideal, but this
+ * workaround is easier than many of the alternatives.
+ */
+struct arch_switch archsw = {  /* MI/MD interface boundary */
+       .arch_getdev = i386_getdev,
+       .arch_zfs_probe = i386_zfs_probe,
+};
+
 static char boot_devname[2 * ZFS_MAXNAMELEN + 8]; /* disk or pool:dataset */
 
 struct devsw *devsw[] = {
@@ -184,15 +193,6 @@ main(void)
         */
        bcache_init(32768, 512);
 
-       archsw.arch_autoload = NULL;
-       archsw.arch_getdev = i386_getdev;
-       archsw.arch_copyin = NULL;
-       archsw.arch_copyout = NULL;
-       archsw.arch_readin = NULL;
-       archsw.arch_isainb = NULL;
-       archsw.arch_isaoutb = NULL;
-       archsw.arch_zfs_probe = i386_zfs_probe;
-
        bootinfo.bi_version = BOOTINFO_VERSION;
        bootinfo.bi_size = sizeof(bootinfo);
        bootinfo.bi_basemem = bios_basemem / 1024;

Reply via email to