xref: /OK3568_Linux_fs/kernel/drivers/scsi/bnx2fc/bnx2fc_debug.c (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* bnx2fc_debug.c: QLogic Linux FCoE offload driver.
2*4882a593Smuzhiyun  * Handles operations such as session offload/upload etc, and manages
3*4882a593Smuzhiyun  * session resources such as connection id and qp resources.
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Copyright (c) 2008-2013 Broadcom Corporation
6*4882a593Smuzhiyun  * Copyright (c) 2014-2016 QLogic Corporation
7*4882a593Smuzhiyun  * Copyright (c) 2016-2017 Cavium Inc.
8*4882a593Smuzhiyun  *
9*4882a593Smuzhiyun  * This program is free software; you can redistribute it and/or modify
10*4882a593Smuzhiyun  * it under the terms of the GNU General Public License as published by
11*4882a593Smuzhiyun  * the Free Software Foundation.
12*4882a593Smuzhiyun  *
13*4882a593Smuzhiyun  */
14*4882a593Smuzhiyun 
15*4882a593Smuzhiyun #include "bnx2fc.h"
16*4882a593Smuzhiyun 
BNX2FC_IO_DBG(const struct bnx2fc_cmd * io_req,const char * fmt,...)17*4882a593Smuzhiyun void BNX2FC_IO_DBG(const struct bnx2fc_cmd *io_req, const char *fmt, ...)
18*4882a593Smuzhiyun {
19*4882a593Smuzhiyun 	struct va_format vaf;
20*4882a593Smuzhiyun 	va_list args;
21*4882a593Smuzhiyun 
22*4882a593Smuzhiyun 	if (likely(!(bnx2fc_debug_level & LOG_IO)))
23*4882a593Smuzhiyun 		return;
24*4882a593Smuzhiyun 
25*4882a593Smuzhiyun 	va_start(args, fmt);
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun 	vaf.fmt = fmt;
28*4882a593Smuzhiyun 	vaf.va = &args;
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun 	if (io_req && io_req->port && io_req->port->lport &&
31*4882a593Smuzhiyun 	    io_req->port->lport->host)
32*4882a593Smuzhiyun 		shost_printk(KERN_INFO, io_req->port->lport->host,
33*4882a593Smuzhiyun 			     PFX "xid:0x%x %pV",
34*4882a593Smuzhiyun 			     io_req->xid, &vaf);
35*4882a593Smuzhiyun 	else
36*4882a593Smuzhiyun 		pr_info("NULL %pV", &vaf);
37*4882a593Smuzhiyun 
38*4882a593Smuzhiyun 	va_end(args);
39*4882a593Smuzhiyun }
40*4882a593Smuzhiyun 
BNX2FC_TGT_DBG(const struct bnx2fc_rport * tgt,const char * fmt,...)41*4882a593Smuzhiyun void BNX2FC_TGT_DBG(const struct bnx2fc_rport *tgt, const char *fmt, ...)
42*4882a593Smuzhiyun {
43*4882a593Smuzhiyun 	struct va_format vaf;
44*4882a593Smuzhiyun 	va_list args;
45*4882a593Smuzhiyun 
46*4882a593Smuzhiyun 	if (likely(!(bnx2fc_debug_level & LOG_TGT)))
47*4882a593Smuzhiyun 		return;
48*4882a593Smuzhiyun 
49*4882a593Smuzhiyun 	va_start(args, fmt);
50*4882a593Smuzhiyun 
51*4882a593Smuzhiyun 	vaf.fmt = fmt;
52*4882a593Smuzhiyun 	vaf.va = &args;
53*4882a593Smuzhiyun 
54*4882a593Smuzhiyun 	if (tgt && tgt->port && tgt->port->lport && tgt->port->lport->host &&
55*4882a593Smuzhiyun 	    tgt->rport)
56*4882a593Smuzhiyun 		shost_printk(KERN_INFO, tgt->port->lport->host,
57*4882a593Smuzhiyun 			     PFX "port:%x %pV",
58*4882a593Smuzhiyun 			     tgt->rport->port_id, &vaf);
59*4882a593Smuzhiyun 	else
60*4882a593Smuzhiyun 		pr_info("NULL %pV", &vaf);
61*4882a593Smuzhiyun 
62*4882a593Smuzhiyun 	va_end(args);
63*4882a593Smuzhiyun }
64*4882a593Smuzhiyun 
BNX2FC_HBA_DBG(const struct fc_lport * lport,const char * fmt,...)65*4882a593Smuzhiyun void BNX2FC_HBA_DBG(const struct fc_lport *lport, const char *fmt, ...)
66*4882a593Smuzhiyun {
67*4882a593Smuzhiyun 	struct va_format vaf;
68*4882a593Smuzhiyun 	va_list args;
69*4882a593Smuzhiyun 
70*4882a593Smuzhiyun 	if (likely(!(bnx2fc_debug_level & LOG_HBA)))
71*4882a593Smuzhiyun 		return;
72*4882a593Smuzhiyun 
73*4882a593Smuzhiyun 	va_start(args, fmt);
74*4882a593Smuzhiyun 
75*4882a593Smuzhiyun 	vaf.fmt = fmt;
76*4882a593Smuzhiyun 	vaf.va = &args;
77*4882a593Smuzhiyun 
78*4882a593Smuzhiyun 	if (lport && lport->host)
79*4882a593Smuzhiyun 		shost_printk(KERN_INFO, lport->host, PFX "%pV", &vaf);
80*4882a593Smuzhiyun 	else
81*4882a593Smuzhiyun 		pr_info("NULL %pV", &vaf);
82*4882a593Smuzhiyun 
83*4882a593Smuzhiyun 	va_end(args);
84*4882a593Smuzhiyun }
85