aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/scsi_scan.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/scsi_scan.c')
-rw-r--r--drivers/scsi/scsi_scan.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index 7d31a4b0f802..5c7e51f9efed 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
@@ -673,6 +673,7 @@ static int scsi_add_lun(struct scsi_device *sdev, char *inq_result, int *bflags)
673 case TYPE_MEDIUM_CHANGER: 673 case TYPE_MEDIUM_CHANGER:
674 case TYPE_ENCLOSURE: 674 case TYPE_ENCLOSURE:
675 case TYPE_COMM: 675 case TYPE_COMM:
676 case TYPE_RAID:
676 case TYPE_RBC: 677 case TYPE_RBC:
677 sdev->writeable = 1; 678 sdev->writeable = 1;
678 break; 679 break;
@@ -738,6 +739,13 @@ static int scsi_add_lun(struct scsi_device *sdev, char *inq_result, int *bflags)
738 sdev->select_no_atn = 1; 739 sdev->select_no_atn = 1;
739 740
740 /* 741 /*
742 * Maximum 512 sector transfer length
743 * broken RA4x00 Compaq Disk Array
744 */
745 if (*bflags & BLIST_MAX_512)
746 blk_queue_max_sectors(sdev->request_queue, 512);
747
748 /*
741 * Some devices may not want to have a start command automatically 749 * Some devices may not want to have a start command automatically
742 * issued when a device is added. 750 * issued when a device is added.
743 */ 751 */
@@ -1146,10 +1154,13 @@ static int scsi_report_lun_scan(struct scsi_target *starget, int bflags,
1146 * Also allow SCSI-2 if BLIST_REPORTLUN2 is set and host adapter does 1154 * Also allow SCSI-2 if BLIST_REPORTLUN2 is set and host adapter does
1147 * support more than 8 LUNs. 1155 * support more than 8 LUNs.
1148 */ 1156 */
1149 if ((bflags & BLIST_NOREPORTLUN) || 1157 if (bflags & BLIST_NOREPORTLUN)
1150 starget->scsi_level < SCSI_2 || 1158 return 1;
1151 (starget->scsi_level < SCSI_3 && 1159 if (starget->scsi_level < SCSI_2 &&
1152 (!(bflags & BLIST_REPORTLUN2) || shost->max_lun <= 8)) ) 1160 starget->scsi_level != SCSI_UNKNOWN)
1161 return 1;
1162 if (starget->scsi_level < SCSI_3 &&
1163 (!(bflags & BLIST_REPORTLUN2) || shost->max_lun <= 8))
1153 return 1; 1164 return 1;
1154 if (bflags & BLIST_NOLUN) 1165 if (bflags & BLIST_NOLUN)
1155 return 0; 1166 return 0;