Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp7037645rwd; Tue, 6 Jun 2023 05:41:54 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6FABGFpqlF8/B6Jjp+50qGdJnRGqUxJF/TTrtlGcRFZn/C4JpNdysRH9R6iTn6ailnG9zp X-Received: by 2002:a05:6a00:139f:b0:64d:46b2:9a58 with SMTP id t31-20020a056a00139f00b0064d46b29a58mr2688694pfg.26.1686055314469; Tue, 06 Jun 2023 05:41:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686055314; cv=none; d=google.com; s=arc-20160816; b=FT+BvhAme2NXaGiHu0UjuEwD4sO9uThL8ZPaIdpfxJMhNvoi6+xxLDSzNBvZUwIuZ/ 3/nX8Tx+G6zEgyYl8wwymT7dNzScDqa99NKiIaLHkWwxc143yTvMR5THnH5YEixNa86p DoNcbSlHEtsnmT/WVAYw7+JF5KrxwAG6vVPD5eTXHdiR0wTNCYQcpZOBHJh4B0zNninO aduudRcvzIAbrDzSqcSLbcCnoYnacbhhNOpq7LVeffKlpCESQYrROvA4f+7XUSeTJiTk cvy6qLKoocMocQRpRsGfHMQmsr/5tTnJ4pqHExFAsXImDXkw055YJ8c/R+OkelAtgtBW nvEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=XINeOMROcoKiU5lnuNf2dxDyn75tbOYyhZZuyc0/MtU=; b=D2jnAYaA450XapaVqXpxhegBNVX+3Q0OyPT0bT+K6VKd+S7dFlw7t4ZrtIhOc3dwVT FCzDJAbAnp+TiG0tIAsoX0dp1hzJQhwcGH9CAfgsgsA184H6XBBTtqsnc/D0C37qmef5 kBS9itBhTqRMzqtwXQyxB1Q8986Qj1kgb8V3pS5j31bjzP13GY1YdGWClcWtnQV8ETvU v4u/8x2aVSJUUJGVDlsMGBC47OAfiZgFuUWkmhghUBCgkxLzSNWGCQLDwzVMnFQXDZQE xJ+ypZiQRxDZ9WMuDvKwq9BzlYcXdz82xjmpwBlyM3RGVTwVaadYCXJprjRPd/HT34+r iaHQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux-foundation.org header.s=google header.b=Ht1rRnGW; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k185-20020a6384c2000000b00542cc509067si6075185pgd.154.2023.06.06.05.41.42; Tue, 06 Jun 2023 05:41:54 -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=@linux-foundation.org header.s=google header.b=Ht1rRnGW; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237637AbjFFMUR (ORCPT + 99 others); Tue, 6 Jun 2023 08:20:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54968 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236086AbjFFMTt (ORCPT ); Tue, 6 Jun 2023 08:19:49 -0400 Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com [IPv6:2a00:1450:4864:20::632]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7FD7EE67 for ; Tue, 6 Jun 2023 05:19:46 -0700 (PDT) Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-9768fd99c0cso774548666b.0 for ; Tue, 06 Jun 2023 05:19:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1686053984; x=1688645984; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=XINeOMROcoKiU5lnuNf2dxDyn75tbOYyhZZuyc0/MtU=; b=Ht1rRnGWAxNs+fy4VYwbA4YstgOHvi3EWTaNg5g5C22fNHBLKSBnG4HImDtoOf+/zn J7DXGNJvF39X/5FeUmXzm5fXrzXHODgTb26c2Keg1LonvWDg5wHcAQ32xUutTLc/jv5P jHpML4iPmD1KMvDoxSlQ9b6mOK6a8cKJDepSk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686053984; x=1688645984; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XINeOMROcoKiU5lnuNf2dxDyn75tbOYyhZZuyc0/MtU=; b=QILd8EiWcGBGycrSs3YuYD+JuuXJqge1+YFPU3W5lno+ZhD9i7BLARcTRahODG7xWu yXjqU9wZe6P4SZzFwQcDBUoce1R8x8BwCzW0I1agfZNqyz5fNpXZzZRDqWMGVd+VVFQm Inbk+/JuhPJA4Z2tFcvPfkK+9A0tJDNzuafnYwPV0Z3M2GlsPzMmuap0ivg22bpJowyg GoZkrvaMj8Ec/0hx8MOBJP+U6UXMEDnwb+cAQQnZ7fiNE0E6rIRp0cGx3sU0OCU5Gvyy 5UBpBKboxZrfVOp1MBVlq/ritt1Ls0j2b15WVbZ9wnMOHtAJ8gZT8P4cFBYVN2DPydXc GlzA== X-Gm-Message-State: AC+VfDxdVrDuD+O1Bv9A5Oi5405KxOvd+IASGCGdcg3vQzlLvggLhm/j iVqequAWDLwwFHpFqKO1shtV1bKbPN8uSlX4+1OTgyRs X-Received: by 2002:a17:907:96a1:b0:973:e5bf:281e with SMTP id hd33-20020a17090796a100b00973e5bf281emr9049965ejc.27.1686053984635; Tue, 06 Jun 2023 05:19:44 -0700 (PDT) Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com. [209.85.208.44]) by smtp.gmail.com with ESMTPSA id l12-20020a170906a40c00b00971433ed5fesm5393312ejz.184.2023.06.06.05.19.44 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 06 Jun 2023 05:19:44 -0700 (PDT) Received: by mail-ed1-f44.google.com with SMTP id 4fb4d7f45d1cf-5147e441c33so12383769a12.0 for ; Tue, 06 Jun 2023 05:19:44 -0700 (PDT) X-Received: by 2002:a05:6402:34c4:b0:516:5b18:a9f1 with SMTP id w4-20020a05640234c400b005165b18a9f1mr6873421edc.0.1686053983752; Tue, 06 Jun 2023 05:19:43 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Linus Torvalds Date: Tue, 6 Jun 2023 05:19:26 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [GIT PULL] HID regression fix To: Jiri Kosina Cc: Benjamin Tissoires , linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED autolearn=no 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 Mon, Jun 5, 2023 at 2:39=E2=80=AFPM Jiri Kosina wrote= : > > - Final, confirmed fix for regression causing some devices connected via > Logitech HID++ Unifying receiver take too long to initialize (Benjamin > Tissoires) Thanks. The 'don't use goto' looks good, but can we simplify things further? In particular, this kind of loop is why "do { } while ()" exists. But also, testing "ret" in that end condition is all kinds of strange. It smells of Pascal loops, because Pascal didn't have any sane control flow (little known fact: in a rare show of self-reflection, "Pascal" was named to sound like the Finnish word "paska", meaning "shit"). The *sane* thing to do is not to test "ret" in the loop condition, but just add the obvious control flow - so the code that wants to retry should just do 'continue' in that loop. Then the loop itself ends up being just do { ... } while (--max_retries); and we don't need any fake initialization of 'ret'. Anyway, just a thought. It would also simplify things a lot if that function was split up so that you'd have that whole loop in a helper function. That way it could just use "return ret" or whatever, with the mutex_lock/unlock in the caller. Btw, it does look like the code is mixing two different kinds of return types in 'ret': regular Linux error numbers as negative numbers, but then possibly positive "HIDPP status" values that it gets from the report (ie ret =3D response->rap.params[1]; ends up being returned as a value, mixed with ret =3D -ETIMEDOUT; so which is it? A negative error, or a positive HID report byte value? Or b= oth? Linus