From: Dan Carpenter <dan.carpenter@oracle.com>
To: "Michal Suchánek" <msuchanek@suse.de>
Cc: "SF Markus Elfring" <elfring@users.sourceforge.net>,
linux-integrity@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
kernel-janitors@vger.kernel.org,
"Stefan Berger" <stefanb@linux.vnet.ibm.com>,
"Nayna Jain" <nayna@linux.vnet.ibm.com>,
"Jerry Snitselaar" <jsnitsel@redhat.com>,
LKML <linux-kernel@vger.kernel.org>,
"Jarkko Sakkinen" <jarkko.sakkinen@linux.intel.com>,
"Jason Gunthorpe" <jgunthorpe@obsidianresearch.com>,
"Corentin Labbe" <clabbe.montjoie@gmail.com>,
"Kenneth Goldman" <kgold@linux.vnet.ibm.com>,
"Paul Mackerras" <paulus@samba.org>,
"Peter Hüwe" <PeterHuewe@gmx.de>,
"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>
Subject: Re: [PATCH 4/4] char/tpm: Less checks in tpm_ibmvtpm_probe() after error detection
Date: Thu, 19 Oct 2017 17:26:26 +0300 [thread overview]
Message-ID: <20171019142626.gwckkdbz7hsigakx@mwanda> (raw)
In-Reply-To: <20171019144655.7d06111c@kitsune.suse.cz>
tpm_ibmvtpm_probe() is an example of poor names. It has the generic
ones like "cleanup" which don't say *what* is cleaned and the come-from
ones like "init_irq_cleanup" which don't say anything useful at all:
647 rc = request_irq(vio_dev->irq, ibmvtpm_interrupt, 0,
648 tpm_ibmvtpm_driver_name, ibmvtpm);
649 if (rc) {
650 dev_err(dev, "Error %d register irq 0x%x\n", rc, vio_dev->irq);
651 goto init_irq_cleanup;
652 }
653
654 rc = vio_enable_interrupts(vio_dev);
655 if (rc) {
656 dev_err(dev, "Error %d enabling interrupts\n", rc);
657 goto init_irq_cleanup;
658 }
Sadly, we never do call free_irq().
> It can do it automatically, in most cases better, and automatically
> adapt it to code changes.
I've heard this before that if you only have one label that does
everything then it's "automatic" and "future proof". It's not true.
The best error handling is methodical error handling:
1) In the reverse order from how things were allocated
2) That mirrors the allocations exactly
3) That frees one thing at a time
4) With a proper, useful, readable label name which says what the goto
does
5) That doesn't free anything which hasn't been allocated
regards,
dan carpenter
next prev parent reply other threads:[~2017-10-19 14:27 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-16 17:30 [PATCH 0/4] char-TPM: Adjustments for ten function implementations SF Markus Elfring
2017-10-16 17:31 ` [PATCH 1/4] char/tpm: Delete an error message for a failed memory allocation in tpm_ascii_bios_measurements_show() SF Markus Elfring
2017-10-16 17:32 ` [PATCH 2/4] char/tpm: Delete an error message for a failed memory allocation in tpm_ibmvtpm_probe() SF Markus Elfring
2017-10-16 17:33 ` [PATCH 3/4] char/tpm: Improve a size determination in nine functions SF Markus Elfring
2017-10-17 11:03 ` Andy Shevchenko
2017-10-17 11:50 ` Alexander.Steffen
2017-10-17 12:52 ` Mimi Zohar
2017-10-17 12:58 ` Julia Lawall
2017-10-17 15:17 ` Mimi Zohar
2017-10-17 15:29 ` Julia Lawall
2017-10-18 9:16 ` Alexander.Steffen
2017-10-17 18:41 ` SF Markus Elfring
2017-10-17 19:28 ` Mimi Zohar
2017-10-17 20:04 ` SF Markus Elfring
2017-10-17 19:36 ` Andy Shevchenko
2017-10-17 20:24 ` SF Markus Elfring
2017-10-18 14:57 ` Jarkko Sakkinen
2017-10-18 15:22 ` SF Markus Elfring
2017-10-18 15:59 ` Jarkko Sakkinen
2017-10-18 16:43 ` SF Markus Elfring
2017-10-18 17:18 ` Jarkko Sakkinen
2017-10-18 17:22 ` Jarkko Sakkinen
2017-10-18 17:54 ` SF Markus Elfring
2017-10-18 17:48 ` SF Markus Elfring
2017-10-18 17:54 ` Jerry Snitselaar
2017-10-18 18:11 ` char/tpm: Delete an error message for a failed memory allocation in tpm_…() SF Markus Elfring
2017-10-18 18:03 ` char/tpm: Improve a size determination in nine functions Andy Shevchenko
2017-10-19 12:04 ` Michal Suchánek
2017-10-19 12:16 ` Jarkko Sakkinen
2017-10-17 15:22 ` [PATCH 3/4] " Alexander.Steffen
[not found] ` <1508245325.16112.478.camel@linux.intel.com>
2017-10-18 14:52 ` Jarkko Sakkinen
2017-10-18 14:48 ` Jarkko Sakkinen
2017-10-19 16:58 ` Alexander.Steffen
2017-10-20 9:01 ` Jarkko Sakkinen
2017-10-20 10:23 ` Jarkko Sakkinen
2017-10-20 12:03 ` Alexander.Steffen
2017-10-23 13:20 ` Dan Carpenter
2017-10-18 14:40 ` Jarkko Sakkinen
2017-10-16 17:34 ` [PATCH 4/4] char/tpm: Less checks in tpm_ibmvtpm_probe() after error detection SF Markus Elfring
2017-10-19 11:56 ` Michal Suchánek
2017-10-19 12:36 ` SF Markus Elfring
2017-10-19 12:46 ` Michal Suchánek
2017-10-19 14:26 ` Dan Carpenter [this message]
2017-10-19 13:36 ` Dan Carpenter
2017-10-19 14:16 ` Michal Suchánek
2017-10-19 14:59 ` Dan Carpenter
2017-10-19 20:44 ` SF Markus Elfring
2017-10-16 18:31 ` [PATCH 0/4] char-TPM: Adjustments for ten function implementations Jarkko Sakkinen
2017-10-16 18:35 ` Jarkko Sakkinen
2017-10-16 20:44 ` SF Markus Elfring
2017-10-18 15:04 ` Jarkko Sakkinen
2017-10-18 15:43 ` SF Markus Elfring
2017-10-16 22:46 ` [PATCH 0/4] " Joe Perches
2017-10-17 7:20 ` SF Markus Elfring
2017-10-17 8:51 ` Dan Carpenter
2017-10-17 8:56 ` Julia Lawall
2017-10-17 9:44 ` Dan Carpenter
2017-10-17 10:11 ` Julia Lawall
2017-10-17 11:52 ` Mimi Zohar
2017-10-18 3:18 ` Michael Ellerman
2017-10-19 13:16 ` Mimi Zohar
2017-10-19 16:08 ` Circumstances for using the tag “Fixes” (or not) SF Markus Elfring
2017-10-17 12:26 ` [PATCH 0/4] char-TPM: Adjustments for ten function implementations Michael Ellerman
2017-10-18 15:07 ` Jarkko Sakkinen
2017-10-17 9:25 ` SF Markus Elfring
[not found] ` <1508255833.3129.33.camel@HansenPartnership.com>
2017-10-17 16:32 ` SF Markus Elfring
2017-10-17 22:43 ` Joe Perches
2017-10-18 9:00 ` SF Markus Elfring
2017-10-18 9:18 ` Joe Perches
2017-10-18 9:50 ` Alexander.Steffen
2017-10-18 10:00 ` Julia Lawall
2017-10-18 10:28 ` Joe Perches
2017-10-18 11:00 ` Adjusting further size determinations? SF Markus Elfring
2017-10-18 11:49 ` Joe Perches
2017-10-18 12:07 ` SF Markus Elfring
2017-10-18 12:58 ` David Laight
2017-10-18 13:32 ` Julia Lawall
2017-10-18 13:50 ` SF Markus Elfring
2017-10-18 10:44 ` char-TPM: Adjustments for ten function implementations Alexander.Steffen
2017-10-18 10:49 ` Joe Perches
2017-10-18 11:07 ` Alexander.Steffen
2017-10-18 9:55 ` SF Markus Elfring
2017-10-18 18:27 ` Michal Suchánek
2017-10-18 15:10 ` [PATCH 0/4] " Jarkko Sakkinen
2017-10-18 16:09 ` James Bottomley
2017-10-18 17:13 ` Jarkko Sakkinen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171019142626.gwckkdbz7hsigakx@mwanda \
--to=dan.carpenter@oracle.com \
--cc=PeterHuewe@gmx.de \
--cc=andriy.shevchenko@linux.intel.com \
--cc=clabbe.montjoie@gmail.com \
--cc=elfring@users.sourceforge.net \
--cc=jarkko.sakkinen@linux.intel.com \
--cc=jgunthorpe@obsidianresearch.com \
--cc=jsnitsel@redhat.com \
--cc=kernel-janitors@vger.kernel.org \
--cc=kgold@linux.vnet.ibm.com \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=msuchanek@suse.de \
--cc=nayna@linux.vnet.ibm.com \
--cc=paulus@samba.org \
--cc=stefanb@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox