---1463795969-1790281091-956774877=:29323
Content-Type: TEXT/PLAIN; charset=US-ASCII
hello,
this is the patch for eepro that makes possible the use of
etherexpress 10 (82595FX based cards) with eepro driver.
Aris
---------------------------------------------------------------------------
Aristeu Sergio Rozanski Filho aris@conectiva.com.br
---------------------------------------------------------------------------
---1463795969-1790281091-956774877=:29323
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="patch.eepro.2.2.x"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.21.0004261547570.29323@duckvader.conectiva>
Content-Description:
Content-Disposition: attachment; filename="patch.eepro.2.2.x"
LS0tIGxpbnV4L2RyaXZlcnMvbmV0L2VlcHJvLmMub2xkCVdlZCBBcHIgMjYg
MTQ6NTQ6NDUgMjAwMA0KKysrIGxpbnV4L2RyaXZlcnMvbmV0L2VlcHJvLmMJ
V2VkIEFwciAyNiAxNDo1NDo1OSAyMDAwDQpAQCAtMjMsNiArMjMsOCBAQA0K
IAlUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBoYXJkd2FyZSBwcm9ibGVtLg0K
IA0KIAlWZXJzaW9uczoNCisJMC4xMiAgICBhZGRlZCBzdXBwb3J0IHRvIDgy
NTk1RlggZXRoZXJleHByZXNzIDEwIGJhc2VkIGNhcmRzDQorICAgICAgICAg
ICAgICAgIChhcmlzIDxhcmlzQGNvbmVjdGl2YS5jb20uYnI+KSwgMDQvMjYv
MjAwMCkNCiAJMC4xMWUgICBzb21lIHR3ZWFrcyBhYm91dCBtdWx0aXBsZSBj
YXJkcyBzdXBwb3J0IChQZFAsIGp1bC9hdWcgMTk5OSkNCiAJMC4xMWQJYWRk
ZWQgX19pbml0ZGF0YSwgX19pbml0ZnVuYyBzdHVmZjsgY2FsbCBzcGluX2xv
Y2tfaW5pdA0KIAkgICAgICAgIGluIGVlcHJvX3Byb2JlMS4gUmVwbGFjZWQg
ImVlcHJvIiBieSBkZXYtPm5hbWUuIEF1Z21lbnRlZCANCkBAIC05Myw3ICs5
NSw3IEBADQogKi8NCiANCiBzdGF0aWMgY29uc3QgY2hhciAqdmVyc2lvbiA9
DQotCSJlZXByby5jOiB2MC4xMWQgMDgvMTIvMTk5OCBkdXB1aXNAbGVpLnVj
bC5hYy5iZVxuIjsNCisJImVlcHJvLmM6IHYwLjEyIDA0LzI2LzIwMDAgYXJp
c0Bjb25lY3RpdmEuY29tLmJyXG4iOw0KIA0KICNpbmNsdWRlIDxsaW51eC9t
b2R1bGUuaD4NCiANCkBAIC0xNzYsNyArMTc4LDEyIEBADQogLyogRmlyc3Qs
IGEgZmV3IGRlZmluaXRpb25zIHRoYXQgdGhlIGJyYXZlIG1pZ2h0IGNoYW5n
ZS4gKi8NCiAvKiBBIHplcm8tdGVybWluYXRlZCBsaXN0IG9mIEkvTyBhZGRy
ZXNzZXMgdG8gYmUgcHJvYmVkLiAqLw0KIHN0YXRpYyB1bnNpZ25lZCBpbnQg
ZWVwcm9fcG9ydGxpc3RbXSBjb21wYXRfaW5pdF9kYXRhID0NCi0gICB7IDB4
MzAwLCAweDIxMCwgMHgyNDAsIDB4MjgwLCAweDJDMCwgMHgyMDAsIDB4MzIw
LCAweDM0MCwgMHgzNjAsIDB9Ow0KKyNpZmRlZiBQblBXYWtldXANCisgICB7
IDB4MjEwLCAweDMwMCwNCisjZWxzZQ0KKyAgIHsgMHgzMDAsIDB4MjEwLCAN
CisjZW5kaWYNCisgICAweDI0MCwgMHgyODAsIDB4MkMwLCAweDIwMCwgMHgz
MjAsIDB4MzQwLCAweDM2MCwgMH07DQogLyogbm90ZTogMHgzMDAgaXMgZGVm
YXVsdCwgdGhlIDU5NUZYIHN1cHBvcnRzIEFMTCBJTyBQb3J0cyANCiAgIGZy
b20gMHgwMDAgdG8gMHgzRjAsIHNvbWUgb2Ygd2hpY2ggYXJlIHJlc2VydmVk
IGluIFBDcyAqLw0KIA0KQEAgLTE5OSw2ICsyMDYsOSBAQA0KICNkZWZpbmUJ
TEFONTk1VFgJMQ0KICNkZWZpbmUJTEFONTk1RlgJMg0KIA0KKy8qIGdsb2Jh
bCB0byByZWNhbGwgdGhlIHJlYWRfZWVwcm8gKi8NCitzdGF0aWMgdW5zaWdu
ZWQgY2hhciBldGhlcmV4cHJlc3MxMCA9IDA7DQorDQogLyogSW5mb3JtYXRp
b24gdGhhdCBuZWVkIHRvIGJlIGtlcHQgZm9yIGVhY2ggYm9hcmQuICovDQog
c3RydWN0IGVlcHJvX2xvY2FsIHsNCiAJc3RydWN0IGVuZXRfc3RhdGlzdGlj
cyBzdGF0czsNCkBAIC0yMTUsNiArMjI1LDcgQEANCiAjaWYgZGVmaW5lZCAo
TElOVVhfVkVSU0lPTl9DT0RFKSAmJiBMSU5VWF9WRVJTSU9OX0NPREUgPiAw
eDIwMTU1DQogCXNwaW5sb2NrX3QgbG9jazsgLyogU2VyaWFsaXppbmcgbG9j
ayAgKi8gDQogI2VuZGlmDQorCWludCB0eF9jb3VudDsNCiB9Ow0KIA0KIC8q
IFRoZSBzdGF0aW9uIChldGhlcm5ldCkgYWRkcmVzcyBwcmVmaXgsIHVzZWQg
Zm9yIElEaW5nIHRoZSBib2FyZC4gKi8NCkBAIC0zNTAsMTggKzM2MSwzMyBA
QA0KIGJ1ZmZlciAodHJhbnNtaXQtYnVmZmVyID0gMzJLIC0gcmVjZWl2ZS1i
dWZmZXIpLg0KIA0KICovDQorDQorLyogbm93IHRoaXMgc2VjdGlvbiBjb3Vs
ZCBiZSB1c2VkIGJ5IGJvdGggYm9hcmRzOiB0aGUgb2xkaWVzIGFuZCB0aGUg
ZWUxMDoNCisgKiBlZTEwIHVzZXMgdHggYnVmZmVyIGJlZm9yZSBvZiByeCBi
dWZmZXIgYW5kIHRoZSBvbGRpZXMgdGhlIGludmVyc2UuDQorICogKGFyaXMp
DQorICovDQogI2RlZmluZQlSQU1fU0laRQkweDgwMDANCisNCiAjZGVmaW5l
CVJDVl9IRUFERVIJOA0KLSNkZWZpbmUgUkNWX1JBTSAJMHg2MDAwICAvKiAy
NEtCIGRlZmF1bHQgZm9yIFJDViBidWZmZXIgKi8NCi0jZGVmaW5lIFJDVl9M
T1dFUl9MSU1JVCAweDAwICAgIC8qIDB4MDAwMCAqLw0KLS8qICNkZWZpbmUg
UkNWX1VQUEVSX0xJTUlUICgoUkNWX1JBTSAtIDIpID4+IDgpICovICAgIC8q
IDB4NWZmZSAqLw0KLSNkZWZpbmUgUkNWX1VQUEVSX0xJTUlUICgoKHJjdl9y
YW0pIC0gMikgPj4gOCkgICANCi0vKiAjZGVmaW5lIFhNVF9SQU0gICAgICAg
ICAoUkFNX1NJWkUgLSBSQ1ZfUkFNKSAqLyAgICAvKiA4S0IgZm9yIFhNVCBi
dWZmZXIgKi8NCi0jZGVmaW5lIFhNVF9SQU0gICAgICAgICAoUkFNX1NJWkUg
LSAocmN2X3JhbSkpICAgIC8qIDhLQiBmb3IgWE1UIGJ1ZmZlciAqLw0KLS8q
ICNkZWZpbmUgWE1UX0xPV0VSX0xJTUlUIChSQ1ZfUkFNID4+IDgpICovICAv
KiAweDYwMDAgKi8NCi0jZGVmaW5lIFhNVF9MT1dFUl9MSU1JVCAoKHJjdl9y
YW0pID4+IDgpIA0KLSNkZWZpbmUgWE1UX1VQUEVSX0xJTUlUICgoUkFNX1NJ
WkUgLSAyKSA+PiA4KSAgIC8qIDB4N2ZmZSAqLw0KLSNkZWZpbmUJWE1UX0hF
QURFUgk4DQorI2RlZmluZSBSQ1ZfREVGQVVMVF9SQU0JMHg2MDAwDQorI2Rl
ZmluZSBSQ1ZfUkFNIAlyY3ZfcmFtDQorDQorc3RhdGljIHVuc2lnbmVkIHJj
dl9yYW0gPSBSQ1ZfREVGQVVMVF9SQU07DQorDQorI2RlZmluZSBYTVRfSEVB
REVSCTgNCisjZGVmaW5lIFhNVF9SQU0JCShSQU1fU0laRSAtIFJDVl9SQU0p
DQorDQorI2RlZmluZSBYTVRfU1RBUlQJKChyY3Zfc3RhcnQgKyBSQ1ZfUkFN
KSAlIFJBTV9TSVpFKQ0KKw0KKyNkZWZpbmUgUkNWX0xPV0VSX0xJTUlUCShy
Y3Zfc3RhcnQgPj4gOCkNCisjZGVmaW5lIFJDVl9VUFBFUl9MSU1JVAkoKChy
Y3Zfc3RhcnQgKyBSQ1ZfUkFNKSAtIDIpID4+IDgpDQorI2RlZmluZSBYTVRf
TE9XRVJfTElNSVQJKFhNVF9TVEFSVCA+PiA4KQ0KKyNkZWZpbmUgWE1UX1VQ
UEVSX0xJTUlUCSgoKFhNVF9TVEFSVCArIFhNVF9SQU0pIC0gMikgPj4gOCkN
CisNCisjZGVmaW5lIFJDVl9TVEFSVF9QUk8JMHgwMA0KKyNkZWZpbmUgUkNW
X1NUQVJUXzEwCVhNVF9SQU0NCisJCQkJCS8qIGJ5IGRlZmF1bHQgdGhlIG9s
ZCBkcml2ZXIgKi8NCitzdGF0aWMgdW5zaWduZWQgcmN2X3N0YXJ0ID0gUkNW
X1NUQVJUX1BSTzsNCiANCiAjZGVmaW5lCVJDVl9ET05FCTB4MDAwOA0KICNk
ZWZpbmUJUlhfT0sJCTB4MjAwMA0KQEAgLTQwNyw3ICs0MzMsMTEgQEANCiAj
ZGVmaW5lCUlPXzMyX0JJVAkweDEwDQogI2RlZmluZQlSQ1ZfQkFSCQkweDA0
CS8qIFRoZSBmb2xsb3dpbmcgYXJlIHdvcmQgKDE2LWJpdCkgcmVnaXN0ZXJz
ICovDQogI2RlZmluZQlSQ1ZfU1RPUAkweDA2DQotI2RlZmluZQlYTVRfQkFS
CQkweDBhDQorDQorI2RlZmluZQlYTVRfQkFSX1BSTwkweDBhDQorI2RlZmlu
ZQlYTVRfQkFSXzEwCTB4MGINCitzdGF0aWMgdW5zaWduZWQgeG10X2JhciA9
IFhNVF9CQVJfUFJPOw0KKw0KICNkZWZpbmUJSE9TVF9BRERSRVNTX1JFRwkw
eDBjDQogI2RlZmluZQlJT19QT1JUCQkweDBlDQogI2RlZmluZQlJT19QT1JU
XzMyX0JJVAkweDBjDQpAQCAtNDE5LDggKzQ0OSwxMyBAQA0KICNkZWZpbmUg
SU5UX05PX1JFRwkweDAyDQogI2RlZmluZQlSQ1ZfTE9XRVJfTElNSVRfUkVH
CTB4MDgNCiAjZGVmaW5lCVJDVl9VUFBFUl9MSU1JVF9SRUcJMHgwOQ0KLSNk
ZWZpbmUJWE1UX0xPV0VSX0xJTUlUX1JFRwkweDBhDQotI2RlZmluZQlYTVRf
VVBQRVJfTElNSVRfUkVHCTB4MGINCisNCisjZGVmaW5lCVhNVF9MT1dFUl9M
SU1JVF9SRUdfUFJPCTB4MGENCisjZGVmaW5lCVhNVF9VUFBFUl9MSU1JVF9S
RUdfUFJPCTB4MGINCisjZGVmaW5lCVhNVF9MT1dFUl9MSU1JVF9SRUdfMTAJ
MHgwYg0KKyNkZWZpbmUJWE1UX1VQUEVSX0xJTUlUX1JFR18xMAkweDBhDQor
c3RhdGljIHVuc2lnbmVkIHhtdF9sb3dlcl9saW1pdF9yZWcgPSBYTVRfTE9X
RVJfTElNSVRfUkVHX1BSTzsNCitzdGF0aWMgdW5zaWduZWQgeG10X3VwcGVy
X2xpbWl0X3JlZyA9IFhNVF9VUFBFUl9MSU1JVF9SRUdfUFJPOw0KIA0KIC8q
IEJhbmsgMiByZWdpc3RlcnMgKi8NCiAjZGVmaW5lCVhNVF9DaGFpbl9JbnQJ
MHgyMAkvKiBJbnRlcnJ1cHQgYXQgdGhlIGVuZCBvZiB0aGUgdHJhbnNtaXQg
Y2hhaW4gKi8NCkBAIC00NDMsNyArNDc4LDEwIEBADQogI2RlZmluZQlJX0FE
RF9SRUc0CTB4MDgNCiAjZGVmaW5lCUlfQUREX1JFRzUJMHgwOQ0KIA0KLSNk
ZWZpbmUgRUVQUk9NX1JFRyAweDBhDQorI2RlZmluZSBFRVBST01fUkVHX1BS
TwkweDBhDQorI2RlZmluZSBFRVBST01fUkVHXzEwCTB4MGINCitzdGF0aWMg
dW5zaWduZWQgZWVwcm9tX3JlZyA9IEVFUFJPTV9SRUdfUFJPOw0KKw0KICNk
ZWZpbmUgRUVTSyAweDAxDQogI2RlZmluZSBFRUNTIDB4MDINCiAjZGVmaW5l
IEVFREkgMHgwNA0KQEAgLTQ1NywxNyArNDk1LDE1IEBADQogICAgKGRldGFj
aGFibGUgZGV2aWNlcyBvbmx5KS4NCiAgICAqLw0KICNpZmRlZiBIQVZFX0RF
VkxJU1QNCi0vKiBTdXBwb3J0IGZvciBhbiBhbHRlcm5hdGUgcHJvYmUgbWFu
YWdlciwgd2hpY2ggd2lsbCBlbGltaW5hdGUgdGhlDQotICAgYm9pbGVycGxh
dGUgYmVsb3cuICovDQorCS8qIFN1cHBvcnQgZm9yIGFuIGFsdGVybmF0ZSBw
cm9iZSBtYW5hZ2VyLCB3aGljaCB3aWxsIGVsaW1pbmF0ZSB0aGUNCisgICAJ
CQkJCQkJYm9pbGVycGxhdGUgYmVsb3cuICovDQogc3RydWN0IG5ldGRldl9l
bnRyeSBuZXRjYXJkX2RydiA9DQoteyJlZXBybyIsIGVlcHJvX3Byb2JlMSwg
RUVQUk9fSU9fRVhURU5ULCBlZXByb19wb3J0bGlzdH07DQorCQl7ImVlcHJv
IiwgZWVwcm9fcHJvYmUxLCBFRVBST19JT19FWFRFTlQsIGVlcHJvX3BvcnRs
aXN0fTsNCiAjZWxzZQ0KIGNvbXBhdF9pbml0X2Z1bmMoaW50IGVlcHJvX3By
b2JlKHN0cnVjdCBkZXZpY2UgKmRldikpDQogew0KIAlpbnQgaTsNCiAJaW50
IGJhc2VfYWRkciA9IGRldiA/IGRldi0+YmFzZV9hZGRyIDogMDsNCi0NCi0N
CiAjaWZkZWYgUG5QV2FrZXVwDQogCS8qIFhYWFggZm9yIG11bHRpcGxlIGNh
cmRzIHNob3VsZCB0aGlzIG9ubHkgYmUgcnVuIG9uY2U/ICovDQogCQ0KQEAg
LTQ4MCw5ICs1MTYsNyBAQA0KIA0KIAl7DQogCQl1bnNpZ25lZCBzaG9ydCBp
bnQgV1NbMzJdPVdha2V1cFNlcTsNCi0NCiAJCWlmIChjaGVja19yZWdpb24o
V2FrZXVwUG9ydCwgMik9PTApIHsNCi0NCiAJCQlpZiAobmV0X2RlYnVnPjUp
DQogCQkJCXByaW50ayhLRVJOX0RFQlVHICJXYWtpbmcgVVBcbiIpOw0KIA0K
QEAgLTUwMyw3ICs1MzcsNiBAQA0KIAllbHNlIGlmIChiYXNlX2FkZHIgIT0g
MCkJLyogRG9uJ3QgcHJvYmUgYXQgYWxsLiAqLw0KIAkJcmV0dXJuIEVOWElP
Ow0KIA0KLQ0KIAlmb3IgKGkgPSAwOyBlZXByb19wb3J0bGlzdFtpXTsgaSsr
KSB7DQogCQlpbnQgaW9hZGRyID0gZWVwcm9fcG9ydGxpc3RbaV07DQogDQpA
QCAtNTEyLDEyICs1NDUsMTIgQEANCiAJCWlmIChlZXByb19wcm9iZTEoZGV2
LCBpb2FkZHIpID09IDApDQogCQkJcmV0dXJuIDA7DQogCX0NCi0NCisJDQog
CXJldHVybiBFTk9ERVY7DQogfQ0KICNlbmRpZg0KIA0KLXZvaWQgcHJpbnRF
RVBST01JbmZvKHNob3J0IGlvYWRkcikNCitzdGF0aWMgdm9pZCBwcmludEVF
UFJPTUluZm8oc2hvcnQgaW9hZGRyKQ0KIHsNCiAJdW5zaWduZWQgc2hvcnQg
V29yZDsNCiAJaW50IGksajsNCkBAIC01OTcsNyArNjMwLDYgQEANCiAJCS8q
IFdlIHNlZW0gdG8gaGF2ZSB0aGUgODI1OTUgc2lnbmF0dXJlLCBsZXQncw0K
IAkJICAgcGxheSB3aXRoIGl0cyBjb3VudGVyIChsYXN0IDIgYml0cyBvZg0K
IAkJICAgcmVnaXN0ZXIgMiBvZiBiYW5rIDApIHRvIGJlIHN1cmUuICovDQot
CQ0KIAkJY291bnRlciA9IChpZCAmIFJfUk9CSU5fQklUUyk7CQ0KIAkJaWYg
KCgoaWQ9aW5iKGlvYWRkcitJRF9SRUcpKSAmIFJfUk9CSU5fQklUUykgPT0g
DQogCQkJKGNvdW50ZXIgKyAweDQwKSkgew0KQEAgLTYwOCwyMSArNjQwLDQx
IEBADQogCQkJICAgdGhlIEVFUFJPTSAqLw0KIA0KIAkJCXN0YXRpb25fYWRk
clswXSA9IHJlYWRfZWVwcm9tKGlvYWRkciwgMik7DQorDQorCQkJLyogRklY
TUUgLSBmaW5kIGFub3RoZXIgd2F5IHRvIGtub3cgdGhhdCB3ZSd2ZSBmb3Vu
ZA0KKwkJCSAqIGEgRXRoZXJleHByZXNzIDEwDQorCQkJICovDQorCQkJaWYg
KHN0YXRpb25fYWRkclswXSA9PSAweDAwMDAgfHwNCisJCQkgICAgc3RhdGlv
bl9hZGRyWzBdID09IDB4ZmZmZikgew0KKwkJCQlldGhlcmV4cHJlc3MxMCA9
IDE7DQorCQkJCWVlcHJvbV9yZWcgPSBFRVBST01fUkVHXzEwOw0KKwkJCQly
Y3Zfc3RhcnQgPSBSQ1ZfU1RBUlRfMTA7DQorCQkJCXhtdF9sb3dlcl9saW1p
dF9yZWcgPSBYTVRfTE9XRVJfTElNSVRfUkVHXzEwOw0KKwkJCQl4bXRfdXBw
ZXJfbGltaXRfcmVnID0gWE1UX1VQUEVSX0xJTUlUX1JFR18xMDsNCisJCQkJ
eG10X2JhciA9IFhNVF9CQVJfMTA7DQorCQkJCXN0YXRpb25fYWRkclswXSA9
IHJlYWRfZWVwcm9tKGlvYWRkciwgMik7DQorCQkJfQ0KKwkJCQ0KIAkJCXN0
YXRpb25fYWRkclsxXSA9IHJlYWRfZWVwcm9tKGlvYWRkciwgMyk7DQogCQkJ
c3RhdGlvbl9hZGRyWzJdID0gcmVhZF9lZXByb20oaW9hZGRyLCA0KTsNCiAN
CiAJCQkvKiBDaGVjayB0aGUgc3RhdGlvbiBhZGRyZXNzIGZvciB0aGUgbWFu
dWZhY3R1cmVyJ3MgY29kZSAqLw0KIAkJCWlmIChuZXRfZGVidWc+MykNCiAJ
CQkJcHJpbnRFRVBST01JbmZvKGlvYWRkcik7DQotCQkJCQ0KLQkJCWlmIChy
ZWFkX2VlcHJvbShpb2FkZHIsNyk9PSBlZV9GWF9JTlQySVJRKSB7IC8qIGlu
dCB0byBJUlEgTWFzayAqLw0KKw0KKwkJCWlmIChldGhlcmV4cHJlc3MxMCkg
ew0KKwkJCQllZXBybyA9IDI7DQorCQkJCXByaW50aygiJXM6IEludGVsIEV0
aGVyRXhwcmVzcyAxMCBJU0FcbiBhdCAlI3gsIiwNCisJCQkJCWRldi0+bmFt
ZSwgaW9hZGRyKTsNCisJCQl9IGVsc2UgaWYgKHJlYWRfZWVwcm9tKGlvYWRk
ciw3KT09IGVlX0ZYX0lOVDJJUlEpIHsNCisJCQkJCQkgLyogaW50IHRvIElS
USBNYXNrICovDQogCQkJCWVlcHJvID0gMjsNCiAJCQkJcHJpbnRrKCIlczog
SW50ZWwgRXRoZXJFeHByZXNzIFByby8xMCsgSVNBXG4gYXQgJSN4LCIsIA0K
IAkJCQkJZGV2LT5uYW1lLCBpb2FkZHIpOw0KIAkJCX0gZWxzZQ0KIAkJCWlm
IChzdGF0aW9uX2FkZHJbMl0gPT0gMHgwMGFhKSAgew0KIAkJCQllZXBybyA9
IDE7DQotCQkJCXByaW50aygiJXM6IEludGVsIEV0aGVyRXhwcmVzcyBQcm8v
MTAgSVNBIGF0ICUjeCwiLCANCisJCQkJcHJpbnRrKCIlczogSW50ZWwgRXRo
ZXJFeHByZXNzIFByby8xMCBJU0EgYXQgJSN4LCIsDQogCQkJCQlkZXYtPm5h
bWUsIGlvYWRkcik7DQogCQkJfQ0KIAkJCWVsc2Ugew0KQEAgLTYzOCwxOCAr
NjkwLDI2IEBADQogCQkJCWRldi0+ZGV2X2FkZHJbaV0gPSAoKHVuc2lnbmVk
IGNoYXIgKikgc3RhdGlvbl9hZGRyKVs1LWldOw0KIAkJCQlwcmludGsoIiVj
JTAyeCIsIGkgPyAnOicgOiAnICcsIGRldi0+ZGV2X2FkZHJbaV0pOw0KIAkJ
CX0NCi0JCQkNCisNCisJCQlkZXYtPm1lbV9zdGFydCA9IChSQ1ZfTE9XRVJf
TElNSVQgPDwgOCk7DQorDQogCQkJaWYgKChkZXYtPm1lbV9lbmQgJiAweDNm
KSA8IDMgfHwJLyogUlggYnVmZmVyIG11c3QgYmUgbW9yZSB0aGFuIDNLICov
DQogCQkJCShkZXYtPm1lbV9lbmQgJiAweDNmKSA+IDI5KQkvKiBhbmQgbGVz
cyB0aGFuIDI5SyAqLw0KLQkJCQlkZXYtPm1lbV9lbmQgPSBSQ1ZfUkFNOwkJ
Lyogb3IgaXQgd2lsbCBiZSBzZXQgdG8gMjRLICovDQotCQkJZWxzZSBkZXYt
Pm1lbV9lbmQgPSAxMDI0KmRldi0+bWVtX2VuZDsgIC8qIE1heWJlIEkgc2hv
dWxkIHNoaWZ0IDw8IDEwICovDQorCQkJCWRldi0+bWVtX2VuZCA9IChSQ1Zf
VVBQRVJfTElNSVQgPDwgOCk7DQorCQkJZWxzZSB7DQorCQkJCWRldi0+bWVt
X2VuZCA9IChkZXYtPm1lbV9lbmQgKiAxMDI0KSArDQorCQkJCQkJCShSQ1Zf
TE9XRVJfTElNSVQgPDwgOCk7DQorCQkJCXJjdl9yYW0gPSBkZXYtPm1lbV9l
bmQgLSAoUkNWX0xPV0VSX0xJTUlUIDw8IDgpOw0KKwkJCX0NCiANCi0JCQkv
KiBGcm9tIG5vdyBvbiwgZGV2LT5tZW1fZW5kIGNvbnRhaW5zIHRoZSBhY3R1
YWwgc2l6ZSBvZiByeCBidWZmZXIgKi8NCisJCQkvKiBGcm9tIG5vdyBvbiwg
ZGV2LT5tZW1fZW5kIC0gZGV2LT5tZW1fc3RhcnQgY29udGFpbnMgDQorCQkJ
ICogdGhlIGFjdHVhbCBzaXplIG9mIHJ4IGJ1ZmZlciANCisJCQkgKi8NCiAJ
CQkNCiAJCQlpZiAobmV0X2RlYnVnID4gMykNCi0JCQkJcHJpbnRrKCIsICVk
SyBSQ1YgYnVmZmVyIiwgKGludCkoZGV2LT5tZW1fZW5kKS8xMDI0KTsNCi0J
CQkJDQotCQkJCQ0KKwkJCQlwcmludGsoIiwgJWRLIFJDViBidWZmZXIiLA0K
KwkJCQkJCShpbnQpKGRldi0+bWVtX2VuZCAtIGRldi0+bWVtX3N0YXJ0KS8x
MDI0KTsNCisJCQkJCQkJCQ0KIAkJCS8qIC4uLi4uLi4uLi4uLi4uLiAqLw0K
IA0KIAkJCWlmIChHZXRCaXQoIHJlYWRfZWVwcm9tKGlvYWRkciwgNSksZWVf
Qk5DX1RQRSkpDQpAQCAtNjc4LDEwICs3MzgsOCBAQA0KIAkJCQkJCXJldHVy
biBFTk9ERVY7DQogCQkJCX0gZWxzZSANCiAJCQkJDQotCQkJCWlmIChkZXYt
PmlycT09MikgZGV2LT5pcnEgPSA5Ow0KLQ0KLQkJCQllbHNlIGlmIChkZXYt
PmlycSA9PSAyKQ0KLQkJCQlkZXYtPmlycSA9IDk7DQorCQkJCWlmIChkZXYt
PmlycT09MikNCisJCQkJCWRldi0+aXJxID0gOTsNCiAJCQl9DQogCQkJDQog
CQkJaWYgKGRldi0+aXJxID4gMikgew0KQEAgLTY5MCw5ICs3NDgsNiBAQA0K
IAkJCX0NCiAJCQllbHNlIHByaW50aygiLCAlcy5cbiIsIGlmbWFwW2Rldi0+
aWZfcG9ydF0pOw0KIAkJCQ0KLQkJCWlmICgoZGV2LT5tZW1fc3RhcnQgJiAw
eGYpID4gMCkJLyogSSBkb24ndCBrbm93IGlmIHRoaXMgaXMgKi8NCi0JCQkJ
bmV0X2RlYnVnID0gZGV2LT5tZW1fc3RhcnQgJiA3OyAvKiBzdGlsbCB1c2Vm
dWwgb3Igbm90ICovDQotDQogCQkJaWYgKG5ldF9kZWJ1ZyA+IDMpIHsNCiAJ
CQkJaSA9IHJlYWRfZWVwcm9tKGlvYWRkciwgNSk7DQogCQkJCWlmIChpICYg
MHgyMDAwKSAvKiBiaXQgMTMgb2YgRUVQUk9NIHdvcmQgNSAqLw0KQEAgLTgw
OSw3ICs4NjQsOCBAQA0KIHsNCiAJdW5zaWduZWQgc2hvcnQgdGVtcF9yZWcs
IG9sZDgsIG9sZDk7DQogCWludCBpcnFNYXNrOw0KLQlpbnQgaSwgaW9hZGRy
ID0gZGV2LT5iYXNlX2FkZHIsIHJjdl9yYW0gPSBkZXYtPm1lbV9lbmQ7DQor
CWludCBpLCBpb2FkZHIgPSBkZXYtPmJhc2VfYWRkcjsNCisNCiAJc3RydWN0
IGVlcHJvX2xvY2FsICpscCA9IChzdHJ1Y3QgZWVwcm9fbG9jYWwgKilkZXYt
PnByaXY7DQogDQogCWlmIChuZXRfZGVidWcgPiAzKQ0KQEAgLTg1NCw3ICs5
MTAsNyBAQA0KIAkvKiBJbml0aWFsaXplIHRoZSA4MjU5NS4gKi8NCiANCiAJ
b3V0YihCQU5LMl9TRUxFQ1QsIGlvYWRkcik7IC8qIGJlIENBUkVGVUwsIEJB
TksgMiBub3cgKi8NCi0JdGVtcF9yZWcgPSBpbmIoaW9hZGRyICsgRUVQUk9N
X1JFRyk7DQorCXRlbXBfcmVnID0gaW5iKGlvYWRkciArIGVlcHJvbV9yZWcp
Ow0KIA0KIAlscC0+c3RlcHBpbmcgPSB0ZW1wX3JlZyA+PiA1OwkvKiBHZXQg
dGhlIHN0ZXBwaW5nIG51bWJlciBvZiB0aGUgNTk1ICovDQogCQ0KQEAgLTg2
Miw4ICs5MTgsOCBAQA0KIAkJcHJpbnRrKEtFUk5fREVCVUcgIlRoZSBzdGVw
cGluZyBvZiB0aGUgODI1OTUgaXMgJWRcbiIsIGxwLT5zdGVwcGluZyk7DQog
DQogCWlmICh0ZW1wX3JlZyAmIDB4MTApIC8qIENoZWNrIHRoZSBUdXJuT2Zm
IEVuYWJsZSBiaXQgKi8NCi0JCW91dGIodGVtcF9yZWcgJiAweGVmLCBpb2Fk
ZHIgKyBFRVBST01fUkVHKTsNCi0JZm9yIChpPTA7IGkgPCA2OyBpKyspIA0K
KwkJb3V0Yih0ZW1wX3JlZyAmIDB4ZWYsIGlvYWRkciArIGVlcHJvbV9yZWcp
Ow0KKwlmb3IgKGk9MDsgaSA8IDY7IGkrKykNCiAJCW91dGIoZGV2LT5kZXZf
YWRkcltpXSAsIGlvYWRkciArIElfQUREX1JFRzAgKyBpKTsgDQogCQkJDQog
CXRlbXBfcmVnID0gaW5iKGlvYWRkciArIFJFRzEpOyAgICAvKiBTZXR1cCBU
cmFuc21pdCBDaGFpbmluZyAqLw0KQEAgLTg4NSw3ICs5NDEsNiBAQA0KIAkJ
b3V0YigodGVtcF9yZWcgJiAweGY4KSB8IGlycXJtYXAyW2Rldi0+aXJxXSwg
aW9hZGRyICsgSU5UX05PX1JFRyk7DQogCWVsc2Ugb3V0YigodGVtcF9yZWcg
JiAweGY4KSB8IGlycXJtYXBbZGV2LT5pcnFdLCBpb2FkZHIgKyBJTlRfTk9f
UkVHKTsgDQogDQotDQogCXRlbXBfcmVnID0gaW5iKGlvYWRkciArIElOVF9O
T19SRUcpOw0KIAlpZiAobHAtPmVlcHJvID09IDIpDQogCQlvdXRiKCh0ZW1w
X3JlZyAmIDB4ZjApIHwgaXJxcm1hcDJbZGV2LT5pcnFdIHwgMHgwOCxpb2Fk
ZHIrSU5UX05PX1JFRyk7DQpAQCAtODk4LDggKzk1Myw4IEBADQogCS8qIElu
aXRpYWxpemUgdGhlIFJDViBhbmQgWE1UIHVwcGVyIGFuZCBsb3dlciBsaW1p
dHMgKi8NCiAJb3V0YihSQ1ZfTE9XRVJfTElNSVQsIGlvYWRkciArIFJDVl9M
T1dFUl9MSU1JVF9SRUcpOyANCiAJb3V0YihSQ1ZfVVBQRVJfTElNSVQsIGlv
YWRkciArIFJDVl9VUFBFUl9MSU1JVF9SRUcpOyANCi0Jb3V0YihYTVRfTE9X
RVJfTElNSVQsIGlvYWRkciArIFhNVF9MT1dFUl9MSU1JVF9SRUcpOyANCi0J
b3V0YihYTVRfVVBQRVJfTElNSVQsIGlvYWRkciArIFhNVF9VUFBFUl9MSU1J
VF9SRUcpOyANCisJb3V0YihYTVRfTE9XRVJfTElNSVQsIGlvYWRkciArIHht
dF9sb3dlcl9saW1pdF9yZWcpOyANCisJb3V0YihYTVRfVVBQRVJfTElNSVQs
IGlvYWRkciArIHhtdF91cHBlcl9saW1pdF9yZWcpOyANCiANCiAJLyogRW5h
YmxlIHRoZSBpbnRlcnJ1cHQgbGluZS4gKi8NCiAJdGVtcF9yZWcgPSBpbmIo
aW9hZGRyICsgUkVHMSk7DQpAQCAtOTE0LDEyICs5NjksMTIgQEANCiAJb3V0
YihBTExfTUFTSywgaW9hZGRyICsgU1RBVFVTX1JFRyk7IA0KIA0KIAkvKiBJ
bml0aWFsaXplIFJDViAqLw0KLQlvdXR3KFJDVl9MT1dFUl9MSU1JVCA8PCA4
LCBpb2FkZHIgKyBSQ1ZfQkFSKTsgDQotCWxwLT5yeF9zdGFydCA9IChSQ1Zf
TE9XRVJfTElNSVQgPDwgOCkgOw0KLQlvdXR3KChSQ1ZfVVBQRVJfTElNSVQg
PDwgOCkgfCAweGZlLCBpb2FkZHIgKyBSQ1ZfU1RPUCk7IA0KKwlvdXR3KChS
Q1ZfTE9XRVJfTElNSVQgPDwgOCksIGlvYWRkciArIFJDVl9CQVIpOyANCisJ
bHAtPnJ4X3N0YXJ0ID0gKFJDVl9MT1dFUl9MSU1JVCA8PCA4KTsNCisJb3V0
dygoKFJDVl9VUFBFUl9MSU1JVCA8PCA4KSB8IDB4ZmUpLCBpb2FkZHIgKyBS
Q1ZfU1RPUCk7IA0KIA0KIAkvKiBJbml0aWFsaXplIFhNVCAqLw0KLQlvdXR3
KFhNVF9MT1dFUl9MSU1JVCA8PCA4LCBpb2FkZHIgKyBYTVRfQkFSKTsgDQor
CW91dHcoKFhNVF9MT1dFUl9MSU1JVCA8PCA4KSwgaW9hZGRyICsgeG10X2Jh
cik7IA0KIA0KIAkvKiBDaGVjayBmb3IgdGhlIGk4MjU5NVRYIGFuZCBpODI1
OTVGWCAqLw0KIAlvbGQ4ID0gaW5iKGlvYWRkciArIDgpOw0KQEAgLTk2OSw4
ICsxMDI0LDkgQEANCiAJU0xPV19ET1dOOw0KIAlTTE9XX0RPV047DQogDQot
CWxwLT50eF9zdGFydCA9IGxwLT50eF9lbmQgPSBYTVRfTE9XRVJfTElNSVQg
PDwgODsgLyogb3IgPSBSQ1ZfUkFNICovDQorCWxwLT50eF9zdGFydCA9IGxw
LT50eF9lbmQgPSAoWE1UX0xPV0VSX0xJTUlUIDw8IDgpOw0KIAlscC0+dHhf
bGFzdCA9IDA7DQorCWxwLT50eF9jb3VudCA9IDA7DQogCQ0KIAlkZXYtPnRi
dXN5ID0gMDsNCiAJZGV2LT5pbnRlcnJ1cHQgPSAwOw0KQEAgLTk4OSwyMiAr
MTA0NSwyMiBAQA0KIHsNCiAJc3RydWN0IGVlcHJvX2xvY2FsICpscCA9IChz
dHJ1Y3QgZWVwcm9fbG9jYWwgKilkZXYtPnByaXY7DQogCWludCBpb2FkZHIg
PSBkZXYtPmJhc2VfYWRkcjsNCi0JaW50IHJjdl9yYW0gPSBkZXYtPm1lbV9l
bmQ7DQogDQogI2lmIGRlZmluZWQgKExJTlVYX1ZFUlNJT05fQ09ERSkgJiYg
TElOVVhfVkVSU0lPTl9DT0RFID4gMHgyMDE1NQ0KIAl1bnNpZ25lZCBsb25n
IGZsYWdzOw0KICNlbmRpZg0KLQkNCisNCiAJaWYgKG5ldF9kZWJ1ZyA+IDUp
DQogCQlwcmludGsoS0VSTl9ERUJVRyAgIiVzOiBlbnRlcmluZyBlZXByb19z
ZW5kX3BhY2tldCByb3V0aW5lLlxuIiwgZGV2LT5uYW1lKTsNCi0JDQorDQog
CWlmIChkZXYtPnRidXN5KSB7DQogCQkvKiBJZiB3ZSBnZXQgaGVyZSwgc29t
ZSBoaWdoZXIgbGV2ZWwgaGFzIGRlY2lkZWQgd2UgYXJlIGJyb2tlbi4NCiAJ
CSAgIFRoZXJlIHNob3VsZCByZWFsbHkgYmUgYSAia2ljayBtZSIgZnVuY3Rp
b24gY2FsbCBpbnN0ZWFkLiAqLw0KIAkJaW50IHRpY2tzc29mYXIgPSBqaWZm
aWVzIC0gZGV2LT50cmFuc19zdGFydDsNCisNCiAJCWlmICh0aWNrc3NvZmFy
IDwgNDApDQogCQkJcmV0dXJuIDE7DQotCQ0KKwkJCQ0KIAkJLyogaWYgKG5l
dF9kZWJ1ZyA+IDEpICovDQogCQlwcmludGsoS0VSTl9FUlIgIiVzOiB0cmFu
c21pdCB0aW1lZCBvdXQsICVzP1xuIiwgZGV2LT5uYW1lLCANCiAJCQkibmV0
d29yayBjYWJsZSBwcm9ibGVtIik7DQpAQCAtMTAyMSw4ICsxMDc3LDkgQEAN
CiAJCVNMT1dfRE9XTjsNCiANCiAJCS8qIERvIEkgYWxzbyBuZWVkIHRvIGZs
dXNoIHRoZSB0cmFuc21pdCBidWZmZXJzIGhlcmU/IFlFUz8gKi8NCi0JCWxw
LT50eF9zdGFydCA9IGxwLT50eF9lbmQgPSByY3ZfcmFtOyANCisJCWxwLT50
eF9zdGFydCA9IGxwLT50eF9lbmQgPSAoWE1UX0xPV0VSX0xJTUlUIDw8IDgp
OyANCiAJCWxwLT50eF9sYXN0ID0gMDsNCisJCWxwLT50eF9jb3VudCA9IDA7
DQogCQ0KIAkJZGV2LT50YnVzeT0wOw0KIAkJZGV2LT50cmFuc19zdGFydCA9
IGppZmZpZXM7DQpAQCAtMTA1NiwxMiArMTExMywxNiBAQA0KIAl9IGVsc2Ug
ew0KIAkJc2hvcnQgbGVuZ3RoID0gRVRIX1pMRU4gPCBza2ItPmxlbiA/IHNr
Yi0+bGVuIDogRVRIX1pMRU47DQogCQl1bnNpZ25lZCBjaGFyICpidWYgPSBz
a2ItPmRhdGE7DQorCQlpbnQgZGlzY2FyZCA9IGxwLT5zdGF0cy50eF9kcm9w
cGVkOw0KIA0KICNpZiBkZWZpbmVkIChMSU5VWF9WRVJTSU9OX0NPREUpICYm
IExJTlVYX1ZFUlNJT05fQ09ERSA+IDB4MjAxNTUNCiAJCWxwLT5zdGF0cy50
eF9ieXRlcys9c2tiLT5sZW47DQogI2VuZGlmDQotDQogCQloYXJkd2FyZV9z
ZW5kX3BhY2tldChkZXYsIGJ1ZiwgbGVuZ3RoKTsNCisNCisJCWlmIChscC0+
c3RhdHMudHhfZHJvcHBlZCAhPSBkaXNjYXJkKQ0KKwkJCXJldHVybiAxOw0K
KwkJDQogCQlkZXYtPnRyYW5zX3N0YXJ0ID0gamlmZmllczsNCiANCiAJfQ0K
QEAgLTExMTIsNiArMTE3Myw3IEBADQogDQogCQlyZXR1cm47DQogCX0NCisN
CiAJZGV2LT5pbnRlcnJ1cHQgPSAxOw0KIA0KIAlpZiAobmV0X2RlYnVnID4g
NSkNCkBAIC0xMTE5LDMzICsxMTgxLDM2IEBADQogCQ0KIAlpb2FkZHIgPSBk
ZXYtPmJhc2VfYWRkcjsNCiANCi0JZG8geyANCi0JCXN0YXR1cyA9IGluYihp
b2FkZHIgKyBTVEFUVVNfUkVHKTsNCi0JCQ0KKwl3aGlsZSAoKChzdGF0dXMg
PSBpbmIoaW9hZGRyICsgU1RBVFVTX1JFRykpICYgMHgwNikgJiYgKGJvZ3Vz
Y291bnQtLSkpIA0KKwl7DQorCQlzd2l0Y2ggKHN0YXR1cyAmIChSWF9JTlQg
fCBUWF9JTlQpKSB7DQorCQkJY2FzZSAoUlhfSU5UIHwgVFhfSU5UKToNCisJ
CQkJb3V0YiAoUlhfSU5UIHwgVFhfSU5ULCBpb2FkZHIgKyBTVEFUVVNfUkVH
KTsNCisJCQkJYnJlYWs7DQorCQkJY2FzZSBSWF9JTlQ6DQorCQkJCW91dGIg
KFJYX0lOVCwgaW9hZGRyICsgU1RBVFVTX1JFRyk7DQorCQkJCWJyZWFrOw0K
KwkJCWNhc2UgVFhfSU5UOg0KKwkJCQlvdXRiIChUWF9JTlQsIGlvYWRkciAr
IFNUQVRVU19SRUcpOw0KKwkJCQlicmVhazsNCisJCX0NCiAJCWlmIChzdGF0
dXMgJiBSWF9JTlQpIHsNCiAJCQlpZiAobmV0X2RlYnVnID4gNCkNCi0JCQlw
cmludGsoS0VSTl9ERUJVRyAiJXM6IHBhY2tldCByZWNlaXZlZCBpbnRlcnJ1
cHQuXG4iLCBkZXYtPm5hbWUpOw0KKwkJCQlwcmludGsoS0VSTl9ERUJVRyAi
JXM6IHBhY2tldCByZWNlaXZlZCBpbnRlcnJ1cHQuXG4iLCBkZXYtPm5hbWUp
Ow0KIA0KLQkJCS8qIEFja25vd2xlZGdlIHRoZSBSWF9JTlQgKi8NCi0JCQlv
dXRiKFJYX0lOVCwgaW9hZGRyICsgU1RBVFVTX1JFRyk7DQogCQkJLyogR2V0
IHRoZSByZWNlaXZlZCBwYWNrZXRzICovDQogCQkJZWVwcm9fcngoZGV2KTsN
CiAJCX0NCi0NCi0JCWVsc2UgaWYgKHN0YXR1cyAmIFRYX0lOVCkgew0KKwkJ
aWYgKHN0YXR1cyAmIFRYX0lOVCkgew0KIAkJCWlmIChuZXRfZGVidWcgPiA0
KQ0KLQkJCXByaW50ayhLRVJOX0RFQlVHICIlczogcGFja2V0IHRyYW5zbWl0
IGludGVycnVwdC5cbiIsIGRldi0+bmFtZSk7DQotDQotCQkJLyogQWNrbm93
bGVkZ2UgdGhlIFRYX0lOVCAqLw0KLQkJCW91dGIoVFhfSU5ULCBpb2FkZHIg
KyBTVEFUVVNfUkVHKTsgDQorCQkJCXByaW50ayhLRVJOX0RFQlVHICIlczog
cGFja2V0IHRyYW5zbWl0IGludGVycnVwdC5cbiIsIGRldi0+bmFtZSk7DQog
DQogCQkJLyogUHJvY2VzcyB0aGUgc3RhdHVzIG9mIHRyYW5zbWl0dGVkIHBh
Y2tldHMgKi8NCiAJCQllZXByb190cmFuc21pdF9pbnRlcnJ1cHQoZGV2KTsN
CiAJCX0NCisJfQ0KIAkNCi0JfSB3aGlsZSAoKGJvZ3VzY291bnQtLSA+IDAp
ICYmIChzdGF0dXMgJiAweDA2KSk7DQotDQotCWRldi0+aW50ZXJydXB0ID0g
MDsgDQorCWRldi0+aW50ZXJydXB0ID0gMDsNCiANCiAJaWYgKG5ldF9kZWJ1
ZyA+IDUpDQogCQlwcmludGsoS0VSTl9ERUJVRyAiJXM6IGV4aXRpbmcgZWVw
cm9faW50ZXJydXB0IHJvdXRpbmUuXG4iLCBkZXYtPm5hbWUpOw0KQEAgLTEx
NTMsNiArMTIxOCw3IEBADQogI2lmIGRlZmluZWQgKExJTlVYX1ZFUlNJT05f
Q09ERSkgJiYgTElOVVhfVkVSU0lPTl9DT0RFID4gMHgyMDE1NQ0KIAlzcGlu
X3VubG9jaygmbHAtPmxvY2spOw0KICNlbmRpZg0KKw0KIAlyZXR1cm47DQog
fQ0KIA0KQEAgLTExNjAsNyArMTIyNiw2IEBADQogew0KIAlzdHJ1Y3QgZWVw
cm9fbG9jYWwgKmxwID0gKHN0cnVjdCBlZXByb19sb2NhbCAqKWRldi0+cHJp
djsNCiAJaW50IGlvYWRkciA9IGRldi0+YmFzZV9hZGRyOw0KLQlpbnQgcmN2
X3JhbSA9IGRldi0+bWVtX2VuZDsNCiAJc2hvcnQgdGVtcF9yZWc7DQogDQog
CWRldi0+dGJ1c3kgPSAxOw0KQEAgLTExNzYsOCArMTI0MSw5IEBADQogDQog
CS8qIEZsdXNoIHRoZSBUeCBhbmQgZGlzYWJsZSBSeC4gKi8NCiAJb3V0YihT
VE9QX1JDVl9DTUQsIGlvYWRkcik7IA0KLQlscC0+dHhfc3RhcnQgPSBscC0+
dHhfZW5kID0gcmN2X3JhbSA7DQorCWxwLT50eF9zdGFydCA9IGxwLT50eF9l
bmQgPSAoWE1UX0xPV0VSX0xJTUlUIDw8IDgpOw0KIAlscC0+dHhfbGFzdCA9
IDA7DQorCWxwLT50eF9jb3VudCA9IDA7DQogDQogCS8qIE1hc2sgYWxsIHRo
ZSBpbnRlcnJ1cHRzLiAqLw0KIAlvdXRiKEFMTF9NQVNLLCBpb2FkZHIgKyBJ
TlRfTUFTS19SRUcpOyANCkBAIC0xMjg5LDcgKzEzNTUsNyBAQA0KIAkJb3V0
dyhlYWRkcnNbMF0sIGlvYWRkciArIElPX1BPUlQpOw0KIAkJb3V0dyhlYWRk
cnNbMV0sIGlvYWRkciArIElPX1BPUlQpOw0KIAkJb3V0dyhlYWRkcnNbMl0s
IGlvYWRkciArIElPX1BPUlQpOw0KLQkJb3V0dyhscC0+dHhfZW5kLCBpb2Fk
ZHIgKyBYTVRfQkFSKTsNCisJCW91dHcobHAtPnR4X2VuZCwgaW9hZGRyICsg
eG10X2Jhcik7DQogCQlvdXRiKE1DX1NFVFVQLCBpb2FkZHIpOw0KIA0KIAkJ
LyogVXBkYXRlIHRoZSB0cmFuc21pdCBxdWV1ZSAqLw0KQEAgLTEzNTEsMTAg
KzE0MTcsMTkgQEANCiB7DQogCWludCBpOw0KIAl1bnNpZ25lZCBzaG9ydCBy
ZXR2YWwgPSAwOw0KLQlzaG9ydCBlZV9hZGRyID0gaW9hZGRyICsgRUVQUk9N
X1JFRzsNCisJc2hvcnQgZWVfYWRkciA9IGlvYWRkciArIGVlcHJvbV9yZWc7
DQogCWludCByZWFkX2NtZCA9IGxvY2F0aW9uIHwgRUVfUkVBRF9DTUQ7DQog
CXNob3J0IGN0cmxfdmFsID0gRUVDUyA7DQogCQ0KKwkvKiBYWFhYIC0gdGhp
cyBpcyBub3QgdGhlIGZpbmFsIHZlcnNpb24uIFdlIG11c3QgdGVzdCB0aGlz
IG9uIG90aGVyDQorCSAqCSAgYm9hcmRzIG90aGVyIHRoYW4gZWVwcm8xMC4g
SSB0aGluayB0aGF0IGl0IHdvbid0IGxldCBvdGhlcg0KKwkgKgkgIGJvYXJk
cyB0byBmYWlsLiAoYXJpcykNCisJICovDQorCWlmIChldGhlcmV4cHJlc3Mx
MCkgew0KKwkJb3V0YihCQU5LMV9TRUxFQ1QsIGlvYWRkcik7DQorCQlvdXRi
KDB4MDAsIGlvYWRkciArIFNUQVRVU19SRUcpOw0KKwl9DQorCQkNCiAJb3V0
YihCQU5LMl9TRUxFQ1QsIGlvYWRkcik7DQogCW91dGIoY3RybF92YWwsIGVl
X2FkZHIpOw0KIAkNCkBAIC0xMzkxLDE0ICsxNDY2LDIxIEBADQogew0KIAlz
dHJ1Y3QgZWVwcm9fbG9jYWwgKmxwID0gKHN0cnVjdCBlZXByb19sb2NhbCAq
KWRldi0+cHJpdjsNCiAJc2hvcnQgaW9hZGRyID0gZGV2LT5iYXNlX2FkZHI7
DQotCWludCByY3ZfcmFtID0gZGV2LT5tZW1fZW5kOw0KKw0KIAl1bnNpZ25l
ZCBzdGF0dXMsIHR4X2F2YWlsYWJsZSwgbGFzdCwgZW5kLCBib2d1c2NvdW50
ID0gMTAwOw0KIA0KIAlpZiAobmV0X2RlYnVnID4gNSkNCiAJCXByaW50ayhL
RVJOX0RFQlVHICIlczogZW50ZXJpbmcgaGFyZHdhcmVfc2VuZF9wYWNrZXQg
cm91dGluZS5cbiIsIGRldi0+bmFtZSk7DQogDQotCXdoaWxlIChib2d1c2Nv
dW50LS0gPiAwKSB7DQorCWlmIChldGhlcmV4cHJlc3MxMCAmJiBscC0+dHhf
Y291bnQpIHsNCisJCWVlcHJvX3RyYW5zbWl0X2ludGVycnVwdChkZXYpOw0K
KwkJaWYgKGxwLT50eF9jb3VudCkgew0KKwkJCWxwLT5zdGF0cy50eF9kcm9w
cGVkKys7DQorCQkJcmV0dXJuOw0KKwkJfQ0KKwl9CQkNCiANCisJd2hpbGUg
KGJvZ3VzY291bnQtLSA+IDApIHsNCiAJCS8qIERpc2FibGUgUlggYW5kIFRY
IGludGVycnVwdHMuICBOZWNlc3NhcnkgdG8gYXZvaWQNCiAJCWNvcnJ1cHRp
b24gb2YgdGhlIEhPU1RfQUREUkVTU19SRUcgYnkgaW50ZXJydXB0DQogCQlz
ZXJ2aWNlIHJvdXRpbmVzLiAqLw0KQEAgLTE0MDYsNyArMTQ4OCw3IEBADQog
DQogCQlpZiAoZGV2LT5pbnRlcnJ1cHQgPT0gMSkgew0KIAkJCS8qIEVuYWJs
ZSBSWCBhbmQgVFggaW50ZXJydXB0cyAqLw0KLQkJCW91dGIoQUxMX01BU0sg
JiB+KFJYX01BU0sgfCBUWF9NQVNLKSwgaW9hZGRyICsgSU5UX01BU0tfUkVH
KTsgDQorCQkJb3V0YihBTExfTUFTSyAmIH4oUlhfTUFTSyB8IFRYX01BU0sp
LCBpb2FkZHIgKyBJTlRfTUFTS19SRUcpOw0KIAkJCWNvbnRpbnVlOw0KIAkJ
fQ0KIA0KQEAgLTE0MzAsMjEgKzE1MTIsMjEgQEANCiAJCWxhc3QgPSBscC0+
dHhfZW5kOw0KIAkJZW5kID0gbGFzdCArICgoKGxlbmd0aCArIDMpID4+IDEp
IDw8IDEpICsgWE1UX0hFQURFUjsNCiANCi0JCWlmIChlbmQgPj0gUkFNX1NJ
WkUpIHsgLyogdGhlIHRyYW5zbWl0IGJ1ZmZlciBpcyB3cmFwcGVkIGFyb3Vu
ZCAqLw0KLQkJDQotCQkJaWYgKChSQU1fU0laRSAtIGxhc3QpIDw9IFhNVF9I
RUFERVIpIHsJDQorCQlpZiAoZW5kID49IChYTVRfVVBQRVJfTElNSVQgPDwg
OCkpIHsgLyogdGhlIHRyYW5zbWl0IGJ1ZmZlciBpcyB3cmFwcGVkIGFyb3Vu
ZCAqLw0KKwkJCWlmICgoKFhNVF9VUFBFUl9MSU1JVCA8PCA4KSAtIGxhc3Qp
IDw9IFhNVF9IRUFERVIpIHsNCiAJCQkJLyogQXJycnIhISEsIG11c3Qga2Vl
cCB0aGUgeG10IGhlYWRlciB0b2dldGhlciwNCiAJCQkJc2V2ZXJhbCBkYXlz
IHdlcmUgbG9zdCB0byBjaGFzZSB0aGlzIG9uZSBkb3duLiAqLw0KIAkJCQkN
Ci0JCQkJbGFzdCA9IHJjdl9yYW07DQorCQkJCWxhc3QgPSAoWE1UX0xPV0VS
X0xJTUlUIDw8IDgpOw0KIAkJCQllbmQgPSBsYXN0ICsgKCgobGVuZ3RoICsg
MykgPj4gMSkgPDwgMSkgKyBYTVRfSEVBREVSOw0KIAkJCX0NCi0JCQkNCi0J
CQllbHNlIGVuZCA9IHJjdl9yYW0gKyAoZW5kIC0gUkFNX1NJWkUpOw0KKwkJ
CWVsc2UgZW5kID0gKFhNVF9MT1dFUl9MSU1JVCA8PCA4KSArIChlbmQgLSBY
TVRfUkFNKTsNCiAJCX0NCiANCisJCWxwLT50eF9jb3VudCsrOw0KKw0KIAkJ
b3V0dyhsYXN0LCBpb2FkZHIgKyBIT1NUX0FERFJFU1NfUkVHKTsNCi0JCW91
dHcoWE1UX0NNRCwgaW9hZGRyICsgSU9fUE9SVCk7IA0KKwkJb3V0dyhYTVRf
Q01ELCBpb2FkZHIgKyBJT19QT1JUKTsNCiAJCW91dHcoMCwgaW9hZGRyICsg
SU9fUE9SVCk7DQogCQlvdXR3KGVuZCwgaW9hZGRyICsgSU9fUE9SVCk7DQog
CQlvdXR3KGxlbmd0aCwgaW9hZGRyICsgSU9fUE9SVCk7DQpAQCAtMTQ2MSwx
NSArMTU0MywxNCBAQA0KIAkJLyogQSBkdW1teSByZWFkIHRvIGZsdXNoIHRo
ZSBEUkFNIHdyaXRlIHBpcGVsaW5lICovDQogCQlzdGF0dXMgPSBpbncoaW9h
ZGRyICsgSU9fUE9SVCk7IA0KIA0KLQkJaWYgKGxwLT50eF9zdGFydCA9PSBs
cC0+dHhfZW5kKSB7CQ0KLQkJCW91dHcobGFzdCwgaW9hZGRyICsgWE1UX0JB
Uik7DQotCQkJb3V0YihYTVRfQ01ELCBpb2FkZHIpOw0KKwkJaWYgKGxwLT50
eF9zdGFydCA9PSBscC0+dHhfZW5kKSB7DQorCQkJb3V0dyhsYXN0LCBpb2Fk
ZHIgKyB4bXRfYmFyKTsNCisJCQlvdXRiKFhNVF9DTUQsIGlvYWRkcik7CQkJ
DQogCQkJbHAtPnR4X3N0YXJ0ID0gbGFzdDsgICAvKiBJIGRvbid0IGxpa2Ug
dG8gY2hhbmdlIHR4X3N0YXJ0IGhlcmUgKi8NCiAJCX0NCiAJCWVsc2Ugew0K
IAkJCS8qIHVwZGF0ZSB0aGUgbmV4dCBhZGRyZXNzIGFuZCB0aGUgY2hhaW4g
Yml0IGluIHRoZSANCiAJCQlsYXN0IHBhY2tldCAqLw0KLQkJCQ0KIAkJCWlm
IChscC0+dHhfZW5kICE9IGxhc3QpIHsNCiAJCQkJb3V0dyhscC0+dHhfbGFz
dCArIFhNVF9DSEFJTiwgaW9hZGRyICsgSE9TVF9BRERSRVNTX1JFRyk7DQog
CQkJCW91dHcobGFzdCwgaW9hZGRyICsgSU9fUE9SVCk7IA0KQEAgLTE0Nzgs
NyArMTU1OSw2IEBADQogCQkJb3V0dyhscC0+dHhfbGFzdCArIFhNVF9DT1VO
VCwgaW9hZGRyICsgSE9TVF9BRERSRVNTX1JFRyk7DQogCQkJc3RhdHVzID0g
aW53KGlvYWRkciArIElPX1BPUlQpOyANCiAJCQlvdXR3KHN0YXR1cyB8IENI
QUlOX0JJVCwgaW9hZGRyICsgSU9fUE9SVCk7DQotDQogCQkJLyogQ29udGlu
dWUgdGhlIHRyYW5zbWl0IGNvbW1hbmQgKi8NCiAJCQlvdXRiKFJFU1VNRV9Y
TVRfQ01ELCBpb2FkZHIpOw0KIAkJfQ0KQEAgLTE0OTgsNyArMTU3OCw5IEBA
DQogCQlyZXR1cm47DQogCX0NCiANCisJb3V0YihBTExfTUFTSyAmIH4oUlhf
TUFTSyB8IFRYX01BU0spLCBpb2FkZHIgKyBJTlRfTUFTS19SRUcpOw0KIAlk
ZXYtPnRidXN5ID0gMTsNCisNCiAJaWYgKG5ldF9kZWJ1ZyA+IDUpDQogCQlw
cmludGsoS0VSTl9ERUJVRyAiJXM6IGV4aXRpbmcgaGFyZHdhcmVfc2VuZF9w
YWNrZXQgcm91dGluZS5cbiIsIGRldi0+bmFtZSk7DQogfQ0KQEAgLTE1MDcs
MTQgKzE1ODksMTcgQEANCiBlZXByb19yeChzdHJ1Y3QgZGV2aWNlICpkZXYp
DQogew0KIAlzdHJ1Y3QgZWVwcm9fbG9jYWwgKmxwID0gKHN0cnVjdCBlZXBy
b19sb2NhbCAqKWRldi0+cHJpdjsNCi0Jc2hvcnQgaW9hZGRyID0gZGV2LT5i
YXNlX2FkZHIsIHJjdl9yYW0gPSBkZXYtPm1lbV9lbmQ7DQorCXNob3J0IGlv
YWRkciA9IGRldi0+YmFzZV9hZGRyOw0KKwkJDQogCXNob3J0IGJvZ3VzY291
bnQgPSAyMDsNCi0Jc2hvcnQgcmN2X2NhciA9IGxwLT5yeF9zdGFydDsNCisJ
dW5zaWduZWQgcmN2X2NhciA9IGxwLT5yeF9zdGFydDsNCiAJdW5zaWduZWQg
cmN2X2V2ZW50LCByY3Zfc3RhdHVzLCByY3ZfbmV4dF9mcmFtZSwgcmN2X3Np
emU7DQogDQogCWlmIChuZXRfZGVidWcgPiA1KQ0KIAkJcHJpbnRrKEtFUk5f
REVCVUcgIiVzOiBlbnRlcmluZyBlZXByb19yeCByb3V0aW5lLlxuIiwgZGV2
LT5uYW1lKTsNCiAJDQorCW91dGIoQUxMX01BU0ssIGlvYWRkciArIFNUQVRV
U19SRUcpOw0KKwkNCiAJLyogU2V0IHRoZSByZWFkIHBvaW50ZXIgdG8gdGhl
IHN0YXJ0IG9mIHRoZSBSQ1YgKi8NCiAJb3V0dyhyY3ZfY2FyLCBpb2FkZHIg
KyBIT1NUX0FERFJFU1NfUkVHKTsNCiAJDQpAQCAtMTU4OSwxMiArMTY3NCwx
NCBAQA0KIA0KIAl9IA0KIAlpZiAocmN2X2NhciA9PSAwKQ0KLQkJcmN2X2Nh
ciA9IChSQ1ZfVVBQRVJfTElNSVQgPDwgOCkgfCAweGZmOw0KKwkJcmN2X2Nh
ciA9ICgoUkNWX1VQUEVSX0xJTUlUIDw8IDgpIHwgMHhmZik7DQogCQkNCiAJ
b3V0dyhyY3ZfY2FyIC0gMSwgaW9hZGRyICsgUkNWX1NUT1ApOw0KIA0KIAlp
ZiAobmV0X2RlYnVnID4gNSkNCiAJCXByaW50ayhLRVJOX0RFQlVHICIlczog
ZXhpdGluZyBlZXByb19yeCByb3V0aW5lLlxuIiwgZGV2LT5uYW1lKTsNCisN
CisJb3V0YihBTExfTUFTSyAmIH4oUlhfTUFTSyB8IFRYX01BU0spLCBpb2Fk
ZHIgKyBJTlRfTUFTS19SRUcpOw0KIH0NCiANCiBzdGF0aWMgdm9pZA0KQEAg
LTE2MDMsOCArMTY5MCw4IEBADQogCXN0cnVjdCBlZXByb19sb2NhbCAqbHAg
PSAoc3RydWN0IGVlcHJvX2xvY2FsICopZGV2LT5wcml2Ow0KIAlzaG9ydCBp
b2FkZHIgPSBkZXYtPmJhc2VfYWRkcjsNCiAJc2hvcnQgYm9ndXNjb3VudCA9
IDIwOyANCi0Jc2hvcnQgeG10X3N0YXR1czsNCi0JDQorCXVuc2lnbmVkIHht
dF9zdGF0dXM7DQorDQogCS8qDQogCWlmIChkZXYtPnRidXN5ID09IDApIHsN
CiAJCXByaW50aygiJXM6IHRyYW5zbWl0X2ludGVycnVwdCBjYWxsZWQgd2l0
aCB0YnVzeSA9IDAgPz9cbiIsDQpAQCAtMTYxMywzMCArMTcwMCw3MiBAQA0K
IAkJCWRldi0+bmFtZSk7DQogCX0NCiAJKi8NCisJd2hpbGUgKGxwLT50eF9z
dGFydCAhPSBscC0+dHhfZW5kICYmIGJvZ3VzY291bnQpIHsNCiANCi0Jd2hp
bGUgKGxwLT50eF9zdGFydCAhPSBscC0+dHhfZW5kKSB7IA0KLQkNCi0JCW91
dHcobHAtPnR4X3N0YXJ0LCBpb2FkZHIgKyBIT1NUX0FERFJFU1NfUkVHKTsg
DQorCQlvdXR3KGxwLT50eF9zdGFydCwgaW9hZGRyICsgSE9TVF9BRERSRVNT
X1JFRyk7DQogCQl4bXRfc3RhdHVzID0gaW53KGlvYWRkcitJT19QT1JUKTsN
Ci0JCQ0KLQkJaWYgKCh4bXRfc3RhdHVzICYgVFhfRE9ORV9CSVQpID09IDAp
IGJyZWFrOw0KKw0KKwkJaWYgKCh4bXRfc3RhdHVzICYgVFhfRE9ORV9CSVQp
ID09IDApIHsNCisJCQl1ZGVsYXkoNDApOw0KKwkJCWJvZ3VzY291bnQtLTsN
CisJCQljb250aW51ZTsNCisJCX0NCisNCisJCWxwLT50eF9jb3VudC0tOw0K
IA0KIAkJeG10X3N0YXR1cyA9IGludyhpb2FkZHIrSU9fUE9SVCk7IA0KIAkJ
bHAtPnR4X3N0YXJ0ID0gaW53KGlvYWRkcitJT19QT1JUKTsNCiANCisJCWlm
IChldGhlcmV4cHJlc3MxMCkgew0KKwkJCWxwLT50eF9zdGFydCA9IChYTVRf
TE9XRVJfTElNSVQgPDwgOCk7DQorCQkJbHAtPnR4X2VuZCA9IGxwLT50eF9z
dGFydDsNCisJDQorCQkJLyogeWVhaCwgYmxhY2sgbWFnaWMgOiggKi8NCisJ
CQlvdXRiKEJBTkswX1NFTEVDVCwgaW9hZGRyKTsNCisJCQlvdXRiKEFMTF9N
QVNLICYgfihSWF9NQVNLIHwgVFhfTUFTSyksIGlvYWRkciArIElOVF9NQVNL
X1JFRyk7DQorCQkNCisJCQlvdXRiKFJDVl9ESVNBQkxFX0NNRCwgaW9hZGRy
KTsNCisJCQlvdXRiKFJDVl9FTkFCTEVfQ01ELCBpb2FkZHIpOw0KKwkJfQ0K
Kw0KIAkJZGV2LT50YnVzeSA9IDA7DQorCQkNCiAJCW1hcmtfYmgoTkVUX0JI
KTsNCi0NCi0JCWlmICh4bXRfc3RhdHVzICYgMHgyMDAwKQ0KKwkJDQorCQlp
ZiAoeG10X3N0YXR1cyAmIDB4MjAwMCkgew0KIAkJCWxwLT5zdGF0cy50eF9w
YWNrZXRzKys7IA0KKwkJfQ0KIAkJZWxzZSB7DQogCQkJbHAtPnN0YXRzLnR4
X2Vycm9ycysrOw0KLQkJCWlmICh4bXRfc3RhdHVzICYgMHgwNDAwKQ0KKwkJ
CWlmICh4bXRfc3RhdHVzICYgMHgwNDAwKSB7DQogCQkJCWxwLT5zdGF0cy50
eF9jYXJyaWVyX2Vycm9ycysrOw0KLQkJCXByaW50aygiJXM6IFhNVCBzdGF0
dXMgPSAlI3hcbiIsDQotCQkJCWRldi0+bmFtZSwgeG10X3N0YXR1cyk7DQot
CQkJcHJpbnRrKEtFUk5fREVCVUcgIiVzOiBYTVQgc3RhdHVzID0gJSN4XG4i
LA0KLQkJCQlkZXYtPm5hbWUsIHhtdF9zdGF0dXMpOw0KKwkJCQlwcmludGso
S0VSTl9ERUJVRyAiJXM6IGNhcnJpZXIgZXJyb3JcbiIsDQorCQkJCQlkZXYt
Pm5hbWUpOw0KKwkJCQlwcmludGsoS0VSTl9ERUJVRyAiJXM6IFhNVCBzdGF0
dXMgPSAlI3hcbiIsDQorCQkJCQlkZXYtPm5hbWUsIHhtdF9zdGF0dXMpOw0K
KwkJCX0NCisJCQllbHNlIHsNCisJCQkJcHJpbnRrKEtFUk5fREVCVUcgIiVz
OiBYTVQgc3RhdHVzID0gJSN4XG4iLA0KKwkJCQkJZGV2LT5uYW1lLCB4bXRf
c3RhdHVzKTsNCisJCQkJcHJpbnRrKEtFUk5fREVCVUcgIiVzOiBYTVQgc3Rh
dHVzID0gJSN4XG4iLA0KKwkJCQkJZGV2LT5uYW1lLCB4bXRfc3RhdHVzKTsN
CisJCQl9DQorCQkJDQorCQkJaWYgKGV0aGVyZXhwcmVzczEwKSB7DQorCQkJ
CS8qIFRyeSB0byByZXN0YXJ0IHRoZSBhZGFwdG9yLiAqLw0KKwkJCQlvdXRi
KFNFTF9SRVNFVF9DTUQsIGlvYWRkcik7IA0KKwkJCQlscC0+dHhfY291bnQg
PSAwOw0KKwkJCQ0KKwkJCQkvKiBXZSBhcmUgc3VwcG9zZWQgdG8gd2FpdCBm
b3IgMiB1cyBhZnRlciBhIFNFTF9SRVNFVCAqLw0KKwkJCQlTTE9XX0RPV047
DQorCQkJCVNMT1dfRE9XTjsNCisNCisJCQkJLyogZmlyc3QgZW5hYmxlIGlu
dGVycnVwdHMgKi8NCisJCQkJb3V0YihCQU5LMF9TRUxFQ1QsIGlvYWRkcik7
DQorCQkJCW91dGIoQUxMX01BU0sgJiB+KFJYX0lOVCB8IFRYX0lOVCksIGlv
YWRkciArIFNUQVRVU19SRUcpOw0KKwkJCQ0KKwkJCQlvdXRiKFJDVl9FTkFC
TEVfQ01ELCBpb2FkZHIpOw0KKwkJCX0NCiAJCX0NCiAJCQ0KIAkJaWYgKHht
dF9zdGF0dXMgJiAweDAwMGYpIHsNCkBAIC0xNjQ2LDkgKzE3NzUsNyBAQA0K
IAkJaWYgKCh4bXRfc3RhdHVzICYgMHgwMDQwKSA9PSAweDApIHsNCiAJCQls
cC0+c3RhdHMudHhfaGVhcnRiZWF0X2Vycm9ycysrOw0KIAkJfQ0KLQ0KLQkJ
aWYgKC0tYm9ndXNjb3VudCA9PSAwKQ0KLQkJCWJyZWFrOw0KKwkJYm9ndXNj
b3VudC0tOw0KIAl9DQogfQ0KIA0KQEAgLTE2NTgsMTcgKzE3ODUsMTIgQEAN
CiBzdGF0aWMgY2hhciBkZXZpY2VuYW1lW01BWF9FRVBST11bOV07DQogc3Rh
dGljIHN0cnVjdCBkZXZpY2UgZGV2X2VlcHJvW01BWF9FRVBST107DQogDQot
c3RhdGljIGludCBpb1tNQVhfRUVQUk9dID0gew0KLSNpZmRlZiBQblBXYWtl
dXANCi0gIDB4MjEwLCAgLyo6IGRlZmF1bHQgZm9yIFBuUCBlbmFibGVkIEZY
IGNoaXBzICovDQotI2Vsc2UNCi0gIDB4MjAwLCAgLyogV2h5PyAqLw0KLSNl
bmRpZg0KLSAgWzEgLi4uIE1BWF9FRVBSTyAtIDFdID0gLTEgfTsNCitzdGF0
aWMgaW50IGlvW01BWF9FRVBST107DQogc3RhdGljIGludCBpcnFbTUFYX0VF
UFJPXSA9IHsgWzAgLi4uIE1BWF9FRVBSTy0xXSA9IDAgfTsNCiBzdGF0aWMg
aW50IG1lbVtNQVhfRUVQUk9dID0gewkvKiBTaXplIG9mIHRoZSByeCBidWZm
ZXIgaW4gS0IgKi8NCi0gIFswIC4uLiBNQVhfRUVQUk8tMV0gPSBSQ1ZfUkFN
LzEwMjQNCisgIFswIC4uLiBNQVhfRUVQUk8tMV0gPSBSQ1ZfREVGQVVMVF9S
QU0vMTAyNA0KIH07DQorc3RhdGljIGludCBhdXRvZGV0ZWN0Ow0KIA0KIHN0
YXRpYyBpbnQgbl9lZXBybyA9IDA7DQogLyogRm9yIGxpbnV4IDIuMS54eCAq
Lw0KQEAgLTE2NzgsMTkgKzE4MDAsMzAgQEANCiBNT0RVTEVfUEFSTShpbywg
IjEtIiBfX01PRFVMRV9TVFJJTkcoTUFYX0VFUFJPKSAiaSIpOw0KIE1PRFVM
RV9QQVJNKGlycSwgIjEtIiBfX01PRFVMRV9TVFJJTkcoTUFYX0VFUFJPKSAi
aSIpOw0KIE1PRFVMRV9QQVJNKG1lbSwgIjEtIiBfX01PRFVMRV9TVFJJTkco
TUFYX0VFUFJPKSAiaSIpOw0KK01PRFVMRV9QQVJNKGF1dG9kZXRlY3QsICIx
LSIgX19NT0RVTEVfU1RSSU5HKDEpICJpIik7DQogI2VuZGlmIA0KIA0KIGlu
dCANCiBpbml0X21vZHVsZSh2b2lkKQ0KIHsNCi0JaWYgKGlvWzBdID09IDAp
DQotCQlwcmludGsoImVlcHJvX2luaXRfbW9kdWxlOiBZb3Ugc2hvdWxkIG5v
dCB1c2UgYXV0by1wcm9iaW5nIHdpdGggaW5zbW9kIVxuIik7DQotDQotCXdo
aWxlIChuX2VlcHJvIDwgTUFYX0VFUFJPICYmIGlvW25fZWVwcm9dID49IDAp
IHsNCisJaW50IGk7DQorCWlmIChpb1swXSA9PSAwICYmIGF1dG9kZXRlY3Qg
PT0gMCkgew0KKwkJcHJpbnRrKCJlZXByb19pbml0X21vZHVsZTogUHJvYmUg
aXMgdmVyeSBkYW5nZXJvdXMgaW4gSVNBIGJvYXJkcyFcbiIpOw0KKwkJcHJp
bnRrKCJlZXByb19pbml0X21vZHVsZTogUGxlYXNlIGFkZCBcImF1dG9kZXRl
Y3Q9MVwiIHRvIGZvcmNlIHByb2JlXG4iKTsNCisJCXJldHVybiAxOw0KKwl9
DQorCWVsc2UgaWYgKGF1dG9kZXRlY3QpIHsNCisJCS8qIGlmIGF1dG9kZXRl
Y3QgaXMgc2V0IHRoZW4gd2UgbXVzdCBmb3JjZSBkZXRlY3Rpb24gKi8NCisJ
CWlvWzBdID0gMDsNCisJCQ0KKwkJcHJpbnRrKCJlZXByb19pbml0X21vZHVs
ZTogQXV0by1kZXRlY3RpbmcgYm9hcmRzIChNYXkgR29kIHByb3RlY3QgdXMu
Li4pXG4iKTsNCisJfQkNCisJDQorCWZvciAoaSA9IDA7IGkgPCBNQVhfRUVQ
Uk87IGkrKykgew0KIAkJc3RydWN0IGRldmljZSAqZCA9ICZkZXZfZWVwcm9b
bl9lZXByb107DQogCQlkLT5uYW1lCQk9IGRldmljZW5hbWVbbl9lZXByb107
IC8qIGluc2VydGVkIGJ5IGRyaXZlcnMvbmV0L25ldF9pbml0LmMgKi8NCi0J
CWQtPm1lbV9lbmQJPSBtZW1bbl9lZXByb107DQotCQlkLT5iYXNlX2FkZHIJ
PSBpb1tuX2VlcHJvXTsNCisJCWQtPm1lbV9lbmQJPSBtZW1bbl9lZXByb107
CQkNCisJCWQtPmJhc2VfYWRkcgk9IGlvWzBdOw0KIAkJZC0+aXJxCQk9IGly
cVtuX2VlcHJvXTsNCiAJCWQtPmluaXQJCT0gZWVwcm9fcHJvYmU7DQogDQo=
---1463795969-1790281091-956774877=:29323--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/