aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-10-27 09:10:48 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-04-27 09:36:41 +0200
commit9c1862566176250bae343a5cee617a5ce41efa54 (patch)
treec722737b4097be4e03457ab63ad1dcf1b2767f1f
parent52dde1160f17c42bca85f1365227a69b2c6aa9e8 (diff)
downloadlinux-yocto-9c1862566176250bae343a5cee617a5ce41efa54.tar.gz
linux-yocto-9c1862566176250bae343a5cee617a5ce41efa54.tar.bz2
linux-yocto-9c1862566176250bae343a5cee617a5ce41efa54.zip
i2c-hid: properly terminate i2c_hid_dmi_desc_override_table[] array
commit b59dfdaef173677b0b7e10f375226c0a1114fd20 upstream. Commit 9ee3e06610fd ("HID: i2c-hid: override HID descriptors for certain devices") added a new dmi_system_id quirk table to override certain HID report descriptors for some systems that lack them. But the table wasn't properly terminated, causing the dmi matching to walk off into la-la-land, and starting to treat random data as dmi descriptor pointers, causing boot-time oopses if you were at all unlucky. Terminate the array. We really should have some way to just statically check that arrays that should be terminated by an empty entry actually are so. But the HID people really should have caught this themselves, rather than have me deal with an oops during the merge window. Tssk, tssk. Cc: Julian Sax <jsbc@gmx.de> Cc: Benjamin Tissoires <benjamin.tissoires@redhat.com> Cc: Jiri Kosina <jkosina@suse.cz> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Cc: Ambro┼ż Bizjak <abizjak.pro@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c b/drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c
index 1d645c9ab417..cac262a912c1 100644
--- a/drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c
+++ b/drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c
@@ -337,7 +337,8 @@ static const struct dmi_system_id i2c_hid_dmi_desc_override_table[] = {
DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "FlexBook edge11 - M-FBE11"),
},
.driver_data = (void *)&sipodev_desc
- }
+ },
+ { } /* Terminate list */
};