vmd(8): zero consdev in bootargs to fix booting ramdisks
authordv <dv@openbsd.org>
Mon, 28 Nov 2022 18:24:52 +0000 (18:24 +0000)
committerdv <dv@openbsd.org>
Mon, 28 Nov 2022 18:24:52 +0000 (18:24 +0000)
commit8652dcf0a20078a0a381bc0c54aae4251c6be96f
tree2bb4d5feee055b073aae17ae77c6e6ebc82eccfd
parent12a5f4e3b1e549b6723daa7126bd10d08f0483c5
vmd(8): zero consdev in bootargs to fix booting ramdisks

Mischa Peters reported that booting a bsd.rd from 7.2 or newer
stopped working with vmd(8) in 7.2.

Direct booting kernels requires vmd to build boot args in guest
memory. Recently, the bios_consdev_t struct changed in amd64
machdep.c, adding additional struct members. vmd wasn't zeroing out
the struct, causing the booted kernel to read garbage.

While here, cleanup some of push_bootargs to use descriptive names
for boot args and standardize on explicit usage of uint32_t.

ok claudio, mlarkin
usr.sbin/vmd/loadfile_elf.c