Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp552869ybl; Fri, 10 Jan 2020 03:02:05 -0800 (PST) X-Google-Smtp-Source: APXvYqw93fArq0VPte7PtXzfTxR7UvwhyaWJZBM1JhdH40/jTouq4F7byYVnI82sxdZTtym9foUy X-Received: by 2002:a05:6830:15a:: with SMTP id j26mr1964513otp.137.1578654125510; Fri, 10 Jan 2020 03:02:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1578654125; cv=none; d=google.com; s=arc-20160816; b=dhqwa+4DD7+ebo29RrPw7dlYgZzytmKGodyWkcBDqBJSzWBMo0aIf8wnd46BZyKrA7 aUjbQt7dq4iJkJCwKyn4hb3vdJA2W9e+jJmjiVQBLQcDH5Yfn385rlorzr+JsAn3AgYS aQafhRkrWTOWz6kFOeJY44yzkuXHuqkSzFvSUGHgnAA3HDsswdFPj+7w6pv2byisMm5e 7uRRdlmQdmUv0yMGkwltNKOcKtOOVfslqMJ4//t0Y46hse02VSWRvA3SqKQoTKv3YdG5 wuA9Shb9onyl9yaQpEq+QR14jcwQksovjE4E57eMLxb+h205k50RH925kwwdi8Jlfm9q EkgA== 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 :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=jxtcpp4wv+hTwwi1lQ91nMik4CFwpDAD22wxC64xvi0=; b=mH/iLh6ffnoyBhAnVaBTYB72KWiLbH6dAk5StmNCMZL4Vt3RO3FUSv8zHv9yFcef2D S6J0OirWXhb3lwr7wBnBfOo9I4KTyJqn/d5UC3ONrAeY+o9CTBC2ksUIdHAPHwxwnPl1 adbRmBkTWr86Udc6696KKaNEIdbceMuR+gcs1TLbcjqiFOIiuN2gIc89Fi5ie1oz2Jbm PJtWEy/fz/kXh3v1jDdjqJYTXPaGhim03UqXm4VwnVnIHbbNQyGubynUzZg5VAWHTAdl wkc0Boc62+N/JhNXK0gU4aBHA1++rVDRp5Yx0xfvp0dAarXOkM7QDggxB6LOtLOrSOOq 9plw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=HtMROQ3j; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b25si1001479otp.212.2020.01.10.03.01.53; Fri, 10 Jan 2020 03:02:05 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=HtMROQ3j; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727701AbgAJLAj (ORCPT + 99 others); Fri, 10 Jan 2020 06:00:39 -0500 Received: from fllv0016.ext.ti.com ([198.47.19.142]:33880 "EHLO fllv0016.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727670AbgAJLAj (ORCPT ); Fri, 10 Jan 2020 06:00:39 -0500 Received: from lelv0266.itg.ti.com ([10.180.67.225]) by fllv0016.ext.ti.com (8.15.2/8.15.2) with ESMTP id 00AB0WIu035463; Fri, 10 Jan 2020 05:00:32 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1578654032; bh=jxtcpp4wv+hTwwi1lQ91nMik4CFwpDAD22wxC64xvi0=; h=Subject:To:CC:References:From:Date:In-Reply-To; b=HtMROQ3jnHJqUDiQzlcPXO7ZOvxczkxJu3rEL/gvGaPNSUlbeUW5VIZ3T8wcBZOTF 9Bok2C3oOuWT5N/Y/iCoPjgRgbfvA4PzkF/nv+uf4KNN0xZjvx14QtpYWad6LS7y3l NvmIbhUxP3f+u2KcoB6yLmfjOw+jcpCc0kHBKW08= Received: from DLEE108.ent.ti.com (dlee108.ent.ti.com [157.170.170.38]) by lelv0266.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 00AB0V5n126818 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Fri, 10 Jan 2020 05:00:32 -0600 Received: from DLEE110.ent.ti.com (157.170.170.21) by DLEE108.ent.ti.com (157.170.170.38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1847.3; Fri, 10 Jan 2020 05:00:31 -0600 Received: from fllv0040.itg.ti.com (10.64.41.20) by DLEE110.ent.ti.com (157.170.170.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1847.3 via Frontend Transport; Fri, 10 Jan 2020 05:00:31 -0600 Received: from [10.24.69.159] (ileax41-snat.itg.ti.com [10.172.224.153]) by fllv0040.itg.ti.com (8.15.2/8.15.2) with ESMTP id 00AB0SY0046697; Fri, 10 Jan 2020 05:00:29 -0600 Subject: Re: [PATCH] phy: core: Fix error path in devm_of_phy_get() To: Marek Szyprowski , CC: , Alexandre Torgue , Bartlomiej Zolnierkiewicz , Krzysztof Kozlowski References: <20200108132342.14635-1-m.szyprowski@samsung.com> From: Kishon Vijay Abraham I Message-ID: <4c612381-55c1-635a-d40d-e1bb3aa60998@ti.com> Date: Fri, 10 Jan 2020 16:32:36 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 MIME-Version: 1.0 In-Reply-To: <20200108132342.14635-1-m.szyprowski@samsung.com> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/01/20 6:53 PM, Marek Szyprowski wrote: > Commit 5253fe05bb47 ("phy: core: Add consumer device link support") added > support for consumer device links, but it missed proper update for error > handling in devm_of_phy_get(). Fix this by adding proper return statement. > > This patch fixes the following invalid pointer dereference on > Exynos5250-based Arndale board with multi_v7_defconfig: > > 8<--- cut here --- > Unable to handle kernel paging request at virtual address fffffe7f > pgd = (ptrval) > [fffffe7f] *pgd=6ffff841, *pte=00000000, *ppte=00000000 > Internal error: Oops: 27 [#1] SMP ARM > Modules linked in: > CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.5.0-rc5-next-20200108 #167 > Hardware name: Samsung Exynos (Flattened Device Tree) > PC is at device_link_add+0x68/0x4c4 > LR is at device_link_add+0x68/0x4c4 > ... > Process swapper/0 (pid: 1, stack limit = 0x(ptrval)) > ... > [] (device_link_add) from [] (devm_of_phy_get+0x6c/0xb0) > [] (devm_of_phy_get) from [] (ahci_platform_get_phy+0x28/0xe0) > [] (ahci_platform_get_phy) from [] (ahci_platform_get_resources+0x398/0x48c) > [] (ahci_platform_get_resources) from [] (ahci_probe+0x14/0xb4) > [] (ahci_probe) from [] (platform_drv_probe+0x48/0x9c) > [] (platform_drv_probe) from [] (really_probe+0x1dc/0x33c) > [] (really_probe) from [] (driver_probe_device+0x60/0x164) > [] (driver_probe_device) from [] (device_driver_attach+0x58/0x60) > [] (device_driver_attach) from [] (__driver_attach+0x80/0xbc) > [] (__driver_attach) from [] (bus_for_each_dev+0x68/0xb4) > [] (bus_for_each_dev) from [] (bus_add_driver+0x160/0x1e4) > [] (bus_add_driver) from [] (driver_register+0x78/0x10c) > [] (driver_register) from [] (do_one_initcall+0x54/0x220) > [] (do_one_initcall) from [] (kernel_init_freeable+0x150/0x1b4) > [] (kernel_init_freeable) from [] (kernel_init+0x8/0x10c) > [] (kernel_init) from [] (ret_from_fork+0x14/0x2c) I've already merged a patch fixing this. Thanks Kishon > ... > > Fixes: 5253fe05bb47 ("phy: core: Add consumer device link support") > Signed-off-by: Marek Szyprowski > --- > drivers/phy/phy-core.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c > index 8dfb4868c8c3..2eb28cc2d2dc 100644 > --- a/drivers/phy/phy-core.c > +++ b/drivers/phy/phy-core.c > @@ -799,6 +799,7 @@ struct phy *devm_of_phy_get(struct device *dev, struct device_node *np, > devres_add(dev, ptr); > } else { > devres_free(ptr); > + return phy; > } > > link = device_link_add(dev, &phy->dev, DL_FLAG_STATELESS); >