Merge branch 'misc' into for-linus
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / scsi / scsi_debug.c
index 154d9870dc5ab8002241eb3d25293dd73014f48f..0a537a0515ca6c6c37829fb3c45f1fe8aa20c4de 100644 (file)
@@ -2828,31 +2828,27 @@ static const char * scsi_debug_info(struct Scsi_Host * shp)
 /* scsi_debug_proc_info
  * Used if the driver currently has no own support for /proc/scsi
  */
-static int scsi_debug_proc_info(struct Scsi_Host *host, char *buffer, char **start, off_t offset,
-                               int length, int inout)
+static int scsi_debug_write_info(struct Scsi_Host *host, char *buffer, int length)
 {
-       int len, pos, begin;
-       int orig_length;
+       char arr[16];
+       int opts;
+       int minLen = length > 15 ? 15 : length;
 
-       orig_length = length;
-
-       if (inout == 1) {
-               char arr[16];
-               int minLen = length > 15 ? 15 : length;
+       if (!capable(CAP_SYS_ADMIN) || !capable(CAP_SYS_RAWIO))
+               return -EACCES;
+       memcpy(arr, buffer, minLen);
+       arr[minLen] = '\0';
+       if (1 != sscanf(arr, "%d", &opts))
+               return -EINVAL;
+       scsi_debug_opts = opts;
+       if (scsi_debug_every_nth != 0)
+               scsi_debug_cmnd_count = 0;
+       return length;
+}
 
-               if (!capable(CAP_SYS_ADMIN) || !capable(CAP_SYS_RAWIO))
-                       return -EACCES;
-               memcpy(arr, buffer, minLen);
-               arr[minLen] = '\0';
-               if (1 != sscanf(arr, "%d", &pos))
-                       return -EINVAL;
-               scsi_debug_opts = pos;
-               if (scsi_debug_every_nth != 0)
-                        scsi_debug_cmnd_count = 0;
-               return length;
-       }
-       begin = 0;
-       pos = len = sprintf(buffer, "scsi_debug adapter driver, version "
+static int scsi_debug_show_info(struct seq_file *m, struct Scsi_Host *host)
+{
+       seq_printf(m, "scsi_debug adapter driver, version "
            "%s [%s]\n"
            "num_tgts=%d, shared (ram) size=%d MB, opts=0x%x, "
            "every_nth=%d(curr:%d)\n"
@@ -2867,15 +2863,7 @@ static int scsi_debug_proc_info(struct Scsi_Host *host, char *buffer, char **sta
            scsi_debug_sector_size, sdebug_cylinders_per, sdebug_heads,
            sdebug_sectors_per, num_aborts, num_dev_resets, num_bus_resets,
            num_host_resets, dix_reads, dix_writes, dif_errors);
-       if (pos < offset) {
-               len = 0;
-               begin = pos;
-       }
-       *start = buffer + (offset - begin);     /* Start of wanted data */
-       len -= (offset - begin);
-       if (len > length)
-               len = length;
-       return len;
+       return 0;
 }
 
 static ssize_t sdebug_delay_show(struct device_driver * ddp, char * buf)
@@ -3960,7 +3948,8 @@ write:
 static DEF_SCSI_QCMD(scsi_debug_queuecommand)
 
 static struct scsi_host_template sdebug_driver_template = {
-       .proc_info =            scsi_debug_proc_info,
+       .show_info =            scsi_debug_show_info,
+       .write_info =           scsi_debug_write_info,
        .proc_name =            sdebug_proc_name,
        .name =                 "SCSI DEBUG",
        .info =                 scsi_debug_info,