rockchip: fix blk_dread return value check error
blk_dread returns negtive error code or blocks number that read successfully. Change-Id: I0f2afe98cfb64fe8e83a065fa64b91481856f5be Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
This commit is contained in:
parent
65f7800c7d
commit
1225f03eaa
|
|
@ -215,7 +215,7 @@ static int init_resource_list(struct resource_img_hdr *hdr)
|
|||
|
||||
hdr = (void *)andr_hdr;
|
||||
ret = blk_dread(dev_desc, offset, 1, hdr);
|
||||
if (ret < 0)
|
||||
if (ret != 1)
|
||||
goto out;
|
||||
ret = resource_image_check_header(hdr);
|
||||
if (ret < 0)
|
||||
|
|
@ -228,7 +228,7 @@ static int init_resource_list(struct resource_img_hdr *hdr)
|
|||
}
|
||||
ret = blk_dread(dev_desc, offset + hdr->c_offset,
|
||||
hdr->e_blks * hdr->e_nums, content);
|
||||
if (ret < 0)
|
||||
if (ret != (hdr->e_blks * hdr->e_nums))
|
||||
goto err;
|
||||
|
||||
init_list:
|
||||
|
|
@ -300,7 +300,9 @@ int rockchip_read_resource_file(void *buf, const char *name,
|
|||
dev_desc = rockchip_get_bootdev();
|
||||
ret = blk_dread(dev_desc, file->rsce_base + file->f_offset + offset,
|
||||
blks, buf);
|
||||
if (!ret)
|
||||
if (ret != blks)
|
||||
ret = -EIO;
|
||||
else
|
||||
ret = len;
|
||||
|
||||
return ret;
|
||||
|
|
|
|||
|
|
@ -97,8 +97,11 @@ static int read_rockchip_image(struct blk_desc *dev_desc,
|
|||
|
||||
/* read first block with header imformation */
|
||||
ret = blk_dread(dev_desc, part_info->start, 1, img);
|
||||
if (ret < 0)
|
||||
if (ret != 1) {
|
||||
ret = -EIO;
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (img->tag != TAG_KERNEL) {
|
||||
printf("%s: invalid image tag(0x%x)\n", part_info->name, img->tag);
|
||||
ret = -EINVAL;
|
||||
|
|
@ -113,8 +116,13 @@ static int read_rockchip_image(struct blk_desc *dev_desc,
|
|||
cnt = DIV_ROUND_UP(img->size + 8 + 4, RK_BLK_SIZE);
|
||||
ret = blk_dread(dev_desc, part_info->start + 1, cnt - 1,
|
||||
dst + RK_BLK_SIZE - header_len);
|
||||
if (!ret)
|
||||
if (ret != (cnt - 1)) {
|
||||
printf("%s try to read %d blocks failed, only read %d blocks\n",
|
||||
part_info->name, cnt - 1, ret);
|
||||
ret = -EIO;
|
||||
} else {
|
||||
ret = img->size;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ROCKCHIP_CRC
|
||||
printf("%s image CRC32 verify... ", part_info->name);
|
||||
|
|
@ -192,8 +200,10 @@ int rockchip_get_boot_mode(void)
|
|||
ret = blk_dread(dev_desc,
|
||||
part_info.start + BOOTLOADER_MESSAGE_BLK_OFFSET,
|
||||
size >> 9, bmsg);
|
||||
if (ret < 0)
|
||||
if (ret != (size >> 9)) {
|
||||
ret = -EIO;
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (!strcmp(bmsg->command, "boot-recovery")) {
|
||||
printf("boot mode: recovery\n");
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ static int rkparm_init_param(struct blk_desc *dev_desc,
|
|||
|
||||
ret = blk_dread(dev_desc, RK_PARAM_OFFSET, MAX_PARAM_SIZE >> 9,
|
||||
(ulong *)param);
|
||||
if (ret < 0) {
|
||||
if (ret != (MAX_PARAM_SIZE >> 9)) {
|
||||
printf("%s param read fail\n", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue