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;
 
        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;
        }
 
        /* 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)) {
        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