From patchwork Thu Jan 24 14:29:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcel Ziswiler X-Patchwork-Id: 1030482 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ziswiler.com Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43ll2H0Xs4z9s4s for ; Fri, 25 Jan 2019 01:31:02 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id A3265C21DD9; Thu, 24 Jan 2019 14:30:27 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED, SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id DD197C21D72; Thu, 24 Jan 2019 14:30:10 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id ACA06C21C38; Thu, 24 Jan 2019 14:30:09 +0000 (UTC) Received: from mout.perfora.net (mout.perfora.net [74.208.4.196]) by lists.denx.de (Postfix) with ESMTPS id 0C7E5C21C57 for ; Thu, 24 Jan 2019 14:30:08 +0000 (UTC) Received: from marcel-nb-toradex-int.toradex.int ([46.140.72.82]) by mrelay.perfora.net (mreueus002 [74.208.5.2]) with ESMTPA (Nemesis) id 0MbyuO-1gWf2D3T3m-00JFx1; Thu, 24 Jan 2019 15:30:04 +0100 From: Marcel Ziswiler To: u-boot@lists.denx.de Date: Thu, 24 Jan 2019 15:29:55 +0100 Message-Id: <20190124142957.15040-2-marcel@ziswiler.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190124142957.15040-1-marcel@ziswiler.com> References: <20190124142957.15040-1-marcel@ziswiler.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:9ZPYMlR22BStXaI8oF2ievUvwSuri9KyBj7b38pU6AGKZfeG87Z jGZg59nn2IUp9o45hUFYrFxqiGuJdSxgP6wQPU2RU1jOsd0zEIA7pJYNpPl+7hjakfEJVKB /fzkyT6LdwEb8jXvRHbCYWhVDhvz9eeVK8BxHBobJuLHd837kUfxs2BLX8xeCjX6Lp/o8Lk NGjbUd3LehsLtotYgvkpg== X-UI-Out-Filterresults: notjunk:1; V03:K0:/t5htqSFlvQ=:8jNhjq9WUjOt3cG8dr2ni5 dnZVRvzTFVMKjdVw87czabxzGSG2itEecdHMnCnVx+AGk6KHg1N1jt4ZTntBXaO19QE2JFs3/ Oz+nNpwmtOJeQnfKdOcAHbEWBaGBD+M0A4/yw0qT1zkHrpL/O42t08ueZRII5bW+Iu1QeL6Uq Q1yIMwWdK2FtY9ENNfRZ20/Ijm3vCw8Y7Pyu7XBZMku1Ujrp55INCk6YPqs1SYah6rHDt2agr 48IDhDKy0sH7VEep7lRoVMo1JYprWI/U9u1d8ioE94tun1EjaaAWpEnila1QStkeg4P3uCILY dLgcucVGb++nJz4SoxelxichY9zPyLnzUZ6i0m3fR1Xb+fscZar4KkpnshxdgeHK8vx9MUR3R BKq0zX/BeGMiZAfEbjr4E5pu2cCaji8PZl5ABjs5LJkksGYh0M7gkezljrqOeU2hIaimvm8ES fx6l1krj3vy+xaWjbiOMXr6FSMSqTucnDZdelnYAysRrfVxFZSbwowyI8e9eksesNbnqc7+7c tlP5WiJ3BmZJq/wdpOJCvxgMRVwSeLiQ6IZTr4HIFnX0lSSDpGTGDLOM7eNtqDVKRqJzWVCMo 4fcHGh7F8Rdd3FVPcY+klgjpJ39A+uwFXsDJxeJO4ldd44TkjT6uln152fhcjTK5TSC4EbDp5 mBNVp6laRAnwSC+e7HGqlp97KRJCpJZmGF60xMYu1JPq4NvpO8jCYXSuFO9eGiqRbAmcqL7Ht zCQqg+PJedBKN5KbIPdm2YqGkZPLrH0eprcE+w== Cc: Marcel Ziswiler , Simon Glass Subject: [U-Boot] [PATCH 1/3] dm: device: fail uclass_find_first_device() if list_empty X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Marcel Ziswiler While uclass_find_device() fails with -ENODEV in case of list_empty strangely uclass_find_first_device() returns 0. Fix uclass_find_first_device() to also fail with -ENODEV instead. Signed-off-by: Marcel Ziswiler --- drivers/core/uclass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/core/uclass.c b/drivers/core/uclass.c index a622f07941..fc3157de39 100644 --- a/drivers/core/uclass.c +++ b/drivers/core/uclass.c @@ -225,7 +225,7 @@ int uclass_find_first_device(enum uclass_id id, struct udevice **devp) if (ret) return ret; if (list_empty(&uc->dev_head)) - return 0; + return -ENODEV; *devp = list_first_entry(&uc->dev_head, struct udevice, uclass_node); From patchwork Thu Jan 24 14:29:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcel Ziswiler X-Patchwork-Id: 1030484 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ziswiler.com Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43ll395drLz9s4s for ; Fri, 25 Jan 2019 01:31:49 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 8588EC21E1A; Thu, 24 Jan 2019 14:30:53 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id BD2AAC21C57; Thu, 24 Jan 2019 14:30:21 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 0993DC21E07; Thu, 24 Jan 2019 14:30:14 +0000 (UTC) Received: from mout.perfora.net (mout.perfora.net [74.208.4.194]) by lists.denx.de (Postfix) with ESMTPS id 9B003C21CB6 for ; Thu, 24 Jan 2019 14:30:10 +0000 (UTC) Received: from marcel-nb-toradex-int.toradex.int ([46.140.72.82]) by mrelay.perfora.net (mreueus002 [74.208.5.2]) with ESMTPA (Nemesis) id 0MQ4er-1grMic0Xtz-005JRC; Thu, 24 Jan 2019 15:30:05 +0100 From: Marcel Ziswiler To: u-boot@lists.denx.de Date: Thu, 24 Jan 2019 15:29:56 +0100 Message-Id: <20190124142957.15040-3-marcel@ziswiler.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190124142957.15040-1-marcel@ziswiler.com> References: <20190124142957.15040-1-marcel@ziswiler.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:eJfaTZz9yyh8kPfgL8Bx3V5FOdHIs9DqBGZ/qOss9XPcb7MzPlh 7/MqMOTeMeM9UMXlBkXsiPdpaY9O160rOu39pHWVDRay8uTSHRmnVJZGarDS9JyodpWVJAd AA9BFDJYe4JMO2M+dG7W7IpWVTN7aQb0YAha4T/w0qEJ2i2r3BKmTleNKHkplJL4d5R1498 G737v79C2MGcFwrE1MKwA== X-UI-Out-Filterresults: notjunk:1; V03:K0:4hab1ZTExEs=:qvp9d+aSI7lKqeszxfnAB+ JchK5ata8B72v0sjYJTK4fTo3OMpXHer6FVT41EejNeSO2xh9ZKZMZOdoG9NL7OB2EaJS35kw cun+2rdPLfMWpTqIZWiUs7gknO79Wt+bFogjcMwenQLA9imndeJ7U4cpLmoKRjStNvYgFqvYa E4nUOr/M35ujjMnjDXNaNGKP3KBBFlonGWZ3tV9Z/Hv9GyLPdL2aCcFmiRaFp5HU5DJ9B8TX3 /t9D0f3enbFpwVbblz7iWfEd9PK5/wQir5dS7Hieo5v7aPxxbcrI+rPq9kxYCAG6Hi3UjHurU uyzA0wH3ddSJu23vfxF6/cop5590Ui6RUZJmNzbmBOGcVFRHTmrIIMvQ8hgCtEipTtHvK5b/b MhVQ9HORDz+N6TPrs1AuhVRAyktO1feqj+YHBdUP+ysEIOfZyi4Wy4ikhUnQCw9zacCYeHsrn I9tIeYr7XM1e1bkBGQasmjvJqFkTygIqEcs60dPlPbR7bGcjtlR+E/h/fTw2mxHZ9h/twl7M0 8g3b3hVd0mclE9SDTCShLhu8OYJHfEoiDFVLjOP/3+yblWARKUKjx5tRljqwQ+6VyDVVoKhyx 6sXqkkatTRK/3H3rqE2/gRQK99ybJorp3DP32Hl2gNgRcg5gFy4HVBD0dIQBBOsaJAX1I40wL EFAWrOaZ/nFQOTJaOYEGXzFNYHfM8nTfkH2m+M8HmOvH01SdV/As6EWo4Z6mcDWKl+UjM4Lnk iOgPmcT5/cEyl1tQ0WiPUsrv6wb0Cc8KcWHgWg== Cc: Marcel Ziswiler , Simon Glass Subject: [U-Boot] [PATCH 2/3] dm: sata: add null pointer check for dev X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Marcel Ziswiler Given ahci_get_ops() being a macro not checking anything make sure we only call it if we do indeed have a dev pointer. Signed-off-by: Marcel Ziswiler --- drivers/ata/sata.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/drivers/ata/sata.c b/drivers/ata/sata.c index e384b805b2..4e41f09c87 100644 --- a/drivers/ata/sata.c +++ b/drivers/ata/sata.c @@ -20,9 +20,14 @@ struct blk_desc sata_dev_desc[CONFIG_SYS_SATA_MAX_DEVICE]; int sata_reset(struct udevice *dev) { - struct ahci_ops *ops = ahci_get_ops(dev); + struct ahci_ops *ops = NULL; - if (!ops->reset) + if (!dev) + return -ENODEV; + + ops = ahci_get_ops(dev); + + if (!ops || !ops->reset) return -ENOSYS; return ops->reset(dev); @@ -30,9 +35,14 @@ int sata_reset(struct udevice *dev) int sata_dm_port_status(struct udevice *dev, int port) { - struct ahci_ops *ops = ahci_get_ops(dev); + struct ahci_ops *ops = NULL; + + if (!dev) + return -ENODEV; - if (!ops->port_status) + ops = ahci_get_ops(dev); + + if (!ops || !ops->port_status) return -ENOSYS; return ops->port_status(dev, port); @@ -40,9 +50,14 @@ int sata_dm_port_status(struct udevice *dev, int port) int sata_scan(struct udevice *dev) { - struct ahci_ops *ops = ahci_get_ops(dev); + struct ahci_ops *ops = NULL; + + if (!dev) + return -ENODEV; + + ops = ahci_get_ops(dev); - if (!ops->scan) + if (!ops || !ops->scan) return -ENOSYS; return ops->scan(dev); From patchwork Thu Jan 24 14:29:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcel Ziswiler X-Patchwork-Id: 1030483 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ziswiler.com Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43ll2n1JvKz9s4s for ; Fri, 25 Jan 2019 01:31:29 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id E5159C21D65; Thu, 24 Jan 2019 14:30:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 4598AC21DA6; Thu, 24 Jan 2019 14:30:21 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id D3685C21DFB; Thu, 24 Jan 2019 14:30:15 +0000 (UTC) Received: from mout.perfora.net (mout.perfora.net [74.208.4.194]) by lists.denx.de (Postfix) with ESMTPS id E4447C21DA2 for ; Thu, 24 Jan 2019 14:30:11 +0000 (UTC) Received: from marcel-nb-toradex-int.toradex.int ([46.140.72.82]) by mrelay.perfora.net (mreueus002 [74.208.5.2]) with ESMTPA (Nemesis) id 0LwHJA-1hGlLk3lYU-0183AF; Thu, 24 Jan 2019 15:30:07 +0100 From: Marcel Ziswiler To: u-boot@lists.denx.de Date: Thu, 24 Jan 2019 15:29:57 +0100 Message-Id: <20190124142957.15040-4-marcel@ziswiler.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190124142957.15040-1-marcel@ziswiler.com> References: <20190124142957.15040-1-marcel@ziswiler.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:OeuZdZ2XIDnhvoQ37JaoxcSwueePPp0Jt0rwLzqYh0sEz2jyf09 bE8/sHg1OAULIX9BHHoBe5ZnZwIQH4TkPgS35S8mVgggpPZU6NtWgKwX4YAzVgIix5b6JY8 eZLfi9EycFTqIVQIftWlG1q8PL5MQno5/oICADPqABSiVZ03CkCS6ZVtFfLbN2VdG8vFsPN hSojoh0tcuwQfuPbJhUbA== X-UI-Out-Filterresults: notjunk:1; V03:K0:KxMn4RSg3Rs=:l8Ty5HIh1VYy/vZm7iaV3l Q1u+GHLsHSsAYQE6WJucDI/2urFbXpmb+Fl8A1kNVWMUfBHovyAw/uqm0YrgSencc49//4gRH z9W0BARVQSrvZ1LPSaI81oE/gN3nWIb62sA/7wJwNikApOUV8L63uVv3+g6K50ssGAOJht7AW jcIQDu+h6uJI9dd9C9bKRJGbBRl9LkJIe/23PX283lxCj/Iv7FWlO8+uPgekjNsZGTpVvr9WG NfaHC5dyzST826FCYOqCbgBxVMLen0kkTqw+HnjbeZULQ0q3LHqIUE5IQnZdyyt34QThCP0fz GXnOzXNpgEcppc4p/dsK4UzQWkLtnmIm80LhrALbMy0xoBQ12HgLrQbVk70SQo6E+TBXQDjh1 z4wCPaUUNaBmSrLxHeJwiZO6KMfr+M/K1Hf88KEDdBs1n3mrxh+ns9pxqX/DkT0n8O92mvI/Z vzqmzyQGs2RetvKa04RqFBp1QbIKzsjBei4x9LAZSDCYPAIjoBESK5icgUpSg8yJJY21RCOGm 0yNu5vnsvVcWbBRzsMnCW1Uqzo+gLscmem4kw0RcbpblsO7p5Mi0E7YqPKwEGlQ4jGyU2QjEv 2Uo+RJBU3vYQNCIDiZmmZk9nQtLdK7KrTom83Wl4ViU7tcpSDd6mh0IFQunn7rB5BAIVHzR/T 7AzUKJ0BcL2NHo92Z6ahl3Jv/AZLzi+wDCb+TpkOsGNcMBLCmW9TQ/TulP5us1D07NrB/4yG9 9Ku2b9lI4w2ClGe6GMzsFN27PH7qr/bhd15UMQ== Cc: Marcel Ziswiler , Tom Rini , Simon Glass Subject: [U-Boot] [PATCH 3/3] cmd: sata: add null pointer check for dev X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Marcel Ziswiler Calling sata_scan() with a null pointer probably won't make much sense. Signed-off-by: Marcel Ziswiler Reviewed-by: Simon Glass --- cmd/sata.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cmd/sata.c b/cmd/sata.c index 6d62ba8f74..a73cc54bd3 100644 --- a/cmd/sata.c +++ b/cmd/sata.c @@ -60,6 +60,10 @@ int sata_probe(int devnum) printf("Cannot probe SATA device %d (err=%d)\n", devnum, rc); return CMD_RET_FAILURE; } + if (!dev) { + printf("No SATA device found!\n"); + return CMD_RET_FAILURE; + } rc = sata_scan(dev); if (rc) { printf("Cannot scan SATA device %d (err=%d)\n", devnum, rc);