aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVikas Chaudhary <vikas.chaudhary@qlogic.com>2012-03-06 07:16:04 -0500
committerJames Bottomley <JBottomley@Parallels.com>2012-03-27 03:26:35 -0400
commit1a590cabc272d62ffca1427d3010aea2098f414f (patch)
tree8fa9a2e0fdb2493ee10661ea9b711a3fb7312782
parente16d166e4f931cd735e5bac1a1affe7db09a8ea7 (diff)
[SCSI] iscsi_transport: Added error status code for ping comp event
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>
-rw-r--r--drivers/scsi/qla4xxx/ql4_isr.c4
-rw-r--r--include/scsi/iscsi_if.h17
2 files changed, 18 insertions, 3 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_isr.c b/drivers/scsi/qla4xxx/ql4_isr.c
index 7c9f28b7da72..fc542a9bb106 100644
--- a/drivers/scsi/qla4xxx/ql4_isr.c
+++ b/drivers/scsi/qla4xxx/ql4_isr.c
@@ -431,9 +431,9 @@ static void qla4xxx_mbox_status_entry(struct scsi_qla_host *ha,
431 mbox_sts_entry->out_mbox[6])); 431 mbox_sts_entry->out_mbox[6]));
432 432
433 if (mbox_sts_entry->out_mbox[0] == MBOX_STS_COMMAND_COMPLETE) 433 if (mbox_sts_entry->out_mbox[0] == MBOX_STS_COMMAND_COMPLETE)
434 status = QLA_SUCCESS; 434 status = ISCSI_PING_SUCCESS;
435 else 435 else
436 status = QLA_ERROR; 436 status = mbox_sts_entry->out_mbox[6];
437 437
438 data_size = sizeof(mbox_sts_entry->out_mbox); 438 data_size = sizeof(mbox_sts_entry->out_mbox);
439 439
diff --git a/include/scsi/iscsi_if.h b/include/scsi/iscsi_if.h
index 9c23ee8fd2d3..eab830acf9ed 100644
--- a/include/scsi/iscsi_if.h
+++ b/include/scsi/iscsi_if.h
@@ -261,7 +261,8 @@ struct iscsi_uevent {
261 } host_event; 261 } host_event;
262 struct msg_ping_comp { 262 struct msg_ping_comp {
263 uint32_t host_no; 263 uint32_t host_no;
264 uint32_t status; 264 uint32_t status; /* enum
265 * iscsi_ping_status_code */
265 uint32_t pid; /* unique ping id associated 266 uint32_t pid; /* unique ping id associated
266 with each ping request */ 267 with each ping request */
267 uint32_t data_size; 268 uint32_t data_size;
@@ -483,6 +484,20 @@ enum iscsi_port_state {
483 ISCSI_PORT_STATE_UP = 0x2, 484 ISCSI_PORT_STATE_UP = 0x2,
484}; 485};
485 486
487/* iSCSI PING status/error code */
488enum iscsi_ping_status_code {
489 ISCSI_PING_SUCCESS = 0,
490 ISCSI_PING_FW_DISABLED = 0x1,
491 ISCSI_PING_IPADDR_INVALID = 0x2,
492 ISCSI_PING_LINKLOCAL_IPV6_ADDR_INVALID = 0x3,
493 ISCSI_PING_TIMEOUT = 0x4,
494 ISCSI_PING_INVALID_DEST_ADDR = 0x5,
495 ISCSI_PING_OVERSIZE_PACKET = 0x6,
496 ISCSI_PING_ICMP_ERROR = 0x7,
497 ISCSI_PING_MAX_REQ_EXCEEDED = 0x8,
498 ISCSI_PING_NO_ARP_RECEIVED = 0x9,
499};
500
486#define iscsi_ptr(_handle) ((void*)(unsigned long)_handle) 501#define iscsi_ptr(_handle) ((void*)(unsigned long)_handle)
487#define iscsi_handle(_ptr) ((uint64_t)(unsigned long)_ptr) 502#define iscsi_handle(_ptr) ((uint64_t)(unsigned long)_ptr)
488 503