diff options
author | Kashyap, Desai <kashyap.desai@lsi.com> | 2010-07-26 09:27:36 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-07-28 10:07:47 -0400 |
commit | 213aaca3e5727f3eb56002b04a1405db34a54ed8 (patch) | |
tree | 2a9fc9b41a31fe286fe274fa477bc28848794caa /drivers/message/fusion | |
parent | c9de7dc48307395fb71780b567ae8833b080d1c8 (diff) |
[SCSI] mptfusion: Extra debug prints added relavent to Device missing delay error handling
Adding function name in original debug prints and few more debug prints are
added.
Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
Cc: Stable Tree <stable@kernel.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/message/fusion')
-rw-r--r-- | drivers/message/fusion/mptbase.c | 27 | ||||
-rw-r--r-- | drivers/message/fusion/mptbase.h | 3 | ||||
-rw-r--r-- | drivers/message/fusion/mptctl.c | 6 | ||||
-rw-r--r-- | drivers/message/fusion/mptfc.c | 9 | ||||
-rw-r--r-- | drivers/message/fusion/mptlan.c | 4 | ||||
-rw-r--r-- | drivers/message/fusion/mptsas.c | 15 | ||||
-rw-r--r-- | drivers/message/fusion/mptspi.c | 9 |
7 files changed, 47 insertions, 26 deletions
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c index e319abcd849c..828003937711 100644 --- a/drivers/message/fusion/mptbase.c +++ b/drivers/message/fusion/mptbase.c | |||
@@ -115,6 +115,7 @@ MODULE_PARM_DESC(mpt_fwfault_debug, "Enable detection of Firmware fault" | |||
115 | " and halt Firmware on fault - (default=0)"); | 115 | " and halt Firmware on fault - (default=0)"); |
116 | 116 | ||
117 | 117 | ||
118 | static char MptCallbacksName[MPT_MAX_PROTOCOL_DRIVERS][50]; | ||
118 | 119 | ||
119 | #ifdef MFCNT | 120 | #ifdef MFCNT |
120 | static int mfcounter = 0; | 121 | static int mfcounter = 0; |
@@ -213,7 +214,7 @@ static int ProcessEventNotification(MPT_ADAPTER *ioc, | |||
213 | static void mpt_iocstatus_info(MPT_ADAPTER *ioc, u32 ioc_status, MPT_FRAME_HDR *mf); | 214 | static void mpt_iocstatus_info(MPT_ADAPTER *ioc, u32 ioc_status, MPT_FRAME_HDR *mf); |
214 | static void mpt_fc_log_info(MPT_ADAPTER *ioc, u32 log_info); | 215 | static void mpt_fc_log_info(MPT_ADAPTER *ioc, u32 log_info); |
215 | static void mpt_spi_log_info(MPT_ADAPTER *ioc, u32 log_info); | 216 | static void mpt_spi_log_info(MPT_ADAPTER *ioc, u32 log_info); |
216 | static void mpt_sas_log_info(MPT_ADAPTER *ioc, u32 log_info); | 217 | static void mpt_sas_log_info(MPT_ADAPTER *ioc, u32 log_info , u8 cb_idx); |
217 | static int mpt_read_ioc_pg_3(MPT_ADAPTER *ioc); | 218 | static int mpt_read_ioc_pg_3(MPT_ADAPTER *ioc); |
218 | static void mpt_inactive_raid_list_free(MPT_ADAPTER *ioc); | 219 | static void mpt_inactive_raid_list_free(MPT_ADAPTER *ioc); |
219 | 220 | ||
@@ -490,7 +491,7 @@ mpt_reply(MPT_ADAPTER *ioc, u32 pa) | |||
490 | else if (ioc->bus_type == SPI) | 491 | else if (ioc->bus_type == SPI) |
491 | mpt_spi_log_info(ioc, log_info); | 492 | mpt_spi_log_info(ioc, log_info); |
492 | else if (ioc->bus_type == SAS) | 493 | else if (ioc->bus_type == SAS) |
493 | mpt_sas_log_info(ioc, log_info); | 494 | mpt_sas_log_info(ioc, log_info, cb_idx); |
494 | } | 495 | } |
495 | 496 | ||
496 | if (ioc_stat & MPI_IOCSTATUS_MASK) | 497 | if (ioc_stat & MPI_IOCSTATUS_MASK) |
@@ -644,7 +645,7 @@ mptbase_reply(MPT_ADAPTER *ioc, MPT_FRAME_HDR *req, MPT_FRAME_HDR *reply) | |||
644 | * considered an error by the caller. | 645 | * considered an error by the caller. |
645 | */ | 646 | */ |
646 | u8 | 647 | u8 |
647 | mpt_register(MPT_CALLBACK cbfunc, MPT_DRIVER_CLASS dclass) | 648 | mpt_register(MPT_CALLBACK cbfunc, MPT_DRIVER_CLASS dclass, char *func_name) |
648 | { | 649 | { |
649 | u8 cb_idx; | 650 | u8 cb_idx; |
650 | last_drv_idx = MPT_MAX_PROTOCOL_DRIVERS; | 651 | last_drv_idx = MPT_MAX_PROTOCOL_DRIVERS; |
@@ -659,6 +660,8 @@ mpt_register(MPT_CALLBACK cbfunc, MPT_DRIVER_CLASS dclass) | |||
659 | MptDriverClass[cb_idx] = dclass; | 660 | MptDriverClass[cb_idx] = dclass; |
660 | MptEvHandlers[cb_idx] = NULL; | 661 | MptEvHandlers[cb_idx] = NULL; |
661 | last_drv_idx = cb_idx; | 662 | last_drv_idx = cb_idx; |
663 | memcpy(MptCallbacksName[cb_idx], func_name, | ||
664 | strlen(func_name) > 50 ? 50 : strlen(func_name)); | ||
662 | break; | 665 | break; |
663 | } | 666 | } |
664 | } | 667 | } |
@@ -8002,7 +8005,7 @@ mpt_spi_log_info(MPT_ADAPTER *ioc, u32 log_info) | |||
8002 | * Refer to lsi/mpi_log_sas.h. | 8005 | * Refer to lsi/mpi_log_sas.h. |
8003 | **/ | 8006 | **/ |
8004 | static void | 8007 | static void |
8005 | mpt_sas_log_info(MPT_ADAPTER *ioc, u32 log_info) | 8008 | mpt_sas_log_info(MPT_ADAPTER *ioc, u32 log_info, u8 cb_idx) |
8006 | { | 8009 | { |
8007 | union loginfo_type { | 8010 | union loginfo_type { |
8008 | u32 loginfo; | 8011 | u32 loginfo; |
@@ -8056,21 +8059,22 @@ union loginfo_type { | |||
8056 | if (sub_code_desc != NULL) | 8059 | if (sub_code_desc != NULL) |
8057 | printk(MYIOC_s_INFO_FMT | 8060 | printk(MYIOC_s_INFO_FMT |
8058 | "LogInfo(0x%08x): Originator={%s}, Code={%s}," | 8061 | "LogInfo(0x%08x): Originator={%s}, Code={%s}," |
8059 | " SubCode={%s}\n", | 8062 | " SubCode={%s} cb_idx %s\n", |
8060 | ioc->name, log_info, originator_desc, code_desc, | 8063 | ioc->name, log_info, originator_desc, code_desc, |
8061 | sub_code_desc); | 8064 | sub_code_desc, MptCallbacksName[cb_idx]); |
8062 | else if (code_desc != NULL) | 8065 | else if (code_desc != NULL) |
8063 | printk(MYIOC_s_INFO_FMT | 8066 | printk(MYIOC_s_INFO_FMT |
8064 | "LogInfo(0x%08x): Originator={%s}, Code={%s}," | 8067 | "LogInfo(0x%08x): Originator={%s}, Code={%s}," |
8065 | " SubCode(0x%04x)\n", | 8068 | " SubCode(0x%04x) cb_idx %s\n", |
8066 | ioc->name, log_info, originator_desc, code_desc, | 8069 | ioc->name, log_info, originator_desc, code_desc, |
8067 | sas_loginfo.dw.subcode); | 8070 | sas_loginfo.dw.subcode, MptCallbacksName[cb_idx]); |
8068 | else | 8071 | else |
8069 | printk(MYIOC_s_INFO_FMT | 8072 | printk(MYIOC_s_INFO_FMT |
8070 | "LogInfo(0x%08x): Originator={%s}, Code=(0x%02x)," | 8073 | "LogInfo(0x%08x): Originator={%s}, Code=(0x%02x)," |
8071 | " SubCode(0x%04x)\n", | 8074 | " SubCode(0x%04x) cb_idx %s\n", |
8072 | ioc->name, log_info, originator_desc, | 8075 | ioc->name, log_info, originator_desc, |
8073 | sas_loginfo.dw.code, sas_loginfo.dw.subcode); | 8076 | sas_loginfo.dw.code, sas_loginfo.dw.subcode, |
8077 | MptCallbacksName[cb_idx]); | ||
8074 | } | 8078 | } |
8075 | 8079 | ||
8076 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | 8080 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ |
@@ -8435,7 +8439,8 @@ fusion_init(void) | |||
8435 | /* Register ourselves (mptbase) in order to facilitate | 8439 | /* Register ourselves (mptbase) in order to facilitate |
8436 | * EventNotification handling. | 8440 | * EventNotification handling. |
8437 | */ | 8441 | */ |
8438 | mpt_base_index = mpt_register(mptbase_reply, MPTBASE_DRIVER); | 8442 | mpt_base_index = mpt_register(mptbase_reply, MPTBASE_DRIVER, |
8443 | "mptbase_reply"); | ||
8439 | 8444 | ||
8440 | /* Register for hard reset handling callbacks. | 8445 | /* Register for hard reset handling callbacks. |
8441 | */ | 8446 | */ |
diff --git a/drivers/message/fusion/mptbase.h b/drivers/message/fusion/mptbase.h index 7f31973b3f7c..0b23c426a571 100644 --- a/drivers/message/fusion/mptbase.h +++ b/drivers/message/fusion/mptbase.h | |||
@@ -926,7 +926,8 @@ extern void mpt_detach(struct pci_dev *pdev); | |||
926 | extern int mpt_suspend(struct pci_dev *pdev, pm_message_t state); | 926 | extern int mpt_suspend(struct pci_dev *pdev, pm_message_t state); |
927 | extern int mpt_resume(struct pci_dev *pdev); | 927 | extern int mpt_resume(struct pci_dev *pdev); |
928 | #endif | 928 | #endif |
929 | extern u8 mpt_register(MPT_CALLBACK cbfunc, MPT_DRIVER_CLASS dclass); | 929 | extern u8 mpt_register(MPT_CALLBACK cbfunc, MPT_DRIVER_CLASS dclass, |
930 | char *func_name); | ||
930 | extern void mpt_deregister(u8 cb_idx); | 931 | extern void mpt_deregister(u8 cb_idx); |
931 | extern int mpt_event_register(u8 cb_idx, MPT_EVHANDLER ev_cbfunc); | 932 | extern int mpt_event_register(u8 cb_idx, MPT_EVHANDLER ev_cbfunc); |
932 | extern void mpt_event_deregister(u8 cb_idx); | 933 | extern void mpt_event_deregister(u8 cb_idx); |
diff --git a/drivers/message/fusion/mptctl.c b/drivers/message/fusion/mptctl.c index 40046f595f1c..d8ddfdf8be14 100644 --- a/drivers/message/fusion/mptctl.c +++ b/drivers/message/fusion/mptctl.c | |||
@@ -3018,7 +3018,8 @@ static int __init mptctl_init(void) | |||
3018 | * Install our handler | 3018 | * Install our handler |
3019 | */ | 3019 | */ |
3020 | ++where; | 3020 | ++where; |
3021 | mptctl_id = mpt_register(mptctl_reply, MPTCTL_DRIVER); | 3021 | mptctl_id = mpt_register(mptctl_reply, MPTCTL_DRIVER, |
3022 | "mptctl_reply"); | ||
3022 | if (!mptctl_id || mptctl_id >= MPT_MAX_PROTOCOL_DRIVERS) { | 3023 | if (!mptctl_id || mptctl_id >= MPT_MAX_PROTOCOL_DRIVERS) { |
3023 | printk(KERN_ERR MYNAM ": ERROR: Failed to register with Fusion MPT base driver\n"); | 3024 | printk(KERN_ERR MYNAM ": ERROR: Failed to register with Fusion MPT base driver\n"); |
3024 | misc_deregister(&mptctl_miscdev); | 3025 | misc_deregister(&mptctl_miscdev); |
@@ -3026,7 +3027,8 @@ static int __init mptctl_init(void) | |||
3026 | goto out_fail; | 3027 | goto out_fail; |
3027 | } | 3028 | } |
3028 | 3029 | ||
3029 | mptctl_taskmgmt_id = mpt_register(mptctl_taskmgmt_reply, MPTCTL_DRIVER); | 3030 | mptctl_taskmgmt_id = mpt_register(mptctl_taskmgmt_reply, MPTCTL_DRIVER, |
3031 | "mptctl_taskmgmt_reply"); | ||
3030 | if (!mptctl_taskmgmt_id || mptctl_taskmgmt_id >= MPT_MAX_PROTOCOL_DRIVERS) { | 3032 | if (!mptctl_taskmgmt_id || mptctl_taskmgmt_id >= MPT_MAX_PROTOCOL_DRIVERS) { |
3031 | printk(KERN_ERR MYNAM ": ERROR: Failed to register with Fusion MPT base driver\n"); | 3033 | printk(KERN_ERR MYNAM ": ERROR: Failed to register with Fusion MPT base driver\n"); |
3032 | mpt_deregister(mptctl_id); | 3034 | mpt_deregister(mptctl_id); |
diff --git a/drivers/message/fusion/mptfc.c b/drivers/message/fusion/mptfc.c index b5f03ad81568..e15220ff52fc 100644 --- a/drivers/message/fusion/mptfc.c +++ b/drivers/message/fusion/mptfc.c | |||
@@ -1472,9 +1472,12 @@ mptfc_init(void) | |||
1472 | if (!mptfc_transport_template) | 1472 | if (!mptfc_transport_template) |
1473 | return -ENODEV; | 1473 | return -ENODEV; |
1474 | 1474 | ||
1475 | mptfcDoneCtx = mpt_register(mptscsih_io_done, MPTFC_DRIVER); | 1475 | mptfcDoneCtx = mpt_register(mptscsih_io_done, MPTFC_DRIVER, |
1476 | mptfcTaskCtx = mpt_register(mptscsih_taskmgmt_complete, MPTFC_DRIVER); | 1476 | "mptscsih_scandv_complete"); |
1477 | mptfcInternalCtx = mpt_register(mptscsih_scandv_complete, MPTFC_DRIVER); | 1477 | mptfcTaskCtx = mpt_register(mptscsih_taskmgmt_complete, MPTFC_DRIVER, |
1478 | "mptscsih_scandv_complete"); | ||
1479 | mptfcInternalCtx = mpt_register(mptscsih_scandv_complete, MPTFC_DRIVER, | ||
1480 | "mptscsih_scandv_complete"); | ||
1478 | 1481 | ||
1479 | mpt_event_register(mptfcDoneCtx, mptfc_event_process); | 1482 | mpt_event_register(mptfcDoneCtx, mptfc_event_process); |
1480 | mpt_reset_register(mptfcDoneCtx, mptfc_ioc_reset); | 1483 | mpt_reset_register(mptfcDoneCtx, mptfc_ioc_reset); |
diff --git a/drivers/message/fusion/mptlan.c b/drivers/message/fusion/mptlan.c index 4fa9665cbe93..cbe96072a6cc 100644 --- a/drivers/message/fusion/mptlan.c +++ b/drivers/message/fusion/mptlan.c | |||
@@ -1452,7 +1452,9 @@ static int __init mpt_lan_init (void) | |||
1452 | { | 1452 | { |
1453 | show_mptmod_ver(LANAME, LANVER); | 1453 | show_mptmod_ver(LANAME, LANVER); |
1454 | 1454 | ||
1455 | if ((LanCtx = mpt_register(lan_reply, MPTLAN_DRIVER)) <= 0) { | 1455 | LanCtx = mpt_register(lan_reply, MPTLAN_DRIVER, |
1456 | "lan_reply"); | ||
1457 | if (LanCtx <= 0) { | ||
1456 | printk (KERN_ERR MYNAM ": Failed to register with MPT base driver\n"); | 1458 | printk (KERN_ERR MYNAM ": Failed to register with MPT base driver\n"); |
1457 | return -EBUSY; | 1459 | return -EBUSY; |
1458 | } | 1460 | } |
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c index 235113ac08e5..83a5115f0251 100644 --- a/drivers/message/fusion/mptsas.c +++ b/drivers/message/fusion/mptsas.c | |||
@@ -5368,13 +5368,18 @@ mptsas_init(void) | |||
5368 | return -ENODEV; | 5368 | return -ENODEV; |
5369 | mptsas_transport_template->eh_timed_out = mptsas_eh_timed_out; | 5369 | mptsas_transport_template->eh_timed_out = mptsas_eh_timed_out; |
5370 | 5370 | ||
5371 | mptsasDoneCtx = mpt_register(mptscsih_io_done, MPTSAS_DRIVER); | 5371 | mptsasDoneCtx = mpt_register(mptscsih_io_done, MPTSAS_DRIVER, |
5372 | mptsasTaskCtx = mpt_register(mptscsih_taskmgmt_complete, MPTSAS_DRIVER); | 5372 | "mptscsih_io_done"); |
5373 | mptsasTaskCtx = mpt_register(mptscsih_taskmgmt_complete, MPTSAS_DRIVER, | ||
5374 | "mptscsih_taskmgmt_complete"); | ||
5373 | mptsasInternalCtx = | 5375 | mptsasInternalCtx = |
5374 | mpt_register(mptscsih_scandv_complete, MPTSAS_DRIVER); | 5376 | mpt_register(mptscsih_scandv_complete, MPTSAS_DRIVER, |
5375 | mptsasMgmtCtx = mpt_register(mptsas_mgmt_done, MPTSAS_DRIVER); | 5377 | "mptscsih_scandv_complete"); |
5378 | mptsasMgmtCtx = mpt_register(mptsas_mgmt_done, MPTSAS_DRIVER, | ||
5379 | "mptsas_mgmt_done"); | ||
5376 | mptsasDeviceResetCtx = | 5380 | mptsasDeviceResetCtx = |
5377 | mpt_register(mptsas_taskmgmt_complete, MPTSAS_DRIVER); | 5381 | mpt_register(mptsas_taskmgmt_complete, MPTSAS_DRIVER, |
5382 | "mptsas_taskmgmt_complete"); | ||
5378 | 5383 | ||
5379 | mpt_event_register(mptsasDoneCtx, mptsas_event_process); | 5384 | mpt_event_register(mptsasDoneCtx, mptsas_event_process); |
5380 | mpt_reset_register(mptsasDoneCtx, mptsas_ioc_reset); | 5385 | mpt_reset_register(mptsasDoneCtx, mptsas_ioc_reset); |
diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c index 1abaa5d01ae3..0e2803155ae2 100644 --- a/drivers/message/fusion/mptspi.c +++ b/drivers/message/fusion/mptspi.c | |||
@@ -1551,9 +1551,12 @@ mptspi_init(void) | |||
1551 | if (!mptspi_transport_template) | 1551 | if (!mptspi_transport_template) |
1552 | return -ENODEV; | 1552 | return -ENODEV; |
1553 | 1553 | ||
1554 | mptspiDoneCtx = mpt_register(mptscsih_io_done, MPTSPI_DRIVER); | 1554 | mptspiDoneCtx = mpt_register(mptscsih_io_done, MPTSPI_DRIVER, |
1555 | mptspiTaskCtx = mpt_register(mptscsih_taskmgmt_complete, MPTSPI_DRIVER); | 1555 | "mptscsih_io_done"); |
1556 | mptspiInternalCtx = mpt_register(mptscsih_scandv_complete, MPTSPI_DRIVER); | 1556 | mptspiTaskCtx = mpt_register(mptscsih_taskmgmt_complete, MPTSPI_DRIVER, |
1557 | "mptscsih_taskmgmt_complete"); | ||
1558 | mptspiInternalCtx = mpt_register(mptscsih_scandv_complete, | ||
1559 | MPTSPI_DRIVER, "mptscsih_scandv_complete"); | ||
1557 | 1560 | ||
1558 | mpt_event_register(mptspiDoneCtx, mptspi_event_process); | 1561 | mpt_event_register(mptspiDoneCtx, mptspi_event_process); |
1559 | mpt_reset_register(mptspiDoneCtx, mptspi_ioc_reset); | 1562 | mpt_reset_register(mptspiDoneCtx, mptspi_ioc_reset); |