Merge tag 'aa-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmo...
[firefly-linux-kernel-4.4.55.git] / drivers / scsi / NCR5380.c
index 450353e04dde8b6ed03ad594b57f65705790bd48..1e9d6ad9302b735cf2d124c2c41f053ef4d9f12a 100644 (file)
@@ -695,33 +695,35 @@ static void NCR5380_print_status(struct Scsi_Host *instance)
  * Return the number of bytes read from or written
  */
 
+static int __maybe_unused NCR5380_write_info(struct Scsi_Host *instance,
+       char *buffer, int length)
+{
+#ifdef DTC_PUBLIC_RELEASE
+       dtc_wmaxi = dtc_maxi = 0;
+#endif
+#ifdef PAS16_PUBLIC_RELEASE
+       pas_wmaxi = pas_maxi = 0;
+#endif
+       return (-ENOSYS);       /* Currently this is a no-op */
+}
+
 #undef SPRINTF
-#define SPRINTF(args...) do { if(pos < buffer + length-80) pos += sprintf(pos, ## args); } while(0)
+#define SPRINTF(args...) seq_printf(m, ## args)
 static
-char *lprint_Scsi_Cmnd(Scsi_Cmnd * cmd, char *pos, char *buffer, int length);
+void lprint_Scsi_Cmnd(Scsi_Cmnd * cmd, struct seq_file *m);
 static
-char *lprint_command(unsigned char *cmd, char *pos, char *buffer, int len);
+void lprint_command(unsigned char *cmd, struct seq_file *m);
 static
-char *lprint_opcode(int opcode, char *pos, char *buffer, int length);
+void lprint_opcode(int opcode, struct seq_file *m);
 
-static int __maybe_unused NCR5380_proc_info(struct Scsi_Host *instance,
-       char *buffer, char **start, off_t offset, int length, int inout)
+static int __maybe_unused NCR5380_show_info(struct seq_file *m,
+       struct Scsi_Host *instance)
 {
-       char *pos = buffer;
        struct NCR5380_hostdata *hostdata;
        Scsi_Cmnd *ptr;
 
        hostdata = (struct NCR5380_hostdata *) instance->hostdata;
 
-       if (inout) {            /* Has data been written to the file ? */
-#ifdef DTC_PUBLIC_RELEASE
-               dtc_wmaxi = dtc_maxi = 0;
-#endif
-#ifdef PAS16_PUBLIC_RELEASE
-               pas_wmaxi = pas_maxi = 0;
-#endif
-               return (-ENOSYS);       /* Currently this is a no-op */
-       }
        SPRINTF("NCR5380 core release=%d.   ", NCR5380_PUBLIC_RELEASE);
        if (((struct NCR5380_hostdata *) instance->hostdata)->flags & FLAG_NCR53C400)
                SPRINTF("ncr53c400 release=%d.  ", NCR53C400_PUBLIC_RELEASE);
@@ -755,46 +757,37 @@ static int __maybe_unused NCR5380_proc_info(struct Scsi_Host *instance,
        if (!hostdata->connected)
                SPRINTF("scsi%d: no currently connected command\n", instance->host_no);
        else
-               pos = lprint_Scsi_Cmnd((Scsi_Cmnd *) hostdata->connected, pos, buffer, length);
+               lprint_Scsi_Cmnd((Scsi_Cmnd *) hostdata->connected, m);
        SPRINTF("scsi%d: issue_queue\n", instance->host_no);
        for (ptr = (Scsi_Cmnd *) hostdata->issue_queue; ptr; ptr = (Scsi_Cmnd *) ptr->host_scribble)
-               pos = lprint_Scsi_Cmnd(ptr, pos, buffer, length);
+               lprint_Scsi_Cmnd(ptr, m);
 
        SPRINTF("scsi%d: disconnected_queue\n", instance->host_no);
        for (ptr = (Scsi_Cmnd *) hostdata->disconnected_queue; ptr; ptr = (Scsi_Cmnd *) ptr->host_scribble)
-               pos = lprint_Scsi_Cmnd(ptr, pos, buffer, length);
+               lprint_Scsi_Cmnd(ptr, m);
        spin_unlock_irq(instance->host_lock);
-       
-       *start = buffer;
-       if (pos - buffer < offset)
-               return 0;
-       else if (pos - buffer - offset < length)
-               return pos - buffer - offset;
-       return length;
+       return 0;
 }
 
-static char *lprint_Scsi_Cmnd(Scsi_Cmnd * cmd, char *pos, char *buffer, int length)
+static void lprint_Scsi_Cmnd(Scsi_Cmnd * cmd, struct seq_file *m)
 {
        SPRINTF("scsi%d : destination target %d, lun %d\n", cmd->device->host->host_no, cmd->device->id, cmd->device->lun);
        SPRINTF("        command = ");
-       pos = lprint_command(cmd->cmnd, pos, buffer, length);
-       return (pos);
+       lprint_command(cmd->cmnd, m);
 }
 
-static char *lprint_command(unsigned char *command, char *pos, char *buffer, int length)
+static void lprint_command(unsigned char *command, struct seq_file *m)
 {
        int i, s;
-       pos = lprint_opcode(command[0], pos, buffer, length);
+       lprint_opcode(command[0], m);
        for (i = 1, s = COMMAND_SIZE(command[0]); i < s; ++i)
                SPRINTF("%02x ", command[i]);
        SPRINTF("\n");
-       return (pos);
 }
 
-static char *lprint_opcode(int opcode, char *pos, char *buffer, int length)
+static void lprint_opcode(int opcode, struct seq_file *m)
 {
        SPRINTF("%2d (0x%02x)", opcode, opcode);
-       return (pos);
 }