diff options
author | Seokmann Ju <seokmann.ju@qlogic.com> | 2007-07-30 22:01:07 +0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.localdomain> | 2007-07-31 19:45:07 +0400 |
commit | 53772a2cb40748ea0b26db8101d632ddb3875b51 (patch) | |
tree | e41e0e871378ba373a46fe3d18bf117fb83c50a2 /drivers | |
parent | 142009a3df39ecd4e96601d8bdabbe0c5f6e2f4e (diff) | |
download | linux-53772a2cb40748ea0b26db8101d632ddb3875b51.tar.xz |
[SCSI] qla2xxx: fix panic caused by previous patch
- this patch will fix a panic caused by omitted memory allocation for the nvram.
Signed-off-by: Seokmann Ju <seokmann.ju@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_os.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index c488996cb958..93c0c7e4f08f 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -2154,6 +2154,19 @@ qla2x00_mem_alloc(scsi_qla_host_t *ha) } } + /* Get memory for cached NVRAM */ + ha->nvram = kzalloc(MAX_NVRAM_SIZE, GFP_KERNEL); + if (ha->nvram == NULL) { + /* error */ + qla_printk(KERN_WARNING, ha, + "Memory Allocation failed - nvram cache\n"); + + qla2x00_mem_free(ha); + msleep(100); + + continue; + } + /* Done all allocations without any error. */ status = 0; @@ -2266,6 +2279,7 @@ qla2x00_mem_free(scsi_qla_host_t *ha) ha->fw_dump_reading = 0; vfree(ha->optrom_buffer); + kfree(ha->nvram); } /* |