Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1229012ybz; Wed, 29 Apr 2020 17:40:02 -0700 (PDT) X-Google-Smtp-Source: APiQypL8PAnBFuHg69F613kGTv8BO5TaO5HrmVmqFBVk7iOW1Q6AXGFv0o7ATaJrMy+oisPYjoMy X-Received: by 2002:a17:906:5e45:: with SMTP id b5mr411952eju.0.1588207202237; Wed, 29 Apr 2020 17:40:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588207202; cv=none; d=google.com; s=arc-20160816; b=vl5hzCKNrLbHGsqhJee9Xav1M4ux/QoFIUQSSXi6Tv2sqIY8ho4EeY3Em/5swHrXQN 5+d1yRQ4QAHZPeiOw4IQzgKIY8UBAce9LUx2HGTUPRVhWG3sxrCXFlz9NrR9kw4wBxsK YbqIyND/hFs4OE38IGQTKMDBSDC7UCZCxqsMZ1e79c+711XbwhbyRA6g+tk358xGBwUi 2zb2zpgyAcXnrTq5gzqDUPWrr4TY0EcgIVSx40EU3EgbMiXTp1UfYOz2JCHDhxo1cJKb YSi4PH2j84wPXXOg/cG4pg5WqRxfJQTl2QrRbM/tcIcBl0GvPwuJOsDOPA2LU8pqrCn1 o0yA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=Ue/rz4Fn+04hr+n+K+kjQp326QaO0CAjZ9NJZaZx2cM=; b=Q8JMD0m5fRPYGuvmOkKrLYUK77bVmNLesR5NiM2pxZmsvBUsu+a/6t2cD43C+zaASk 1qt1KrSLonIAuTnNkWJFB5lftLSDrJVMf0t1Ct/LoNUdFQ+IdUBnqQtEnNZOrlkTvI8W ElyJxYKaY70ZEuOK+m6NI4uYer5wumM/6A2Kl1k5mC5n2+N3lkwijodqFgTqdKaIuTI/ xXmxGmLL1pDPlrbDWv0jGekTNCL4fCL3BL+cAauLdkucZYYKScpQGI04WtUyXZ2/vdRl n7ysXSnFQM5cIIiBMu8LXcsxHnJZRS/P8acD0Fuej9CVo7UBTtOlrKuneS7PiXXgB2yg bV8w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=UG5LtxTD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o17si4481448edv.44.2020.04.29.17.39.38; Wed, 29 Apr 2020 17:40:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=UG5LtxTD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726378AbgD3AiO (ORCPT + 99 others); Wed, 29 Apr 2020 20:38:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44026 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726279AbgD3AiO (ORCPT ); Wed, 29 Apr 2020 20:38:14 -0400 Received: from mail-vk1-xa41.google.com (mail-vk1-xa41.google.com [IPv6:2607:f8b0:4864:20::a41]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2F5A1C035494 for ; Wed, 29 Apr 2020 17:38:14 -0700 (PDT) Received: by mail-vk1-xa41.google.com with SMTP id v192so1249459vkd.3 for ; Wed, 29 Apr 2020 17:38:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=Ue/rz4Fn+04hr+n+K+kjQp326QaO0CAjZ9NJZaZx2cM=; b=UG5LtxTD2tA4eaZff5YUWopXsU5j3/4yLdHOhbh8CkdQ6Reesn4zDCGdJL5BwPc5vS omwCMU384Jgg7XnfXoBRLqeofDGUVwVJwdIMRrAQgJpoJ1jweKli79KF6f27onMgz+Yg eyIQmYI9+I/GFGLbiJnJI+HUaiCF8SP/aF3S8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=Ue/rz4Fn+04hr+n+K+kjQp326QaO0CAjZ9NJZaZx2cM=; b=mloAlCQdb/XAOooR3TdLASb4rd6oqKPSEPJ/1s3UbvQRaVjA3KgzdnU5bdl8KkWWlP vFyX0bnNBPqWR21PQSdoXaBhhLch/giPa7g/pvhZv+eHpe7SZq9LNqWNxXkUo31v6RvL Q1kJqWnM+FybBHn7FUcr9URf7sTYebF2ZTY5+WIjpDwB1r0dL5VbXq1DDoyrweOdLG6h U3bRtqwxtHbIDk3IM0aK4VQ21IcMBqn8X+K+cHY76L2JnTlbP+eGJKebUkDhwhwUyD5/ A0EwkILkK8VWCP75Gfg+j5m041OttgJLBKNs1d7V8konojEfo00QtAawzEXVHa5GCQU7 c6fg== X-Gm-Message-State: AGi0PuY+0ghWfcZl9cexFEel6beJ9P4yjTxtDdkd+fO1U9IZDFcmmSOW 1ijFXwEBSR56DcZG5BJpdyzQ5X3ATvcrg4kr59J3TQ== X-Received: by 2002:a1f:5ec7:: with SMTP id s190mr695642vkb.58.1588207093257; Wed, 29 Apr 2020 17:38:13 -0700 (PDT) MIME-Version: 1.0 References: <20200428110253.1.I926f6741079cafb04ecb592130aef75b24ad31ae@changeid> In-Reply-To: From: Daniil Lunev Date: Thu, 30 Apr 2020 10:38:02 +1000 Message-ID: Subject: Re: [PATCH] platform/chrome: cros_ec_typec: Handle NULL EC pointer during probe. To: Enric Balletbo i Serra Cc: LKML , Prashant Malani , Benson Leung , Guenter Roeck Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [to make it appear on the mailing list as I didn't realize I was in hypertext sending mode] On Thu, Apr 30, 2020 at 10:11 AM Daniil Lunev wrote: > > Hi Enric. > I encountered the issue on a Hatch device when trying running 5.4 kernel = on that. After talking to Prashant it seems that any device with coreboot b= uilt before a certain point (a particular fix for device hierarchy in ACPI = tables of Chrome devices which happened in mid-April) will not be able to c= orrectly initialize the driver and will get a kernel panic trying to do so. > Thanks, > Daniil > > On Thu, Apr 30, 2020 at 7:58 AM Enric Balletbo i Serra wrote: >> >> Hi Daniil, >> >> Thank you for the patch. >> >> On 28/4/20 3:02, Daniil Lunev wrote: >> > Missing EC in device hierarchy causes NULL pointer to be returned to t= he >> > probe function which leads to NULL pointer dereference when trying to >> > send a command to the EC. This can be the case if the device is missin= g >> > or incorrectly configured in the firmware blob. Even if the situation >> >> There is any production device with a buggy firmware outside? Or this is= just >> for defensive programming while developing the firmware? Which device is >> affected for this issue? >> >> Thanks, >> Enric >> >> > occures, the driver shall not cause a kernel panic as the condition is >> > not critical for the system functions. >> > >> > Signed-off-by: Daniil Lunev >> > --- >> > >> > drivers/platform/chrome/cros_ec_typec.c | 5 +++++ >> > 1 file changed, 5 insertions(+) >> > >> > diff --git a/drivers/platform/chrome/cros_ec_typec.c b/drivers/platfor= m/chrome/cros_ec_typec.c >> > index 874269c07073..30d99c930445 100644 >> > --- a/drivers/platform/chrome/cros_ec_typec.c >> > +++ b/drivers/platform/chrome/cros_ec_typec.c >> > @@ -301,6 +301,11 @@ static int cros_typec_probe(struct platform_devic= e *pdev) >> > >> > typec->dev =3D dev; >> > typec->ec =3D dev_get_drvdata(pdev->dev.parent); >> > + if (!typec->ec) { >> > + dev_err(dev, "Failed to get Cros EC data\n"); >> > + return -EINVAL; >> > + } >> > + >> > platform_set_drvdata(pdev, typec); >> > >> > ret =3D cros_typec_get_cmd_version(typec); >> >