[SCSI] iscsi_transport: Added error status code for ping comp event
Vikas Chaudhary [Tue, 6 Mar 2012 12:16:04 +0000 (04:16 -0800)]
Defined error codes for ping completion status.

This patch take care of Mike Christie's commets

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>

drivers/scsi/qla4xxx/ql4_isr.c
include/scsi/iscsi_if.h

index 7c9f28b..fc542a9 100644 (file)
@@ -431,9 +431,9 @@ static void qla4xxx_mbox_status_entry(struct scsi_qla_host *ha,
                                  mbox_sts_entry->out_mbox[6]));
 
                if (mbox_sts_entry->out_mbox[0] == MBOX_STS_COMMAND_COMPLETE)
-                       status = QLA_SUCCESS;
+                       status = ISCSI_PING_SUCCESS;
                else
-                       status = QLA_ERROR;
+                       status = mbox_sts_entry->out_mbox[6];
 
                data_size = sizeof(mbox_sts_entry->out_mbox);
 
index 9c23ee8..eab830a 100644 (file)
@@ -261,7 +261,8 @@ struct iscsi_uevent {
                } host_event;
                struct msg_ping_comp {
                        uint32_t        host_no;
-                       uint32_t        status;
+                       uint32_t        status; /* enum
+                                                * iscsi_ping_status_code */
                        uint32_t        pid;    /* unique ping id associated
                                                   with each ping request */
                        uint32_t        data_size;
@@ -483,6 +484,20 @@ enum iscsi_port_state {
        ISCSI_PORT_STATE_UP             = 0x2,
 };
 
+/* iSCSI PING status/error code */
+enum iscsi_ping_status_code {
+       ISCSI_PING_SUCCESS                      = 0,
+       ISCSI_PING_FW_DISABLED                  = 0x1,
+       ISCSI_PING_IPADDR_INVALID               = 0x2,
+       ISCSI_PING_LINKLOCAL_IPV6_ADDR_INVALID  = 0x3,
+       ISCSI_PING_TIMEOUT                      = 0x4,
+       ISCSI_PING_INVALID_DEST_ADDR            = 0x5,
+       ISCSI_PING_OVERSIZE_PACKET              = 0x6,
+       ISCSI_PING_ICMP_ERROR                   = 0x7,
+       ISCSI_PING_MAX_REQ_EXCEEDED             = 0x8,
+       ISCSI_PING_NO_ARP_RECEIVED              = 0x9,
+};
+
 #define iscsi_ptr(_handle) ((void*)(unsigned long)_handle)
 #define iscsi_handle(_ptr) ((uint64_t)(unsigned long)_ptr)