The scsi_scan_host_selected() should return -EINVAL when the id is equal to the max_id. Currently it uses ">" when comparing with max_id, and hence leaves the border case when "id==max_id". The channel and lun have values valid from 0 up to, and including, max_channel or max_lun. But, the valid values for id range from 0 to max_id-1. This patch fixes the problem. Regards, Amit Arora Signed-off-by: Amit Arora <aarora@xxxxxxxxxx> --- diff -Nuarp linux-2.6.17-rc4.orig/drivers/scsi/scsi_scan.c linux-2.6.17-rc4/drivers/scsi/scsi_scan.c --- linux-2.6.17-rc4.orig/drivers/scsi/scsi_scan.c 2006-05-18 20:25:32.000000000 -0600 +++ linux-2.6.17-rc4/drivers/scsi/scsi_scan.c 2006-05-18 20:28:09.000000000 -0600 @@ -1473,7 +1473,7 @@ int scsi_scan_host_selected(struct Scsi_ __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; - : send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html