From: Dan Carpenter <dan.carpenter@oracle.com>
To: Ulf Hansson <ulf.hansson@linaro.org>
Cc: SF Markus Elfring <elfring@users.sourceforge.net>,
"linux-mmc@vger.kernel.org" <linux-mmc@vger.kernel.org>,
Linux USB List <linux-usb@vger.kernel.org>,
Tony Olech <tony.olech@elandigitalsystems.com>,
LKML <linux-kernel@vger.kernel.org>,
kernel-janitors@vger.kernel.org
Subject: Re: [PATCH] mmc: vub300: Use common code in __download_offload_pseudocode()
Date: Tue, 31 Oct 2017 08:45:52 +0000 [thread overview]
Message-ID: <20171031084552.mvvn73pfew4rebsd@mwanda> (raw)
In-Reply-To: <CAPDyKFqaaX3i5wLu-aORRB765Kjac705384UM4nCbV8n1Kfc3w@mail.gmail.com>
On Mon, Oct 30, 2017 at 02:03:13PM +0100, Ulf Hansson wrote:
> On 30 October 2017 at 13:15, Dan Carpenter <dan.carpenter@oracle.com> wrote:
> > On Mon, Oct 30, 2017 at 12:40:39PM +0100, Ulf Hansson wrote:
> >> On 27 October 2017 at 21:31, SF Markus Elfring
> >> <elfring@users.sourceforge.net> wrote:
> >> > From: Markus Elfring <elfring@users.sourceforge.net>
> >> > Date: Fri, 27 Oct 2017 21:21:40 +0200
> >> >
> >> > Add a jump target so that a specific string copy operation is stored
> >> > only once at the end of this function implementation.
> >> > Replace two calls of the function "strncpy" by goto statements.
> >> >
> >> > This issue was detected by using the Coccinelle software.
> >> >
> >> > Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> >>
> >> Thanks, applied for next!
> >>
> >
> > What's the advantage of this patch? The new code seems more complicated
> > to me and GCC automatically reuses duplicate constant strings so there
> > is no memory savings.
>
> It looked to me that the error path got a bit cleaner. However, I
> guess it's matter of taste.
>
> If you insist, I can drop it.
I'm on the kernel-janitors list so I am CC'd on all of Markus's patches.
It's not my code and I'm tired of being the anti-Markus guy so this
patch is fine. Markus has a tool that finds duplicate strings and he
uses gotos to avoid them. I don't think duplicate strings are a problem
or that it's a good idea to send over a hundred patches using this
method. But many people have explained that to Markus already and
that's not the bigger picture which is about error handling and labels.
What I like are labels that are necessary and self explanatory. Things
like "goto unlock" are a good example, because we know we need to unlock
and the goto tells us what the label does. Or here is another example:
foo = alloc_foo();
if (!foo)
return -ENOMEM;
bar = alloc_bar();
if (!foo) {
err = -ENOMEM;
goto free_foo;
}
From reading the code, you know that you have to free foo and the label
name is clear so you literally don't need to scroll down to the bottom
of the function when you're reading this code. A bad label is like
this:
foo = alloc_foo();
if (!foo)
goto err;
You're reading along and you're like "what happens at the err" label?
So then you have to scroll down to the bottom and read the code, then
you have to think about how the variables line up with the variables
in the above code, then you have to scroll back and find your place
again and by that point you've forgotten what you were doing when you
started.
regards,
dan carpenter
next prev parent reply other threads:[~2017-10-31 8:45 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-27 19:31 [PATCH] mmc: vub300: Use common code in __download_offload_pseudocode() SF Markus Elfring
2017-10-30 11:40 ` Ulf Hansson
2017-10-30 12:15 ` Dan Carpenter
2017-10-30 13:03 ` Ulf Hansson
2017-10-31 8:45 ` Dan Carpenter [this message]
2017-10-31 9:15 ` SF Markus Elfring
2017-10-31 15:10 ` [PATCH] " Ulf Hansson
2017-10-31 15:42 ` SF Markus Elfring
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=20171031084552.mvvn73pfew4rebsd@mwanda \
--to=dan.carpenter@oracle.com \
--cc=elfring@users.sourceforge.net \
--cc=kernel-janitors@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=tony.olech@elandigitalsystems.com \
--cc=ulf.hansson@linaro.org \
/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