[PATCH] Re: 2.2.19: d-link dfe530-tx, Transmit timed out

Dennis Bjorklund (db@zigo.dhs.org)
Sat, 18 Aug 2001 11:13:40 +0200 (CEST)


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.

---1463811328-1172383250-998126020=:27920
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Fri, 17 Aug 2001, Urban Widmark wrote:

> > kernel: eth1: Transmit timed out, status 0000, PHY status 782d, resetting..
>
> Since you run on 2.2 the drivers from www.scyld.com are an option (not
> sure what the 2.4 status is on those). They are similar to the in-kernel
> version but not identical. If you do test, any difference in behaviour is
> intresting.

I haven't tried that, but I looked at tx_timeout() and it looks like it
does the same thing as the driver in the kernel

I did however take a look at the 2.4.x driver and noticed that there is
some logic to reset the card when we get to tx_timeout(). While the card
froze with the current 2.2.19 driver when we get there it now, after I
have backported the 2.4.x logic, resets and works again after it gets to
tx_timeout().

I have some questions and comments about the patch that I have attached.
Most of the patch is (init)stuff that I moved out to their own functions
so it can be called again to reset the card.

The 2.4.x driver have some spinlocks that seems necessary for SMP but it
looks like there are spinlocks missing already in the old 2.2.19 driver if
one compares with the 2.4.x driver. I didn't fix any of these things since
I don't understand all the issues. My feeling is that it is as good or bad
now as before.

I have used it and loaded the network to trigger the bug, and every time
where it froze before it works now and the card resets. For light load it
worked before. To trigger the bug I let the computers on my network send
constantly for an hour or two. Before it used to freeze efter 2-3 weeks of
normal load so it's not easy to trigger.

For me it means I don't have to buy a new network card. I use the card in
a server without keyboard or screen. So every time it freezes it's a pain.
I can't prove that this fixes it but it sure looks like it. It prints the
timout message in the log as before, but continues working.

The last question is what to do with the version string, and what to do to
get this into 2.2.20 (if it's wanted).

-- 
/Dennis

---1463811328-1172383250-998126020=:27920 Content-Type: TEXT/PLAIN; charset=ISO-8859-1; name="linux_2.2.19_via_rhine.patch" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.LNX.4.33.0108181113400.27920@cosmo.zigo.dhs.org> Content-Description: Content-Disposition: attachment; filename="linux_2.2.19_via_rhine.patch"

LS0tIGxpbnV4L2RyaXZlcnMvbmV0L3ZpYS1yaGluZS5jCVN1biBNYXIgMjUg MTg6Mzc6MzUgMjAwMQ0KKysrIGxpbnV4LTIuMi4xOS9kcml2ZXJzL25ldC92 aWEtcmhpbmUuYwlTYXQgQXVnIDE4IDEwOjQxOjEwIDIwMDENCkBAIC0yNSw2 ICsyNSw5IEBADQogDQogCUxLMS4wLjA6DQogCS0gVXJiYW4gV2lkbWFyazog bWVyZ2VzIGZyb20gQmVja2VycyAxLjA4YiB2ZXJzaW9uIGFuZCAyLjQuMCAo VlQ2MTAyKQ0KKw0KKwktIERlbm5pcyBCavZya2x1bmQ6IGJhY2twb3J0IHR4 X3RpbWVvdXQgZnJvbSAyLjQueCB0byByZXNldCBvbiB0aW1lb3V0DQorICAg ICAgICAgICAgICAgICAgICAgICAgaW5zdGVhZCBvZiBzdG9wIHdvcmtpbmcu Li4NCiAqLw0KIA0KIC8qIFRoZXNlIGlkZW50aWZ5IHRoZSBkcml2ZXIgYmFz ZSB2ZXJzaW9uIGFuZCBtYXkgbm90IGJlIHJlbW92ZWQuICovDQpAQCAtOTUs OSArOTgsMTEgQEANCiAjaW5jbHVkZSA8bGludXgvZXRoZXJkZXZpY2UuaD4N CiAjaW5jbHVkZSA8bGludXgvc2tidWZmLmg+DQogI2luY2x1ZGUgPGxpbnV4 L2luaXQuaD4NCisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4NCiAjaW5jbHVk ZSA8YXNtL3Byb2Nlc3Nvci5oPgkJLyogUHJvY2Vzc29yIHR5cGUgZm9yIGNh Y2hlIGFsaWdubWVudC4gKi8NCiAjaW5jbHVkZSA8YXNtL2JpdG9wcy5oPg0K ICNpbmNsdWRlIDxhc20vaW8uaD4NCisjaW5jbHVkZSA8YXNtL2lycS5oPg0K IA0KIC8qIENvbmRlbnNlZCBidXMrZW5kaWFuIHBvcnRhYmlsaXR5IG9wZXJh dGlvbnMuICovDQogI2RlZmluZSB2aXJ0X3RvX2xlMzJkZXNjKGFkZHIpIGNw dV90b19sZTMyKHZpcnRfdG9fYnVzKGFkZHIpKQ0KQEAgLTI1NCw2ICsyNTks MTMgQEANCiAJCQkJCQkJCSBzdHJ1Y3QgZGV2aWNlICpkZXYsIGxvbmcgaW9h ZGRyLCBpbnQgaXJxLA0KIAkJCQkJCQkJIGludCBjaHBfaWR4LCBpbnQgZm5k X2NudCk7DQogDQorZW51bSB2aWFfcmhpbmVfY2hpcHMgew0KKwlWVDg2QzEw MEEgPSAwLA0KKwlWVDYxMDIsDQorCVZUMzA0MywNCit9Ow0KKw0KKy8qIGRp cmVjdGx5IGluZGV4ZWQgYnkgZW51bSB2aWFfcmhpbmVfY2hpcHMsIGFib3Zl ICovDQogc3RhdGljIHN0cnVjdCBwY2lfaWRfaW5mbyBwY2lfdGJsW10gX19p bml0ZGF0YSA9IHsNCiAJeyAiVklBIFZUODZDMTAwQSBSaGluZS1JSSIsIDB4 MTEwNiwgMHg2MTAwLCAweGZmZmYsDQogCSAgUkhJTkVfSU9UWVBFLCAxMjgs IHZpYV9wcm9iZTF9LA0KQEAgLTM3Nyw3ICszODksNiBAQA0KIHN0YXRpYyB2 b2lkIGNoZWNrX2R1cGxleChzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KIHN0YXRp YyB2b2lkIG5ldGRldl90aW1lcih1bnNpZ25lZCBsb25nIGRhdGEpOw0KIHN0 YXRpYyB2b2lkIHR4X3RpbWVvdXQoc3RydWN0IGRldmljZSAqZGV2KTsNCi1z dGF0aWMgdm9pZCBpbml0X3Jpbmcoc3RydWN0IGRldmljZSAqZGV2KTsNCiBz dGF0aWMgaW50ICBzdGFydF90eChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1 Y3QgZGV2aWNlICpkZXYpOw0KIHN0YXRpYyB2b2lkIGludHJfaGFuZGxlcihp bnQgaXJxLCB2b2lkICpkZXZfaW5zdGFuY2UsIHN0cnVjdCBwdF9yZWdzICpy ZWdzKTsNCiBzdGF0aWMgaW50ICBuZXRkZXZfcngoc3RydWN0IGRldmljZSAq ZGV2KTsNCkBAIC0zOTMsNiArNDA0LDMxIEBADQogLyogQSBsaXN0IG9mIG91 ciBpbnN0YWxsZWQgZGV2aWNlcywgZm9yIHJlbW92aW5nIHRoZSBkcml2ZXIg bW9kdWxlLiAqLw0KIHN0YXRpYyBzdHJ1Y3QgZGV2aWNlICpyb290X25ldF9k ZXYgPSBOVUxMOw0KIA0KK3N0YXRpYyB2b2lkIHdhaXRfZm9yX3Jlc2V0KHN0 cnVjdCBkZXZpY2UgKmRldiwgY2hhciAqbmFtZSkNCit7DQorCXN0cnVjdCBu ZXRkZXZfcHJpdmF0ZSAqbnAgPSBkZXYtPnByaXY7DQorCWxvbmcgaW9hZGRy ID0gZGV2LT5iYXNlX2FkZHI7DQorCWludCBjaGlwX2lkID0gbnAtPmNoaXBf aWQ7DQorCWludCBpOw0KKw0KKwkvKiAzMDQzIG1heSBuZWVkIGxvbmcgZGVs YXkgYWZ0ZXIgcmVzZXQgKGRsaW5rKSAqLw0KKwlpZiAoY2hpcF9pZCA9PSBW VDMwNDMgfHwgY2hpcF9pZCA9PSBWVDg2QzEwMEEpDQorCQl1ZGVsYXkoMTAw KTsNCisNCisJaSA9IDA7DQorCWRvIHsNCisJCXVkZWxheSg1KTsNCisJCWkr KzsNCisJCWlmKGkgPiAyMDAwKSB7DQorCQkJcHJpbnRrKEtFUk5fRVJSICIl czogcmVzZXQgZGlkIG5vdCBjb21wbGV0ZSBpbiAxMCBtcy5cbiIsIG5hbWUp Ow0KKwkJCWJyZWFrOw0KKwkJfQ0KKwl9IHdoaWxlKHJlYWR3KGlvYWRkciAr IENoaXBDbWQpICYgQ21kUmVzZXQpOw0KKwlpZiAoZGVidWcgPiAxKQ0KKwkJ cHJpbnRrKEtFUk5fSU5GTyAiJXM6IHJlc2V0IGZpbmlzaGVkIGFmdGVyICVk IG1pY3Jvc2Vjb25kcy5cbiIsDQorCQkJICAgbmFtZSwgNSppKTsNCit9DQor DQogLyogSWRlYWxseSB3ZSB3b3VsZCBkZXRlY3QgYWxsIG5ldHdvcmsgY2Fy ZHMgaW4gc2xvdCBvcmRlci4gIFRoYXQgd291bGQNCiAgICBiZSBiZXN0IGRv bmUgYSBjZW50cmFsIFBDSSBwcm9iZSBkaXNwYXRjaCwgd2hpY2ggd291bGRu J3Qgd29yaw0KICAgIHdlbGwgd2hlbiBkeW5hbWljYWxseSBhZGRpbmcgZHJp dmVycy4gIFNvIGluc3RlYWQgd2UgZGV0ZWN0IGp1c3QgdGhlDQpAQCAtNTky LDYgKzYyOCwxNDEgQEANCiAJcmV0dXJuIGRldjsNCiB9DQogDQorc3RhdGlj IHZvaWQgYWxsb2NfcmJ1ZnMoc3RydWN0IGRldmljZSAqZGV2KQ0KK3sNCisJ c3RydWN0IG5ldGRldl9wcml2YXRlICpucCA9IChzdHJ1Y3QgbmV0ZGV2X3By aXZhdGUgKilkZXYtPnByaXY7DQorCWludCBpOw0KKw0KKwlucC0+Y3VyX3J4 ID0gMDsNCisJbnAtPmRpcnR5X3J4ID0gMDsNCisNCisJbnAtPnJ4X2J1Zl9z eiA9IChkZXYtPm10dSA8PSAxNTAwID8gUEtUX0JVRl9TWiA6IGRldi0+bXR1 ICsgMzIpOw0KKwlucC0+cnhfaGVhZF9kZXNjID0gJm5wLT5yeF9yaW5nWzBd Ow0KKw0KKwlmb3IgKGkgPSAwOyBpIDwgUlhfUklOR19TSVpFOyBpKyspIHsN CisJCW5wLT5yeF9yaW5nW2ldLnJ4X3N0YXR1cyA9IDA7DQorCQlucC0+cnhf cmluZ1tpXS5kZXNjX2xlbmd0aCA9IGNwdV90b19sZTMyKG5wLT5yeF9idWZf c3opOw0KKwkJbnAtPnJ4X3JpbmdbaV0ubmV4dF9kZXNjID0gdmlydF90b19s ZTMyZGVzYygmbnAtPnJ4X3JpbmdbaSsxXSk7DQorCQlucC0+cnhfc2tidWZm W2ldID0gMDsNCisJfQ0KKwkvKiBNYXJrIHRoZSBsYXN0IGVudHJ5IGFzIHdy YXBwaW5nIHRoZSByaW5nLiAqLw0KKwlucC0+cnhfcmluZ1tpLTFdLm5leHRf ZGVzYyA9IHZpcnRfdG9fbGUzMmRlc2MoJm5wLT5yeF9yaW5nWzBdKTsNCisN CisJLyogRmlsbCBpbiB0aGUgUnggYnVmZmVycy4gIEhhbmRsZSBhbGxvY2F0 aW9uIGZhaWx1cmUgZ3JhY2VmdWxseS4gKi8NCisJZm9yIChpID0gMDsgaSA8 IFJYX1JJTkdfU0laRTsgaSsrKSB7DQorCQlzdHJ1Y3Qgc2tfYnVmZiAqc2ti ID0gZGV2X2FsbG9jX3NrYihucC0+cnhfYnVmX3N6KTsNCisJCW5wLT5yeF9z a2J1ZmZbaV0gPSBza2I7DQorCQlpZiAoc2tiID09IE5VTEwpDQorCQkJYnJl YWs7DQorCQlza2ItPmRldiA9IGRldjsJCQkvKiBNYXJrIGFzIGJlaW5nIHVz ZWQgYnkgdGhpcyBkZXZpY2UuICovDQorCQlucC0+cnhfcmluZ1tpXS5hZGRy ID0gdmlydF90b19sZTMyZGVzYyhza2ItPnRhaWwpOw0KKwkJbnAtPnJ4X3Jp bmdbaV0ucnhfc3RhdHVzID0gY3B1X3RvX2xlMzIoRGVzY093bik7DQorCX0N CisJbnAtPmRpcnR5X3J4ID0gKHVuc2lnbmVkIGludCkoaSAtIFJYX1JJTkdf U0laRSk7DQorfQ0KKw0KK3N0YXRpYyB2b2lkIGZyZWVfcmJ1ZnMoc3RydWN0 IGRldmljZSogZGV2KQ0KK3sNCisJc3RydWN0IG5ldGRldl9wcml2YXRlICpu cCA9IChzdHJ1Y3QgbmV0ZGV2X3ByaXZhdGUgKilkZXYtPnByaXY7DQorCWlu dCBpOw0KKw0KKwkvKiBGcmVlIGFsbCB0aGUgc2tidWZmcyBpbiB0aGUgUngg cXVldWUuICovDQorCWZvciAoaSA9IDA7IGkgPCBSWF9SSU5HX1NJWkU7IGkr Kykgew0KKwkJbnAtPnJ4X3JpbmdbaV0ucnhfc3RhdHVzID0gMDsNCisJCW5w LT5yeF9yaW5nW2ldLmFkZHIgPSAweEJBREYwMEQwOyAvKiBBbiBpbnZhbGlk IGFkZHJlc3MuICovDQorCQlpZiAobnAtPnJ4X3NrYnVmZltpXSkgew0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCAweDIwMTAwDQorCQkJbnAtPnJ4X3Nr YnVmZltpXS0+ZnJlZSA9IDE7DQorI2VuZGlmDQorCQkJZGV2X2tmcmVlX3Nr YihucC0+cnhfc2tidWZmW2ldKTsNCisJCX0NCisJCW5wLT5yeF9za2J1ZmZb aV0gPSAwOw0KKwl9DQorfQ0KKw0KK3N0YXRpYyB2b2lkIGFsbG9jX3RidWZz KHN0cnVjdCBkZXZpY2UqIGRldikNCit7DQorCXN0cnVjdCBuZXRkZXZfcHJp dmF0ZSAqbnAgPSAoc3RydWN0IG5ldGRldl9wcml2YXRlICopZGV2LT5wcml2 Ow0KKwlpbnQgaTsNCisNCisJbnAtPnR4X2Z1bGwgPSAwOw0KKwlucC0+Y3Vy X3R4ID0gMDsNCisJbnAtPmRpcnR5X3R4ID0gMDsNCisNCisJZm9yIChpID0g MDsgaSA8IFRYX1JJTkdfU0laRTsgaSsrKSB7DQorCQlucC0+dHhfc2tidWZm W2ldID0gMDsNCisJCW5wLT50eF9yaW5nW2ldLnR4X3N0YXR1cyA9IDA7DQor CQlucC0+dHhfcmluZ1tpXS5kZXNjX2xlbmd0aCA9IGNwdV90b19sZTMyKDB4 MDBlMDgwMDApOw0KKwkJbnAtPnR4X3JpbmdbaV0ubmV4dF9kZXNjID0gdmly dF90b19sZTMyZGVzYygmbnAtPnR4X3JpbmdbaSsxXSk7DQorCQlucC0+dHhf YnVmW2ldID0ga21hbGxvYyhQS1RfQlVGX1NaLCBHRlBfS0VSTkVMKTsNCisJ fQ0KKwlucC0+dHhfcmluZ1tpLTFdLm5leHRfZGVzYyA9IHZpcnRfdG9fbGUz MmRlc2MoJm5wLT50eF9yaW5nWzBdKTsNCit9DQorDQorc3RhdGljIHZvaWQg ZnJlZV90YnVmcyhzdHJ1Y3QgZGV2aWNlICpkZXYpDQorew0KKwlzdHJ1Y3Qg bmV0ZGV2X3ByaXZhdGUgKm5wID0gKHN0cnVjdCBuZXRkZXZfcHJpdmF0ZSAq KWRldi0+cHJpdjsNCisJaW50IGk7DQorDQorCWZvciAoaSA9IDA7IGkgPCBU WF9SSU5HX1NJWkU7IGkrKykgew0KKwkJaWYgKG5wLT50eF9za2J1ZmZbaV0p DQorCQkJZGV2X2tmcmVlX3NrYihucC0+dHhfc2tidWZmW2ldKTsNCisJCW5w LT50eF9za2J1ZmZbaV0gPSAwOw0KKwkJaWYgKG5wLT50eF9idWZbaV0pIHsN CisJCQlrZnJlZShucC0+dHhfYnVmW2ldKTsNCisJCQlucC0+dHhfYnVmW2ld ID0gMDsNCisJCX0NCisJfQ0KK30NCisNCitzdGF0aWMgdm9pZCBpbml0X3Jl Z2lzdGVycyhzdHJ1Y3QgZGV2aWNlICpkZXYpDQorew0KKwlzdHJ1Y3QgbmV0 ZGV2X3ByaXZhdGUgKm5wID0gKHN0cnVjdCBuZXRkZXZfcHJpdmF0ZSAqKWRl di0+cHJpdjsNCisJbG9uZyBpb2FkZHIgPSBkZXYtPmJhc2VfYWRkcjsNCisJ aW50IGk7DQorDQorCWZvciAoaSA9IDA7IGkgPCA2OyBpKyspDQorCQl3cml0 ZWIoZGV2LT5kZXZfYWRkcltpXSwgaW9hZGRyICsgU3RhdGlvbkFkZHIgKyBp KTsNCisNCisJLyogSW5pdGlhbGl6ZSBvdGhlciByZWdpc3RlcnMuICovDQor CXdyaXRldygweDAwMDYsIGlvYWRkciArIFBDSUJ1c0NvbmZpZyk7CS8qIFR1 bmUgY29uZmlndXJhdGlvbj8/PyAqLw0KKwkvKiBDb25maWd1cmUgdGhlIEZJ Rk8gdGhyZXNob2xkcy4gKi8NCisJd3JpdGViKDB4MjAsIGlvYWRkciArIFR4 Q29uZmlnKTsJLyogSW5pdGlhbCB0aHJlc2hvbGQgMzIgYnl0ZXMgKi8NCisJ bnAtPnR4X3RocmVzaCA9IDB4MjA7DQorCW5wLT5yeF90aHJlc2ggPSAweDYw OwkJCQkvKiBXcml0dGVuIGluIHNldF9yeF9tb2RlKCkuICovDQorDQorCWlm IChkZXYtPmlmX3BvcnQgPT0gMCkNCisJCWRldi0+aWZfcG9ydCA9IG5wLT5k ZWZhdWx0X3BvcnQ7DQorDQorCWRldi0+dGJ1c3kgPSAwOw0KKwlkZXYtPmlu dGVycnVwdCA9IDA7DQorDQorCXdyaXRlbCh2aXJ0X3RvX2J1cyhucC0+cnhf cmluZyksIGlvYWRkciArIFJ4UmluZ1B0cik7DQorCXdyaXRlbCh2aXJ0X3Rv X2J1cyhucC0+dHhfcmluZyksIGlvYWRkciArIFR4UmluZ1B0cik7DQorDQor CXNldF9yeF9tb2RlKGRldik7DQorDQorCWRldi0+c3RhcnQgPSAxOw0KKw0K KwkvKiBFbmFibGUgaW50ZXJydXB0cyBieSBzZXR0aW5nIHRoZSBpbnRlcnJ1 cHQgbWFzay4gKi8NCisJd3JpdGV3KEludHJSeERvbmUgfCBJbnRyUnhFcnIg fCBJbnRyUnhFbXB0eXwgSW50clJ4T3ZlcmZsb3d8IEludHJSeERyb3BwZWR8 DQorCQkgICBJbnRyVHhEb25lIHwgSW50clR4QWJvcnQgfCBJbnRyVHhVbmRl cnJ1biB8DQorCQkgICBJbnRyUENJRXJyIHwgSW50clN0YXRzTWF4IHwgSW50 ckxpbmtDaGFuZ2UgfCBJbnRyTUlJQ2hhbmdlLA0KKwkJICAgaW9hZGRyICsg SW50ckVuYWJsZSk7DQorDQorCW5wLT5jaGlwX2NtZCA9IENtZFN0YXJ0fENt ZFR4T258Q21kUnhPbnxDbWROb1R4UG9sbDsNCisJaWYgKG5wLT5kdXBsZXhf bG9jaykNCisJCW5wLT5jaGlwX2NtZCB8PSBDbWRGRHVwbGV4Ow0KKwl3cml0 ZXcobnAtPmNoaXBfY21kLCBpb2FkZHIgKyBDaGlwQ21kKTsNCisNCisJY2hl Y2tfZHVwbGV4KGRldik7DQorCS8qIFRoZSBMRUQgb3V0cHV0cyBvZiB2YXJp b3VzIE1JSSB4Y3ZycyBzaG91bGQgYmUgY29uZmlndXJlZC4gICovDQorCS8q IEZvciBOUyBvciBNaXNvbiBwaHlzLCB0dXJuIG9uIGJpdCAxIGluIHJlZ2lz dGVyIDB4MTcgKi8NCisJLyogRm9yIEVTSSBwaHlzLCB0dXJuIG9uIGJpdCA3 IGluIHJlZ2lzdGVyIDB4MTcuICovDQorCW1kaW9fd3JpdGUoZGV2LCBucC0+ cGh5c1swXSwgMHgxNywgbWRpb19yZWFkKGRldiwgbnAtPnBoeXNbMF0sIDB4 MTcpIHwNCisJCQkgICAobnAtPmRydl9mbGFncyAmIEhhc0VTSVBoeSkgPyAw eDAwODAgOiAweDAwMDEpOw0KK30NCisNCiAMDQogLyogUmVhZCBhbmQgd3Jp dGUgb3ZlciB0aGUgTUlJIE1hbmFnZW1lbnQgRGF0YSBJL08gKE1ESU8pIGlu dGVyZmFjZS4gKi8NCiANCkBAIC02NDgsNyArODE5LDYgQEANCiB7DQogCXN0 cnVjdCBuZXRkZXZfcHJpdmF0ZSAqbnAgPSAoc3RydWN0IG5ldGRldl9wcml2 YXRlICopZGV2LT5wcml2Ow0KIAlsb25nIGlvYWRkciA9IGRldi0+YmFzZV9h ZGRyOw0KLQlpbnQgaTsNCiANCiAJLyogUmVzZXQgdGhlIGNoaXAuICovDQog CXdyaXRldyhDbWRSZXNldCwgaW9hZGRyICsgQ2hpcENtZCk7DQpAQCAtNjY0 LDQ4ICs4MzQsMTAgQEANCiAJCXByaW50ayhLRVJOX0RFQlVHICIlczogbmV0 ZGV2X29wZW4oKSBpcnEgJWQuXG4iLA0KIAkJCSAgIGRldi0+bmFtZSwgZGV2 LT5pcnEpOw0KIA0KLQlpbml0X3JpbmcoZGV2KTsNCi0NCi0Jd3JpdGVsKHZp cnRfdG9fYnVzKG5wLT5yeF9yaW5nKSwgaW9hZGRyICsgUnhSaW5nUHRyKTsN Ci0Jd3JpdGVsKHZpcnRfdG9fYnVzKG5wLT50eF9yaW5nKSwgaW9hZGRyICsg VHhSaW5nUHRyKTsNCi0NCi0JZm9yIChpID0gMDsgaSA8IDY7IGkrKykNCi0J CXdyaXRlYihkZXYtPmRldl9hZGRyW2ldLCBpb2FkZHIgKyBTdGF0aW9uQWRk ciArIGkpOw0KLQ0KLQkvKiBJbml0aWFsaXplIG90aGVyIHJlZ2lzdGVycy4g Ki8NCi0Jd3JpdGV3KDB4MDAwNiwgaW9hZGRyICsgUENJQnVzQ29uZmlnKTsJ LyogVHVuZSBjb25maWd1cmF0aW9uPz8/ICovDQotCS8qIENvbmZpZ3VyZSB0 aGUgRklGTyB0aHJlc2hvbGRzLiAqLw0KLQl3cml0ZWIoMHgyMCwgaW9hZGRy ICsgVHhDb25maWcpOwkvKiBJbml0aWFsIHRocmVzaG9sZCAzMiBieXRlcyAq Lw0KLQlucC0+dHhfdGhyZXNoID0gMHgyMDsNCi0JbnAtPnJ4X3RocmVzaCA9 IDB4NjA7CQkJCS8qIFdyaXR0ZW4gaW4gc2V0X3J4X21vZGUoKS4gKi8NCi0N Ci0JaWYgKGRldi0+aWZfcG9ydCA9PSAwKQ0KLQkJZGV2LT5pZl9wb3J0ID0g bnAtPmRlZmF1bHRfcG9ydDsNCi0NCi0JZGV2LT50YnVzeSA9IDA7DQotCWRl di0+aW50ZXJydXB0ID0gMDsNCi0NCi0Jc2V0X3J4X21vZGUoZGV2KTsNCi0N Ci0JZGV2LT5zdGFydCA9IDE7DQorCWFsbG9jX3JidWZzKGRldik7DQorCWFs bG9jX3RidWZzKGRldik7DQogDQotCS8qIEVuYWJsZSBpbnRlcnJ1cHRzIGJ5 IHNldHRpbmcgdGhlIGludGVycnVwdCBtYXNrLiAqLw0KLQl3cml0ZXcoSW50 clJ4RG9uZSB8IEludHJSeEVyciB8IEludHJSeEVtcHR5fCBJbnRyUnhPdmVy Zmxvd3wgSW50clJ4RHJvcHBlZHwNCi0JCSAgIEludHJUeERvbmUgfCBJbnRy VHhBYm9ydCB8IEludHJUeFVuZGVycnVuIHwNCi0JCSAgIEludHJQQ0lFcnIg fCBJbnRyU3RhdHNNYXggfCBJbnRyTGlua0NoYW5nZSB8IEludHJNSUlDaGFu Z2UsDQotCQkgICBpb2FkZHIgKyBJbnRyRW5hYmxlKTsNCi0NCi0JbnAtPmNo aXBfY21kID0gQ21kU3RhcnR8Q21kVHhPbnxDbWRSeE9ufENtZE5vVHhQb2xs Ow0KLQlpZiAobnAtPmR1cGxleF9sb2NrKQ0KLQkJbnAtPmNoaXBfY21kIHw9 IENtZEZEdXBsZXg7DQotCXdyaXRldyhucC0+Y2hpcF9jbWQsIGlvYWRkciAr IENoaXBDbWQpOw0KLQ0KLQljaGVja19kdXBsZXgoZGV2KTsNCi0JLyogVGhl IExFRCBvdXRwdXRzIG9mIHZhcmlvdXMgTUlJIHhjdnJzIHNob3VsZCBiZSBj b25maWd1cmVkLiAgKi8NCi0JLyogRm9yIE5TIG9yIE1pc29uIHBoeXMsIHR1 cm4gb24gYml0IDEgaW4gcmVnaXN0ZXIgMHgxNyAqLw0KLQkvKiBGb3IgRVNJ IHBoeXMsIHR1cm4gb24gYml0IDcgaW4gcmVnaXN0ZXIgMHgxNy4gKi8NCi0J bWRpb193cml0ZShkZXYsIG5wLT5waHlzWzBdLCAweDE3LCBtZGlvX3JlYWQo ZGV2LCBucC0+cGh5c1swXSwgMHgxNykgfA0KLQkJCSAgIChucC0+ZHJ2X2Zs YWdzICYgSGFzRVNJUGh5KSA/IDB4MDA4MCA6IDB4MDAwMSk7DQorCWluaXRf cmVnaXN0ZXJzKGRldik7DQogDQogCWlmIChkZWJ1ZyA+IDIpDQogCQlwcmlu dGsoS0VSTl9ERUJVRyAiJXM6IERvbmUgbmV0ZGV2X29wZW4oKSwgc3RhdHVz ICU0LjR4ICINCkBAIC03NzMsNiArOTA1LDcgQEANCiBzdGF0aWMgdm9pZCB0 eF90aW1lb3V0KHN0cnVjdCBkZXZpY2UgKmRldikNCiB7DQogCXN0cnVjdCBu ZXRkZXZfcHJpdmF0ZSAqbnAgPSAoc3RydWN0IG5ldGRldl9wcml2YXRlICop ZGV2LT5wcml2Ow0KKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHBjaV9maW5k X3Nsb3QobnAtPnBjaV9idXMsIG5wLT5wY2lfZGV2Zm4pOw0KIAlsb25nIGlv YWRkciA9IGRldi0+YmFzZV9hZGRyOw0KIA0KIAlwcmludGsoS0VSTl9XQVJO SU5HICIlczogVHJhbnNtaXQgdGltZWQgb3V0LCBzdGF0dXMgJTQuNHgsIFBI WSBzdGF0dXMgIg0KQEAgLTc4Miw1OCArOTE1LDMxIEBADQogDQogCS8qIFBl cmhhcHMgd2Ugc2hvdWxkIHJlaW5pdGlhbGl6ZSB0aGUgaGFyZHdhcmUgaGVy ZS4gKi8NCiAJZGV2LT5pZl9wb3J0ID0gMDsNCi0JLyogU3RvcCBhbmQgcmVz dGFydCB0aGUgY2hpcCdzIFR4IHByb2Nlc3NlcyAuICovDQogDQotCS8qIFRy aWdnZXIgYW4gaW1tZWRpYXRlIHRyYW5zbWl0IGRlbWFuZC4gKi8NCi0NCi0J ZGV2LT50cmFuc19zdGFydCA9IGppZmZpZXM7DQotCW5wLT5zdGF0cy50eF9l cnJvcnMrKzsNCi0JcmV0dXJuOw0KLX0NCisJLyogcHJvdGVjdCBhZ2FpbnN0 IGNvbmN1cnJlbnQgcnggaW50ZXJydXB0cyAqLw0KKwlkaXNhYmxlX2lycShw ZGV2LT5pcnEpOw0KIA0KKwkvKiBSZXNldCB0aGUgY2hpcC4gKi8NCisJd3Jp dGV3KENtZFJlc2V0LCBpb2FkZHIgKyBDaGlwQ21kKTsNCiANCi0vKiBJbml0 aWFsaXplIHRoZSBSeCBhbmQgVHggcmluZ3MsIGFsb25nIHdpdGggdmFyaW91 cyAnZGV2JyBiaXRzLiAqLw0KLXN0YXRpYyB2b2lkIGluaXRfcmluZyhzdHJ1 Y3QgZGV2aWNlICpkZXYpDQotew0KLQlzdHJ1Y3QgbmV0ZGV2X3ByaXZhdGUg Km5wID0gKHN0cnVjdCBuZXRkZXZfcHJpdmF0ZSAqKWRldi0+cHJpdjsNCi0J aW50IGk7DQotDQotCW5wLT50eF9mdWxsID0gMDsNCi0JbnAtPmN1cl9yeCA9 IG5wLT5jdXJfdHggPSAwOw0KLQlucC0+ZGlydHlfcnggPSBucC0+ZGlydHlf dHggPSAwOw0KKwkvKiBjbGVhciBhbGwgZGVzY3JpcHRvcnMgKi8NCisJZnJl ZV90YnVmcyhkZXYpOw0KKwlmcmVlX3JidWZzKGRldik7DQorCWFsbG9jX3Ri dWZzKGRldik7DQorCWFsbG9jX3JidWZzKGRldik7DQorDQorCS8qIFJlaW5p dGlhbGl6ZSB0aGUgaGFyZHdhcmUuICovDQorCXdhaXRfZm9yX3Jlc2V0KGRl diwgZGV2LT5uYW1lKTsNCisJaW5pdF9yZWdpc3RlcnMoZGV2KTsNCiANCi0J bnAtPnJ4X2J1Zl9zeiA9IChkZXYtPm10dSA8PSAxNTAwID8gUEtUX0JVRl9T WiA6IGRldi0+bXR1ICsgMzIpOw0KLQlucC0+cnhfaGVhZF9kZXNjID0gJm5w LT5yeF9yaW5nWzBdOw0KKwllbmFibGVfaXJxKHBkZXYtPmlycSk7DQogDQot CWZvciAoaSA9IDA7IGkgPCBSWF9SSU5HX1NJWkU7IGkrKykgew0KLQkJbnAt PnJ4X3JpbmdbaV0ucnhfc3RhdHVzID0gMDsNCi0JCW5wLT5yeF9yaW5nW2ld LmRlc2NfbGVuZ3RoID0gY3B1X3RvX2xlMzIobnAtPnJ4X2J1Zl9zeik7DQot CQlucC0+cnhfcmluZ1tpXS5uZXh0X2Rlc2MgPSB2aXJ0X3RvX2xlMzJkZXNj KCZucC0+cnhfcmluZ1tpKzFdKTsNCi0JCW5wLT5yeF9za2J1ZmZbaV0gPSAw Ow0KLQl9DQotCS8qIE1hcmsgdGhlIGxhc3QgZW50cnkgYXMgd3JhcHBpbmcg dGhlIHJpbmcuICovDQotCW5wLT5yeF9yaW5nW2ktMV0ubmV4dF9kZXNjID0g dmlydF90b19sZTMyZGVzYygmbnAtPnJ4X3JpbmdbMF0pOw0KKwlkZXYtPnRy YW5zX3N0YXJ0ID0gamlmZmllczsNCisJbnAtPnN0YXRzLnR4X2Vycm9ycysr Ow0KIA0KLQkvKiBGaWxsIGluIHRoZSBSeCBidWZmZXJzLiAgSGFuZGxlIGFs bG9jYXRpb24gZmFpbHVyZSBncmFjZWZ1bGx5LiAqLw0KLQlmb3IgKGkgPSAw OyBpIDwgUlhfUklOR19TSVpFOyBpKyspIHsNCi0JCXN0cnVjdCBza19idWZm ICpza2IgPSBkZXZfYWxsb2Nfc2tiKG5wLT5yeF9idWZfc3opOw0KLQkJbnAt PnJ4X3NrYnVmZltpXSA9IHNrYjsNCi0JCWlmIChza2IgPT0gTlVMTCkNCi0J CQlicmVhazsNCi0JCXNrYi0+ZGV2ID0gZGV2OwkJCS8qIE1hcmsgYXMgYmVp bmcgdXNlZCBieSB0aGlzIGRldmljZS4gKi8NCi0JCW5wLT5yeF9yaW5nW2ld LmFkZHIgPSB2aXJ0X3RvX2xlMzJkZXNjKHNrYi0+dGFpbCk7DQotCQlucC0+ cnhfcmluZ1tpXS5yeF9zdGF0dXMgPSBjcHVfdG9fbGUzMihEZXNjT3duKTsN Ci0JfQ0KLQlucC0+ZGlydHlfcnggPSAodW5zaWduZWQgaW50KShpIC0gUlhf UklOR19TSVpFKTsNCi0NCi0JZm9yIChpID0gMDsgaSA8IFRYX1JJTkdfU0la RTsgaSsrKSB7DQotCQlucC0+dHhfc2tidWZmW2ldID0gMDsNCi0JCW5wLT50 eF9yaW5nW2ldLnR4X3N0YXR1cyA9IDA7DQotCQlucC0+dHhfcmluZ1tpXS5k ZXNjX2xlbmd0aCA9IGNwdV90b19sZTMyKDB4MDBlMDgwMDApOw0KLQkJbnAt PnR4X3JpbmdbaV0ubmV4dF9kZXNjID0gdmlydF90b19sZTMyZGVzYygmbnAt PnR4X3JpbmdbaSsxXSk7DQotCQlucC0+dHhfYnVmW2ldID0ga21hbGxvYyhQ S1RfQlVGX1NaLCBHRlBfS0VSTkVMKTsNCi0JfQ0KLQlucC0+dHhfcmluZ1tp LTFdLm5leHRfZGVzYyA9IHZpcnRfdG9fbGUzMmRlc2MoJm5wLT50eF9yaW5n WzBdKTsNCisJLyogd2FrZSBxdWV1ZSAqLw0KKwljbGVhcl9iaXQoMCwgKHZv aWQqKSZkZXYtPnRidXN5KTsNCisJbWFya19iaChORVRfQkgpOw0KIA0KIAly ZXR1cm47DQogfQ0KQEAgLTEyMzEsNyArMTMzNyw2IEBADQogew0KIAlsb25n IGlvYWRkciA9IGRldi0+YmFzZV9hZGRyOw0KIAlzdHJ1Y3QgbmV0ZGV2X3By aXZhdGUgKm5wID0gKHN0cnVjdCBuZXRkZXZfcHJpdmF0ZSAqKWRldi0+cHJp djsNCi0JaW50IGk7DQogDQogCWRldi0+c3RhcnQgPSAwOw0KIAlkZXYtPnRi dXN5ID0gMTsNCkBAIC0xMjUzLDI3ICsxMzU4LDggQEANCiANCiAJZnJlZV9p cnEoZGV2LT5pcnEsIGRldik7DQogDQotCS8qIEZyZWUgYWxsIHRoZSBza2J1 ZmZzIGluIHRoZSBSeCBxdWV1ZS4gKi8NCi0JZm9yIChpID0gMDsgaSA8IFJY X1JJTkdfU0laRTsgaSsrKSB7DQotCQlucC0+cnhfcmluZ1tpXS5yeF9zdGF0 dXMgPSAwOw0KLQkJbnAtPnJ4X3JpbmdbaV0uYWRkciA9IDB4QkFERjAwRDA7 IC8qIEFuIGludmFsaWQgYWRkcmVzcy4gKi8NCi0JCWlmIChucC0+cnhfc2ti dWZmW2ldKSB7DQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IDB4MjAxMDAN Ci0JCQlucC0+cnhfc2tidWZmW2ldLT5mcmVlID0gMTsNCi0jZW5kaWYNCi0J CQlkZXZfa2ZyZWVfc2tiKG5wLT5yeF9za2J1ZmZbaV0pOw0KLQkJfQ0KLQkJ bnAtPnJ4X3NrYnVmZltpXSA9IDA7DQotCX0NCi0JZm9yIChpID0gMDsgaSA8 IFRYX1JJTkdfU0laRTsgaSsrKSB7DQotCQlpZiAobnAtPnR4X3NrYnVmZltp XSkNCi0JCQlkZXZfa2ZyZWVfc2tiKG5wLT50eF9za2J1ZmZbaV0pOw0KLQkJ bnAtPnR4X3NrYnVmZltpXSA9IDA7DQotCQlpZiAobnAtPnR4X2J1ZltpXSkg ew0KLQkJCWtmcmVlKG5wLT50eF9idWZbaV0pOw0KLQkJCW5wLT50eF9idWZb aV0gPSAwOw0KLQkJfQ0KLQl9DQorCWZyZWVfcmJ1ZnMoZGV2KTsNCisJZnJl ZV90YnVmcyhkZXYpOw0KIA0KIAlNT0RfREVDX1VTRV9DT1VOVDsNCiANCg== ---1463811328-1172383250-998126020=:27920-- - 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/