diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index 5c7e51f..f85d910 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
@@ -816,6 +816,7 @@
 	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 @@
  * @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 @@
 	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 @@
 				   " 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;
