[SCSI] qla2xxx: Set correct attribute count during FDMI RPA.
[safe/jmp/linux-2.6] / drivers / scsi / qla2xxx / qla_gs.c
index a7e2358..eb0784c 100644 (file)
@@ -1517,7 +1517,7 @@ qla2x00_fdmi_rpa(scsi_qla_host_t *ha)
 
        /* Attributes */
        ct_req->req.rpa.attrs.count =
-           __constant_cpu_to_be32(FDMI_PORT_ATTR_COUNT);
+           __constant_cpu_to_be32(FDMI_PORT_ATTR_COUNT - 1);
        entries = ct_req->req.rpa.port_name;
 
        /* FC4 types. */
@@ -1600,7 +1600,7 @@ qla2x00_fdmi_rpa(scsi_qla_host_t *ha)
        /* OS device name. */
        eiter = (struct ct_fdmi_port_attr *) (entries + size);
        eiter->type = __constant_cpu_to_be16(FDMI_PORT_OS_DEVICE_NAME);
-       sprintf(eiter->a.os_dev_name, "/proc/scsi/qla2xxx/%ld", ha->host_no);
+       strcpy(eiter->a.os_dev_name, QLA2XXX_DRIVER_NAME);
        alen = strlen(eiter->a.os_dev_name);
        alen += (alen & 3) ? (4 - (alen & 3)) : 4;
        eiter->len = cpu_to_be16(4 + alen);
@@ -1611,6 +1611,8 @@ qla2x00_fdmi_rpa(scsi_qla_host_t *ha)
 
        /* Hostname. */
        if (strlen(fc_host_system_hostname(ha->host))) {
+               ct_req->req.rpa.attrs.count =
+                   __constant_cpu_to_be32(FDMI_PORT_ATTR_COUNT);
                eiter = (struct ct_fdmi_port_attr *) (entries + size);
                eiter->type = __constant_cpu_to_be16(FDMI_PORT_HOST_NAME);
                snprintf(eiter->a.host_name, sizeof(eiter->a.host_name),