On Saturday 03 September 2011 18:32:38 Alex Kozlov wrote: > On Fri, Sep 02, 2011 at 06:50:44PM +0000, Hans Petter Selasky wrote: > > Log: > > This patch adds automatic detection of USB mass storage devices > > which does not support the no synchronize cache SCSI command. > > > > The __FreeBSD_version version macro has been bumped and > > external kernel modules needs to be recompiled after > > this patch. > > > > Approved by: re (kib) > > MFC after: 1 week > > PR: usb/160299 > > > > Modified: > > head/sys/dev/usb/quirk/usb_quirk.c > > head/sys/dev/usb/storage/umass.c > > head/sys/dev/usb/usb_device.c > > head/sys/dev/usb/usb_device.h > > head/sys/dev/usb/usb_dynamic.c > > head/sys/dev/usb/usb_dynamic.h > > head/sys/dev/usb/usb_freebsd.h > > head/sys/dev/usb/usb_msctest.c > > head/sys/dev/usb/usb_msctest.h > > head/sys/dev/usb/usbdi.h > > head/sys/sys/param.h > > This change broke the detection of one of my flash cards: > > Root mount waiting for: usbus7 > ugen7.2: <vendor 0x1221> at usbus7 > umass0: <vendor 0x1221 Flsah Disk. class 0/0, rev 2.00/0.00, addr 2> on > usbus7 Root mount waiting for: usbus7 > (probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 0 0 0 24 0 > (probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error > (probe0:umass-sim0:0:0:0): SCSI status: Check Condition > (probe0:umass-sim0:0:0:0): SCSI sense: ILLEGAL REQUEST asc:24.0 (Invalid > field in CDB) field replaceable unit 6 Root mount waiting for: usbus7 > Trying to mount root from ufs:/dev/da0a [ro]... > mountroot: waiting for device /dev/da0a ... > Mounting from ufs:/dev/da0a failed with error 19. > > > -- > Adios
Hi, Can you try the attached patch? Also add: options USB_DEBUG to kernel config and set hw.usb.debug=1 during boot. --HPS
=== sys/dev/usb/usb_msctest.c ================================================================== --- sys/dev/usb/usb_msctest.c (revision 225354) +++ sys/dev/usb/usb_msctest.c (local) @@ -605,6 +605,7 @@ uint8_t is_no_direct; uint8_t sid_type; int err; + int failed = 0; sc = bbb_attach(udev, iface_index); if (sc == NULL) @@ -645,6 +646,8 @@ if (err != ERR_CSW_FAILED) goto error; + + failed = 1; } err = bbb_command_start(sc, DIR_IN, 0, NULL, 0, @@ -659,11 +662,13 @@ DPRINTF("Device doesn't handle synchronize cache\n"); usbd_add_dynamic_quirk(udev, UQ_MSC_NO_SYNC_CACHE); + + failed = 1; } done: bbb_detach(sc); - return (0); + return (failed ? USB_ERR_STALLED : 0); error: bbb_detach(sc);
_______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"