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