From: Pavel Herrmann <morpheus.ibis@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] Loop block device for sandbox
Date: Thu, 30 Aug 2012 19:14:35 +0200 [thread overview]
Message-ID: <1845834.QztBg7Qaog@bloomfield> (raw)
In-Reply-To: <201208300018.18250.marex@denx.de>
On Thursday 30 of August 2012 00:18:18 Marek Vasut wrote:
...snip...
> > +extern block_dev_desc_t sata_dev_desc[];
> > +
> > +int init_sata(int dev)
> > +{
> > + block_dev_desc_t *pdev = &(sata_dev_desc[dev]);
>
> Superfluous braces ... Actually, I think sata_dev_desc as it would work very
> well too.
Straight copy from dwc_ahsata.c, makes it more readable thought, as the order
of operation is not very intuitive IMHO.
> > +lbaint_t sata_read(int dev, lbaint_t start, lbaint_t blkcnt, void
> > *buffer)
> > +{
> > + block_dev_desc_t *pdev = &(sata_dev_desc[dev]);
> > + int fd = (long) pdev->priv;
>
> If pdev is NULL, this will crash
well, it isn't, at least not from the command - thats why you define the number
of ports in advance, you get "dev" already range-checked
> > + lbaint_t retval;
> > +
> > + os_lseek(fd, start*ATA_SECT_SIZE, OS_SEEK_SET);
> > + retval = os_read(fd, buffer, ATA_SECT_SIZE * blkcnt);
> > +
> > + return retval/ATA_SECT_SIZE;
> > +}
> > +
> > +lbaint_t sata_write(int dev, lbaint_t start, lbaint_t blkcnt, void
> > *buffer) +{
> > + block_dev_desc_t *pdev = &(sata_dev_desc[dev]);
> > + int fd = (long) pdev->priv;
> > + lbaint_t retval;
> > +
> > + os_lseek(fd, start*ATA_SECT_SIZE, OS_SEEK_SET);
>
> Besides, lseek can fail, can it not?
If you open a pipe (or nothing), yes
in the first case, you shouldn't, in the second, the I/O op will harmlessly
fail as well
> > + if (namelen > 20)
> > + namelen = 20;
>
> Why do you trim down the string, won't simple strdup() work?
nah, the destination is char[21], as it is the exact length of corresponding
field in ATA identify response (one more for a 0 at the end)
> > + memcpy(pdev->product, filenames[dev], namelen);
> > + pdev->product[20] = 0;
> > +
> > + if (fd != -1) {
>
> And if "fd" is -1 ?
then all defaults to an invalid device, because you failed to open the file,
for whatever the reason.
"agreed" to the other comments
Best Regards
Pavel Herrmann
next prev parent reply other threads:[~2012-08-30 17:14 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-29 15:46 [U-Boot] [PATCH] Loop block device for sandbox Pavel Herrmann
2012-08-29 15:48 ` Pavel Herrmann
2012-08-29 22:18 ` Marek Vasut
2012-08-30 17:14 ` Pavel Herrmann [this message]
2012-08-30 18:45 ` Marek Vasut
2012-08-30 19:07 ` Pavel Herrmann
2012-08-30 21:53 ` Marek Vasut
2012-08-31 9:09 ` Pavel Herrmann
2012-08-31 12:57 ` Marek Vasut
2012-08-31 14:25 ` Pavel Herrmann
2012-08-31 16:02 ` Marek Vasut
2012-08-31 17:56 ` Pavel Herrmann
2012-08-31 19:02 ` Marek Vasut
2012-09-01 13:19 ` [U-Boot] [PATCH v2 1/2] " Pavel Herrmann
2012-09-01 13:19 ` [U-Boot] [PATCH 2/2] Use loop block device in sandbox board Pavel Herrmann
2012-09-01 14:20 ` Marek Vasut
2012-09-03 17:24 ` Pavel Herrmann
2012-09-03 17:23 ` [U-Boot] [PATCH v2 " Pavel Herrmann
2012-09-03 16:49 ` [U-Boot] [PATCH v2 1/2] Loop block device for sandbox Marek Vasut
2012-09-03 17:31 ` Pavel Herrmann
2012-09-03 20:20 ` Marek Vasut
2012-09-05 11:16 ` [U-Boot] [PATCH v3 " Pavel Herrmann
2012-09-05 11:16 ` [U-Boot] [PATCH v3 2/2] Use loop block device in sandbox board Pavel Herrmann
2012-09-05 11:33 ` [U-Boot] [PATCH v3 1/2] Loop block device for sandbox Marek Vasut
2012-09-05 12:38 ` Pavel Herrmann
2012-09-05 12:48 ` Marek Vasut
2012-09-05 20:25 ` Pavel Herrmann
2012-09-06 1:08 ` Marek Vasut
2012-09-06 8:45 ` Pavel Herrmann
2012-09-06 8:48 ` Marek Vasut
2012-09-05 12:42 ` Pavel Herrmann
2012-09-05 12:52 ` Marek Vasut
2012-09-06 12:31 ` [U-Boot] [PATCH v4 " Pavel Herrmann
2012-09-06 23:29 ` Marek Vasut
2012-09-07 9:19 ` Pavel Herrmann
2012-09-07 9:26 ` Marek Vasut
2012-09-07 9:38 ` Pavel Herrmann
2012-09-07 9:42 ` Marek Vasut
2012-09-13 22:31 ` Tom Rini
2012-09-16 11:49 ` Pavel Herrmann
2012-09-16 11:58 ` [U-Boot] [PATCH v5 " Pavel Herrmann
2012-09-28 9:21 ` [U-Boot] [PATCH v6 " Pavel Herrmann
2012-09-28 18:22 ` Marek Vasut
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=1845834.QztBg7Qaog@bloomfield \
--to=morpheus.ibis@gmail.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox