The const struct i2c_device_id *did passed to probe may be NULL e.g. in case DT contains the following compatible string: compatible = "aptina,mt9p006", "aptina,mt9p031"; Check the variable for non-NULL and fail gracefully instead of crashing the kernel outright with NULL pointer dereference splat. Signed-off-by: Marek Vasut <marex@xxxxxxx> Cc: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> Cc: Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx> Cc: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> Cc: Stefan Riedmueller <s.riedmueller@xxxxxxxxx> --- drivers/media/i2c/mt9p031.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/media/i2c/mt9p031.c b/drivers/media/i2c/mt9p031.c index e0f0d87d4cfe9..d0706723e493c 100644 --- a/drivers/media/i2c/mt9p031.c +++ b/drivers/media/i2c/mt9p031.c @@ -1106,6 +1106,11 @@ static int mt9p031_probe(struct i2c_client *client, return -EINVAL; } + if (did == NULL) { + dev_err(&client->dev, "Invalid I2C device ID\n"); + return -EINVAL; + } + if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_WORD_DATA)) { dev_warn(&client->dev, "I2C-Adapter doesn't support I2C_FUNC_SMBUS_WORD\n"); -- 2.35.1