3c59x "Vortex" driver: new patch (sorry...) (fwd)

Giuseppe Ciaccio (ciaccio@hobbes.disi.unige.it)
Wed, 20 Mar 1996 00:08:29 +0100 (MET)


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.

---75343811-99749742-827276909=:1403
Content-Type: TEXT/PLAIN; charset=US-ASCII

I tested my revised version of the "Vortex" driver for 3c590/595
network adapter, by plugging in both a 3c595 and a NE2000 clone, and I
detected a mistake in my revision.

I'm sorry. Please find attached the re-revised patch, to be applied
to the original "Vortex" driver.

If you run into troubles getting the attachment, get the stuff at
anonymous ftp://ftp/disi.unige.it/pub/ciaccio, where you can find
both the patch and the revised driver (and two pictures of mine).

Greetings from Italy

Giuseppe.

|----------------------------------------------------------------------|
| Giuseppe Ciaccio e-mail : ciaccio@disi.unige.it |
| phone, address: finger ciaccio@disi.unige.it |
|----------------------------------------------------------------------|

---75343811-99749742-827276909=:1403
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=3c59xpatch
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.91.960320000829.1403C@hobbes>
Content-Description:

LS0tIDNjNTl4b2xkLmMJVGh1IE1hciAxNCAxNTowMToxNSAxOTk2DQorKysg
M2M1OXhuZXcuYwlUdWUgTWFyIDE5IDE4OjU3OjU5IDE5OTYNCkBAIC0yLDYg
KzIsOCBAQA0KIC8qDQogCVdyaXR0ZW4gMTk5NSBieSBEb25hbGQgQmVja2Vy
Lg0KIA0KKwlSZXZpc2VkIDMvMTkvMTk5NiBieSBHaXVzZXBwZSBDaWFjY2lv
ICBjaWFjY2lvQGRpc2kudW5pZ2UuaXQNCisNCiAJVGhpcyBzb2Z0d2FyZSBt
YXkgYmUgdXNlZCBhbmQgZGlzdHJpYnV0ZWQgYWNjb3JkaW5nIHRvIHRoZSB0
ZXJtcw0KIAlvZiB0aGUgR05VIFB1YmxpYyBMaWNlbnNlLCBpbmNvcnBvcmF0
ZWQgaGVyZWluIGJ5IHJlZmVyZW5jZS4NCiANCkBAIC0xNCw3ICsxNiw3IEBA
DQogCSAgIENvZGUgOTMwLjUsIEdvZGRhcmQgU3BhY2UgRmxpZ2h0IENlbnRl
ciwgR3JlZW5iZWx0IE1EIDIwNzcxDQogKi8NCiANCi1zdGF0aWMgY2hhciAq
dmVyc2lvbiA9ICIzYzU5eC5jOnYwLjEzIDIvMTMvOTYgYmVja2VyQGNlc2Rp
cy5nc2ZjLm5hc2EuZ292XG4iOw0KK3N0YXRpYyBjaGFyICp2ZXJzaW9uID0g
IjNjNTl4LmM6djAuMTMgMi8xMy85NiBiZWNrZXJAY2VzZGlzLmdzZmMubmFz
YS5nb3ZcbnJldmlzZWQ6ICAgICAgMy8xOS85NiBjaWFjY2lvQGRpc2kudW5p
Z2UuaXRcbiI7DQogDQogLyogIktub2JzIiB0aGF0IHR1cm4gb24gc3BlY2lh
bCBmZWF0dXJlcy4gKi8NCiAvKiBBbGxvdyB0aGUgdXNlIG9mIGJ1cyBtYXN0
ZXIgdHJhbnNmZXJzIGluc3RlYWQgb2YgcHJvZ3JhbW1lZC1JL08gZm9yIHRo
ZQ0KQEAgLTI1LDYgKzI3LDE4IEBADQogLyogUHV0IG91dCBzb21ld2hhdCBt
b3JlIGRlYnVnZ2luZyBtZXNzYWdlcy4gKDAgLSBubyBtc2csIDEgbWluaW1h
bCBtc2dzKS4gKi8NCiAjZGVmaW5lIFZPUlRFWF9ERUJVRyAxDQogDQorDQor
LyogIFNvbWV0aW1lcyBpdCBpcyBzYWZlIHRvIHdhaXQgYSBtb21lbnQuLi4g
ICovDQorI2RlZmluZSBXQUlUX0xBUFNFIDIwDQorI2RlZmluZSBMT05HX1dB
SVRfTEFQU0UgMjAwDQorI2RlZmluZSBXQUlUX1RYX0FWQUlMIDIwMA0KKyNk
ZWZpbmUgTUFYX1RJQ0tTX1NPX0ZBUiA0MA0KKw0KKw0KKy8qICBNYXggcGFj
a2V0IHNpemUgaXMgMTUzNiwgYnV0IGNhbiBjaGFuZ2UgaW4gdGhlIGZ1dHVy
ZS4uLiAgKi8NCisjZGVmaW5lIE1BWF9QQUNLRVRfU0laRSAxNTM2DQorDQor
DQogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KIA0KICNpbmNsdWRlIDxs
aW51eC9rZXJuZWwuaD4NCkBAIC02Niw3ICs4MCwxMSBAQA0KIGludCB2b3J0
ZXhfZGVidWcgPSAxOw0KICNlbmRpZg0KIA0KLXN0YXRpYyBpbnQgcHJvZHVj
dF9pZHNbXSA9IHsweDU5MDAsIDB4NTk1MCwgMHg1OTUxLCAweDU5NTIsIDAs
IDB9Ow0KKy8qICBUaGVzZSBhcmUgZm9yIFBDSSBvbmx5ICAqLw0KK3N0YXRp
YyBpbnQgcHJvZHVjdF9pZHNbXSA9IHsweDU5MDAsIDB4NTk1MCwgMHg1OTUx
LCAweDU5NTIsIDB9Ow0KKyNkZWZpbmUgSE9XX01BTllfUENJX1BST0RVQ1RT
IDQNCisNCisvKiAgVGhlc2UgYXJlIGZvciBib3RoIFBDSSBhbmQgRUlTQSAg
Ki8NCiBzdGF0aWMgY29uc3QgY2hhciAqcHJvZHVjdF9uYW1lc1tdID0gew0K
IAkiM2M1OTAgVm9ydGV4IDEwTWJwcyIsDQogCSIzYzU5NSBWb3J0ZXggMTAw
YmFzZVRYIiwNCkBAIC03NCw3ICs5Miw5IEBADQogCSIzYzU5NSBWb3J0ZXgg
MTAwYmFzZS1NSUkiLA0KIAkiRUlTQSBWb3J0ZXggM2M1OTciLA0KIH07DQot
I2RlZmluZSBERU1PTl9JTkRFWCA1CQkJLyogQ2F1dGlvbiEgIE11c3QgYmUg
Y29uc2lzdGVudCB3aXRoIGFib3ZlISAqLw0KKw0KKy8qIENhdXRpb24hICBN
dXN0IGJlIGNvbnNpc3RlbnQgd2l0aCBhYm92ZSEgKi8NCisjZGVmaW5lIERF
TU9OX0lOREVYIEhPV19NQU5ZX1BDSV9QUk9EVUNUUysxDQogDQogLyoNCiAJ
CQkJVGhlb3J5IG9mIE9wZXJhdGlvbg0KQEAgLTEyMyw2ICsxNDMsMTYgQEAN
CiBUaGUgbmV3IGNoaXBzIHN1cHBvcnQgYm90aCBldGhlcm5ldCAoMS41Sykg
YW5kIEZEREkgKDQuNUspIHBhY2tldCBzaXplcyENCiBUaGlzIGRyaXZlciBv
bmx5IHN1cHBvcnRzIGV0aGVybmV0IHBhY2tldHMgYmVjYXVzZSBvZiB0aGUg
c2tidWZmIGFsbG9jYXRpb24NCiBsaW1pdCBvZiA0Sy4NCisNCitJbiBvcmRl
ciB0byBzaWduYWwgcm9vbSBhdmFpbGFiaWxpdHkgaW4gdGhlIFR4IGJ1ZmZl
ciwgdGhlIG5ldHdvcmsgYWRhcHRlcg0KK2lzIHByb2dyYW1tZWQgdG8gc2Vu
ZCBhbiBpbnRlcnJ1cHQsIHdoaWNoIGNhdXNlcyB0aGUgZmxhZyBkZXYtPnRi
dXN5DQordG8gYmUgemVyb2VkIHdoZW4gY2F0Y2hlZCAoZnVuY3Rpb24gdm9y
dGV4X2ludGVycnVwdCkuICBIb3dldmVyLCBpdCBzZWVtcw0KK3RoYXQgM2M1
OTAgYm9hcmRzIHNvbWV0aW1lcyBmb3JnZXQgdG8gc2VuZCB0aGF0IGludGVy
cnVwdC4gIEFzIGEgcmVzdWx0LCANCit0aGUgb25nb2luZyBjb21tdW5pY2F0
aW9uIGlzIGJsb2NrZWQuDQorVGhlIHByb2JsZW0gaXMgc29sdmVkIGJ5IGJ1
c3ktd2FpdGluZyByb29tIGF2YWlsYWJpbGl0eSBlYWNoIHRpbWUgYSBuZXcN
Cit0cmFuc21pc3Npb24gaXMgdG8gc3RhcnQgYW5kIGRldi0+dGJ1c3kgaXMg
bm90IHplcm8NCisoZnVuY3Rpb24gdm9ydGV4X3N0YXJ0X3htaXQpLg0KKw0K
ICovDQogDQogI2RlZmluZSBUQ09NX1ZFTkRPUl9JRAkweDEwQjcJCS8qIDND
b20ncyBtYW51ZmFjdHVyZXIncyBJRC4gKi8NCkBAIC0zMDEsNTYgKzMzMSw2
MCBAQA0KIAlpbnQgY2FyZHNfZm91bmQgPSAwOw0KIA0KIAlpZiAocGNpYmlv
c19wcmVzZW50KCkpIHsNCi0JCXN0YXRpYyBpbnQgcGNpX2luZGV4ID0gMDsN
CisJCXN0YXRpYyBpbnQgcGNpX2luZGV4Ow0KIAkJZm9yICg7IHBjaV9pbmRl
eCA8IDg7IHBjaV9pbmRleCsrKSB7DQogCQkJdW5zaWduZWQgY2hhciBwY2lf
YnVzLCBwY2lfZGV2aWNlX2ZuLCBwY2lfaXJxX2xpbmUsIHBjaV9sYXRlbmN5
Ow0KIAkJCXVuc2lnbmVkIGludCBwY2lfaW9hZGRyOw0KIAkJCXVuc2lnbmVk
IHNob3J0IHBjaV9jb21tYW5kOw0KIAkJCWludCBpbmRleDsNCisJCQlpbnQg
Zm91bmQgPSAwOw0KIA0KLQkJCWZvciAoaW5kZXggPSAwOyBwcm9kdWN0X2lk
c1tpbmRleF07IGluZGV4KyspIHsNCi0JCQkJaWYgKCAhIHBjaWJpb3NfZmlu
ZF9kZXZpY2UoVENPTV9WRU5ET1JfSUQsIHByb2R1Y3RfaWRzW2luZGV4XSwN
CisJCQlmb3IgKGluZGV4ID0gMDsgaW5kZXggPCA1OyBpbmRleCsrKSB7DQor
CQkJCWlmICggcGNpYmlvc19maW5kX2RldmljZShUQ09NX1ZFTkRPUl9JRCwg
cHJvZHVjdF9pZHNbaW5kZXhdLA0KIAkJCQkJCQkJCQkgICBwY2lfaW5kZXgs
ICZwY2lfYnVzLA0KIAkJCQkJCQkJCQkgICAmcGNpX2RldmljZV9mbikpDQot
CQkJCQlicmVhazsNCi0JCQl9DQotCQkJaWYgKCAhIHByb2R1Y3RfaWRzW2lu
ZGV4XSkNCi0JCQkJYnJlYWs7DQotDQotCQkJcGNpYmlvc19yZWFkX2NvbmZp
Z19ieXRlKHBjaV9idXMsIHBjaV9kZXZpY2VfZm4sDQotCQkJCQkJCQkJIFBD
SV9JTlRFUlJVUFRfTElORSwgJnBjaV9pcnFfbGluZSk7DQotCQkJcGNpYmlv
c19yZWFkX2NvbmZpZ19kd29yZChwY2lfYnVzLCBwY2lfZGV2aWNlX2ZuLA0K
LQkJCQkJCQkJCSAgUENJX0JBU0VfQUREUkVTU18wLCAmcGNpX2lvYWRkcik7
DQotCQkJLyogUmVtb3ZlIEkvTyBzcGFjZSBtYXJrZXIgaW4gYml0IDAuICov
DQotCQkJcGNpX2lvYWRkciAmPSB+MzsNCisJCQkJCWNvbnRpbnVlOw0KIA0K
KwkJCQkvKiAgQSBrbm93biBQQ0kgY2FyZCB3YXMgZm91bmQgICovDQorCQkJ
CWZvdW5kID0gMTsNCisJCQkJDQorCQkJCXBjaWJpb3NfcmVhZF9jb25maWdf
Ynl0ZShwY2lfYnVzLCBwY2lfZGV2aWNlX2ZuLA0KKwkJCQkJCQkJCQkgUENJ
X0lOVEVSUlVQVF9MSU5FLCAmcGNpX2lycV9saW5lKTsNCisJCQkJcGNpYmlv
c19yZWFkX2NvbmZpZ19kd29yZChwY2lfYnVzLCBwY2lfZGV2aWNlX2ZuLA0K
KwkJCQkJCQkJCQkgIFBDSV9CQVNFX0FERFJFU1NfMCwgJnBjaV9pb2FkZHIp
Ow0KKwkJCQkvKiBSZW1vdmUgSS9PIHNwYWNlIG1hcmtlciBpbiBiaXQgMC4g
Ki8NCisJCQkJcGNpX2lvYWRkciAmPSB+MzsNCisJDQogI2lmZGVmIFZPUlRF
WF9CVVNfTUFTVEVSDQotCQkJLyogR2V0IGFuZCBjaGVjayB0aGUgYnVzLW1h
c3RlciBhbmQgbGF0ZW5jeSB2YWx1ZXMuDQotCQkJICAgU29tZSBQQ0kgQklP
U2VzIGZhaWwgdG8gc2V0IHRoZSBtYXN0ZXItZW5hYmxlIGJpdCwgYW5kDQot
CQkJICAgdGhlIGxhdGVuY3kgdGltZXIgbXVzdCBiZSBzZXQgdG8gdGhlIG1h
eGltdW0gdmFsdWUgdG8gYXZvaWQNCi0JCQkgICBkYXRhIGNvcnJ1cHRpb24g
dGhhdCBvY2N1cnMgd2hlbiB0aGUgdGltZXIgZXhwaXJlcyBkdXJpbmcNCi0J
CQkgICBhIHRyYW5zZmVyLiAgWWVzLCBpdCdzIGEgYnVnLiAqLw0KLQkJCXBj
aWJpb3NfcmVhZF9jb25maWdfd29yZChwY2lfYnVzLCBwY2lfZGV2aWNlX2Zu
LA0KLQkJCQkJCQkJCSBQQ0lfQ09NTUFORCwgJnBjaV9jb21tYW5kKTsNCi0J
CQlpZiAoICEgKHBjaV9jb21tYW5kICYgUENJX0NPTU1BTkRfTUFTVEVSKSkg
ew0KLQkJCQlwcmludGsoIiAgUENJIE1hc3RlciBCaXQgaGFzIG5vdCBiZWVu
IHNldCEgU2V0dGluZy4uLlxuIik7DQotCQkJCXBjaV9jb21tYW5kIHw9IFBD
SV9DT01NQU5EX01BU1RFUjsNCi0JCQkJcGNpYmlvc193cml0ZV9jb25maWdf
d29yZChwY2lfYnVzLCBwY2lfZGV2aWNlX2ZuLA0KLQkJCQkJCQkJCQkgIFBD
SV9DT01NQU5ELCBwY2lfY29tbWFuZCk7DQotCQkJfQ0KLQkJCXBjaWJpb3Nf
cmVhZF9jb25maWdfYnl0ZShwY2lfYnVzLCBwY2lfZGV2aWNlX2ZuLA0KLQkJ
CQkJCQkJCQkgUENJX0xBVEVOQ1lfVElNRVIsICZwY2lfbGF0ZW5jeSk7DQot
CQkJaWYgKHBjaV9sYXRlbmN5ICE9IDI1NSkgew0KLQkJCQlwcmludGsoIiAg
T3ZlcnJpZGluZyBQQ0kgbGF0ZW5jeSB0aW1lciAoQ0ZMVCkgc2V0dGluZyBv
ZiAlZCwgbmV3IHZhbHVlIGlzIDI1NS5cbiIsIHBjaV9sYXRlbmN5KTsNCi0J
CQkJcGNpYmlvc193cml0ZV9jb25maWdfYnl0ZShwY2lfYnVzLCBwY2lfZGV2
aWNlX2ZuLA0KLQkJCQkJCQkJCQkgIFBDSV9MQVRFTkNZX1RJTUVSLCAyNTUp
Ow0KLQkJCX0NCisJCQkJLyogR2V0IGFuZCBjaGVjayB0aGUgYnVzLW1hc3Rl
ciBhbmQgbGF0ZW5jeSB2YWx1ZXMuDQorCQkJCSAgIFNvbWUgUENJIEJJT1Nl
cyBmYWlsIHRvIHNldCB0aGUgbWFzdGVyLWVuYWJsZSBiaXQsIGFuZA0KKwkJ
CQkgICB0aGUgbGF0ZW5jeSB0aW1lciBtdXN0IGJlIHNldCB0byB0aGUgbWF4
aW11bSB2YWx1ZSB0byBhdm9pZA0KKwkJCQkgICBkYXRhIGNvcnJ1cHRpb24g
dGhhdCBvY2N1cnMgd2hlbiB0aGUgdGltZXIgZXhwaXJlcyBkdXJpbmcNCisJ
CQkJICAgYSB0cmFuc2Zlci4gIFllcywgaXQncyBhIGJ1Zy4gKi8NCisJCQkJ
cGNpYmlvc19yZWFkX2NvbmZpZ193b3JkKHBjaV9idXMsIHBjaV9kZXZpY2Vf
Zm4sDQorCQkJCQkJCQkJCSBQQ0lfQ09NTUFORCwgJnBjaV9jb21tYW5kKTsN
CisJCQkJaWYgKCAhIChwY2lfY29tbWFuZCAmIFBDSV9DT01NQU5EX01BU1RF
UikpIHsNCisJCQkJCXByaW50aygiICBQQ0kgTWFzdGVyIEJpdCBoYXMgbm90
IGJlZW4gc2V0ISBTZXR0aW5nLi4uXG4iKTsNCisJCQkJCXBjaV9jb21tYW5k
IHw9IFBDSV9DT01NQU5EX01BU1RFUjsNCisJCQkJCXBjaWJpb3Nfd3JpdGVf
Y29uZmlnX3dvcmQocGNpX2J1cywgcGNpX2RldmljZV9mbiwNCisJCQkJCQkJ
CQkJCSAgUENJX0NPTU1BTkQsIHBjaV9jb21tYW5kKTsNCisJCQkJfQ0KKwkJ
CQlwY2liaW9zX3JlYWRfY29uZmlnX2J5dGUocGNpX2J1cywgcGNpX2Rldmlj
ZV9mbiwNCisJCQkJCQkJCQkJCSBQQ0lfTEFURU5DWV9USU1FUiwgJnBjaV9s
YXRlbmN5KTsNCisJCQkJaWYgKHBjaV9sYXRlbmN5ICE9IDI1NSkgew0KKwkJ
CQkJcHJpbnRrKCIgIE92ZXJyaWRpbmcgUENJIGxhdGVuY3kgdGltZXIgKENG
TFQpIHNldHRpbmcgb2YgJWQsIG5ldyB2YWx1ZSBpcyAyNTUuXG4iLCBwY2lf
bGF0ZW5jeSk7DQorCQkJCQlwY2liaW9zX3dyaXRlX2NvbmZpZ19ieXRlKHBj
aV9idXMsIHBjaV9kZXZpY2VfZm4sDQorCQkJCQkJCQkJCQkgIFBDSV9MQVRF
TkNZX1RJTUVSLCAyNTUpOw0KKwkJCQl9DQogI2VuZGlmICAvKiBWT1JURVhf
QlVTX01BU1RFUiAqLw0KLQkJCXZvcnRleF9mb3VuZF9kZXZpY2UoZGV2LCBw
Y2lfaW9hZGRyLCBwY2lfaXJxX2xpbmUsIGluZGV4LA0KLQkJCQkJCQkJZGV2
ICYmIGRldi0+bWVtX3N0YXJ0ID8gZGV2LT5tZW1fc3RhcnQNCi0JCQkJCQkJ
CTogb3B0aW9uc1tjYXJkc19mb3VuZF0pOw0KLQkJCWRldiA9IDA7DQotCQkJ
Y2FyZHNfZm91bmQrKzsNCisJCQkJdm9ydGV4X2ZvdW5kX2RldmljZShkZXYs
IHBjaV9pb2FkZHIsIHBjaV9pcnFfbGluZSwgaW5kZXgsDQorCQkJCQkJCQkJ
ZGV2ICYmIGRldi0+bWVtX3N0YXJ0ID8gZGV2LT5tZW1fc3RhcnQNCisJCQkJ
CQkJCQk6IG9wdGlvbnNbY2FyZHNfZm91bmRdKTsNCisJCQkJZGV2ID0gMDsN
CisJCQkJY2FyZHNfZm91bmQrKzsNCisJCQl9DQorCQkJLyogIElmIG5vIGtu
b3duIGNhcmQgd2FzIGZvdW5kLCBzdG9wIHNjYW5uaW5nLiAgKi8NCisJCQlp
ZiAoIWZvdW5kKSBicmVhazsNCiAJCX0NCiAJfQ0KIA0KQEAgLTUzMCwxMyAr
NTY0LDEzIEBADQogCX0NCiANCiAJb3V0dyhUeFJlc2V0LCBpb2FkZHIgKyBF
TDNfQ01EKTsNCi0JZm9yIChpID0gMjA7IGkgPj0gMCA7IGktLSkNCisJZm9y
IChpID0gV0FJVF9MQVBTRTsgaSA+PSAwIDsgaS0tKQ0KIAkJaWYgKCAhIGlu
dyhpb2FkZHIgKyBFTDNfU1RBVFVTKSAmIENtZEluUHJvZ3Jlc3MpDQogCQkJ
YnJlYWs7DQogDQogCW91dHcoUnhSZXNldCwgaW9hZGRyICsgRUwzX0NNRCk7
DQogCS8qIFdhaXQgYSBmZXcgdGlja3MgZm9yIHRoZSBSeFJlc2V0IGNvbW1h
bmQgdG8gY29tcGxldGUuICovDQotCWZvciAoaSA9IDIwOyBpID49IDAgOyBp
LS0pDQorCWZvciAoaSA9IFdBSVRfTEFQU0U7IGkgPj0gMCA7IGktLSkNCiAJ
CWlmICggISBpbncoaW9hZGRyICsgRUwzX1NUQVRVUykgJiBDbWRJblByb2dy
ZXNzKQ0KIAkJCWJyZWFrOw0KIA0KQEAgLTYzOCwyNiArNjcyLDI4IEBADQog
CXN0cnVjdCB2b3J0ZXhfcHJpdmF0ZSAqdnAgPSAoc3RydWN0IHZvcnRleF9w
cml2YXRlICopZGV2LT5wcml2Ow0KIAlpbnQgaW9hZGRyID0gZGV2LT5iYXNl
X2FkZHI7DQogDQotCS8qIFRyYW5zbWl0dGVyIHRpbWVvdXQsIHNlcmlvdXMg
cHJvYmxlbXMuICovDQogCWlmIChkZXYtPnRidXN5KSB7DQotCQlpbnQgdGlj
a3Nzb2ZhciA9IGppZmZpZXMgLSBkZXYtPnRyYW5zX3N0YXJ0Ow0KLQkJaWYg
KHRpY2tzc29mYXIgPCA0MCkNCi0JCQlyZXR1cm4gMTsNCi0JCXByaW50aygi
JXM6IHRyYW5zbWl0IHRpbWVkIG91dCwgdHhfc3RhdHVzICUyLjJ4IHN0YXR1
cyAlNC40eC5cbiIsDQotCQkJICAgZGV2LT5uYW1lLCBpbmIoaW9hZGRyICsg
VHhTdGF0dXMpLCBpbncoaW9hZGRyICsgRUwzX1NUQVRVUykpOw0KLQkJdnAt
PnN0YXRzLnR4X2Vycm9ycysrOw0KLQkJLyogSXNzdWUgVFhfUkVTRVQgYW5k
IFRYX1NUQVJUIGNvbW1hbmRzLiAqLw0KLQkJb3V0dyhUeFJlc2V0LCBpb2Fk
ZHIgKyBFTDNfQ01EKTsNCi0JCXsNCi0JCQlpbnQgaTsNCi0JCQlmb3IgKGkg
PSAyMDsgaSA+PSAwIDsgaS0tKQ0KLQkJCQlpZiAoICEgaW53KGlvYWRkciAr
IEVMM19TVEFUVVMpICYgQ21kSW5Qcm9ncmVzcykNCi0JCQkJCWJyZWFrOw0K
LQkJfQ0KLQkJb3V0dyhUeEVuYWJsZSwgaW9hZGRyICsgRUwzX0NNRCk7DQot
CQlkZXYtPnRyYW5zX3N0YXJ0ID0gamlmZmllczsNCi0JCWRldi0+dGJ1c3kg
PSAwOw0KLQkJcmV0dXJuIDA7DQorCQkvKiAgTWlzc2luZyBpbnRlcnJ1cHQg
b2YgVHhBdmFpbGFibGUgPyAgKi8NCisgICAgICAgICAgICAgICAgLyogIExl
dCdzIGhhdmUgYSBsaXR0bGUgYnVzeS13YWl0aW5nIGZvciAgKi8NCisJCS8q
ICByb29tIGF2YWlsYWJsZSBpbiBUeCBidWZmZXIgICovDQorCQlpbnQgaSA9
IFdBSVRfVFhfQVZBSUw7DQorCQl3aGlsZSAoKGludyhpb2FkZHIgKyBUeEZy
ZWUpIDw9IE1BWF9QQUNLRVRfU0laRSkgJiYgLS1pKTsNCisJCWlmICghaSkg
ew0KKyAgICAgICAgICAgICAgICAgICBpZiAoKGppZmZpZXMgLSBkZXYtPnRy
YW5zX3N0YXJ0KSA8IE1BWF9USUNLU19TT19GQVIpDQorICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIDE7DQorICAgICAgICAgICAgICAgICAgIHBy
aW50aygiJXM6IHRyYW5zbWl0IHRpbWVkIG91dCwgdHhfc3RhdHVzICUyLjJ4
IHN0YXR1cyAlNC40eC5cbiIsDQorCQkJZGV2LT5uYW1lLCBpbmIoaW9hZGRy
ICsgVHhTdGF0dXMpLCBpbncoaW9hZGRyICsgRUwzX1NUQVRVUykpOw0KKwkJ
ICAgdnAtPnN0YXRzLnR4X2Vycm9ycysrOw0KKwkgICAgIAkgICAvKiBJc3N1
ZSBUWF9SRVNFVCBhbmQgVFhfU1RBUlQgY29tbWFuZHMuICovDQorICAgICAg
ICAgICAgICAgICAgIG91dHcoVHhSZXNldCwgaW9hZGRyICsgRUwzX0NNRCk7
DQorICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDIwOyBpID49IDAgOyBp
LS0pDQorICAgICAgICAgICAgICAgICAgICAgICBpZiAoICEgaW53KGlvYWRk
ciArIEVMM19TVEFUVVMpICYgQ21kSW5Qcm9ncmVzcykgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICAg
ICAgICAgICAgIG91dHcoVHhFbmFibGUsIGlvYWRkciArIEVMM19DTUQpOw0K
KyAgICAgICAgICAgICAgICAgICBkZXYtPnRyYW5zX3N0YXJ0ID0gamlmZmll
czsNCisgICAgICAgICAgICAgICAgICAgZGV2LT50YnVzeSA9IDA7DQorICAg
ICAgICAgICAgICAgICAgIHJldHVybiAwOw0KKwkJfQ0KKwkgICAgICAgIGRl
di0+dGJ1c3kgPSAwOw0KIAl9DQogDQogCWlmIChza2IgPT0gTlVMTCB8fCBz
a2ItPmxlbiA8PSAwKSB7DQpAQCAtNjg4LDIxICs3MjQsMTkgQEANCiAJCS8q
IC4uLiBhbmQgdGhlIHBhY2tldCByb3VuZGVkIHRvIGEgZG91Ymxld29yZC4g
Ki8NCiAJCW91dHNsKGlvYWRkciArIFRYX0ZJRk8sIHNrYi0+ZGF0YSwgKHNr
Yi0+bGVuICsgMykgPj4gMik7DQogCQlkZXZfa2ZyZWVfc2tiIChza2IsIEZS
RUVfV1JJVEUpOw0KLQkJaWYgKGludyhpb2FkZHIgKyBUeEZyZWUpID4gMTUz
Nikgew0KLQkJCWRldi0+dGJ1c3kgPSAwOw0KLQkJfSBlbHNlDQorCQlpZiAo
aW53KGlvYWRkciArIFR4RnJlZSkgPiBNQVhfUEFDS0VUX1NJWkUpIGRldi0+
dGJ1c3kgPSAwOw0KKwkJZWxzZQ0KIAkJCS8qIEludGVycnVwdCB1cyB3aGVu
IHRoZSBGSUZPIGhhcyByb29tIGZvciBtYXgtc2l6ZWQgcGFja2V0LiAqLw0K
LQkJCW91dHcoU2V0VHhUaHJlc2hvbGQgKyAxNTM2LCBpb2FkZHIgKyBFTDNf
Q01EKTsNCisJCQlvdXR3KFNldFR4VGhyZXNob2xkICsgTUFYX1BBQ0tFVF9T
SVpFLCBpb2FkZHIgKyBFTDNfQ01EKTsNCiAJfQ0KICNlbHNlDQogCS8qIC4u
LiBhbmQgdGhlIHBhY2tldCByb3VuZGVkIHRvIGEgZG91Ymxld29yZC4gKi8N
CiAJb3V0c2woaW9hZGRyICsgVFhfRklGTywgc2tiLT5kYXRhLCAoc2tiLT5s
ZW4gKyAzKSA+PiAyKTsNCiAJZGV2X2tmcmVlX3NrYiAoc2tiLCBGUkVFX1dS
SVRFKTsNCi0JaWYgKGludyhpb2FkZHIgKyBUeEZyZWUpID4gMTUzNikgew0K
LQkJZGV2LT50YnVzeSA9IDA7DQotCX0gZWxzZQ0KKwlpZiAoaW53KGlvYWRk
ciArIFR4RnJlZSkgPiBNQVhfUEFDS0VUX1NJWkUpIGRldi0+dGJ1c3kgPSAw
Ow0KKwllbHNlDQogCQkvKiBJbnRlcnJ1cHQgdXMgd2hlbiB0aGUgRklGTyBo
YXMgcm9vbSBmb3IgbWF4LXNpemVkIHBhY2tldC4gKi8NCi0JCW91dHcoU2V0
VHhUaHJlc2hvbGQgKyAxNTM2LCBpb2FkZHIgKyBFTDNfQ01EKTsNCisJCW91
dHcoU2V0VHhUaHJlc2hvbGQgKyBNQVhfUEFDS0VUX1NJWkUsIGlvYWRkciAr
IEVMM19DTUQpOw0KICNlbmRpZiAgLyogYnVzIG1hc3RlciAqLw0KIA0KIAlk
ZXYtPnRyYW5zX3N0YXJ0ID0gamlmZmllczsNCkBAIC03MjIsNyArNzU2LDcg
QEANCiAJCQkJaWYgKHR4X3N0YXR1cyAmIDB4MzApIHsNCiAJCQkJCWludCBq
Ow0KIAkJCQkJb3V0dyhUeFJlc2V0LCBpb2FkZHIgKyBFTDNfQ01EKTsNCi0J
CQkJCWZvciAoaiA9IDIwOyBqID49IDAgOyBqLS0pDQorCQkJCQlmb3IgKGog
PSBXQUlUX0xBUFNFOyBqID49IDAgOyBqLS0pDQogCQkJCQkJaWYgKCAhIGlu
dyhpb2FkZHIgKyBFTDNfU1RBVFVTKSAmIENtZEluUHJvZ3Jlc3MpDQogCQkJ
CQkJCWJyZWFrOw0KIAkJCQl9DQpAQCAtODAyLDExICs4MzYsMTEgQEANCiAj
ZW5kaWYNCiAJCWlmIChzdGF0dXMgJiAoQWRhcHRlckZhaWx1cmUgfCBSeEVh
cmx5IHwgU3RhdHNGdWxsKSkgew0KIAkJCS8qIEhhbmRsZSBhbGwgdW5jb21t
b24gaW50ZXJydXB0cyBhdCBvbmNlLiAqLw0KLQkJCWlmIChzdGF0dXMgJiBS
eEVhcmx5KSB7CQkJCS8qIFJ4IGVhcmx5IGlzIHVudXNlZC4gKi8NCisJCQlp
ZiAoc3RhdHVzICYgUnhFYXJseSkgewkvKiBSeCBlYXJseSBpcyB1bnVzZWQu
ICovDQogCQkJCXZvcnRleF9yeChkZXYpOw0KIAkJCQlvdXR3KEFja0ludHIg
fCBSeEVhcmx5LCBpb2FkZHIgKyBFTDNfQ01EKTsNCiAJCQl9DQotCQkJaWYg
KHN0YXR1cyAmIFN0YXRzRnVsbCkgeyAJLyogRW1wdHkgc3RhdGlzdGljcy4g
Ki8NCisJCQlpZiAoc3RhdHVzICYgU3RhdHNGdWxsKSB7CS8qIEVtcHR5IHN0
YXRpc3RpY3MuICovDQogCQkJCXN0YXRpYyBpbnQgRG9uZURpZFRoYXQgPSAw
Ow0KIAkJCQlpZiAodm9ydGV4X2RlYnVnID4gNCkNCiAJCQkJCXByaW50aygi
JXM6IFVwZGF0aW5nIHN0YXRzLlxuIiwgZGV2LT5uYW1lKTsNCkBAIC04NDIs
NiArODc2LDkgQEANCiAJCQl9DQogCQl9DQogDQorCQlpZiAoIShzdGF0dXMg
JiAoUnhDb21wbGV0ZSB8IFR4QXZhaWxhYmxlIHwgRE1BRG9uZSB8IEFkYXB0
ZXJGYWlsdXJlIHwgUnhFYXJseSB8IFN0YXRzRnVsbCkpKQ0KKwkJICAgIHBy
aW50aygiJXM6ICB2b3J0ZXhfaW50ZXJydXB0KCk6ICBpcnEgJWQgd2l0aCB1
bmtub3duIHN0YXR1cy5cbiIsIGRldi0+bmFtZSwgaXJxKTsNCisNCiAJCWlm
ICgrK2kgPiAxMCkgew0KIAkJCXByaW50aygiJXM6IEluZmluaXRlIGxvb3Ag
aW4gaW50ZXJydXB0LCBzdGF0dXMgJTQuNHguICAiDQogCQkJCSAgICJEaXNh
YmxpbmcgZnVuY3Rpb25zICglNC40eCkuXG4iLA0KQEAgLTkwNCw3ICs5NDEs
NyBAQA0KIAkJCQluZXRpZl9yeChza2IpOw0KIAkJCQlvdXR3KFJ4RGlzY2Fy
ZCwgaW9hZGRyICsgRUwzX0NNRCk7IC8qIFBvcCB0b3AgUnggcGFja2V0LiAq
Lw0KIAkJCQkvKiBXYWl0IGEgbGltaXRlZCB0aW1lIHRvIGdvIHRvIG5leHQg
cGFja2V0LiAqLw0KLQkJCQlmb3IgKGkgPSAyMDA7IGkgPj0gMDsgaS0tKQ0K
KwkJCQlmb3IgKGkgPSBMT05HX1dBSVRfTEFQU0U7IGkgPj0gMDsgaS0tKQ0K
IAkJCQkJaWYgKCAhIGludyhpb2FkZHIgKyBFTDNfU1RBVFVTKSAmIENtZElu
UHJvZ3Jlc3MpDQogCQkJCQkJYnJlYWs7DQogCQkJCXZwLT5zdGF0cy5yeF9w
YWNrZXRzKys7DQpAQCAtOTE2LDcgKzk1Myw3IEBADQogCQl2cC0+c3RhdHMu
cnhfZHJvcHBlZCsrOw0KIAkJb3V0dyhSeERpc2NhcmQsIGlvYWRkciArIEVM
M19DTUQpOw0KIAkJLyogV2FpdCBhIGxpbWl0ZWQgdGltZSB0byBza2lwIHRo
aXMgcGFja2V0LiAqLw0KLQkJZm9yIChpID0gMjAwOyBpID49IDA7IGktLSkN
CisJCWZvciAoaSA9IExPTkdfV0FJVF9MQVBTRTsgaSA+PSAwOyBpLS0pDQog
CQkJaWYgKCAhIGludyhpb2FkZHIgKyBFTDNfU1RBVFVTKSAmIENtZEluUHJv
Z3Jlc3MpDQogCQkJCWJyZWFrOw0KIAl9DQo=
---75343811-99749742-827276909=:1403--