Commit 275084cb authored by Al Viro's avatar Al Viro

aha152x: switch to ->show_info()

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 31491e1a
...@@ -2977,11 +2977,10 @@ static void show_queues(struct Scsi_Host *shpnt) ...@@ -2977,11 +2977,10 @@ static void show_queues(struct Scsi_Host *shpnt)
} }
#undef SPRINTF #undef SPRINTF
#define SPRINTF(args...) pos += sprintf(pos, ## args) #define SPRINTF(args...) seq_printf(m, ##args)
static int get_command(char *pos, Scsi_Cmnd * ptr) static void get_command(struct seq_file *m, Scsi_Cmnd * ptr)
{ {
char *start = pos;
int i; int i;
SPRINTF("%p: target=%d; lun=%d; cmnd=( ", SPRINTF("%p: target=%d; lun=%d; cmnd=( ",
...@@ -3011,13 +3010,10 @@ static int get_command(char *pos, Scsi_Cmnd * ptr) ...@@ -3011,13 +3010,10 @@ static int get_command(char *pos, Scsi_Cmnd * ptr)
if (ptr->SCp.phase & syncneg) if (ptr->SCp.phase & syncneg)
SPRINTF("syncneg|"); SPRINTF("syncneg|");
SPRINTF("; next=0x%p\n", SCNEXT(ptr)); SPRINTF("; next=0x%p\n", SCNEXT(ptr));
return (pos - start);
} }
static int get_ports(struct Scsi_Host *shpnt, char *pos) static void get_ports(struct seq_file *m, struct Scsi_Host *shpnt)
{ {
char *start = pos;
int s; int s;
SPRINTF("\n%s: %s(%s) ", CURRENT_SC ? "on bus" : "waiting", states[STATE].name, states[PREVSTATE].name); SPRINTF("\n%s: %s(%s) ", CURRENT_SC ? "on bus" : "waiting", states[STATE].name, states[PREVSTATE].name);
...@@ -3273,11 +3269,9 @@ static int get_ports(struct Scsi_Host *shpnt, char *pos) ...@@ -3273,11 +3269,9 @@ static int get_ports(struct Scsi_Host *shpnt, char *pos)
if (s & ENREQINIT) if (s & ENREQINIT)
SPRINTF("ENREQINIT "); SPRINTF("ENREQINIT ");
SPRINTF(")\n"); SPRINTF(")\n");
return (pos - start);
} }
static int aha152x_set_info(char *buffer, int length, struct Scsi_Host *shpnt) static int aha152x_set_info(struct Scsi_Host *shpnt, char *buffer, int length)
{ {
if(!shpnt || !buffer || length<8 || strncmp("aha152x ", buffer, 8)!=0) if(!shpnt || !buffer || length<8 || strncmp("aha152x ", buffer, 8)!=0)
return -EINVAL; return -EINVAL;
...@@ -3320,26 +3314,11 @@ static int aha152x_set_info(char *buffer, int length, struct Scsi_Host *shpnt) ...@@ -3320,26 +3314,11 @@ static int aha152x_set_info(char *buffer, int length, struct Scsi_Host *shpnt)
return length; return length;
} }
#undef SPRINTF static int aha152x_show_info(struct seq_file *m, struct Scsi_Host *shpnt)
#define SPRINTF(args...) \
do { if(pos < buffer + length) pos += sprintf(pos, ## args); } while(0)
static int aha152x_proc_info(struct Scsi_Host *shpnt, char *buffer, char **start,
off_t offset, int length, int inout)
{ {
int i; int i;
char *pos = buffer;
Scsi_Cmnd *ptr; Scsi_Cmnd *ptr;
unsigned long flags; unsigned long flags;
int thislength;
DPRINTK(debug_procinfo,
KERN_DEBUG "aha152x_proc_info: buffer=%p offset=%ld length=%d hostno=%d inout=%d\n",
buffer, offset, length, shpnt->host_no, inout);
if (inout)
return aha152x_set_info(buffer, length, shpnt);
SPRINTF(AHA152X_REVID "\n"); SPRINTF(AHA152X_REVID "\n");
...@@ -3392,25 +3371,25 @@ static int aha152x_proc_info(struct Scsi_Host *shpnt, char *buffer, char **start ...@@ -3392,25 +3371,25 @@ static int aha152x_proc_info(struct Scsi_Host *shpnt, char *buffer, char **start
if (ISSUE_SC) { if (ISSUE_SC) {
SPRINTF("not yet issued commands:\n"); SPRINTF("not yet issued commands:\n");
for (ptr = ISSUE_SC; ptr; ptr = SCNEXT(ptr)) for (ptr = ISSUE_SC; ptr; ptr = SCNEXT(ptr))
pos += get_command(pos, ptr); get_command(m, ptr);
} else } else
SPRINTF("no not yet issued commands\n"); SPRINTF("no not yet issued commands\n");
DO_UNLOCK(flags); DO_UNLOCK(flags);
if (CURRENT_SC) { if (CURRENT_SC) {
SPRINTF("current command:\n"); SPRINTF("current command:\n");
pos += get_command(pos, CURRENT_SC); get_command(m, CURRENT_SC);
} else } else
SPRINTF("no current command\n"); SPRINTF("no current command\n");
if (DISCONNECTED_SC) { if (DISCONNECTED_SC) {
SPRINTF("disconnected commands:\n"); SPRINTF("disconnected commands:\n");
for (ptr = DISCONNECTED_SC; ptr; ptr = SCNEXT(ptr)) for (ptr = DISCONNECTED_SC; ptr; ptr = SCNEXT(ptr))
pos += get_command(pos, ptr); get_command(m, ptr);
} else } else
SPRINTF("no disconnected commands\n"); SPRINTF("no disconnected commands\n");
pos += get_ports(shpnt, pos); get_ports(m, shpnt);
#if defined(AHA152X_STAT) #if defined(AHA152X_STAT)
SPRINTF("statistics:\n" SPRINTF("statistics:\n"
...@@ -3440,24 +3419,7 @@ static int aha152x_proc_info(struct Scsi_Host *shpnt, char *buffer, char **start ...@@ -3440,24 +3419,7 @@ static int aha152x_proc_info(struct Scsi_Host *shpnt, char *buffer, char **start
HOSTDATA(shpnt)->time[i]); HOSTDATA(shpnt)->time[i]);
} }
#endif #endif
return 0;
DPRINTK(debug_procinfo, KERN_DEBUG "aha152x_proc_info: pos=%p\n", pos);
thislength = pos - (buffer + offset);
DPRINTK(debug_procinfo, KERN_DEBUG "aha152x_proc_info: length=%d thislength=%d\n", length, thislength);
if(thislength<0) {
DPRINTK(debug_procinfo, KERN_DEBUG "aha152x_proc_info: output too short\n");
*start = NULL;
return 0;
}
thislength = thislength<length ? thislength : length;
DPRINTK(debug_procinfo, KERN_DEBUG "aha152x_proc_info: return %d\n", thislength);
*start = buffer + offset;
return thislength < length ? thislength : length;
} }
static int aha152x_adjust_queue(struct scsi_device *device) static int aha152x_adjust_queue(struct scsi_device *device)
...@@ -3470,7 +3432,8 @@ static struct scsi_host_template aha152x_driver_template = { ...@@ -3470,7 +3432,8 @@ static struct scsi_host_template aha152x_driver_template = {
.module = THIS_MODULE, .module = THIS_MODULE,
.name = AHA152X_REVID, .name = AHA152X_REVID,
.proc_name = "aha152x", .proc_name = "aha152x",
.proc_info = aha152x_proc_info, .show_info = aha152x_show_info,
.write_info = aha152x_set_info,
.queuecommand = aha152x_queue, .queuecommand = aha152x_queue,
.eh_abort_handler = aha152x_abort, .eh_abort_handler = aha152x_abort,
.eh_device_reset_handler = aha152x_device_reset, .eh_device_reset_handler = aha152x_device_reset,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment