diff options
author | Andrew Vasquez <andrew.vasquez@qlogic.com> | 2006-10-02 15:00:45 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-10-03 18:28:46 -0400 |
commit | a740a3f0407ed3344b28b05926b0ce61768e9893 (patch) | |
tree | 619098f97854aae9b07aaab908af3a059409255d /drivers/scsi | |
parent | 1620f7c2d8e3fdd7dba04bfe5f9c42201eef1188 (diff) |
[SCSI] qla2xxx: Add support for system hostname FC transport attribute.
The system hostname will be used during a subsequent FDMI registration
with the fabric.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_attr.c | 10 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_gs.c | 15 |
2 files changed, 25 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c index 463846942e16..4e1e175cb9da 100644 --- a/drivers/scsi/qla2xxx/qla_attr.c +++ b/drivers/scsi/qla2xxx/qla_attr.c | |||
@@ -857,6 +857,14 @@ qla2x00_get_host_symbolic_name(struct Scsi_Host *shost) | |||
857 | qla2x00_get_sym_node_name(ha, fc_host_symbolic_name(shost)); | 857 | qla2x00_get_sym_node_name(ha, fc_host_symbolic_name(shost)); |
858 | } | 858 | } |
859 | 859 | ||
860 | static void | ||
861 | qla2x00_set_host_system_hostname(struct Scsi_Host *shost) | ||
862 | { | ||
863 | scsi_qla_host_t *ha = to_qla_host(shost); | ||
864 | |||
865 | set_bit(REGISTER_FDMI_NEEDED, &ha->dpc_flags); | ||
866 | } | ||
867 | |||
860 | struct fc_function_template qla2xxx_transport_functions = { | 868 | struct fc_function_template qla2xxx_transport_functions = { |
861 | 869 | ||
862 | .show_host_node_name = 1, | 870 | .show_host_node_name = 1, |
@@ -871,6 +879,8 @@ struct fc_function_template qla2xxx_transport_functions = { | |||
871 | .show_host_port_type = 1, | 879 | .show_host_port_type = 1, |
872 | .get_host_symbolic_name = qla2x00_get_host_symbolic_name, | 880 | .get_host_symbolic_name = qla2x00_get_host_symbolic_name, |
873 | .show_host_symbolic_name = 1, | 881 | .show_host_symbolic_name = 1, |
882 | .set_host_system_hostname = qla2x00_set_host_system_hostname, | ||
883 | .show_host_system_hostname = 1, | ||
874 | 884 | ||
875 | .dd_fcrport_size = sizeof(struct fc_port *), | 885 | .dd_fcrport_size = sizeof(struct fc_port *), |
876 | .show_rport_supported_classes = 1, | 886 | .show_rport_supported_classes = 1, |
diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c index 225cf724dcfb..97fbc62ec669 100644 --- a/drivers/scsi/qla2xxx/qla_gs.c +++ b/drivers/scsi/qla2xxx/qla_gs.c | |||
@@ -1580,6 +1580,21 @@ qla2x00_fdmi_rpa(scsi_qla_host_t *ha) | |||
1580 | DEBUG13(printk("%s(%ld): OS_DEVICE_NAME=%s.\n", __func__, ha->host_no, | 1580 | DEBUG13(printk("%s(%ld): OS_DEVICE_NAME=%s.\n", __func__, ha->host_no, |
1581 | eiter->a.os_dev_name)); | 1581 | eiter->a.os_dev_name)); |
1582 | 1582 | ||
1583 | /* Hostname. */ | ||
1584 | if (strlen(fc_host_system_hostname(ha->host))) { | ||
1585 | eiter = (struct ct_fdmi_port_attr *) (entries + size); | ||
1586 | eiter->type = __constant_cpu_to_be16(FDMI_PORT_HOST_NAME); | ||
1587 | snprintf(eiter->a.host_name, sizeof(eiter->a.host_name), | ||
1588 | "%s", fc_host_system_hostname(ha->host)); | ||
1589 | alen = strlen(eiter->a.host_name); | ||
1590 | alen += (alen & 3) ? (4 - (alen & 3)) : 4; | ||
1591 | eiter->len = cpu_to_be16(4 + alen); | ||
1592 | size += 4 + alen; | ||
1593 | |||
1594 | DEBUG13(printk("%s(%ld): HOSTNAME=%s.\n", __func__, | ||
1595 | ha->host_no, eiter->a.host_name)); | ||
1596 | } | ||
1597 | |||
1583 | /* Update MS request size. */ | 1598 | /* Update MS request size. */ |
1584 | qla2x00_update_ms_fdmi_iocb(ha, size + 16); | 1599 | qla2x00_update_ms_fdmi_iocb(ha, size + 16); |
1585 | 1600 | ||