diff options
Diffstat (limited to 'drivers/message/fusion/mptbase.c')
| -rw-r--r-- | drivers/message/fusion/mptbase.c | 205 |
1 files changed, 113 insertions, 92 deletions
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c index 642a61b6d0a4..266414ca2814 100644 --- a/drivers/message/fusion/mptbase.c +++ b/drivers/message/fusion/mptbase.c | |||
| @@ -180,6 +180,7 @@ static void mpt_sp_ioc_info(MPT_ADAPTER *ioc, u32 ioc_status, MPT_FRAME_HDR *mf) | |||
| 180 | static void mpt_fc_log_info(MPT_ADAPTER *ioc, u32 log_info); | 180 | static void mpt_fc_log_info(MPT_ADAPTER *ioc, u32 log_info); |
| 181 | static void mpt_spi_log_info(MPT_ADAPTER *ioc, u32 log_info); | 181 | static void mpt_spi_log_info(MPT_ADAPTER *ioc, u32 log_info); |
| 182 | static void mpt_sas_log_info(MPT_ADAPTER *ioc, u32 log_info); | 182 | static void mpt_sas_log_info(MPT_ADAPTER *ioc, u32 log_info); |
| 183 | static int mpt_read_ioc_pg_3(MPT_ADAPTER *ioc); | ||
| 183 | 184 | ||
| 184 | /* module entry point */ | 185 | /* module entry point */ |
| 185 | static int __init fusion_init (void); | 186 | static int __init fusion_init (void); |
| @@ -428,7 +429,7 @@ mpt_base_reply(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *reply) | |||
| 428 | results = ProcessEventNotification(ioc, pEvReply, &evHandlers); | 429 | results = ProcessEventNotification(ioc, pEvReply, &evHandlers); |
| 429 | if (results != evHandlers) { | 430 | if (results != evHandlers) { |
| 430 | /* CHECKME! Any special handling needed here? */ | 431 | /* CHECKME! Any special handling needed here? */ |
| 431 | devtprintk((MYIOC_s_WARN_FMT "Called %d event handlers, sum results = %d\n", | 432 | devtverboseprintk((MYIOC_s_WARN_FMT "Called %d event handlers, sum results = %d\n", |
| 432 | ioc->name, evHandlers, results)); | 433 | ioc->name, evHandlers, results)); |
| 433 | } | 434 | } |
| 434 | 435 | ||
| @@ -438,10 +439,10 @@ mpt_base_reply(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *reply) | |||
| 438 | */ | 439 | */ |
| 439 | if (pEvReply->MsgFlags & MPI_MSGFLAGS_CONTINUATION_REPLY) { | 440 | if (pEvReply->MsgFlags & MPI_MSGFLAGS_CONTINUATION_REPLY) { |
| 440 | freereq = 0; | 441 | freereq = 0; |
| 441 | devtprintk((MYIOC_s_WARN_FMT "EVENT_NOTIFICATION reply %p does not return Request frame\n", | 442 | devtverboseprintk((MYIOC_s_WARN_FMT "EVENT_NOTIFICATION reply %p does not return Request frame\n", |
| 442 | ioc->name, pEvReply)); | 443 | ioc->name, pEvReply)); |
| 443 | } else { | 444 | } else { |
| 444 | devtprintk((MYIOC_s_WARN_FMT "EVENT_NOTIFICATION reply %p returns Request frame\n", | 445 | devtverboseprintk((MYIOC_s_WARN_FMT "EVENT_NOTIFICATION reply %p returns Request frame\n", |
| 445 | ioc->name, pEvReply)); | 446 | ioc->name, pEvReply)); |
| 446 | } | 447 | } |
| 447 | 448 | ||
| @@ -1120,65 +1121,6 @@ mpt_verify_adapter(int iocid, MPT_ADAPTER **iocpp) | |||
| 1120 | return -1; | 1121 | return -1; |
| 1121 | } | 1122 | } |
| 1122 | 1123 | ||
| 1123 | int | ||
| 1124 | mpt_alt_ioc_wait(MPT_ADAPTER *ioc) | ||
| 1125 | { | ||
| 1126 | int loop_count = 30 * 4; /* Wait 30 seconds */ | ||
| 1127 | int status = -1; /* -1 means failed to get board READY */ | ||
| 1128 | |||
| 1129 | do { | ||
| 1130 | spin_lock(&ioc->initializing_hba_lock); | ||
| 1131 | if (ioc->initializing_hba_lock_flag == 0) { | ||
| 1132 | ioc->initializing_hba_lock_flag=1; | ||
| 1133 | spin_unlock(&ioc->initializing_hba_lock); | ||
| 1134 | status = 0; | ||
| 1135 | break; | ||
| 1136 | } | ||
| 1137 | spin_unlock(&ioc->initializing_hba_lock); | ||
| 1138 | set_current_state(TASK_INTERRUPTIBLE); | ||
| 1139 | schedule_timeout(HZ/4); | ||
| 1140 | } while (--loop_count); | ||
| 1141 | |||
| 1142 | return status; | ||
| 1143 | } | ||
| 1144 | |||
| 1145 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | ||
| 1146 | /* | ||
| 1147 | * mpt_bringup_adapter - This is a wrapper function for mpt_do_ioc_recovery | ||
| 1148 | * @ioc: Pointer to MPT adapter structure | ||
| 1149 | * @sleepFlag: Use schedule if CAN_SLEEP else use udelay. | ||
| 1150 | * | ||
| 1151 | * This routine performs all the steps necessary to bring the IOC | ||
| 1152 | * to a OPERATIONAL state. | ||
| 1153 | * | ||
| 1154 | * Special Note: This function was added with spin lock's so as to allow | ||
| 1155 | * the dv(domain validation) work thread to succeed on the other channel | ||
| 1156 | * that maybe occuring at the same time when this function is called. | ||
| 1157 | * Without this lock, the dv would fail when message frames were | ||
| 1158 | * requested during hba bringup on the alternate ioc. | ||
| 1159 | */ | ||
| 1160 | static int | ||
| 1161 | mpt_bringup_adapter(MPT_ADAPTER *ioc, int sleepFlag) | ||
| 1162 | { | ||
| 1163 | int r; | ||
| 1164 | |||
| 1165 | if(ioc->alt_ioc) { | ||
| 1166 | if((r=mpt_alt_ioc_wait(ioc->alt_ioc)!=0)) | ||
| 1167 | return r; | ||
| 1168 | } | ||
| 1169 | |||
| 1170 | r = mpt_do_ioc_recovery(ioc, MPT_HOSTEVENT_IOC_BRINGUP, | ||
| 1171 | CAN_SLEEP); | ||
| 1172 | |||
| 1173 | if(ioc->alt_ioc) { | ||
| 1174 | spin_lock(&ioc->alt_ioc->initializing_hba_lock); | ||
| 1175 | ioc->alt_ioc->initializing_hba_lock_flag=0; | ||
| 1176 | spin_unlock(&ioc->alt_ioc->initializing_hba_lock); | ||
| 1177 | } | ||
| 1178 | |||
| 1179 | return r; | ||
| 1180 | } | ||
| 1181 | |||
| 1182 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | 1124 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ |
| 1183 | /* | 1125 | /* |
| 1184 | * mpt_attach - Install a PCI intelligent MPT adapter. | 1126 | * mpt_attach - Install a PCI intelligent MPT adapter. |
| @@ -1482,7 +1424,8 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id) | |||
| 1482 | */ | 1424 | */ |
| 1483 | mpt_detect_bound_ports(ioc, pdev); | 1425 | mpt_detect_bound_ports(ioc, pdev); |
| 1484 | 1426 | ||
| 1485 | if ((r = mpt_bringup_adapter(ioc, CAN_SLEEP)) != 0){ | 1427 | if ((r = mpt_do_ioc_recovery(ioc, MPT_HOSTEVENT_IOC_BRINGUP, |
| 1428 | CAN_SLEEP)) != 0){ | ||
| 1486 | printk(KERN_WARNING MYNAM | 1429 | printk(KERN_WARNING MYNAM |
| 1487 | ": WARNING - %s did not initialize properly! (%d)\n", | 1430 | ": WARNING - %s did not initialize properly! (%d)\n", |
| 1488 | ioc->name, r); | 1431 | ioc->name, r); |
| @@ -1629,7 +1572,6 @@ mpt_resume(struct pci_dev *pdev) | |||
| 1629 | MPT_ADAPTER *ioc = pci_get_drvdata(pdev); | 1572 | MPT_ADAPTER *ioc = pci_get_drvdata(pdev); |
| 1630 | u32 device_state = pdev->current_state; | 1573 | u32 device_state = pdev->current_state; |
| 1631 | int recovery_state; | 1574 | int recovery_state; |
| 1632 | int ii; | ||
| 1633 | 1575 | ||
| 1634 | printk(MYIOC_s_INFO_FMT | 1576 | printk(MYIOC_s_INFO_FMT |
| 1635 | "pci-resume: pdev=0x%p, slot=%s, Previous operating state [D%d]\n", | 1577 | "pci-resume: pdev=0x%p, slot=%s, Previous operating state [D%d]\n", |
| @@ -1643,14 +1585,6 @@ mpt_resume(struct pci_dev *pdev) | |||
| 1643 | CHIPREG_WRITE32(&ioc->chip->IntMask, MPI_HIM_DIM); | 1585 | CHIPREG_WRITE32(&ioc->chip->IntMask, MPI_HIM_DIM); |
| 1644 | ioc->active = 1; | 1586 | ioc->active = 1; |
| 1645 | 1587 | ||
| 1646 | /* F/W not running */ | ||
| 1647 | if(!CHIPREG_READ32(&ioc->chip->Doorbell)) { | ||
| 1648 | /* enable domain validation flags */ | ||
| 1649 | for (ii=0; ii < MPT_MAX_SCSI_DEVICES; ii++) { | ||
| 1650 | ioc->spi_data.dvStatus[ii] |= MPT_SCSICFG_NEED_DV; | ||
| 1651 | } | ||
| 1652 | } | ||
| 1653 | |||
| 1654 | printk(MYIOC_s_INFO_FMT | 1588 | printk(MYIOC_s_INFO_FMT |
| 1655 | "pci-resume: ioc-state=0x%x,doorbell=0x%x\n", | 1589 | "pci-resume: ioc-state=0x%x,doorbell=0x%x\n", |
| 1656 | ioc->name, | 1590 | ioc->name, |
| @@ -4938,7 +4872,7 @@ done_and_free: | |||
| 4938 | return rc; | 4872 | return rc; |
| 4939 | } | 4873 | } |
| 4940 | 4874 | ||
| 4941 | int | 4875 | static int |
| 4942 | mpt_read_ioc_pg_3(MPT_ADAPTER *ioc) | 4876 | mpt_read_ioc_pg_3(MPT_ADAPTER *ioc) |
| 4943 | { | 4877 | { |
| 4944 | IOCPage3_t *pIoc3; | 4878 | IOCPage3_t *pIoc3; |
| @@ -5146,13 +5080,13 @@ SendEventNotification(MPT_ADAPTER *ioc, u8 EvSwitch) | |||
| 5146 | 5080 | ||
| 5147 | evnp = (EventNotification_t *) mpt_get_msg_frame(mpt_base_index, ioc); | 5081 | evnp = (EventNotification_t *) mpt_get_msg_frame(mpt_base_index, ioc); |
| 5148 | if (evnp == NULL) { | 5082 | if (evnp == NULL) { |
| 5149 | devtprintk((MYIOC_s_WARN_FMT "Unable to allocate event request frame!\n", | 5083 | devtverboseprintk((MYIOC_s_WARN_FMT "Unable to allocate event request frame!\n", |
| 5150 | ioc->name)); | 5084 | ioc->name)); |
| 5151 | return 0; | 5085 | return 0; |
| 5152 | } | 5086 | } |
| 5153 | memset(evnp, 0, sizeof(*evnp)); | 5087 | memset(evnp, 0, sizeof(*evnp)); |
| 5154 | 5088 | ||
| 5155 | devtprintk((MYIOC_s_INFO_FMT "Sending EventNotification (%d) request %p\n", ioc->name, EvSwitch, evnp)); | 5089 | devtverboseprintk((MYIOC_s_INFO_FMT "Sending EventNotification (%d) request %p\n", ioc->name, EvSwitch, evnp)); |
| 5156 | 5090 | ||
| 5157 | evnp->Function = MPI_FUNCTION_EVENT_NOTIFICATION; | 5091 | evnp->Function = MPI_FUNCTION_EVENT_NOTIFICATION; |
| 5158 | evnp->ChainOffset = 0; | 5092 | evnp->ChainOffset = 0; |
| @@ -5907,24 +5841,27 @@ EventDescriptionStr(u8 event, u32 evData0, char *evStr) | |||
| 5907 | break; | 5841 | break; |
| 5908 | case MPI_EVENT_SAS_DEVICE_STATUS_CHANGE: | 5842 | case MPI_EVENT_SAS_DEVICE_STATUS_CHANGE: |
| 5909 | { | 5843 | { |
| 5844 | char buf[50]; | ||
| 5845 | u8 id = (u8)(evData0); | ||
| 5910 | u8 ReasonCode = (u8)(evData0 >> 16); | 5846 | u8 ReasonCode = (u8)(evData0 >> 16); |
| 5911 | switch (ReasonCode) { | 5847 | switch (ReasonCode) { |
| 5912 | case MPI_EVENT_SAS_DEV_STAT_RC_ADDED: | 5848 | case MPI_EVENT_SAS_DEV_STAT_RC_ADDED: |
| 5913 | ds = "SAS Device Status Change: Added"; | 5849 | sprintf(buf,"SAS Device Status Change: Added: id=%d", id); |
| 5914 | break; | 5850 | break; |
| 5915 | case MPI_EVENT_SAS_DEV_STAT_RC_NOT_RESPONDING: | 5851 | case MPI_EVENT_SAS_DEV_STAT_RC_NOT_RESPONDING: |
| 5916 | ds = "SAS Device Status Change: Deleted"; | 5852 | sprintf(buf,"SAS Device Status Change: Deleted: id=%d", id); |
| 5917 | break; | 5853 | break; |
| 5918 | case MPI_EVENT_SAS_DEV_STAT_RC_SMART_DATA: | 5854 | case MPI_EVENT_SAS_DEV_STAT_RC_SMART_DATA: |
| 5919 | ds = "SAS Device Status Change: SMART Data"; | 5855 | sprintf(buf,"SAS Device Status Change: SMART Data: id=%d", id); |
| 5920 | break; | 5856 | break; |
| 5921 | case MPI_EVENT_SAS_DEV_STAT_RC_NO_PERSIST_ADDED: | 5857 | case MPI_EVENT_SAS_DEV_STAT_RC_NO_PERSIST_ADDED: |
| 5922 | ds = "SAS Device Status Change: No Persistancy Added"; | 5858 | sprintf(buf,"SAS Device Status Change: No Persistancy Added: id=%d", id); |
| 5923 | break; | 5859 | break; |
| 5924 | default: | 5860 | default: |
| 5925 | ds = "SAS Device Status Change: Unknown"; | 5861 | sprintf(buf,"SAS Device Status Change: Unknown: id=%d", id); |
| 5926 | break; | 5862 | break; |
| 5927 | } | 5863 | } |
| 5864 | ds = buf; | ||
| 5928 | break; | 5865 | break; |
| 5929 | } | 5866 | } |
| 5930 | case MPI_EVENT_ON_BUS_TIMER_EXPIRED: | 5867 | case MPI_EVENT_ON_BUS_TIMER_EXPIRED: |
| @@ -5940,11 +5877,97 @@ EventDescriptionStr(u8 event, u32 evData0, char *evStr) | |||
| 5940 | ds = "Persistent Table Full"; | 5877 | ds = "Persistent Table Full"; |
| 5941 | break; | 5878 | break; |
| 5942 | case MPI_EVENT_SAS_PHY_LINK_STATUS: | 5879 | case MPI_EVENT_SAS_PHY_LINK_STATUS: |
| 5943 | ds = "SAS PHY Link Status"; | 5880 | { |
| 5881 | char buf[50]; | ||
| 5882 | u8 LinkRates = (u8)(evData0 >> 8); | ||
| 5883 | u8 PhyNumber = (u8)(evData0); | ||
| 5884 | LinkRates = (LinkRates & MPI_EVENT_SAS_PLS_LR_CURRENT_MASK) >> | ||
| 5885 | MPI_EVENT_SAS_PLS_LR_CURRENT_SHIFT; | ||
| 5886 | switch (LinkRates) { | ||
| 5887 | case MPI_EVENT_SAS_PLS_LR_RATE_UNKNOWN: | ||
| 5888 | sprintf(buf,"SAS PHY Link Status: Phy=%d:" | ||
| 5889 | " Rate Unknown",PhyNumber); | ||
| 5890 | break; | ||
| 5891 | case MPI_EVENT_SAS_PLS_LR_RATE_PHY_DISABLED: | ||
| 5892 | sprintf(buf,"SAS PHY Link Status: Phy=%d:" | ||
| 5893 | " Phy Disabled",PhyNumber); | ||
| 5894 | break; | ||
| 5895 | case MPI_EVENT_SAS_PLS_LR_RATE_FAILED_SPEED_NEGOTIATION: | ||
| 5896 | sprintf(buf,"SAS PHY Link Status: Phy=%d:" | ||
| 5897 | " Failed Speed Nego",PhyNumber); | ||
| 5898 | break; | ||
| 5899 | case MPI_EVENT_SAS_PLS_LR_RATE_SATA_OOB_COMPLETE: | ||
| 5900 | sprintf(buf,"SAS PHY Link Status: Phy=%d:" | ||
| 5901 | " Sata OOB Completed",PhyNumber); | ||
| 5902 | break; | ||
| 5903 | case MPI_EVENT_SAS_PLS_LR_RATE_1_5: | ||
| 5904 | sprintf(buf,"SAS PHY Link Status: Phy=%d:" | ||
| 5905 | " Rate 1.5 Gbps",PhyNumber); | ||
| 5906 | break; | ||
| 5907 | case MPI_EVENT_SAS_PLS_LR_RATE_3_0: | ||
| 5908 | sprintf(buf,"SAS PHY Link Status: Phy=%d:" | ||
| 5909 | " Rate 3.0 Gpbs",PhyNumber); | ||
| 5910 | break; | ||
| 5911 | default: | ||
| 5912 | sprintf(buf,"SAS PHY Link Status: Phy=%d", PhyNumber); | ||
| 5913 | break; | ||
| 5914 | } | ||
| 5915 | ds = buf; | ||
| 5944 | break; | 5916 | break; |
| 5917 | } | ||
| 5945 | case MPI_EVENT_SAS_DISCOVERY_ERROR: | 5918 | case MPI_EVENT_SAS_DISCOVERY_ERROR: |
| 5946 | ds = "SAS Discovery Error"; | 5919 | ds = "SAS Discovery Error"; |
| 5947 | break; | 5920 | break; |
| 5921 | case MPI_EVENT_IR_RESYNC_UPDATE: | ||
| 5922 | { | ||
| 5923 | u8 resync_complete = (u8)(evData0 >> 16); | ||
| 5924 | char buf[40]; | ||
| 5925 | sprintf(buf,"IR Resync Update: Complete = %d:",resync_complete); | ||
| 5926 | ds = buf; | ||
| 5927 | break; | ||
| 5928 | } | ||
| 5929 | case MPI_EVENT_IR2: | ||
| 5930 | { | ||
| 5931 | u8 ReasonCode = (u8)(evData0 >> 16); | ||
| 5932 | switch (ReasonCode) { | ||
| 5933 | case MPI_EVENT_IR2_RC_LD_STATE_CHANGED: | ||
| 5934 | ds = "IR2: LD State Changed"; | ||
| 5935 | break; | ||
| 5936 | case MPI_EVENT_IR2_RC_PD_STATE_CHANGED: | ||
| 5937 | ds = "IR2: PD State Changed"; | ||
| 5938 | break; | ||
| 5939 | case MPI_EVENT_IR2_RC_BAD_BLOCK_TABLE_FULL: | ||
| 5940 | ds = "IR2: Bad Block Table Full"; | ||
| 5941 | break; | ||
| 5942 | case MPI_EVENT_IR2_RC_PD_INSERTED: | ||
| 5943 | ds = "IR2: PD Inserted"; | ||
| 5944 | break; | ||
| 5945 | case MPI_EVENT_IR2_RC_PD_REMOVED: | ||
| 5946 | ds = "IR2: PD Removed"; | ||
| 5947 | break; | ||
| 5948 | case MPI_EVENT_IR2_RC_FOREIGN_CFG_DETECTED: | ||
| 5949 | ds = "IR2: Foreign CFG Detected"; | ||
| 5950 | break; | ||
| 5951 | case MPI_EVENT_IR2_RC_REBUILD_MEDIUM_ERROR: | ||
| 5952 | ds = "IR2: Rebuild Medium Error"; | ||
| 5953 | break; | ||
| 5954 | default: | ||
| 5955 | ds = "IR2"; | ||
| 5956 | break; | ||
| 5957 | } | ||
| 5958 | break; | ||
| 5959 | } | ||
| 5960 | case MPI_EVENT_SAS_DISCOVERY: | ||
| 5961 | { | ||
| 5962 | if (evData0) | ||
| 5963 | ds = "SAS Discovery: Start"; | ||
| 5964 | else | ||
| 5965 | ds = "SAS Discovery: Stop"; | ||
| 5966 | break; | ||
| 5967 | } | ||
| 5968 | case MPI_EVENT_LOG_ENTRY_ADDED: | ||
| 5969 | ds = "SAS Log Entry Added"; | ||
| 5970 | break; | ||
| 5948 | 5971 | ||
| 5949 | /* | 5972 | /* |
| 5950 | * MPT base "custom" events may be added here... | 5973 | * MPT base "custom" events may be added here... |
| @@ -5989,12 +6012,12 @@ ProcessEventNotification(MPT_ADAPTER *ioc, EventNotificationReply_t *pEventReply | |||
| 5989 | } | 6012 | } |
| 5990 | 6013 | ||
| 5991 | EventDescriptionStr(event, evData0, evStr); | 6014 | EventDescriptionStr(event, evData0, evStr); |
| 5992 | devtprintk((MYIOC_s_INFO_FMT "MPT event (%s=%02Xh) detected!\n", | 6015 | devtprintk((MYIOC_s_INFO_FMT "MPT event:(%02Xh) : %s\n", |
| 5993 | ioc->name, | 6016 | ioc->name, |
| 5994 | evStr, | 6017 | event, |
| 5995 | event)); | 6018 | evStr)); |
| 5996 | 6019 | ||
| 5997 | #if defined(MPT_DEBUG) || defined(MPT_DEBUG_EVENTS) | 6020 | #if defined(MPT_DEBUG) || defined(MPT_DEBUG_VERBOSE_EVENTS) |
| 5998 | printk(KERN_INFO MYNAM ": Event data:\n" KERN_INFO); | 6021 | printk(KERN_INFO MYNAM ": Event data:\n" KERN_INFO); |
| 5999 | for (ii = 0; ii < evDataLen; ii++) | 6022 | for (ii = 0; ii < evDataLen; ii++) |
| 6000 | printk(" %08x", le32_to_cpu(pEventReply->Data[ii])); | 6023 | printk(" %08x", le32_to_cpu(pEventReply->Data[ii])); |
| @@ -6053,7 +6076,7 @@ ProcessEventNotification(MPT_ADAPTER *ioc, EventNotificationReply_t *pEventReply | |||
| 6053 | */ | 6076 | */ |
| 6054 | for (ii=MPT_MAX_PROTOCOL_DRIVERS-1; ii; ii--) { | 6077 | for (ii=MPT_MAX_PROTOCOL_DRIVERS-1; ii; ii--) { |
| 6055 | if (MptEvHandlers[ii]) { | 6078 | if (MptEvHandlers[ii]) { |
| 6056 | devtprintk((MYIOC_s_INFO_FMT "Routing Event to event handler #%d\n", | 6079 | devtverboseprintk((MYIOC_s_INFO_FMT "Routing Event to event handler #%d\n", |
| 6057 | ioc->name, ii)); | 6080 | ioc->name, ii)); |
| 6058 | r += (*(MptEvHandlers[ii]))(ioc, pEventReply); | 6081 | r += (*(MptEvHandlers[ii]))(ioc, pEventReply); |
| 6059 | handlers++; | 6082 | handlers++; |
| @@ -6065,10 +6088,10 @@ ProcessEventNotification(MPT_ADAPTER *ioc, EventNotificationReply_t *pEventReply | |||
| 6065 | * If needed, send (a single) EventAck. | 6088 | * If needed, send (a single) EventAck. |
| 6066 | */ | 6089 | */ |
| 6067 | if (pEventReply->AckRequired == MPI_EVENT_NOTIFICATION_ACK_REQUIRED) { | 6090 | if (pEventReply->AckRequired == MPI_EVENT_NOTIFICATION_ACK_REQUIRED) { |
| 6068 | devtprintk((MYIOC_s_WARN_FMT | 6091 | devtverboseprintk((MYIOC_s_WARN_FMT |
| 6069 | "EventAck required\n",ioc->name)); | 6092 | "EventAck required\n",ioc->name)); |
| 6070 | if ((ii = SendEventAck(ioc, pEventReply)) != 0) { | 6093 | if ((ii = SendEventAck(ioc, pEventReply)) != 0) { |
| 6071 | devtprintk((MYIOC_s_WARN_FMT "SendEventAck returned %d\n", | 6094 | devtverboseprintk((MYIOC_s_WARN_FMT "SendEventAck returned %d\n", |
| 6072 | ioc->name, ii)); | 6095 | ioc->name, ii)); |
| 6073 | } | 6096 | } |
| 6074 | } | 6097 | } |
| @@ -6205,8 +6228,8 @@ mpt_spi_log_info(MPT_ADAPTER *ioc, u32 log_info) | |||
| 6205 | "Abort", /* 12h */ | 6228 | "Abort", /* 12h */ |
| 6206 | "IO Not Yet Executed", /* 13h */ | 6229 | "IO Not Yet Executed", /* 13h */ |
| 6207 | "IO Executed", /* 14h */ | 6230 | "IO Executed", /* 14h */ |
| 6208 | NULL, /* 15h */ | 6231 | "Persistant Reservation Out Not Affiliation Owner", /* 15h */ |
| 6209 | NULL, /* 16h */ | 6232 | "Open Transmit DMA Abort", /* 16h */ |
| 6210 | NULL, /* 17h */ | 6233 | NULL, /* 17h */ |
| 6211 | NULL, /* 18h */ | 6234 | NULL, /* 18h */ |
| 6212 | NULL, /* 19h */ | 6235 | NULL, /* 19h */ |
| @@ -6431,11 +6454,9 @@ EXPORT_SYMBOL(mpt_stm_index); | |||
| 6431 | EXPORT_SYMBOL(mpt_HardResetHandler); | 6454 | EXPORT_SYMBOL(mpt_HardResetHandler); |
| 6432 | EXPORT_SYMBOL(mpt_config); | 6455 | EXPORT_SYMBOL(mpt_config); |
| 6433 | EXPORT_SYMBOL(mpt_findImVolumes); | 6456 | EXPORT_SYMBOL(mpt_findImVolumes); |
| 6434 | EXPORT_SYMBOL(mpt_read_ioc_pg_3); | ||
| 6435 | EXPORT_SYMBOL(mpt_alloc_fw_memory); | 6457 | EXPORT_SYMBOL(mpt_alloc_fw_memory); |
| 6436 | EXPORT_SYMBOL(mpt_free_fw_memory); | 6458 | EXPORT_SYMBOL(mpt_free_fw_memory); |
| 6437 | EXPORT_SYMBOL(mptbase_sas_persist_operation); | 6459 | EXPORT_SYMBOL(mptbase_sas_persist_operation); |
| 6438 | EXPORT_SYMBOL(mpt_alt_ioc_wait); | ||
| 6439 | EXPORT_SYMBOL(mptbase_GetFcPortPage0); | 6460 | EXPORT_SYMBOL(mptbase_GetFcPortPage0); |
| 6440 | 6461 | ||
| 6441 | 6462 | ||
