[SCSI] pm8001: handle allocation failures
authorDan Carpenter <error27@gmail.com>
Tue, 17 Aug 2010 11:54:57 +0000 (13:54 +0200)
committerJames Bottomley <James.Bottomley@suse.de>
Thu, 9 Sep 2010 20:31:54 +0000 (15:31 -0500)
Return -ENOMEM if the allocations fail.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Acked-by: Jack Wang <jack_wang@usish.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/pm8001/pm8001_hwi.c

index 9793aa6afb1061cfc035e3b1b826a375a78a7296..d8db0137c0c74ea62943c01893d448dcdd04271b 100644 (file)
@@ -4194,6 +4194,8 @@ static int pm8001_chip_get_nvmd_req(struct pm8001_hba_info *pm8001_ha,
 
        nvmd_type = ioctl_payload->minor_function;
        fw_control_context = kzalloc(sizeof(struct fw_control_ex), GFP_KERNEL);
+       if (!fw_control_context)
+               return -ENOMEM;
        fw_control_context->usrAddr = (u8 *)&ioctl_payload->func_specific[0];
        fw_control_context->len = ioctl_payload->length;
        circularQ = &pm8001_ha->inbnd_q_tbl[0];
@@ -4272,6 +4274,8 @@ static int pm8001_chip_set_nvmd_req(struct pm8001_hba_info *pm8001_ha,
 
        nvmd_type = ioctl_payload->minor_function;
        fw_control_context = kzalloc(sizeof(struct fw_control_ex), GFP_KERNEL);
+       if (!fw_control_context)
+               return -ENOMEM;
        circularQ = &pm8001_ha->inbnd_q_tbl[0];
        memcpy(pm8001_ha->memoryMap.region[NVMD].virt_ptr,
                ioctl_payload->func_specific,
@@ -4381,6 +4385,8 @@ pm8001_chip_fw_flash_update_req(struct pm8001_hba_info *pm8001_ha,
        struct pm8001_ioctl_payload *ioctl_payload = payload;
 
        fw_control_context = kzalloc(sizeof(struct fw_control_ex), GFP_KERNEL);
+       if (!fw_control_context)
+               return -ENOMEM;
        fw_control = (struct fw_control_info *)&ioctl_payload->func_specific[0];
        if (fw_control->len != 0) {
                if (pm8001_mem_alloc(pm8001_ha->pdev,