Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp1790500imm; Thu, 27 Sep 2018 02:32:15 -0700 (PDT) X-Google-Smtp-Source: ACcGV62YHkzZFkQ1c99VeoyeAXhGvjAvjJk7lr4da/8gZU7/+JOvgxXoPeNBeOF5iYuF51WykGpQ X-Received: by 2002:a62:2a48:: with SMTP id q69-v6mr10483597pfq.86.1538040735576; Thu, 27 Sep 2018 02:32:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538040735; cv=none; d=google.com; s=arc-20160816; b=aG8VjKpXGUsA8LEoBO6OlGBT/S5+WXqn7Do9uZ9ZW5l6MYg+WzmHKX2BU4vi8qFaDY zof5ZqNXTID+wH1idmca9nC0gdwdShgfHHgKASribVBQHYIfDs5cBXdYpTNSW/bQoXnV DlZOAkF/2wmOY33dWxjIIG4ziVmrD6o1hPczPwpC9H3kgo8Yc12EXnl7sMnRJsHGnh7A HirramW+dmhqC2tg8SVaLnHO8YYEf5PVqnoCv01f1XAyU6wGEmhdVLoPr/rMeAPeEdhS Su5yj43X9cOI8+wFoqnSA89ZCBVUyJquz85ckrzbFmgTU22JtOhpc78ZAe+vNYiI8C55 WnRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=RCkGCpvs/pIJfzl1hqgJyV8S7mNiaxU/q1QUTQktp3M=; b=Rm7HTfVTgdoKenHhYcoY86wIl01kjyAT5LnIc48sZHKeRN3fAqWOhJNlnBDMKIds2N VMh+dbpUd4d6khXNbxR4EdODD/NjP9//rzH72F0n7oG38aEhZBRGOLz9PGLXGEGK+gO3 LiPQuFm31GQHP7WLFtFs8zI9ZryXwxiJ7paoERV8XCMugQ3Dl2qGLyFzK7FaF/RRtNBS 87+i2SyceRUkGGw8wX7aiFayj1sJ1JLj4EXehqCmfEY+DuStt8MY8EztrM+oiPwren3D whF/HLz8P540DjQpn4zziErJ9JpA88zUCMO6qkukzEFEnK9kdtWMzdsu4GspVn/Ba5F6 7ISw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="rwD/jTRM"; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b27-v6si1489479pgb.156.2018.09.27.02.32.00; Thu, 27 Sep 2018 02:32:15 -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=@gmail.com header.s=20161025 header.b="rwD/jTRM"; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728501AbeI0PsG (ORCPT + 99 others); Thu, 27 Sep 2018 11:48:06 -0400 Received: from mail-ua1-f67.google.com ([209.85.222.67]:36821 "EHLO mail-ua1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727262AbeI0PsF (ORCPT ); Thu, 27 Sep 2018 11:48:05 -0400 Received: by mail-ua1-f67.google.com with SMTP id m26-v6so697126uaq.3 for ; Thu, 27 Sep 2018 02:30:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=RCkGCpvs/pIJfzl1hqgJyV8S7mNiaxU/q1QUTQktp3M=; b=rwD/jTRM/42bN9D+lUv/A7OSoDpTtTsdBNBp7rEbNver0LeTHq9E/7Rahv16iRUNzg c4oJ9VI5hJ79k9R7cqiLFhMnPmD/YLu8kOeku1a0KvUMpeVj6KXsFm2UW4Y3ehw6ndoh STvNMDOX/ocswmDDVxjDAdZz1gZrSroz3C0tDDK3LaRLkDwbV36yC0D6Vo8GWr4eeIPg OAvO9UHWDDyfvpmmqlop6/YieJKfUtd9vK7oFsMqu/1vFzpfUbP2s4SyBFlGOzu5uCBn Snyt/z33FN+tK+iORzEuPYpO0AZnjYJDSPhExhTZ4LNFGitmux9fwKLISetunJ/BYsEp 78bA== 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; bh=RCkGCpvs/pIJfzl1hqgJyV8S7mNiaxU/q1QUTQktp3M=; b=j5opcm43eQ1K9oBekFItSX16ZWeBu8jexud4n5eJeDKbVc5ZprI8O+PXSwKU6D9Ydw 8fOy0cSSGeLfJ4RGiFZ/+gG931L80zy8fCXY65hEWjnER97ZuAQGIN75/PyU+rW98jra VGXGOZQ1FdONQxiGqKPENltmNiTtl4qD9duPPk82yz+sfDPNZXIkmiSIyOyXEHecSaUF dTDKIcmwEdLVIknzMvEmERfTAZN9G0qe4TBiMNuWW2V5HSV4WAdCopx5TMoguQhmFQKD wr32O7ie0pDD5d28yc++ogjwAhaMKshWmUnIpAN4Cs8mD8sL5k2CFUfocJn+OSKGi90Y uvbw== X-Gm-Message-State: ABuFfoiVmjmnF9VfKz2tsDUjQ5S134mIulAI3PzdtD5rWl5JvEpAqDtf OgbOBWvH0lu1FlytpsQA1zNRK6SW6JmGPpNRJA== X-Received: by 2002:ab0:3194:: with SMTP id d20-v6mr3525836uan.122.1538040643352; Thu, 27 Sep 2018 02:30:43 -0700 (PDT) MIME-Version: 1.0 References: <20180927092427.507-1-jekarlson@gmail.com> In-Reply-To: <20180927092427.507-1-jekarlson@gmail.com> From: Emil Karlson Date: Thu, 27 Sep 2018 12:30:31 +0300 Message-ID: Subject: Re: [PATCH] mfd: cros-ec: copy the whole event when msg->version is 0 To: Emil Renner Berthing , Neil Armstrong , Stefan Adolfsson , linux-kernel@vger.kernel.org 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 To note I have almost no idea what I am doing and ended up wondering, whether the messages are always truncated and it only shows on version 0, because the messages are not padded to longer lenght. Alternatively the ret could possibly be used as copy length without the -1, right now I am unable to test with version 1, possibly it requires update of cros-ec firmware. Best regards -Emil On Thu, Sep 27, 2018 at 12:24 PM Emil Karlson wrote: > > Commit 57e94c8b974db2d83c60e1139c89a70806abbea0 caused cros-ec keyboard events > be truncated on many chromebooks so that Left and Right keys on Column 12 were > always 0. This commit fixes the issue by restoring the old semantics when the > protocol version is 0. > --- > drivers/platform/chrome/cros_ec_proto.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/platform/chrome/cros_ec_proto.c b/drivers/platform/chrome/cros_ec_proto.c > index 398393ab5df8..457e4940dba4 100644 > --- a/drivers/platform/chrome/cros_ec_proto.c > +++ b/drivers/platform/chrome/cros_ec_proto.c > @@ -519,8 +519,14 @@ static int get_next_event_xfer(struct cros_ec_device *ec_dev, > > ret = cros_ec_cmd_xfer(ec_dev, msg); > if (ret > 0) { > + unsigned int copy_size; > + > ec_dev->event_size = ret - 1; > - memcpy(&ec_dev->event_data, msg->data, ec_dev->event_size); > + if (!version) > + copy_size = sizeof(struct ec_response_get_next_event); > + else > + copy_size = ec_dev->event_size; > + memcpy(&ec_dev->event_data, msg->data, copy_size); > } > > return ret; > -- > 2.19.0 >