From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BD43735A398 for ; Tue, 12 May 2026 23:29:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778628589; cv=none; b=iKz/8bogZZKQF64kj8JFzL+sX0oF6Gmrjiq5sEaQDS3XcFkIZsLN1BdEW0b970jTF9WJ8jNCHgyR3ZACi5GJRZXvE2CjBhrW4t9o14y9+dw9XdDO92kXja+sNlftlkmsBzEpKPRoe8b1v5B6LLNfOSGHkIhWMTX21YGmethLP0M= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778628589; c=relaxed/simple; bh=Phvim/89ff0uCEi93PKL577+gi18W7Cu7eVSwxkmdjA=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=aNuuuZCetIkgPJoW7SamSQkLIP/DgbI2X6DvdEvTZdyLu/LKZuDGUjocnD+1DO9/L4Pe1aYZSHp1Hr6ZGQozqnFtEPEkWaVxfZCim+8PdPF6oA9A15R2LReFc7luhrCej8Pz2CccKWuuZ222n9RpEt/6x77fj3VRS1gljpdQ1FA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AvR+BrRB; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="AvR+BrRB" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 35D5AC2BCB0; Tue, 12 May 2026 23:29:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1778628589; bh=Phvim/89ff0uCEi93PKL577+gi18W7Cu7eVSwxkmdjA=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date:From; b=AvR+BrRBpZ+cRdNRTOuQTGj325oL81MQOlk3Th9FIH558WlQDO7380LYLLgzWVQuj HHyhpK6LcNKTXbnZewCoZyYjAKbthAb83YCY3QnTmQHRacI1L+f46BKIn/WWEyPPa5 fPESS/UqJoGF8nHOGNJPaXp0X2A6AeluxTCuJqBzzZ9LHbWwhRylm+J/hH+HN9923+ xL3Z0ssvwnO/AEdYLHHMowi4Uti5Zl7VHlvOFBxIwYBjqtAbcnLNjd+V0/70NJ3a+i ToNkMZp4IVUuLSw6+z8bWrSHouww9NBbKEK0ZOKoW5oq+znUGo8jRrQPbC9pNp2KZN ZDtcrty9yrtQQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v1 2/6] usb: chipidea: tegra: Avoid controller/PHY init if bus is externally controlled Reply-To: sashiko-reviews@lists.linux.dev To: "Svyatoslav Ryhel" Cc: conor+dt@kernel.org, neil.armstrong@linaro.org, vkoul@kernel.org, krzk+dt@kernel.org, robh@kernel.org, devicetree@vger.kernel.org, olteanv@gmail.com, linux-phy@lists.infradead.org In-Reply-To: <20260511135703.62470-3-clamor95@gmail.com> References: <20260511135703.62470-3-clamor95@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Tue, 12 May 2026 23:29:48 +0000 Message-Id: <20260512232949.35D5AC2BCB0@smtp.kernel.org> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Thank you for your contribution! Sashiko AI review found 2 potential issue(= s) to consider: - [High] Unbinding the `tegra_usb` driver when `nvidia,external-control` is= present causes a NULL pointer dereference. - [Medium] Unconditional call to `usb_phy_shutdown()` in `tegra_usb_remove(= )` on an uninitialized PHY triggers a kernel warning. -- commit 3826697c3ab50338add8e2c889c119f3dae6b570 Author: Svyatoslav Ryhel usb: chipidea: tegra: Avoid controller/PHY init if bus is externally contro= lled If the USB controller and PHY are externally controlled, the registration of the controller and the PHY initialization are skipped. This delegates configuration to the device that controls the bus. > diff --git a/drivers/usb/chipidea/ci_hdrc_tegra.c b/drivers/usb/chipidea/= ci_hdrc_tegra.c > index 372788f0f9701..593390a818d12 100644 > --- a/drivers/usb/chipidea/ci_hdrc_tegra.c > +++ b/drivers/usb/chipidea/ci_hdrc_tegra.c [ ... ] > @@ -342,12 +348,14 @@ static int tegra_usb_probe(struct platform_device *= pdev) > if (of_usb_get_phy_mode(pdev->dev.of_node) =3D=3D USBPHY_INTERFACE_MODE= _ULPI) > usb->data.flags &=3D ~CI_HDRC_SUPPORTS_RUNTIME_PM; > =20 > - usb->dev =3D ci_hdrc_add_device(&pdev->dev, pdev->resource, > - pdev->num_resources, &usb->data); > - if (IS_ERR(usb->dev)) { > - err =3D dev_err_probe(&pdev->dev, PTR_ERR(usb->dev), > - "failed to add HDRC device"); > - goto phy_shutdown; > + if (!usb->externally_controlled) { > + usb->dev =3D ci_hdrc_add_device(&pdev->dev, pdev->resource, > + pdev->num_resources, &usb->data); > + if (IS_ERR(usb->dev)) { > + err =3D dev_err_probe(&pdev->dev, PTR_ERR(usb->dev), > + "failed to add HDRC device"); > + goto phy_shutdown; > + } > } > =20 > return 0; When nvidia,external-control is present, usb->dev is left uninitialized and remains NULL. Does the unbind path still try to use it? Looking at tegra_usb_remove(), it unconditionally calls ci_hdrc_remove_device() with usb->dev: static void tegra_usb_remove(struct platform_device *pdev) { struct tegra_usb *usb =3D platform_get_drvdata(pdev); ci_hdrc_remove_device(usb->dev); ... This looks like it could lead to a NULL pointer dereference, as ci_hdrc_remove_device() dereferences the pointer immediately without checki= ng: void ci_hdrc_remove_device(struct platform_device *pdev) { int id =3D pdev->id; ... Could this regression cause a crash on device unbind or module removal when the controller is externally controlled? Additionally, when the PHY initialization is skipped during probe, does tegra_usb_remove() still attempt to shut it down? static void tegra_usb_remove(struct platform_device *pdev) { ... usb_phy_shutdown(usb->phy); ... Since the PHY wasn't initialized, its frequency will be 0. Calling tegra_usb_phy_shutdown() on this uninitialized PHY appears to trigger a warning regression: static void tegra_usb_phy_shutdown(struct usb_phy *u_phy) { struct tegra_usb_phy *phy =3D to_tegra_usb_phy(u_phy); if (WARN_ON(!phy->freq)) return; ... Should tegra_usb_remove() be updated to check if it is externally controlled before calling the shutdown and remove functions? --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260511135703.6247= 0-1-clamor95@gmail.com?part=3D2 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8E96BCD4F21 for ; Tue, 12 May 2026 23:29:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=GzFgEbPiDmVesv6Nl3l71p9DhFXR6Furq9uOmvevrh4=; b=Xkvr8H1dRx5J4b +cyj/rz7y7FaJe3o41lBTFL+Rgpl+vO/VFE87jX19PRsPmar0Ag9cKOnxtaEvQcOpXBQGgDiBSAp/ NZaMq7vJ59KMMx7S01iF7T0IA3fYKouNyzIceeb7HRjWvIpFZcDqLbTMn5wMREtdQFxc+PhjFbA6G layYk5sZemLxK5vmeZeSCHhnUGN8m8hqQ9J5ab8joox9ek3C7Y0Ft0tnJrjiNWN3vemZiKanAwIvF PMFSgPjnixejAiLrhCELfwRLJgfAVKQtV0BifEIYQKul6FXC9Ba0zYyCm26jwCjgx6UQCayjizCqI aTeV+1LEh6Fk05cdRxLw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wMwXv-00000000hEK-1Prj; Tue, 12 May 2026 23:29:51 +0000 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wMwXu-00000000hDt-1wxh for linux-phy@lists.infradead.org; Tue, 12 May 2026 23:29:50 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id E3EA96012A; Tue, 12 May 2026 23:29:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 35D5AC2BCB0; Tue, 12 May 2026 23:29:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1778628589; bh=Phvim/89ff0uCEi93PKL577+gi18W7Cu7eVSwxkmdjA=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date:From; b=AvR+BrRBpZ+cRdNRTOuQTGj325oL81MQOlk3Th9FIH558WlQDO7380LYLLgzWVQuj HHyhpK6LcNKTXbnZewCoZyYjAKbthAb83YCY3QnTmQHRacI1L+f46BKIn/WWEyPPa5 fPESS/UqJoGF8nHOGNJPaXp0X2A6AeluxTCuJqBzzZ9LHbWwhRylm+J/hH+HN9923+ xL3Z0ssvwnO/AEdYLHHMowi4Uti5Zl7VHlvOFBxIwYBjqtAbcnLNjd+V0/70NJ3a+i ToNkMZp4IVUuLSw6+z8bWrSHouww9NBbKEK0ZOKoW5oq+znUGo8jRrQPbC9pNp2KZN ZDtcrty9yrtQQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v1 2/6] usb: chipidea: tegra: Avoid controller/PHY init if bus is externally controlled To: "Svyatoslav Ryhel" Cc: conor+dt@kernel.org, neil.armstrong@linaro.org, vkoul@kernel.org, krzk+dt@kernel.org, robh@kernel.org, devicetree@vger.kernel.org, olteanv@gmail.com, linux-phy@lists.infradead.org In-Reply-To: <20260511135703.62470-3-clamor95@gmail.com> References: <20260511135703.62470-3-clamor95@gmail.com> Date: Tue, 12 May 2026 23:29:48 +0000 Message-Id: <20260512232949.35D5AC2BCB0@smtp.kernel.org> X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MiBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIFVuYmluZGluZyB0aGUg YHRlZ3JhX3VzYmAgZHJpdmVyIHdoZW4gYG52aWRpYSxleHRlcm5hbC1jb250cm9sYCBpcyBwcmVz ZW50IGNhdXNlcyBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZS4KLSBbTWVkaXVtXSBVbmNvbmRp dGlvbmFsIGNhbGwgdG8gYHVzYl9waHlfc2h1dGRvd24oKWAgaW4gYHRlZ3JhX3VzYl9yZW1vdmUo KWAgb24gYW4gdW5pbml0aWFsaXplZCBQSFkgdHJpZ2dlcnMgYSBrZXJuZWwgd2FybmluZy4KLS0K CmNvbW1pdCAzODI2Njk3YzNhYjUwMzM4YWRkOGUyYzg4OWMxMTlmM2RhZTZiNTcwCkF1dGhvcjog U3Z5YXRvc2xhdiBSeWhlbCA8Y2xhbW9yOTVAZ21haWwuY29tPgoKdXNiOiBjaGlwaWRlYTogdGVn cmE6IEF2b2lkIGNvbnRyb2xsZXIvUEhZIGluaXQgaWYgYnVzIGlzIGV4dGVybmFsbHkgY29udHJv bGxlZAoKSWYgdGhlIFVTQiBjb250cm9sbGVyIGFuZCBQSFkgYXJlIGV4dGVybmFsbHkgY29udHJv bGxlZCwgdGhlIHJlZ2lzdHJhdGlvbgpvZiB0aGUgY29udHJvbGxlciBhbmQgdGhlIFBIWSBpbml0 aWFsaXphdGlvbiBhcmUgc2tpcHBlZC4gVGhpcyBkZWxlZ2F0ZXMKY29uZmlndXJhdGlvbiB0byB0 aGUgZGV2aWNlIHRoYXQgY29udHJvbHMgdGhlIGJ1cy4KCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv dXNiL2NoaXBpZGVhL2NpX2hkcmNfdGVncmEuYyBiL2RyaXZlcnMvdXNiL2NoaXBpZGVhL2NpX2hk cmNfdGVncmEuYwo+IGluZGV4IDM3Mjc4OGYwZjk3MDEuLjU5MzM5MGE4MThkMTIgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy91c2IvY2hpcGlkZWEvY2lfaGRyY190ZWdyYS5jCj4gKysrIGIvZHJpdmVy cy91c2IvY2hpcGlkZWEvY2lfaGRyY190ZWdyYS5jCgpbIC4uLiBdCgo+IEBAIC0zNDIsMTIgKzM0 OCwxNCBAQCBzdGF0aWMgaW50IHRlZ3JhX3VzYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQo+ICAJaWYgKG9mX3VzYl9nZXRfcGh5X21vZGUocGRldi0+ZGV2Lm9mX25vZGUpID09 IFVTQlBIWV9JTlRFUkZBQ0VfTU9ERV9VTFBJKQo+ICAJCXVzYi0+ZGF0YS5mbGFncyAmPSB+Q0lf SERSQ19TVVBQT1JUU19SVU5USU1FX1BNOwo+ICAKPiAtCXVzYi0+ZGV2ID0gY2lfaGRyY19hZGRf ZGV2aWNlKCZwZGV2LT5kZXYsIHBkZXYtPnJlc291cmNlLAo+IC0JCQkJICAgICAgcGRldi0+bnVt X3Jlc291cmNlcywgJnVzYi0+ZGF0YSk7Cj4gLQlpZiAoSVNfRVJSKHVzYi0+ZGV2KSkgewo+IC0J CWVyciA9IGRldl9lcnJfcHJvYmUoJnBkZXYtPmRldiwgUFRSX0VSUih1c2ItPmRldiksCj4gLQkJ CQkgICAgImZhaWxlZCB0byBhZGQgSERSQyBkZXZpY2UiKTsKPiAtCQlnb3RvIHBoeV9zaHV0ZG93 bjsKPiArCWlmICghdXNiLT5leHRlcm5hbGx5X2NvbnRyb2xsZWQpIHsKPiArCQl1c2ItPmRldiA9 IGNpX2hkcmNfYWRkX2RldmljZSgmcGRldi0+ZGV2LCBwZGV2LT5yZXNvdXJjZSwKPiArCQkJCQkg ICAgICBwZGV2LT5udW1fcmVzb3VyY2VzLCAmdXNiLT5kYXRhKTsKPiArCQlpZiAoSVNfRVJSKHVz Yi0+ZGV2KSkgewo+ICsJCQllcnIgPSBkZXZfZXJyX3Byb2JlKCZwZGV2LT5kZXYsIFBUUl9FUlIo dXNiLT5kZXYpLAo+ICsJCQkJCSAgICAiZmFpbGVkIHRvIGFkZCBIRFJDIGRldmljZSIpOwo+ICsJ CQlnb3RvIHBoeV9zaHV0ZG93bjsKPiArCQl9Cj4gIAl9Cj4gIAo+ICAJcmV0dXJuIDA7CgpXaGVu IG52aWRpYSxleHRlcm5hbC1jb250cm9sIGlzIHByZXNlbnQsIHVzYi0+ZGV2IGlzIGxlZnQgdW5p bml0aWFsaXplZAphbmQgcmVtYWlucyBOVUxMLiBEb2VzIHRoZSB1bmJpbmQgcGF0aCBzdGlsbCB0 cnkgdG8gdXNlIGl0PwoKTG9va2luZyBhdCB0ZWdyYV91c2JfcmVtb3ZlKCksIGl0IHVuY29uZGl0 aW9uYWxseSBjYWxscwpjaV9oZHJjX3JlbW92ZV9kZXZpY2UoKSB3aXRoIHVzYi0+ZGV2OgoKICAg IHN0YXRpYyB2b2lkIHRlZ3JhX3VzYl9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKICAgIHsKICAgICAgICBzdHJ1Y3QgdGVncmFfdXNiICp1c2IgPSBwbGF0Zm9ybV9nZXRfZHJ2 ZGF0YShwZGV2KTsKCiAgICAgICAgY2lfaGRyY19yZW1vdmVfZGV2aWNlKHVzYi0+ZGV2KTsKICAg ICAgICAuLi4KClRoaXMgbG9va3MgbGlrZSBpdCBjb3VsZCBsZWFkIHRvIGEgTlVMTCBwb2ludGVy IGRlcmVmZXJlbmNlLCBhcwpjaV9oZHJjX3JlbW92ZV9kZXZpY2UoKSBkZXJlZmVyZW5jZXMgdGhl IHBvaW50ZXIgaW1tZWRpYXRlbHkgd2l0aG91dCBjaGVja2luZzoKCiAgICB2b2lkIGNpX2hkcmNf cmVtb3ZlX2RldmljZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogICAgewogICAgICAg IGludCBpZCA9IHBkZXYtPmlkOwogICAgICAgIC4uLgoKQ291bGQgdGhpcyByZWdyZXNzaW9uIGNh dXNlIGEgY3Jhc2ggb24gZGV2aWNlIHVuYmluZCBvciBtb2R1bGUgcmVtb3ZhbAp3aGVuIHRoZSBj b250cm9sbGVyIGlzIGV4dGVybmFsbHkgY29udHJvbGxlZD8KCkFkZGl0aW9uYWxseSwgd2hlbiB0 aGUgUEhZIGluaXRpYWxpemF0aW9uIGlzIHNraXBwZWQgZHVyaW5nIHByb2JlLCBkb2VzCnRlZ3Jh X3VzYl9yZW1vdmUoKSBzdGlsbCBhdHRlbXB0IHRvIHNodXQgaXQgZG93bj8KCiAgICBzdGF0aWMg dm9pZCB0ZWdyYV91c2JfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAgICB7 CiAgICAgICAgLi4uCiAgICAgICAgdXNiX3BoeV9zaHV0ZG93bih1c2ItPnBoeSk7CiAgICAgICAg Li4uCgpTaW5jZSB0aGUgUEhZIHdhc24ndCBpbml0aWFsaXplZCwgaXRzIGZyZXF1ZW5jeSB3aWxs IGJlIDAuIENhbGxpbmcKdGVncmFfdXNiX3BoeV9zaHV0ZG93bigpIG9uIHRoaXMgdW5pbml0aWFs aXplZCBQSFkgYXBwZWFycyB0byB0cmlnZ2VyCmEgd2FybmluZyByZWdyZXNzaW9uOgoKICAgIHN0 YXRpYyB2b2lkIHRlZ3JhX3VzYl9waHlfc2h1dGRvd24oc3RydWN0IHVzYl9waHkgKnVfcGh5KQog ICAgewogICAgICAgIHN0cnVjdCB0ZWdyYV91c2JfcGh5ICpwaHkgPSB0b190ZWdyYV91c2JfcGh5 KHVfcGh5KTsKCiAgICAgICAgaWYgKFdBUk5fT04oIXBoeS0+ZnJlcSkpCiAgICAgICAgICAgIHJl dHVybjsKICAgICAgICAuLi4KClNob3VsZCB0ZWdyYV91c2JfcmVtb3ZlKCkgYmUgdXBkYXRlZCB0 byBjaGVjayBpZiBpdCBpcyBleHRlcm5hbGx5CmNvbnRyb2xsZWQgYmVmb3JlIGNhbGxpbmcgdGhl IHNodXRkb3duIGFuZCByZW1vdmUgZnVuY3Rpb25zPwoKLS0gClNhc2hpa28gQUkgcmV2aWV3IMK3 IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9wYXRjaHNldC8yMDI2MDUxMTEzNTcwMy42MjQ3MC0xLWNs YW1vcjk1QGdtYWlsLmNvbT9wYXJ0PTIKCi0tIApsaW51eC1waHkgbWFpbGluZyBsaXN0CmxpbnV4 LXBoeUBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHBzOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LXBoeQo=