diff options
Diffstat (limited to 'drivers/scsi/scsi_scan.c')
-rw-r--r-- | drivers/scsi/scsi_scan.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index 5c7e51f9efed..f85d9100f554 100644 --- a/drivers/scsi/scsi_scan.c +++ b/drivers/scsi/scsi_scan.c | |||
@@ -816,6 +816,7 @@ static inline void scsi_destroy_sdev(struct scsi_device *sdev) | |||
816 | put_device(&sdev->sdev_gendev); | 816 | put_device(&sdev->sdev_gendev); |
817 | } | 817 | } |
818 | 818 | ||
819 | #ifdef CONFIG_SCSI_LOGGING | ||
819 | /** | 820 | /** |
820 | * scsi_inq_str - print INQUIRY data from min to max index, | 821 | * scsi_inq_str - print INQUIRY data from min to max index, |
821 | * strip trailing whitespace | 822 | * strip trailing whitespace |
@@ -824,12 +825,13 @@ static inline void scsi_destroy_sdev(struct scsi_device *sdev) | |||
824 | * @first: Offset of string into inq | 825 | * @first: Offset of string into inq |
825 | * @end: Index after last character in inq | 826 | * @end: Index after last character in inq |
826 | */ | 827 | */ |
827 | static unsigned char* scsi_inq_str(unsigned char* buf, unsigned char *inq, | 828 | static unsigned char *scsi_inq_str(unsigned char *buf, unsigned char *inq, |
828 | unsigned first, unsigned end) | 829 | unsigned first, unsigned end) |
829 | { | 830 | { |
830 | unsigned term = 0, idx; | 831 | unsigned term = 0, idx; |
831 | for (idx = 0; idx+first < end && idx+first < inq[4]+5; ++idx) { | 832 | |
832 | if (inq[idx+first] > 0x20) { | 833 | for (idx = 0; idx + first < end && idx + first < inq[4] + 5; idx++) { |
834 | if (inq[idx+first] > ' ') { | ||
833 | buf[idx] = inq[idx+first]; | 835 | buf[idx] = inq[idx+first]; |
834 | term = idx+1; | 836 | term = idx+1; |
835 | } else { | 837 | } else { |
@@ -839,6 +841,7 @@ static unsigned char* scsi_inq_str(unsigned char* buf, unsigned char *inq, | |||
839 | buf[term] = 0; | 841 | buf[term] = 0; |
840 | return buf; | 842 | return buf; |
841 | } | 843 | } |
844 | #endif | ||
842 | 845 | ||
843 | /** | 846 | /** |
844 | * scsi_probe_and_add_lun - probe a LUN, if a LUN is found add it | 847 | * 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, | |||
923 | " peripheral qualifier of 3, device not" | 926 | " peripheral qualifier of 3, device not" |
924 | " added\n")) | 927 | " added\n")) |
925 | if (lun == 0) { | 928 | if (lun == 0) { |
926 | unsigned char vend[9], mod[17]; | 929 | SCSI_LOG_SCAN_BUS(1, { |
927 | SCSI_LOG_SCAN_BUS(1, sdev_printk(KERN_INFO, sdev, | 930 | unsigned char vend[9]; |
931 | unsigned char mod[17]; | ||
932 | |||
933 | sdev_printk(KERN_INFO, sdev, | ||
928 | "scsi scan: consider passing scsi_mod." | 934 | "scsi scan: consider passing scsi_mod." |
929 | "dev_flags=%s:%s:0x240 or 0x800240\n", | 935 | "dev_flags=%s:%s:0x240 or 0x800240\n", |
930 | scsi_inq_str(vend, result, 8, 16), | 936 | scsi_inq_str(vend, result, 8, 16), |
931 | scsi_inq_str(mod, result, 16, 32))); | 937 | scsi_inq_str(mod, result, 16, 32)); |
938 | }); | ||
932 | } | 939 | } |
933 | 940 | ||
934 | res = SCSI_SCAN_TARGET_PRESENT; | 941 | res = SCSI_SCAN_TARGET_PRESENT; |