Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751932AbdHCTQI (ORCPT ); Thu, 3 Aug 2017 15:16:08 -0400 Received: from mout.web.de ([212.227.15.14]:55562 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751251AbdHCTQH (ORCPT ); Thu, 3 Aug 2017 15:16:07 -0400 Subject: [PATCH 3/4] axonram: Return directly after a failed kzalloc() in axon_ram_probe() From: SF Markus Elfring To: linuxppc-dev@lists.ozlabs.org, Benjamin Herrenschmidt , Jan Kara , Jens Axboe , Dan Williams , Michael Ellerman , Paul Mackerras Cc: LKML , kernel-janitors@vger.kernel.org References: <009fdef0-b2c9-5e98-d32d-14149aec92c5@users.sourceforge.net> Message-ID: <43bc7b50-b59b-89e9-9139-ae8a716016a7@users.sourceforge.net> Date: Thu, 3 Aug 2017 21:15:49 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <009fdef0-b2c9-5e98-d32d-14149aec92c5@users.sourceforge.net> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:+V4mhFmFt61MWNdGPJT18kxsR1htql9u+VDFhpC53UMbGBt5Xwp xHRjmaBkbk4Wwvb71s7hizixcZCOtgYPkiuZ2PQPzZPh1wBp7BIGxSMR4PaXNj6Tod4ifK9 aO+QFnMor7SVdPvC8Q0rypBMKMBSbkjDWZDzySyz6vLvTMEYFEuG92lzRIEX3h4E+ncO9bn FnVJ+tt1FYkH7WvNbo5Vg== X-UI-Out-Filterresults: notjunk:1;V01:K0:OqtALzTk6pw=:enwvStjzXHxmp0E31jU68B XRxdyDZULYrkshDLiKuDe5feaLb2UKxY3HG9IgcdcOppYEvNhiVfrxhstdE4iTvauc2K0PlS1 JaTm7vCZqSPkTzsUHNsZTplNHISRAYsdUPQVVWer6ZPq5Iw7t6pqyg6HfeI9nSP1IV1GzieCT AbngehkOE2RkqhUrdQp+UFW5VtIPYMDlmtAvDe121xWMm0Cjzdfq/e1Sm5afHl2WazIQhPsCg wT0iSSwzL4Wqviv5dlTvNpzFYcDONcADwgVz0xz1YDN5Xi+FDLvBmNfqZHiSa26Tjem7tPwfm JYro7SaTCUed8H+jSwZEp3o1Zw8krRugjXpHjDjoTzd2uBykpFSBgzjHmkSxBvUtG0fwWgevf Ur6rFOAWQ2F9hXz2ek1X+0KsK/qLphRozWuv41Dn5sRvqhlzXqjypOehHHv6zrkgnGOp5pk54 EKUEeq8YrEisdscX9Pgyp80ixJILsu540jenib6E/K+Nw+jMX2AV4wLGrexGJjI9f5XWkyzCl YY+hsZkLVE2cYyA5W3NzLONJDLojCJzFelCACKwRLubGghmRs+QQApSPb2XWLvpFnqBet9Hhj 1IYOo0Np8mZ3QpKD9U77p9ZV99SRvF1gyCFigPNfPsDC/4pCzByiURRKHQbe0msQv1ntrXKcO JsgILew0jacq8WDkvb8IT/fHeoOz5cWeer1zRIpSvXmqdvI+/B4yjqa/7RudzQBm/9CWJzi5E I/+E3ToXdx/+N/nCiiTrWRBrjx6Kbq4yCXx45oMxSahtpX4StEOq6//yoUuCg8q4qgafLpE0u b67bODnt+KLyWhcG5vuSyJ+RFbz9Q+JLxJUwgl2g/jtjK4JX2g= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2042 Lines: 74 From: Markus Elfring Date: Thu, 3 Aug 2017 20:23:57 +0200 * Return directly after a call of the function "kzalloc" failed at the beginning. * Delete a repeated check for the local variable "bank" which became unnecessary with this refactoring. Signed-off-by: Markus Elfring --- arch/powerpc/sysdev/axonram.c | 39 +++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/arch/powerpc/sysdev/axonram.c b/arch/powerpc/sysdev/axonram.c index bf1506ec2ca4..93cc902350db 100644 --- a/arch/powerpc/sysdev/axonram.c +++ b/arch/powerpc/sysdev/axonram.c @@ -192,10 +192,8 @@ static int axon_ram_probe(struct platform_device *device) device->dev.of_node->full_name); bank = kzalloc(sizeof(*bank), GFP_KERNEL); - if (bank == NULL) { - rc = -ENOMEM; - goto failed; - } + if (!bank) + return -ENOMEM; device->dev.platform_data = bank; @@ -291,25 +289,22 @@ static int axon_ram_probe(struct platform_device *device) return 0; failed: - if (bank != NULL) { - if (bank->irq_id) - free_irq(bank->irq_id, device); - if (bank->disk != NULL) { - if (bank->disk->major > 0) - unregister_blkdev(bank->disk->major, - bank->disk->disk_name); - if (bank->disk->flags & GENHD_FL_UP) - del_gendisk(bank->disk); - put_disk(bank->disk); - } - kill_dax(bank->dax_dev); - put_dax(bank->dax_dev); - device->dev.platform_data = NULL; - if (bank->io_addr != 0) - iounmap((void __iomem *) bank->io_addr); - kfree(bank); + if (bank->irq_id) + free_irq(bank->irq_id, device); + if (bank->disk != NULL) { + if (bank->disk->major > 0) + unregister_blkdev(bank->disk->major, + bank->disk->disk_name); + if (bank->disk->flags & GENHD_FL_UP) + del_gendisk(bank->disk); + put_disk(bank->disk); } - + kill_dax(bank->dax_dev); + put_dax(bank->dax_dev); + device->dev.platform_data = NULL; + if (bank->io_addr != 0) + iounmap((void __iomem *) bank->io_addr); + kfree(bank); return rc; } -- 2.13.4