Received: by 2002:a25:ef43:0:0:0:0:0 with SMTP id w3csp268822ybm; Tue, 26 May 2020 16:31:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyxXFJwEYjqRkaM7WrLv74KT8E+/njFok4PaZKZvpWYx33xde/c8U0Jm9viYiHO0RxydIAH X-Received: by 2002:a50:c34c:: with SMTP id q12mr18490261edb.124.1590535860787; Tue, 26 May 2020 16:31:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590535860; cv=none; d=google.com; s=arc-20160816; b=kCT5QtjpF1TdCiv9c74GO8kKXfzLjMu1+kYXtBY9AS2inNGQuac4sI6+SyCboikVM/ 7sE/bNaFxp9hwKg52FSOcgog7I+srBpbhHwNBHIkROcCBt8DEMBcvR7PDKYpz3mykB5C QuUYOexTlMPwUjnvmBcuQl1nzzB/GnD8pMMdm69WUmAm2B92wUWiR9/1ELd3StCF4/Te 9ztZ08+T1Onnn55R7f4Vxz1Q/O6r7XlXpupm4IFCg+vcDXvgrV4u5g0KzGEcyWVAg5GY ttK9pH3tLUHRDGJELvc+eftVnWnAuq+IzyaHQxvDkHBORTKcLoUQXG/DHCkUTeU+tLYe plkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=+HLyQeHEwRkmBN7Mz1fWdkXpoemib6Ct8xH1uqDFVgM=; b=GSYvklpN/4Gtyy79jq+4sCMPzAISvKs5ANmkCfXR3wcrZ1uVfwfQgDETj3nGi2GFVR Js033j+d9rvXvW3Bp9giR3fyX9UUYgFbxGsryZVa+IFR8+qk9cMb4Zn8OuKybvguQREQ NaxjIUF2Ss5wRS3wFUHwwT3itFVpzVGxcchnj/hDwUlft1ipEUdOx+DfRBGjRm94Eyct 65sX9xCn/mTlBGRx/Y/EfdiMnk/JECR/eiWh3539CIaqrOJ0XXZAaBeyC/mX7o2/oyUq FHpPc2nEsUHYsvDX/NtZgQX0vkTOGcnVxViTzc9xIB/WDuJOuMpYxvgw/2TvL5KyRai+ ihCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@googlemail.com header.s=20161025 header.b=jXqpT17h; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bu24si740778edb.60.2020.05.26.16.30.37; Tue, 26 May 2020 16:31:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@googlemail.com header.s=20161025 header.b=jXqpT17h; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391235AbgEZUaN (ORCPT + 99 others); Tue, 26 May 2020 16:30:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46452 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389367AbgEZUaM (ORCPT ); Tue, 26 May 2020 16:30:12 -0400 Received: from mail-ej1-x642.google.com (mail-ej1-x642.google.com [IPv6:2a00:1450:4864:20::642]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B1070C061A0F; Tue, 26 May 2020 13:30:10 -0700 (PDT) Received: by mail-ej1-x642.google.com with SMTP id h21so25267862ejq.5; Tue, 26 May 2020 13:30:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+HLyQeHEwRkmBN7Mz1fWdkXpoemib6Ct8xH1uqDFVgM=; b=jXqpT17hC9igpJGL8HqGKNSS1UpVOL7bro0lhrsTvwHSTf3+2sZmgHAZq3AmMUN1u4 qmFWaqtO5r5SV/aJJGR7/gy/iFe3UC1WIkMs/RVrQtoHON7mQ81GTCHXFax3O1QnW8e4 SsLD/tkyohqFtjaLi7YLYiqi3eq0y7ZCtPWuY0S0xMWuH4oF/EMAWtIJdgYvFx4x9g4P AMQGTDivXwDTtuctM3ElwNCTec3EHAb9u2PA8KUWGMC8i5HmPwR5VxsktsrLlZSRtD6H mO+B/1E5RbIv/5q2xI4e5ROZOCsZY/1nyzUZtts/2X4titAry4ZX5yFDy2AWNPlSxaie vfmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=+HLyQeHEwRkmBN7Mz1fWdkXpoemib6Ct8xH1uqDFVgM=; b=HzahqeuM/5oOeNICFhbJ3D5GpauYfCS+y3SzhcoChM39CC2o6cs8esNg3Ovt5Pjg8U T6jqAoGS5tCHhw/IV7En5Ldw0sOwdwQ1DVWH+A89vToFWIxROMBp53rmIkfB0M7zi0RC JbEOQouuH0PlmaSJO62J0YmOy6PFk1YRgrjDih9PJJoFBVRrW+y2J+DOIMQq9VD0roMA dLiFkiITq1Sk6fYu5Jb0RxqVMQFtjNVd58tYLgyp+bMhnffztP5JFjg6Jyo1D/9nj9cw WjXc8iYHRErsIgscMZmgN9wSschQaDuF10OaeUBT6YnmPqelCQzz3YSI+Xf0EPqfhqEq dKLg== X-Gm-Message-State: AOAM532SRkwexiRDULhg3mNlxxdR5TCjo/O9XPNc9NPKhr/gEwNkH0VU wndP5dFVAVOLHafNgJMsR1k= X-Received: by 2002:a17:906:4815:: with SMTP id w21mr2784486ejq.533.1590525009201; Tue, 26 May 2020 13:30:09 -0700 (PDT) Received: from localhost.localdomain (p200300f137189200428d5cfffeb99db8.dip0.t-ipconnect.de. [2003:f1:3718:9200:428d:5cff:feb9:9db8]) by smtp.googlemail.com with ESMTPSA id ce16sm735517ejb.76.2020.05.26.13.30.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 May 2020 13:30:08 -0700 (PDT) From: Martin Blumenstingl To: balbi@kernel.org, gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, linux-amlogic@lists.infradead.org, narmstrong@baylibre.com Cc: hanjie.lin@amlogic.com, yue.wang@amlogic.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Martin Blumenstingl , "kernelci.org bot" Subject: [PATCH for-5.8 2/2] usb: dwc3: meson-g12a: fix USB2 PHY initialization on G12A and A1 SoCs Date: Tue, 26 May 2020 22:29:43 +0200 Message-Id: <20200526202943.715220-3-martin.blumenstingl@googlemail.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200526202943.715220-1-martin.blumenstingl@googlemail.com> References: <20200526202943.715220-1-martin.blumenstingl@googlemail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org dwc3_meson_g12a_usb2_init_phy() crashes with NULL pointer on an SM1 board (which uses the same USB setup as G12A) dereference as reported by the Kernel CI bot. This is because of the following call flow: dwc3_meson_g12a_probe priv->drvdata->setup_regmaps dwc3_meson_g12a_setup_regmaps priv->usb2_ports is still 0 so priv->u2p_regmap[i] will be NULL dwc3_meson_g12a_get_phys initializes priv->usb2_ports priv->drvdata->usb_init dwc3_meson_g12a_usb_init dwc3_meson_g12a_usb_init_glue dwc3_meson_g12a_usb2_init priv->drvdata->usb2_init_phy dwc3_meson_g12a_usb2_init_phy dereferences priv->u2p_regmap[i] Call priv->drvdata->setup_regmaps only after dwc3_meson_g12a_get_phys so priv->usb2_ports is initialized and the regmaps will be set up correctly. This fixes the NULL dereference later on. Fixes: 013af227f58a97 ("usb: dwc3: meson-g12a: handle the phy and glue registers separately") Reported-by: "kernelci.org bot" Signed-off-by: Martin Blumenstingl --- drivers/usb/dwc3/dwc3-meson-g12a.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/usb/dwc3/dwc3-meson-g12a.c b/drivers/usb/dwc3/dwc3-meson-g12a.c index ce5388338389..1f7f4d88ed9d 100644 --- a/drivers/usb/dwc3/dwc3-meson-g12a.c +++ b/drivers/usb/dwc3/dwc3-meson-g12a.c @@ -708,11 +708,7 @@ static int dwc3_meson_g12a_probe(struct platform_device *pdev) return PTR_ERR(base); priv->drvdata = of_device_get_match_data(&pdev->dev); - priv->dev = dev; - ret = priv->drvdata->setup_regmaps(priv, base); - if (ret) - return ret; priv->vbus = devm_regulator_get_optional(dev, "vbus"); if (IS_ERR(priv->vbus)) { @@ -749,6 +745,10 @@ static int dwc3_meson_g12a_probe(struct platform_device *pdev) if (ret) goto err_disable_clks; + ret = priv->drvdata->setup_regmaps(priv, base); + if (ret) + return ret; + if (priv->vbus) { ret = regulator_enable(priv->vbus); if (ret) -- 2.26.2