]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - drivers/block/ahci.c
ahci: Error out with message on malloc() failure
[karo-tx-uboot.git] / drivers / block / ahci.c
index 0daad364d728d0df8cf99b483e8bc2ceeaea11d0..e24d634425f9e5a6337b4a86a95b38e432482f5c 100644 (file)
@@ -379,6 +379,11 @@ static int ahci_init_one(pci_dev_t pdev)
        int rc;
 
        probe_ent = malloc(sizeof(struct ahci_probe_ent));
+       if (!probe_ent) {
+               printf("%s: No memory for probe_ent\n", __func__);
+               return -ENOMEM;
+       }
+
        memset(probe_ent, 0, sizeof(struct ahci_probe_ent));
        probe_ent->dev = pdev;
 
@@ -503,7 +508,7 @@ static int ahci_port_start(u8 port)
        mem = (u32) malloc(AHCI_PORT_PRIV_DMA_SZ + 2048);
        if (!mem) {
                free(pp);
-               printf("No mem for table!\n");
+               printf("%s: No mem for table!\n", __func__);
                return -ENOMEM;
        }
 
@@ -638,8 +643,10 @@ static int ata_scsiop_inquiry(ccb *pccb)
        /* Read id from sata */
        port = pccb->target;
        tmpid = malloc(ATA_ID_WORDS * 2);
-       if (!tmpid)
+       if (!tmpid) {
+               printf("%s: No memory for tmpid\n", __func__);
                return -ENOMEM;
+       }
 
        if (ahci_device_data_io(port, (u8 *) &fis, sizeof(fis), (u8 *)tmpid,
                                ATA_ID_WORDS * 2, 0)) {
@@ -889,6 +896,11 @@ int ahci_init(u32 base)
        u32 linkmap;
 
        probe_ent = malloc(sizeof(struct ahci_probe_ent));
+       if (!probe_ent) {
+               printf("%s: No memory for probe_ent\n", __func__);
+               return -ENOMEM;
+       }
+
        memset(probe_ent, 0, sizeof(struct ahci_probe_ent));
 
        probe_ent->host_flags = ATA_FLAG_SATA