1 #ifndef __BNX2FC_DEBUG__ 2 #define __BNX2FC_DEBUG__ 3 4 /* Log level bit mask */ 5 #define LOG_IO 0x01 /* scsi cmd error, cleanup */ 6 #define LOG_TGT 0x02 /* Session setup, cleanup, etc' */ 7 #define LOG_HBA 0x04 /* lport events, link, mtu, etc' */ 8 #define LOG_ELS 0x08 /* ELS logs */ 9 #define LOG_MISC 0x10 /* fcoe L2 frame related logs*/ 10 #define LOG_ALL 0xff /* LOG all messages */ 11 12 extern unsigned int bnx2fc_debug_level; 13 14 #define BNX2FC_CHK_LOGGING(LEVEL, CMD) \ 15 do { \ 16 if (unlikely(bnx2fc_debug_level & LEVEL)) \ 17 do { \ 18 CMD; \ 19 } while (0); \ 20 } while (0) 21 22 #define BNX2FC_ELS_DBG(fmt, arg...) \ 23 BNX2FC_CHK_LOGGING(LOG_ELS, \ 24 printk(KERN_INFO PFX fmt, ##arg)) 25 26 #define BNX2FC_MISC_DBG(fmt, arg...) \ 27 BNX2FC_CHK_LOGGING(LOG_MISC, \ 28 printk(KERN_INFO PFX fmt, ##arg)) 29 30 #define BNX2FC_IO_DBG(io_req, fmt, arg...) \ 31 do { \ 32 if (!io_req || !io_req->port || !io_req->port->lport || \ 33 !io_req->port->lport->host) \ 34 BNX2FC_CHK_LOGGING(LOG_IO, \ 35 printk(KERN_INFO PFX "NULL " fmt, ##arg)); \ 36 else \ 37 BNX2FC_CHK_LOGGING(LOG_IO, \ 38 shost_printk(KERN_INFO, \ 39 (io_req)->port->lport->host, \ 40 PFX "xid:0x%x " fmt, \ 41 (io_req)->xid, ##arg)); \ 42 } while (0) 43 44 #define BNX2FC_TGT_DBG(tgt, fmt, arg...) \ 45 do { \ 46 if (!tgt || !tgt->port || !tgt->port->lport || \ 47 !tgt->port->lport->host || !tgt->rport) \ 48 BNX2FC_CHK_LOGGING(LOG_TGT, \ 49 printk(KERN_INFO PFX "NULL " fmt, ##arg)); \ 50 else \ 51 BNX2FC_CHK_LOGGING(LOG_TGT, \ 52 shost_printk(KERN_INFO, \ 53 (tgt)->port->lport->host, \ 54 PFX "port:%x " fmt, \ 55 (tgt)->rport->port_id, ##arg)); \ 56 } while (0) 57 58 59 #define BNX2FC_HBA_DBG(lport, fmt, arg...) \ 60 do { \ 61 if (!lport || !lport->host) \ 62 BNX2FC_CHK_LOGGING(LOG_HBA, \ 63 printk(KERN_INFO PFX "NULL " fmt, ##arg)); \ 64 else \ 65 BNX2FC_CHK_LOGGING(LOG_HBA, \ 66 shost_printk(KERN_INFO, lport->host, \ 67 PFX fmt, ##arg)); \ 68 } while (0) 69 70 #endif 71