.. | .. |
---|
44 | 44 | #define LOG_NVME_DISC 0x00200000 /* NVME Discovery/Connect events. */ |
---|
45 | 45 | #define LOG_NVME_ABTS 0x00400000 /* NVME ABTS events. */ |
---|
46 | 46 | #define LOG_NVME_IOERR 0x00800000 /* NVME IO Error events. */ |
---|
47 | | -#define LOG_ALL_MSG 0xffffffff /* LOG all messages */ |
---|
| 47 | +#define LOG_TRACE_EVENT 0x80000000 /* Dmp the DBG log on this err */ |
---|
| 48 | +#define LOG_ALL_MSG 0x7fffffff /* LOG all messages */ |
---|
| 49 | + |
---|
| 50 | +void lpfc_dmp_dbg(struct lpfc_hba *phba); |
---|
| 51 | +void lpfc_dbg_print(struct lpfc_hba *phba, const char *fmt, ...); |
---|
| 52 | + |
---|
| 53 | +/* generate message by verbose log setting or severity */ |
---|
| 54 | +#define lpfc_vlog_msg(vport, level, mask, fmt, arg...) \ |
---|
| 55 | +{ if (((mask) & (vport)->cfg_log_verbose) || (level[1] <= '4')) \ |
---|
| 56 | + dev_printk(level, &((vport)->phba->pcidev)->dev, "%d:(%d):" \ |
---|
| 57 | + fmt, (vport)->phba->brd_no, vport->vpi, ##arg); } |
---|
| 58 | + |
---|
| 59 | +#define lpfc_log_msg(phba, level, mask, fmt, arg...) \ |
---|
| 60 | +do { \ |
---|
| 61 | + { uint32_t log_verbose = (phba)->pport ? \ |
---|
| 62 | + (phba)->pport->cfg_log_verbose : \ |
---|
| 63 | + (phba)->cfg_log_verbose; \ |
---|
| 64 | + if (((mask) & log_verbose) || (level[1] <= '4')) \ |
---|
| 65 | + dev_printk(level, &((phba)->pcidev)->dev, "%d:" \ |
---|
| 66 | + fmt, phba->brd_no, ##arg); \ |
---|
| 67 | + } \ |
---|
| 68 | +} while (0) |
---|
48 | 69 | |
---|
49 | 70 | #define lpfc_printf_vlog(vport, level, mask, fmt, arg...) \ |
---|
50 | 71 | do { \ |
---|
51 | | - { if (((mask) & (vport)->cfg_log_verbose) || (level[1] <= '3')) \ |
---|
| 72 | + { if (((mask) & (vport)->cfg_log_verbose) || (level[1] <= '3')) { \ |
---|
| 73 | + if ((mask) & LOG_TRACE_EVENT) \ |
---|
| 74 | + lpfc_dmp_dbg((vport)->phba); \ |
---|
52 | 75 | dev_printk(level, &((vport)->phba->pcidev)->dev, "%d:(%d):" \ |
---|
53 | | - fmt, (vport)->phba->brd_no, vport->vpi, ##arg); } \ |
---|
| 76 | + fmt, (vport)->phba->brd_no, vport->vpi, ##arg); \ |
---|
| 77 | + } else if (!(vport)->cfg_log_verbose) \ |
---|
| 78 | + lpfc_dbg_print((vport)->phba, "%d:(%d):" fmt, \ |
---|
| 79 | + (vport)->phba->brd_no, (vport)->vpi, ##arg); \ |
---|
| 80 | + } \ |
---|
54 | 81 | } while (0) |
---|
55 | 82 | |
---|
56 | 83 | #define lpfc_printf_log(phba, level, mask, fmt, arg...) \ |
---|
.. | .. |
---|
58 | 85 | { uint32_t log_verbose = (phba)->pport ? \ |
---|
59 | 86 | (phba)->pport->cfg_log_verbose : \ |
---|
60 | 87 | (phba)->cfg_log_verbose; \ |
---|
61 | | - if (((mask) & log_verbose) || (level[1] <= '3')) \ |
---|
| 88 | + if (((mask) & log_verbose) || (level[1] <= '3')) { \ |
---|
| 89 | + if ((mask) & LOG_TRACE_EVENT) \ |
---|
| 90 | + lpfc_dmp_dbg(phba); \ |
---|
62 | 91 | dev_printk(level, &((phba)->pcidev)->dev, "%d:" \ |
---|
63 | | - fmt, phba->brd_no, ##arg); \ |
---|
| 92 | + fmt, phba->brd_no, ##arg); \ |
---|
| 93 | + } else if (!(phba)->cfg_log_verbose)\ |
---|
| 94 | + lpfc_dbg_print(phba, "%d:" fmt, phba->brd_no, ##arg); \ |
---|
64 | 95 | } \ |
---|
65 | 96 | } while (0) |
---|