Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp626469imw; Thu, 14 Jul 2022 07:55:59 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vPPlfqfPNZ+k9RViT0iQYiZ9wl+LhkFYqtVM/B551a7ovRh21OImvawMJ02wqrRO5rTrD9 X-Received: by 2002:a05:6a00:a8b:b0:4e1:52db:9e5c with SMTP id b11-20020a056a000a8b00b004e152db9e5cmr8855722pfl.38.1657810559560; Thu, 14 Jul 2022 07:55:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1657810559; cv=none; d=google.com; s=arc-20160816; b=P88geLV5BET0w91ECiolXsuDFN2eLTKc0pDqFPtQmFH4Dj2UmVyz6OtpBY56b4cBQf DVmtUlEcHqhS0+vO4xLDT/2xQ3lkrKIM7oQmOV/eioVStmXeMPHyOYFKEZFMIW17noLJ sPrAScCa7Ow9k6iKYvZkjUyJXJ1nfHQuHSPbLkvBdKtdoq2gbl9XufWxlpTjliFCan9t J24N6KKjKzYfP6PfysffUAcS9qODGotA7a1in0gqjU9V+Y7z9DapRa3DyLe83XWAV1PD my4kzz8rbGwGXdu8pc/KqQMg1Cpkry5GktZWvKXZBX4EqATgc2g6DCVZw/LHWR3gkEIu B/6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=1X87mQYG95YA6ZZAAKldNH7qg7++iZIilnL645FgaYE=; b=Dh92Yvn9gEJPZide7o0AxD3OVB31uKyJRd5j1CA9GbD8fXSJERH+y0dnDsMi6NYzY3 OAUu8EPkUpQNtQ6zAW3V12jkNMUh/NdfNqTEocDscuBjHDimBZJY05nV2heFULzDd4o9 6z47lLxFBfJMOySKvnvez7R0ZJcZf8c1r6DYsG+/NkDBp7gFcQqtcLpBQLWwKdCJr/CQ LXNyNdRCIwGScq7sRRTmnFQ9CU/y9jsowbD+a4aXwFIKVp4c+ZGlKs6wLTnn9ROnSo5b r7KOvbBtmCAbDob+ASJWSM6HTKevAosPZEJvbSI3RmabLiFpm9R4YjqevMftXSXDZ2MQ 6T2w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=PTDNmnzI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k15-20020a633d0f000000b00412b1d694d6si1971890pga.155.2022.07.14.07.55.44; Thu, 14 Jul 2022 07:55:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=PTDNmnzI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 S232338AbiGNOaB (ORCPT + 99 others); Thu, 14 Jul 2022 10:30:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42636 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238976AbiGNO36 (ORCPT ); Thu, 14 Jul 2022 10:29:58 -0400 Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com [IPv6:2a00:1450:4864:20::62e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CA1845C95C for ; Thu, 14 Jul 2022 07:29:57 -0700 (PDT) Received: by mail-ej1-x62e.google.com with SMTP id va17so3833683ejb.0 for ; Thu, 14 Jul 2022 07:29:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=1X87mQYG95YA6ZZAAKldNH7qg7++iZIilnL645FgaYE=; b=PTDNmnzInPFykguc6N2+FlL1QMiTDe4AYkk6DNFVUa24DeXwL+7HiVkfBqWKNkUGv+ h10SXjpEZiFr6VFocoA1GetnziVXgTZgmdUHXxP1AQGjtpbpTZXOI1JG2FYPp6+WmTAl 1hZ2ObiE1+gmVGiT6t8GIp5VSG5vfdeyQy03+5AXgDT4yBWJWveIGxAPloaw0pbn8+fv Hcw9+lZkbxzTckXwE9OiUwUl7p1GpusnJC6UPqLJjVMsuFOV8vlKDTdAJ6JwYrb1Nufk 7d4wz2oewvVrJEOcN9qLxF3qc1wumIMmuIX/fCAn/4sZgyKOCAtX7l/JSf3MwN89fkD8 mKnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=1X87mQYG95YA6ZZAAKldNH7qg7++iZIilnL645FgaYE=; b=cj6j1iwMrQ0DDjT+qArZIcH9uS8ncIjRsVG68M1+4Y7jOieSLqMx1OoYXLV1om5nDO lYVLU6EkOLSkqOBVCAbB1mGFqsL0DjD50aHwTQCd8qR76v7WjXEC4yEhG0KSEVTvB8d0 fTazo48dHxS4WiLEcykmXc9GyeiPBxuVt4qZzIaU79mQAOIwRognBbVO2KFDwSsvtSch BBKIiCdHnvOzzK0TsIEjTzublgzOv9I6NchbR+FcMRjliZY0WsB89IEa+/IHZHtu/iWH /ZgtQ4sjiTvsxYFDYWYzgAQmJBN4csRJxI+cziK9TfJTUt8np8ijDAwvr+wWSm00Sq2H zCGg== X-Gm-Message-State: AJIora+4lTqjVIsqrIC+gscLdQuusZJQ3VpQlLJCSknR8q0S4bjFMoH/ dATTcHlQ5fgk18nJTaDxZod/6OtY0HzUY4ny2QJqdw== X-Received: by 2002:a17:907:720a:b0:72b:549e:305a with SMTP id dr10-20020a170907720a00b0072b549e305amr8680576ejc.691.1657808996109; Thu, 14 Jul 2022 07:29:56 -0700 (PDT) MIME-Version: 1.0 References: <20220628024913.1755292-1-tzungbi@kernel.org> <20220628024913.1755292-6-tzungbi@kernel.org> In-Reply-To: From: Guenter Roeck Date: Thu, 14 Jul 2022 07:29:45 -0700 Message-ID: Subject: Re: [RESEND PATCH 05/11] platform/chrome: cros_ec_proto: separate cros_ec_wait_until_complete() To: Tzung-Bi Shih Cc: Benson Leung , Guenter Roeck , "open list:CHROME HARDWARE PLATFORM SUPPORT" , linux-kernel Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jul 13, 2022 at 8:33 PM Tzung-Bi Shih wrote: > > On Wed, Jul 13, 2022 at 11:15:47AM -0700, Guenter Roeck wrote: > > On Mon, Jun 27, 2022 at 7:49 PM Tzung-Bi Shih wrote: > > > -static int cros_ec_send_command(struct cros_ec_device *ec_dev, struct cros_ec_command *msg) > > > +static int cros_ec_wait_until_complete(struct cros_ec_device *ec_dev, uint32_t *result) > > > { > > > - int ret = cros_ec_xfer_command(ec_dev, msg); > > > + struct cros_ec_command *msg; > > > + struct ec_response_get_comms_status *status; > > > + int ret = 0, i; > > > + > > > + msg = kzalloc(sizeof(*msg) + sizeof(*status), GFP_KERNEL); > > > + if (!msg) > > > + return -ENOMEM; > > > > AFAICS this is always 24 bytes. I would suggest to allocate it on the > > stack to reduce overhead. > > Ack. > > > > + ret = cros_ec_xfer_command(ec_dev, msg); > > > + if (ret == -EAGAIN) > > > + continue; > > > + if (ret < 0) > > > + break; > > > > With the command allocated on the stack, this can return immediately. > > Nack, the function has no goto labels. `return ret` follows the loop > immediately. The `break` here doesn't make it to become too complicated. > I would prefer to keep it. Sorry, you lost me here. The code after the loop does kfree(msg); return ret; If kfree() is no longer necessary, only the return statement is left. So break; is identical to return ret;. Am I missing something ? > > > > + > > > + *result = msg->result; > > > + if (msg->result != EC_RES_SUCCESS) > > > + break; > > > > Again, this can return immediately if the command buffer is on the stack. > > Nack. See above. > > > > - kfree(status_msg); > > > + if (!(status->flags & EC_COMMS_STATUS_PROCESSING)) > > > + break; > > > > Can return immediately. > > Nack. See above. > Really, for those I think that return 0; would be better and more explicit. > > > + kfree(msg); > > > + return ret; > > > > What should this return on timeout ? > > It returns either: > * -EAGAIN, if cros_ec_xfer_command() returned -EAGAIN > * 0, if EC_COMMS_STATUS_PROCESSING flag was on > for EC_COMMAND_RETRIES times so far. > > This is a "move" refactor. I would prefer to keep it as is and change the > behavior in later patch. Ok. Thanks, Guenter