Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) #undef TRACE_SYSTEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) #define TRACE_SYSTEM target
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) #if !defined(_TRACE_TARGET_H) || defined(TRACE_HEADER_MULTI_READ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) #define _TRACE_TARGET_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) #include <linux/tracepoint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) #include <linux/trace_seq.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) #include <scsi/scsi_proto.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) #include <scsi/scsi_tcq.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) #include <target/target_core_base.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) /* cribbed verbatim from <trace/event/scsi.h> */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) #define scsi_opcode_name(opcode)	{ opcode, #opcode }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) #define show_opcode_name(val)					\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 	__print_symbolic(val,					\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) 		scsi_opcode_name(TEST_UNIT_READY),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 		scsi_opcode_name(REZERO_UNIT),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 		scsi_opcode_name(REQUEST_SENSE),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 		scsi_opcode_name(FORMAT_UNIT),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 		scsi_opcode_name(READ_BLOCK_LIMITS),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 		scsi_opcode_name(REASSIGN_BLOCKS),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 		scsi_opcode_name(INITIALIZE_ELEMENT_STATUS),	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 		scsi_opcode_name(READ_6),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) 		scsi_opcode_name(WRITE_6),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 		scsi_opcode_name(SEEK_6),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 		scsi_opcode_name(READ_REVERSE),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) 		scsi_opcode_name(WRITE_FILEMARKS),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 		scsi_opcode_name(SPACE),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 		scsi_opcode_name(INQUIRY),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 		scsi_opcode_name(RECOVER_BUFFERED_DATA),	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 		scsi_opcode_name(MODE_SELECT),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) 		scsi_opcode_name(RESERVE),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 		scsi_opcode_name(RELEASE),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) 		scsi_opcode_name(COPY),				\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 		scsi_opcode_name(ERASE),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 		scsi_opcode_name(MODE_SENSE),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) 		scsi_opcode_name(START_STOP),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 		scsi_opcode_name(RECEIVE_DIAGNOSTIC),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 		scsi_opcode_name(SEND_DIAGNOSTIC),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 		scsi_opcode_name(ALLOW_MEDIUM_REMOVAL),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 		scsi_opcode_name(SET_WINDOW),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 		scsi_opcode_name(READ_CAPACITY),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 		scsi_opcode_name(READ_10),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) 		scsi_opcode_name(WRITE_10),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 		scsi_opcode_name(SEEK_10),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 		scsi_opcode_name(POSITION_TO_ELEMENT),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 		scsi_opcode_name(WRITE_VERIFY),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 		scsi_opcode_name(VERIFY),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 		scsi_opcode_name(SEARCH_HIGH),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 		scsi_opcode_name(SEARCH_EQUAL),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 		scsi_opcode_name(SEARCH_LOW),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 		scsi_opcode_name(SET_LIMITS),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 		scsi_opcode_name(PRE_FETCH),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 		scsi_opcode_name(READ_POSITION),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 		scsi_opcode_name(SYNCHRONIZE_CACHE),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 		scsi_opcode_name(LOCK_UNLOCK_CACHE),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 		scsi_opcode_name(READ_DEFECT_DATA),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 		scsi_opcode_name(MEDIUM_SCAN),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 		scsi_opcode_name(COMPARE),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 		scsi_opcode_name(COPY_VERIFY),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 		scsi_opcode_name(WRITE_BUFFER),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 		scsi_opcode_name(READ_BUFFER),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 		scsi_opcode_name(UPDATE_BLOCK),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 		scsi_opcode_name(READ_LONG),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 		scsi_opcode_name(WRITE_LONG),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 		scsi_opcode_name(CHANGE_DEFINITION),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 		scsi_opcode_name(WRITE_SAME),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 		scsi_opcode_name(UNMAP),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 		scsi_opcode_name(READ_TOC),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 		scsi_opcode_name(LOG_SELECT),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 		scsi_opcode_name(LOG_SENSE),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 		scsi_opcode_name(XDWRITEREAD_10),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 		scsi_opcode_name(MODE_SELECT_10),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 		scsi_opcode_name(RESERVE_10),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 		scsi_opcode_name(RELEASE_10),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 		scsi_opcode_name(MODE_SENSE_10),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 		scsi_opcode_name(PERSISTENT_RESERVE_IN),	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 		scsi_opcode_name(PERSISTENT_RESERVE_OUT),	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 		scsi_opcode_name(VARIABLE_LENGTH_CMD),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 		scsi_opcode_name(REPORT_LUNS),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 		scsi_opcode_name(MAINTENANCE_IN),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 		scsi_opcode_name(MAINTENANCE_OUT),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 		scsi_opcode_name(MOVE_MEDIUM),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 		scsi_opcode_name(EXCHANGE_MEDIUM),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 		scsi_opcode_name(READ_12),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 		scsi_opcode_name(WRITE_12),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 		scsi_opcode_name(WRITE_VERIFY_12),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 		scsi_opcode_name(SEARCH_HIGH_12),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 		scsi_opcode_name(SEARCH_EQUAL_12),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 		scsi_opcode_name(SEARCH_LOW_12),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 		scsi_opcode_name(READ_ELEMENT_STATUS),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 		scsi_opcode_name(SEND_VOLUME_TAG),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 		scsi_opcode_name(WRITE_LONG_2),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 		scsi_opcode_name(READ_16),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 		scsi_opcode_name(WRITE_16),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 		scsi_opcode_name(VERIFY_16),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 		scsi_opcode_name(WRITE_SAME_16),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 		scsi_opcode_name(SERVICE_ACTION_IN_16),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 		scsi_opcode_name(SAI_READ_CAPACITY_16),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 		scsi_opcode_name(SAI_GET_LBA_STATUS),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 		scsi_opcode_name(MI_REPORT_TARGET_PGS),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 		scsi_opcode_name(MO_SET_TARGET_PGS),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 		scsi_opcode_name(READ_32),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 		scsi_opcode_name(WRITE_32),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 		scsi_opcode_name(WRITE_SAME_32),		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 		scsi_opcode_name(ATA_16),			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 		scsi_opcode_name(ATA_12))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) #define show_task_attribute_name(val)				\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 	__print_symbolic(val,					\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 		{ TCM_SIMPLE_TAG,	"SIMPLE"	},	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 		{ TCM_HEAD_TAG,		"HEAD"		},	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 		{ TCM_ORDERED_TAG,	"ORDERED"	},	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 		{ TCM_ACA_TAG,		"ACA"		} )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) #define show_scsi_status_name(val)				\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 	__print_symbolic(val,					\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 		{ SAM_STAT_GOOD,	"GOOD" },		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 		{ SAM_STAT_CHECK_CONDITION, "CHECK CONDITION" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 		{ SAM_STAT_CONDITION_MET, "CONDITION MET" },	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 		{ SAM_STAT_BUSY,	"BUSY" },		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 		{ SAM_STAT_INTERMEDIATE, "INTERMEDIATE" },	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 		{ SAM_STAT_INTERMEDIATE_CONDITION_MET, "INTERMEDIATE CONDITION MET" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 		{ SAM_STAT_RESERVATION_CONFLICT, "RESERVATION CONFLICT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) 		{ SAM_STAT_COMMAND_TERMINATED, "COMMAND TERMINATED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 		{ SAM_STAT_TASK_SET_FULL, "TASK SET FULL" },	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) 		{ SAM_STAT_ACA_ACTIVE, "ACA ACTIVE" },		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 		{ SAM_STAT_TASK_ABORTED, "TASK ABORTED" } )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) TRACE_EVENT(target_sequencer_start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) 	TP_PROTO(struct se_cmd *cmd),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) 	TP_ARGS(cmd),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) 		__field( unsigned int,	unpacked_lun	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) 		__field( unsigned long long,	tag	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) 		__field( unsigned int,	opcode		)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 		__field( unsigned int,	data_length	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) 		__field( unsigned int,	task_attribute  )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) 		__field( unsigned char,	control		)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) 		__array( unsigned char,	cdb, TCM_MAX_COMMAND_SIZE	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) 		__string( initiator,	cmd->se_sess->se_node_acl->initiatorname	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 		__entry->unpacked_lun	= cmd->orig_fe_lun;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) 		__entry->tag		= cmd->tag;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) 		__entry->opcode		= cmd->t_task_cdb[0];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) 		__entry->data_length	= cmd->data_length;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) 		__entry->task_attribute	= cmd->sam_task_attr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) 		__entry->control	= scsi_command_control(cmd->t_task_cdb);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) 		memcpy(__entry->cdb, cmd->t_task_cdb, TCM_MAX_COMMAND_SIZE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) 		__assign_str(initiator, cmd->se_sess->se_node_acl->initiatorname);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) 	TP_printk("%s -> LUN %03u tag %#llx %s data_length %6u  CDB %s  (TA:%s C:%02x)",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) 		  __get_str(initiator), __entry->unpacked_lun,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) 		  __entry->tag, show_opcode_name(__entry->opcode),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) 		  __entry->data_length, __print_hex(__entry->cdb, 16),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) 		  show_task_attribute_name(__entry->task_attribute),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 		  __entry->control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) TRACE_EVENT(target_cmd_complete,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 	TP_PROTO(struct se_cmd *cmd),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) 	TP_ARGS(cmd),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 		__field( unsigned int,	unpacked_lun	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) 		__field( unsigned long long,	tag	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 		__field( unsigned int,	opcode		)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) 		__field( unsigned int,	data_length	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) 		__field( unsigned int,	task_attribute  )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) 		__field( unsigned char,	control		)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) 		__field( unsigned char,	scsi_status	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) 		__field( unsigned char,	sense_length	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) 		__array( unsigned char,	cdb, TCM_MAX_COMMAND_SIZE	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) 		__array( unsigned char,	sense_data, 18	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) 		__string(initiator,	cmd->se_sess->se_node_acl->initiatorname)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) 		__entry->unpacked_lun	= cmd->orig_fe_lun;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) 		__entry->tag		= cmd->tag;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) 		__entry->opcode		= cmd->t_task_cdb[0];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) 		__entry->data_length	= cmd->data_length;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) 		__entry->task_attribute	= cmd->sam_task_attr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) 		__entry->control	= scsi_command_control(cmd->t_task_cdb);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) 		__entry->scsi_status	= cmd->scsi_status;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) 		__entry->sense_length	= cmd->scsi_status == SAM_STAT_CHECK_CONDITION ?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) 			min(18, ((u8 *) cmd->sense_buffer)[SPC_ADD_SENSE_LEN_OFFSET] + 8) : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) 		memcpy(__entry->cdb, cmd->t_task_cdb, TCM_MAX_COMMAND_SIZE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) 		memcpy(__entry->sense_data, cmd->sense_buffer, __entry->sense_length);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) 		__assign_str(initiator, cmd->se_sess->se_node_acl->initiatorname);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) 	TP_printk("%s <- LUN %03u tag %#llx status %s (sense len %d%s%s)  %s data_length %6u  CDB %s  (TA:%s C:%02x)",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) 		  __get_str(initiator), __entry->unpacked_lun,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) 		  __entry->tag,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 		  show_scsi_status_name(__entry->scsi_status),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) 		  __entry->sense_length, __entry->sense_length ? " / " : "",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) 		  __print_hex(__entry->sense_data, __entry->sense_length),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) 		  show_opcode_name(__entry->opcode),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) 		  __entry->data_length, __print_hex(__entry->cdb, 16),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) 		  show_task_attribute_name(__entry->task_attribute),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) 		  __entry->control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) 	)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) #endif /*  _TRACE_TARGET_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) /* This part must be outside protection */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) #include <trace/define_trace.h>