USB: storage: avoid scanning other targets for single target device
authorMing Lei <ming.lei@canonical.com>
Sat, 19 Jan 2013 11:30:30 +0000 (19:30 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 21 Jan 2013 00:12:53 +0000 (16:12 -0800)
This patch sets scsi_host->max_id as 1 if the device's quirk
flag of US_FL_SCM_MULT_TARG isn't set, because there are only 6
mass storage devices marked as mutiple targets from unusual_devs.h.

This patch is a small optimization about scanning targets, and
avoid scanning other 7 non-existed targets for single target
device.

Signed-off-by: Ming Lei <ming.lei@canonical.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/storage/usb.c

index 31b3e1a61bbdda035d5ce1e5ef63ac05e36b5b26..07b3e5406f48336c014f036ef848a9142317bb98 100644 (file)
@@ -976,6 +976,9 @@ int usb_stor_probe2(struct us_data *us)
        if (us->fflags & US_FL_SINGLE_LUN)
                us->max_lun = 0;
 
+       if (!(us->fflags & US_FL_SCM_MULT_TARG))
+               us_to_host(us)->max_id = 1;
+
        /* Find the endpoints and calculate pipe values */
        result = get_pipes(us);
        if (result)