Received: by 2002:a05:6358:f14:b0:e5:3b68:ec04 with SMTP id b20csp6608183rwj; Wed, 21 Dec 2022 18:36:08 -0800 (PST) X-Google-Smtp-Source: AMrXdXvPcZcA+uf2GGy34wIclbcyJ38Vc9O/o6RIu9WSLEgbuj4gJiytlrsOQ3iBxZ+8op76HSLe X-Received: by 2002:a05:6402:501f:b0:460:5706:d1fa with SMTP id p31-20020a056402501f00b004605706d1famr3649724eda.18.1671676567942; Wed, 21 Dec 2022 18:36:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671676567; cv=none; d=google.com; s=arc-20160816; b=chYIK3zvT8DpYuAM1BUUtojCqLrN8mi6Zn2jwjuGG5H+ma68vaqf+EHk9UA6PtxkZx hyKgzxg2pGaIseGm2cRESKbw3KsJMfUQ0SCNd9BxnoTUxOWmJfpqAsb1gvOxHssuYaDa 2aNAFZJREu1EHJIHIClVjz8FgK4Ygi1ahCfHq08cqQIz4PIaP0sRNbWix1wWXAh7nkhb hMMCNTUM/fRYV6cNz1vxLv2snYBBTCfXrj0n0JBB6FZ/23cIk3X6OdTkqLVh/kg48HZy pNXvj5nzTl36WUWHAjmyBa62cCPq8goMsTVrW0sMVbMiCbIn370YiIimr8OHZ3eHVupJ XaTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=t6eb2QLxGLA5nQWox1Il1mb2LunPDzmdoel/IXxPIUE=; b=IZYKdh26DmrXuz32MEO6p5FmZZQj6dU0y0aUhaHyP7t0QJCmoRnZvctNHnPU1JpEkU 1de9r68sokfnm17GUkK148X01kUhiPbt2MjTAM3mRf1v4LoT6ROmJXqrcEHjBSiX5zWC Di+bxMw8pGA79x6/DVJaGCdcwaD7J57ll3dzrOxJzsyC51SCbmJVHZffMmgUjpo1qz7P K/BYJ1GjpdmaP4/2BVpRvjAks89AmPBORx1hv8m0henX5GiBZk30NwWAlKsNJ6ACQfkS ctb98doCehrFp4DyZTQMuU2BoW930Jc88L//N+QBQJZikVOTNyP5hFp+mtEG8kSRRlvi RtzA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=lqFalmTu; 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=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s25-20020a056402037900b00461d9b46883si13777129edw.519.2022.12.21.18.35.23; Wed, 21 Dec 2022 18:36:07 -0800 (PST) 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=@chromium.org header.s=google header.b=lqFalmTu; 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=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229726AbiLVC0w (ORCPT + 68 others); Wed, 21 Dec 2022 21:26:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44194 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229561AbiLVC0u (ORCPT ); Wed, 21 Dec 2022 21:26:50 -0500 Received: from mail-io1-xd31.google.com (mail-io1-xd31.google.com [IPv6:2607:f8b0:4864:20::d31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5936265F1 for ; Wed, 21 Dec 2022 18:26:49 -0800 (PST) Received: by mail-io1-xd31.google.com with SMTP id v2so368946ioe.4 for ; Wed, 21 Dec 2022 18:26:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=t6eb2QLxGLA5nQWox1Il1mb2LunPDzmdoel/IXxPIUE=; b=lqFalmTuR89YV96zutl+2zViNboGd6NP7NUPn24Jfc7wEe13OpK7k5Yxw9oFR1VCVJ EjwSUfnQ3groAx71Zed974hxE8G6xpMMpnyHXDlfog3zBI2HFPe66EEt37PzVnkEgs2p VSfhsC/OWfr7Kuu7VUfS5etJaDVBJXAEoMcyc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=t6eb2QLxGLA5nQWox1Il1mb2LunPDzmdoel/IXxPIUE=; b=GeUntvzOsxx5WEnjPESdjJ1ubP0E/KtfE3LzFL9wJM5PSjocZFyBAW85iHcvp2p1KZ z6yLtfF98JQHgzVLVQdgpvPda4ddO11jNQLpuBr00St3DE7bRy52zZEBNR/7RQ8CGc1J OqNVkxHs433lD5xjJEV76hfpMwdN2y8pnrfLu1vLPJFdl7OVsxBHRPlAh+SGhmW65nkB cryXRNrYuGzEDhoJCzXjc3qdbptkBLjSMabMy7Ap5X1fjwUDnt1XAqr2SlP2sKxSgO/u JdfBEI+5oUj1TzNGqOVL1JVWVMw4ov+copd+hxGAhLYIw2Slbq33zkHZgU/urQMMGOjT PwxA== X-Gm-Message-State: AFqh2kp/FllM5lkXwZcZvJzYlW5IG+VFXlnQlUVZYaCoFmG5+KoNFpbD EbHcn46q/hYfTuVMjgakz40p9w== X-Received: by 2002:a5d:9347:0:b0:6de:acb8:636d with SMTP id i7-20020a5d9347000000b006deacb8636dmr2382046ioo.19.1671676008773; Wed, 21 Dec 2022 18:26:48 -0800 (PST) Received: from localhost (30.23.70.34.bc.googleusercontent.com. [34.70.23.30]) by smtp.gmail.com with UTF8SMTPSA id i1-20020a056602134100b006a129b10229sm6812507iov.31.2022.12.21.18.26.48 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 21 Dec 2022 18:26:48 -0800 (PST) From: Matthias Kaehlcke To: Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, Stefan Wahren , stable@vger.kernel.org, Douglas Anderson , Matthias Kaehlcke , Ravi Chandra Sadineni Subject: [PATCH v2 1/2] usb: misc: onboard_usb_hub: Don't create platform devices for DT nodes without 'vdd-supply' Date: Thu, 22 Dec 2022 02:26:44 +0000 Message-Id: <20221222022605.v2.1.If5e7ec83b1782e4dffa6ea759416a27326c8231d@changeid> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS 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 The primary task of the onboard_usb_hub driver is to control the power of an onboard USB hub. The driver gets the regulator from the device tree property "vdd-supply" of the hub's DT node. Some boards have device tree nodes for USB hubs supported by this driver, but don't specify a "vdd-supply". This is not an error per se, it just means that the onboard hub driver can't be used for these hubs, so don't create platform devices for such nodes. This change doesn't completely fix the reported regression. It should fix it for the RPi 3 B Plus and boards with similar hub configurations (compatible DT nodes without "vdd-supply"), boards that actually use the onboard hub driver could still be impacted by the race conditions discussed in that thread. Not creating the platform devices for nodes without "vdd-supply" is the right thing to do, independently from the race condition, which will be fixed in future patch. Fixes: 8bc063641ceb ("usb: misc: Add onboard_usb_hub driver") Link: https://lore.kernel.org/r/d04bcc45-3471-4417-b30b-5cf9880d785d@i2se.com/ Reported-by: Stefan Wahren Signed-off-by: Matthias Kaehlcke --- Changes in v2: - don't create platform devices when "vdd-supply" is missing, rather than returning an error from _find_onboard_hub() - check for "vdd-supply" not "vdd" (Johan) - updated subject and commit message - added 'Link' tag (regzbot) drivers/usb/misc/onboard_usb_hub_pdevs.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/usb/misc/onboard_usb_hub_pdevs.c b/drivers/usb/misc/onboard_usb_hub_pdevs.c index ed22a18f4ab7..8cea53b0907e 100644 --- a/drivers/usb/misc/onboard_usb_hub_pdevs.c +++ b/drivers/usb/misc/onboard_usb_hub_pdevs.c @@ -101,6 +101,19 @@ void onboard_hub_create_pdevs(struct usb_device *parent_hub, struct list_head *p } } + /* + * The primary task of the onboard_usb_hub driver is to control + * the power of an USB onboard hub. Some boards have device tree + * nodes for USB hubs supported by this driver, but don't + * specify a "vdd-supply", which is needed by the driver. This is + * not a DT error per se, it just means that the onboard hub + * driver can't be used with these nodes, so don't create a + * a platform device for such a node. + */ + if (!of_get_property(np, "vdd-supply", NULL) && + !of_get_property(npc, "vdd-supply", NULL)) + goto node_put; + pdev = of_platform_device_create(np, NULL, &parent_hub->dev); if (!pdev) { dev_err(&parent_hub->dev, -- 2.39.0.314.g84b9a713c41-goog