MFC r263795:

Strict value checking will cause problem.
Bay trail DN2820FYKH is supported on Linux but does not work on FreeBSD.
This behaviour is bug-compatible with Linux-3.13.5.

References:
http://d.hatena.ne.jp/syuu1228/20140326
http://lxr.linux.no/linux+v3.13.5/arch/x86/kernel/acpi/boot.c#L1094

Submitted by: syuu
PR: 187966
This commit is contained in:
rodrigc 2014-06-23 22:31:28 +00:00
parent f1ff231dba
commit 95d8d7a8ec
2 changed files with 18 additions and 7 deletions

View File

@ -103,18 +103,25 @@ main(int argc, char *argv[])
err(EX_USAGE, "%s", source);
if (subdir(target, source) || subdir(source, target))
errx(EX_USAGE, "%s (%s) and %s are not distinct paths",
errx(EX_USAGE, "%s (%s) and %s are not lldistinct paths",
argv[0], target, argv[1]);
printf("Debug: 1\n");
build_iovec(&iov, &iovlen, "fstype", nullfs, (size_t)-1);
build_iovec(&iov, &iovlen, "fspath", source, (size_t)-1);
build_iovec(&iov, &iovlen, "target", target, (size_t)-1);
build_iovec(&iov, &iovlen, "errmsg", errmsg, sizeof(errmsg));
printf("Debug: 2, source: %zd target: %zdd\n", strlen(source), strlen(target));
if (nmount(iov, iovlen, 0) < 0) {
if (errmsg[0] != 0)
printf("Debug: 3\n");
if (errmsg[0] != 0) {
printf("Debug 4\n");
err(1, "%s: %s", source, errmsg);
else
}
else {
printf("Debug 5\n");
err(1, "%s", source);
}
}
exit(0);
}

View File

@ -306,10 +306,11 @@ interrupt_polarity(UINT16 IntiFlags, UINT8 Source)
case ACPI_MADT_POLARITY_ACTIVE_HIGH:
return (INTR_POLARITY_HIGH);
case ACPI_MADT_POLARITY_ACTIVE_LOW:
return (INTR_POLARITY_LOW);
break;
default:
panic("Bogus Interrupt Polarity");
printf("WARNING: Bogus Interrupt Polarity. Assume POLALITY LOW");
}
return (INTR_POLARITY_LOW);
}
static enum intr_trigger
@ -325,10 +326,13 @@ interrupt_trigger(UINT16 IntiFlags, UINT8 Source)
case ACPI_MADT_TRIGGER_EDGE:
return (INTR_TRIGGER_EDGE);
case ACPI_MADT_TRIGGER_LEVEL:
return (INTR_TRIGGER_LEVEL);
break;
default:
panic("Bogus Interrupt Trigger Mode");
printf("WARNING: Bogus Interrupt Trigger Mode. Assume Level trigger.");
break;
}
return (INTR_TRIGGER_LEVEL);
}
/*