[SCSI] qla4xxx: Export CHAP index as sysfs attribute
[pandora-kernel.git] / drivers / scsi / qla4xxx / ql4_mbx.c
index e1e66a4..71331e3 100644 (file)
@@ -661,6 +661,8 @@ int qla4xxx_get_fwddb_entry(struct scsi_qla_host *ha,
        }
        memset(&mbox_cmd, 0, sizeof(mbox_cmd));
        memset(&mbox_sts, 0, sizeof(mbox_sts));
+       if (fw_ddb_entry)
+               memset(fw_ddb_entry, 0, sizeof(struct dev_db_entry));
 
        mbox_cmd[0] = MBOX_CMD_GET_DATABASE_ENTRY;
        mbox_cmd[1] = (uint32_t) fw_ddb_index;
@@ -1424,8 +1426,8 @@ exit_set_chap:
  * match is found. If a match is not found then add the entry in FLASH and
  * return the index at which entry is written in the FLASH.
  **/
-static int qla4xxx_get_chap_index(struct scsi_qla_host *ha, char *username,
-                           char *password, int bidi, uint16_t *chap_index)
+int qla4xxx_get_chap_index(struct scsi_qla_host *ha, char *username,
+                          char *password, int bidi, uint16_t *chap_index)
 {
        int i, rval;
        int free_index = -1;
@@ -1444,6 +1446,11 @@ static int qla4xxx_get_chap_index(struct scsi_qla_host *ha, char *username,
                return QLA_ERROR;
        }
 
+       if (!username || !password) {
+               ql4_printk(KERN_ERR, ha, "Do not have username and psw\n");
+               return QLA_ERROR;
+       }
+
        mutex_lock(&ha->chap_sem);
        for (i = 0; i < max_chap_entries; i++) {
                chap_table = (struct ql4_chap_table *)ha->chap_list + i;