[SCSI] remove scsi_request infrastructure
[linux-block.git] / drivers / scsi / scsi_scan.c
index 5c7e51f9efed6501d5e0bf52a2bd41e5576f26ea..0f7e6f94d66bd0149bcba35b3c0af6bd9471c780 100644 (file)
 #include <asm/semaphore.h>
 
 #include <scsi/scsi.h>
+#include <scsi/scsi_cmnd.h>
 #include <scsi/scsi_device.h>
 #include <scsi/scsi_driver.h>
 #include <scsi/scsi_devinfo.h>
 #include <scsi/scsi_host.h>
-#include <scsi/scsi_request.h>
 #include <scsi/scsi_transport.h>
 #include <scsi/scsi_eh.h>
 
@@ -816,6 +816,7 @@ static inline void scsi_destroy_sdev(struct scsi_device *sdev)
        put_device(&sdev->sdev_gendev);
 }
 
+#ifdef CONFIG_SCSI_LOGGING
 /** 
  * scsi_inq_str - print INQUIRY data from min to max index,
  * strip trailing whitespace
@@ -824,12 +825,13 @@ static inline void scsi_destroy_sdev(struct scsi_device *sdev)
  * @first: Offset of string into inq
  * @end:   Index after last character in inq
  */
-static unsigned char* scsi_inq_str(unsigned char* buf, unsigned char *inq,
+static unsigned char *scsi_inq_str(unsigned char *buf, unsigned char *inq,
                                   unsigned first, unsigned end)
 {
        unsigned term = 0, idx;
-       for (idx = 0; idx+first < end && idx+first < inq[4]+5; ++idx) {
-               if (inq[idx+first] > 0x20) {
+
+       for (idx = 0; idx + first < end && idx + first < inq[4] + 5; idx++) {
+               if (inq[idx+first] > ' ') {
                        buf[idx] = inq[idx+first];
                        term = idx+1;
                } else {
@@ -839,6 +841,7 @@ static unsigned char* scsi_inq_str(unsigned char* buf, unsigned char *inq,
        buf[term] = 0;
        return buf;
 }
+#endif
 
 /**
  * scsi_probe_and_add_lun - probe a LUN, if a LUN is found add it
@@ -923,12 +926,16 @@ static int scsi_probe_and_add_lun(struct scsi_target *starget,
                                   " peripheral qualifier of 3, device not"
                                   " added\n"))
                if (lun == 0) {
-                       unsigned char vend[9], mod[17];
-                       SCSI_LOG_SCAN_BUS(1, sdev_printk(KERN_INFO, sdev,
+                       SCSI_LOG_SCAN_BUS(1, {
+                               unsigned char vend[9];
+                               unsigned char mod[17];
+
+                               sdev_printk(KERN_INFO, sdev,
                                        "scsi scan: consider passing scsi_mod."
                                        "dev_flags=%s:%s:0x240 or 0x800240\n",
                                        scsi_inq_str(vend, result, 8, 16),
-                                       scsi_inq_str(mod, result, 16, 32)));
+                                       scsi_inq_str(mod, result, 16, 32));
+                       });
                }
                
                res = SCSI_SCAN_TARGET_PRESENT;
@@ -1496,7 +1503,7 @@ int scsi_scan_host_selected(struct Scsi_Host *shost, unsigned int channel,
                __FUNCTION__, channel, id, lun));
 
        if (((channel != SCAN_WILD_CARD) && (channel > shost->max_channel)) ||
-           ((id != SCAN_WILD_CARD) && (id > shost->max_id)) ||
+           ((id != SCAN_WILD_CARD) && (id >= shost->max_id)) ||
            ((lun != SCAN_WILD_CARD) && (lun > shost->max_lun)))
                return -EINVAL;