The following reply was made to PR usb/185628; it has been noted by GNATS.

From: Hans Petter Selasky <h...@bitfrost.no>
To: Alex Goncharov <alex_goncharov_...@yahoo.com>, 
 freebsd-gnats-sub...@freebsd.org
Cc:  
Subject: Re: usb/185628: usbd_req_re_enumerate set address failed 
USB_ERR_STALLED
 for Seagate USB drives between r259425 and r260321
Date: Fri, 10 Jan 2014 08:38:13 +0100

 On 01/10/14 04:02, Alex Goncharov wrote:
 >
 >> Number:         185628
 >> Category:       usb
 >> Synopsis:       usbd_req_re_enumerate set address failed USB_ERR_STALLED 
 >> for Seagate USB drives between r259425 and r260321
 >> Confidential:   no
 >> Severity:       non-critical
 >> Priority:       low
 >> Responsible:    freebsd-usb
 >> State:          open
 >> Quarter:
 >> Keywords:
 >> Date-Required:
 >> Class:          sw-bug
 >> Submitter-Id:   current-users
 >> Arrival-Date:   Fri Jan 10 03:10:00 UTC 2014
 >> Closed-Date:
 >> Last-Modified:
 >> Originator:     Alex Goncharov
 >> Release:        9.2-STABLE, built from svn source, r260321
 >> Organization:
 >> Environment:
 > FreeBSD 9.2-STABLE FreeBSD 9.2-STABLE #0 r260321 Sun Jan  5 13:06:01 EST 2014
 >> Description:
 > This is an extremely reproducible and very upsetting new problem.
 >
 > I have been using two identical Seagate Expansion 0219 drives for
 > about a year, attaching them to three FreeBSD systems, all of which I
 > update, building from the source, about every two-three weeks.  No
 > problem, good drives -- till the last Sunday.
 
 Hi,
 
 Can you give some more details? Are these in some kind of enclosure?
 
 What USB speed are they connected at?
 
 If you are using an XHCI controller and the drives are connected at 
 Super Speed (5.0 GBit), there has been a change in the XHCI driver which 
 change how short packets are handled for transfers larger than 64K. The 
 following patch will revert to the old behaviour from a class-driver 
 point of view:
 
 ==================================================================
 --- umass.c    (revision 260392)
 +++ umass.c    (local)
 @@ -1362,7 +1362,11 @@
                sc->sc_transfer.data_ptr += actlen;
                sc->sc_transfer.actlen += actlen;
 
 -              if (actlen < sumlen) {
 +              /*
 +               * Filter out devices sending a short packet
 +               * when they shouldn't:
 +               */
 +              if ((actlen % 512) != 0 && (actlen < sumlen)) {
                        /* short transfer */
                        sc->sc_transfer.data_rem = 0;
                }
 
 --HPS
 
 >
 > This past Sunday, I update two systems from r259425 to r260321, and
 > suddenly both of them now show these 'dmesg'es on connecting either of
 > the two drives:
 >
 > ------------------------------------------------------------
 > usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_STALLED, ignored)
 > usbd_setup_device_desc: getting device descriptor at addr 2 failed, 
 > USB_ERR_STALLED
 > usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_STALLED, ignored)
 > usbd_setup_device_desc: getting device descriptor at addr 2 failed, 
 > USB_ERR_STALLED
 > usb_alloc_device: Failure selecting configuration index 0:USB_ERR_STALLED, 
 > port 3, addr 2 (ignored)
 > ugen5.2: <Seagate> at usbus5
 > ugen5.2: <Seagate> at usbus5 (disconnected)
 > ------------------------------------------------------------
 
 Do other USB devices connected to the same USB host controller continue 
 to work?
 
 --HPS
_______________________________________________
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to