diff options
Diffstat (limited to 'drivers/scsi/qla2xxx')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_def.h | 1 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_init.c | 11 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_iocb.c | 1 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_isr.c | 5 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_os.c | 15 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_version.h | 4 |
6 files changed, 23 insertions, 14 deletions
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 139ea0e27fd7..0930260aec2c 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h | |||
@@ -487,6 +487,7 @@ typedef struct { | |||
487 | #define MBA_IP_RCV_BUFFER_EMPTY 0x8026 /* IP receive buffer queue empty. */ | 487 | #define MBA_IP_RCV_BUFFER_EMPTY 0x8026 /* IP receive buffer queue empty. */ |
488 | #define MBA_IP_HDR_DATA_SPLIT 0x8027 /* IP header/data splitting feature */ | 488 | #define MBA_IP_HDR_DATA_SPLIT 0x8027 /* IP header/data splitting feature */ |
489 | /* used. */ | 489 | /* used. */ |
490 | #define MBA_TRACE_NOTIFICATION 0x8028 /* Trace/Diagnostic notification. */ | ||
490 | #define MBA_POINT_TO_POINT 0x8030 /* Point to point mode. */ | 491 | #define MBA_POINT_TO_POINT 0x8030 /* Point to point mode. */ |
491 | #define MBA_CMPLT_1_16BIT 0x8031 /* Completion 1 16bit IOSB. */ | 492 | #define MBA_CMPLT_1_16BIT 0x8031 /* Completion 1 16bit IOSB. */ |
492 | #define MBA_CMPLT_2_16BIT 0x8032 /* Completion 2 16bit IOSB. */ | 493 | #define MBA_CMPLT_2_16BIT 0x8032 /* Completion 2 16bit IOSB. */ |
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index 9758dba95542..859649160caa 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c | |||
@@ -3063,6 +3063,7 @@ qla2x00_update_fcports(scsi_qla_host_t *ha) | |||
3063 | int | 3063 | int |
3064 | qla2x00_abort_isp(scsi_qla_host_t *ha) | 3064 | qla2x00_abort_isp(scsi_qla_host_t *ha) |
3065 | { | 3065 | { |
3066 | int rval; | ||
3066 | unsigned long flags = 0; | 3067 | unsigned long flags = 0; |
3067 | uint16_t cnt; | 3068 | uint16_t cnt; |
3068 | srb_t *sp; | 3069 | srb_t *sp; |
@@ -3119,6 +3120,16 @@ qla2x00_abort_isp(scsi_qla_host_t *ha) | |||
3119 | 3120 | ||
3120 | ha->isp_abort_cnt = 0; | 3121 | ha->isp_abort_cnt = 0; |
3121 | clear_bit(ISP_ABORT_RETRY, &ha->dpc_flags); | 3122 | clear_bit(ISP_ABORT_RETRY, &ha->dpc_flags); |
3123 | |||
3124 | if (ha->eft) { | ||
3125 | rval = qla2x00_trace_control(ha, TC_ENABLE, | ||
3126 | ha->eft_dma, EFT_NUM_BUFFERS); | ||
3127 | if (rval) { | ||
3128 | qla_printk(KERN_WARNING, ha, | ||
3129 | "Unable to reinitialize EFT " | ||
3130 | "(%d).\n", rval); | ||
3131 | } | ||
3132 | } | ||
3122 | } else { /* failed the ISP abort */ | 3133 | } else { /* failed the ISP abort */ |
3123 | ha->flags.online = 1; | 3134 | ha->flags.online = 1; |
3124 | if (test_bit(ISP_ABORT_RETRY, &ha->dpc_flags)) { | 3135 | if (test_bit(ISP_ABORT_RETRY, &ha->dpc_flags)) { |
diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c index 2b60a27eff0b..c5b3c610a32a 100644 --- a/drivers/scsi/qla2xxx/qla_iocb.c +++ b/drivers/scsi/qla2xxx/qla_iocb.c | |||
@@ -471,6 +471,7 @@ __qla2x00_marker(scsi_qla_host_t *ha, uint16_t loop_id, uint16_t lun, | |||
471 | mrk24->nport_handle = cpu_to_le16(loop_id); | 471 | mrk24->nport_handle = cpu_to_le16(loop_id); |
472 | mrk24->lun[1] = LSB(lun); | 472 | mrk24->lun[1] = LSB(lun); |
473 | mrk24->lun[2] = MSB(lun); | 473 | mrk24->lun[2] = MSB(lun); |
474 | host_to_fcp_swap(mrk24->lun, sizeof(mrk24->lun)); | ||
474 | } else { | 475 | } else { |
475 | SET_TARGET_ID(ha, mrk->target, loop_id); | 476 | SET_TARGET_ID(ha, mrk->target, loop_id); |
476 | mrk->lun = cpu_to_le16(lun); | 477 | mrk->lun = cpu_to_le16(lun); |
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index 795bf15b1b8f..de0613135f70 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c | |||
@@ -587,6 +587,11 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint16_t *mb) | |||
587 | DEBUG2(printk("scsi(%ld): Discard RND Frame -- %04x %04x " | 587 | DEBUG2(printk("scsi(%ld): Discard RND Frame -- %04x %04x " |
588 | "%04x.\n", ha->host_no, mb[1], mb[2], mb[3])); | 588 | "%04x.\n", ha->host_no, mb[1], mb[2], mb[3])); |
589 | break; | 589 | break; |
590 | |||
591 | case MBA_TRACE_NOTIFICATION: | ||
592 | DEBUG2(printk("scsi(%ld): Trace Notification -- %04x %04x.\n", | ||
593 | ha->host_no, mb[1], mb[2])); | ||
594 | break; | ||
590 | } | 595 | } |
591 | } | 596 | } |
592 | 597 | ||
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index ec7ebb6037e6..65cbe2f5eea2 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c | |||
@@ -744,7 +744,6 @@ qla2xxx_eh_device_reset(struct scsi_cmnd *cmd) | |||
744 | { | 744 | { |
745 | scsi_qla_host_t *ha = to_qla_host(cmd->device->host); | 745 | scsi_qla_host_t *ha = to_qla_host(cmd->device->host); |
746 | fc_port_t *fcport = (struct fc_port *) cmd->device->hostdata; | 746 | fc_port_t *fcport = (struct fc_port *) cmd->device->hostdata; |
747 | srb_t *sp; | ||
748 | int ret; | 747 | int ret; |
749 | unsigned int id, lun; | 748 | unsigned int id, lun; |
750 | unsigned long serial; | 749 | unsigned long serial; |
@@ -755,8 +754,7 @@ qla2xxx_eh_device_reset(struct scsi_cmnd *cmd) | |||
755 | lun = cmd->device->lun; | 754 | lun = cmd->device->lun; |
756 | serial = cmd->serial_number; | 755 | serial = cmd->serial_number; |
757 | 756 | ||
758 | sp = (srb_t *) CMD_SP(cmd); | 757 | if (!fcport) |
759 | if (!sp || !fcport) | ||
760 | return ret; | 758 | return ret; |
761 | 759 | ||
762 | qla_printk(KERN_INFO, ha, | 760 | qla_printk(KERN_INFO, ha, |
@@ -875,7 +873,6 @@ qla2xxx_eh_bus_reset(struct scsi_cmnd *cmd) | |||
875 | { | 873 | { |
876 | scsi_qla_host_t *ha = to_qla_host(cmd->device->host); | 874 | scsi_qla_host_t *ha = to_qla_host(cmd->device->host); |
877 | fc_port_t *fcport = (struct fc_port *) cmd->device->hostdata; | 875 | fc_port_t *fcport = (struct fc_port *) cmd->device->hostdata; |
878 | srb_t *sp; | ||
879 | int ret; | 876 | int ret; |
880 | unsigned int id, lun; | 877 | unsigned int id, lun; |
881 | unsigned long serial; | 878 | unsigned long serial; |
@@ -886,8 +883,7 @@ qla2xxx_eh_bus_reset(struct scsi_cmnd *cmd) | |||
886 | lun = cmd->device->lun; | 883 | lun = cmd->device->lun; |
887 | serial = cmd->serial_number; | 884 | serial = cmd->serial_number; |
888 | 885 | ||
889 | sp = (srb_t *) CMD_SP(cmd); | 886 | if (!fcport) |
890 | if (!sp || !fcport) | ||
891 | return ret; | 887 | return ret; |
892 | 888 | ||
893 | qla_printk(KERN_INFO, ha, | 889 | qla_printk(KERN_INFO, ha, |
@@ -936,7 +932,6 @@ qla2xxx_eh_host_reset(struct scsi_cmnd *cmd) | |||
936 | { | 932 | { |
937 | scsi_qla_host_t *ha = to_qla_host(cmd->device->host); | 933 | scsi_qla_host_t *ha = to_qla_host(cmd->device->host); |
938 | fc_port_t *fcport = (struct fc_port *) cmd->device->hostdata; | 934 | fc_port_t *fcport = (struct fc_port *) cmd->device->hostdata; |
939 | srb_t *sp; | ||
940 | int ret; | 935 | int ret; |
941 | unsigned int id, lun; | 936 | unsigned int id, lun; |
942 | unsigned long serial; | 937 | unsigned long serial; |
@@ -947,8 +942,7 @@ qla2xxx_eh_host_reset(struct scsi_cmnd *cmd) | |||
947 | lun = cmd->device->lun; | 942 | lun = cmd->device->lun; |
948 | serial = cmd->serial_number; | 943 | serial = cmd->serial_number; |
949 | 944 | ||
950 | sp = (srb_t *) CMD_SP(cmd); | 945 | if (!fcport) |
951 | if (!sp || !fcport) | ||
952 | return ret; | 946 | return ret; |
953 | 947 | ||
954 | qla_printk(KERN_INFO, ha, | 948 | qla_printk(KERN_INFO, ha, |
@@ -2244,9 +2238,6 @@ qla2x00_do_dpc(void *data) | |||
2244 | 2238 | ||
2245 | next_loopid = 0; | 2239 | next_loopid = 0; |
2246 | list_for_each_entry(fcport, &ha->fcports, list) { | 2240 | list_for_each_entry(fcport, &ha->fcports, list) { |
2247 | if (fcport->port_type != FCT_TARGET) | ||
2248 | continue; | ||
2249 | |||
2250 | /* | 2241 | /* |
2251 | * If the port is not ONLINE then try to login | 2242 | * If the port is not ONLINE then try to login |
2252 | * to it if we haven't run out of retries. | 2243 | * to it if we haven't run out of retries. |
diff --git a/drivers/scsi/qla2xxx/qla_version.h b/drivers/scsi/qla2xxx/qla_version.h index d2d683440659..971259032ef7 100644 --- a/drivers/scsi/qla2xxx/qla_version.h +++ b/drivers/scsi/qla2xxx/qla_version.h | |||
@@ -7,9 +7,9 @@ | |||
7 | /* | 7 | /* |
8 | * Driver version | 8 | * Driver version |
9 | */ | 9 | */ |
10 | #define QLA2XXX_VERSION "8.01.05-k3" | 10 | #define QLA2XXX_VERSION "8.01.07-k1" |
11 | 11 | ||
12 | #define QLA_DRIVER_MAJOR_VER 8 | 12 | #define QLA_DRIVER_MAJOR_VER 8 |
13 | #define QLA_DRIVER_MINOR_VER 1 | 13 | #define QLA_DRIVER_MINOR_VER 1 |
14 | #define QLA_DRIVER_PATCH_VER 5 | 14 | #define QLA_DRIVER_PATCH_VER 7 |
15 | #define QLA_DRIVER_BETA_VER 0 | 15 | #define QLA_DRIVER_BETA_VER 0 |