Re: via-rhine timeouts

Urban Widmark (urban@teststation.com)
Tue, 29 Jan 2002 22:06:50 +0100 (CET)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

---1463780587-359932590-1012338410=:6137
Content-Type: TEXT/PLAIN; charset=US-ASCII

On 28 Jan 2002, Justin A wrote:

> Ok, it was working for a while, even after a reboot...
> but now
> 21:04:33 up 2 days, 20 min, 10 users, load average: 0.12, 0.47, 0.38
>
> Jan 28 01:39:10 bouncybouncy kernel: eth0: Transmitter underflow?,
> status 2008.

This is not a transmit underflow (I was lazy when adding that message,
this is what the ? is about). It is a transmit abort caused by excessive
collisions.
2000 - transmit abort because of excessive collisions
0008 - transmit error

It is interesting that the linuxfet driver does not fail/recovers. I have
added some more code from that driver and attached a new version of the
patch. It re-initializes the ring pointer and tells the card to try to
transmit the packet again.

> Jan 28 20:26:06 bouncybouncy kernel: eth0: reset finished after 10005
> microseconds.

The "You have reset me too many times. Go away." error.

> After reloading the driver it started working again:
>
> linuxfet.c : v3.23 05/15/2001
> The PCI BIOS has not enabled the device at 0/144! Updating PCI
> command 0003->0007.
> eth0: VIA PCI 10/100Mb Fast Ethernet Adapter
> eth0: IO Address = 0xe800, MAC Address = 00:50:2c:01:64:a9, IRQ = 11.
> eth0: MII PHY found at address 1, status 0x782d advertising 01e1 Link
> 0021.
> eth0: netdev_open() irq 11.
> eth0: Done netdev_open(), status 881a MII status: 782d.

0003->0007 is that it turns on bus mastering. I have copied the code from
the linuxfet driver that sets that bit. But for me that is set later by
the pci_set_master function, and I think the warning is incorrect.

After reloading the linuxfet driver, does the via-rhine driver work better
if you switch back to it without rebooting?

> I think that last message might be a clue on why this is happening...

Which message are you refering to? I don't feel particularly clueful after
reading any of it. :)

/Urban

---1463780587-359932590-1012338410=:6137
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="2.4.17-rhine-2.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.33.0201292206500.6137@cola.teststation.com>
Content-Description:
Content-Disposition: attachment; filename="2.4.17-rhine-2.patch"

ZGlmZiAtdXJOIC1YIGV4Y2x1ZGUgbGludXgtMi40LjE3LW9yaWcvZHJpdmVy
cy9uZXQvdmlhLXJoaW5lLmMgbGludXgtMi40LjE3LXJoaW5lL2RyaXZlcnMv
bmV0L3ZpYS1yaGluZS5jDQotLS0gbGludXgtMi40LjE3LW9yaWcvZHJpdmVy
cy9uZXQvdmlhLXJoaW5lLmMJU2F0IEphbiAxMiAxNjo1Njo1MCAyMDAyDQor
KysgbGludXgtMi40LjE3LXJoaW5lL2RyaXZlcnMvbmV0L3ZpYS1yaGluZS5j
CVR1ZSBKYW4gMjkgMjE6NDk6NDMgMjAwMg0KQEAgLTgyLDcgKzgyLDcgQEAN
CiAvKiBBIGZldyB1c2VyLWNvbmZpZ3VyYWJsZSB2YWx1ZXMuDQogICAgVGhl
c2UgbWF5IGJlIG1vZGlmaWVkIHdoZW4gYSBkcml2ZXIgbW9kdWxlIGlzIGxv
YWRlZC4gKi8NCiANCi1zdGF0aWMgaW50IGRlYnVnID0gMTsJCQkvKiAxIG5v
cm1hbCBtZXNzYWdlcywgMCBxdWlldCAuLiA3IHZlcmJvc2UuICovDQorc3Rh
dGljIGludCBkZWJ1ZyA9IDM7CQkJLyogMSBub3JtYWwgbWVzc2FnZXMsIDAg
cXVpZXQgLi4gNyB2ZXJib3NlLiAqLw0KIHN0YXRpYyBpbnQgbWF4X2ludGVy
cnVwdF93b3JrID0gMjA7DQogDQogLyogU2V0IHRoZSBjb3B5IGJyZWFrcG9p
bnQgZm9yIHRoZSBjb3B5LW9ubHktdGlueS1mcmFtZXMgc2NoZW1lLg0KQEAg
LTMxOCw3ICszMTgsNyBAQA0KIA0KIGVudW0gY2hpcF9jYXBhYmlsaXR5X2Zs
YWdzIHsNCiAJQ2FuSGF2ZU1JST0xLCBIYXNFU0lQaHk9MiwgSGFzRGF2aWNv
bVBoeT00LA0KLQlSZXFUeEFsaWduPTB4MTAsIEhhc1dPTD0weDIwLCB9Ow0K
KwlSZXFUeEFsaWduPTB4MTAsIEhhc1dPTD0weDIwLCBIYXNJbnRUeFVuZGVy
Rmxvdz0weDQwLCB9Ow0KIA0KICNpZmRlZiBVU0VfTUVNDQogI2RlZmluZSBS
SElORV9JT1RZUEUgKFBDSV9VU0VTX01FTSB8IFBDSV9VU0VTX01BU1RFUiB8
IFBDSV9BRERSMSkNCkBAIC0zMzIsMTEgKzMzMiwxMyBAQA0KIAl7ICJWSUEg
VlQ4NkMxMDBBIFJoaW5lIiwgUkhJTkVfSU9UWVBFLCAxMjgsDQogCSAgQ2Fu
SGF2ZU1JSSB8IFJlcVR4QWxpZ24gfSwNCiAJeyAiVklBIFZUNjEwMiBSaGlu
ZS1JSSIsIFJISU5FX0lPVFlQRSwgMjU2LA0KLQkgIENhbkhhdmVNSUkgfCBI
YXNXT0wgfSwNCisJICBDYW5IYXZlTUlJIHwgSGFzV09MIHwgSGFzSW50VHhV
bmRlckZsb3cgfSwNCiAJeyAiVklBIFZUMzA0MyBSaGluZSIsICAgIFJISU5F
X0lPVFlQRSwgMTI4LA0KIAkgIENhbkhhdmVNSUkgfCBSZXFUeEFsaWduIH0N
CiB9Ow0KIA0KKyNkZWZpbmUgTUlJX0RBVklDT01fRE05MTAxCQkweDAxODFi
ODAwDQorDQogc3RhdGljIHN0cnVjdCBwY2lfZGV2aWNlX2lkIHZpYV9yaGlu
ZV9wY2lfdGJsW10gX19kZXZpbml0ZGF0YSA9DQogew0KIAl7MHgxMTA2LCAw
eDYxMDAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFZUODZDMTAw
QX0sDQpAQCAtMzczLDI3ICszNzUsMTQgQEANCiAJSW50clJ4RG9uZT0weDAw
MDEsIEludHJSeEVycj0weDAwMDQsIEludHJSeEVtcHR5PTB4MDAyMCwNCiAJ
SW50clR4RG9uZT0weDAwMDIsIEludHJUeEFib3J0PTB4MDAwOCwgSW50clR4
VW5kZXJydW49MHgwMDEwLA0KIAlJbnRyUENJRXJyPTB4MDA0MCwNCi0JSW50
clN0YXRzTWF4PTB4MDA4MCwgSW50clJ4RWFybHk9MHgwMTAwLCBJbnRyTUlJ
Q2hhbmdlPTB4MDIwMCwNCisJSW50clN0YXRzTWF4PTB4MDA4MCwgSW50clJ4
RWFybHk9MHgwMTAwLA0KKwlJbnRyTUlJQ2hhbmdlPTB4MDIwMCwgSW50clR4
VW5kZXJmbG93PTB4MDIwMCwJLyogc2VlIEhhc0ludFR4VW5kZXJGbG93ICov
DQogCUludHJSeE92ZXJmbG93PTB4MDQwMCwgSW50clJ4RHJvcHBlZD0weDA4
MDAsIEludHJSeE5vQnVmPTB4MTAwMCwNCiAJSW50clR4QWJvcnRlZD0weDIw
MDAsIEludHJMaW5rQ2hhbmdlPTB4NDAwMCwNCiAJSW50clJ4V2FrZVVwPTB4
ODAwMCwNCiAJSW50ck5vcm1hbFN1bW1hcnk9MHgwMDAzLCBJbnRyQWJub3Jt
YWxTdW1tYXJ5PTB4QzI2MCwNCiB9Ow0KIA0KLS8qIE1JSSBpbnRlcmZhY2Us
IHN0YXR1cyBmbGFncy4NCi0gICBOb3QgdG8gYmUgY29uZnVzZWQgd2l0aCB0
aGUgTUlJU3RhdHVzIHJlZ2lzdGVyIC4uLiAqLw0KLWVudW0gbWlpX3N0YXR1
c19iaXRzIHsNCi0JTUlJQ2FwMTAwVDQJCQk9IDB4ODAwMCwNCi0JTUlJQ2Fw
MTAxMDBIZEZkCQk9IDB4NzgwMCwNCi0JTUlJUHJlYW1ibGVTdXByCQk9IDB4
MDA0MCwNCi0JTUlJQXV0b05lZ0NvbXBsZXRlZAk9IDB4MDAyMCwNCi0JTUlJ
UmVtb3RlRmF1bHQJCT0gMHgwMDEwLA0KLQlNSUlDYXBBdXRvTmVnCQk9IDB4
MDAwOCwNCi0JTUlJTGluawkJCQk9IDB4MDAwNCwNCi0JTUlJSmFiYmVyCQkJ
PSAweDAwMDIsDQotCU1JSUV4dGVuZGVkCQkJPSAweDAwMDENCi19Ow0KLQ0K
IC8qIFRoZSBSeCBhbmQgVHggYnVmZmVyIGRlc2NyaXB0b3JzLiAqLw0KIHN0
cnVjdCByeF9kZXNjIHsNCiAJczMyIHJ4X3N0YXR1czsNCkBAIC00NTMsNiAr
NDQyLDcgQEANCiANCiAJLyogRnJlcXVlbnRseSB1c2VkIHZhbHVlczoga2Vl
cCBzb21lIGFkamFjZW50IGZvciBjYWNoZSBlZmZlY3QuICovDQogCWludCBj
aGlwX2lkLCBkcnZfZmxhZ3M7DQorCXU4IHJldl9pZDsNCiAJc3RydWN0IHJ4
X2Rlc2MgKnJ4X2hlYWRfZGVzYzsNCiAJdW5zaWduZWQgaW50IGN1cl9yeCwg
ZGlydHlfcng7CQkvKiBQcm9kdWNlci9jb25zdW1lciByaW5nIGluZGljZXMg
Ki8NCiAJdW5zaWduZWQgaW50IGN1cl90eCwgZGlydHlfdHg7DQpAQCAtNDY5
LDEzICs0NTksMTMgQEANCiAJdTE2IGFkdmVydGlzaW5nOwkJCQkJLyogTldh
eSBtZWRpYSBhZHZlcnRpc2VtZW50ICovDQogCXVuc2lnbmVkIGNoYXIgcGh5
c1tNQVhfTUlJX0NOVF07CQkJLyogTUlJIGRldmljZSBhZGRyZXNzZXMuICov
DQogCXVuc2lnbmVkIGludCBtaWlfY250OwkJCS8qIG51bWJlciBvZiBNSUlz
IGZvdW5kLCBidXQgb25seSB0aGUgZmlyc3Qgb25lIGlzIHVzZWQgKi8NCi0J
dTE2IG1paV9zdGF0dXM7CQkJCQkJLyogbGFzdCByZWFkIE1JSSBzdGF0dXMg
Ki8NCisJdTMyIG1paTsNCiB9Ow0KIA0KIHN0YXRpYyBpbnQgIG1kaW9fcmVh
ZChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgcGh5X2lkLCBpbnQgbG9j
YXRpb24pOw0KIHN0YXRpYyB2b2lkIG1kaW9fd3JpdGUoc3RydWN0IG5ldF9k
ZXZpY2UgKmRldiwgaW50IHBoeV9pZCwgaW50IGxvY2F0aW9uLCBpbnQgdmFs
dWUpOw0KIHN0YXRpYyBpbnQgIHZpYV9yaGluZV9vcGVuKHN0cnVjdCBuZXRf
ZGV2aWNlICpkZXYpOw0KLXN0YXRpYyB2b2lkIHZpYV9yaGluZV9jaGVja19k
dXBsZXgoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7DQorc3RhdGljIGludCAg
dmlhX3JoaW5lX2NoZWNrX2R1cGxleChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2
KTsNCiBzdGF0aWMgdm9pZCB2aWFfcmhpbmVfdGltZXIodW5zaWduZWQgbG9u
ZyBkYXRhKTsNCiBzdGF0aWMgdm9pZCB2aWFfcmhpbmVfdHhfdGltZW91dChz
dHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsNCiBzdGF0aWMgaW50ICB2aWFfcmhp
bmVfc3RhcnRfdHgoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9k
ZXZpY2UgKmRldik7DQpAQCAtNTU0LDcgKzU0NCw4IEBADQogI2lmZGVmIFVT
RV9NRU0NCiAJbG9uZyBpb2FkZHIwOw0KICNlbmRpZg0KLQkNCisJdTE2IHBj
aV9jb21tYW5kLCBuZXdfY29tbWFuZDsNCisNCiAvKiB3aGVuIGJ1aWx0IGlu
dG8gdGhlIGtlcm5lbCwgd2Ugb25seSBwcmludCB2ZXJzaW9uIGlmIGRldmlj
ZSBpcyBmb3VuZCAqLw0KICNpZm5kZWYgTU9EVUxFDQogCXN0YXRpYyBpbnQg
cHJpbnRlZF92ZXJzaW9uOw0KQEAgLTU3MCw2ICs1NjEsOSBAQA0KIAlpZiAo
cGNpX2VuYWJsZV9kZXZpY2UgKHBkZXYpKQ0KIAkJZ290byBlcnJfb3V0Ow0K
IA0KKwlwY2lfcmVhZF9jb25maWdfd29yZChwZGV2LCBQQ0lfQ09NTUFORCwg
JnBjaV9jb21tYW5kKTsNCisJcHJpbnRrKEtFUk5fREVCVUcgIlBDSV9DT01N
QU5EOiAlNC40eFxuIiwgcGNpX2NvbW1hbmQpOw0KKw0KIAkvKiB0aGlzIHNo
b3VsZCBhbHdheXMgYmUgc3VwcG9ydGVkICovDQogCWlmIChwY2lfc2V0X2Rt
YV9tYXNrKHBkZXYsIDB4ZmZmZmZmZmYpKSB7DQogCQlwcmludGsoS0VSTl9F
UlIgIjMyLWJpdCBQQ0kgRE1BIGFkZHJlc3NlcyBub3Qgc3VwcG9ydGVkIGJ5
IHRoZSBjYXJkIT9cbiIpOw0KQEAgLTU4OSw2ICs1ODMsMjAgQEANCiAJaWYg
KHBjaV9mbGFncyAmIFBDSV9VU0VTX01BU1RFUikNCiAJCXBjaV9zZXRfbWFz
dGVyIChwZGV2KTsNCiANCisJcGNpX3JlYWRfY29uZmlnX3dvcmQocGRldiwg
UENJX0NPTU1BTkQsICZwY2lfY29tbWFuZCk7DQorCXByaW50ayhLRVJOX0RF
QlVHICJQQ0lfQ09NTUFORDogJTQuNHhcbiIsIHBjaV9jb21tYW5kKTsNCisJ
aWYgKCEocGNpX2NvbW1hbmQgJiBQQ0lfQ09NTUFORF9NQVNURVIpKSB7DQor
CQkvKiBUcnkgdG8gc2V0ICovDQorCQlwcmludGsoS0VSTl9JTkZPICIgIFRo
ZSBQQ0kgQklPUyBoYXMgbm90IGVuYWJsZWQgdGhlIg0KKwkJCSAgICIgZGV2
aWNlIGF0ICVkLyVkISAgVXBkYXRpbmcgUENJIGNvbW1hbmQgJTQuNHgtPiU0
LjR4LlxuIiwNCisJCQkgICBwZGV2LT5idXMtPm51bWJlciwgcGRldi0+ZGV2
Zm4sIHBjaV9jb21tYW5kLCBuZXdfY29tbWFuZCk7DQorCQluZXdfY29tbWFu
ZCA9IHBjaV9jb21tYW5kIHwgKHBjaV9mbGFncyAmIDcpOw0KKwkJcGNpX3dy
aXRlX2NvbmZpZ193b3JkKHBkZXYsIFBDSV9DT01NQU5ELCBuZXdfY29tbWFu
ZCk7DQorDQorCQlwY2lfcmVhZF9jb25maWdfd29yZChwZGV2LCBQQ0lfQ09N
TUFORCwgJnBjaV9jb21tYW5kKTsNCisJCXByaW50ayhLRVJOX0RFQlVHICJQ
Q0lfQ09NTUFORDogJTQuNHhcbiIsIHBjaV9jb21tYW5kKTsNCisJfQ0KKw0K
IAlkZXYgPSBhbGxvY19ldGhlcmRldihzaXplb2YoKm5wKSk7DQogCWlmIChk
ZXYgPT0gTlVMTCkgew0KIAkJcHJpbnRrIChLRVJOX0VSUiAiaW5pdF9ldGhl
cm5ldCBmYWlsZWQgZm9yIGNhcmQgIyVkXG4iLCBjYXJkX2lkeCk7DQpAQCAt
NjY3LDE5ICs2NzUsMzEgQEANCiAJCWdvdG8gZXJyX291dF91bm1hcDsNCiAJ
fQ0KIA0KKwkvKiAiMzA2NSIgc3BlY2lhbHMgLi4uICovDQogCWlmIChjaGlw
X2lkID09IFZUNjEwMikgew0KKwkJdTggbW9kZTNfcmVnOw0KKw0KIAkJLyoN
CiAJCSAqIGZvciAzMDY1RCwgRUVQUk9NIHJlbG9hZGVkIHdpbGwgY2F1c2Ug
Yml0IDAgaW4gTUFDX1JFR19DRkdBDQogCQkgKiB0dXJuZWQgb24uICBpdCBt
YWtlcyBNQUMgcmVjZWl2ZSBtYWdpYyBwYWNrZXQNCiAJCSAqIGF1dG9tYXRp
Y2FsbHkuIFNvLCB3ZSB0dXJuIGl0IG9mZi4gKEQtTGluaykNCiAJCSAqLw0K
IAkJd3JpdGViKHJlYWRiKGlvYWRkciArIENvbmZpZ0EpICYgMHhGRSwgaW9h
ZGRyICsgQ29uZmlnQSk7DQorDQorCQkvKg0KKwkJICogdHVybiBvbiBiaXQy
IGluIFBDSSBjb25maWd1cmF0aW9uIHJlZ2lzdGVyIDB4NTMgKCJQQ0lfUkVH
X01PREUzIikNCisJCSAqIDB4MDQgPT0gTU9ERTNfTUlJT04NCisJCSAqIEZJ
WE1FOiB3aGF0IGRvZXMgdGhpcyBkbz8NCisJCSAqLw0KKwkJcGNpX3JlYWRf
Y29uZmlnX2J5dGUocGRldiwgMHg1MywgJm1vZGUzX3JlZyk7DQorCQlwY2lf
d3JpdGVfY29uZmlnX2J5dGUocGRldiwgMHg1MywgbW9kZTNfcmVnIHwgMHgw
NCk7DQogCX0NCiANCiAJZGV2LT5pcnEgPSBwZGV2LT5pcnE7DQogDQogCW5w
ID0gZGV2LT5wcml2Ow0KIAlzcGluX2xvY2tfaW5pdCAoJm5wLT5sb2NrKTsN
CisJcGNpX3JlYWRfY29uZmlnX2J5dGUocGRldiwgUENJX1JFVklTSU9OX0lE
LCAmKG5wLT5yZXZfaWQpKTsNCiAJbnAtPmNoaXBfaWQgPSBjaGlwX2lkOw0K
IAlucC0+ZHJ2X2ZsYWdzID0gdmlhX3JoaW5lX2NoaXBfaW5mb1tjaGlwX2lk
XS5kcnZfZmxhZ3M7DQogCW5wLT5wZGV2ID0gcGRldjsNCkBAIC03MTgsOCAr
NzM4LDkgQEANCiAJaWYgKGkpDQogCQlnb3RvIGVycl9vdXRfdW5tYXA7DQog
DQotCXByaW50ayhLRVJOX0lORk8gIiVzOiAlcyBhdCAweCVseCwgIiwNCisJ
cHJpbnRrKEtFUk5fSU5GTyAiJXM6ICVzIChyZXYgMHglMDJ4KSBhdCAweCVs
eCwgIiwNCiAJCSAgIGRldi0+bmFtZSwgdmlhX3JoaW5lX2NoaXBfaW5mb1tj
aGlwX2lkXS5uYW1lLA0KKwkJICAgbnAtPnJldl9pZCwNCiAJCSAgIChwY2lf
ZmxhZ3MgJiBQQ0lfVVNFU19JTykgPyBpb2FkZHIgOiBtZW1hZGRyKTsNCiAN
CiAJZm9yIChpID0gMDsgaSA8IDU7IGkrKykNCkBAIC03MzIsMjMgKzc1Mywy
NiBAQA0KIAkJaW50IHBoeSwgcGh5X2lkeCA9IDA7DQogCQlucC0+cGh5c1sw
XSA9IDE7CQkvKiBTdGFuZGFyZCBmb3IgdGhpcyBjaGlwLiAqLw0KIAkJZm9y
IChwaHkgPSAxOyBwaHkgPCAzMiAmJiBwaHlfaWR4IDwgTUFYX01JSV9DTlQ7
IHBoeSsrKSB7DQotCQkJaW50IG1paV9zdGF0dXMgPSBtZGlvX3JlYWQoZGV2
LCBwaHksIDEpOw0KKwkJCWludCBtaWlfc3RhdHVzID0gbWRpb19yZWFkKGRl
diwgcGh5LCBNSUlfQk1TUik7DQogCQkJaWYgKG1paV9zdGF0dXMgIT0gMHhm
ZmZmICAmJiAgbWlpX3N0YXR1cyAhPSAweDAwMDApIHsNCiAJCQkJbnAtPnBo
eXNbcGh5X2lkeCsrXSA9IHBoeTsNCi0JCQkJbnAtPmFkdmVydGlzaW5nID0g
bWRpb19yZWFkKGRldiwgcGh5LCA0KTsNCi0JCQkJcHJpbnRrKEtFUk5fSU5G
TyAiJXM6IE1JSSBQSFkgZm91bmQgYXQgYWRkcmVzcyAlZCwgc3RhdHVzICIN
CisJCQkJbnAtPmFkdmVydGlzaW5nID0gbWRpb19yZWFkKGRldiwgcGh5LCBN
SUlfQURWRVJUSVNFKTsNCisJCQkJbnAtPm1paSA9IChtZGlvX3JlYWQoZGV2
LCBwaHksIE1JSV9QSFlTSUQxKSA8PCAxNikgKw0KKwkJCQkJbWRpb19yZWFk
KGRldiwgcGh5LCBNSUlfUEhZU0lEMik7DQorCQkJCXByaW50ayhLRVJOX0lO
Rk8gIiVzOiBNSUkgUEhZICU4Ljh4IGZvdW5kIGF0IGFkZHJlc3MgJWQsIHN0
YXR1cyAiDQogCQkJCQkgICAiMHglNC40eCBhZHZlcnRpc2luZyAlNC40eCBM
aW5rICU0LjR4LlxuIiwNCi0JCQkJCSAgIGRldi0+bmFtZSwgcGh5LCBtaWlf
c3RhdHVzLCBucC0+YWR2ZXJ0aXNpbmcsDQotCQkJCQkgICBtZGlvX3JlYWQo
ZGV2LCBwaHksIDUpKTsNCisJCQkJCSAgIGRldi0+bmFtZSwgbnAtPm1paSwg
cGh5LCBtaWlfc3RhdHVzLCBucC0+YWR2ZXJ0aXNpbmcsDQorCQkJCQkgICBt
ZGlvX3JlYWQoZGV2LCBwaHksIE1JSV9MUEEpKTsNCiANCi0JCQkJLyogc2V0
IElGRl9SVU5OSU5HICovDQotCQkJCWlmIChtaWlfc3RhdHVzICYgTUlJTGlu
aykNCi0JCQkJCW5ldGlmX2NhcnJpZXJfb24oZGV2KTsNCi0JCQkJZWxzZQ0K
LQkJCQkJbmV0aWZfY2Fycmllcl9vZmYoZGV2KTsNCisJCQkJaWYgKChucC0+
bWlpICYgfjB4ZikgPT0gTUlJX0RBVklDT01fRE05MTAxKQ0KKwkJCQkJbnAt
PmRydl9mbGFncyB8PSBIYXNEYXZpY29tUGh5Ow0KIAkJCX0NCiAJCX0NCiAJ
CW5wLT5taWlfY250ID0gcGh5X2lkeDsNCisJCWlmIChwaHlfaWR4ID09IDAp
IHsNCisJCQlwcmludGsoS0VSTl9XQVJOSU5HICIlczogTUlJIFBIWSBub3Qg
Zm91bmQgLS0gdGhpcyBkZXZpY2UgbWF5ICINCisJCQkJICAgIm5vdCBvcGVy
YXRlIGNvcnJlY3RseS5cbiIsIGRldi0+bmFtZSk7DQorCQl9DQogCX0NCiAN
CiAJLyogQWxsb3cgZm9yY2luZyB0aGUgbWVkaWEgdHlwZS4gKi8NCkBAIC03
NTcsMTUgKzc4MSwxMyBAQA0KIAkJCW5wLT5mdWxsX2R1cGxleCA9IDE7DQog
CQlucC0+ZGVmYXVsdF9wb3J0ID0gb3B0aW9uICYgMHgzZmY7DQogCQlpZiAo
bnAtPmRlZmF1bHRfcG9ydCAmIDB4MzMwKSB7DQotCQkJLyogRklYTUU6IHNo
b3VsZG4ndCBzb21lb25lIGNoZWNrIHRoaXMgdmFyaWFibGU/ICovDQotCQkJ
LyogbnAtPm1lZGlhbG9jayA9IDE7ICovDQogCQkJcHJpbnRrKEtFUk5fSU5G
TyAiICBGb3JjaW5nICVkTWJzICVzLWR1cGxleCBvcGVyYXRpb24uXG4iLA0K
IAkJCQkgICAob3B0aW9uICYgMHgzMDAgPyAxMDAgOiAxMCksDQogCQkJCSAg
IChvcHRpb24gJiAweDIyMCA/ICJmdWxsIiA6ICJoYWxmIikpOw0KIAkJCWlm
IChucC0+bWlpX2NudCkNCi0JCQkJbWRpb193cml0ZShkZXYsIG5wLT5waHlz
WzBdLCAwLA0KLQkJCQkJCSAgICgob3B0aW9uICYgMHgzMDApID8gMHgyMDAw
IDogMCkgfCAgLyogMTAwbWJwcz8gKi8NCi0JCQkJCQkgICAoKG9wdGlvbiAm
IDB4MjIwKSA/IDB4MDEwMCA6IDApKTsgIC8qIEZ1bGwgZHVwbGV4PyAqLw0K
KwkJCQltZGlvX3dyaXRlKGRldiwgbnAtPnBoeXNbMF0sIE1JSV9CTUNSLA0K
KwkJCQkJCSAgICgob3B0aW9uICYgMHgzMDApID8gMHgyMDAwIDogMCkgfCAg
LyogMTAwbWJwcyAqLw0KKwkJCQkJCSAgICgob3B0aW9uICYgMHgyMjApID8g
MHgwMTAwIDogMCkpOyAgLyogRnVsbCBkdXBsZXggKi8NCiAJCX0NCiAJfQ0K
IA0KQEAgLTk0NiwxMCArOTY4LDI2IEBADQogCWZvciAoaSA9IDA7IGkgPCA2
OyBpKyspDQogCQl3cml0ZWIoZGV2LT5kZXZfYWRkcltpXSwgaW9hZGRyICsg
U3RhdGlvbkFkZHIgKyBpKTsNCiANCi0JLyogSW5pdGlhbGl6ZSBvdGhlciBy
ZWdpc3RlcnMuICovDQorCS8qIFR1cm4gb24gYml0MyAoT0ZTRVQpIGluIFRD
UiBkdXJpbmcgTUFDIGluaXRpYWxpemF0aW9uLiAqLw0KKwl3cml0ZWIocmVh
ZGIoaW9hZGRyICsgVHhDb25maWcpIHwgMHgwOCwgaW9hZGRyICsgVHhDb25m
aWcpOw0KKw0KKwkvKiBUdXJuIG9mZiBtYXV0byAqLw0KKwl3cml0ZWIocmVh
ZGIoaW9hZGRyICsgTUlJQ21kKSAmIDB4N2YsIGlvYWRkciArIE1JSUNtZCk7
DQorCWlmIChucC0+ZHJ2X2ZsYWdzICYgSGFzRGF2aWNvbVBoeSkgIHsNCisJ
CXVkZWxheSgxMDApOw0KKwl9IGVsc2Ugew0KKwkJaW50IGJvZ3VzY250ID0g
MHgzZmZmOw0KKwkJd2hpbGUgKCEocmVhZGIoaW9hZGRyICsgTUlJUmVnQWRk
cikgJiAweDgwKSAmJiAtLWJvZ3VzY250ID4gMCkNCisJCQk7DQorCX0NCisN
CiAJd3JpdGV3KDB4MDAwNiwgaW9hZGRyICsgUENJQnVzQ29uZmlnKTsJLyog
VHVuZSBjb25maWd1cmF0aW9uPz8/ICovDQorDQorCS8qIENsZWFyIHRoZSBs
b3dlciA0IGJpdHMgaW4gQ29uZmlnIEQuICovDQorCW91dGIoaW5iKGlvYWRk
ciArIENvbmZpZ0QpICYgMHhmMCwgaW9hZGRyICsgQ29uZmlnRCk7DQorDQog
CS8qIENvbmZpZ3VyZSB0aGUgRklGTyB0aHJlc2hvbGRzLiAqLw0KLQl3cml0
ZWIoMHgyMCwgaW9hZGRyICsgVHhDb25maWcpOwkvKiBJbml0aWFsIHRocmVz
aG9sZCAzMiBieXRlcyAqLw0KKwl3cml0ZWIoMHgyMCwgaW9hZGRyICsgVHhD
b25maWcpOwkvKiBJbml0aWFsIHRocmVzaG9sZCAqLw0KIAlucC0+dHhfdGhy
ZXNoID0gMHgyMDsNCiAJbnAtPnJ4X3RocmVzaCA9IDB4NjA7CQkJLyogV3Jp
dHRlbiBpbiB2aWFfcmhpbmVfc2V0X3J4X21vZGUoKS4gKi8NCiANCkBAIC05
NzIsMTMgKzEwMTAsMzEgQEANCiAJCW5wLT5jaGlwX2NtZCB8PSBDbWRGRHVw
bGV4Ow0KIAl3cml0ZXcobnAtPmNoaXBfY21kLCBpb2FkZHIgKyBDaGlwQ21k
KTsNCiANCisJLyogUmVzdGFydCBNSUkgYXV0by1uZWdvdGlhdGlvbiBmb3Ig
ZGF2aWRjb20gcGh5IGJ1ZyAqLw0KKwlpZiAobnAtPmRydl9mbGFncyAmIEhh
c0Rhdmljb21QaHkpIHsNCisJCW1kaW9fd3JpdGUoZGV2LG5wLT5waHlzWzBd
LCBNSUlfQk1DUiwNCisJCQkJICAgbWRpb19yZWFkKGRldiwgbnAtPnBoeXNb
MF0sIE1JSV9CTUNSKSB8IDB4MTIwMCk7DQorCQkvKiBGSVhNRTogc2hvdWxk
bid0IHdlIHdhaXQgZm9yIGl0IHRvIGNvbXBsZXRlPyBBZGRpbmcgc2lsbHkt
ZGVsYXkuICovDQorCQl1ZGVsYXkoMTAwKTsNCisJfQ0KKw0KIAl2aWFfcmhp
bmVfY2hlY2tfZHVwbGV4KGRldik7DQogDQogCS8qIFRoZSBMRUQgb3V0cHV0
cyBvZiB2YXJpb3VzIE1JSSB4Y3ZycyBzaG91bGQgYmUgY29uZmlndXJlZC4g
ICovDQorCS8qIEZvciBEYXZpY29tIHBoeXMsIHR1cm4gb24gYml0IDUgaW4g
cmVnaXN0ZXIgMHgxNi4gKi8NCiAJLyogRm9yIE5TIG9yIE1pc29uIHBoeXMs
IHR1cm4gb24gYml0IDEgaW4gcmVnaXN0ZXIgMHgxNyAqLw0KIAkvKiBGb3Ig
RVNJIHBoeXMsIHR1cm4gb24gYml0IDcgaW4gcmVnaXN0ZXIgMHgxNy4gKi8N
Ci0JbWRpb193cml0ZShkZXYsIG5wLT5waHlzWzBdLCAweDE3LCBtZGlvX3Jl
YWQoZGV2LCBucC0+cGh5c1swXSwgMHgxNykgfA0KLQkJCSAgIChucC0+ZHJ2
X2ZsYWdzICYgSGFzRVNJUGh5KSA/IDB4MDA4MCA6IDB4MDAwMSk7DQorCWlm
IChucC0+ZHJ2X2ZsYWdzICYgSGFzRGF2aWNvbVBoeSkgew0KKwkJbWRpb193
cml0ZShkZXYsIG5wLT5waHlzWzBdLCAweDE2LA0KKwkJCQkgICBtZGlvX3Jl
YWQoZGV2LCBucC0+cGh5c1swXSwgMHgxNikgfCAweDIwKTsNCisJfSBlbHNl
IGlmIChucC0+ZHJ2X2ZsYWdzICYgSGFzRVNJUGh5KSB7DQorCQltZGlvX3dy
aXRlKGRldiwgbnAtPnBoeXNbMF0sIDB4MTcsDQorCQkJCSAgIG1kaW9fcmVh
ZChkZXYsIG5wLT5waHlzWzBdLCAweDE3KSB8IDB4ODApOw0KKwl9IGVsc2Ug
ew0KKwkJLyogQWxsIHVua25vd25zIGdldCB0aGlzLiBDb3VsZCBiZSBhIHBy
b2JsZW0uICovDQorCQltZGlvX3dyaXRlKGRldiwgbnAtPnBoeXNbMF0sIDB4
MTcsDQorCQkJCSAgIG1kaW9fcmVhZChkZXYsIG5wLT5waHlzWzBdLCAweDE3
KSB8IDB4MDEpOw0KKwl9DQogfQ0KIC8qIFJlYWQgYW5kIHdyaXRlIG92ZXIg
dGhlIE1JSSBNYW5hZ2VtZW50IERhdGEgSS9PIChNRElPKSBpbnRlcmZhY2Uu
ICovDQogDQpAQCAtMTA1OSw3ICsxMTE1LDcgQEANCiAJCXByaW50ayhLRVJO
X0RFQlVHICIlczogRG9uZSB2aWFfcmhpbmVfb3BlbigpLCBzdGF0dXMgJTQu
NHggIg0KIAkJCSAgICJNSUkgc3RhdHVzOiAlNC40eC5cbiIsDQogCQkJICAg
ZGV2LT5uYW1lLCByZWFkdyhpb2FkZHIgKyBDaGlwQ21kKSwNCi0JCQkgICBt
ZGlvX3JlYWQoZGV2LCBucC0+cGh5c1swXSwgMSkpOw0KKwkJCSAgIG1kaW9f
cmVhZChkZXYsIG5wLT5waHlzWzBdLCBNSUlfQk1TUikpOw0KIA0KIAluZXRp
Zl9zdGFydF9xdWV1ZShkZXYpOw0KIA0KQEAgLTEwNzMsMjkgKzExMjksNzAg
QEANCiAJcmV0dXJuIDA7DQogfQ0KIA0KLXN0YXRpYyB2b2lkIHZpYV9yaGlu
ZV9jaGVja19kdXBsZXgoc3RydWN0IG5ldF9kZXZpY2UgKmRldikNCitzdGF0
aWMgaW50IHZpYV9yaGluZV9jaGVja19kdXBsZXgoc3RydWN0IG5ldF9kZXZp
Y2UgKmRldikNCiB7DQogCXN0cnVjdCBuZXRkZXZfcHJpdmF0ZSAqbnAgPSBk
ZXYtPnByaXY7DQogCWxvbmcgaW9hZGRyID0gZGV2LT5iYXNlX2FkZHI7DQot
CWludCBtaWlfcmVnNSA9IG1kaW9fcmVhZChkZXYsIG5wLT5waHlzWzBdLCA1
KTsNCi0JaW50IG5lZ290aWF0ZWQgPSBtaWlfcmVnNSAmIG5wLT5hZHZlcnRp
c2luZzsNCisJaW50IG1paV9yZWc7DQogCWludCBkdXBsZXg7DQorCWludCBj
aGFuZ2VkID0gMDsNCiANCi0JaWYgKG5wLT5kdXBsZXhfbG9jayAgfHwgIG1p
aV9yZWc1ID09IDB4ZmZmZikNCi0JCXJldHVybjsNCi0JZHVwbGV4ID0gKG5l
Z290aWF0ZWQgJiAweDAxMDApIHx8IChuZWdvdGlhdGVkICYgMHgwMUMwKSA9
PSAweDAwNDA7DQorCW1paV9yZWcgPSBtZGlvX3JlYWQoZGV2LCBucC0+cGh5
c1swXSwgTUlJX0JNU1IpOw0KKwlpZiAobWlpX3JlZyA9PSAweGZmZmYpDQor
CQlyZXR1cm4gY2hhbmdlZDsNCisNCisJaWYgKGRlYnVnID4gMykNCisJCXBy
aW50ayhLRVJOX0RFQlVHICIlczogTUlJICMlZCByZXBvcnRzOiAlNC40eCwg
Y2FycmllciBpczogJWRcbiIsDQorCQkJICAgZGV2LT5uYW1lLCBucC0+cGh5
c1swXSwgbWlpX3JlZywgbmV0aWZfY2Fycmllcl9vayhkZXYpKTsNCisJaWYg
KCEobWlpX3JlZyAmIEJNU1JfTFNUQVRVUykpIHsNCisJCWlmIChuZXRpZl9j
YXJyaWVyX29rKGRldikpIHsNCisJCQlpZiAoZGVidWcgPiAxKQ0KKwkJCQlw
cmludGsoS0VSTl9ERUJVRyAiJXM6IE1JSSAjJWQgcmVwb3J0cyBubyBsaW5r
LiBEaXNhYmxpbmcgd2F0Y2hkb2cuXG4iLA0KKwkJCQkJICAgZGV2LT5uYW1l
LCBucC0+cGh5c1swXSk7DQorCQkJbmV0aWZfY2Fycmllcl9vZmYoZGV2KTsN
CisJCX0NCisJfSBlbHNlIGlmICghbmV0aWZfY2Fycmllcl9vayhkZXYpKSB7
DQorCQlpZiAoZGVidWcgPiAxKQ0KKwkJCXByaW50ayhLRVJOX0RFQlVHICIl
czogTUlJICMlZCBsaW5rIGlzIGJhY2suIEVuYWJsaW5nIHdhdGNoZG9nLlxu
IiwNCisJCQkJICAgZGV2LT5uYW1lLCBucC0+cGh5c1swXSk7DQorCQluZXRp
Zl9jYXJyaWVyX29uKGRldik7DQorCX0NCisNCisJaWYgKG5wLT5kcnZfZmxh
Z3MgJiBIYXNEYXZpY29tUGh5KSB7DQorCQkvKiBJZiB0aGUgbGluayBwYXJ0
bmVyIGRvZXNuJ3Qgc3VwcG9ydCBhdXRvbmVnb3RpYXRpb24NCisJCSAqIHRo
ZSBNSUkgZGV0ZWN0cyBpdCdzIGFiaWxpdGllcyB3aXRoIHRoZSAicGFyYWxs
ZWwgZGV0ZWN0aW9uIi4NCisJCSAqIFNvbWUgTUlJcyB1cGRhdGUgdGhlIExQ
QSByZWdpc3RlciB0byB0aGUgcmVzdWx0IG9mIHRoZSBwYXJhbGxlbA0KKwkJ
ICogZGV0ZWN0aW9uLCBzb21lIGRvbid0Lg0KKwkJICogVGhlIERhdmljb20g
UEhZIFthdCBsZWFzdCAwMTgxYjgwMF0gZG9lc24ndC4NCisJCSAqIEluc3Rl
YWQgYml0IDggYW5kIDEzIG9mIHRoZSBCTUNSIGFyZSB1cGRhdGVkIHRvIHRo
ZSByZXN1bHQNCisJCSAqIG9mIHRoZSBuZWdvdGlhdGlvbi4uDQorCQkgKi8N
CisJCW1paV9yZWcgPSBtZGlvX3JlYWQoZGV2LCBucC0+cGh5c1swXSwgTUlJ
X0JNQ1IpOw0KKwkJZHVwbGV4ID0gbWlpX3JlZyAmIDB4MTAwOw0KKwl9IGVs
c2Ugew0KKwkJaW50IG5lZ290aWF0ZWQ7DQorCQltaWlfcmVnID0gbWRpb19y
ZWFkKGRldiwgbnAtPnBoeXNbMF0sIE1JSV9MUEEpOw0KKwkJbmVnb3RpYXRl
ZCA9IG1paV9yZWcgJiBucC0+YWR2ZXJ0aXNpbmc7DQorDQorCQlkdXBsZXgg
PSAobmVnb3RpYXRlZCAmIDB4MDEwMCkgfHwgKChuZWdvdGlhdGVkICYgMHgw
MkMwKSA9PSAweDAwNDApOw0KKwl9DQorDQorCWlmIChucC0+ZHVwbGV4X2xv
Y2sgfHwgbWlpX3JlZyA9PSAweGZmZmYpDQorCQlyZXR1cm4gY2hhbmdlZDsN
CiAJaWYgKG5wLT5mdWxsX2R1cGxleCAhPSBkdXBsZXgpIHsNCiAJCW5wLT5m
dWxsX2R1cGxleCA9IGR1cGxleDsNCisJCWNoYW5nZWQgPSAxOw0KIAkJaWYg
KGRlYnVnKQ0KIAkJCXByaW50ayhLRVJOX0lORk8gIiVzOiBTZXR0aW5nICVz
LWR1cGxleCBiYXNlZCBvbiBNSUkgIyVkIGxpbmsiDQogCQkJCSAgICIgcGFy
dG5lciBjYXBhYmlsaXR5IG9mICU0LjR4LlxuIiwgZGV2LT5uYW1lLA0KLQkJ
CQkgICBkdXBsZXggPyAiZnVsbCIgOiAiaGFsZiIsIG5wLT5waHlzWzBdLCBt
aWlfcmVnNSk7DQorCQkJCSAgIGR1cGxleCA/ICJmdWxsIiA6ICJoYWxmIiwg
bnAtPnBoeXNbMF0sIG1paV9yZWcpOw0KIAkJaWYgKGR1cGxleCkNCiAJCQlu
cC0+Y2hpcF9jbWQgfD0gQ21kRkR1cGxleDsNCiAJCWVsc2UNCiAJCQlucC0+
Y2hpcF9jbWQgJj0gfkNtZEZEdXBsZXg7DQogCQl3cml0ZXcobnAtPmNoaXBf
Y21kLCBpb2FkZHIgKyBDaGlwQ21kKTsNCiAJfQ0KKwlyZXR1cm4gY2hhbmdl
ZDsNCiB9DQogDQogDQpAQCAtMTEwNSw3ICsxMjAyLDYgQEANCiAJc3RydWN0
IG5ldGRldl9wcml2YXRlICpucCA9IGRldi0+cHJpdjsNCiAJbG9uZyBpb2Fk
ZHIgPSBkZXYtPmJhc2VfYWRkcjsNCiAJaW50IG5leHRfdGljayA9IDEwKkha
Ow0KLQlpbnQgbWlpX3N0YXR1czsNCiANCiAJaWYgKGRlYnVnID4gMykgew0K
IAkJcHJpbnRrKEtFUk5fREVCVUcgIiVzOiBWSUEgUmhpbmUgbW9uaXRvciB0
aWNrLCBzdGF0dXMgJTQuNHguXG4iLA0KQEAgLTExMTMsMTkgKzEyMDksNyBA
QA0KIAl9DQogDQogCXNwaW5fbG9ja19pcnEgKCZucC0+bG9jayk7DQotDQog
CXZpYV9yaGluZV9jaGVja19kdXBsZXgoZGV2KTsNCi0NCi0JLyogbWFrZSBJ
RkZfUlVOTklORyBmb2xsb3cgdGhlIE1JSSBzdGF0dXMgYml0ICJMaW5rIGVz
dGFibGlzaGVkIiAqLw0KLQltaWlfc3RhdHVzID0gbWRpb19yZWFkKGRldiwg
bnAtPnBoeXNbMF0sIDEpOw0KLQlpZiAoIChtaWlfc3RhdHVzICYgTUlJTGlu
aykgIT0gKG5wLT5taWlfc3RhdHVzICYgTUlJTGluaykgKSB7DQotCQlpZiAo
bWlpX3N0YXR1cyAmIE1JSUxpbmspDQotCQkJbmV0aWZfY2Fycmllcl9vbihk
ZXYpOw0KLQkJZWxzZQ0KLQkJCW5ldGlmX2NhcnJpZXJfb2ZmKGRldik7DQot
CX0NCi0JbnAtPm1paV9zdGF0dXMgPSBtaWlfc3RhdHVzOw0KLQ0KIAlzcGlu
X3VubG9ja19pcnEgKCZucC0+bG9jayk7DQogDQogCW5wLT50aW1lci5leHBp
cmVzID0gamlmZmllcyArIG5leHRfdGljazsNCkBAIC0xMTQxLDcgKzEyMjUs
NyBAQA0KIAlwcmludGsgKEtFUk5fV0FSTklORyAiJXM6IFRyYW5zbWl0IHRp
bWVkIG91dCwgc3RhdHVzICU0LjR4LCBQSFkgc3RhdHVzICINCiAJCSIlNC40
eCwgcmVzZXR0aW5nLi4uXG4iLA0KIAkJZGV2LT5uYW1lLCByZWFkdyAoaW9h
ZGRyICsgSW50clN0YXR1cyksDQotCQltZGlvX3JlYWQgKGRldiwgbnAtPnBo
eXNbMF0sIDEpKTsNCisJCW1kaW9fcmVhZCAoZGV2LCBucC0+cGh5c1swXSwg
TUlJX0JNU1IpKTsNCiANCiAJZGV2LT5pZl9wb3J0ID0gMDsNCiANCkBAIC0x
MjQzLDYgKzEzMjcsOCBAQA0KIAlsb25nIGlvYWRkcjsNCiAJdTMyIGludHJf
c3RhdHVzOw0KIAlpbnQgYm9ndXNjbnQgPSBtYXhfaW50ZXJydXB0X3dvcms7
DQorCXN0cnVjdCBuZXRkZXZfcHJpdmF0ZSAqbnAgPSBkZXYtPnByaXY7DQor
CWludCB1bmRlcmZsb3cgPSBucC0+ZHJ2X2ZsYWdzICYgSGFzSW50VHhVbmRl
ckZsb3cgPyBJbnRyVHhVbmRlcmZsb3cgOiAwOw0KIA0KIAlpb2FkZHIgPSBk
ZXYtPmJhc2VfYWRkcjsNCiAJDQpAQCAtMTI1OSw3ICsxMzQ1LDcgQEANCiAJ
CQl2aWFfcmhpbmVfcngoZGV2KTsNCiANCiAJCWlmIChpbnRyX3N0YXR1cyAm
IChJbnRyVHhEb25lIHwgSW50clR4QWJvcnQgfCBJbnRyVHhVbmRlcnJ1biB8
DQotCQkJCQkJICAgSW50clR4QWJvcnRlZCkpDQorCQkJCQkJICAgSW50clR4
QWJvcnRlZCB8IHVuZGVyZmxvdykpDQogCQkJdmlhX3JoaW5lX3R4KGRldik7
DQogDQogCQkvKiBBYm5vcm1hbCBlcnJvciBzdW1tYXJ5L3VuY29tbW9uIGV2
ZW50cyBoYW5kbGVycy4gKi8NCkBAIC0xMjg2LDYgKzEzNzIsNyBAQA0KIHsN
CiAJc3RydWN0IG5ldGRldl9wcml2YXRlICpucCA9IGRldi0+cHJpdjsNCiAJ
aW50IHR4c3RhdHVzID0gMCwgZW50cnkgPSBucC0+ZGlydHlfdHggJSBUWF9S
SU5HX1NJWkU7DQorCWxvbmcgaW9hZGRyID0gZGV2LT5iYXNlX2FkZHI7DQog
DQogCXNwaW5fbG9jayAoJm5wLT5sb2NrKTsNCiANCkBAIC0xMzA3LDcgKzEz
OTQsMjUgQEANCiAJCQlpZiAodHhzdGF0dXMgJiAweDAxMDApIG5wLT5zdGF0
cy50eF9hYm9ydGVkX2Vycm9ycysrOw0KIAkJCWlmICh0eHN0YXR1cyAmIDB4
MDA4MCkgbnAtPnN0YXRzLnR4X2hlYXJ0YmVhdF9lcnJvcnMrKzsNCiAJCQlp
ZiAodHhzdGF0dXMgJiAweDAwMDIpIG5wLT5zdGF0cy50eF9maWZvX2Vycm9y
cysrOw0KKw0KIAkJCS8qIFRyYW5zbWl0dGVyIHJlc3RhcnRlZCBpbiAnYWJu
b3JtYWwnIGhhbmRsZXIuICovDQorCQkJaWYgKHR4c3RhdHVzICYgMHgwOTAw
KSB7DQorCQkJCW5wLT5zdGF0cy50eF9hYm9ydGVkX2Vycm9ycysrOw0KKwkJ
CQl3bWIoKTsNCisJCQkJbnAtPnR4X3JpbmdbZW50cnldLnR4X3N0YXR1cyA9
IGNwdV90b19sZTMyKERlc2NPd24pOw0KKwkJCQl3bWIoKTsNCisJCQkJd3Jp
dGVsKG5wLT50eF9yaW5nX2RtYSArIGVudHJ5ICogc2l6ZW9mKHN0cnVjdCB0
eF9kZXNjKSwNCisJCQkJCSAgIGlvYWRkciArIFR4UmluZ1B0cik7DQorDQor
CQkJCS8qIFR1cm4gb24gVHggT24qLw0KKwkJCQl3cml0ZXcoQ21kVHhPbiB8
IG5wLT5jaGlwX2NtZCwgZGV2LT5iYXNlX2FkZHIgKyBDaGlwQ21kKTsgICAN
CisgICAgIA0KKwkJCQkvKiBTdGF0cyBjb3VudGVkIGluIFR4LWRvbmUgaGFu
ZGxlciwganVzdCByZXN0YXJ0IFR4LiAqLw0KKwkJCQl3cml0ZXcoQ21kVHhE
ZW1hbmQgfCBucC0+Y2hpcF9jbWQsIGRldi0+YmFzZV9hZGRyICsgQ2hpcENt
ZCk7DQorCQkJCWlmIChkZWJ1ZyA+IDEpIA0KKwkJCQkJcHJpbnRrKEtFUk5f
RVJSICJUeCBBYm9ydCIpOw0KKwkJCQlicmVhazsNCisJCQl9DQogCQl9IGVs
c2Ugew0KIAkJCW5wLT5zdGF0cy5jb2xsaXNpb25zICs9ICh0eHN0YXR1cyA+
PiAzKSAmIDE1Ow0KIAkJCW5wLT5zdGF0cy50eF9ieXRlcyArPSBucC0+dHhf
c2tidWZmW2VudHJ5XS0+bGVuOw0KQEAgLTE0NDksMzAgKzE1NTQsNDYgQEAN
CiB7DQogCXN0cnVjdCBuZXRkZXZfcHJpdmF0ZSAqbnAgPSBkZXYtPnByaXY7
DQogCWxvbmcgaW9hZGRyID0gZGV2LT5iYXNlX2FkZHI7DQorCWludCBtaWkg
ICAgICAgPSBucC0+ZHJ2X2ZsYWdzICYgSGFzSW50VHhVbmRlckZsb3cgPyAw
IDogSW50ck1JSUNoYW5nZTsNCisJaW50IHVuZGVyZmxvdyA9IG5wLT5kcnZf
ZmxhZ3MgJiBIYXNJbnRUeFVuZGVyRmxvdyA/IEludHJUeFVuZGVyZmxvdyA6
IDA7DQogDQogCXNwaW5fbG9jayAoJm5wLT5sb2NrKTsNCiANCi0JaWYgKGlu
dHJfc3RhdHVzICYgKEludHJNSUlDaGFuZ2UgfCBJbnRyTGlua0NoYW5nZSkp
IHsNCisJaWYgKGludHJfc3RhdHVzICYgKG1paSB8IEludHJMaW5rQ2hhbmdl
KSkgew0KKwkJaW50IGNoYW5nZWQ7DQorCQlpZiAoZGVidWcpDQorCQkJcHJp
bnRrKEtFUk5fREVCVUcgIiVzOiBMaW5rIGNoYW5nZSwgc3RhdHVzPSU0LjR4
XG4iLA0KKwkJCSAgIGRldi0+bmFtZSwgaW50cl9zdGF0dXMpOw0KIAkJaWYg
KHJlYWRiKGlvYWRkciArIE1JSVN0YXR1cykgJiAweDAyKSB7DQogCQkJLyog
TGluayBmYWlsZWQsIHJlc3RhcnQgYXV0b25lZ290aWF0aW9uLiAqLw0KIAkJ
CWlmIChucC0+ZHJ2X2ZsYWdzICYgSGFzRGF2aWNvbVBoeSkNCi0JCQkJbWRp
b193cml0ZShkZXYsIG5wLT5waHlzWzBdLCAwLCAweDMzMDApOw0KKwkJCQlt
ZGlvX3dyaXRlKGRldiwgbnAtPnBoeXNbMF0sIE1JSV9CTUNSLCAweDMzMDAp
Ow0KKwkJCS8qIFdpbGwgdGhlIG5ldyBsaW5rIHN0YXR1cyBiZSByZXBvcnRl
ZCBsYXRlPyAqLw0KKwkJCWNoYW5nZWQgPSAwOw0KIAkJfSBlbHNlDQotCQkJ
dmlhX3JoaW5lX2NoZWNrX2R1cGxleChkZXYpOw0KLQkJaWYgKGRlYnVnKQ0K
KwkJCWNoYW5nZWQgPSB2aWFfcmhpbmVfY2hlY2tfZHVwbGV4KGRldik7DQor
CQlpZiAoZGVidWcgJiYgY2hhbmdlZCkNCiAJCQlwcmludGsoS0VSTl9FUlIg
IiVzOiBNSUkgc3RhdHVzIGNoYW5nZWQ6IEF1dG9uZWdvdGlhdGlvbiAiDQog
CQkJCSAgICJhZHZlcnRpc2luZyAlNC40eCAgcGFydG5lciAlNC40eC5cbiIs
IGRldi0+bmFtZSwNCi0JCQkgICBtZGlvX3JlYWQoZGV2LCBucC0+cGh5c1sw
XSwgNCksDQotCQkJICAgbWRpb19yZWFkKGRldiwgbnAtPnBoeXNbMF0sIDUp
KTsNCisJCQkgICBtZGlvX3JlYWQoZGV2LCBucC0+cGh5c1swXSwgTUlJX0FE
VkVSVElTRSksDQorCQkJICAgbWRpb19yZWFkKGRldiwgbnAtPnBoeXNbMF0s
IE1JSV9MUEEpKTsNCiAJfQ0KIAlpZiAoaW50cl9zdGF0dXMgJiBJbnRyU3Rh
dHNNYXgpIHsNCiAJCW5wLT5zdGF0cy5yeF9jcmNfZXJyb3JzCSs9IHJlYWR3
KGlvYWRkciArIFJ4Q1JDRXJycyk7DQogCQlucC0+c3RhdHMucnhfbWlzc2Vk
X2Vycm9ycwkrPSByZWFkdyhpb2FkZHIgKyBSeE1pc3NlZCk7DQogCQljbGVh
cl90YWxseV9jb3VudGVycyhpb2FkZHIpOw0KIAl9DQotCWlmIChpbnRyX3N0
YXR1cyAmIEludHJUeEFib3J0KSB7DQorCWlmIChpbnRyX3N0YXR1cyAmICh1
bmRlcmZsb3cgfCBJbnRyVHhBYm9ydCkpIHsNCiAJCS8qIFN0YXRzIGNvdW50
ZWQgaW4gVHgtZG9uZSBoYW5kbGVyLCBqdXN0IHJlc3RhcnQgVHguICovDQog
CQl3cml0ZXcoQ21kVHhEZW1hbmQgfCBucC0+Y2hpcF9jbWQsIGRldi0+YmFz
ZV9hZGRyICsgQ2hpcENtZCk7DQorCQlpZiAoZGVidWcgPiAxKSB7DQorCQkJ
aWYgKGludHJfc3RhdHVzICYgdW5kZXJmbG93KQ0KKwkJCQlwcmludGsoS0VS
Tl9JTkZPICIlczogVHJhbnNtaXR0ZXIgdW5kZXJmbG93LCBzdGF0dXMgJTQu
NHguXG4iLA0KKwkJCQkJICAgZGV2LT5uYW1lLCBpbnRyX3N0YXR1cyk7DQor
CQkJaWYgKGludHJfc3RhdHVzICYgKEludHJUeEFib3J0IHwgSW50clR4QWJv
cnRlZCkpDQorCQkJCXByaW50ayhLRVJOX0lORk8gIiVzOiBFeGNlc3NpdmUg
Y29sbGlzaW9ucywgc3RhdHVzICU0LjR4LlxuIiwNCisJCQkJCSAgIGRldi0+
bmFtZSwgaW50cl9zdGF0dXMpOw0KKwkJfQ0KIAl9DQogCWlmIChpbnRyX3N0
YXR1cyAmIEludHJUeFVuZGVycnVuKSB7DQogCQlpZiAobnAtPnR4X3RocmVz
aCA8IDB4RTApDQpAQCAtMTQ4MSw4ICsxNjAyLDcgQEANCiAJCQlwcmludGso
S0VSTl9JTkZPICIlczogVHJhbnNtaXR0ZXIgdW5kZXJydW4sIGluY3JlYXNp
bmcgVHggIg0KIAkJCQkgICAidGhyZXNob2xkIHNldHRpbmcgdG8gJTIuMngu
XG4iLCBkZXYtPm5hbWUsIG5wLT50eF90aHJlc2gpOw0KIAl9DQotCWlmICgo
aW50cl9zdGF0dXMgJiB+KCBJbnRyTGlua0NoYW5nZSB8IEludHJTdGF0c01h
eCB8DQotCQkJCQkJICBJbnRyVHhBYm9ydCB8IEludHJUeEFib3J0ZWQpKSkg
ew0KKwlpZiAoKGludHJfc3RhdHVzICYgfiggSW50ckxpbmtDaGFuZ2UgfCBJ
bnRyU3RhdHNNYXggfCBJbnRyVHhBYm9ydGVkKSkpIHsNCiAJCWlmIChkZWJ1
ZyA+IDEpDQogCQkJcHJpbnRrKEtFUk5fRVJSICIlczogU29tZXRoaW5nIFdp
Y2tlZCBoYXBwZW5lZCEgJTQuNHguXG4iLA0KIAkJCSAgIGRldi0+bmFtZSwg
aW50cl9zdGF0dXMpOw0K
---1463780587-359932590-1012338410=:6137--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/