diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-01 17:51:54 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-01 17:51:54 -0700 | 
| commit | 20b4fb485227404329e41ad15588afad3df23050 (patch) | |
| tree | f3e099f0ab3da8a93b447203e294d2bb22f6dc05 /drivers/scsi/arm/acornscsi.c | |
| parent | b9394d8a657cd3c064fa432aa0905c1b58b38fe9 (diff) | |
| parent | ac3e3c5b1164397656df81b9e9ab4991184d3236 (diff) | |
| download | olio-linux-3.10-20b4fb485227404329e41ad15588afad3df23050.tar.xz olio-linux-3.10-20b4fb485227404329e41ad15588afad3df23050.zip  | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull VFS updates from Al Viro,
Misc cleanups all over the place, mainly wrt /proc interfaces (switch
create_proc_entry to proc_create(), get rid of the deprecated
create_proc_read_entry() in favor of using proc_create_data() and
seq_file etc).
7kloc removed.
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (204 commits)
  don't bother with deferred freeing of fdtables
  proc: Move non-public stuff from linux/proc_fs.h to fs/proc/internal.h
  proc: Make the PROC_I() and PDE() macros internal to procfs
  proc: Supply a function to remove a proc entry by PDE
  take cgroup_open() and cpuset_open() to fs/proc/base.c
  ppc: Clean up scanlog
  ppc: Clean up rtas_flash driver somewhat
  hostap: proc: Use remove_proc_subtree()
  drm: proc: Use remove_proc_subtree()
  drm: proc: Use minor->index to label things, not PDE->name
  drm: Constify drm_proc_list[]
  zoran: Don't print proc_dir_entry data in debug
  reiserfs: Don't access the proc_dir_entry in r_open(), r_start() r_show()
  proc: Supply an accessor for getting the data from a PDE's parent
  airo: Use remove_proc_subtree()
  rtl8192u: Don't need to save device proc dir PDE
  rtl8187se: Use a dir under /proc/net/r8180/
  proc: Add proc_mkdir_data()
  proc: Move some bits from linux/proc_fs.h to linux/{of.h,signal.h,tty.h}
  proc: Move PDE_NET() to fs/proc/proc_net.c
  ...
Diffstat (limited to 'drivers/scsi/arm/acornscsi.c')
| -rw-r--r-- | drivers/scsi/arm/acornscsi.c | 58 | 
1 files changed, 17 insertions, 41 deletions
diff --git a/drivers/scsi/arm/acornscsi.c b/drivers/scsi/arm/acornscsi.c index 3e1172adb37..09ba1869d36 100644 --- a/drivers/scsi/arm/acornscsi.c +++ b/drivers/scsi/arm/acornscsi.c @@ -2836,20 +2836,15 @@ char *acornscsi_info(struct Scsi_Host *host)      return string;  } -int acornscsi_proc_info(struct Scsi_Host *instance, char *buffer, char **start, off_t offset, -			int length, int inout) +static int acornscsi_show_info(struct seq_file *m, struct Scsi_Host *instance)  { -    int pos, begin = 0, devidx; +    int devidx;      struct scsi_device *scd;      AS_Host *host; -    char *p = buffer; - -    if (inout == 1) -	return -EINVAL;      host  = (AS_Host *)instance->hostdata; -    p += sprintf(p, "AcornSCSI driver v%d.%d.%d" +    seq_printf(m, "AcornSCSI driver v%d.%d.%d"  #ifdef CONFIG_SCSI_ACORNSCSI_SYNC      " SYNC"  #endif @@ -2864,14 +2859,14 @@ int acornscsi_proc_info(struct Scsi_Host *instance, char *buffer, char **start,  #endif  		"\n\n", VER_MAJOR, VER_MINOR, VER_PATCH); -    p += sprintf(p,	"SBIC: WD33C93A  Address: %p    IRQ : %d\n", +    seq_printf(m,	"SBIC: WD33C93A  Address: %p    IRQ : %d\n",  			host->base + SBIC_REGIDX, host->scsi.irq);  #ifdef USE_DMAC -    p += sprintf(p,	"DMAC: uPC71071  Address: %p  IRQ : %d\n\n", +    seq_printf(m,	"DMAC: uPC71071  Address: %p  IRQ : %d\n\n",  			host->base + DMAC_OFFSET, host->scsi.irq);  #endif -    p += sprintf(p,	"Statistics:\n" +    seq_printf(m,	"Statistics:\n"  			"Queued commands: %-10u    Issued commands: %-10u\n"  			"Done commands  : %-10u    Reads          : %-10u\n"  			"Writes         : %-10u    Others         : %-10u\n" @@ -2886,7 +2881,7 @@ int acornscsi_proc_info(struct Scsi_Host *instance, char *buffer, char **start,      for (devidx = 0; devidx < 9; devidx ++) {  	unsigned int statptr, prev; -	p += sprintf(p, "\n%c:", devidx == 8 ? 'H' : ('0' + devidx)); +	seq_printf(m, "\n%c:", devidx == 8 ? 'H' : ('0' + devidx));  	statptr = host->status_ptr[devidx] - 10;  	if ((signed int)statptr < 0) @@ -2896,7 +2891,7 @@ int acornscsi_proc_info(struct Scsi_Host *instance, char *buffer, char **start,  	for (; statptr != host->status_ptr[devidx]; statptr = (statptr + 1) & (STATUS_BUFFER_SIZE - 1)) {  	    if (host->status[devidx][statptr].when) { -		p += sprintf(p, "%c%02X:%02X+%2ld", +		seq_printf(m, "%c%02X:%02X+%2ld",  			host->status[devidx][statptr].irq ? '-' : ' ',  			host->status[devidx][statptr].ph,  			host->status[devidx][statptr].ssr, @@ -2907,51 +2902,32 @@ int acornscsi_proc_info(struct Scsi_Host *instance, char *buffer, char **start,  	}      } -    p += sprintf(p, "\nAttached devices:\n"); +    seq_printf(m, "\nAttached devices:\n");      shost_for_each_device(scd, instance) { -	p += sprintf(p, "Device/Lun TaggedQ      Sync\n"); -	p += sprintf(p, "     %d/%d   ", scd->id, scd->lun); +	seq_printf(m, "Device/Lun TaggedQ      Sync\n"); +	seq_printf(m, "     %d/%d   ", scd->id, scd->lun);  	if (scd->tagged_supported) -		p += sprintf(p, "%3sabled(%3d) ", +		seq_printf(m, "%3sabled(%3d) ",  			     scd->simple_tags ? "en" : "dis",  			     scd->current_tag);  	else -		p += sprintf(p, "unsupported  "); +		seq_printf(m, "unsupported  ");  	if (host->device[scd->id].sync_xfer & 15) -		p += sprintf(p, "offset %d, %d ns\n", +		seq_printf(m, "offset %d, %d ns\n",  			     host->device[scd->id].sync_xfer & 15,  			     acornscsi_getperiod(host->device[scd->id].sync_xfer));  	else -		p += sprintf(p, "async\n"); +		seq_printf(m, "async\n"); -	pos = p - buffer; -	if (pos + begin < offset) { -	    begin += pos; -	    p = buffer; -	} -	pos = p - buffer; -	if (pos + begin > offset + length) { -	    scsi_device_put(scd); -	    break; -	}      } - -    pos = p - buffer; - -    *start = buffer + (offset - begin); -    pos -= offset - begin; - -    if (pos > length) -	pos = length; - -    return pos; +    return 0;  }  static struct scsi_host_template acornscsi_template = {  	.module			= THIS_MODULE, -	.proc_info		= acornscsi_proc_info, +	.show_info		= acornscsi_show_info,  	.name			= "AcornSCSI",  	.info			= acornscsi_info,  	.queuecommand		= acornscsi_queuecmd,  |