From: Stephen Warren <swarren@wwwdotorg.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH V2 3/3] FAT: implement fat_set_blk_dev(), convert cmd_fat.c
Date: Tue, 09 Oct 2012 17:44:08 -0600 [thread overview]
Message-ID: <5074B6C8.3050500@wwwdotorg.org> (raw)
In-Reply-To: <473370330.6489191.1349823982576.JavaMail.root@advansee.com>
On 10/09/2012 05:06 PM, Beno?t Th?baudeau wrote:
> Hi Stephen,
>
> See my comments inlined below.
>
> On Tuesday, October 9, 2012 10:41:41 PM, Stephen Warren wrote:
>> This makes the FAT filesystem API more consistent with other
>> block-based
>> filesystems. If in the future standard multi-filesystem commands such as
>> "ls" or "load" are implemented, having FAT work the same way as other
>> filesystems will be necessary.
>>
>> Convert cmd_fat.c to the new API, so the code looks more like other files
>> implementing the same commands for other filesystems.
>> diff --git a/fs/fat/fat.c b/fs/fat/fat.c
>> +int fat_register_device(block_dev_desc_t *dev_desc, int part_no)
>> +{
>> + disk_partition_t info;
>> +
>> + /* First close any currently found FAT filesystem */
>> + cur_dev = NULL;
>> +
>> + /* Read the partition table, if present */
>> + if (get_partition_info(dev_desc, part_no, &info)) {
>> + if (part_no != 0) {
>> + printf("** Partition %d not valid on device %d **\n",
>> + part_no, dev_desc->dev);
>> + return -1;
>> + }
>> +
>> + info.part = 0;
>> + info.start = 0;
>> + info.size = dev_desc->lba;
>> + info.blksz = dev_desc->blksz;
>> + memset(info.name, 0, sizeof(info.name));
>> + memset(info.type, 0, sizeof(info.type));
>> +#ifdef CONFIG_PARTITION_UUIDS
>> + memset(info.uuid, 0, sizeof(info.uuid));
>> +#endif
>> + info.bootable = 0;
>
> Sorry for pointing this out only now, but now that cmd_fat.c has been switched
> to fat_set_blk_dev(), the code above is handled for this file by
> get_device_and_partition():
> ---
> info->start = 0;
> info->size = (*dev_desc)->lba;
> info->blksz = (*dev_desc)->blksz;
> info->bootable = 0;
> #ifdef CONFIG_PARTITION_UUIDS
> info->uuid[0] = 0;
> #endif
> ---
>
> This code does not initialize the fields part, name and type, and it clears only
> the 1st byte of the uuid field. Is this on purpose for some reason, or is this
> an issue?
get_device_and_partition() should set indeed set info->part in the
whole-disk case; I'll fix that.
I think get_device_and_partition() never cleared name or type in this
case; I guess that's a pre-existing inconsistency between the two pieces
of code? I'll have a look and add a cleanup patch to make the code
consistent.
The uuid field is a string, so clearing just the first byte is fine; I
ended up using memset in the new code in this patch since the existing
fat_register_device() implementation used memset() on name and type;
something I imagine is not strictly necessary. Since the function is
being re-written anyway, I'll take a look to make sure that clearing
only the first byte is fine, and remove all the memsets and just zero
out the first byte.
prev parent reply other threads:[~2012-10-09 23:44 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-09 20:41 [U-Boot] [PATCH V2 1/3] part: add partition number to disk_partition_t Stephen Warren
2012-10-09 20:41 ` [U-Boot] [PATCH V2 2/3] FAT: make use of disk_partition_t.part Stephen Warren
2012-10-09 20:41 ` [U-Boot] [PATCH V2 3/3] FAT: implement fat_set_blk_dev(), convert cmd_fat.c Stephen Warren
2012-10-09 23:06 ` Benoît Thébaudeau
2012-10-09 23:44 ` Stephen Warren [this message]
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=5074B6C8.3050500@wwwdotorg.org \
--to=swarren@wwwdotorg.org \
--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.