From: Tomasz Michalec Date: Tue, 22 Jul 2025 13:28:26 +0000 (+0200) Subject: platform/chrome: cros_ec_typec: Check ec platform device pointer X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=731a4702b668ef28730e7d2414672b7085e757d6;p=thirdparty%2Flinux.git platform/chrome: cros_ec_typec: Check ec platform device pointer It is possible that parent device for cros_ec_typec device is already available, but ec pointer in parent driver data isn't populated yet. It may happen when cros_typec_probe is running in parallel with cros_ec_register. This leads to NULL pointer dereference when cros_typec_probe tries to get driver data from typec->ec->ec->dev. Check if typec->ec->ec is set before using it in cros_typec_probe. Signed-off-by: Tomasz Michalec Link: https://lore.kernel.org/r/20250722132826.707087-1-tmichalec@google.com Signed-off-by: Tzung-Bi Shih --- diff --git a/drivers/platform/chrome/cros_ec_typec.c b/drivers/platform/chrome/cros_ec_typec.c index 5a141401e4857..b712bcff6fb26 100644 --- a/drivers/platform/chrome/cros_ec_typec.c +++ b/drivers/platform/chrome/cros_ec_typec.c @@ -1354,7 +1354,7 @@ static int cros_typec_probe(struct platform_device *pdev) typec->dev = dev; typec->ec = dev_get_drvdata(pdev->dev.parent); - if (!typec->ec) { + if (!typec->ec || !typec->ec->ec) { dev_warn(dev, "couldn't find parent EC device\n"); return -EPROBE_DEFER; }