ahd = *(struct ahd_softc **)cmd->device->host->hostdata;
recovery_cmd = malloc(sizeof(struct scsi_cmnd), M_DEVBUF, M_WAITOK);
+ if (!recovery_cmd)
+ return (FAILED);
memset(recovery_cmd, 0, sizeof(struct scsi_cmnd));
recovery_cmd->device = cmd->device;
recovery_cmd->scsi_done = ahd_linux_dev_reset_complete;
cmd->device->lun, /*alloc*/FALSE);
if (dev == NULL) {
ahd_midlayer_entrypoint_unlock(ahd, &s);
+ kfree(recovery_cmd);
return (FAILED);
}
if ((scb = ahd_get_scb(ahd, AHD_NEVER_COL_IDX)) == NULL) {
ahd_midlayer_entrypoint_unlock(ahd, &s);
+ kfree(recovery_cmd);
return (FAILED);
}
tinfo = ahd_fetch_transinfo(ahd, 'A', ahd->our_id,
if (ahd->dev_softc != NULL)
if (ahd_pci_set_dma_mask(ahd->dev_softc, 0xFFFFFFFF)) {
printk(KERN_WARNING "aic79xx: No suitable DMA available.\n");
+ kfree(map);
return (ENODEV);
}
*vaddr = pci_alloc_consistent(ahd->dev_softc,
if (ahd_pci_set_dma_mask(ahd->dev_softc,
ahd->platform_data->hw_dma_mask)) {
printk(KERN_WARNING "aic79xx: No suitable DMA available.\n");
+ kfree(map);
return (ENODEV);
}
#else /* LINUX_VERSION_CODE < KERNEL_VERSION(2,3,0) */