Skip to content

Commit b9c0ebb

Browse files
tiwaidtor
authored andcommitted
Input: elants_i2c - fix NULL dereference at probing
The recent change in elants_i2c driver to support more chips introduced a regression leading to Oops at probing. The driver reads id->driver_data, but the id may be NULL depending on the device type the driver gets bound. Replace the driver data extraction with the device_get_match_data() helper, and define the driver data in OF table, too. Fixes: 9517b95 ("Input: elants_i2c - add support for eKTF3624") BugLink: https://bugzilla.suse.com/show_bug.cgi?id=1186454 Signed-off-by: Takashi Iwai <[email protected]> Cc: <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Dmitry Torokhov <[email protected]>
1 parent 0b1d6c8 commit b9c0ebb

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

drivers/input/touchscreen/elants_i2c.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1396,7 +1396,7 @@ static int elants_i2c_probe(struct i2c_client *client,
13961396
init_completion(&ts->cmd_done);
13971397

13981398
ts->client = client;
1399-
ts->chip_id = (enum elants_chip_id)id->driver_data;
1399+
ts->chip_id = (enum elants_chip_id)(uintptr_t)device_get_match_data(&client->dev);
14001400
i2c_set_clientdata(client, ts);
14011401

14021402
ts->vcc33 = devm_regulator_get(&client->dev, "vcc33");
@@ -1636,8 +1636,8 @@ MODULE_DEVICE_TABLE(acpi, elants_acpi_id);
16361636

16371637
#ifdef CONFIG_OF
16381638
static const struct of_device_id elants_of_match[] = {
1639-
{ .compatible = "elan,ekth3500" },
1640-
{ .compatible = "elan,ektf3624" },
1639+
{ .compatible = "elan,ekth3500", .data = (void *)EKTH3500 },
1640+
{ .compatible = "elan,ektf3624", .data = (void *)EKTF3624 },
16411641
{ /* sentinel */ }
16421642
};
16431643
MODULE_DEVICE_TABLE(of, elants_of_match);

0 commit comments

Comments
 (0)