From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 2/3] dfu: ram support
Date: Fri, 13 Sep 2013 18:13:32 +0200 [thread overview]
Message-ID: <201309131813.32985.marex@denx.de> (raw)
In-Reply-To: <20130913153736.GG6479@book.gsilab.sittig.org>
Dear Gerhard Sittig,
> On Fri, Sep 13, 2013 at 15:51 +0200, Marek Vasut wrote:
> > Dear Afzal Mohammed,
> >
> > [...]
> >
> > > +int dfu_fill_entity_ram(struct dfu_entity *dfu, char *s)
> > > +{
> > > + char *st;
> > > +
> > > + dfu->dev_type = DFU_DEV_RAM;
> > > + st = strsep(&s, " ");
> > > + if (strcmp(st, "ram")) {
> > > + error("unsupported device: %s\n", st);
> > > + return -ENODEV;
> > > + }
> > > +
> > > + dfu->layout = DFU_RAM_ADDR;
> > > + dfu->data.ram.start = (void *)simple_strtoul(s, &s, 16);
> > > + dfu->data.ram.size = simple_strtoul(++s, &s, 16);
> >
> > This ++s, &s is quite crazy ;-)
>
> Actually it's not just a neat trick, but instead it's not
> guaranteed to work. It's an inviation for problems that you
> don't need.
>
> The order in which arguments for the call get evaluated isn't
> specified, so behaviour is uncertain here. Read: the
> construction happens to work by coincidence for individual
> setups, but isn't correct and need not work elsewhere, and may
> break in arbitrary ways at any occasion, and then is hard to
> track down since things may "seem to work" often enough or the
> bug won't show up when you are diagnosing the problem.
>
> The code needs to get fixed before getting picked up. Doing the
> increment in a separate instruction is cheap and simple, the
> terse form is wrong.
Full ACK.
Best regards,
Marek Vasut
next prev parent reply other threads:[~2013-09-13 16:13 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-13 7:14 [U-Boot] [PATCH v3 0/3] dfu: ram support Afzal Mohammed
2013-09-13 7:16 ` [U-Boot] [PATCH v3 1/3] dfu: unify mmc/nand read/write ops enum Afzal Mohammed
2013-09-13 13:49 ` Marek Vasut
2013-09-13 7:16 ` [U-Boot] [PATCH v3 2/3] dfu: ram support Afzal Mohammed
2013-09-13 10:13 ` Lukasz Majewski
2013-09-13 13:51 ` Marek Vasut
2013-09-13 15:37 ` Gerhard Sittig
2013-09-13 16:05 ` Lukasz Majewski
2013-09-13 16:13 ` Marek Vasut [this message]
2013-09-13 17:05 ` Afzal Mohammed
2013-09-13 17:11 ` Afzal Mohammed
2013-09-13 7:17 ` [U-Boot] [PATCH v3 3/3] am335x_evm: enable DFU RAM Afzal Mohammed
2013-09-13 13:44 ` [U-Boot] [PATCH v3 0/3] dfu: ram support Marek Vasut
2013-09-14 6:17 ` Afzal Mohammed
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=201309131813.32985.marex@denx.de \
--to=marex@denx.de \
--cc=u-boot@lists.denx.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.