Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp448115yba; Wed, 3 Apr 2019 11:53:32 -0700 (PDT) X-Google-Smtp-Source: APXvYqzCviG7n+jsTODMf7l4xO+27ygHWyZMyMUH2vSpjlG4IBjPXQwJ47FMKsZ84n008jkTerHH X-Received: by 2002:a63:d5f:: with SMTP id 31mr1254755pgn.208.1554317612111; Wed, 03 Apr 2019 11:53:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554317612; cv=none; d=google.com; s=arc-20160816; b=RdM7LW5l2xiO0pDFcDcPFc14bT1AxV4Aw5izVPXBLBHYAuXerAOQaYTASvW94XF+cZ Qnhi376jPOVgTHra7tdzLHAbHkFcsViiEZJAwj5j1kDRv206FUWpayAUIqja4XKXJ6dI CZCBrk29kmu+vN8533I/ds0LfTfUUunjBVGC90FWWidNcJZL4sEyaYhQw43IalLMIUZo zp9DwQ2rQ74vNVzsbinmx6uXQwzDOv2c6+ZyiYJIY+P/6ZEPvjYDd7SPTVA2gpcpvc3f MPWZkoTA1w7xQfrtmECX9Ib8jhMMu6ieS+G9LXuQZUN+QT1/FdhT8JOfL1GJhem3bOIn yfxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=DfNEHNjY605qQjhYPcj4LI28R/YU9XBILkyg9b+w2eY=; b=kztSJ1w4ff9HLNKgPdRdXu3S4Rxld8IaviXioon17Uuu9dfq22NgXZUL+hVQ+iIFpU N8XEzgaZgQTAQGTevfGkU2yFEALE2f3SeOVtvLku+4Z4MKdtL+ygDAFXA51/+3ZOYoMy S2751RHyzKS71lWfZrzcwODjyCG2vxB7kMOTFg+5b6wRRieJnp2FquryqSU7WPquNs3c rNRmQux4xCSVaHYarrDt0Ee9+wK5hpHDNkyT8Fq1bB8iG+8OWuUWOsTd1ZCeLheBXopS YBUBzO9hZtKzuxai7EdKf+LpLf8xwv7hMTbNNTKkCq0AOWsDDuXvOiYf4Aj6PLVM/G3D CPJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=mw3u0+xM; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h1si4535986pfj.187.2019.04.03.11.53.16; Wed, 03 Apr 2019 11:53:32 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=mw3u0+xM; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726656AbfDCSvR (ORCPT + 99 others); Wed, 3 Apr 2019 14:51:17 -0400 Received: from mail-yw1-f68.google.com ([209.85.161.68]:46635 "EHLO mail-yw1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726155AbfDCSvR (ORCPT ); Wed, 3 Apr 2019 14:51:17 -0400 Received: by mail-yw1-f68.google.com with SMTP id v127so6298070ywe.13 for ; Wed, 03 Apr 2019 11:51:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=DfNEHNjY605qQjhYPcj4LI28R/YU9XBILkyg9b+w2eY=; b=mw3u0+xMlu981r0QvR0dhOsRLISQi3Kbft/8ppnT0jM2owhg7C+Ya6BTyarXRdGq1k UgY4BRkE4u9nUjSYGJ52pkBvkGYXlRJorDiywUInPc0vKRe43Lth0Ta/i2hr/gg+vdct XmORA85tVxiUW0opUsHB5i0bwyInhqlnN7sqBFkBjhEGgV/pmSMXwEdXwoXzKdk8IoV9 mVmSUgUFx/kkHk+PHonfOI/75v3Mf3tiPu/BixA1ge7eG94NGB0/NsEj6U9UZUCLQNFd gNNdGisblpzwtGFoHkkbc59qRRWLqzdRq0HfBbXOAvIgFb/f1wEm+9l/Dpin5OQJOure r1Yw== 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; bh=DfNEHNjY605qQjhYPcj4LI28R/YU9XBILkyg9b+w2eY=; b=ghyk3DoxLszYtddyuhD0A+WFBfcMR1rdEyaNVX49Q0sFeO1A9ZdFX2eGOVyUfkyPYr w48qgAo/kIpNdJ6ZlG47CWyUljV+7mqYK2j0MFsNofbn0ixKmDMPQOgtRYlHN6dRqcuf bqpuBKgSY0uTwMEkx+vEclPA5sJYXBmj/fKcReuSdme2QxoGD+jeKIsYWkUbbrvE8yMP b2Pw2U3AVdVoD2tLQ/B7OC6gFNmpWLYIzTYv7ekBR1PsQF0oPXKrIUBARImKH/wd7/uM cTFPzA2RGFffqL4s/4rWii1nFemMEFPwyRaJPeCtWibuTslIpS72TnJlpVQVffXlXqAQ Gp9A== X-Gm-Message-State: APjAAAWC+Fq+FA7pMku+Rs8AvGZKpxJVy8U66fVrr+jujUkrAfaaln8y Z+yhZF1Cqjuv5zHUZSUgmTMHdSDClXbshOoeY+THaQ== X-Received: by 2002:a81:a18b:: with SMTP id y133mr941254ywg.64.1554317475839; Wed, 03 Apr 2019 11:51:15 -0700 (PDT) MIME-Version: 1.0 References: <20190403183048.56750-1-egranata@chromium.org> In-Reply-To: <20190403183048.56750-1-egranata@chromium.org> From: Guenter Roeck Date: Wed, 3 Apr 2019 11:51:03 -0700 Message-ID: Subject: Re: [PATCH] mfd: cros_ec: check for NULL transfer function To: egranata@chromium.org Cc: Benson Leung , Guenter Roeck , Gwendal Grignou , Alexandru M Stan , Enric Balletbo i Serra , linux-kernel Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Apr 3, 2019 at 11:31 AM wrote: > > From: Enrico Granata > > As new transfer mechanisms are added to the EC codebase, they may > not support v2 of the EC protocol. > > If the v3 initial handshake transfer fails, the kernel will try > and call cmd_xfer as a fallback. If v2 is not supported, cmd_xfer > will be NULL, and the code will end up causing a kernel panic. > > Add a check for NULL before calling the transfer function, along > with a helpful comment explaining how one might end up in this > situation. > > Signed-off-by: Enrico Granata > --- > drivers/platform/chrome/cros_ec_proto.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/platform/chrome/cros_ec_proto.c b/drivers/platform/chrome/cros_ec_proto.c > index 97a068dff192d..953076ab401aa 100644 > --- a/drivers/platform/chrome/cros_ec_proto.c > +++ b/drivers/platform/chrome/cros_ec_proto.c > @@ -56,6 +56,16 @@ static int send_command(struct cros_ec_device *ec_dev, > else > xfer_fxn = ec_dev->cmd_xfer; > > + if (xfer_fxn == NULL) { > + /* This error can happen if a communication error happened and > + * the EC is trying to use protocol v2, on an underlying > + * communication mechanism that does not support v2. > + */ I am not personally a friend of networking-style multi-line comments. > + dev_err(ec_dev->dev, > + "missing EC transfer API, cannot send command\n"); That message will be displayed each time a message is sent, ie in practice for each message. Is there any value in that, other than clogging the log ? Guenter > + return -EIO; > + } > + > ret = (*xfer_fxn)(ec_dev, msg); > if (msg->result == EC_RES_IN_PROGRESS) { > int i; > -- > 2.21.0.392.gf8f6787159e-goog >