diff options
author | Adheer Chandravanshi <adheer.chandravanshi@qlogic.com> | 2013-11-22 11:28:22 +0100 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2013-12-20 05:56:27 +0100 |
commit | fb734ee3eff40c1374e23be6eaf666681e6137ac (patch) | |
tree | c3b3e30ca6c8b99c7b520d361bf4b0fec95d3a7c /drivers/scsi | |
parent | [SCSI] libiscsi: Add local_ipaddr parameter in iscsi_conn struct (diff) | |
download | linux-fb734ee3eff40c1374e23be6eaf666681e6137ac.tar.xz linux-fb734ee3eff40c1374e23be6eaf666681e6137ac.zip |
[SCSI] qla4xxx: Add support for ISCSI_PARAM_LOCAL_IPADDR sysfs attr
Signed-off-by: Adheer Chandravanshi <adheer.chandravanshi@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/qla4xxx/ql4_os.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c index 295b8d401bc4..9b8a2c342b5d 100644 --- a/drivers/scsi/qla4xxx/ql4_os.c +++ b/drivers/scsi/qla4xxx/ql4_os.c @@ -421,6 +421,7 @@ static umode_t qla4_attr_is_visible(int param_type, int param) case ISCSI_PARAM_EXP_STATSN: case ISCSI_PARAM_DISCOVERY_PARENT_IDX: case ISCSI_PARAM_DISCOVERY_PARENT_TYPE: + case ISCSI_PARAM_LOCAL_IPADDR: return S_IRUGO; default: return 0; @@ -3622,6 +3623,7 @@ static void qla4xxx_copy_to_sess_conn_params(struct iscsi_conn *conn, unsigned long options = 0; uint16_t ddb_link; uint16_t disc_parent; + char ip_addr[DDB_IPADDR_LEN]; options = le16_to_cpu(fw_ddb_entry->options); conn->is_fw_assigned_ipv6 = test_bit(OPT_IS_FW_ASSIGNED_IPV6, &options); @@ -3703,6 +3705,14 @@ static void qla4xxx_copy_to_sess_conn_params(struct iscsi_conn *conn, iscsi_set_param(conn->cls_conn, ISCSI_PARAM_TARGET_ALIAS, (char *)fw_ddb_entry->iscsi_alias, 0); + + options = le16_to_cpu(fw_ddb_entry->options); + if (options & DDB_OPT_IPV6_DEVICE) { + memset(ip_addr, 0, sizeof(ip_addr)); + sprintf(ip_addr, "%pI6", fw_ddb_entry->link_local_ipv6_addr); + iscsi_set_param(conn->cls_conn, ISCSI_PARAM_LOCAL_IPADDR, + (char *)ip_addr, 0); + } } static void qla4xxx_copy_fwddb_param(struct scsi_qla_host *ha, |