diff options
-rw-r--r-- | sys/dev/atkbdc/atkbd.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/dev/atkbdc/atkbd.c b/sys/dev/atkbdc/atkbd.c index b7156cf..c48118c 100644 --- a/sys/dev/atkbdc/atkbd.c +++ b/sys/dev/atkbdc/atkbd.c @@ -1097,6 +1097,15 @@ get_typematic(keyboard_t *kbd) x86regs_t regs; uint8_t *p; + /* + * Traditional entry points of int 0x15 and 0x16 are fixed + * and later BIOSes follow them. (U)EFI CSM specification + * also mandate these fixed entry points. + * + * Validate the entry points here before we proceed further. + * It's known that some recent laptops does not have the + * same entry point and hang on boot if we call it. + */ if (x86bios_get_intr(0x15) != 0xf000f859 || x86bios_get_intr(0x16) != 0xf000e82e) return (ENODEV); |