static const struct dell_bios_hotkey_table *dell_bios_hotkey_table;
 
+/* Uninitialized entries here are KEY_RESERVED == 0. */
 static const u16 bios_to_linux_keycode[256] __initconst = {
        [0]     = KEY_MEDIA,
        [1]     = KEY_NEXTSONG,
        key = sparse_keymap_entry_from_scancode(dell_wmi_input_dev,
                                                reported_key);
        if (!key) {
-               pr_info("Unknown key %x pressed\n", reported_key);
+               pr_info("Unknown key with scancode 0x%x pressed\n",
+                       reported_key);
                return;
        }
 
        for (i = 0; i < hotkey_num; i++) {
                const struct dell_bios_keymap_entry *bios_entry =
                                        &dell_bios_hotkey_table->keymap[i];
-               u16 keycode = bios_entry->keycode < 256 ?
-                                   bios_to_linux_keycode[bios_entry->keycode] :
-                                   KEY_RESERVED;
+
+               /* Uninitialized entries are 0 aka KEY_RESERVED. */
+               u16 keycode = (bios_entry->keycode <
+                              ARRAY_SIZE(bios_to_linux_keycode)) ?
+                       bios_to_linux_keycode[bios_entry->keycode] :
+                       KEY_RESERVED;
+
+               /*
+                * Log if we find an entry in the DMI table that we don't
+                * understand.  If this happens, we should figure out what
+                * the entry means and add it to bios_to_linux_keycode.
+                */
+               if (keycode == KEY_RESERVED) {
+                       pr_info("firmware scancode 0x%x maps to unrecognized keycode 0x%x\n",
+                               bios_entry->scancode, bios_entry->keycode);
+                       continue;
+               }
 
                if (keycode == KEY_KBDILLUMTOGGLE)
                        keymap[i].type = KE_IGNORE;