[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:
Andrew Vasquez 2006-06-23 16:11:10 -07:00 коммит произвёл James Bottomley
Родитель 744f11fdb1
Коммит 0181944fe6
4 изменённых файлов: 19 добавлений и 46 удалений

Просмотреть файл

@ -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)