summaryrefslogtreecommitdiff
path: root/drivers/scsi/bfa/bfad_drv.h
diff options
context:
space:
mode:
authorKrishna Gudipati <kgudipat@brocade.com>2010-03-05 19:37:57 -0800
committerJames Bottomley <James.Bottomley@suse.de>2010-03-07 13:07:00 +0530
commit0a4b1fc0b24fc7adbaf8413f2992ce1395991a78 (patch)
tree9a07aeee614e2e3f3191aee552effc467163fb33 /drivers/scsi/bfa/bfad_drv.h
parentf58e9ebbf78bd36c6cf1ca651280d39efe73a7c0 (diff)
downloadlwn-0a4b1fc0b24fc7adbaf8413f2992ce1395991a78.tar.gz
lwn-0a4b1fc0b24fc7adbaf8413f2992ce1395991a78.zip
[SCSI] bfa: Replace bfa_get_attr() with specific APIs
bfa_ioc_attr_s is a big structure and some times could cause stack overflow if defined locally, so add specific APIs that are needed to replace the use of ioc_attr local var. Signed-off-by: Krishna Gudipati <kgudipat@brocade.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/bfa/bfad_drv.h')
-rw-r--r--drivers/scsi/bfa/bfad_drv.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/scsi/bfa/bfad_drv.h b/drivers/scsi/bfa/bfad_drv.h
index 94f4d84c71c9..8617a1aa8b25 100644
--- a/drivers/scsi/bfa/bfad_drv.h
+++ b/drivers/scsi/bfa/bfad_drv.h
@@ -139,6 +139,18 @@ struct bfad_cfg_param_s {
u32 binding_method;
};
+union bfad_tmp_buf {
+ /* From struct bfa_adapter_attr_s */
+ char manufacturer[BFA_ADAPTER_MFG_NAME_LEN];
+ char serial_num[BFA_ADAPTER_SERIAL_NUM_LEN];
+ char model[BFA_ADAPTER_MODEL_NAME_LEN];
+ char fw_ver[BFA_VERSION_LEN];
+ char optrom_ver[BFA_VERSION_LEN];
+
+ /* From struct bfa_ioc_pci_attr_s */
+ u8 chip_rev[BFA_IOC_CHIP_REV_LEN]; /* chip revision */
+};
+
/*
* BFAD (PCI function) data structure
*/
@@ -182,6 +194,7 @@ struct bfad_s {
struct bfa_plog_s plog_buf;
int ref_count;
bfa_boolean_t ipfc_enabled;
+ union bfad_tmp_buf tmp_buf;
struct fc_host_statistics link_stats;
struct kobject *bfa_kobj;