mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2025-12-10 07:44:53 +01:00
ipq807x: Changes for fixing kw issues
Adding nullpointer condition checks before the pointer is accessed or passed to a function as argument. Change-Id: I6848c132076708f69fad00a75e42a1c2f33b6215 Signed-off-by: Nikhil Prakash V <nprakash@codeaurora.org>
This commit is contained in:
parent
5f9bb09d0d
commit
e47694ebe8
3 changed files with 28 additions and 22 deletions
|
|
@ -111,7 +111,7 @@ int common_diskboot(cmd_tbl_t *cmdtp, const char *intf, int argc,
|
|||
#if defined(CONFIG_FIT)
|
||||
/* This cannot be done earlier,
|
||||
* we need complete FIT image in RAM first */
|
||||
if (genimg_get_format((void *) addr) == IMAGE_FORMAT_FIT) {
|
||||
if (fit_hdr && genimg_get_format((void *)addr) == IMAGE_FORMAT_FIT) {
|
||||
if (!fit_check_format(fit_hdr)) {
|
||||
bootstage_error(BOOTSTAGE_ID_IDE_FIT_READ);
|
||||
puts("** Bad FIT image format\n");
|
||||
|
|
|
|||
|
|
@ -872,14 +872,14 @@ static int nand_load_image(cmd_tbl_t *cmdtp, nand_info_t *nand,
|
|||
|
||||
#if defined(CONFIG_FIT)
|
||||
/* This cannot be done earlier, we need complete FIT image in RAM first */
|
||||
if (genimg_get_format ((void *)addr) == IMAGE_FORMAT_FIT) {
|
||||
if (!fit_check_format (fit_hdr)) {
|
||||
if (fit_hdr && genimg_get_format((void *)addr) == IMAGE_FORMAT_FIT) {
|
||||
if (!fit_check_format(fit_hdr)) {
|
||||
bootstage_error(BOOTSTAGE_ID_NAND_FIT_READ);
|
||||
puts ("** Bad FIT image format\n");
|
||||
puts("** Bad FIT image format\n");
|
||||
return 1;
|
||||
}
|
||||
bootstage_mark(BOOTSTAGE_ID_NAND_FIT_READ_OK);
|
||||
fit_print_contents (fit_hdr);
|
||||
fit_print_contents(fit_hdr);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -79,21 +79,24 @@ static struct adma_desc *sdhci_prepare_descriptors(void *data, uint32_t len)
|
|||
uint32_t table_len = 0;
|
||||
|
||||
if (len <= SDHCI_ADMA_DESC_LINE_SZ) {
|
||||
list = (struct adma_desc *) memalign(CACHE_LINE_SIZE, sizeof(struct adma_desc));
|
||||
list = (struct adma_desc *)memalign(CACHE_LINE_SIZE,
|
||||
sizeof(struct adma_desc));
|
||||
|
||||
if (!list) {
|
||||
printf("Error allocating memory\n");
|
||||
assert(0);
|
||||
}
|
||||
|
||||
} else {
|
||||
list[0].addr = (uint32_t)data;
|
||||
list[0].len = (len < SDHCI_ADMA_DESC_LINE_SZ) ? len : (SDHCI_ADMA_DESC_LINE_SZ & 0xffff);
|
||||
list[0].tran_att = SDHCI_ADMA_TRANS_VALID | SDHCI_ADMA_TRANS_DATA
|
||||
| SDHCI_ADMA_TRANS_END;
|
||||
list[0].len = (len < SDHCI_ADMA_DESC_LINE_SZ) ? len :
|
||||
(SDHCI_ADMA_DESC_LINE_SZ & 0xffff);
|
||||
list[0].tran_att = SDHCI_ADMA_TRANS_VALID |
|
||||
SDHCI_ADMA_TRANS_DATA | SDHCI_ADMA_TRANS_END;
|
||||
|
||||
#if !defined(CONFIG_SYS_DCACHE_OFF)
|
||||
flush_cache((unsigned long)list, sizeof(struct adma_desc));
|
||||
flush_cache((unsigned long)list,
|
||||
sizeof(struct adma_desc));
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
list_len = len / SDHCI_ADMA_DESC_LINE_SZ;
|
||||
remain = len - (list_len * SDHCI_ADMA_DESC_LINE_SZ);
|
||||
|
|
@ -108,27 +111,30 @@ static struct adma_desc *sdhci_prepare_descriptors(void *data, uint32_t len)
|
|||
if (!list) {
|
||||
printf("Allocating memory failed\n");
|
||||
assert(0);
|
||||
}
|
||||
|
||||
memset((void *) list, 0, table_len);
|
||||
} else {
|
||||
memset((void *)list, 0, table_len);
|
||||
|
||||
for (i = 0; i < (list_len - 1); i++) {
|
||||
list[i].addr = (uint32_t)data;
|
||||
list[i].len = (SDHCI_ADMA_DESC_LINE_SZ & 0xffff);
|
||||
list[i].tran_att = SDHCI_ADMA_TRANS_VALID | SDHCI_ADMA_TRANS_DATA;
|
||||
list[i].tran_att = SDHCI_ADMA_TRANS_VALID |
|
||||
SDHCI_ADMA_TRANS_DATA;
|
||||
data += SDHCI_ADMA_DESC_LINE_SZ;
|
||||
len -= SDHCI_ADMA_DESC_LINE_SZ;
|
||||
}
|
||||
|
||||
list[list_len - 1].addr = (uint32_t)data;
|
||||
list[list_len - 1].len = (len < SDHCI_ADMA_DESC_LINE_SZ) ? len : (SDHCI_ADMA_DESC_LINE_SZ & 0xffff);
|
||||
list[list_len - 1].tran_att = SDHCI_ADMA_TRANS_VALID | SDHCI_ADMA_TRANS_DATA |
|
||||
SDHCI_ADMA_TRANS_END;
|
||||
list[list_len - 1].len = (len < SDHCI_ADMA_DESC_LINE_SZ)
|
||||
? len : (SDHCI_ADMA_DESC_LINE_SZ & 0xffff);
|
||||
list[list_len - 1].tran_att = SDHCI_ADMA_TRANS_VALID |
|
||||
SDHCI_ADMA_TRANS_DATA
|
||||
| SDHCI_ADMA_TRANS_END;
|
||||
|
||||
#if !defined(CONFIG_SYS_DCACHE_OFF)
|
||||
flush_cache((unsigned long)list, table_len);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return list;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue