Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e5c3fddf authored by Finn Thain's avatar Finn Thain Committed by Martin K. Petersen
Browse files

ncr5380: Remove command list debug code



Some NCR5380 hosts offer a .show_info method to access the contents of
the various command list data structures from a procfs file. When NDEBUG
is set, the same information is sent to the console during EH.

The two core drivers, atari_NCR5380.c and NCR5380.c differ here. Because
it is just for debugging, the easiest way to fix the discrepancy is
simply remove this code.

The only remaining users of NCR5380_show_info() and NCR5380_write_info()
are drivers that define PSEUDO_DMA. The others have no use for the
.show_info method, so don't initialize it.

Signed-off-by: default avatarFinn Thain <fthain@telegraphics.com.au>
Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
Tested-by: default avatarOndrej Zary <linux@rainbow-software.org>
Tested-by: default avatarMichael Schmitz <schmitzmic@gmail.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 11d2f63b
Loading
Loading
Loading
Loading
+5 −65
Original line number Diff line number Diff line
@@ -558,22 +558,6 @@ static void prepare_info(struct Scsi_Host *instance)
	         "");
}

/**
 *	NCR5380_print_status 	-	dump controller info
 *	@instance: controller to dump
 *
 *	Print commands in the various queues, called from NCR5380_abort 
 *	and NCR5380_debug to aid debugging.
 *
 *	Locks: called functions disable irqs
 */

static void __maybe_unused NCR5380_print_status(struct Scsi_Host *instance)
{
	NCR5380_dprint(NDEBUG_ANY, instance);
	NCR5380_dprint_phase(NDEBUG_ANY, instance);
}

#ifdef PSEUDO_DMA
/******************************************/
/*
@@ -598,65 +582,19 @@ static int __maybe_unused NCR5380_write_info(struct Scsi_Host *instance,
	hostdata->spin_max_w = 0;
	return 0;
}
#endif

static
void lprint_Scsi_Cmnd(struct scsi_cmnd *cmd, struct seq_file *m);
static
void lprint_command(unsigned char *cmd, struct seq_file *m);
static
void lprint_opcode(int opcode, struct seq_file *m);

static int __maybe_unused NCR5380_show_info(struct seq_file *m,
	struct Scsi_Host *instance)
{
	struct NCR5380_hostdata *hostdata;
	struct scsi_cmnd *ptr;
	unsigned long flags;

	hostdata = (struct NCR5380_hostdata *) instance->hostdata;

#ifdef PSEUDO_DMA
	seq_printf(m, "Highwater I/O busy spin counts: write %d, read %d\n",
	        hostdata->spin_max_w, hostdata->spin_max_r);
#endif
	spin_lock_irqsave(&hostdata->lock, flags);
	if (!hostdata->connected)
		seq_printf(m, "scsi%d: no currently connected command\n", instance->host_no);
	else
		lprint_Scsi_Cmnd((struct scsi_cmnd *) hostdata->connected, m);
	seq_printf(m, "scsi%d: issue_queue\n", instance->host_no);
	for (ptr = (struct scsi_cmnd *) hostdata->issue_queue; ptr; ptr = (struct scsi_cmnd *) ptr->host_scribble)
		lprint_Scsi_Cmnd(ptr, m);

	seq_printf(m, "scsi%d: disconnected_queue\n", instance->host_no);
	for (ptr = (struct scsi_cmnd *) hostdata->disconnected_queue; ptr; ptr = (struct scsi_cmnd *) ptr->host_scribble)
		lprint_Scsi_Cmnd(ptr, m);
	spin_unlock_irqrestore(&hostdata->lock, flags);
	return 0;
}

static void lprint_Scsi_Cmnd(struct scsi_cmnd *cmd, struct seq_file *m)
{
	seq_printf(m, "scsi%d : destination target %d, lun %llu\n", cmd->device->host->host_no, cmd->device->id, cmd->device->lun);
	seq_puts(m, "        command = ");
	lprint_command(cmd->cmnd, m);
}

static void lprint_command(unsigned char *command, struct seq_file *m)
{
	int i, s;
	lprint_opcode(command[0], m);
	for (i = 1, s = COMMAND_SIZE(command[0]); i < s; ++i)
		seq_printf(m, "%02x ", command[i]);
	seq_putc(m, '\n');
}

static void lprint_opcode(int opcode, struct seq_file *m)
{
	seq_printf(m, "%2d (0x%02x)", opcode, opcode);
}

#endif

/**
 *	NCR5380_init	-	initialise an NCR5380
@@ -2335,7 +2273,8 @@ static int NCR5380_abort(struct scsi_cmnd *cmd)

	spin_lock_irqsave(&hostdata->lock, flags);

	NCR5380_print_status(instance);
	NCR5380_dprint(NDEBUG_ANY, instance);
	NCR5380_dprint_phase(NDEBUG_ANY, instance);

	dprintk(NDEBUG_ABORT, "scsi%d : abort called\n", instance->host_no);
	dprintk(NDEBUG_ABORT, "        basr 0x%X, sr 0x%X\n", NCR5380_read(BUS_AND_STATUS_REG), NCR5380_read(STATUS_REG));
@@ -2490,8 +2429,9 @@ static int NCR5380_bus_reset(struct scsi_cmnd *cmd)

#if (NDEBUG & NDEBUG_ANY)
	scmd_printk(KERN_INFO, cmd, "performing bus reset\n");
	NCR5380_print_status(instance);
#endif
	NCR5380_dprint(NDEBUG_ANY, instance);
	NCR5380_dprint_phase(NDEBUG_ANY, instance);

	do_reset(instance);

+0 −2
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@

#define NCR5380_queue_command		oakscsi_queue_command
#define NCR5380_info			oakscsi_info
#define NCR5380_show_info		oakscsi_show_info

#define NCR5380_implementation_fields	\
	void __iomem *base
@@ -104,7 +103,6 @@ printk("reading %p len %d\n", addr, len);

static struct scsi_host_template oakscsi_template = {
	.module			= THIS_MODULE,
	.show_info		= oakscsi_show_info,
	.name			= "Oak 16-bit SCSI",
	.info			= oakscsi_info,
	.queuecommand		= oakscsi_queue_command,
+4 −90
Original line number Diff line number Diff line
@@ -656,94 +656,6 @@ static void prepare_info(struct Scsi_Host *instance)
	         "");
}

/**
 * NCR5380_print_status - dump controller info
 * @instance: controller to dump
 *
 * Print commands in the various queues, called from NCR5380_abort
 * to aid debugging.
 */

static void lprint_Scsi_Cmnd(struct scsi_cmnd *cmd)
{
	int i, s;
	unsigned char *command;
	printk("scsi%d: destination target %d, lun %llu\n",
		H_NO(cmd), cmd->device->id, cmd->device->lun);
	printk(KERN_CONT "        command = ");
	command = cmd->cmnd;
	printk(KERN_CONT "%2d (0x%02x)", command[0], command[0]);
	for (i = 1, s = COMMAND_SIZE(command[0]); i < s; ++i)
		printk(KERN_CONT " %02x", command[i]);
	printk("\n");
}

static void __maybe_unused NCR5380_print_status(struct Scsi_Host *instance)
{
	struct NCR5380_hostdata *hostdata;
	struct scsi_cmnd *ptr;

	NCR5380_dprint(NDEBUG_ANY, instance);
	NCR5380_dprint_phase(NDEBUG_ANY, instance);

	hostdata = (struct NCR5380_hostdata *)instance->hostdata;

	if (!hostdata->connected)
		printk("scsi%d: no currently connected command\n", HOSTNO);
	else
		lprint_Scsi_Cmnd((struct scsi_cmnd *) hostdata->connected);
	printk("scsi%d: issue_queue\n", HOSTNO);
	for (ptr = (struct scsi_cmnd *)hostdata->issue_queue; ptr; ptr = NEXT(ptr))
		lprint_Scsi_Cmnd(ptr);

	printk("scsi%d: disconnected_queue\n", HOSTNO);
	for (ptr = (struct scsi_cmnd *) hostdata->disconnected_queue; ptr;
	     ptr = NEXT(ptr))
		lprint_Scsi_Cmnd(ptr);
	printk("\n");
}

static void show_Scsi_Cmnd(struct scsi_cmnd *cmd, struct seq_file *m)
{
	int i, s;
	unsigned char *command;
	seq_printf(m, "scsi%d: destination target %d, lun %llu\n",
		H_NO(cmd), cmd->device->id, cmd->device->lun);
	seq_puts(m, "        command = ");
	command = cmd->cmnd;
	seq_printf(m, "%2d (0x%02x)", command[0], command[0]);
	for (i = 1, s = COMMAND_SIZE(command[0]); i < s; ++i)
		seq_printf(m, " %02x", command[i]);
	seq_putc(m, '\n');
}

static int __maybe_unused NCR5380_show_info(struct seq_file *m,
                                            struct Scsi_Host *instance)
{
	struct NCR5380_hostdata *hostdata;
	struct scsi_cmnd *ptr;
	unsigned long flags;

	hostdata = (struct NCR5380_hostdata *)instance->hostdata;

	spin_lock_irqsave(&hostdata->lock, flags);
	if (!hostdata->connected)
		seq_printf(m, "scsi%d: no currently connected command\n", HOSTNO);
	else
		show_Scsi_Cmnd((struct scsi_cmnd *) hostdata->connected, m);
	seq_printf(m, "scsi%d: issue_queue\n", HOSTNO);
	for (ptr = (struct scsi_cmnd *)hostdata->issue_queue; ptr; ptr = NEXT(ptr))
		show_Scsi_Cmnd(ptr, m);

	seq_printf(m, "scsi%d: disconnected_queue\n", HOSTNO);
	for (ptr = (struct scsi_cmnd *) hostdata->disconnected_queue; ptr;
	     ptr = NEXT(ptr))
		show_Scsi_Cmnd(ptr, m);

	spin_unlock_irqrestore(&hostdata->lock, flags);
	return 0;
}

/**
 * NCR5380_init - initialise an NCR5380
 * @instance: adapter to configure
@@ -2617,7 +2529,8 @@ int NCR5380_abort(struct scsi_cmnd *cmd)

	spin_lock_irqsave(&hostdata->lock, flags);

	NCR5380_print_status(instance);
	NCR5380_dprint(NDEBUG_ANY, instance);
	NCR5380_dprint_phase(NDEBUG_ANY, instance);

	dprintk(NDEBUG_ABORT, "scsi%d: abort called basr 0x%02x, sr 0x%02x\n", HOSTNO,
		    NCR5380_read(BUS_AND_STATUS_REG),
@@ -2815,8 +2728,9 @@ static int NCR5380_bus_reset(struct scsi_cmnd *cmd)

#if (NDEBUG & NDEBUG_ANY)
	scmd_printk(KERN_INFO, cmd, "performing bus reset\n");
	NCR5380_print_status(instance);
#endif
	NCR5380_dprint(NDEBUG_ANY, instance);
	NCR5380_dprint_phase(NDEBUG_ANY, instance);

	do_reset(instance);

+0 −2
Original line number Diff line number Diff line
@@ -97,7 +97,6 @@

#define NCR5380_queue_command           atari_scsi_queue_command
#define NCR5380_abort                   atari_scsi_abort
#define NCR5380_show_info               atari_scsi_show_info
#define NCR5380_info                    atari_scsi_info

#define NCR5380_dma_read_setup(instance, data, count) \
@@ -774,7 +773,6 @@ static int atari_scsi_bus_reset(struct scsi_cmnd *cmd)
static struct scsi_host_template atari_scsi_template = {
	.module			= THIS_MODULE,
	.proc_name		= DRV_MODULE_NAME,
	.show_info		= atari_scsi_show_info,
	.name			= "Atari native SCSI",
	.info			= atari_scsi_info,
	.queuecommand		= atari_scsi_queue_command,
+0 −1
Original line number Diff line number Diff line
@@ -715,7 +715,6 @@ static int generic_NCR5380_dma_xfer_len(struct scsi_cmnd *cmd)

static struct scsi_host_template driver_template = {
	.proc_name		= DRV_MODULE_NAME,
	.show_info		= generic_NCR5380_show_info,
	.name			= "Generic NCR5380/NCR53C400 SCSI",
	.detect			= generic_NCR5380_detect,
	.release		= generic_NCR5380_release_resources,
Loading