USB storage probe

While debugging one ill behaving USB device I found two bugs in USB
storage probe.

usb_stor_get_info() returns -1 (error), 0 (skip) or 1 (ok). First part
of this patch fixes error case.

Second part fixes usb_inquiry()'s retry counter handling. Original code
had retry = -1 on error case, not retry = 0 as checked in the next line.

Signed-off-by: Kim B. Heino <Kim.Heino@bluegiga.com>
master
Kim B. Heino 14 years ago committed by Remy Bohmer
parent aaad108b88
commit fac71cc49f
  1. 4
      common/usb_storage.c

@ -244,7 +244,7 @@ int usb_stor_scan(int mode)
* get info and fill it in
*/
if (usb_stor_get_info(dev, &usb_stor[usb_max_devs],
&usb_dev_desc[usb_max_devs]))
&usb_dev_desc[usb_max_devs]) == 1)
usb_max_devs++;
}
/* if storage device */
@ -888,7 +888,7 @@ static int usb_inquiry(ccb *srb, struct us_data *ss)
USB_STOR_PRINTF("inquiry returns %d\n", i);
if (i == 0)
break;
} while (retry--);
} while (--retry);
if (!retry) {
printf("error in inquiry\n");

Loading…
Cancel
Save