[SCSI] qla2xxx: Add support for extended error logging.
Similar in form to QLogic's standard offering -- via the 'extended_error_logging' module parameter. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
Родитель
744f11fdb1
Коммит
0181944fe6
|
@ -38,11 +38,7 @@
|
||||||
* Macros use for debugging the driver.
|
* Macros use for debugging the driver.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if DEBUG_QLA2100
|
#define DEBUG(x) do { if (extended_error_logging) { x; } } while (0)
|
||||||
#define DEBUG(x) do {x;} while (0)
|
|
||||||
#else
|
|
||||||
#define DEBUG(x) do {} while (0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(QL_DEBUG_LEVEL_1)
|
#if defined(QL_DEBUG_LEVEL_1)
|
||||||
#define DEBUG1(x) do {x;} while (0)
|
#define DEBUG1(x) do {x;} while (0)
|
||||||
|
@ -50,27 +46,18 @@
|
||||||
#define DEBUG1(x) do {} while (0)
|
#define DEBUG1(x) do {} while (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(QL_DEBUG_LEVEL_2)
|
#define DEBUG2(x) do { if (extended_error_logging) { x; } } while (0)
|
||||||
#define DEBUG2(x) do {x;} while (0)
|
#define DEBUG2_3(x) do { if (extended_error_logging) { x; } } while (0)
|
||||||
#define DEBUG2_3(x) do {x;} while (0)
|
#define DEBUG2_3_11(x) do { if (extended_error_logging) { x; } } while (0)
|
||||||
#define DEBUG2_3_11(x) do {x;} while (0)
|
#define DEBUG2_9_10(x) do { if (extended_error_logging) { x; } } while (0)
|
||||||
#define DEBUG2_9_10(x) do {x;} while (0)
|
#define DEBUG2_11(x) do { if (extended_error_logging) { x; } } while (0)
|
||||||
#define DEBUG2_11(x) do {x;} while (0)
|
#define DEBUG2_13(x) do { if (extended_error_logging) { x; } } while (0)
|
||||||
#define DEBUG2_13(x) do {x;} while (0)
|
|
||||||
#else
|
|
||||||
#define DEBUG2(x) do {} while (0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(QL_DEBUG_LEVEL_3)
|
#if defined(QL_DEBUG_LEVEL_3)
|
||||||
#define DEBUG3(x) do {x;} while (0)
|
#define DEBUG3(x) do {x;} while (0)
|
||||||
#define DEBUG2_3(x) do {x;} while (0)
|
|
||||||
#define DEBUG2_3_11(x) do {x;} while (0)
|
|
||||||
#define DEBUG3_11(x) do {x;} while (0)
|
#define DEBUG3_11(x) do {x;} while (0)
|
||||||
#else
|
#else
|
||||||
#define DEBUG3(x) do {} while (0)
|
#define DEBUG3(x) do {} while (0)
|
||||||
#if !defined(QL_DEBUG_LEVEL_2)
|
|
||||||
#define DEBUG2_3(x) do {} while (0)
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(QL_DEBUG_LEVEL_4)
|
#if defined(QL_DEBUG_LEVEL_4)
|
||||||
|
@ -94,20 +81,15 @@
|
||||||
#if defined(QL_DEBUG_LEVEL_9)
|
#if defined(QL_DEBUG_LEVEL_9)
|
||||||
#define DEBUG9(x) do {x;} while (0)
|
#define DEBUG9(x) do {x;} while (0)
|
||||||
#define DEBUG9_10(x) do {x;} while (0)
|
#define DEBUG9_10(x) do {x;} while (0)
|
||||||
#define DEBUG2_9_10(x) do {x;} while (0)
|
|
||||||
#else
|
#else
|
||||||
#define DEBUG9(x) do {} while (0)
|
#define DEBUG9(x) do {} while (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(QL_DEBUG_LEVEL_10)
|
#if defined(QL_DEBUG_LEVEL_10)
|
||||||
#define DEBUG10(x) do {x;} while (0)
|
#define DEBUG10(x) do {x;} while (0)
|
||||||
#define DEBUG2_9_10(x) do {x;} while (0)
|
|
||||||
#define DEBUG9_10(x) do {x;} while (0)
|
#define DEBUG9_10(x) do {x;} while (0)
|
||||||
#else
|
#else
|
||||||
#define DEBUG10(x) do {} while (0)
|
#define DEBUG10(x) do {} while (0)
|
||||||
#if !defined(DEBUG2_9_10)
|
|
||||||
#define DEBUG2_9_10(x) do {} while (0)
|
|
||||||
#endif
|
|
||||||
#if !defined(DEBUG9_10)
|
#if !defined(DEBUG9_10)
|
||||||
#define DEBUG9_10(x) do {} while (0)
|
#define DEBUG9_10(x) do {} while (0)
|
||||||
#endif
|
#endif
|
||||||
|
@ -115,23 +97,11 @@
|
||||||
|
|
||||||
#if defined(QL_DEBUG_LEVEL_11)
|
#if defined(QL_DEBUG_LEVEL_11)
|
||||||
#define DEBUG11(x) do{x;} while(0)
|
#define DEBUG11(x) do{x;} while(0)
|
||||||
#if !defined(DEBUG2_11)
|
|
||||||
#define DEBUG2_11(x) do{x;} while(0)
|
|
||||||
#endif
|
|
||||||
#if !defined(DEBUG2_3_11)
|
|
||||||
#define DEBUG2_3_11(x) do{x;} while(0)
|
|
||||||
#endif
|
|
||||||
#if !defined(DEBUG3_11)
|
#if !defined(DEBUG3_11)
|
||||||
#define DEBUG3_11(x) do{x;} while(0)
|
#define DEBUG3_11(x) do{x;} while(0)
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
#define DEBUG11(x) do{} while(0)
|
#define DEBUG11(x) do{} while(0)
|
||||||
#if !defined(QL_DEBUG_LEVEL_2)
|
|
||||||
#define DEBUG2_11(x) do{} while(0)
|
|
||||||
#if !defined(QL_DEBUG_LEVEL_3)
|
|
||||||
#define DEBUG2_3_11(x) do{} while(0)
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#if !defined(QL_DEBUG_LEVEL_3)
|
#if !defined(QL_DEBUG_LEVEL_3)
|
||||||
#define DEBUG3_11(x) do{} while(0)
|
#define DEBUG3_11(x) do{} while(0)
|
||||||
#endif
|
#endif
|
||||||
|
@ -145,14 +115,8 @@
|
||||||
|
|
||||||
#if defined(QL_DEBUG_LEVEL_13)
|
#if defined(QL_DEBUG_LEVEL_13)
|
||||||
#define DEBUG13(x) do {x;} while (0)
|
#define DEBUG13(x) do {x;} while (0)
|
||||||
#if !defined(DEBUG2_13)
|
|
||||||
#define DEBUG2_13(x) do {x;} while(0)
|
|
||||||
#endif
|
|
||||||
#else
|
#else
|
||||||
#define DEBUG13(x) do {} while (0)
|
#define DEBUG13(x) do {} while (0)
|
||||||
#if !defined(QL_DEBUG_LEVEL_2)
|
|
||||||
#define DEBUG2_13(x) do {} while(0)
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(QL_DEBUG_LEVEL_14)
|
#if defined(QL_DEBUG_LEVEL_14)
|
||||||
|
|
|
@ -64,6 +64,7 @@ extern int ql2xplogiabsentdevice;
|
||||||
extern int ql2xloginretrycount;
|
extern int ql2xloginretrycount;
|
||||||
extern int ql2xfdmienable;
|
extern int ql2xfdmienable;
|
||||||
extern int ql2xallocfwdump;
|
extern int ql2xallocfwdump;
|
||||||
|
extern int extended_error_logging;
|
||||||
|
|
||||||
extern void qla2x00_sp_compl(scsi_qla_host_t *, srb_t *);
|
extern void qla2x00_sp_compl(scsi_qla_host_t *, srb_t *);
|
||||||
|
|
||||||
|
|
|
@ -1642,6 +1642,8 @@ qla2x00_nvram_config(scsi_qla_host_t *ha)
|
||||||
/*
|
/*
|
||||||
* Set host adapter parameters.
|
* Set host adapter parameters.
|
||||||
*/
|
*/
|
||||||
|
if (nv->host_p[0] & BIT_7)
|
||||||
|
extended_error_logging = 1;
|
||||||
ha->flags.disable_risc_code_load = ((nv->host_p[0] & BIT_4) ? 1 : 0);
|
ha->flags.disable_risc_code_load = ((nv->host_p[0] & BIT_4) ? 1 : 0);
|
||||||
/* Always load RISC code on non ISP2[12]00 chips. */
|
/* Always load RISC code on non ISP2[12]00 chips. */
|
||||||
if (!IS_QLA2100(ha) && !IS_QLA2200(ha))
|
if (!IS_QLA2100(ha) && !IS_QLA2200(ha))
|
||||||
|
|
|
@ -61,6 +61,12 @@ MODULE_PARM_DESC(ql2xallocfwdump,
|
||||||
"during HBA initialization. Memory allocation requirements "
|
"during HBA initialization. Memory allocation requirements "
|
||||||
"vary by ISP type. Default is 1 - allocate memory.");
|
"vary by ISP type. Default is 1 - allocate memory.");
|
||||||
|
|
||||||
|
int extended_error_logging;
|
||||||
|
module_param(extended_error_logging, int, S_IRUGO|S_IRUSR);
|
||||||
|
MODULE_PARM_DESC(extended_error_logging,
|
||||||
|
"Option to enable extended error logging, "
|
||||||
|
"Default is 0 - no logging. 1 - log errors.");
|
||||||
|
|
||||||
static void qla2x00_free_device(scsi_qla_host_t *);
|
static void qla2x00_free_device(scsi_qla_host_t *);
|
||||||
|
|
||||||
static void qla2x00_config_dma_addressing(scsi_qla_host_t *ha);
|
static void qla2x00_config_dma_addressing(scsi_qla_host_t *ha);
|
||||||
|
@ -2691,9 +2697,9 @@ qla2x00_module_init(void)
|
||||||
|
|
||||||
/* Derive version string. */
|
/* Derive version string. */
|
||||||
strcpy(qla2x00_version_str, QLA2XXX_VERSION);
|
strcpy(qla2x00_version_str, QLA2XXX_VERSION);
|
||||||
#if DEBUG_QLA2100
|
if (extended_error_logging)
|
||||||
strcat(qla2x00_version_str, "-debug");
|
strcat(qla2x00_version_str, "-debug");
|
||||||
#endif
|
|
||||||
qla2xxx_transport_template =
|
qla2xxx_transport_template =
|
||||||
fc_attach_transport(&qla2xxx_transport_functions);
|
fc_attach_transport(&qla2xxx_transport_functions);
|
||||||
if (!qla2xxx_transport_template)
|
if (!qla2xxx_transport_template)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче