Ok,
So try adding this check:
vmbuf = x86bios_alloc(&offs, sizeof(*buf), M_WAITOK);
if (vmbuf == NULL) {
printf("%s: x86bios_alloc failed!\n", __func__);
goto fail;
}
... that call shouldn't be failing, but if it's truely failing on the
bcopy(), the only reason is because vmbuf is NULL.
-a