Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp3010089yba; Mon, 8 Apr 2019 09:11:45 -0700 (PDT) X-Google-Smtp-Source: APXvYqyPjUJ4hVp21XnPQjI9PNu5fj+DhA4V5hjNbikP3Esv6XGagWJw7L+c0/0lGL6mp+8r4YQX X-Received: by 2002:a17:902:525:: with SMTP id 34mr19888977plf.138.1554739905712; Mon, 08 Apr 2019 09:11:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554739905; cv=none; d=google.com; s=arc-20160816; b=Ct7Gt11eVGoAZ38meZrmAoxJmDsK4AiRuvRaHHorNvCsxVVPur4qP5+RfXwGiwjoUO vPuQFJh/3CZjx7VfKY/sdr3v1Sg9pjqErAUEeO+DzC3w/WvnfifEPwYCWKj/BBQzkAVU P3RImIx5qFZbj+dqbohP5ROhyd4a5EQO6nctQbQ5iFlQPcjkTQ85A65c/zxUsvQopsT8 Z0PY5Yqg6QuoVraf0FTbOTSucQKktzkEEZac6ZxmAPyNYltBCBKCcqk2b1J1lg8WmBUN YmW0uebZ5CkSJ1JGsDCHB6DkVYU92e6q5AXpVgzaf7a1oAORqwcFoxswwIIqdsJqJFKL QFZQ== 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 :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=KLKY1OwBZ7z7tLUm+DaO4ccU8D6f0Ngmd85xIzER9xU=; b=077YiD/42jsyqtfHkdOZL86iiJWKFoKaj/1F7qWmJu2SQ7bRJdLHhNwEBBRS0t55u1 Z6d8Evh6VtQ7Ok/YsAz32HK6LyvUrWtauTL/dO9RWuquVaSWYvoD0ZnbkmGL6eI5l/as bdl2AsPhU02hXyXkXdojxjjoYFhoaIiqwft04Qr+BzYX4TyqNcQIALzD85072y/PdUB1 6I7N1yXTNXIKfArLEiY2bt+cOXp0KD/V3SJDV3TFlihdKYFQqEMtSoK0qflYyRD1ANrN djmPwFPTvfASExCRaHHwIlr00yQcEXikTnXf8KBAZWSl/IzUpUHwrAHeoOo5FEOhu7l/ YZIw== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z10si26418326pgi.233.2019.04.08.09.11.30; Mon, 08 Apr 2019 09:11:45 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729020AbfDHPub (ORCPT + 99 others); Mon, 8 Apr 2019 11:50:31 -0400 Received: from bhuna.collabora.co.uk ([46.235.227.227]:46128 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726549AbfDHPub (ORCPT ); Mon, 8 Apr 2019 11:50:31 -0400 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: eballetbo) with ESMTPSA id BB0162817F8 Subject: Re: [PATCH v2] mfd: cros_ec: check for NULL transfer function To: =?UTF-8?Q?Jett_=e2=9c=88_Rink?= , egranata@chromium.org Cc: Guenter Roeck , Benson Leung , gwendal@chromium.org, amstan@chromium.org, linux-kernel References: <20190403224036.203632-1-egranata@chromium.org> From: Enric Balletbo i Serra Message-ID: Date: Mon, 8 Apr 2019 17:50:27 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Enrico, Many thanks to send this upstream. On 4/4/19 18:00, Jett ✈ Rink wrote: > Reviewed-by: Jett Rink > > On Wed, Apr 3, 2019 at 4:40 PM 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..55691656a3c27 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 Like Guenter I personally don't like the networking-style multi-line comments. We try to use the default kernel-style so if you don't mind I'll change this. >> + * the EC is trying to use protocol v2, on an underlying >> + * communication mechanism that does not support v2. >> + */ >> + dev_err_once(ec_dev->dev, >> + "missing EC transfer API, cannot send command\n"); >> + return -EIO; >> + } >> + >> ret = (*xfer_fxn)(ec_dev, msg); >> if (msg->result == EC_RES_IN_PROGRESS) { >> int i; >> -- >> 2.21.0.392.gf8f6787159e-goog >> I'll add the patch to the for-next branch in chrome-platform repository for auto-builders to play with. If all goes well I'll queue the patch for chrome-platform-5.2. Thanks, Enric