Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0181944f authored by Andrew Vasquez's avatar Andrew Vasquez Committed by James Bottomley
Browse files

[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: default avatarAndrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent 744f11fd
Loading
Loading
Loading
Loading
+7 −43
Original line number Diff line number Diff line
@@ -38,11 +38,7 @@
* Macros use for debugging the driver.
*/

#if  DEBUG_QLA2100
#define DEBUG(x)	do {x;} while (0)
#else
#define DEBUG(x)	do {} while (0)
#endif
#define DEBUG(x)	do { if (extended_error_logging) { x; } } while (0)

#if defined(QL_DEBUG_LEVEL_1)
#define DEBUG1(x)	do {x;} while (0)
@@ -50,27 +46,18 @@
#define DEBUG1(x)	do {} while (0)
#endif

#if defined(QL_DEBUG_LEVEL_2)
#define DEBUG2(x)       do {x;} while (0)
#define DEBUG2_3(x)     do {x;} while (0)
#define DEBUG2_3_11(x)  do {x;} while (0)
#define DEBUG2_9_10(x)    do {x;} while (0)
#define DEBUG2_11(x)    do {x;} while (0)
#define DEBUG2_13(x)    do {x;} while (0)
#else
#define DEBUG2(x)	do {} while (0)
#endif
#define DEBUG2(x)	do { if (extended_error_logging) { x; } } while (0)
#define DEBUG2_3(x)	do { if (extended_error_logging) { x; } } while (0)
#define DEBUG2_3_11(x)	do { if (extended_error_logging) { x; } } while (0)
#define DEBUG2_9_10(x)	do { if (extended_error_logging) { x; } } while (0)
#define DEBUG2_11(x)	do { if (extended_error_logging) { x; } } while (0)
#define DEBUG2_13(x)	do { if (extended_error_logging) { x; } } while (0)

#if defined(QL_DEBUG_LEVEL_3)
#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)
#else
#define DEBUG3(x)	do {} while (0)
  #if !defined(QL_DEBUG_LEVEL_2)
  #define DEBUG2_3(x)	do {} while (0)
  #endif
#endif

#if defined(QL_DEBUG_LEVEL_4)
@@ -94,20 +81,15 @@
#if defined(QL_DEBUG_LEVEL_9)
#define DEBUG9(x)       do {x;} while (0)
#define DEBUG9_10(x)    do {x;} while (0)
#define DEBUG2_9_10(x)	do {x;} while (0)
#else
#define DEBUG9(x)	do {} while (0)
#endif

#if defined(QL_DEBUG_LEVEL_10)
#define DEBUG10(x)      do {x;} while (0)
#define DEBUG2_9_10(x)	do {x;} while (0)
#define DEBUG9_10(x)	do {x;} while (0)
#else
#define DEBUG10(x)	do {} while (0)
  #if !defined(DEBUG2_9_10)
  #define DEBUG2_9_10(x)	do {} while (0)
  #endif
  #if !defined(DEBUG9_10)
  #define DEBUG9_10(x)	do {} while (0)
  #endif
@@ -115,23 +97,11 @@

#if defined(QL_DEBUG_LEVEL_11)
#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)
#define DEBUG3_11(x)    do{x;} while(0)
#endif
#else
#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)
  #define DEBUG3_11(x)	do{} while(0)
  #endif
@@ -145,14 +115,8 @@

#if defined(QL_DEBUG_LEVEL_13)
#define DEBUG13(x)      do {x;} while (0)
#if !defined(DEBUG2_13)
#define DEBUG2_13(x)    do {x;} while(0)
#endif
#else
#define DEBUG13(x)	do {} while (0)
#if !defined(QL_DEBUG_LEVEL_2)
#define DEBUG2_13(x)	do {} while(0)
#endif
#endif

#if defined(QL_DEBUG_LEVEL_14)
+1 −0
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ extern int ql2xplogiabsentdevice;
extern int ql2xloginretrycount;
extern int ql2xfdmienable;
extern int ql2xallocfwdump;
extern int extended_error_logging;

extern void qla2x00_sp_compl(scsi_qla_host_t *, srb_t *);

+2 −0
Original line number Diff line number Diff line
@@ -1642,6 +1642,8 @@ qla2x00_nvram_config(scsi_qla_host_t *ha)
	/*
	 * 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);
	/* Always load RISC code on non ISP2[12]00 chips. */
	if (!IS_QLA2100(ha) && !IS_QLA2200(ha))
+9 −3
Original line number Diff line number Diff line
@@ -61,6 +61,12 @@ MODULE_PARM_DESC(ql2xallocfwdump,
		"during HBA initialization.  Memory allocation requirements "
		"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_config_dma_addressing(scsi_qla_host_t *ha);
@@ -2691,9 +2697,9 @@ qla2x00_module_init(void)

	/* Derive version string. */
	strcpy(qla2x00_version_str, QLA2XXX_VERSION);
#if DEBUG_QLA2100
	if (extended_error_logging)
		strcat(qla2x00_version_str, "-debug");
#endif

	qla2xxx_transport_template =
	    fc_attach_transport(&qla2xxx_transport_functions);
	if (!qla2xxx_transport_template)