2016-04-27 05:23:13

by Craig McQueen

[permalink] [raw]
Subject: rt2800 and BeagleBone Black soft lockup when unplugging from USB hub

I have a D-Link DWA-140 USB Wi-Fi device which is rt2800 based (5392 chipset). I've been testing it on a BeagleBone Black running an Ubuntu 16.04 image (4.4.6 kernel), with a USB hub.

When I unplug the Wi-Fi device from the USB hub, and it's connected to an access point, and then I unplug it, the OS appears to lock up. I get messages about a soft lockup on the serial console:

[ 9736.136702] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [kworker/u2:0:1129]
[ 9764.136701] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [kworker/u2:0:1129]
[ 9792.136701] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [kworker/u2:0:1129]
[ 9820.136699] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [kworker/u2:0:1129]
[ 9848.136696] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [kworker/u2:0:1129]

This will repeat indefinitely, until I unplug the hub, which resolves the soft lockup and then the system seems to function normally.

I've attached a dmesg log of the soft lockup stack traces. They seem to indicate a lockup in workqueue rt2x00usb_work_rxdone() (specifically in usb_hcd_submit_urb() called from rt2x00usb_kick_rx_entry() called from rt2x00usb_clear_entry()).

I originally found this bug on a 3.14.x kernel built with Yocto for a BeagleBone Black-based product. So it seems this is a bug that has been around for some time.

--
Craig McQueen


Attachments:
2016-04-27_Ubuntu_16_04_hub_connection_unplug_lockup.txt (29.65 kB)
2016-04-27_Ubuntu_16_04_hub_connection_unplug_lockup.txt

2016-05-10 07:43:25

by Yegor Yefremov

[permalink] [raw]
Subject: Re: rt2800 and BeagleBone Black soft lockup when unplugging from USB hub

On Tue, May 10, 2016 at 9:17 AM, Craig McQueen
<[email protected]> wrote:
> Yegor Yefremov wrote:
>> Hi Craig,
>>
>> On Tue, May 10, 2016 at 8:08 AM, Craig McQueen
>> <[email protected]> wrote:
>> > I previously wrote:
>> >> I previously wrote:
>> >> > I previously wrote:
>> >> > >
>> >> > > I have a D-Link DWA-140 USB Wi-Fi device which is rt2800 based
>> >> > > (5392 chipset). I've been testing it on a BeagleBone Black
>> >> > > running an Ubuntu
>> >> > > 16.04 image (4.4.6 kernel), with a USB hub.
>> >> > >
>> >> > > When I unplug the Wi-Fi device from the USB hub, and it's
>> >> > > connected to an access point, and then I unplug it, the OS appears to
>> lock up.
>> >> > > I get messages about a soft lockup on the serial console:
>> >> > >
>> >> > > [ 9736.136702] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s!
>> >> > > [kworker/u2:0:1129] [ 9764.136701] NMI watchdog: BUG: soft lockup
>> >> > > -
>> >> > > CPU#0 stuck for 22s! [kworker/u2:0:1129] [ 9792.136701] NMI
>> watchdog:
>> >> > > BUG: soft lockup - CPU#0 stuck for 22s! [kworker/u2:0:1129] [
>> >> > > 9820.136699] NMI
>> >> > > watchdog: BUG: soft lockup - CPU#0 stuck for 22s!
>> >> > > [kworker/u2:0:1129] [ 9848.136696] NMI watchdog: BUG: soft lockup
>> >> > > -
>> >> CPU#0 stuck for 22s!
>> >> > > [kworker/u2:0:1129]
>> >> > >
>> >> > > This will repeat indefinitely, until I unplug the hub, which
>> >> > > resolves the soft lockup and then the system seems to function
>> normally.
>> >> > >
>> >> > > I've attached a dmesg log of the soft lockup stack traces. They
>> >> > > seem to indicate a lockup in workqueue rt2x00usb_work_rxdone()
>> >> > > (specifically in
>> >> > > usb_hcd_submit_urb() called from rt2x00usb_kick_rx_entry() called
>> >> > > from rt2x00usb_clear_entry()).
>> >> > >
>> >> > > I originally found this bug on a 3.14.x kernel built with Yocto
>> >> > > for a BeagleBone Black-based product. So it seems this is a bug
>> >> > > that has been around for some time.
>> >> >
>> >> > I should also note that on the 3.14.x Yocto-built kernel on
>> >> > BeagleBone Black, this bug does not occur if the rt2800 device is
>> >> > unplugged directly from the BBB's USB port. It only occurs if unplugged
>> from a hub.
>> >> >
>> >> > I have tested this on an i586 based eBox-3310A mini-PC running
>> >> > Debian 8.4, which has a 3.16.0 kernel, with the same hub and same
>> >> > rt2800 device. But I was not able to reproduce this issue.
>> >>
>> >> There is a patch for the AM335x musb driver that seems to fix this:
>> >>
>> >> http://marc.info/?l=linux-usb&m=146173995117456&w=2
>> >>
>> >> So it seems that this issue's root cause is in the AM335x USB
>> >> interrupt handling, and not the Wi-Fi rt2800 driver.
>> >
>> > Having applied two AM335x USB patches in the 3.14.49 kernel, that does
>> seem to resolve the soft lock-up on the RX side. The two patches are:
>> >
>> > http://marc.info/?l=linux-usb&m=146173995117456&w=2
>> > http://marc.info/?l=linux-usb&m=146222355213935&w=2
>> >
>> > But I am finding there is still a lock-up issue when unplugging from a hub,
>> this time on the TX side. It is more likely if there is Wi-Fi traffic in progress
>> when the unplug occurs. I'm attaching a log. Essentially there are a heap of
>> lines (100 or so per second):
>> >
>> > [ 1866.693511] ieee80211 phy7: rt2800usb_tx_sta_fifo_read_completed:
>> > Warning - TX status read failed -71
>> >
>> > Which finally stop shortly after USB disconnect is detected:
>> >
>> > [ 1866.985854] usb 1-1.3: USB disconnect, device number 10
>> >
>> > However that disconnect message is typically 30-90 seconds after the
>> unplug happened. It seems that the USB disconnect detection is delayed due
>> to the CPU load of the TX.
>> >
>> > I also sometimes see a kernel panic. That can occur whether connected to a
>> USB hub or directly to the on-board USB port. See the attached log.
>> >
>> > I'm not so familiar with either the Wi-Fi or USB stacks in the Linux
>> > kernel, so I would appreciate any advice with debugging and fixing
>> > this. (My previous investigations indicate these issues are present in
>> > both 3.14.x kernel and 4.4.6 kernel. I'm more familiar with working
>> > with the 3.14.x kernel under Yocto, but I could try moving to 4.4.6
>> > kernel for Ubuntu. I'm open to advice on which to investigate on.)
>>
>> Take a look at this patch: http://marc.info/?l=linux-
>> usb&m=146222355213935&w=2
>>
>> If it fixes your issue please provide your "tested-by" tag here.
>
> Hi Yegor,
>
> I am using that patch, and I referred to it in my last message. But it doesn't fix this issue.

Have missed that.

I've made following test with am335x based device and a Ralink
Technology, Corp. RT5370 Wireless Adapter attached vie USB hub:

root@baltos:~# lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=musb-hdrc/1p, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=musb-hdrc/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 4, If 0, Class=Vendor Specific Class,
Driver=rt2800usb, 480M

during nuttcp test session I unplug WLAN dongle and get following
kernel messages (kernel 3.18.32 with [1])

ieee80211 phy2: rt2800usb_tx_sta_fifo_read_completed: Warning - TX
status read failed -71
hub 1-1:1.0: hub_port_status failed (err = -110)
hub 1-1:1.0: hub_port_status failed (err = -110)
hub 1-1:1.0: hub_port_status failed (err = -110)
hub 1-1:1.0: hub_port_status failed (err = -110)
hub 1-1:1.0: hub_port_status failed (err = -110)
hub 1-1:1.0: hub_port_status failed (err = -110)
hub 1-1:1.0: hub_port_status failed (err = -110)
hub 1-1:1.0: hub_port_status failed (err = -110)
hub 1-1:1.0: hub_port_status failed (err = -110)
hub 1-1:1.0: hub_port_status failed (err = -110)
ieee80211 phy2: rt2x00usb_vendor_request: Error - Vendor Request 0x07
failed for offset 0x1700 with error -110
hub 1-1:1.0: hub_port_status failed (err = -110)
hub 1-1:1.0: hub_port_status failed (err = -110)
hub 1-1:1.0: hub_port_status failed (err = -110)
hub 1-1:1.0: hub_port_status failed (err = -110)
hub 1-1:1.0: hub_port_status failed (err = -110)
hub 1-1:1.0: hub_port_status failed (err = -110)
hub 1-1:1.0: hub_port_status failed (err = -110)
hub 1-1:1.0: hub_port_status failed (err = -110)
hub 1-1:1.0: hub_port_status failed (err = -110)
hub 1-1:1.0: hub_port_status failed (err = -110)
ieee80211 phy2: rt2x00usb_vendor_request: Error - Vendor Request 0x07
failed for offset 0x0438 with error -110
hub 1-1:1.0: hub_port_status failed (err = -110)

[1] http://marc.info/?l=linux-usb&m=146222355213935&w=2

Yegor

2016-05-10 06:08:42

by Craig McQueen

[permalink] [raw]
Subject: RE: rt2800 and BeagleBone Black soft lockup when unplugging from USB hub

I previously wrote:
> I previously wrote:
> > I previously wrote:
> > >
> > > I have a D-Link DWA-140 USB Wi-Fi device which is rt2800 based (5392
> > > chipset). I've been testing it on a BeagleBone Black running an
> > > Ubuntu
> > > 16.04 image (4.4.6 kernel), with a USB hub.
> > >
> > > When I unplug the Wi-Fi device from the USB hub, and it's connected
> > > to an access point, and then I unplug it, the OS appears to lock up.
> > > I get messages about a soft lockup on the serial console:
> > >
> > > [ 9736.136702] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s!
> > > [kworker/u2:0:1129] [ 9764.136701] NMI watchdog: BUG: soft lockup -
> > > CPU#0 stuck for 22s! [kworker/u2:0:1129] [ 9792.136701] NMI watchdog:
> > > BUG: soft lockup - CPU#0 stuck for 22s! [kworker/u2:0:1129] [
> > > 9820.136699] NMI
> > > watchdog: BUG: soft lockup - CPU#0 stuck for 22s!
> > > [kworker/u2:0:1129] [ 9848.136696] NMI watchdog: BUG: soft lockup -
> CPU#0 stuck for 22s!
> > > [kworker/u2:0:1129]
> > >
> > > This will repeat indefinitely, until I unplug the hub, which
> > > resolves the soft lockup and then the system seems to function normally.
> > >
> > > I've attached a dmesg log of the soft lockup stack traces. They seem
> > > to indicate a lockup in workqueue rt2x00usb_work_rxdone()
> > > (specifically in
> > > usb_hcd_submit_urb() called from rt2x00usb_kick_rx_entry() called
> > > from rt2x00usb_clear_entry()).
> > >
> > > I originally found this bug on a 3.14.x kernel built with Yocto for
> > > a BeagleBone Black-based product. So it seems this is a bug that has
> > > been around for some time.
> >
> > I should also note that on the 3.14.x Yocto-built kernel on BeagleBone
> > Black, this bug does not occur if the rt2800 device is unplugged
> > directly from the BBB's USB port. It only occurs if unplugged from a hub.
> >
> > I have tested this on an i586 based eBox-3310A mini-PC running Debian
> > 8.4, which has a 3.16.0 kernel, with the same hub and same rt2800
> > device. But I was not able to reproduce this issue.
>
> There is a patch for the AM335x musb driver that seems to fix this:
>
> http://marc.info/?l=linux-usb&m=146173995117456&w=2
>
> So it seems that this issue's root cause is in the AM335x USB interrupt
> handling, and not the Wi-Fi rt2800 driver.

Having applied two AM335x USB patches in the 3.14.49 kernel, that does seem to resolve the soft lock-up on the RX side. The two patches are:

http://marc.info/?l=linux-usb&m=146173995117456&w=2
http://marc.info/?l=linux-usb&m=146222355213935&w=2

But I am finding there is still a lock-up issue when unplugging from a hub, this time on the TX side. It is more likely if there is Wi-Fi traffic in progress when the unplug occurs. I'm attaching a log. Essentially there are a heap of lines (100 or so per second):

[ 1866.693511] ieee80211 phy7: rt2800usb_tx_sta_fifo_read_completed: Warning - TX status read failed -71

Which finally stop shortly after USB disconnect is detected:

[ 1866.985854] usb 1-1.3: USB disconnect, device number 10

However that disconnect message is typically 30-90 seconds after the unplug happened. It seems that the USB disconnect detection is delayed due to the CPU load of the TX.

I also sometimes see a kernel panic. That can occur whether connected to a USB hub or directly to the on-board USB port. See the attached log.

I'm not so familiar with either the Wi-Fi or USB stacks in the Linux kernel, so I would appreciate any advice with debugging and fixing this. (My previous investigations indicate these issues are present in both 3.14.x kernel and 4.4.6 kernel. I'm more familiar with working with the 3.14.x kernel under Yocto, but I could try moving to 4.4.6 kernel for Ubuntu. I'm open to advice on which to investigate on.)

--
Craig McQueen


Attachments:
2016-05-10_rt2800_lockup_hub.tar.gz (70.84 kB)
2016-05-10_rt2800_lockup_hub.tar.gz

2016-05-02 02:23:38

by Craig McQueen

[permalink] [raw]
Subject: RE: rt2800 and BeagleBone Black soft lockup when unplugging from USB hub

I previously wrote:
> I previously wrote:
> >
> > I have a D-Link DWA-140 USB Wi-Fi device which is rt2800 based (5392
> > chipset). I've been testing it on a BeagleBone Black running an Ubuntu
> > 16.04 image (4.4.6 kernel), with a USB hub.
> >
> > When I unplug the Wi-Fi device from the USB hub, and it's connected to
> > an access point, and then I unplug it, the OS appears to lock up. I
> > get messages about a soft lockup on the serial console:
> >
> > [ 9736.136702] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s!
> > [kworker/u2:0:1129] [ 9764.136701] NMI watchdog: BUG: soft lockup -
> > CPU#0 stuck for 22s! [kworker/u2:0:1129] [ 9792.136701] NMI watchdog:
> > BUG: soft lockup - CPU#0 stuck for 22s! [kworker/u2:0:1129] [
> > 9820.136699] NMI
> > watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [kworker/u2:0:1129]
> > [ 9848.136696] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s!
> > [kworker/u2:0:1129]
> >
> > This will repeat indefinitely, until I unplug the hub, which resolves
> > the soft lockup and then the system seems to function normally.
> >
> > I've attached a dmesg log of the soft lockup stack traces. They seem
> > to indicate a lockup in workqueue rt2x00usb_work_rxdone()
> > (specifically in
> > usb_hcd_submit_urb() called from rt2x00usb_kick_rx_entry() called from
> > rt2x00usb_clear_entry()).
> >
> > I originally found this bug on a 3.14.x kernel built with Yocto for a
> > BeagleBone Black-based product. So it seems this is a bug that has
> > been around for some time.
>
> I should also note that on the 3.14.x Yocto-built kernel on BeagleBone Black,
> this bug does not occur if the rt2800 device is unplugged directly from the
> BBB's USB port. It only occurs if unplugged from a hub.
>
> I have tested this on an i586 based eBox-3310A mini-PC running Debian 8.4,
> which has a 3.16.0 kernel, with the same hub and same rt2800 device. But I
> was not able to reproduce this issue.

There is a patch for the AM335x musb driver that seems to fix this:

http://marc.info/?l=linux-usb&m=146173995117456&w=2

So it seems that this issue's root cause is in the AM335x USB interrupt handling, and not the Wi-Fi rt2800 driver.

--
Craig McQueen


2016-05-10 07:17:51

by Craig McQueen

[permalink] [raw]
Subject: RE: rt2800 and BeagleBone Black soft lockup when unplugging from USB hub

WWVnb3IgWWVmcmVtb3Ygd3JvdGU6DQo+IEhpIENyYWlnLA0KPiANCj4gT24gVHVlLCBNYXkgMTAs
IDIwMTYgYXQgODowOCBBTSwgQ3JhaWcgTWNRdWVlbg0KPiA8Y3JhaWcubWNxdWVlbkBpbm5lcnJh
bmdlLmNvbT4gd3JvdGU6DQo+ID4gSSBwcmV2aW91c2x5IHdyb3RlOg0KPiA+PiBJIHByZXZpb3Vz
bHkgd3JvdGU6DQo+ID4+ID4gSSBwcmV2aW91c2x5IHdyb3RlOg0KPiA+PiA+ID4NCj4gPj4gPiA+
IEkgaGF2ZSBhIEQtTGluayBEV0EtMTQwIFVTQiBXaS1GaSBkZXZpY2Ugd2hpY2ggaXMgcnQyODAw
IGJhc2VkDQo+ID4+ID4gPiAoNTM5MiBjaGlwc2V0KS4gSSd2ZSBiZWVuIHRlc3RpbmcgaXQgb24g
YSBCZWFnbGVCb25lIEJsYWNrDQo+ID4+ID4gPiBydW5uaW5nIGFuIFVidW50dQ0KPiA+PiA+ID4g
MTYuMDQgaW1hZ2UgKDQuNC42IGtlcm5lbCksIHdpdGggYSBVU0IgaHViLg0KPiA+PiA+ID4NCj4g
Pj4gPiA+IFdoZW4gSSB1bnBsdWcgdGhlIFdpLUZpIGRldmljZSBmcm9tIHRoZSBVU0IgaHViLCBh
bmQgaXQncw0KPiA+PiA+ID4gY29ubmVjdGVkIHRvIGFuIGFjY2VzcyBwb2ludCwgYW5kIHRoZW4g
SSB1bnBsdWcgaXQsIHRoZSBPUyBhcHBlYXJzIHRvDQo+IGxvY2sgdXAuDQo+ID4+ID4gPiBJIGdl
dCBtZXNzYWdlcyBhYm91dCBhIHNvZnQgbG9ja3VwIG9uIHRoZSBzZXJpYWwgY29uc29sZToNCj4g
Pj4gPiA+DQo+ID4+ID4gPiBbIDk3MzYuMTM2NzAyXSBOTUkgd2F0Y2hkb2c6IEJVRzogc29mdCBs
b2NrdXAgLSBDUFUjMCBzdHVjayBmb3IgMjJzIQ0KPiA+PiA+ID4gW2t3b3JrZXIvdTI6MDoxMTI5
XSBbIDk3NjQuMTM2NzAxXSBOTUkgd2F0Y2hkb2c6IEJVRzogc29mdCBsb2NrdXANCj4gPj4gPiA+
IC0NCj4gPj4gPiA+IENQVSMwIHN0dWNrIGZvciAyMnMhIFtrd29ya2VyL3UyOjA6MTEyOV0gWyA5
NzkyLjEzNjcwMV0gTk1JDQo+IHdhdGNoZG9nOg0KPiA+PiA+ID4gQlVHOiBzb2Z0IGxvY2t1cCAt
IENQVSMwIHN0dWNrIGZvciAyMnMhIFtrd29ya2VyL3UyOjA6MTEyOV0gWw0KPiA+PiA+ID4gOTgy
MC4xMzY2OTldIE5NSQ0KPiA+PiA+ID4gd2F0Y2hkb2c6IEJVRzogc29mdCBsb2NrdXAgLSBDUFUj
MCBzdHVjayBmb3IgMjJzIQ0KPiA+PiA+ID4gW2t3b3JrZXIvdTI6MDoxMTI5XSBbIDk4NDguMTM2
Njk2XSBOTUkgd2F0Y2hkb2c6IEJVRzogc29mdCBsb2NrdXANCj4gPj4gPiA+IC0NCj4gPj4gQ1BV
IzAgc3R1Y2sgZm9yIDIycyENCj4gPj4gPiA+IFtrd29ya2VyL3UyOjA6MTEyOV0NCj4gPj4gPiA+
DQo+ID4+ID4gPiBUaGlzIHdpbGwgcmVwZWF0IGluZGVmaW5pdGVseSwgdW50aWwgSSB1bnBsdWcg
dGhlIGh1Yiwgd2hpY2gNCj4gPj4gPiA+IHJlc29sdmVzIHRoZSBzb2Z0IGxvY2t1cCBhbmQgdGhl
biB0aGUgc3lzdGVtIHNlZW1zIHRvIGZ1bmN0aW9uDQo+IG5vcm1hbGx5Lg0KPiA+PiA+ID4NCj4g
Pj4gPiA+IEkndmUgYXR0YWNoZWQgYSBkbWVzZyBsb2cgb2YgdGhlIHNvZnQgbG9ja3VwIHN0YWNr
IHRyYWNlcy4gVGhleQ0KPiA+PiA+ID4gc2VlbSB0byBpbmRpY2F0ZSBhIGxvY2t1cCBpbiB3b3Jr
cXVldWUgcnQyeDAwdXNiX3dvcmtfcnhkb25lKCkNCj4gPj4gPiA+IChzcGVjaWZpY2FsbHkgaW4N
Cj4gPj4gPiA+IHVzYl9oY2Rfc3VibWl0X3VyYigpIGNhbGxlZCBmcm9tIHJ0MngwMHVzYl9raWNr
X3J4X2VudHJ5KCkgY2FsbGVkDQo+ID4+ID4gPiBmcm9tIHJ0MngwMHVzYl9jbGVhcl9lbnRyeSgp
KS4NCj4gPj4gPiA+DQo+ID4+ID4gPiBJIG9yaWdpbmFsbHkgZm91bmQgdGhpcyBidWcgb24gYSAz
LjE0Lngga2VybmVsIGJ1aWx0IHdpdGggWW9jdG8NCj4gPj4gPiA+IGZvciBhIEJlYWdsZUJvbmUg
QmxhY2stYmFzZWQgcHJvZHVjdC4gU28gaXQgc2VlbXMgdGhpcyBpcyBhIGJ1Zw0KPiA+PiA+ID4g
dGhhdCBoYXMgYmVlbiBhcm91bmQgZm9yIHNvbWUgdGltZS4NCj4gPj4gPg0KPiA+PiA+IEkgc2hv
dWxkIGFsc28gbm90ZSB0aGF0IG9uIHRoZSAzLjE0LnggWW9jdG8tYnVpbHQga2VybmVsIG9uDQo+
ID4+ID4gQmVhZ2xlQm9uZSBCbGFjaywgdGhpcyBidWcgZG9lcyBub3Qgb2NjdXIgaWYgdGhlIHJ0
MjgwMCBkZXZpY2UgaXMNCj4gPj4gPiB1bnBsdWdnZWQgZGlyZWN0bHkgZnJvbSB0aGUgQkJCJ3Mg
VVNCIHBvcnQuIEl0IG9ubHkgb2NjdXJzIGlmIHVucGx1Z2dlZA0KPiBmcm9tIGEgaHViLg0KPiA+
PiA+DQo+ID4+ID4gSSBoYXZlIHRlc3RlZCB0aGlzIG9uIGFuIGk1ODYgYmFzZWQgZUJveC0zMzEw
QSBtaW5pLVBDIHJ1bm5pbmcNCj4gPj4gPiBEZWJpYW4gOC40LCB3aGljaCBoYXMgYSAzLjE2LjAg
a2VybmVsLCB3aXRoIHRoZSBzYW1lIGh1YiBhbmQgc2FtZQ0KPiA+PiA+IHJ0MjgwMCBkZXZpY2Uu
IEJ1dCBJIHdhcyBub3QgYWJsZSB0byByZXByb2R1Y2UgdGhpcyBpc3N1ZS4NCj4gPj4NCj4gPj4g
VGhlcmUgaXMgYSBwYXRjaCBmb3IgdGhlIEFNMzM1eCBtdXNiIGRyaXZlciB0aGF0IHNlZW1zIHRv
IGZpeCB0aGlzOg0KPiA+Pg0KPiA+PiBodHRwOi8vbWFyYy5pbmZvLz9sPWxpbnV4LXVzYiZtPTE0
NjE3Mzk5NTExNzQ1NiZ3PTINCj4gPj4NCj4gPj4gU28gaXQgc2VlbXMgdGhhdCB0aGlzIGlzc3Vl
J3Mgcm9vdCBjYXVzZSBpcyBpbiB0aGUgQU0zMzV4IFVTQg0KPiA+PiBpbnRlcnJ1cHQgaGFuZGxp
bmcsIGFuZCBub3QgdGhlIFdpLUZpIHJ0MjgwMCBkcml2ZXIuDQo+ID4NCj4gPiBIYXZpbmcgYXBw
bGllZCB0d28gQU0zMzV4IFVTQiBwYXRjaGVzIGluIHRoZSAzLjE0LjQ5IGtlcm5lbCwgdGhhdCBk
b2VzDQo+IHNlZW0gdG8gcmVzb2x2ZSB0aGUgc29mdCBsb2NrLXVwIG9uIHRoZSBSWCBzaWRlLiBU
aGUgdHdvIHBhdGNoZXMgYXJlOg0KPiA+DQo+ID4gaHR0cDovL21hcmMuaW5mby8/bD1saW51eC11
c2ImbT0xNDYxNzM5OTUxMTc0NTYmdz0yDQo+ID4gaHR0cDovL21hcmMuaW5mby8/bD1saW51eC11
c2ImbT0xNDYyMjIzNTUyMTM5MzUmdz0yDQo+ID4NCj4gPiBCdXQgSSBhbSBmaW5kaW5nIHRoZXJl
IGlzIHN0aWxsIGEgbG9jay11cCBpc3N1ZSB3aGVuIHVucGx1Z2dpbmcgZnJvbSBhIGh1YiwNCj4g
dGhpcyB0aW1lIG9uIHRoZSBUWCBzaWRlLiBJdCBpcyBtb3JlIGxpa2VseSBpZiB0aGVyZSBpcyBX
aS1GaSB0cmFmZmljIGluIHByb2dyZXNzDQo+IHdoZW4gdGhlIHVucGx1ZyBvY2N1cnMuIEknbSBh
dHRhY2hpbmcgYSBsb2cuIEVzc2VudGlhbGx5IHRoZXJlIGFyZSBhIGhlYXAgb2YNCj4gbGluZXMg
KDEwMCBvciBzbyBwZXIgc2Vjb25kKToNCj4gPg0KPiA+IFsgMTg2Ni42OTM1MTFdIGllZWU4MDIx
MSBwaHk3OiBydDI4MDB1c2JfdHhfc3RhX2ZpZm9fcmVhZF9jb21wbGV0ZWQ6DQo+ID4gV2Fybmlu
ZyAtIFRYIHN0YXR1cyByZWFkIGZhaWxlZCAtNzENCj4gPg0KPiA+IFdoaWNoIGZpbmFsbHkgc3Rv
cCBzaG9ydGx5IGFmdGVyIFVTQiBkaXNjb25uZWN0IGlzIGRldGVjdGVkOg0KPiA+DQo+ID4gWyAx
ODY2Ljk4NTg1NF0gdXNiIDEtMS4zOiBVU0IgZGlzY29ubmVjdCwgZGV2aWNlIG51bWJlciAxMA0K
PiA+DQo+ID4gSG93ZXZlciB0aGF0IGRpc2Nvbm5lY3QgbWVzc2FnZSBpcyB0eXBpY2FsbHkgMzAt
OTAgc2Vjb25kcyBhZnRlciB0aGUNCj4gdW5wbHVnIGhhcHBlbmVkLiBJdCBzZWVtcyB0aGF0IHRo
ZSBVU0IgZGlzY29ubmVjdCBkZXRlY3Rpb24gaXMgZGVsYXllZCBkdWUNCj4gdG8gdGhlIENQVSBs
b2FkIG9mIHRoZSBUWC4NCj4gPg0KPiA+IEkgYWxzbyBzb21ldGltZXMgc2VlIGEga2VybmVsIHBh
bmljLiBUaGF0IGNhbiBvY2N1ciB3aGV0aGVyIGNvbm5lY3RlZCB0byBhDQo+IFVTQiBodWIgb3Ig
ZGlyZWN0bHkgdG8gdGhlIG9uLWJvYXJkIFVTQiBwb3J0LiBTZWUgdGhlIGF0dGFjaGVkIGxvZy4N
Cj4gPg0KPiA+IEknbSBub3Qgc28gZmFtaWxpYXIgd2l0aCBlaXRoZXIgdGhlIFdpLUZpIG9yIFVT
QiBzdGFja3MgaW4gdGhlIExpbnV4DQo+ID4ga2VybmVsLCBzbyBJIHdvdWxkIGFwcHJlY2lhdGUg
YW55IGFkdmljZSB3aXRoIGRlYnVnZ2luZyBhbmQgZml4aW5nDQo+ID4gdGhpcy4gKE15IHByZXZp
b3VzIGludmVzdGlnYXRpb25zIGluZGljYXRlIHRoZXNlIGlzc3VlcyBhcmUgcHJlc2VudCBpbg0K
PiA+IGJvdGggMy4xNC54IGtlcm5lbCBhbmQgNC40LjYga2VybmVsLiBJJ20gbW9yZSBmYW1pbGlh
ciB3aXRoIHdvcmtpbmcNCj4gPiB3aXRoIHRoZSAzLjE0Lngga2VybmVsIHVuZGVyIFlvY3RvLCBi
dXQgSSBjb3VsZCB0cnkgbW92aW5nIHRvIDQuNC42DQo+ID4ga2VybmVsIGZvciBVYnVudHUuIEkn
bSBvcGVuIHRvIGFkdmljZSBvbiB3aGljaCB0byBpbnZlc3RpZ2F0ZSBvbi4pDQo+IA0KPiBUYWtl
IGEgbG9vayBhdCB0aGlzIHBhdGNoOiBodHRwOi8vbWFyYy5pbmZvLz9sPWxpbnV4LQ0KPiB1c2Im
bT0xNDYyMjIzNTUyMTM5MzUmdz0yDQo+IA0KPiBJZiBpdCBmaXhlcyB5b3VyIGlzc3VlIHBsZWFz
ZSBwcm92aWRlIHlvdXIgInRlc3RlZC1ieSIgdGFnIGhlcmUuDQoNCkhpIFllZ29yLA0KDQpJIGFt
IHVzaW5nIHRoYXQgcGF0Y2gsIGFuZCBJIHJlZmVycmVkIHRvIGl0IGluIG15IGxhc3QgbWVzc2Fn
ZS4gQnV0IGl0IGRvZXNuJ3QgZml4IHRoaXMgaXNzdWUuDQoNClRoYW5rcywNCkNyYWlnIE1jUXVl
ZW4NCg0K

2016-05-10 09:40:18

by Yegor Yefremov

[permalink] [raw]
Subject: Re: rt2800 and BeagleBone Black soft lockup when unplugging from USB hub

On Tue, May 10, 2016 at 9:43 AM, Yegor Yefremov
<[email protected]> wrote:
> On Tue, May 10, 2016 at 9:17 AM, Craig McQueen
> <[email protected]> wrote:
>> Yegor Yefremov wrote:
>>> Hi Craig,
>>>
>>> On Tue, May 10, 2016 at 8:08 AM, Craig McQueen
>>> <[email protected]> wrote:
>>> > I previously wrote:
>>> >> I previously wrote:
>>> >> > I previously wrote:
>>> >> > >
>>> >> > > I have a D-Link DWA-140 USB Wi-Fi device which is rt2800 based
>>> >> > > (5392 chipset). I've been testing it on a BeagleBone Black
>>> >> > > running an Ubuntu
>>> >> > > 16.04 image (4.4.6 kernel), with a USB hub.
>>> >> > >
>>> >> > > When I unplug the Wi-Fi device from the USB hub, and it's
>>> >> > > connected to an access point, and then I unplug it, the OS appears to
>>> lock up.
>>> >> > > I get messages about a soft lockup on the serial console:
>>> >> > >
>>> >> > > [ 9736.136702] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s!
>>> >> > > [kworker/u2:0:1129] [ 9764.136701] NMI watchdog: BUG: soft lockup
>>> >> > > -
>>> >> > > CPU#0 stuck for 22s! [kworker/u2:0:1129] [ 9792.136701] NMI
>>> watchdog:
>>> >> > > BUG: soft lockup - CPU#0 stuck for 22s! [kworker/u2:0:1129] [
>>> >> > > 9820.136699] NMI
>>> >> > > watchdog: BUG: soft lockup - CPU#0 stuck for 22s!
>>> >> > > [kworker/u2:0:1129] [ 9848.136696] NMI watchdog: BUG: soft lockup
>>> >> > > -
>>> >> CPU#0 stuck for 22s!
>>> >> > > [kworker/u2:0:1129]
>>> >> > >
>>> >> > > This will repeat indefinitely, until I unplug the hub, which
>>> >> > > resolves the soft lockup and then the system seems to function
>>> normally.
>>> >> > >
>>> >> > > I've attached a dmesg log of the soft lockup stack traces. They
>>> >> > > seem to indicate a lockup in workqueue rt2x00usb_work_rxdone()
>>> >> > > (specifically in
>>> >> > > usb_hcd_submit_urb() called from rt2x00usb_kick_rx_entry() called
>>> >> > > from rt2x00usb_clear_entry()).
>>> >> > >
>>> >> > > I originally found this bug on a 3.14.x kernel built with Yocto
>>> >> > > for a BeagleBone Black-based product. So it seems this is a bug
>>> >> > > that has been around for some time.
>>> >> >
>>> >> > I should also note that on the 3.14.x Yocto-built kernel on
>>> >> > BeagleBone Black, this bug does not occur if the rt2800 device is
>>> >> > unplugged directly from the BBB's USB port. It only occurs if unplugged
>>> from a hub.
>>> >> >
>>> >> > I have tested this on an i586 based eBox-3310A mini-PC running
>>> >> > Debian 8.4, which has a 3.16.0 kernel, with the same hub and same
>>> >> > rt2800 device. But I was not able to reproduce this issue.
>>> >>
>>> >> There is a patch for the AM335x musb driver that seems to fix this:
>>> >>
>>> >> http://marc.info/?l=linux-usb&m=146173995117456&w=2
>>> >>
>>> >> So it seems that this issue's root cause is in the AM335x USB
>>> >> interrupt handling, and not the Wi-Fi rt2800 driver.
>>> >
>>> > Having applied two AM335x USB patches in the 3.14.49 kernel, that does
>>> seem to resolve the soft lock-up on the RX side. The two patches are:
>>> >
>>> > http://marc.info/?l=linux-usb&m=146173995117456&w=2
>>> > http://marc.info/?l=linux-usb&m=146222355213935&w=2
>>> >
>>> > But I am finding there is still a lock-up issue when unplugging from a hub,
>>> this time on the TX side. It is more likely if there is Wi-Fi traffic in progress
>>> when the unplug occurs. I'm attaching a log. Essentially there are a heap of
>>> lines (100 or so per second):
>>> >
>>> > [ 1866.693511] ieee80211 phy7: rt2800usb_tx_sta_fifo_read_completed:
>>> > Warning - TX status read failed -71
>>> >
>>> > Which finally stop shortly after USB disconnect is detected:
>>> >
>>> > [ 1866.985854] usb 1-1.3: USB disconnect, device number 10
>>> >
>>> > However that disconnect message is typically 30-90 seconds after the
>>> unplug happened. It seems that the USB disconnect detection is delayed due
>>> to the CPU load of the TX.
>>> >
>>> > I also sometimes see a kernel panic. That can occur whether connected to a
>>> USB hub or directly to the on-board USB port. See the attached log.
>>> >
>>> > I'm not so familiar with either the Wi-Fi or USB stacks in the Linux
>>> > kernel, so I would appreciate any advice with debugging and fixing
>>> > this. (My previous investigations indicate these issues are present in
>>> > both 3.14.x kernel and 4.4.6 kernel. I'm more familiar with working
>>> > with the 3.14.x kernel under Yocto, but I could try moving to 4.4.6
>>> > kernel for Ubuntu. I'm open to advice on which to investigate on.)
>>>
>>> Take a look at this patch: http://marc.info/?l=linux-
>>> usb&m=146222355213935&w=2
>>>
>>> If it fixes your issue please provide your "tested-by" tag here.
>>
>> Hi Yegor,
>>
>> I am using that patch, and I referred to it in my last message. But it doesn't fix this issue.
>
> Have missed that.
>
> I've made following test with am335x based device and a Ralink
> Technology, Corp. RT5370 Wireless Adapter attached vie USB hub:
>
> root@baltos:~# lsusb -t
> /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=musb-hdrc/1p, 480M
> /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=musb-hdrc/1p, 480M
> |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
> |__ Port 1: Dev 4, If 0, Class=Vendor Specific Class,
> Driver=rt2800usb, 480M
>
> during nuttcp test session I unplug WLAN dongle and get following
> kernel messages (kernel 3.18.32 with [1])
>
> ieee80211 phy2: rt2800usb_tx_sta_fifo_read_completed: Warning - TX
> status read failed -71
> hub 1-1:1.0: hub_port_status failed (err = -110)
> hub 1-1:1.0: hub_port_status failed (err = -110)
> hub 1-1:1.0: hub_port_status failed (err = -110)
> hub 1-1:1.0: hub_port_status failed (err = -110)
> hub 1-1:1.0: hub_port_status failed (err = -110)
> hub 1-1:1.0: hub_port_status failed (err = -110)
> hub 1-1:1.0: hub_port_status failed (err = -110)
> hub 1-1:1.0: hub_port_status failed (err = -110)
> hub 1-1:1.0: hub_port_status failed (err = -110)
> hub 1-1:1.0: hub_port_status failed (err = -110)
> ieee80211 phy2: rt2x00usb_vendor_request: Error - Vendor Request 0x07
> failed for offset 0x1700 with error -110
> hub 1-1:1.0: hub_port_status failed (err = -110)
> hub 1-1:1.0: hub_port_status failed (err = -110)
> hub 1-1:1.0: hub_port_status failed (err = -110)
> hub 1-1:1.0: hub_port_status failed (err = -110)
> hub 1-1:1.0: hub_port_status failed (err = -110)
> hub 1-1:1.0: hub_port_status failed (err = -110)
> hub 1-1:1.0: hub_port_status failed (err = -110)
> hub 1-1:1.0: hub_port_status failed (err = -110)
> hub 1-1:1.0: hub_port_status failed (err = -110)
> hub 1-1:1.0: hub_port_status failed (err = -110)
> ieee80211 phy2: rt2x00usb_vendor_request: Error - Vendor Request 0x07
> failed for offset 0x0438 with error -110
> hub 1-1:1.0: hub_port_status failed (err = -110)
>
> [1] http://marc.info/?l=linux-usb&m=146222355213935&w=2

With 4.6.0-rc7 I get

[ 479.869736] ieee80211 phy1: rt2800usb_tx_sta_fifo_read_completed:
Warning - TX status read failed -71
[ 480.106022] ieee80211 phy1: rt2x00usb_vendor_request: Error -
Vendor Request 0x07 failed for offset 0x1700 with error -110
[ 480.216002] ieee80211 phy1: rt2x00usb_vendor_request: Error -
Vendor Request 0x07 failed for offset 0x7010 with error -110
[ 480.325996] ieee80211 phy1: rt2x00usb_vendor_request: Error -
Vendor Request 0x06 failed for offset 0x7010 with error -110
[ 480.436160] ieee80211 phy1: rt2x00usb_vendor_request: Error -
Vendor Request 0x06 failed for offset 0x0404 with error -110
[ 480.546178] ieee80211 phy1: rt2x00usb_vendor_request: Error -
Vendor Request 0x07 failed for offset 0x0438 with error -110
[ 96.726198] hub 1-1:1.0: hub_ext_port_status failed (err = -110)

2016-05-11 05:55:46

by Craig McQueen

[permalink] [raw]
Subject: RE: rt2800 and BeagleBone Black soft lockup when unplugging from USB hub

WWVnb3IgWWVmcmVtb3Ygd3JvdGU6DQo+IE9uIFR1ZSwgTWF5IDEwLCAyMDE2IGF0IDk6NDMgQU0s
IFllZ29yIFllZnJlbW92DQo+IDx5ZWdvcnNsaXN0c0Bnb29nbGVtYWlsLmNvbT4gd3JvdGU6DQo+
ID4gT24gVHVlLCBNYXkgMTAsIDIwMTYgYXQgOToxNyBBTSwgQ3JhaWcgTWNRdWVlbg0KPiA+IDxj
cmFpZy5tY3F1ZWVuQGlubmVycmFuZ2UuY29tPiB3cm90ZToNCj4gPj4gWWVnb3IgWWVmcmVtb3Yg
d3JvdGU6DQo+ID4+PiBIaSBDcmFpZywNCj4gPj4+DQo+ID4+PiBPbiBUdWUsIE1heSAxMCwgMjAx
NiBhdCA4OjA4IEFNLCBDcmFpZyBNY1F1ZWVuDQo+ID4+PiA8Y3JhaWcubWNxdWVlbkBpbm5lcnJh
bmdlLmNvbT4gd3JvdGU6DQo+ID4+PiA+IEkgcHJldmlvdXNseSB3cm90ZToNCj4gPj4+ID4+IEkg
cHJldmlvdXNseSB3cm90ZToNCj4gPj4+ID4+ID4gSSBwcmV2aW91c2x5IHdyb3RlOg0KPiA+Pj4g
Pj4gPiA+DQo+ID4+PiA+PiA+ID4gSSBoYXZlIGEgRC1MaW5rIERXQS0xNDAgVVNCIFdpLUZpIGRl
dmljZSB3aGljaCBpcyBydDI4MDAgYmFzZWQNCj4gPj4+ID4+ID4gPiAoNTM5MiBjaGlwc2V0KS4g
SSd2ZSBiZWVuIHRlc3RpbmcgaXQgb24gYSBCZWFnbGVCb25lIEJsYWNrDQo+ID4+PiA+PiA+ID4g
cnVubmluZyBhbiBVYnVudHUNCj4gPj4+ID4+ID4gPiAxNi4wNCBpbWFnZSAoNC40LjYga2VybmVs
KSwgd2l0aCBhIFVTQiBodWIuDQo+ID4+PiA+PiA+ID4NCj4gPj4+ID4+ID4gPiBXaGVuIEkgdW5w
bHVnIHRoZSBXaS1GaSBkZXZpY2UgZnJvbSB0aGUgVVNCIGh1YiwgYW5kIGl0J3MNCj4gPj4+ID4+
ID4gPiBjb25uZWN0ZWQgdG8gYW4gYWNjZXNzIHBvaW50LCBhbmQgdGhlbiBJIHVucGx1ZyBpdCwg
dGhlIE9TIGFwcGVhcnMNCj4gdG8NCj4gPj4+IGxvY2sgdXAuDQo+ID4+PiA+PiA+ID4gSSBnZXQg
bWVzc2FnZXMgYWJvdXQgYSBzb2Z0IGxvY2t1cCBvbiB0aGUgc2VyaWFsIGNvbnNvbGU6DQo+ID4+
PiA+PiA+ID4NCj4gPj4+ID4+ID4gPiBbIDk3MzYuMTM2NzAyXSBOTUkgd2F0Y2hkb2c6IEJVRzog
c29mdCBsb2NrdXAgLSBDUFUjMCBzdHVjayBmb3INCj4gMjJzIQ0KPiA+Pj4gPj4gPiA+IFtrd29y
a2VyL3UyOjA6MTEyOV0gWyA5NzY0LjEzNjcwMV0gTk1JIHdhdGNoZG9nOiBCVUc6IHNvZnQNCj4g
bG9ja3VwDQo+ID4+PiA+PiA+ID4gLQ0KPiA+Pj4gPj4gPiA+IENQVSMwIHN0dWNrIGZvciAyMnMh
IFtrd29ya2VyL3UyOjA6MTEyOV0gWyA5NzkyLjEzNjcwMV0gTk1JDQo+ID4+PiB3YXRjaGRvZzoN
Cj4gPj4+ID4+ID4gPiBCVUc6IHNvZnQgbG9ja3VwIC0gQ1BVIzAgc3R1Y2sgZm9yIDIycyEgW2t3
b3JrZXIvdTI6MDoxMTI5XSBbDQo+ID4+PiA+PiA+ID4gOTgyMC4xMzY2OTldIE5NSQ0KPiA+Pj4g
Pj4gPiA+IHdhdGNoZG9nOiBCVUc6IHNvZnQgbG9ja3VwIC0gQ1BVIzAgc3R1Y2sgZm9yIDIycyEN
Cj4gPj4+ID4+ID4gPiBba3dvcmtlci91MjowOjExMjldIFsgOTg0OC4xMzY2OTZdIE5NSSB3YXRj
aGRvZzogQlVHOiBzb2Z0DQo+IGxvY2t1cA0KPiA+Pj4gPj4gPiA+IC0NCj4gPj4+ID4+IENQVSMw
IHN0dWNrIGZvciAyMnMhDQo+ID4+PiA+PiA+ID4gW2t3b3JrZXIvdTI6MDoxMTI5XQ0KPiA+Pj4g
Pj4gPiA+DQo+ID4+PiA+PiA+ID4gVGhpcyB3aWxsIHJlcGVhdCBpbmRlZmluaXRlbHksIHVudGls
IEkgdW5wbHVnIHRoZSBodWIsIHdoaWNoDQo+ID4+PiA+PiA+ID4gcmVzb2x2ZXMgdGhlIHNvZnQg
bG9ja3VwIGFuZCB0aGVuIHRoZSBzeXN0ZW0gc2VlbXMgdG8gZnVuY3Rpb24NCj4gPj4+IG5vcm1h
bGx5Lg0KPiA+Pj4gPj4gPiA+DQo+ID4+PiA+PiA+ID4gSSd2ZSBhdHRhY2hlZCBhIGRtZXNnIGxv
ZyBvZiB0aGUgc29mdCBsb2NrdXAgc3RhY2sgdHJhY2VzLiBUaGV5DQo+ID4+PiA+PiA+ID4gc2Vl
bSB0byBpbmRpY2F0ZSBhIGxvY2t1cCBpbiB3b3JrcXVldWUNCj4gcnQyeDAwdXNiX3dvcmtfcnhk
b25lKCkNCj4gPj4+ID4+ID4gPiAoc3BlY2lmaWNhbGx5IGluDQo+ID4+PiA+PiA+ID4gdXNiX2hj
ZF9zdWJtaXRfdXJiKCkgY2FsbGVkIGZyb20gcnQyeDAwdXNiX2tpY2tfcnhfZW50cnkoKQ0KPiBj
YWxsZWQNCj4gPj4+ID4+ID4gPiBmcm9tIHJ0MngwMHVzYl9jbGVhcl9lbnRyeSgpKS4NCj4gPj4+
ID4+ID4gPg0KPiA+Pj4gPj4gPiA+IEkgb3JpZ2luYWxseSBmb3VuZCB0aGlzIGJ1ZyBvbiBhIDMu
MTQueCBrZXJuZWwgYnVpbHQgd2l0aCBZb2N0bw0KPiA+Pj4gPj4gPiA+IGZvciBhIEJlYWdsZUJv
bmUgQmxhY2stYmFzZWQgcHJvZHVjdC4gU28gaXQgc2VlbXMgdGhpcyBpcyBhIGJ1Zw0KPiA+Pj4g
Pj4gPiA+IHRoYXQgaGFzIGJlZW4gYXJvdW5kIGZvciBzb21lIHRpbWUuDQo+ID4+PiA+PiA+DQo+
ID4+PiA+PiA+IEkgc2hvdWxkIGFsc28gbm90ZSB0aGF0IG9uIHRoZSAzLjE0LnggWW9jdG8tYnVp
bHQga2VybmVsIG9uDQo+ID4+PiA+PiA+IEJlYWdsZUJvbmUgQmxhY2ssIHRoaXMgYnVnIGRvZXMg
bm90IG9jY3VyIGlmIHRoZSBydDI4MDAgZGV2aWNlIGlzDQo+ID4+PiA+PiA+IHVucGx1Z2dlZCBk
aXJlY3RseSBmcm9tIHRoZSBCQkIncyBVU0IgcG9ydC4gSXQgb25seSBvY2N1cnMgaWYNCj4gdW5w
bHVnZ2VkDQo+ID4+PiBmcm9tIGEgaHViLg0KPiA+Pj4gPj4gPg0KPiA+Pj4gPj4gPiBJIGhhdmUg
dGVzdGVkIHRoaXMgb24gYW4gaTU4NiBiYXNlZCBlQm94LTMzMTBBIG1pbmktUEMgcnVubmluZw0K
PiA+Pj4gPj4gPiBEZWJpYW4gOC40LCB3aGljaCBoYXMgYSAzLjE2LjAga2VybmVsLCB3aXRoIHRo
ZSBzYW1lIGh1YiBhbmQgc2FtZQ0KPiA+Pj4gPj4gPiBydDI4MDAgZGV2aWNlLiBCdXQgSSB3YXMg
bm90IGFibGUgdG8gcmVwcm9kdWNlIHRoaXMgaXNzdWUuDQo+ID4+PiA+Pg0KPiA+Pj4gPj4gVGhl
cmUgaXMgYSBwYXRjaCBmb3IgdGhlIEFNMzM1eCBtdXNiIGRyaXZlciB0aGF0IHNlZW1zIHRvIGZp
eCB0aGlzOg0KPiA+Pj4gPj4NCj4gPj4+ID4+IGh0dHA6Ly9tYXJjLmluZm8vP2w9bGludXgtdXNi
Jm09MTQ2MTczOTk1MTE3NDU2Jnc9Mg0KPiA+Pj4gPj4NCj4gPj4+ID4+IFNvIGl0IHNlZW1zIHRo
YXQgdGhpcyBpc3N1ZSdzIHJvb3QgY2F1c2UgaXMgaW4gdGhlIEFNMzM1eCBVU0INCj4gPj4+ID4+
IGludGVycnVwdCBoYW5kbGluZywgYW5kIG5vdCB0aGUgV2ktRmkgcnQyODAwIGRyaXZlci4NCj4g
Pj4+ID4NCj4gPj4+ID4gSGF2aW5nIGFwcGxpZWQgdHdvIEFNMzM1eCBVU0IgcGF0Y2hlcyBpbiB0
aGUgMy4xNC40OSBrZXJuZWwsIHRoYXQNCj4gZG9lcw0KPiA+Pj4gc2VlbSB0byByZXNvbHZlIHRo
ZSBzb2Z0IGxvY2stdXAgb24gdGhlIFJYIHNpZGUuIFRoZSB0d28gcGF0Y2hlcyBhcmU6DQo+ID4+
PiA+DQo+ID4+PiA+IGh0dHA6Ly9tYXJjLmluZm8vP2w9bGludXgtdXNiJm09MTQ2MTczOTk1MTE3
NDU2Jnc9Mg0KPiA+Pj4gPiBodHRwOi8vbWFyYy5pbmZvLz9sPWxpbnV4LXVzYiZtPTE0NjIyMjM1
NTIxMzkzNSZ3PTINCj4gPj4+ID4NCj4gPj4+ID4gQnV0IEkgYW0gZmluZGluZyB0aGVyZSBpcyBz
dGlsbCBhIGxvY2stdXAgaXNzdWUgd2hlbiB1bnBsdWdnaW5nIGZyb20gYQ0KPiBodWIsDQo+ID4+
PiB0aGlzIHRpbWUgb24gdGhlIFRYIHNpZGUuIEl0IGlzIG1vcmUgbGlrZWx5IGlmIHRoZXJlIGlz
IFdpLUZpIHRyYWZmaWMgaW4gcHJvZ3Jlc3MNCj4gPj4+IHdoZW4gdGhlIHVucGx1ZyBvY2N1cnMu
IEknbSBhdHRhY2hpbmcgYSBsb2cuIEVzc2VudGlhbGx5IHRoZXJlIGFyZSBhIGhlYXANCj4gb2YN
Cj4gPj4+IGxpbmVzICgxMDAgb3Igc28gcGVyIHNlY29uZCk6DQo+ID4+PiA+DQo+ID4+PiA+IFsg
MTg2Ni42OTM1MTFdIGllZWU4MDIxMSBwaHk3Og0KPiBydDI4MDB1c2JfdHhfc3RhX2ZpZm9fcmVh
ZF9jb21wbGV0ZWQ6DQo+ID4+PiA+IFdhcm5pbmcgLSBUWCBzdGF0dXMgcmVhZCBmYWlsZWQgLTcx
DQo+ID4+PiA+DQo+ID4+PiA+IFdoaWNoIGZpbmFsbHkgc3RvcCBzaG9ydGx5IGFmdGVyIFVTQiBk
aXNjb25uZWN0IGlzIGRldGVjdGVkOg0KPiA+Pj4gPg0KPiA+Pj4gPiBbIDE4NjYuOTg1ODU0XSB1
c2IgMS0xLjM6IFVTQiBkaXNjb25uZWN0LCBkZXZpY2UgbnVtYmVyIDEwDQo+ID4+PiA+DQo+ID4+
PiA+IEhvd2V2ZXIgdGhhdCBkaXNjb25uZWN0IG1lc3NhZ2UgaXMgdHlwaWNhbGx5IDMwLTkwIHNl
Y29uZHMgYWZ0ZXIgdGhlDQo+ID4+PiB1bnBsdWcgaGFwcGVuZWQuIEl0IHNlZW1zIHRoYXQgdGhl
IFVTQiBkaXNjb25uZWN0IGRldGVjdGlvbiBpcyBkZWxheWVkDQo+IGR1ZQ0KPiA+Pj4gdG8gdGhl
IENQVSBsb2FkIG9mIHRoZSBUWC4NCj4gPj4+ID4NCj4gPj4+ID4gSSBhbHNvIHNvbWV0aW1lcyBz
ZWUgYSBrZXJuZWwgcGFuaWMuIFRoYXQgY2FuIG9jY3VyIHdoZXRoZXIgY29ubmVjdGVkDQo+IHRv
IGENCj4gPj4+IFVTQiBodWIgb3IgZGlyZWN0bHkgdG8gdGhlIG9uLWJvYXJkIFVTQiBwb3J0LiBT
ZWUgdGhlIGF0dGFjaGVkIGxvZy4NCj4gPj4+ID4NCj4gPj4+ID4gSSdtIG5vdCBzbyBmYW1pbGlh
ciB3aXRoIGVpdGhlciB0aGUgV2ktRmkgb3IgVVNCIHN0YWNrcyBpbiB0aGUgTGludXgNCj4gPj4+
ID4ga2VybmVsLCBzbyBJIHdvdWxkIGFwcHJlY2lhdGUgYW55IGFkdmljZSB3aXRoIGRlYnVnZ2lu
ZyBhbmQgZml4aW5nDQo+ID4+PiA+IHRoaXMuIChNeSBwcmV2aW91cyBpbnZlc3RpZ2F0aW9ucyBp
bmRpY2F0ZSB0aGVzZSBpc3N1ZXMgYXJlIHByZXNlbnQgaW4NCj4gPj4+ID4gYm90aCAzLjE0Lngg
a2VybmVsIGFuZCA0LjQuNiBrZXJuZWwuIEknbSBtb3JlIGZhbWlsaWFyIHdpdGggd29ya2luZw0K
PiA+Pj4gPiB3aXRoIHRoZSAzLjE0Lngga2VybmVsIHVuZGVyIFlvY3RvLCBidXQgSSBjb3VsZCB0
cnkgbW92aW5nIHRvIDQuNC42DQo+ID4+PiA+IGtlcm5lbCBmb3IgVWJ1bnR1LiBJJ20gb3BlbiB0
byBhZHZpY2Ugb24gd2hpY2ggdG8gaW52ZXN0aWdhdGUgb24uKQ0KPiA+Pj4NCj4gPj4+IFRha2Ug
YSBsb29rIGF0IHRoaXMgcGF0Y2g6IGh0dHA6Ly9tYXJjLmluZm8vP2w9bGludXgtDQo+ID4+PiB1
c2ImbT0xNDYyMjIzNTUyMTM5MzUmdz0yDQo+ID4+Pg0KPiA+Pj4gSWYgaXQgZml4ZXMgeW91ciBp
c3N1ZSBwbGVhc2UgcHJvdmlkZSB5b3VyICJ0ZXN0ZWQtYnkiIHRhZyBoZXJlLg0KPiA+Pg0KPiA+
PiBIaSBZZWdvciwNCj4gPj4NCj4gPj4gSSBhbSB1c2luZyB0aGF0IHBhdGNoLCBhbmQgSSByZWZl
cnJlZCB0byBpdCBpbiBteSBsYXN0IG1lc3NhZ2UuIEJ1dCBpdCBkb2Vzbid0DQo+IGZpeCB0aGlz
IGlzc3VlLg0KPiA+DQo+ID4gSGF2ZSBtaXNzZWQgdGhhdC4NCj4gPg0KPiA+IEkndmUgbWFkZSBm
b2xsb3dpbmcgdGVzdCB3aXRoIGFtMzM1eCBiYXNlZCBkZXZpY2UgYW5kIGEgUmFsaW5rDQo+ID4g
VGVjaG5vbG9neSwgQ29ycC4gUlQ1MzcwIFdpcmVsZXNzIEFkYXB0ZXIgYXR0YWNoZWQgdmllIFVT
QiBodWI6DQo+ID4NCj4gPiByb290QGJhbHRvczp+IyBsc3VzYiAtdA0KPiA+IC86ICBCdXMgMDIu
UG9ydCAxOiBEZXYgMSwgQ2xhc3M9cm9vdF9odWIsIERyaXZlcj1tdXNiLWhkcmMvMXAsIDQ4ME0N
Cj4gPiAvOiAgQnVzIDAxLlBvcnQgMTogRGV2IDEsIENsYXNzPXJvb3RfaHViLCBEcml2ZXI9bXVz
Yi1oZHJjLzFwLCA0ODBNDQo+ID4gICAgIHxfXyBQb3J0IDE6IERldiAyLCBJZiAwLCBDbGFzcz1I
dWIsIERyaXZlcj1odWIvNHAsIDQ4ME0NCj4gPiAgICAgICAgIHxfXyBQb3J0IDE6IERldiA0LCBJ
ZiAwLCBDbGFzcz1WZW5kb3IgU3BlY2lmaWMgQ2xhc3MsDQo+ID4gRHJpdmVyPXJ0MjgwMHVzYiwg
NDgwTQ0KPiA+DQo+ID4gZHVyaW5nIG51dHRjcCB0ZXN0IHNlc3Npb24gSSB1bnBsdWcgV0xBTiBk
b25nbGUgYW5kIGdldCBmb2xsb3dpbmcNCj4gPiBrZXJuZWwgbWVzc2FnZXMgKGtlcm5lbCAzLjE4
LjMyIHdpdGggWzFdKQ0KPiA+DQo+ID4gaWVlZTgwMjExIHBoeTI6IHJ0MjgwMHVzYl90eF9zdGFf
Zmlmb19yZWFkX2NvbXBsZXRlZDogV2FybmluZyAtIFRYDQo+ID4gc3RhdHVzIHJlYWQgZmFpbGVk
IC03MQ0KPiA+IGh1YiAxLTE6MS4wOiBodWJfcG9ydF9zdGF0dXMgZmFpbGVkIChlcnIgPSAtMTEw
KQ0KPiA+IGh1YiAxLTE6MS4wOiBodWJfcG9ydF9zdGF0dXMgZmFpbGVkIChlcnIgPSAtMTEwKQ0K
PiA+IGh1YiAxLTE6MS4wOiBodWJfcG9ydF9zdGF0dXMgZmFpbGVkIChlcnIgPSAtMTEwKQ0KPiA+
IGh1YiAxLTE6MS4wOiBodWJfcG9ydF9zdGF0dXMgZmFpbGVkIChlcnIgPSAtMTEwKQ0KPiA+IGh1
YiAxLTE6MS4wOiBodWJfcG9ydF9zdGF0dXMgZmFpbGVkIChlcnIgPSAtMTEwKQ0KPiA+IGh1YiAx
LTE6MS4wOiBodWJfcG9ydF9zdGF0dXMgZmFpbGVkIChlcnIgPSAtMTEwKQ0KPiA+IGh1YiAxLTE6
MS4wOiBodWJfcG9ydF9zdGF0dXMgZmFpbGVkIChlcnIgPSAtMTEwKQ0KPiA+IGh1YiAxLTE6MS4w
OiBodWJfcG9ydF9zdGF0dXMgZmFpbGVkIChlcnIgPSAtMTEwKQ0KPiA+IGh1YiAxLTE6MS4wOiBo
dWJfcG9ydF9zdGF0dXMgZmFpbGVkIChlcnIgPSAtMTEwKQ0KPiA+IGh1YiAxLTE6MS4wOiBodWJf
cG9ydF9zdGF0dXMgZmFpbGVkIChlcnIgPSAtMTEwKQ0KPiA+IGllZWU4MDIxMSBwaHkyOiBydDJ4
MDB1c2JfdmVuZG9yX3JlcXVlc3Q6IEVycm9yIC0gVmVuZG9yIFJlcXVlc3QgMHgwNw0KPiA+IGZh
aWxlZCBmb3Igb2Zmc2V0IDB4MTcwMCB3aXRoIGVycm9yIC0xMTANCj4gPiBodWIgMS0xOjEuMDog
aHViX3BvcnRfc3RhdHVzIGZhaWxlZCAoZXJyID0gLTExMCkNCj4gPiBodWIgMS0xOjEuMDogaHVi
X3BvcnRfc3RhdHVzIGZhaWxlZCAoZXJyID0gLTExMCkNCj4gPiBodWIgMS0xOjEuMDogaHViX3Bv
cnRfc3RhdHVzIGZhaWxlZCAoZXJyID0gLTExMCkNCj4gPiBodWIgMS0xOjEuMDogaHViX3BvcnRf
c3RhdHVzIGZhaWxlZCAoZXJyID0gLTExMCkNCj4gPiBodWIgMS0xOjEuMDogaHViX3BvcnRfc3Rh
dHVzIGZhaWxlZCAoZXJyID0gLTExMCkNCj4gPiBodWIgMS0xOjEuMDogaHViX3BvcnRfc3RhdHVz
IGZhaWxlZCAoZXJyID0gLTExMCkNCj4gPiBodWIgMS0xOjEuMDogaHViX3BvcnRfc3RhdHVzIGZh
aWxlZCAoZXJyID0gLTExMCkNCj4gPiBodWIgMS0xOjEuMDogaHViX3BvcnRfc3RhdHVzIGZhaWxl
ZCAoZXJyID0gLTExMCkNCj4gPiBodWIgMS0xOjEuMDogaHViX3BvcnRfc3RhdHVzIGZhaWxlZCAo
ZXJyID0gLTExMCkNCj4gPiBodWIgMS0xOjEuMDogaHViX3BvcnRfc3RhdHVzIGZhaWxlZCAoZXJy
ID0gLTExMCkNCj4gPiBpZWVlODAyMTEgcGh5MjogcnQyeDAwdXNiX3ZlbmRvcl9yZXF1ZXN0OiBF
cnJvciAtIFZlbmRvciBSZXF1ZXN0IDB4MDcNCj4gPiBmYWlsZWQgZm9yIG9mZnNldCAweDA0Mzgg
d2l0aCBlcnJvciAtMTEwDQo+ID4gaHViIDEtMToxLjA6IGh1Yl9wb3J0X3N0YXR1cyBmYWlsZWQg
KGVyciA9IC0xMTApDQo+ID4NCj4gPiBbMV0gaHR0cDovL21hcmMuaW5mby8/bD1saW51eC11c2Im
bT0xNDYyMjIzNTUyMTM5MzUmdz0yDQo+DQo+IFdpdGggNC42LjAtcmM3IEkgZ2V0DQo+DQo+IFsg
IDQ3OS44Njk3MzZdIGllZWU4MDIxMSBwaHkxOiBydDI4MDB1c2JfdHhfc3RhX2ZpZm9fcmVhZF9j
b21wbGV0ZWQ6DQo+IFdhcm5pbmcgLSBUWCBzdGF0dXMgcmVhZCBmYWlsZWQgLTcxDQo+IFsgIDQ4
MC4xMDYwMjJdIGllZWU4MDIxMSBwaHkxOiBydDJ4MDB1c2JfdmVuZG9yX3JlcXVlc3Q6IEVycm9y
IC0NCj4gVmVuZG9yIFJlcXVlc3QgMHgwNyBmYWlsZWQgZm9yIG9mZnNldCAweDE3MDAgd2l0aCBl
cnJvciAtMTEwDQo+IFsgIDQ4MC4yMTYwMDJdIGllZWU4MDIxMSBwaHkxOiBydDJ4MDB1c2JfdmVu
ZG9yX3JlcXVlc3Q6IEVycm9yIC0NCj4gVmVuZG9yIFJlcXVlc3QgMHgwNyBmYWlsZWQgZm9yIG9m
ZnNldCAweDcwMTAgd2l0aCBlcnJvciAtMTEwDQo+IFsgIDQ4MC4zMjU5OTZdIGllZWU4MDIxMSBw
aHkxOiBydDJ4MDB1c2JfdmVuZG9yX3JlcXVlc3Q6IEVycm9yIC0NCj4gVmVuZG9yIFJlcXVlc3Qg
MHgwNiBmYWlsZWQgZm9yIG9mZnNldCAweDcwMTAgd2l0aCBlcnJvciAtMTEwDQo+IFsgIDQ4MC40
MzYxNjBdIGllZWU4MDIxMSBwaHkxOiBydDJ4MDB1c2JfdmVuZG9yX3JlcXVlc3Q6IEVycm9yIC0N
Cj4gVmVuZG9yIFJlcXVlc3QgMHgwNiBmYWlsZWQgZm9yIG9mZnNldCAweDA0MDQgd2l0aCBlcnJv
ciAtMTEwDQo+IFsgIDQ4MC41NDYxNzhdIGllZWU4MDIxMSBwaHkxOiBydDJ4MDB1c2JfdmVuZG9y
X3JlcXVlc3Q6IEVycm9yIC0NCj4gVmVuZG9yIFJlcXVlc3QgMHgwNyBmYWlsZWQgZm9yIG9mZnNl
dCAweDA0Mzggd2l0aCBlcnJvciAtMTEwDQo+IFsgICA5Ni43MjYxOThdIGh1YiAxLTE6MS4wOiBo
dWJfZXh0X3BvcnRfc3RhdHVzIGZhaWxlZCAoZXJyID0gLTExMCkNCg0KVGhhdCdzIHN0cmFuZ2Us
IGJlY2F1c2UgSSBkb24ndCBnZXQgYW55dGhpbmcgbGlrZSB0aGF0LCBhcGFydCBmcm9tIHRoZSBm
aXJzdCBsaW5lLg0KDQpJIGhhdmUgdGVzdGVkIHRoZSBzYW1lIHNjZW5hcmlvIG9uIGEgRE0mUCBl
Qm94IG1pbmktUEMgKGk1ODYgYmFzZWQsIHJ1bm5pbmcgRGViaWFuIDguNCB3aXRoIDMuMTYuMCBr
ZXJuZWw7IEkgdW5wbHVnIHdoaWxlIGRvaW5nIHBpbmcgLWYgdG8gbXkgcm91dGVyKSwgYW5kIGdv
dCB0aGUgZm9sbG93aW5nOg0KDQpbNTc3NTAuMjEzMjA4XSBpZWVlODAyMTEgcGh5MzogcnQyODAw
dXNiX3R4X3N0YV9maWZvX3JlYWRfY29tcGxldGVkOiBXYXJuaW5nIC0gVFggc3RhdHVzIHJlYWQg
ZmFpbGVkIC03MQ0KWzU3NzUwLjIxNzQzNF0gaWVlZTgwMjExIHBoeTM6IHJ0MjgwMHVzYl90eF9z
dGFfZmlmb19yZWFkX2NvbXBsZXRlZDogV2FybmluZyAtIFRYIHN0YXR1cyByZWFkIGZhaWxlZCAt
NzENCls1Nzc1MC4yMjE2OTNdIGllZWU4MDIxMSBwaHkzOiBydDI4MDB1c2JfdHhfc3RhX2ZpZm9f
cmVhZF9jb21wbGV0ZWQ6IFdhcm5pbmcgLSBUWCBzdGF0dXMgcmVhZCBmYWlsZWQgLTcxDQpbNTc3
NTAuMjI2MDY4XSBpZWVlODAyMTEgcGh5MzogcnQyODAwdXNiX3R4X3N0YV9maWZvX3JlYWRfY29t
cGxldGVkOiBXYXJuaW5nIC0gVFggc3RhdHVzIHJlYWQgZmFpbGVkIC03MQ0KWzU3NzUwLjIzMDMx
OV0gaWVlZTgwMjExIHBoeTM6IHJ0MjgwMHVzYl90eF9zdGFfZmlmb19yZWFkX2NvbXBsZXRlZDog
V2FybmluZyAtIFRYIHN0YXR1cyByZWFkIGZhaWxlZCAtNzENCls1Nzc1MC4yMzQ1NzNdIGllZWU4
MDIxMSBwaHkzOiBydDI4MDB1c2JfdHhfc3RhX2ZpZm9fcmVhZF9jb21wbGV0ZWQ6IFdhcm5pbmcg
LSBUWCBzdGF0dXMgcmVhZCBmYWlsZWQgLTcxDQpbNTc3NTAuMjM4OTQ0XSBpZWVlODAyMTEgcGh5
MzogcnQyODAwdXNiX3R4X3N0YV9maWZvX3JlYWRfY29tcGxldGVkOiBXYXJuaW5nIC0gVFggc3Rh
dHVzIHJlYWQgZmFpbGVkIC03MQ0KWzU3NzUwLjI0MzE5N10gaWVlZTgwMjExIHBoeTM6IHJ0Mjgw
MHVzYl90eF9zdGFfZmlmb19yZWFkX2NvbXBsZXRlZDogV2FybmluZyAtIFRYIHN0YXR1cyByZWFk
IGZhaWxlZCAtNzENCls1Nzc1MC4yNDc0NTRdIGllZWU4MDIxMSBwaHkzOiBydDI4MDB1c2JfdHhf
c3RhX2ZpZm9fcmVhZF9jb21wbGV0ZWQ6IFdhcm5pbmcgLSBUWCBzdGF0dXMgcmVhZCBmYWlsZWQg
LTcxDQpbNTc3NTAuMjUxODE3XSBpZWVlODAyMTEgcGh5MzogcnQyODAwdXNiX3R4X3N0YV9maWZv
X3JlYWRfY29tcGxldGVkOiBXYXJuaW5nIC0gVFggc3RhdHVzIHJlYWQgZmFpbGVkIC03MQ0KWzU3
NzUwLjI1NjA2OV0gaWVlZTgwMjExIHBoeTM6IHJ0MjgwMHVzYl90eF9zdGFfZmlmb19yZWFkX2Nv
bXBsZXRlZDogV2FybmluZyAtIFRYIHN0YXR1cyByZWFkIGZhaWxlZCAtNzENCls1Nzc1MC4yNjAz
MzRdIGllZWU4MDIxMSBwaHkzOiBydDI4MDB1c2JfdHhfc3RhX2ZpZm9fcmVhZF9jb21wbGV0ZWQ6
IFdhcm5pbmcgLSBUWCBzdGF0dXMgcmVhZCBmYWlsZWQgLTcxDQpbNTc3NTAuMjY0NTc2XSBpZWVl
ODAyMTEgcGh5MzogcnQyODAwdXNiX3R4X3N0YV9maWZvX3JlYWRfY29tcGxldGVkOiBXYXJuaW5n
IC0gVFggc3RhdHVzIHJlYWQgZmFpbGVkIC03MQ0KWzU3NzUwLjI2ODgyMF0gaWVlZTgwMjExIHBo
eTM6IHJ0MjgwMHVzYl90eF9zdGFfZmlmb19yZWFkX2NvbXBsZXRlZDogV2FybmluZyAtIFRYIHN0
YXR1cyByZWFkIGZhaWxlZCAtNzENCls1Nzc1MC4yNzMwODNdIGllZWU4MDIxMSBwaHkzOiBydDI4
MDB1c2JfdHhfc3RhX2ZpZm9fcmVhZF9jb21wbGV0ZWQ6IFdhcm5pbmcgLSBUWCBzdGF0dXMgcmVh
ZCBmYWlsZWQgLTcxDQpbNTc3NTAuMjc3MzE4XSBpZWVlODAyMTEgcGh5MzogcnQyODAwdXNiX3R4
X3N0YV9maWZvX3JlYWRfY29tcGxldGVkOiBXYXJuaW5nIC0gVFggc3RhdHVzIHJlYWQgZmFpbGVk
IC03MQ0KWzU3NzUwLjI4MTY0NF0gaWVlZTgwMjExIHBoeTM6IHJ0MjgwMHVzYl90eF9zdGFfZmlm
b19yZWFkX2NvbXBsZXRlZDogV2FybmluZyAtIFRYIHN0YXR1cyByZWFkIGZhaWxlZCAtNzENCls1
Nzc1MC4yODU5NThdIGllZWU4MDIxMSBwaHkzOiBydDI4MDB1c2JfdHhfc3RhX2ZpZm9fcmVhZF9j
b21wbGV0ZWQ6IFdhcm5pbmcgLSBUWCBzdGF0dXMgcmVhZCBmYWlsZWQgLTcxDQpbNTc3NTAuMjkw
MTk0XSBpZWVlODAyMTEgcGh5MzogcnQyODAwdXNiX3R4X3N0YV9maWZvX3JlYWRfY29tcGxldGVk
OiBXYXJuaW5nIC0gVFggc3RhdHVzIHJlYWQgZmFpbGVkIC03MQ0KWzU3NzUwLjI5NDQ1OV0gaWVl
ZTgwMjExIHBoeTM6IHJ0MjgwMHVzYl90eF9zdGFfZmlmb19yZWFkX2NvbXBsZXRlZDogV2Fybmlu
ZyAtIFRYIHN0YXR1cyByZWFkIGZhaWxlZCAtNzENCls1Nzc1MC4yOTg4MjldIGllZWU4MDIxMSBw
aHkzOiBydDI4MDB1c2JfdHhfc3RhX2ZpZm9fcmVhZF9jb21wbGV0ZWQ6IFdhcm5pbmcgLSBUWCBz
dGF0dXMgcmVhZCBmYWlsZWQgLTcxDQpbNTc3NTAuMzAzMDc2XSBpZWVlODAyMTEgcGh5MzogcnQy
ODAwdXNiX3R4X3N0YV9maWZvX3JlYWRfY29tcGxldGVkOiBXYXJuaW5nIC0gVFggc3RhdHVzIHJl
YWQgZmFpbGVkIC03MQ0KWzU3NzUwLjMwNzMzMl0gaWVlZTgwMjExIHBoeTM6IHJ0MjgwMHVzYl90
eF9zdGFfZmlmb19yZWFkX2NvbXBsZXRlZDogV2FybmluZyAtIFRYIHN0YXR1cyByZWFkIGZhaWxl
ZCAtNzENCls1Nzc1MC4zMTE2OTJdIGllZWU4MDIxMSBwaHkzOiBydDI4MDB1c2JfdHhfc3RhX2Zp
Zm9fcmVhZF9jb21wbGV0ZWQ6IFdhcm5pbmcgLSBUWCBzdGF0dXMgcmVhZCBmYWlsZWQgLTcxDQpb
NTc3NTAuMzE1OTQ1XSBpZWVlODAyMTEgcGh5MzogcnQyODAwdXNiX3R4X3N0YV9maWZvX3JlYWRf
Y29tcGxldGVkOiBXYXJuaW5nIC0gVFggc3RhdHVzIHJlYWQgZmFpbGVkIC03MQ0KWzU3NzUwLjMy
MDIwOV0gaWVlZTgwMjExIHBoeTM6IHJ0MjgwMHVzYl90eF9zdGFfZmlmb19yZWFkX2NvbXBsZXRl
ZDogV2FybmluZyAtIFRYIHN0YXR1cyByZWFkIGZhaWxlZCAtNzENCls1Nzc1MC4zMjQ0NDRdIGll
ZWU4MDIxMSBwaHkzOiBydDI4MDB1c2JfdHhfc3RhX2ZpZm9fcmVhZF9jb21wbGV0ZWQ6IFdhcm5p
bmcgLSBUWCBzdGF0dXMgcmVhZCBmYWlsZWQgLTcxDQpbNTc3NTAuMzI2NTg1XSB1c2IgMi0yLjM6
IFVTQiBkaXNjb25uZWN0LCBkZXZpY2UgbnVtYmVyIDgNCls1Nzc1MC4zMjkwNjFdIGllZWU4MDIx
MSBwaHkzOiBydDI4MDB1c2JfdHhfc3RhX2ZpZm9fcmVhZF9jb21wbGV0ZWQ6IFdhcm5pbmcgLSBU
WCBzdGF0dXMgcmVhZCBmYWlsZWQgLTcxDQpbNTc3NTAuMzQ2MTM0XSB3bGFuMDogZGVhdXRoZW50
aWNhdGluZyBmcm9tIGU4Ojk0OmY2OjVhOjk1OjlhIGJ5IGxvY2FsIGNob2ljZSAoUmVhc29uOiAz
PURFQVVUSF9MRUFWSU5HKQ0KWzU3NzUwLjM1NTU4OV0gY2ZnODAyMTE6IENhbGxpbmcgQ1JEQSB0
byB1cGRhdGUgd29ybGQgcmVndWxhdG9yeSBkb21haW4NCg0KSXQncyB0aGUgc2FtZSBtZXNzYWdl
IGFzIEkgZ2V0IG9uIHRoZSBCZWFnbGVCb25lIGJhc2VkIHN5c3RlbSAoWW9jdG8gMy4xNC40OSBh
bmQgVWJ1bnR1IDQuNC42IGtlcm5lbHMpLCBleGNlcHQgdGhhdCBpdCBvbmx5IGxhc3RzIGZvciBh
IGZyYWN0aW9uIG9mIGEgc2Vjb25kLiBJIHNwZWN1bGF0ZSB0aGF0IGl0J3MgYW4gcnQyODAwIGlz
c3VlIHdpdGggYSBoaWdoIGxvYWQgb24gdGhlIENQVSAod29yayBxdWV1ZSkgd2hpY2ggdGhlIEJl
YWdsZUJvbmUgc3lzdGVtIHN0cnVnZ2xlcyB0byByZWNvdmVyIGZyb20gKHBlcmhhcHMgYmVjYXVz
ZSBpdCdzIGEgbm9uLXByZWVtcHRpdmUga2VybmVsLCBvciBwZXJoYXBzIGJlY2F1c2UgdGhlIGtl
cm5lbCBpcyBzbG93ZWQgZG93biBieSBvdXRwdXR0aW5nIGFsbCB0aGVzZSBtZXNzYWdlcyB0byB0
aGUgc2VyaWFsIGRlYnVnIGNvbnNvbGU/KSB3aGlsZSB0aGUgaTU4NiBzeXN0ZW0gaXMgYWJsZSB0
byByZWNvdmVyIGZyb20gcXVpY2tseS4NCg0KUmVnYXJkaW5nIHRoZSBoeXBvdGhlc2lzIG9mIHRo
ZSBrZXJuZWwgbG9ja3VwIGR1ZSB0byBvdXRwdXR0aW5nIG1lc3NhZ2VzIHRvIHNlcmlhbCBkZWJ1
ZyBjb25zb2xlOiBJIHRyaWVkIHRvIG1vZGlmeSBydDI4MDB1c2IuYyB0byBjaGFuZ2UgYSBmZXcg
cnQyeDAwX3dhcm4oKSB0byBydDJ4MDBfZGJnKCkgIChpbiAzLjE0Lngga2VybmVsIGJ1aWx0IHdp
dGggWW9jdG8pOg0KDQoNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0Mngw
MC9ydDI4MDB1c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI4MDB1c2IuYw0K
aW5kZXggZThhYmQwZi4uNzkyNzUxMyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNz
L3J0MngwMC9ydDI4MDB1c2IuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0
MjgwMHVzYi5jDQpAQCAtMTI1LDcgKzEyNSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBydDI4MDB1
c2JfZW50cnlfdHhzdGF0dXNfdGltZW91dChzdHJ1Y3QgcXVldWVfZW50cnkgKmVudHJ5KQ0KDQog
ICAgICAgIHRvdXQgPSB0aW1lX2FmdGVyKGppZmZpZXMsIGVudHJ5LT5sYXN0X2FjdGlvbiArIG1z
ZWNzX3RvX2ppZmZpZXMoMTAwKSk7DQogICAgICAgIGlmICh1bmxpa2VseSh0b3V0KSkNCi0gICAg
ICAgICAgICAgICBydDJ4MDBfd2FybihlbnRyeS0+cXVldWUtPnJ0MngwMGRldiwNCisgICAgICAg
ICAgICAgICBydDJ4MDBfZGJnKGVudHJ5LT5xdWV1ZS0+cnQyeDAwZGV2LA0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJUWCBzdGF0dXMgdGltZW91dCBmb3IgZW50cnkgJWQgaW4gcXVldWUg
JWRcbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnktPmVudHJ5X2lkeCwgZW50
cnktPnF1ZXVlLT5xaWQpOw0KICAgICAgICByZXR1cm4gdG91dDsNCkBAIC0xNTMsNyArMTUzLDcg
QEAgc3RhdGljIGJvb2wgcnQyODAwdXNiX3R4X3N0YV9maWZvX3JlYWRfY29tcGxldGVkKHN0cnVj
dCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYsDQogICAgICAgIGJvb2wgdmFsaWQ7DQoNCiAgICAgICAg
aWYgKHVyYl9zdGF0dXMpIHsNCi0gICAgICAgICAgICAgICBydDJ4MDBfd2FybihydDJ4MDBkZXYs
ICJUWCBzdGF0dXMgcmVhZCBmYWlsZWQgJWRcbiIsDQorICAgICAgICAgICAgICAgcnQyeDAwX2Ri
ZyhydDJ4MDBkZXYsICJUWCBzdGF0dXMgcmVhZCBmYWlsZWQgJWRcbiIsDQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdXJiX3N0YXR1cyk7DQoNCiAgICAgICAgICAgICAgICBnb3RvIHN0b3Bf
cmVhZGluZzsNCkBAIC01NjYsNyArNTY2LDcgQEAgc3RhdGljIHZvaWQgcnQyODAwdXNiX3R4ZG9u
ZShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2KQ0KICAgICAgICAgICAgICAgIHF1ZXVlID0g
cnQyeDAwcXVldWVfZ2V0X3R4X3F1ZXVlKHJ0MngwMGRldiwgcWlkKTsNCg0KICAgICAgICAgICAg
ICAgIGlmICh1bmxpa2VseShydDJ4MDBxdWV1ZV9lbXB0eShxdWV1ZSkpKSB7DQotICAgICAgICAg
ICAgICAgICAgICAgICBydDJ4MDBfd2FybihydDJ4MDBkZXYsICJHb3QgVFggc3RhdHVzIGZvciBh
biBlbXB0eSBxdWV1ZSAldSwgZHJvcHBpbmdcbiIsDQorICAgICAgICAgICAgICAgICAgICAgICBy
dDJ4MDBfZGJnKHJ0MngwMGRldiwgIkdvdCBUWCBzdGF0dXMgZm9yIGFuIGVtcHR5IHF1ZXVlICV1
LCBkcm9wcGluZ1xuIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFpZCk7
DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQoNCg0K
VGhlbiBJIGdvdCB0aGUgZm9sbG93aW5nIHdoZW4gSSB1bnBsdWdnZWQgdGhlIFdpLUZpIGZyb20g
dGhlIGh1Yi4gVGhlcmUgd2Fzbid0IGEgc29mdCBsb2NrdXAsIGJ1dCBJIHN0aWxsIGRpZG4ndCBz
ZWUgYSAiVVNCIGRpc2Nvbm5lY3QiIGV2ZW50IGVpdGhlci4gTm90ZSBJIHRyaWVkICdpcCBhJyBj
b21tYW5kIGFmdGVyIHNvbWUgdGltZSwgYW5kIHNhdyB0aGUga2VybmVsIHN0aWxsIHRob3VnaHQg
dGhlIHdsYW4wIHdhcyBjb25uZWN0ZWQuIEFmdGVyIHNvbWUgdGltZSwgSSBnb3QgdGlyZWQgb2Yg
d2FpdGluZywgYW5kIHVucGx1Z2dlZCB0aGUgaHViIGl0c2VsZiwgYXQgd2hpY2ggcG9pbnQgSSBn
b3QgdGhlIGtlcm5lbCBvb3BzLg0KDQpbIDI5NTUuOTAxODM0XSBpZWVlODAyMTEgcGh5MjogcnQy
ODAwdXNiX3R4ZG9uZTogV2FybmluZyAtIERhdGEgcGVuZGluZyBmb3IgZW50cnkgMyBpbiBxdWV1
ZSAyDQpbIDI5NzEuMzgxMjM5XSBodWIgMS0xOjEuMDogaHViX3BvcnRfc3RhdHVzIGZhaWxlZCAo
ZXJyID0gLTExMCkNClsgMjk3Ni4zNzg2OTNdIGh1YiAxLTE6MS4wOiBodWJfcG9ydF9zdGF0dXMg
ZmFpbGVkIChlcnIgPSAtMTEwKQ0KWyAyOTgxLjM3NjI5NF0gaHViIDEtMToxLjA6IGh1Yl9wb3J0
X3N0YXR1cyBmYWlsZWQgKGVyciA9IC0xMTApDQpbIDI5ODYuMzczNzIxXSBodWIgMS0xOjEuMDog
aHViX3BvcnRfc3RhdHVzIGZhaWxlZCAoZXJyID0gLTExMCkNClsgMjk5MS4zNzEyMzFdIGh1YiAx
LTE6MS4wOiBodWJfcG9ydF9zdGF0dXMgZmFpbGVkIChlcnIgPSAtMTEwKQ0KWyAyOTk2LjM3MDQ5
MV0gaHViIDEtMToxLjA6IGh1Yl9wb3J0X3N0YXR1cyBmYWlsZWQgKGVyciA9IC0xMTApDQpbIDMw
MDEuMzgwNDkzXSBodWIgMS0xOjEuMDogaHViX3BvcnRfc3RhdHVzIGZhaWxlZCAoZXJyID0gLTEx
MCkNClsgMzAwNi4zODA0NzNdIGh1YiAxLTE6MS4wOiBodWJfcG9ydF9zdGF0dXMgZmFpbGVkIChl
cnIgPSAtMTEwKQ0KWyAzMDExLjQwMDQ5MF0gaHViIDEtMToxLjA6IGh1Yl9wb3J0X3N0YXR1cyBm
YWlsZWQgKGVyciA9IC0xMTApDQpbIDMwMTYuNDAwNTAyXSBodWIgMS0xOjEuMDogaHViX3BvcnRf
c3RhdHVzIGZhaWxlZCAoZXJyID0gLTExMCkNClsgMzAxNy4wODA0OTddIGllZWU4MDIxMSBwaHky
OiBydDJ4MDB1c2JfdmVuZG9yX3JlcXVlc3Q6IEVycm9yIC0gVmVuZG9yIFJlcXVlc3QgMHgwNyBm
YWlsZWQgZm9yIG9mZnNldCAweDE3MDAgd2l0aCBlcnJvciAtMTEwDQpbIDMwMjEuNDAwNDY2XSBo
dWIgMS0xOjEuMDogaHViX3BvcnRfc3RhdHVzIGZhaWxlZCAoZXJyID0gLTExMCkNClsgMzAyNi40
MDA1MDZdIGh1YiAxLTE6MS4wOiBodWJfcG9ydF9zdGF0dXMgZmFpbGVkIChlcnIgPSAtMTEwKQ0K
WyAzMDMxLjQwMDQ5MV0gaHViIDEtMToxLjA6IGh1Yl9wb3J0X3N0YXR1cyBmYWlsZWQgKGVyciA9
IC0xMTApDQpbIDMwMzYuNDAwNDk3XSBodWIgMS0xOjEuMDogaHViX3BvcnRfc3RhdHVzIGZhaWxl
ZCAoZXJyID0gLTExMCkNClsgMzA0MS40MDA1MTJdIGh1YiAxLTE6MS4wOiBodWJfcG9ydF9zdGF0
dXMgZmFpbGVkIChlcnIgPSAtMTEwKQ0KWyAzMDQ2LjQwMDQ0N10gaHViIDEtMToxLjA6IGh1Yl9w
b3J0X3N0YXR1cyBmYWlsZWQgKGVyciA9IC0xMTApDQpbIDMwNTEuNDAwNDgyXSBodWIgMS0xOjEu
MDogaHViX3BvcnRfc3RhdHVzIGZhaWxlZCAoZXJyID0gLTExMCkNClsgMzA1Ni40MDA1MDFdIGh1
YiAxLTE6MS4wOiBodWJfcG9ydF9zdGF0dXMgZmFpbGVkIChlcnIgPSAtMTEwKQ0KWyAzMDYxLjQw
MDQ4OV0gaHViIDEtMToxLjA6IGh1Yl9wb3J0X3N0YXR1cyBmYWlsZWQgKGVyciA9IC0xMTApDQpb
IDMwNjYuNDAwNDkwXSBodWIgMS0xOjEuMDogaHViX3BvcnRfc3RhdHVzIGZhaWxlZCAoZXJyID0g
LTExMCkNClsgMzA2Ny4wOTA0OTZdIGllZWU4MDIxMSBwaHkyOiBydDJ4MDB1c2JfdmVuZG9yX3Jl
cXVlc3Q6IEVycm9yIC0gVmVuZG9yIFJlcXVlc3QgMHgwNyBmYWlsZWQgZm9yIG9mZnNldCAweDA0
Mzggd2l0aCBlcnJvciAtMTEwDQpbIDMwNjcuMTAyMTk5XSBpZWVlODAyMTEgcGh5MjogcnQyODAw
dXNiX3dhdGNoZG9nOiBXYXJuaW5nIC0gVFggSFcgcXVldWUgMCB0aW1lZCBvdXQsIGludm9rZSBm
b3JjZWQga2ljaw0KWyAzMDcxLjQwMDUwNV0gaHViIDEtMToxLjA6IGh1Yl9wb3J0X3N0YXR1cyBm
YWlsZWQgKGVyciA9IC0xMTApDQpbIDMwNzYuNDAwNDgxXSBodWIgMS0xOjEuMDogaHViX3BvcnRf
c3RhdHVzIGZhaWxlZCAoZXJyID0gLTExMCkNClsgMzA4MS40MDA0NzZdIGh1YiAxLTE6MS4wOiBo
dWJfcG9ydF9zdGF0dXMgZmFpbGVkIChlcnIgPSAtMTEwKQ0KWyAzMDg2LjQwMDQ4NF0gaHViIDEt
MToxLjA6IGh1Yl9wb3J0X3N0YXR1cyBmYWlsZWQgKGVyciA9IC0xMTApDQpbIDMwOTEuNDAwNDg1
XSBodWIgMS0xOjEuMDogaHViX3BvcnRfc3RhdHVzIGZhaWxlZCAoZXJyID0gLTExMCkNClsgMzA5
Ni40MDA0ODddIGh1YiAxLTE6MS4wOiBodWJfcG9ydF9zdGF0dXMgZmFpbGVkIChlcnIgPSAtMTEw
KQ0KWyAzMTAxLjQwMDUwMV0gaHViIDEtMToxLjA6IGh1Yl9wb3J0X3N0YXR1cyBmYWlsZWQgKGVy
ciA9IC0xMTApDQpbIDMxMDYuNDAwNDk0XSBodWIgMS0xOjEuMDogaHViX3BvcnRfc3RhdHVzIGZh
aWxlZCAoZXJyID0gLTExMCkNClsgMzExMS40MDA0ODNdIGh1YiAxLTE6MS4wOiBodWJfcG9ydF9z
dGF0dXMgZmFpbGVkIChlcnIgPSAtMTEwKQ0KWyAzMTE2LjQwMDUxMl0gaHViIDEtMToxLjA6IGh1
Yl9wb3J0X3N0YXR1cyBmYWlsZWQgKGVyciA9IC0xMTApDQpbIDMxMTcuMTEwNTA2XSBpZWVlODAy
MTEgcGh5MjogcnQyeDAwdXNiX3ZlbmRvcl9yZXF1ZXN0OiBFcnJvciAtIFZlbmRvciBSZXF1ZXN0
IDB4MDYgZmFpbGVkIGZvciBvZmZzZXQgMHgwNDA4IHdpdGggZXJyb3IgLTExMA0KWyAzMTIxLjQw
MDQ1OV0gaHViIDEtMToxLjA6IGh1Yl9wb3J0X3N0YXR1cyBmYWlsZWQgKGVyciA9IC0xMTApDQpb
IDMxMjYuNDAwNDczXSBodWIgMS0xOjEuMDogaHViX3BvcnRfc3RhdHVzIGZhaWxlZCAoZXJyID0g
LTExMCkNClsgMzEzMS40MDA1NzldIGh1YiAxLTE6MS4wOiBodWJfcG9ydF9zdGF0dXMgZmFpbGVk
IChlcnIgPSAtMTEwKQ0KWyAzMTM2LjQwMDQ4MV0gaHViIDEtMToxLjA6IGh1Yl9wb3J0X3N0YXR1
cyBmYWlsZWQgKGVyciA9IC0xMTApDQpbIDMxNDEuNDAwNTI5XSBodWIgMS0xOjEuMDogaHViX3Bv
cnRfc3RhdHVzIGZhaWxlZCAoZXJyID0gLTExMCkNClsgMzE0Ni40MDA1NDRdIGh1YiAxLTE6MS4w
OiBodWJfcG9ydF9zdGF0dXMgZmFpbGVkIChlcnIgPSAtMTEwKQ0KDQpyb290QHd0MDAwMDQzOn4j
IGlwIGENCjE6IGxvOiA8TE9PUEJBQ0ssVVAsTE9XRVJfVVA+IG10dSA2NTUzNiBxZGlzYyBub3F1
ZXVlDQogICAgbGluay9sb29wYmFjayAwMDowMDowMDowMDowMDowMCBicmQgMDA6MDA6MDA6MDA6
MDA6MDANCiAgICBpbmV0IDEyNy4wLjAuMS84IHNjb3BlIGhvc3QgbG8NCiAgICAgICB2YWxpZF9s
ZnQgZm9yZXZlciBwcmVmZXJyZWRfbGZ0IGZvcmV2ZXINCjI6IGV0aDA6IDxOTy1DQVJSSUVSLEJS
T0FEQ0FTVCxNVUxUSUNBU1QsVVA4MDAwPiBtdHUgMTUwMCBxZGlzYyBwZmlmb19mYXN0IHFsZW4g
MTAwMA0KICAgIGxpbmsvZXRoZXIgNjg6OWU6MTk6OWE6NDU6N2QgYnJkIGZmOmZmOmZmOmZmOmZm
OmZmDQo1OiB3bGFuMDogPEJST0FEQ0FTVCxNVUxUSUNBU1QsVVAsTE9XRVJfVVA4MDAwPiBtdHUg
MTUwMCBxZGlzYyBtcSBxbGVuIDEwMDANCiAgICBsaW5rL2V0aGVyIDljOmQ2OjQzOjg0OjYxOjFk
IGJyZCBmZjpmZjpmZjpmZjpmZjpmZg0KICAgIGluZXQgMTkyLjE2OC4xMDUuMTg4LzIxIGJyZCAx
OTIuMTY4LjExMS4yNTUgc2NvcGUgZ2xvYmFsIHdsYW4wDQogICAgICAgdmFsaWRfbGZ0IGZvcmV2
ZXIgcHJlZmVycmVkX2xmdCBmb3JldmVyDQoNClsgMzE1MS40MDA0OThdIGh1YiAxLTE6MS4wOiBo
dWJfcG9ydF9zdGF0dXMgZmFpbGVkIChlcnIgPSAtMTEwKQ0KWyAzMTU2LjQwMDQ3N10gaHViIDEt
MToxLjA6IGh1Yl9wb3J0X3N0YXR1cyBmYWlsZWQgKGVyciA9IC0xMTApDQpbIDMxNTcuMTIwNTE1
XSBpZWVlODAyMTEgcGh5MjogcnQyeDAwdXNiX3ZlbmRvcl9yZXF1ZXN0OiBFcnJvciAtIFZlbmRv
ciBSZXF1ZXN0IDB4MDYgZmFpbGVkIGZvciBvZmZzZXQgMHgwNDA4IHdpdGggZXJyb3IgLTE5DQpb
IDMxNTcuNDAwNjUwXSB1c2IgMS0xOiBVU0IgZGlzY29ubmVjdCwgZGV2aWNlIG51bWJlciAzDQpb
IDMxNTcuNDA1OTA1XSB1c2IgMS0xLjM6IFVTQiBkaXNjb25uZWN0LCBkZXZpY2UgbnVtYmVyIDUN
ClsgMzE1Ny40NDE2MDldIHdsYW4wOiBkZWF1dGhlbnRpY2F0aW5nIGZyb20gYjA6YWE6Nzc6ZjA6
Y2E6NzkgYnkgbG9jYWwgY2hvaWNlIChyZWFzb249MykNClsgMzE1Ny40ODk5MTZdIGNmZzgwMjEx
OiBDYWxsaW5nIENSREEgdG8gdXBkYXRlIHdvcmxkIHJlZ3VsYXRvcnkgZG9tYWluDQpbIDMxNTcu
NTE1MjkwXSBVbmFibGUgdG8gaGFuZGxlIGtlcm5lbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ug
YXQgdmlydHVhbCBhZGRyZXNzIDAwMDAwMDA0DQpbIDMxNTcuNTIzODE3XSBwZ2QgPSBjMDAwNDAw
MA0KWyAzMTU3LjUyNjY2M10gWzAwMDAwMDA0XSAqcGdkPTAwMDAwMDAwDQpbIDMxNTcuNTMwNDM4
XSBJbnRlcm5hbCBlcnJvcjogT29wczogMTcgWyMxXSBBUk0NClsgMzE1Ny41MzUwMTNdIE1vZHVs
ZXMgbGlua2VkIGluOiBydDI4MDB1c2IgcnQyeDAwdXNiIHJ0MjgwMGxpYiBydDJ4MDBsaWIgbWFj
ODAyMTEgY2ZnODAyMTEgYmx1ZXRvb3RoIDZsb3dwYW5faXBoYyB4dF90Y3B1ZHAgaXB0YWJsZV9u
YXQgbmZfY29ubnRyYWNrX2lwdjQgbmZfZGVmcmFnX2lwdjQgbmZfbmF0X2lwdjQgeHRfUkVESVJF
Q1QgbmZfbmF0IG5mX2Nvbm50cmFjayBpcHRhYmxlX2ZpbHRlciBpcF90YWJsZXMgeF90YWJsZXMg
aXJfbGFuX2JiYiBtdXNiX2RzcHMgbXVzYl9oZHJjIGlyX3pvbmVfaW5wdXRfYWRjIHBydXNzX3Jl
bW90ZXByb2MgaXJfcG93ZXJfY3RybF9pMmMgYXQyNCBtdXNiX2FtMzM1eCBpcl96b25lX2lucHV0
IGdwaW9fbXV4ZWRfYWRjIGlyX2JvYXJkX3JldmlzaW9uDQpbIDMxNTcuNTcxNDQ3XSBDUFU6IDAg
UElEOiAzOTIgQ29tbToga2h1YmQgTm90IHRhaW50ZWQgMy4xNC40OS1nZTljZDRjYzgxOSAjNA0K
WyAzMTU3LjU3ODY3MF0gdGFzazogZGQ4ZWYwMDAgdGk6IGRkOTIwMDAwIHRhc2sudGk6IGRkOTIw
MDAwDQpbIDMxNTcuNTg0NDIzXSBQQyBpcyBhdCBydDJ4MDBxdWV1ZV9nZXRfZW50cnkrMHgyNC8w
eDY4IFtydDJ4MDBsaWJdDQpbIDMxNTcuNTkwNzUzXSBMUiBpcyBhdCBydDI4MDB1c2JfdHhzdGF0
dXNfcGVuZGluZy5pc3JhLjUrMHgyNC8weDc4IFtydDI4MDB1c2JdDQpbIDMxNTcuNTk4MTU3XSBw
YyA6IFs8YmYxZTFiNDA+XSAgICBsciA6IFs8YmYyMTBiNzQ+XSAgICBwc3I6IDgwMDUwMTkzDQpb
IDMxNTcuNTk4MTU3XSBzcCA6IGRkOTIxY2I4ICBpcCA6IGRkOTIxY2M4ICBmcCA6IGRkOTIxY2M0
DQpbIDMxNTcuNjEwMjA1XSByMTA6IGRiOWI4MDEwICByOSA6IDAwMDAwMDAwICByOCA6IGRkZWUy
YzQ0DQpbIDMxNTcuNjE1NjkwXSByNyA6IGZmZmZmZjk0ICByNiA6IGRkZWUzMTFjICByNSA6IDAw
MDAwMDQwICByNCA6IDAwMDAwMDAwDQpbIDMxNTcuNjIyNTQyXSByMyA6IDAwMDAwMDAyICByMiA6
IDAwMDAwMDA0ICByMSA6IDgwMDUwMTkzICByMCA6IDAwMDAwMDAwDQpbIDMxNTcuNjI5Mzk5XSBG
bGFnczogTnpjdiAgSVJRcyBvZmYgIEZJUXMgb24gIE1vZGUgU1ZDXzMyICBJU0EgQVJNICBTZWdt
ZW50IGtlcm5lbA0KWyAzMTU3LjYzNzE2M10gQ29udHJvbDogMTBjNTM4N2QgIFRhYmxlOiA5ZGUz
ODAxOSAgREFDOiAwMDAwMDAxNQ0KWyAzMTU3LjY0MzE5NV0gUHJvY2VzcyBraHViZCAocGlkOiAz
OTIsIHN0YWNrIGxpbWl0ID0gMHhkZDkyMDIzOCkNClsgMzE1Ny42NDkzMTldIFN0YWNrOiAoMHhk
ZDkyMWNiOCB0byAweGRkOTIyMDAwKQ0KWyAzMTU3LjY1MzkwMF0gMWNhMDogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGQ5MjFjZWMgZGQ5MjFj
YzgNClsgMzE1Ny42NjI0OTZdIDFjYzA6IGJmMjEwYjc0IGJmMWUxYjI4IDAwMDAwMTBhIGRkZWUy
YzQwIGRkZWUzMTFjIGRkZWUyYzQ0IGZmZmZmZjk0IGRiOWI4MmQ0DQpbIDMxNTcuNjcxMDkwXSAx
Y2UwOiBkZDkyMWQxNCBkZDkyMWNmMCBiZjIxMGQ2MCBiZjIxMGI1YyBkYjliODI1NCBkZGViMzc4
MCBkZDkyMWQxYyBkZGY3NTQwMA0KWyAzMTU3LjY3OTY4NF0gMWQwMDogZGRlYjM3ODAgMDAwMDAw
MDAgZGQ5MjFkMmMgZGQ5MjFkMTggYmYyMDk0MjQgYmYyMTBjNjggZGRlYjM3ODAgNjAwNTAxOTMN
ClsgMzE1Ny42ODgyNzddIDFkMjA6IGRkOTIxZDRjIGRkOTIxZDMwIGMwNDMzZmU4IGJmMjA5NDA4
IGRkZWIzNjgwIDAwMDAwMDAwIGRiOWI5MDEwIDAwMDAwMDgwDQpbIDMxNTcuNjk2ODcxXSAxZDQw
OiBkZDkyMWQ1YyBkZDkyMWQ1MCBjMDQzNDBkMCBjMDQzM2Y4MCBkZDkyMWQ5NCBkZDkyMWQ2MCBi
ZjA2ODc1MCBjMDQzNDA5Yw0KWyAzMTU3LjcwNTQ2NV0gMWQ2MDogMDAwMDAwMDEgZGRlYjM3ODAg
MDAwMDAwMDAgZGI5YjgyZDQgMDAwMDAwMDAgMDAwMDAwODAgZTBiOWVjMTAgZGRlYjM3ODANClsg
MzE1Ny43MTQwNThdIDFkODA6IDAwMDAwMDAwIDgwMDAwNTgwIGRkOTIxZGJjIGRkOTIxZDk4IGJm
MDY4OWI4IGJmMDY4NjhjIGRkZWIzNzgwIGEwMDUwMTkzDQpbIDMxNTcuNzIyNjUzXSAxZGEwOiBk
ZGViMzY4MCBkYjliODAxMCAwMDAwMDAwMCAwMDAwMDAwMSBkZDkyMWRlYyBkZDkyMWRjMCBiZjA2
OGRjMCBiZjA2ODkxYw0KWyAzMTU3LjczMTI0Nl0gMWRjMDogYmYwNjhjYmMgZGRlYjM3ODAgZGI5
NzU4MzggZGRkYThhMDAgZmZmZmZmOTQgMDAwMDAwMTQgMDAwMDAwMDAgMDAwMDAwMDENClsgMzE1
Ny43Mzk4NDFdIDFkZTA6IGRkOTIxZTE0IGRkOTIxZGYwIGMwNDM0YTY0IGJmMDY4Y2M4IGRkZWIz
NzgwIGRiOTc1ODM4IGRiOTc1ODQ4IGRkZGE4YTAwDQpbIDMxNTcuNzQ4NDM0XSAxZTAwOiAwMDAw
MDAxNCAwMDAwMDAwMCBkZDkyMWUzNCBkZDkyMWUxOCBjMDQzNTk5YyBjMDQzNGEzYyBkYjk3NTgz
OCBkYjk3NTgwMA0KWyAzMTU3Ljc1NzAyOF0gMWUyMDogMDAwMDAwMDAgZGRkYThhMDAgZGQ5MjFl
NGMgZGQ5MjFlMzggYzA0MzgxODQgYzA0MzU4ZjQgZGI5NzU4MDAgMDAwMDAwMDENClsgMzE1Ny43
NjU2MjJdIDFlNDA6IGRkOTIxZTc0IGRkOTIxZTUwIGMwNDM4Mzk4IGMwNDM4MTBjIDAwMDAwMDAz
IGRiOTc1ODAwIGRiOTc1ODljIGRiOTc1ODY4DQpbIDMxNTcuNzc0MjE2XSAxZTYwOiBkZGRhYmEw
MCAwMDAwMDAwMCBkZDkyMWU5YyBkZDkyMWU3OCBjMDQyZWNhMCBjMDQzODIwMCAwMDAwMDAwMyBk
YmE4MjQwMA0KWyAzMTU3Ljc4MjgxMF0gMWU4MDogZGJhODI0OWMgZGJhODI0NjggZGRlMjhhMDAg
ZGRlNzJlMDAgZGQ5MjFlYzQgZGQ5MjFlYTAgYzA0MmVjODggYzA0MmVjMTQNClsgMzE1Ny43OTE0
MDNdIDFlYTA6IDAwMDAwMDAwIDAwMDAwMDAxIGRiYTk1ODAwIGRkZTUwODJjIGRiYTk1ODAwIDAw
MDAwMDAxIGRkOTIxZjY0IGRkOTIxZWM4DQpbIDMxNTcuNzk5OTk4XSAxZWMwOiBjMDQzMWU4MCBj
MDQyZWMxNCBkZDkyMWVmNCBkZDkyMWVkOCBjMGJmYTIwMCBjMGMxM2NhMCAwMDAwMDAwMSBkYmE4
MjQwMA0KWyAzMTU3LjgwODU5MV0gMWVlMDogMDAwMDAwMDAgZGRmZWJhMjAgMDAwMDAwMTEgZGRl
NTA4MDggZGRkYThhMDAgMDAwMDAxMDAgZGRlNTA4MzggMDAwMDAwMDANClsgMzE1Ny44MTcxODZd
IDFmMDA6IGRkZTUwODNjIGRkZmViYTIwIGMwYmNlZjRjIGRiYTk1ODljIGRkZTUwODAwIGRkZmVi
YTAwIGMwNDMxM2QwIDAxMDAwMDAwDQpbIDMxNTcuODI1Nzc5XSAxZjIwOiAwMDAwMDAwMSAwMDAw
MDAwMCBkZDhlZjAwMCBjMDA1Y2VlMCBkZDkyMWYzMCBkZDkyMWYzMCBjMDQzMTNkMCAwMDAwMDAw
MA0KWyAzMTU3LjgzNDM3M10gMWY0MDogZGQ5MzMxYzAgMDAwMDAwMDAgYzA0MzEzZDAgMDAwMDAw
MDAgMDAwMDAwMDAgMDAwMDAwMDAgZGQ5MjFmYWMgZGQ5MjFmNjgNClsgMzE1Ny44NDI5NjddIDFm
NjA6IGMwMDUwMDNjIGMwNDMxM2RjIDAwMDAwMDAwIDAwMDAwMDAwIGRkOTIxZjljIDAwMDAwMDAw
IDAwMDAwMDAwIGRkOTIxZjdjDQpbIDMxNTcuODUxNTYxXSAxZjgwOiBkZDkyMWY3YyAwMDAwMDAw
MCBkZDkyMWY4OCBkZDkyMWY4OCBkZDkzMzFjMCBjMDA0ZmY3MCAwMDAwMDAwMCAwMDAwMDAwMA0K
WyAzMTU3Ljg2MDE1NV0gMWZhMDogMDAwMDAwMDAgZGQ5MjFmYjAgYzAwMGU3YzAgYzAwNGZmN2Mg
MDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDANClsgMzE1Ny44Njg3NDddIDFmYzA6
IDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAw
MDAwMDAwIDAwMDAwMDAwDQpbIDMxNTcuODc3MzQxXSAxZmUwOiAwMDAwMDAwMCAwMDAwMDAwMCAw
MDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAxMyAwMDAwMDAwMCA4YTAwMDg0MCAwMjEwMDg3OA0KWyAz
MTU3Ljg4NTkxNV0gQmFja3RyYWNlOg0KWyAzMTU3Ljg4ODU1NV0gWzxiZjFlMWIxYz5dIChydDJ4
MDBxdWV1ZV9nZXRfZW50cnkgW3J0MngwMGxpYl0pIGZyb20gWzxiZjIxMGI3ND5dIChydDI4MDB1
c2JfdHhzdGF0dXNfcGVuZGluZy5pc3JhLjUrMHgyNC8weDc4IFtydDI4MDB1c2JdKQ0KWyAzMTU3
LjkwMTQ1MF0gWzxiZjIxMGI1MD5dIChydDI4MDB1c2JfdHhzdGF0dXNfcGVuZGluZy5pc3JhLjUg
W3J0MjgwMHVzYl0pIGZyb20gWzxiZjIxMGQ2MD5dIChydDI4MDB1c2JfdHhfc3RhX2ZpZm9fcmVh
ZF9jb21wbGV0ZWQrMHgxMDQvMHgxNWMgW3J0MjgwMHVzYl0pDQpbIDMxNTcuOTE1ODU2XSAgcjg6
ZGI5YjgyZDQgcjc6ZmZmZmZmOTQgcjY6ZGRlZTJjNDQgcjU6ZGRlZTMxMWMgcjQ6ZGRlZTJjNDAg
cjM6MDAwMDAxMGENClsgMzE1Ny45MjQwNzBdIFs8YmYyMTBjNWM+XSAocnQyODAwdXNiX3R4X3N0
YV9maWZvX3JlYWRfY29tcGxldGVkIFtydDI4MDB1c2JdKSBmcm9tIFs8YmYyMDk0MjQ+XSAocnQy
eDAwdXNiX3JlZ2lzdGVyX3JlYWRfYXN5bmNfY2IrMHgyOC8weDUwIFtydDJ4MDB1c2JdKQ0KWyAz
MTU3LjkzODIwNF0gIHI2OjAwMDAwMDAwIHI1OmRkZWIzNzgwIHI0OmRkZjc1NDAwDQpbIDMxNTcu
OTQzMTIyXSBbPGJmMjA5M2ZjPl0gKHJ0MngwMHVzYl9yZWdpc3Rlcl9yZWFkX2FzeW5jX2NiIFty
dDJ4MDB1c2JdKSBmcm9tIFs8YzA0MzNmZTg+XSAoX191c2JfaGNkX2dpdmViYWNrX3VyYisweDc0
LzB4MTFjKQ0KWyAzMTU3Ljk1NDk4MF0gIHI1OjYwMDUwMTkzIHI0OmRkZWIzNzgwDQpbIDMxNTcu
OTU4NzcxXSBbPGMwNDMzZjc0Pl0gKF9fdXNiX2hjZF9naXZlYmFja191cmIpIGZyb20gWzxjMDQz
NDBkMD5dICh1c2JfaGNkX2dpdmViYWNrX3VyYisweDQwLzB4ZTQpDQpbIDMxNTcuOTY4MzUwXSAg
cjc6MDAwMDAwODAgcjY6ZGI5YjkwMTAgcjU6MDAwMDAwMDAgcjQ6ZGRlYjM2ODANClsgMzE1Ny45
NzQ0MDBdIFs8YzA0MzQwOTA+XSAodXNiX2hjZF9naXZlYmFja191cmIpIGZyb20gWzxiZjA2ODc1
MD5dIChtdXNiX2FkdmFuY2Vfc2NoZWR1bGUrMHhkMC8weDI5MCBbbXVzYl9oZHJjXSkNClsgMzE1
Ny45ODUxNDZdIFs8YmYwNjg2ODA+XSAobXVzYl9hZHZhbmNlX3NjaGVkdWxlIFttdXNiX2hkcmNd
KSBmcm9tIFs8YmYwNjg5Yjg+XSAobXVzYl9jbGVhbnVwX3VyYi5pc3JhLjIwKzB4YTgvMHgxMjAg
W211c2JfaGRyY10pDQpbIDMxNTcuOTk3Mjc2XSAgcjEwOjgwMDAwNTgwIHI5OjAwMDAwMDAwIHI4
OmRkZWIzNzgwIHI3OmUwYjllYzEwIHI2OjAwMDAwMDgwIHI1OjAwMDAwMDAwDQpbIDMxNTguMDA1
NTMzXSAgcjQ6ZGI5YjgyZDQNClsgMzE1OC4wMDgyNjddIFs8YmYwNjg5MTA+XSAobXVzYl9jbGVh
bnVwX3VyYi5pc3JhLjIwIFttdXNiX2hkcmNdKSBmcm9tIFs8YmYwNjhkYzA+XSAobXVzYl91cmJf
ZGVxdWV1ZSsweDEwNC8weDEwYyBbbXVzYl9oZHJjXSkNClsgMzE1OC4wMjAwMzNdICByOTowMDAw
MDAwMSByODowMDAwMDAwMCByNzpkYjliODAxMCByNjpkZGViMzY4MCByNTphMDA1MDE5MyByNDpk
ZGViMzc4MA0KWyAzMTU4LjAyODI1MF0gWzxiZjA2OGNiYz5dIChtdXNiX3VyYl9kZXF1ZXVlIFtt
dXNiX2hkcmNdKSBmcm9tIFs8YzA0MzRhNjQ+XSAodW5saW5rMSsweDM0LzB4MTFjKQ0KWyAzMTU4
LjAzNzI4NV0gIHIxMDowMDAwMDAwMSByOTowMDAwMDAwMCByODowMDAwMDAxNCByNzpmZmZmZmY5
NCByNjpkZGRhOGEwMCByNTpkYjk3NTgzOA0KWyAzMTU4LjA0NTU0Ml0gIHI0OmRkZWIzNzgwIHIz
OmJmMDY4Y2JjDQpbIDMxNTguMDQ5MzMwXSBbPGMwNDM0YTMwPl0gKHVubGluazEpIGZyb20gWzxj
MDQzNTk5Yz5dICh1c2JfaGNkX2ZsdXNoX2VuZHBvaW50KzB4YjQvMHhkNCkNClsgMzE1OC4wNTc3
MjVdICByOTowMDAwMDAwMCByODowMDAwMDAxNCByNzpkZGRhOGEwMCByNjpkYjk3NTg0OCByNTpk
Yjk3NTgzOCByNDpkZGViMzc4MA0KWyAzMTU4LjA2NTkxOV0gWzxjMDQzNThlOD5dICh1c2JfaGNk
X2ZsdXNoX2VuZHBvaW50KSBmcm9tIFs8YzA0MzgxODQ+XSAodXNiX2Rpc2FibGVfZW5kcG9pbnQr
MHg4NC8weDk4KQ0KWyAzMTU4LjA3NTQ5OF0gIHI3OmRkZGE4YTAwIHI2OjAwMDAwMDAwIHI1OmRi
OTc1ODAwIHI0OmRiOTc1ODM4DQpbIDMxNTguMDgxNDkyXSBbPGMwNDM4MTAwPl0gKHVzYl9kaXNh
YmxlX2VuZHBvaW50KSBmcm9tIFs8YzA0MzgzOTg+XSAodXNiX2Rpc2FibGVfZGV2aWNlKzB4MWE0
LzB4MWU0KQ0KWyAzMTU4LjA5MDg4OV0gIHI1OjAwMDAwMDAxIHI0OmRiOTc1ODAwDQpbIDMxNTgu
MDk0Njc2XSBbPGMwNDM4MWY0Pl0gKHVzYl9kaXNhYmxlX2RldmljZSkgZnJvbSBbPGMwNDJlY2Ew
Pl0gKHVzYl9kaXNjb25uZWN0KzB4OTgvMHgxNmMpDQpbIDMxNTguMTAzNDM1XSAgcjk6MDAwMDAw
MDAgcjg6ZGRkYWJhMDAgcjc6ZGI5NzU4NjggcjY6ZGI5NzU4OWMgcjU6ZGI5NzU4MDAgcjQ6MDAw
MDAwMDMNClsgMzE1OC4xMTE2MjFdIFs8YzA0MmVjMDg+XSAodXNiX2Rpc2Nvbm5lY3QpIGZyb20g
WzxjMDQyZWM4OD5dICh1c2JfZGlzY29ubmVjdCsweDgwLzB4MTZjKQ0KWyAzMTU4LjEyMDAxN10g
IHI5OmRkZTcyZTAwIHI4OmRkZTI4YTAwIHI3OmRiYTgyNDY4IHI2OmRiYTgyNDljIHI1OmRiYTgy
NDAwIHI0OjAwMDAwMDAzDQpbIDMxNTguMTI4MjAzXSBbPGMwNDJlYzA4Pl0gKHVzYl9kaXNjb25u
ZWN0KSBmcm9tIFs8YzA0MzFlODA+XSAoaHViX3RocmVhZCsweGFiMC8weDExZGMpDQpbIDMxNTgu
MTM2NDE2XSAgcjk6MDAwMDAwMDEgcjg6ZGJhOTU4MDAgcjc6ZGRlNTA4MmMgcjY6ZGJhOTU4MDAg
cjU6MDAwMDAwMDEgcjQ6MDAwMDAwMDANClsgMzE1OC4xNDQ2MDhdIFs8YzA0MzEzZDA+XSAoaHVi
X3RocmVhZCkgZnJvbSBbPGMwMDUwMDNjPl0gKGt0aHJlYWQrMHhjYy8weGU0KQ0KWyAzMTU4LjE1
MTkxMV0gIHIxMDowMDAwMDAwMCByOTowMDAwMDAwMCByODowMDAwMDAwMCByNzpjMDQzMTNkMCBy
NjowMDAwMDAwMCByNTpkZDkzMzFjMA0KWyAzMTU4LjE2MDE2OF0gIHI0OjAwMDAwMDAwDQpbIDMx
NTguMTYyODU4XSBbPGMwMDRmZjcwPl0gKGt0aHJlYWQpIGZyb20gWzxjMDAwZTdjMD5dIChyZXRf
ZnJvbV9mb3JrKzB4MTQvMHgzNCkNClsgMzE1OC4xNzA0MzZdICByNzowMDAwMDAwMCByNjowMDAw
MDAwMCByNTpjMDA0ZmY3MCByNDpkZDkzMzFjMA0KWyAzMTU4LjE3NjQyMF0gQ29kZTogOGEwMDAw
MDggZTEwZjEwMDAgZjEwYzAwODAgZTA4MDMwODMgKGU1OTAyMDA0KQ0KWyAzMTU4LjE4Mjg0NV0g
LS0tWyBlbmQgdHJhY2UgNzIzYzZkY2U1ZGRlYjhhYyBdLS0tDQoNCi0tDQpDcmFpZyBNY1F1ZWVu
DQoNCg==

2016-05-10 07:14:43

by Yegor Yefremov

[permalink] [raw]
Subject: Re: rt2800 and BeagleBone Black soft lockup when unplugging from USB hub

Hi Craig,

On Tue, May 10, 2016 at 8:08 AM, Craig McQueen
<[email protected]> wrote:
> I previously wrote:
>> I previously wrote:
>> > I previously wrote:
>> > >
>> > > I have a D-Link DWA-140 USB Wi-Fi device which is rt2800 based (5392
>> > > chipset). I've been testing it on a BeagleBone Black running an
>> > > Ubuntu
>> > > 16.04 image (4.4.6 kernel), with a USB hub.
>> > >
>> > > When I unplug the Wi-Fi device from the USB hub, and it's connected
>> > > to an access point, and then I unplug it, the OS appears to lock up.
>> > > I get messages about a soft lockup on the serial console:
>> > >
>> > > [ 9736.136702] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s!
>> > > [kworker/u2:0:1129] [ 9764.136701] NMI watchdog: BUG: soft lockup -
>> > > CPU#0 stuck for 22s! [kworker/u2:0:1129] [ 9792.136701] NMI watchdog:
>> > > BUG: soft lockup - CPU#0 stuck for 22s! [kworker/u2:0:1129] [
>> > > 9820.136699] NMI
>> > > watchdog: BUG: soft lockup - CPU#0 stuck for 22s!
>> > > [kworker/u2:0:1129] [ 9848.136696] NMI watchdog: BUG: soft lockup -
>> CPU#0 stuck for 22s!
>> > > [kworker/u2:0:1129]
>> > >
>> > > This will repeat indefinitely, until I unplug the hub, which
>> > > resolves the soft lockup and then the system seems to function normally.
>> > >
>> > > I've attached a dmesg log of the soft lockup stack traces. They seem
>> > > to indicate a lockup in workqueue rt2x00usb_work_rxdone()
>> > > (specifically in
>> > > usb_hcd_submit_urb() called from rt2x00usb_kick_rx_entry() called
>> > > from rt2x00usb_clear_entry()).
>> > >
>> > > I originally found this bug on a 3.14.x kernel built with Yocto for
>> > > a BeagleBone Black-based product. So it seems this is a bug that has
>> > > been around for some time.
>> >
>> > I should also note that on the 3.14.x Yocto-built kernel on BeagleBone
>> > Black, this bug does not occur if the rt2800 device is unplugged
>> > directly from the BBB's USB port. It only occurs if unplugged from a hub.
>> >
>> > I have tested this on an i586 based eBox-3310A mini-PC running Debian
>> > 8.4, which has a 3.16.0 kernel, with the same hub and same rt2800
>> > device. But I was not able to reproduce this issue.
>>
>> There is a patch for the AM335x musb driver that seems to fix this:
>>
>> http://marc.info/?l=linux-usb&m=146173995117456&w=2
>>
>> So it seems that this issue's root cause is in the AM335x USB interrupt
>> handling, and not the Wi-Fi rt2800 driver.
>
> Having applied two AM335x USB patches in the 3.14.49 kernel, that does seem to resolve the soft lock-up on the RX side. The two patches are:
>
> http://marc.info/?l=linux-usb&m=146173995117456&w=2
> http://marc.info/?l=linux-usb&m=146222355213935&w=2
>
> But I am finding there is still a lock-up issue when unplugging from a hub, this time on the TX side. It is more likely if there is Wi-Fi traffic in progress when the unplug occurs. I'm attaching a log. Essentially there are a heap of lines (100 or so per second):
>
> [ 1866.693511] ieee80211 phy7: rt2800usb_tx_sta_fifo_read_completed: Warning - TX status read failed -71
>
> Which finally stop shortly after USB disconnect is detected:
>
> [ 1866.985854] usb 1-1.3: USB disconnect, device number 10
>
> However that disconnect message is typically 30-90 seconds after the unplug happened. It seems that the USB disconnect detection is delayed due to the CPU load of the TX.
>
> I also sometimes see a kernel panic. That can occur whether connected to a USB hub or directly to the on-board USB port. See the attached log.
>
> I'm not so familiar with either the Wi-Fi or USB stacks in the Linux kernel, so I would appreciate any advice with debugging and fixing this. (My previous investigations indicate these issues are present in both 3.14.x kernel and 4.4.6 kernel. I'm more familiar with working with the 3.14.x kernel under Yocto, but I could try moving to 4.4.6 kernel for Ubuntu. I'm open to advice on which to investigate on.)

Take a look at this patch: http://marc.info/?l=linux-usb&m=146222355213935&w=2

If it fixes your issue please provide your "tested-by" tag here.

Yegor