#include <linux/sched/signal.h>
#include <linux/module.h>
#include <asm/unaligned.h>
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_device.h>
#include <scsi/scsi_eh.h>
#include <scsi/scsi_tcq.h>
#include <scsi/scsi_host.h>
#include <scsi/iscsi_proto.h>
#include <scsi/scsi_transport.h>
#include <scsi/scsi_transport_iscsi.h>
#include <scsi/libiscsi.h>
#include <trace/events/iscsi.h>
static int iscsi_dbg_lib_conn;
module_param_named(debug_libiscsi_conn, iscsi_dbg_lib_conn, int,
MODULE_PARM_DESC(debug_libiscsi_conn,
"Turn on debugging for connections in libiscsi module. "
"Set to 1 to turn on, and zero to turn off. Default is off.");
static int iscsi_dbg_lib_session;
module_param_named(debug_libiscsi_session, iscsi_dbg_lib_session, int,
MODULE_PARM_DESC(debug_libiscsi_session,
"Turn on debugging for sessions in libiscsi module. "
"Set to 1 to turn on, and zero to turn off. Default is off.");
static int iscsi_dbg_lib_eh;
module_param_named(debug_libiscsi_eh, iscsi_dbg_lib_eh, int,
MODULE_PARM_DESC(debug_libiscsi_eh,
"Turn on debugging for error handling in libiscsi module. "
"Set to 1 to turn on, and zero to turn off. Default is off.");
#define ISCSI_DBG_CONN(_conn, dbg_fmt, arg...) \
if (iscsi_dbg_lib_conn) \
iscsi_conn_printk(KERN_INFO, _conn, \
iscsi_dbg_trace(trace_iscsi_dbg_conn, \
&(_conn)->cls_conn->dev, \
"%s " dbg_fmt, __func__, ##arg);\
#define ISCSI_DBG_SESSION(_session, dbg_fmt, arg...) \
if (iscsi_dbg_lib_session) \
iscsi_session_printk(KERN_INFO, _session, \
iscsi_dbg_trace(trace_iscsi_dbg_session, \
&(_session)->cls_session->dev, \
"%s " dbg_fmt, __func__, ##arg); \
#define ISCSI_DBG_EH(_session, dbg_fmt, arg...) \
iscsi_session_printk(KERN_INFO, _session, \