kernel: mtdsplit: document Seama splitter a bit

Rename kernel_size variable as it includes whole entity size, not just a
kernel size. Also update comments to match it and describe better what
are we checking/looking for.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 48480
v19.07.3_mercusys_ac12_duma
Rafał Miłecki 9 years ago
parent 4e14a27799
commit 02abeb3b0a

@ -33,7 +33,7 @@ static int mtdsplit_parse_seama(struct mtd_info *master,
struct mtd_part_parser_data *data)
{
struct seama_header hdr;
size_t hdr_len, retlen, kernel_size;
size_t hdr_len, retlen, kernel_ent_size;
size_t rootfs_offset;
struct mtd_partition *parts;
int err;
@ -50,18 +50,20 @@ static int mtdsplit_parse_seama(struct mtd_info *master,
if (be32_to_cpu(hdr.magic) != SEAMA_MAGIC)
return -EINVAL;
kernel_size = hdr_len + be32_to_cpu(hdr.size) +
be16_to_cpu(hdr.metasize);
if (kernel_size > master->size)
kernel_ent_size = hdr_len + be32_to_cpu(hdr.size) +
be16_to_cpu(hdr.metasize);
if (kernel_ent_size > master->size)
return -EINVAL;
/* Find the rootfs after the kernel. */
err = mtd_check_rootfs_magic(master, kernel_size);
/* Check for the rootfs right after Seama entity with a kernel. */
err = mtd_check_rootfs_magic(master, kernel_ent_size);
if (!err) {
rootfs_offset = kernel_size;
rootfs_offset = kernel_ent_size;
} else {
/*
* The size in the header might cover the rootfs as well.
* On some devices firmware entity might contain both: kernel
* and rootfs. We can't determine kernel size so we just have to
* look for rootfs magic.
* Start the search from an arbitrary offset.
*/
err = mtd_find_rootfs_from(master, SEAMA_MIN_ROOTFS_OFFS,

Loading…
Cancel
Save