mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-15 04:43:53 +00:00
stand/efi/eficom: Don't allow this for !HYPERV machines
If the machine isn't hyperv on amd64, then this driver fails the probe and will do nothing further now, even if explicitly listed in a config. Sponsored by: Netflix Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D40221
This commit is contained in:
parent
f28dff43ad
commit
42b0b7a926
|
@ -254,6 +254,11 @@ comc_get_con_serial_handle(const char *name)
|
|||
return (NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
* Called from cons_probe() to see if this device is available.
|
||||
* Return immediately on x86, except for hyperv, since it interferes with
|
||||
* common configurations otherwise (yes, this is just firewalling the bug).
|
||||
*/
|
||||
static void
|
||||
comc_probe(struct console *sc)
|
||||
{
|
||||
|
@ -265,6 +270,18 @@ comc_probe(struct console *sc)
|
|||
char *env, *buf, *ep;
|
||||
size_t sz;
|
||||
|
||||
#ifdef __amd64__
|
||||
/*
|
||||
* This driver tickles issues on a number of different firmware loads.
|
||||
* It is only required for HyperV, and is only known to work on HyperV,
|
||||
* so only allow it on HyperV.
|
||||
*/
|
||||
env = getenv("smbios.bios.version");
|
||||
if (env == NULL || strncmp(env, "Hyper-V", 7) != 0) {
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (comc_port == NULL) {
|
||||
comc_port = calloc(1, sizeof (struct serial));
|
||||
if (comc_port == NULL)
|
||||
|
|
Loading…
Reference in a new issue