[SCSI] pm80xx: Firmware flash memory free fix, with addition of new memory region for it
Performing pci_free_consistent in tasklet had result in a core dump. So allocated a new memory region for it. Fix for passing proper address and operation in firmware flash update. Signed-off-by: Sakthivel K <Sakthivel.SaravananKamalRaju@pmcs.com> Signed-off-by: Anand Kumar S <AnandKumar.Santhanam@pmcs.com> Acked-by: Jack Wang <jack_wang@usish.com> Reviewed-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:

committed by
James Bottomley

parent
54792dc285
commit
1c75a6796e
@@ -400,10 +400,11 @@ static int pm8001_set_nvmd(struct pm8001_hba_info *pm8001_ha)
|
||||
goto out;
|
||||
}
|
||||
payload = (struct pm8001_ioctl_payload *)ioctlbuffer;
|
||||
memcpy((u8 *)payload->func_specific, (u8 *)pm8001_ha->fw_image->data,
|
||||
memcpy((u8 *)&payload->func_specific, (u8 *)pm8001_ha->fw_image->data,
|
||||
pm8001_ha->fw_image->size);
|
||||
payload->length = pm8001_ha->fw_image->size;
|
||||
payload->id = 0;
|
||||
payload->minor_function = 0x1;
|
||||
pm8001_ha->nvmd_completion = &completion;
|
||||
ret = PM8001_CHIP_DISP->set_nvmd_req(pm8001_ha, payload);
|
||||
wait_for_completion(&completion);
|
||||
@@ -450,7 +451,7 @@ static int pm8001_update_flash(struct pm8001_hba_info *pm8001_ha)
|
||||
payload->length = 1024*16;
|
||||
payload->id = 0;
|
||||
fwControl =
|
||||
(struct fw_control_info *)payload->func_specific;
|
||||
(struct fw_control_info *)&payload->func_specific;
|
||||
fwControl->len = IOCTL_BUF_SIZE; /* IN */
|
||||
fwControl->size = partitionSize + HEADER_LEN;/* IN */
|
||||
fwControl->retcode = 0;/* OUT */
|
||||
|
Reference in New Issue
Block a user