> The dmi_walk function maps the DMI table, walks it, and unmaps it. > This means that the dell_bios_hotkey_table that find_hk_type stores > points to unmapped memory by the time it gets read. > > I've been able to trigger crashes caused by the stale pointer a > couple of times, but never on a stock kernel. > > Fix it by generating the keymap in the dmi_walk callback instead of > storing a pointer. > > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxx> > --- > > This seems to work on my laptop. It applies to platform-drivers-x86/for-next. > > drivers/platform/x86/dell-wmi.c | 69 +++++++++++++++++++++++++---------------- > 1 file changed, 42 insertions(+), 27 deletions(-) > > diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c > index 57402c4c394e..52db2721d7e3 100644 > --- a/drivers/platform/x86/dell-wmi.c > +++ b/drivers/platform/x86/dell-wmi.c > @@ -116,7 +116,10 @@ struct dell_bios_hotkey_table { > > }; > > -static const struct dell_bios_hotkey_table *dell_bios_hotkey_table; > +struct dell_dmi_results { > + int err; > + struct key_entry *keymap; Nit: keymap can be a const struct key_entry *. -- Best regards, Michał Kępień -- To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html