Re: Patch for ide-tape driver

Alan Stern (stern@rowland.harvard.edu)
Mon, 30 Dec 2002 11:34:22 -0500 (EST)


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.

---2084555674-369813718-1041265712=:1848
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.4.33L2.0212301128391.1848@ida.rowland.org>

Alan:

Here is another copy of my multiple-bug-fix patch for the ide-tape driver,
as of 2.5.53. The corresponding patch for 2.4.21 has already been
accepted by Marcelo. Please apply this to the current kernel (or send it
on up the line) when you have a chance.

Thanks.

Alan Stern

---2084555674-369813718-1041265712=:1848
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="ide-tape.c.patch-2.5.53"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.33L2.0212301128320.1848@ida.rowland.org>
Content-Description: Patch for ide-tape driver, 2.5.53
Content-Disposition: ATTACHMENT; FILENAME="ide-tape.c.patch-2.5.53"

LS0tIGxpbnV4L2RyaXZlcnMvaWRlL2lkZS10YXBlLmMub3JpZwlNb24gRGVj
ICA5IDE0OjQyOjA3IDIwMDINCisrKyBsaW51eC9kcml2ZXJzL2lkZS9pZGUt
dGFwZS5jCVR1ZSBEZWMgMTAgMTU6NDA6MTkgMjAwMg0KQEAgLTEsNSArMSw1
IEBADQogLyoNCi0gKiBsaW51eC9kcml2ZXJzL2lkZS9pZGUtdGFwZS5jCQlW
ZXJzaW9uIDEuMTdhCUphbiwgMjAwMQ0KKyAqIGxpbnV4L2RyaXZlcnMvaWRl
L2lkZS10YXBlLmMJCVZlcnNpb24gMS4xN2IJT2N0LCAyMDAyDQogICoNCiAg
KiBDb3B5cmlnaHQgKEMpIDE5OTUgLSAxOTk5IEdhZGkgT3htYW4gPGdhZGlv
QG5ldHZpc2lvbi5uZXQuaWw+DQogICoNCkBAIC0yOTEsNiArMjkxLDI4IEBA
DQogICogVmVyIDEuMTdhIEFwciAyMDAxIFdpbGxlbSBSaWVkZSBvc3N0QHJp
ZWRlLm9yZw0KICAqIAkJCS0gR2V0IGRyaXZlJ3MgYWN0dWFsIGJsb2NrIHNp
emUgZnJvbSBtb2RlIHNlbnNlIGJsb2NrIGRlc2NyaXB0b3INCiAgKiAJCQkt
IExpbWl0IHNpemUgb2YgcGlwZWxpbmUNCisgKiBWZXIgMS4xN2IgT2N0IDIw
MDIgICBBbGFuIFN0ZXJuIDxzdGVybkByb3dsYW5kLmhhcnZhcmQuZWR1Pg0K
KyAqCQkJQ2hhbmdlZCBJREVUQVBFX01JTl9QSVBFTElORV9TVEFHRVMgdG8g
MSBhbmQgYWN0dWFsbHkgdXNlZA0KKyAqCQkJIGl0IGluIHRoZSBjb2RlIQ0K
KyAqCQkJQWN0dWFsbHkgcmVtb3ZlZCBhYm9ydGVkIHN0YWdlcyBpbiBpZGV0
YXBlX2Fib3J0X3BpcGVsaW5lDQorICoJCQkgaW5zdGVhZCBvZiBqdXN0IGNo
YW5naW5nIHRoZSBjb21tYW5kIGNvZGUuDQorICoJCQlNYWRlIHRoZSB0cmFu
c2ZlciBieXRlIGNvdW50IGZvciBSZXF1ZXN0IFNlbnNlIGVxdWFsIHRvIHRo
ZQ0KKyAqCQkJIGFjdHVhbCBsZW5ndGggb2YgdGhlIGRhdGEgdHJhbnNmZXIu
DQorICoJCQlDaGFuZ2VkIGhhbmRsaW5nIG9mIHBhcnRpYWwgZGF0YSB0cmFu
c2ZlcnM6IHRoZXkgZG8gbm90DQorICoJCQkgY2F1c2UgRE1BIGVycm9ycy4N
CisgKgkJCU1vdmVkIGluaXRpYXRpb24gb2YgRE1BIHRyYW5zZmVycyB0byB0
aGUgY29ycmVjdCBwbGFjZS4NCisgKgkJCVJlbW92ZWQgcmVmZXJlbmNlIHRv
IHVuYWxsb2NhdGVkIG1lbW9yeS4NCisgKgkJCU1hZGUgX19pZGV0YXBlX2Rp
c2NhcmRfcmVhZF9waXBlbGluZSByZXR1cm4gdGhlIG51bWJlciBvZg0KKyAq
CQkJIHNlY3RvcnMgc2tpcHBlZCwgbm90IHRoZSBudW1iZXIgb2Ygc3RhZ2Vz
Lg0KKyAqCQkJUmVwbGFjZWQgZXJyYW50IGtmcmVlKCkgY2FsbHMgd2l0aCBf
X2lkZXRhcGVfa2ZyZWVfc3RhZ2UoKS4NCisgKgkJCUZpeGVkIG9mZi1ieS1v
bmUgZXJyb3IgaW4gdGVzdGluZyB0aGUgcGlwZWxpbmUgbGVuZ3RoLg0KKyAq
CQkJRml4ZWQgaGFuZGxpbmcgb2YgZmlsZW1hcmtzIGluIHRoZSByZWFkIHBp
cGVsaW5lLg0KKyAqCQkJU21hbGwgY29kZSBvcHRpbWl6YXRpb24gZm9yIE1U
QlNGIGFuZCBNVEJTRk0gaW9jdGxzLg0KKyAqCQkJRG9uJ3QgdHJ5IHRvIHVu
bG9jayB0aGUgZG9vciBkdXJpbmcgZGV2aWNlIGNsb3NlIGlmIGlzDQorICoJ
CQkgYWxyZWFkeSB1bmxvY2tlZCENCisgKgkJCUNvc21ldGljIGZpeGVzIHRv
IG1pc2NlbGxhbmVvdXMgZGVidWdnaW5nIG91dHB1dCBtZXNzYWdlcy4NCisg
KgkJCVNldCB0aGUgbWluaW11bSAvcHJvYy9pZGUvaGQ/L3NldHRpbmdzIHZh
bHVlcyBmb3IgInBpcGVsaW5lIiwNCisgKgkJCSAicGlwZWxpbmVfbWluIiwg
YW5kICJwaXBlbGluZV9tYXgiIHRvIDEuDQogICoNCiAgKiBIZXJlIGFyZSBz
b21lIHdvcmRzIGZyb20gdGhlIGZpcnN0IHJlbGVhc2VzIG9mIGhkLmMsIHdo
aWNoIGFyZSBxdW90ZWQNCiAgKiBpbiBpZGUuYyBhbmQgYXBwbHkgaGVyZSBh
cyB3ZWxsOg0KQEAgLTQwMCw3ICs0MjIsNyBAQA0KICAqCQlzaGFyaW5nIGEg
KGZhc3QpIEFUQS0yIGRpc2sgd2l0aCBhbnkgKHNsb3cpIG5ldyBBVEFQSSBk
ZXZpY2UuDQogICovDQogDQotI2RlZmluZSBJREVUQVBFX1ZFUlNJT04gIjEu
MTdhIg0KKyNkZWZpbmUgSURFVEFQRV9WRVJTSU9OICIxLjE3YiINCiANCiAj
aW5jbHVkZSA8bGludXgvY29uZmlnLmg+DQogI2luY2x1ZGUgPGxpbnV4L21v
ZHVsZS5oPg0KQEAgLTU3Nyw5ICs1OTksMTAgQEANCiAgKgl3aGVuZXZlciB3
ZSBzZW5zZSB0aGF0IHRoZSBwaXBlbGluZSBpcyBlbXB0eSwgdW50aWwgd2Ug
cmVhY2gNCiAgKgl0aGUgb3B0aW11bSB2YWx1ZSBvciB1bnRpbCB3ZSByZWFj
aCBNQVguDQogICoNCi0gKglTZXR0aW5nIHRoZSBmb2xsb3dpbmcgcGFyYW1l
dGVyIHRvIDAgd2lsbCBkaXNhYmxlIHRoZSBwaXBlbGluZWQgbW9kZS4NCisg
KglTZXR0aW5nIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyIHRvIDAgaXMgaWxs
ZWdhbDogdGhlIHBpcGVsaW5lZCBtb2RlDQorICoJY2Fubm90IGJlIGRpc2Fi
bGVkIChjYWxjdWxhdGVfc3BlZWRzKCkgZGl2aWRlcyBieSB0YXBlLT5tYXhf
c3RhZ2VzLikNCiAgKi8NCi0jZGVmaW5lIElERVRBUEVfTUlOX1BJUEVMSU5F
X1NUQUdFUwkyMDANCisjZGVmaW5lIElERVRBUEVfTUlOX1BJUEVMSU5FX1NU
QUdFUwkgIDENCiAjZGVmaW5lIElERVRBUEVfTUFYX1BJUEVMSU5FX1NUQUdF
Uwk0MDANCiAjZGVmaW5lIElERVRBUEVfSU5DUkVBU0VfU1RBR0VTX1JBVEUJ
IDIwDQogDQpAQCAtNjAxLDggKzYyNCw4IEBADQogICoJaXMgdmVyaWZpZWQg
dG8gYmUgc3RhYmxlIGVub3VnaC4gVGhpcyB3aWxsIG1ha2UgaXQgbXVjaCBt
b3JlDQogICoJZXN0aGV0aWMuDQogICovDQotI2RlZmluZSBJREVUQVBFX0RF
QlVHX0lORk8JCTENCi0jZGVmaW5lIElERVRBUEVfREVCVUdfTE9HCQkxDQor
I2RlZmluZSBJREVUQVBFX0RFQlVHX0lORk8JCTANCisjZGVmaW5lIElERVRB
UEVfREVCVUdfTE9HCQkwDQogI2RlZmluZSBJREVUQVBFX0RFQlVHX0xPR19W
RVJCT1NFCTANCiAjZGVmaW5lIElERVRBUEVfREVCVUdfQlVHUwkJMQ0KIA0K
QEAgLTE2MTAsMjQgKzE2MzMsNiBAQA0KIAl9DQogfQ0KIA0KLXN0YXRpYyB2
b2lkIGlkZXRhcGVfYWJvcnRfcGlwZWxpbmUgKGlkZV9kcml2ZV90ICpkcml2
ZSkNCi17DQotCWlkZXRhcGVfdGFwZV90ICp0YXBlID0gZHJpdmUtPmRyaXZl
cl9kYXRhOw0KLQlpZGV0YXBlX3N0YWdlX3QgKnN0YWdlID0gdGFwZS0+bmV4
dF9zdGFnZTsNCi0NCi0jaWYgSURFVEFQRV9ERUJVR19MT0cNCi0JaWYgKHRh
cGUtPmRlYnVnX2xldmVsID49IDQpDQotCQlwcmludGsoS0VSTl9JTkZPICJp
ZGUtdGFwZTogJXM6IGlkZXRhcGVfYWJvcnRfcGlwZWxpbmUgY2FsbGVkXG4i
LCB0YXBlLT5uYW1lKTsNCi0jZW5kaWYNCi0Jd2hpbGUgKHN0YWdlKSB7DQot
CQlpZiAoc3RhZ2UtPnJxLmZsYWdzID09IElERVRBUEVfV1JJVEVfUlEpDQot
CQkJc3RhZ2UtPnJxLmZsYWdzID0gSURFVEFQRV9BQk9SVEVEX1dSSVRFX1JR
Ow0KLQkJZWxzZSBpZiAoc3RhZ2UtPnJxLmZsYWdzID09IElERVRBUEVfUkVB
RF9SUSkNCi0JCQlzdGFnZS0+cnEuZmxhZ3MgPSBJREVUQVBFX0FCT1JURURf
UkVBRF9SUTsNCi0JCXN0YWdlID0gc3RhZ2UtPm5leHQ7DQotCX0NCi19DQot
DQogLyoNCiAgKiBpZGV0YXBlX2FjdGl2ZV9uZXh0X3N0YWdlIHdpbGwgZGVj
bGFyZSB0aGUgbmV4dCBzdGFnZSBhcyAiYWN0aXZlIi4NCiAgKi8NCkBAIC0x
NjcyLDcgKzE2NzcsNyBAQA0KIAkJcHJpbnRrIChLRVJOX0lORk8gImlkZS10
YXBlOiBSZWFjaGVkIGlkZXRhcGVfaW5jcmVhc2VfbWF4X3BpcGVsaW5lX3N0
YWdlc1xuIik7DQogI2VuZGlmIC8qIElERVRBUEVfREVCVUdfTE9HICovDQog
DQotCXRhcGUtPm1heF9zdGFnZXMgKz0gaW5jcmVhc2U7DQorCXRhcGUtPm1h
eF9zdGFnZXMgKz0gbWF4KGluY3JlYXNlLCAxKTsNCiAJdGFwZS0+bWF4X3N0
YWdlcyA9IG1heCh0YXBlLT5tYXhfc3RhZ2VzLCB0YXBlLT5taW5fcGlwZWxp
bmUpOw0KIAl0YXBlLT5tYXhfc3RhZ2VzID0gbWluKHRhcGUtPm1heF9zdGFn
ZXMsIHRhcGUtPm1heF9waXBlbGluZSk7DQogfQ0KQEAgLTE3NDUsNiArMTc1
MCwyOSBAQA0KIAl9DQogfQ0KIA0KK3N0YXRpYyB2b2lkIGlkZXRhcGVfYWJv
cnRfcGlwZWxpbmUgKGlkZV9kcml2ZV90ICpkcml2ZSwgaWRldGFwZV9zdGFn
ZV90ICpsYXN0X3N0YWdlKQ0KK3sNCisJaWRldGFwZV90YXBlX3QgKnRhcGUg
PSBkcml2ZS0+ZHJpdmVyX2RhdGE7DQorCWlkZXRhcGVfc3RhZ2VfdCAqc3Rh
Z2UgPSB0YXBlLT5uZXh0X3N0YWdlOw0KKwlpZGV0YXBlX3N0YWdlX3QgKm5z
dGFnZTsNCisNCisjaWYgSURFVEFQRV9ERUJVR19MT0cNCisJaWYgKHRhcGUt
PmRlYnVnX2xldmVsID49IDQpDQorCQlwcmludGsoS0VSTl9JTkZPICJpZGUt
dGFwZTogJXM6IGlkZXRhcGVfYWJvcnRfcGlwZWxpbmUgY2FsbGVkXG4iLCB0
YXBlLT5uYW1lKTsNCisjZW5kaWYNCisJd2hpbGUgKHN0YWdlKSB7DQorCQlu
c3RhZ2UgPSBzdGFnZS0+bmV4dDsNCisJCWlkZXRhcGVfa2ZyZWVfc3RhZ2Uo
dGFwZSwgc3RhZ2UpOw0KKwkJLS10YXBlLT5ucl9zdGFnZXM7DQorCQktLXRh
cGUtPm5yX3BlbmRpbmdfc3RhZ2VzOw0KKwkJc3RhZ2UgPSBuc3RhZ2U7DQor
CX0NCisJdGFwZS0+bGFzdF9zdGFnZSA9IGxhc3Rfc3RhZ2U7DQorCWlmIChs
YXN0X3N0YWdlKQ0KKwkJbGFzdF9zdGFnZS0+bmV4dCA9IE5VTEw7DQorCXRh
cGUtPm5leHRfc3RhZ2UgPSBOVUxMOw0KK30NCisNCiAvKg0KICAqCWlkZXRh
cGVfZW5kX3JlcXVlc3QgaXMgdXNlZCB0byBmaW5pc2ggc2VydmljaW5nIGEg
cmVxdWVzdCwgYW5kIHRvDQogICoJaW5zZXJ0IGEgcGVuZGluZyBwaXBlbGlu
ZSByZXF1ZXN0IGludG8gdGhlIG1haW4gZGV2aWNlIHF1ZXVlLg0KQEAgLTE3
NTYsNiArMTc4NCw3IEBADQogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQogCWlu
dCBlcnJvcjsNCiAJaW50IHJlbW92ZV9zdGFnZSA9IDA7DQorCWlkZXRhcGVf
c3RhZ2VfdCAqYWN0aXZlX3N0YWdlOw0KICNpZiBPTlNUUkVBTV9ERUJVRw0K
IAlpZGV0YXBlX3N0YWdlX3QgKnN0YWdlOw0KIAlvc19hdXhfdCAqYXV4Ow0K
QEAgLTE3ODAsNiArMTgwOSw3IEBADQogDQogCS8qIFRoZSByZXF1ZXN0IHdh
cyBhIHBpcGVsaW5lZCBkYXRhIHRyYW5zZmVyIHJlcXVlc3QgKi8NCiAJaWYg
KHRhcGUtPmFjdGl2ZV9kYXRhX3JlcXVlc3QgPT0gcnEpIHsNCisJCWFjdGl2
ZV9zdGFnZSA9IHRhcGUtPmFjdGl2ZV9zdGFnZTsNCiAJCXRhcGUtPmFjdGl2
ZV9zdGFnZSA9IE5VTEw7DQogCQl0YXBlLT5hY3RpdmVfZGF0YV9yZXF1ZXN0
ID0gTlVMTDsNCiAJCXRhcGUtPm5yX3BlbmRpbmdfc3RhZ2VzLS07DQpAQCAt
MTc5OSwxOCArMTgyOSwyMCBAQA0KIAkJCQlpZiAodGFwZS0+Zmlyc3RfZnJh
bWVfcG9zaXRpb24gPT0gT1NfREFUQV9FTkRGUkFNRTEpIHsgDQogI2lmIE9O
U1RSRUFNX0RFQlVHDQogCQkJCQlpZiAodGFwZS0+ZGVidWdfbGV2ZWwgPj0g
MikNCi0JCQkJCQlwcmludGsoImlkZS10YXBlOiAlczogc2tpcHBpbmcgb3Zl
ciBjb25maWcgcGFyaXRpb24uLlxuIiwgdGFwZS0+bmFtZSk7DQorCQkJCQkJ
cHJpbnRrKCJpZGUtdGFwZTogJXM6IHNraXBwaW5nIG92ZXIgY29uZmlnIHBh
cnRpdGlvbi5cbiIsIHRhcGUtPm5hbWUpOw0KICNlbmRpZg0KIAkJCQkJdGFw
ZS0+b25zdHJlYW1fd3JpdGVfZXJyb3IgPSBPU19QQVJUX0VSUk9SOw0KLQkJ
CQkJaWYgKHRhcGUtPndhaXRpbmcpDQorCQkJCQlpZiAodGFwZS0+d2FpdGlu
Zykgew0KKwkJCQkJCXJxLT53YWl0aW5nID0gTlVMTDsNCiAJCQkJCQljb21w
bGV0ZSh0YXBlLT53YWl0aW5nKTsNCisJCQkJCX0NCiAJCQkJfQ0KIAkJCX0N
CiAJCQlyZW1vdmVfc3RhZ2UgPSAxOw0KIAkJCWlmIChlcnJvcikgew0KIAkJ
CQlzZXRfYml0KElERVRBUEVfUElQRUxJTkVfRVJST1IsICZ0YXBlLT5mbGFn
cyk7DQogCQkJCWlmIChlcnJvciA9PSBJREVUQVBFX0VSUk9SX0VPRCkNCi0J
CQkJCWlkZXRhcGVfYWJvcnRfcGlwZWxpbmUoZHJpdmUpOw0KKwkJCQkJaWRl
dGFwZV9hYm9ydF9waXBlbGluZShkcml2ZSwgYWN0aXZlX3N0YWdlKTsNCiAJ
CQkJaWYgKHRhcGUtPm9uc3RyZWFtICYmICF0YXBlLT5yYXcgJiYNCiAJCQkJ
ICAgIGVycm9yID09IElERVRBUEVfRVJST1JfR0VORVJBTCAmJg0KIAkJCQkg
ICAgdGFwZS0+c2Vuc2Uuc2Vuc2Vfa2V5ID09IDMpIHsNCkBAIC0xODIxLDE0
ICsxODUzLDE2IEBADQogCQkJCQl0YXBlLT5ucl9wZW5kaW5nX3N0YWdlcysr
Ow0KIAkJCQkJdGFwZS0+bmV4dF9zdGFnZSA9IHRhcGUtPmZpcnN0X3N0YWdl
Ow0KIAkJCQkJcnEtPmN1cnJlbnRfbnJfc2VjdG9ycyA9IHJxLT5ucl9zZWN0
b3JzOw0KLQkJCQkJaWYgKHRhcGUtPndhaXRpbmcpDQorCQkJCQlpZiAodGFw
ZS0+d2FpdGluZykgew0KKwkJCQkJCXJxLT53YWl0aW5nID0gTlVMTDsNCiAJ
CQkJCQljb21wbGV0ZSh0YXBlLT53YWl0aW5nKTsNCisJCQkJCX0NCiAJCQkJ
fQ0KIAkJCX0NCiAJCX0gZWxzZSBpZiAocnEtPmZsYWdzID09IElERVRBUEVf
UkVBRF9SUSkgew0KIAkJCWlmIChlcnJvciA9PSBJREVUQVBFX0VSUk9SX0VP
RCkgew0KIAkJCQlzZXRfYml0KElERVRBUEVfUElQRUxJTkVfRVJST1IsICZ0
YXBlLT5mbGFncyk7DQotCQkJCWlkZXRhcGVfYWJvcnRfcGlwZWxpbmUoZHJp
dmUpOw0KKwkJCQlpZGV0YXBlX2Fib3J0X3BpcGVsaW5lKGRyaXZlLCBhY3Rp
dmVfc3RhZ2UpOw0KIAkJCX0NCiAJCX0NCiAJCWlmICh0YXBlLT5uZXh0X3N0
YWdlICE9IE5VTEwgJiYgIXRhcGUtPm9uc3RyZWFtX3dyaXRlX2Vycm9yKSB7
DQpAQCAtMTg3OSw3ICsxOTEzLDcgQEANCiAJaWRldGFwZV9pbml0X3BjKHBj
KTsJDQogCXBjLT5jWzBdID0gSURFVEFQRV9SRVFVRVNUX1NFTlNFX0NNRDsN
CiAJcGMtPmNbNF0gPSAyMDsNCi0JcGMtPnJlcXVlc3RfdHJhbnNmZXIgPSAx
ODsNCisJcGMtPnJlcXVlc3RfdHJhbnNmZXIgPSAyMDsNCiAJcGMtPmNhbGxi
YWNrID0gJmlkZXRhcGVfcmVxdWVzdF9zZW5zZV9jYWxsYmFjazsNCiB9DQog
DQpAQCAtMTk4MCw3ICsyMDE0LDcgQEANCiAJc3RhdHVzLmFsbCA9IEhXSUYo
ZHJpdmUpLT5JTkIoSURFX1NUQVRVU19SRUcpOw0KIA0KIAlpZiAodGVzdF9i
aXQoUENfRE1BX0lOX1BST0dSRVNTLCAmcGMtPmZsYWdzKSkgew0KLQkJaWYg
KEhXSUYoZHJpdmUpLT5pZGVfZG1hX2VuZChkcml2ZSkpIHsNCisJCWlmIChI
V0lGKGRyaXZlKS0+aWRlX2RtYV9lbmQoZHJpdmUpIHx8IHN0YXR1cy5iLmNo
ZWNrKSB7DQogCQkJLyoNCiAJCQkgKiBBIERNQSBlcnJvciBpcyBzb21ldGlt
ZXMgZXhwZWN0ZWQuIEZvciBleGFtcGxlLA0KIAkJCSAqIGlmIHRoZSB0YXBl
IGlzIGNyb3NzaW5nIGEgZmlsZW1hcmsgZHVyaW5nIGENCkBAIC0xOTkyLDgg
KzIwMjYsMTggQEANCiAJCQkgKiBhY3R1YWxseSB0cmFuc2ZlcnJlZCAod2Ug
Y2FuJ3QgcmVjZWl2ZSB0aGF0DQogCQkJICogaW5mb3JtYXRpb24gZnJvbSB0
aGUgRE1BIGVuZ2luZSBvbiBtb3N0IGNoaXBzZXRzKS4NCiAJCQkgKi8NCisN
CisJCQkvKg0KKwkJCSAqIE9uIHRoZSBjb250cmFyeSwgYSBETUEgZXJyb3Ig
aXMgbmV2ZXIgZXhwZWN0ZWQ7DQorCQkJICogaXQgdXN1YWxseSBpbmRpY2F0
ZXMgYSBoYXJkd2FyZSBlcnJvciBvciBhYm9ydC4NCisJCQkgKiBJZiB0aGUg
dGFwZSBjcm9zc2VzIGEgZmlsZW1hcmsgZHVyaW5nIGEgUkVBRA0KKwkJCSAq
IGNvbW1hbmQsIGl0IHdpbGwgaXNzdWUgYW4gaXJxIGFuZCBwb3NpdGlvbiBp
dHNlbGYNCisJCQkgKiBhZnRlciB0aGUgZmlsZW1hcmsgKG5vdCBiZWZvcmUp
LiBPbmx5IGEgcGFydGlhbA0KKwkJCSAqIGRhdGEgdHJhbnNmZXIgd2lsbCBv
Y2N1ciwgYnV0IG5vIERNQSBlcnJvci4NCisJCQkgKiAoQVMsIDE5IEFwciAy
MDAxKQ0KKwkJCSAqLw0KIAkJCXNldF9iaXQoUENfRE1BX0VSUk9SLCAmcGMt
PmZsYWdzKTsNCi0JCX0gZWxzZSBpZiAoIXN0YXR1cy5iLmNoZWNrKSB7DQor
CQl9IGVsc2Ugew0KIAkJCXBjLT5hY3R1YWxseV90cmFuc2ZlcnJlZCA9IHBj
LT5yZXF1ZXN0X3RyYW5zZmVyOw0KIAkJCWlkZXRhcGVfdXBkYXRlX2J1ZmZl
cnMocGMpOw0KIAkJfQ0KQEAgLTIwMjksNyArMjA3Myw3IEBADQogCQlpZiAo
c3RhdHVzLmIuY2hlY2sgfHwgdGVzdF9iaXQoUENfRE1BX0VSUk9SLCAmcGMt
PmZsYWdzKSkgewkvKiBFcnJvciBkZXRlY3RlZCAqLw0KICNpZiBJREVUQVBF
X0RFQlVHX0xPRw0KIAkJCWlmICh0YXBlLT5kZWJ1Z19sZXZlbCA+PSAxKQ0K
LQkJCQlwcmludGsoS0VSTl9JTkZPICJpZGUtdGFwZTogJXM6IEkvTyBlcnJv
ciwgIiwNCisJCQkJcHJpbnRrKEtFUk5fSU5GTyAiaWRlLXRhcGU6ICVzOiBJ
L08gZXJyb3JcbiIsDQogCQkJCQl0YXBlLT5uYW1lKTsNCiAjZW5kaWYgLyog
SURFVEFQRV9ERUJVR19MT0cgKi8NCiAJCQlpZiAocGMtPmNbMF0gPT0gSURF
VEFQRV9SRVFVRVNUX1NFTlNFX0NNRCkgew0KQEAgLTIxOTUsNiArMjIzOSwx
MCBAQA0KIAkJQlVHKCk7DQogCS8qIFNldCB0aGUgaW50ZXJydXB0IHJvdXRp
bmUgKi8NCiAJaWRlX3NldF9oYW5kbGVyKGRyaXZlLCAmaWRldGFwZV9wY19p
bnRyLCBJREVUQVBFX1dBSVRfQ01ELCBOVUxMKTsNCisjaWZkZWYgQ09ORklH
X0JMS19ERVZfSURFRE1BDQorCWlmICh0ZXN0X2JpdChQQ19ETUFfSU5fUFJP
R1JFU1MsICZwYy0+ZmxhZ3MpKQkJLyogQmVnaW4gRE1BLCBpZiBuZWNlc3Nh
cnkgKi8NCisJCSh2b2lkKSAoSFdJRihkcml2ZSktPmlkZV9kbWFfYmVnaW4o
ZHJpdmUpKTsNCisjZW5kaWYNCiAJLyogU2VuZCB0aGUgYWN0dWFsIHBhY2tl
dCAqLw0KIAlIV0lGKGRyaXZlKS0+YXRhcGlfb3V0cHV0X2J5dGVzKGRyaXZl
LCBwYy0+YywgMTIpOw0KIAlyZXR1cm4gaWRlX3N0YXJ0ZWQ7DQpAQCAtMjIy
Myw4ICsyMjcxLDcgQEANCiAJCS8qDQogCQkgKglXZSB3aWxsICJhYm9ydCIg
cmV0cnlpbmcgYSBwYWNrZXQgY29tbWFuZCBpbiBjYXNlDQogCQkgKglhIGxl
Z2l0aW1hdGUgZXJyb3IgY29kZSB3YXMgcmVjZWl2ZWQgKGNyb3NzaW5nIGEN
Ci0JCSAqCWZpbGVtYXJrLCBvciBETUEgZXJyb3IgaW4gdGhlIGVuZCBvZiBt
ZWRpYSwgZm9yDQotCQkgKglleGFtcGxlKS4NCisJCSAqCWZpbGVtYXJrLCBv
ciBlbmQgb2YgdGhlIG1lZGlhLCBmb3IgZXhhbXBsZSkuDQogCQkgKi8NCiAJ
CWlmICghdGVzdF9iaXQoUENfQUJPUlQsICZwYy0+ZmxhZ3MpKSB7DQogCQkJ
aWYgKCEocGMtPmNbMF0gPT0gSURFVEFQRV9URVNUX1VOSVRfUkVBRFlfQ01E
ICYmDQpAQCAtMjI0OSw3ICsyMjk2LDcgQEANCiAJfQ0KICNpZiBJREVUQVBF
X0RFQlVHX0xPRw0KIAlpZiAodGFwZS0+ZGVidWdfbGV2ZWwgPj0gMikNCi0J
CXByaW50ayhLRVJOX0lORk8gImlkZS10YXBlOiBSZXRyeSBudW1iZXIgLSAl
ZFxuIiwgcGMtPnJldHJpZXMpOw0KKwkJcHJpbnRrKEtFUk5fSU5GTyAiaWRl
LXRhcGU6IFJldHJ5IG51bWJlciAtICVkLCBjbWQgPSAlMDJYXG4iLCBwYy0+
cmV0cmllcywgcGMtPmNbMF0pOw0KICNlbmRpZiAvKiBJREVUQVBFX0RFQlVH
X0xPRyAqLw0KIA0KIAlwYy0+cmV0cmllcysrOw0KQEAgLTIyNzUsMTAgKzIz
MjIsOCBAQA0KIAlPVVRfQllURShiY291bnQuYi5oaWdoLCAgICAgSURFX0JD
T1VOVEhfUkVHKTsNCiAJT1VUX0JZVEUoYmNvdW50LmIubG93LCAgICAgIElE
RV9CQ09VTlRMX1JFRyk7DQogCU9VVF9CWVRFKGRyaXZlLT5zZWxlY3QuYWxs
LCBJREVfU0VMRUNUX1JFRyk7DQotCWlmIChkbWFfb2spIHsJCQkvKiBCZWdp
biBETUEsIGlmIG5lY2Vzc2FyeSAqLw0KKwlpZiAoZG1hX29rKQkJCS8qIFdp
bGwgYmVnaW4gRE1BIGxhdGVyICovDQogCQlzZXRfYml0KFBDX0RNQV9JTl9Q
Uk9HUkVTUywgJnBjLT5mbGFncyk7DQotCQkodm9pZCkgKEhXSUYoZHJpdmUp
LT5pZGVfZG1hX2JlZ2luKGRyaXZlKSk7DQotCX0NCiAJaWYgKHRlc3RfYml0
KElERVRBUEVfRFJRX0lOVEVSUlVQVCwgJnRhcGUtPmZsYWdzKSkgew0KIAkJ
aWYgKEhXR1JPVVAoZHJpdmUpLT5oYW5kbGVyICE9IE5VTEwpCS8qIHBhcmFu
b2lhIGNoZWNrICovDQogCQkJQlVHKCk7DQpAQCAtMzA2OSw3ICszMTE0LDcg
QEANCiAJdGFwZS0+d2FpdGluZyA9ICZ3YWl0Ow0KIAlzcGluX3VubG9jaygm
dGFwZS0+c3BpbmxvY2spOw0KIAl3YWl0X2Zvcl9jb21wbGV0aW9uKCZ3YWl0
KTsNCi0JcnEtPndhaXRpbmcgPSBOVUxMOw0KKwkvKiBUaGUgc3RhZ2UgYW5k
IGl0cyBzdHJ1Y3QgcmVxdWVzdCBoYXZlIGJlZW4gZGVhbGxvY2F0ZWQgKi8N
CiAJdGFwZS0+d2FpdGluZyA9IE5VTEw7DQogCXNwaW5fbG9ja19pcnEoJnRh
cGUtPnNwaW5sb2NrKTsNCiB9DQpAQCAtMzMzMywxMSArMzM3OCwxNSBAQA0K
IA0KIAlpZiAodGFwZS0+Y2hyZGV2X2RpcmVjdGlvbiAhPSBpZGV0YXBlX2Rp
cmVjdGlvbl9yZWFkKQ0KIAkJcmV0dXJuIDA7DQorCWNudCA9IHRhcGUtPm1l
cmdlX3N0YWdlX3NpemUgLyB0YXBlLT50YXBlX2Jsb2NrX3NpemU7DQorCWlm
ICh0ZXN0X2FuZF9jbGVhcl9iaXQoSURFVEFQRV9GSUxFTUFSSywgJnRhcGUt
PmZsYWdzKSkNCisJCSsrY250OwkJLyogRmlsZW1hcmtzIGNvdW50IGFzIDEg
c2VjdG9yICovDQogCXRhcGUtPm1lcmdlX3N0YWdlX3NpemUgPSAwOw0KIAlp
ZiAodGFwZS0+bWVyZ2Vfc3RhZ2UgIT0gTlVMTCkgew0KIAkJX19pZGV0YXBl
X2tmcmVlX3N0YWdlKHRhcGUtPm1lcmdlX3N0YWdlKTsNCiAJCXRhcGUtPm1l
cmdlX3N0YWdlID0gTlVMTDsNCiAJfQ0KKwljbGVhcl9iaXQoSURFVEFQRV9Q
SVBFTElORV9FUlJPUiwgJnRhcGUtPmZsYWdzKTsNCiAJdGFwZS0+Y2hyZGV2
X2RpcmVjdGlvbiA9IGlkZXRhcGVfZGlyZWN0aW9uX25vbmU7DQogCQ0KIAlp
ZiAodGFwZS0+Zmlyc3Rfc3RhZ2UgPT0gTlVMTCkNCkBAIC0zMzQ5LDkgKzMz
OTgsMTQgQEANCiAJCWlkZXRhcGVfd2FpdF9mb3JfcmVxdWVzdChkcml2ZSwg
dGFwZS0+YWN0aXZlX2RhdGFfcmVxdWVzdCk7DQogCXNwaW5fdW5sb2NrX2ly
cXJlc3RvcmUoJnRhcGUtPnNwaW5sb2NrLCBmbGFncyk7DQogDQotCWNudCA9
IHRhcGUtPm5yX3N0YWdlcyAtIHRhcGUtPm5yX3BlbmRpbmdfc3RhZ2VzOw0K
LQl3aGlsZSAodGFwZS0+Zmlyc3Rfc3RhZ2UgIT0gTlVMTCkNCisJd2hpbGUg
KHRhcGUtPmZpcnN0X3N0YWdlICE9IE5VTEwpIHsNCisJCXN0cnVjdCByZXF1
ZXN0ICpycV9wdHIgPSAmdGFwZS0+Zmlyc3Rfc3RhZ2UtPnJxOw0KKw0KKwkJ
Y250ICs9IHJxX3B0ci0+bnJfc2VjdG9ycyAtIHJxX3B0ci0+Y3VycmVudF9u
cl9zZWN0b3JzOyANCisJCWlmIChycV9wdHItPmVycm9ycyA9PSBJREVUQVBF
X0VSUk9SX0ZJTEVNQVJLKQ0KKwkJCSsrY250Ow0KIAkJaWRldGFwZV9yZW1v
dmVfc3RhZ2VfaGVhZChkcml2ZSk7DQorCX0NCiAJdGFwZS0+bnJfcGVuZGlu
Z19zdGFnZXMgPSAwOw0KIAl0YXBlLT5tYXhfc3RhZ2VzID0gdGFwZS0+bWlu
X3BpcGVsaW5lOw0KIAlyZXR1cm4gY250Ow0KQEAgLTM5NDYsNyArNDAwMCw3
IEBADQogCQkgKi8NCiAJCWJ5dGVzX3JlYWQgPSBpZGV0YXBlX3F1ZXVlX3J3
X3RhaWwoZHJpdmUsIElERVRBUEVfUkVBRF9SUSwgMCwgdGFwZS0+bWVyZ2Vf
c3RhZ2UtPmJpbyk7DQogCQlpZiAoYnl0ZXNfcmVhZCA8IDApIHsNCi0JCQlr
ZnJlZSh0YXBlLT5tZXJnZV9zdGFnZSk7DQorCQkJX19pZGV0YXBlX2tmcmVl
X3N0YWdlKHRhcGUtPm1lcmdlX3N0YWdlKTsNCiAJCQl0YXBlLT5tZXJnZV9z
dGFnZSA9IE5VTEw7DQogCQkJdGFwZS0+Y2hyZGV2X2RpcmVjdGlvbiA9IGlk
ZXRhcGVfZGlyZWN0aW9uX25vbmU7DQogCQkJcmV0dXJuIGJ5dGVzX3JlYWQ7
DQpAQCAtMzk1OSw3ICs0MDEzLDcgQEANCiAJcnEuc2VjdG9yID0gdGFwZS0+
Zmlyc3RfZnJhbWVfcG9zaXRpb247DQogCXJxLm5yX3NlY3RvcnMgPSBycS5j
dXJyZW50X25yX3NlY3RvcnMgPSBibG9ja3M7DQogCWlmICghdGVzdF9iaXQo
SURFVEFQRV9QSVBFTElORV9FUlJPUiwgJnRhcGUtPmZsYWdzKSAmJg0KLQkg
ICAgdGFwZS0+bnJfc3RhZ2VzIDw9IG1heF9zdGFnZXMpIHsNCisJICAgIHRh
cGUtPm5yX3N0YWdlcyA8IG1heF9zdGFnZXMpIHsNCiAJCW5ld19zdGFnZSA9
IGlkZXRhcGVfa21hbGxvY19zdGFnZSh0YXBlKTsNCiAJCXdoaWxlIChuZXdf
c3RhZ2UgIT0gTlVMTCkgew0KIAkJCW5ld19zdGFnZS0+cnEgPSBycTsNCkBA
IC00MDY5LDYgKzQxMjMsMTIgQEANCiAjZW5kaWYgLyogSURFVEFQRV9ERUJV
R19MT0cgKi8NCiANCiAJLyoNCisJICogSWYgd2UgYXJlIGF0IGEgZmlsZW1h
cmssIHJldHVybiBhIHJlYWQgbGVuZ3RoIG9mIDANCisJICovDQorCWlmICh0
ZXN0X2JpdChJREVUQVBFX0ZJTEVNQVJLLCAmdGFwZS0+ZmxhZ3MpKQ0KKwkJ
cmV0dXJuIDA7DQorDQorCS8qDQogCSAqIFdhaXQgZm9yIHRoZSBuZXh0IGxv
Z2ljYWwgYmxvY2sgdG8gYmUgYXZhaWxhYmxlIGF0IHRoZSBoZWFkDQogCSAq
IG9mIHRoZSBwaXBlbGluZQ0KIAkgKi8NCkBAIC00MDk3LDE0ICs0MTU3LDcg
QEANCiAJfQ0KIAlpZiAocnFfcHRyLT5lcnJvcnMgPT0gSURFVEFQRV9FUlJP
Ul9FT0QpDQogCQlyZXR1cm4gMDsNCi0JaWYgKHJxX3B0ci0+ZXJyb3JzID09
IElERVRBUEVfRVJST1JfRklMRU1BUkspIHsNCi0JCWlkZXRhcGVfc3dpdGNo
X2J1ZmZlcnModGFwZSwgdGFwZS0+Zmlyc3Rfc3RhZ2UpOw0KLQkJc2V0X2Jp
dChJREVUQVBFX0ZJTEVNQVJLLCAmdGFwZS0+ZmxhZ3MpOw0KLSNpZiBVU0Vf
SU9UUkFDRQ0KLQkJSU9fdHJhY2UoSU9fSURFVEFQRV9GSUZPLCB0YXBlLT5w
aXBlbGluZV9oZWFkLCB0YXBlLT5idWZmZXJfaGVhZCwgdGFwZS0+dGFwZV9o
ZWFkLCB0YXBlLT5taW5vcik7DQotI2VuZGlmDQotCQljYWxjdWxhdGVfc3Bl
ZWRzKGRyaXZlKTsNCi0JfSBlbHNlIHsNCisJZWxzZSB7DQogCQlpZGV0YXBl
X3N3aXRjaF9idWZmZXJzKHRhcGUsIHRhcGUtPmZpcnN0X3N0YWdlKTsNCiAJ
CWlmIChycV9wdHItPmVycm9ycyA9PSBJREVUQVBFX0VSUk9SX0dFTkVSQUwp
IHsNCiAjaWYgT05TVFJFQU1fREVCVUcNCkBAIC00MTEyLDcgKzQxNjUsOCBA
QA0KIAkJCQlwcmludGsoS0VSTl9JTkZPICJpZGUtdGFwZTogZXJyb3IgZGV0
ZWN0ZWQsIGJ5dGVzX3JlYWQgJWRcbiIsIGJ5dGVzX3JlYWQpOw0KICNlbmRp
Zg0KIAkJfQ0KLQkJY2xlYXJfYml0KElERVRBUEVfRklMRU1BUkssICZ0YXBl
LT5mbGFncyk7DQorCQlpZiAocnFfcHRyLT5lcnJvcnMgPT0gSURFVEFQRV9F
UlJPUl9GSUxFTUFSSykNCisJCQlzZXRfYml0KElERVRBUEVfRklMRU1BUkss
ICZ0YXBlLT5mbGFncyk7DQogCQlzcGluX2xvY2tfaXJxc2F2ZSgmdGFwZS0+
c3BpbmxvY2ssIGZsYWdzKTsNCiAJCWlkZXRhcGVfcmVtb3ZlX3N0YWdlX2hl
YWQoZHJpdmUpOw0KIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdGFwZS0+
c3BpbmxvY2ssIGZsYWdzKTsNCkBAIC00NDU1LDYgKzQ1MDksMTQgQEANCiAJ
CXRhcGUtPnJlc3RhcnRfc3BlZWRfY29udHJvbF9yZXEgPSAxOw0KIAkJcmV0
dXJuIHJldHZhbDsNCiAJfQ0KKyANCisJaWYgKG10X2NvdW50ID09IDApDQor
CQlyZXR1cm4gMDsNCisJaWYgKE1UQlNGID09IG10X29wIHx8IE1UQlNGTSA9
PSBtdF9vcCkgew0KKwkJaWYgKCF0YXBlLT5jYXBhYmlsaXRpZXMuc3ByZXYp
DQorCQkJcmV0dXJuIC1FSU87DQorCQltdF9jb3VudCA9IC0gbXRfY291bnQ7
DQorCX0NCiANCiAJaWYgKHRhcGUtPmNocmRldl9kaXJlY3Rpb24gPT0gaWRl
dGFwZV9kaXJlY3Rpb25fcmVhZCkgew0KIAkJLyoNCkBAIC00NDYyLDI4ICs0
NTI0LDM2IEBADQogCQkgKglmaWxlbWFya3MuDQogCQkgKi8NCiAJCXRhcGUt
Pm1lcmdlX3N0YWdlX3NpemUgPSAwOw0KLQkJY2xlYXJfYml0KElERVRBUEVf
RklMRU1BUkssICZ0YXBlLT5mbGFncyk7DQorCQlpZiAodGVzdF9hbmRfY2xl
YXJfYml0KElERVRBUEVfRklMRU1BUkssICZ0YXBlLT5mbGFncykpDQorCQkJ
Kytjb3VudDsNCiAJCXdoaWxlICh0YXBlLT5maXJzdF9zdGFnZSAhPSBOVUxM
KSB7DQotCQkJaWRldGFwZV93YWl0X2ZpcnN0X3N0YWdlKGRyaXZlKTsNCi0J
CQlpZiAodGFwZS0+Zmlyc3Rfc3RhZ2UtPnJxLmVycm9ycyA9PSBJREVUQVBF
X0VSUk9SX0ZJTEVNQVJLKQ0KLQkJCQljb3VudCsrOw0KIAkJCWlmIChjb3Vu
dCA9PSBtdF9jb3VudCkgew0KLQkJCQlzd2l0Y2ggKG10X29wKSB7DQotCQkJ
CQljYXNlIE1URlNGOg0KLQkJCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZ0YXBl
LT5zcGlubG9jaywgZmxhZ3MpOw0KLQkJCQkJCWlkZXRhcGVfcmVtb3ZlX3N0
YWdlX2hlYWQoZHJpdmUpOw0KLQkJCQkJCXNwaW5fdW5sb2NrX2lycXJlc3Rv
cmUoJnRhcGUtPnNwaW5sb2NrLCBmbGFncyk7DQotCQkJCQljYXNlIE1URlNG
TToNCi0JCQkJCQlyZXR1cm4gKDApOw0KLQkJCQkJZGVmYXVsdDoNCi0JCQkJ
CQlicmVhazsNCi0JCQkJfQ0KKwkJCQlpZiAobXRfb3AgPT0gTVRGU0ZNKQ0K
KwkJCQkJc2V0X2JpdChJREVUQVBFX0ZJTEVNQVJLLCAmdGFwZS0+ZmxhZ3Mp
Ow0KKwkJCQlyZXR1cm4gMDsNCiAJCQl9DQogCQkJc3Bpbl9sb2NrX2lycXNh
dmUoJnRhcGUtPnNwaW5sb2NrLCBmbGFncyk7DQorCQkJaWYgKHRhcGUtPmZp
cnN0X3N0YWdlID09IHRhcGUtPmFjdGl2ZV9zdGFnZSkgew0KKwkJCQkvKg0K
KwkJCQkgKglXZSBoYXZlIHJlYWNoZWQgdGhlIGFjdGl2ZSBzdGFnZSBpbiB0
aGUgcmVhZCBwaXBlbGluZS4NCisJCQkJICoJVGhlcmUgaXMgbm8gcG9pbnQg
aW4gYWxsb3dpbmcgdGhlIGRyaXZlIHRvIGNvbnRpbnVlDQorCQkJCSAqCXJl
YWRpbmcgYW55IGZhcnRoZXIsIHNvIHdlIHN0b3AgdGhlIHBpcGVsaW5lLg0K
KwkJCQkgKg0KKwkJCQkgKglUaGlzIHNlY3Rpb24gc2hvdWxkIGJlIG1vdmVk
IHRvIGEgc2VwYXJhdGUgc3Vicm91dGluZSwNCisJCQkJICoJYmVjYXVzZSBh
IHNpbWlsYXIgZnVuY3Rpb24gaXMgcGVyZm9ybWVkIGluDQorCQkJCSAqCV9f
aWRldGFwZV9kaXNjYXJkX3JlYWRfcGlwZWxpbmUoKSwgZm9yIGV4YW1wbGUu
DQorCQkJCSAqLw0KKwkJCQl0YXBlLT5uZXh0X3N0YWdlID0gTlVMTDsNCisJ
CQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdGFwZS0+c3BpbmxvY2ssIGZs
YWdzKTsNCisJCQkJaWRldGFwZV93YWl0X2ZpcnN0X3N0YWdlKGRyaXZlKTsN
CisJCQkJdGFwZS0+bmV4dF9zdGFnZSA9IHRhcGUtPmZpcnN0X3N0YWdlLT5u
ZXh0Ow0KKwkJCX0gZWxzZQ0KKwkJCQlzcGluX3VubG9ja19pcnFyZXN0b3Jl
KCZ0YXBlLT5zcGlubG9jaywgZmxhZ3MpOw0KKwkJCWlmICh0YXBlLT5maXJz
dF9zdGFnZS0+cnEuZXJyb3JzID09IElERVRBUEVfRVJST1JfRklMRU1BUksp
DQorCQkJCSsrY291bnQ7DQogCQkJaWRldGFwZV9yZW1vdmVfc3RhZ2VfaGVh
ZChkcml2ZSk7DQotCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdGFwZS0+
c3BpbmxvY2ssIGZsYWdzKTsNCiAJCX0NCi0JCWlkZXRhcGVfZGlzY2FyZF9y
ZWFkX3BpcGVsaW5lKGRyaXZlLCAxKTsNCisJCWlkZXRhcGVfZGlzY2FyZF9y
ZWFkX3BpcGVsaW5lKGRyaXZlLCAwKTsNCiAJfQ0KIA0KIAkvKg0KQEAgLTQ0
OTIsMjUgKzQ1NjIsMTcgQEANCiAJICovDQogCXN3aXRjaCAobXRfb3ApIHsN
CiAJCWNhc2UgTVRGU0Y6DQorCQljYXNlIE1UQlNGOg0KIAkJCWlkZXRhcGVf
Y3JlYXRlX3NwYWNlX2NtZCgmcGMsbXRfY291bnQtY291bnQsSURFVEFQRV9T
UEFDRV9PVkVSX0ZJTEVNQVJLKTsNCiAJCQlyZXR1cm4gKGlkZXRhcGVfcXVl
dWVfcGNfdGFpbChkcml2ZSwgJnBjKSk7DQogCQljYXNlIE1URlNGTToNCi0J
CQlpZiAoIXRhcGUtPmNhcGFiaWxpdGllcy5zcHJldikNCi0JCQkJcmV0dXJu
ICgtRUlPKTsNCi0JCQlyZXR2YWwgPSBpZGV0YXBlX3NwYWNlX292ZXJfZmls
ZW1hcmtzKGRyaXZlLCBNVEZTRiwgbXRfY291bnQtY291bnQpOw0KLQkJCWlm
IChyZXR2YWwpIHJldHVybiAocmV0dmFsKTsNCi0JCQlyZXR1cm4gKGlkZXRh
cGVfc3BhY2Vfb3Zlcl9maWxlbWFya3MoZHJpdmUsIE1UQlNGLCAxKSk7DQot
CQljYXNlIE1UQlNGOg0KLQkJCWlmICghdGFwZS0+Y2FwYWJpbGl0aWVzLnNw
cmV2KQ0KLQkJCQlyZXR1cm4gKC1FSU8pOw0KLQkJCWlkZXRhcGVfY3JlYXRl
X3NwYWNlX2NtZCgmcGMsLShtdF9jb3VudCtjb3VudCksSURFVEFQRV9TUEFD
RV9PVkVSX0ZJTEVNQVJLKTsNCi0JCQlyZXR1cm4gKGlkZXRhcGVfcXVldWVf
cGNfdGFpbChkcml2ZSwgJnBjKSk7DQogCQljYXNlIE1UQlNGTToNCiAJCQlp
ZiAoIXRhcGUtPmNhcGFiaWxpdGllcy5zcHJldikNCiAJCQkJcmV0dXJuICgt
RUlPKTsNCi0JCQlyZXR2YWwgPSBpZGV0YXBlX3NwYWNlX292ZXJfZmlsZW1h
cmtzKGRyaXZlLCBNVEJTRiwgbXRfY291bnQrY291bnQpOw0KKwkJCXJldHZh
bCA9IGlkZXRhcGVfc3BhY2Vfb3Zlcl9maWxlbWFya3MoZHJpdmUsIE1URlNG
LCBtdF9jb3VudC1jb3VudCk7DQogCQkJaWYgKHJldHZhbCkgcmV0dXJuIChy
ZXR2YWwpOw0KLQkJCXJldHVybiAoaWRldGFwZV9zcGFjZV9vdmVyX2ZpbGVt
YXJrcyhkcml2ZSwgTVRGU0YsIDEpKTsNCisJCQljb3VudCA9IChNVEJTRk0g
PT0gbXRfb3AgPyAxIDogLTEpOw0KKwkJCXJldHVybiAoaWRldGFwZV9zcGFj
ZV9vdmVyX2ZpbGVtYXJrcyhkcml2ZSwgTVRGU0YsIGNvdW50KSk7DQogCQlk
ZWZhdWx0Og0KIAkJCXByaW50ayhLRVJOX0VSUiAiaWRlLXRhcGU6IE1USU8g
b3BlcmF0aW9uICVkIG5vdCBzdXBwb3J0ZWRcbiIsbXRfb3ApOw0KIAkJCXJl
dHVybiAoLUVJTyk7DQpAQCAtNDg2MSw3ICs0OTIzLDcgQEANCiAJCSAqLw0K
IAkJcmV0dmFsID0gaWRldGFwZV9xdWV1ZV9yd190YWlsKGRyaXZlLCBJREVU
QVBFX1dSSVRFX1JRLCAwLCB0YXBlLT5tZXJnZV9zdGFnZS0+YmlvKTsNCiAJ
CWlmIChyZXR2YWwgPCAwKSB7DQotCQkJa2ZyZWUodGFwZS0+bWVyZ2Vfc3Rh
Z2UpOw0KKwkJCV9faWRldGFwZV9rZnJlZV9zdGFnZSh0YXBlLT5tZXJnZV9z
dGFnZSk7DQogCQkJdGFwZS0+bWVyZ2Vfc3RhZ2UgPSBOVUxMOw0KIAkJCXRh
cGUtPmNocmRldl9kaXJlY3Rpb24gPSBpZGV0YXBlX2RpcmVjdGlvbl9ub25l
Ow0KIAkJCXJldHVybiByZXR2YWw7DQpAQCAtNTQ0Nyw4ICs1NTA5LDEwIEBA
DQogCQlwcmludGsoS0VSTl9FUlIgImlkZS10YXBlOiAlczogZHJpdmUgbm90
IHJlYWR5XG4iLCB0YXBlLT5uYW1lKTsNCiAJCXJldHVybiAtRUJVU1k7DQog
CX0NCi0JaWRldGFwZV9yZWFkX3Bvc2l0aW9uKGRyaXZlKTsNCi0JY2xlYXJf
Yml0KElERVRBUEVfUElQRUxJTkVfRVJST1IsICZ0YXBlLT5mbGFncyk7DQor
CWlmICh0YXBlLT5vbnN0cmVhbSkNCisJCWlkZXRhcGVfcmVhZF9wb3NpdGlv
bihkcml2ZSk7DQorCWlmICh0YXBlLT5jaHJkZXZfZGlyZWN0aW9uICE9IGlk
ZXRhcGVfZGlyZWN0aW9uX3JlYWQpDQorCQljbGVhcl9iaXQoSURFVEFQRV9Q
SVBFTElORV9FUlJPUiwgJnRhcGUtPmZsYWdzKTsNCiANCiAJaWYgKHRhcGUt
PmNocmRldl9kaXJlY3Rpb24gPT0gaWRldGFwZV9kaXJlY3Rpb25fbm9uZSkg
ew0KIAkJaWYgKGlkZXRhcGVfY3JlYXRlX3ByZXZlbnRfY21kKGRyaXZlLCAm
cGMsIDEpKSB7DQpAQCAtNTUyMCwxMCArNTU4NCwxMSBAQA0KIAlpZiAobWlu
b3IgPCAxMjgpDQogCQkodm9pZCkgaWRldGFwZV9yZXdpbmRfdGFwZShkcml2
ZSk7DQogCWlmICh0YXBlLT5jaHJkZXZfZGlyZWN0aW9uID09IGlkZXRhcGVf
ZGlyZWN0aW9uX25vbmUpIHsNCi0JCWlmICh0YXBlLT5kb29yX2xvY2tlZCAh
PSBET09SX0VYUExJQ0lUTFlfTE9DS0VEKSB7DQotCQkJaWYgKGlkZXRhcGVf
Y3JlYXRlX3ByZXZlbnRfY21kKGRyaXZlLCAmcGMsIDApKQ0KKwkJaWYgKHRh
cGUtPmRvb3JfbG9ja2VkID09IERPT1JfTE9DS0VEKSB7DQorCQkJaWYgKGlk
ZXRhcGVfY3JlYXRlX3ByZXZlbnRfY21kKGRyaXZlLCAmcGMsIDApKSB7DQog
CQkJCWlmICghaWRldGFwZV9xdWV1ZV9wY190YWlsKGRyaXZlLCAmcGMpKQ0K
IAkJCQkJdGFwZS0+ZG9vcl9sb2NrZWQgPSBET09SX1VOTE9DS0VEOw0KKwkJ
CX0NCiAJCX0NCiAJfQ0KIAljbGVhcl9iaXQoSURFVEFQRV9CVVNZLCAmdGFw
ZS0+ZmxhZ3MpOw0KQEAgLTU1NTYsMzQgKzU2MjEsMzQgQEANCiAJcHJpbnRr
KEtFUk5fSU5GTyAiaWRlLXRhcGU6IER1bXBpbmcgQVRBUEkgSWRlbnRpZnkg
RGV2aWNlIHRhcGUgcGFyYW1ldGVyc1xuIik7DQogCXByaW50ayhLRVJOX0lO
Rk8gImlkZS10YXBlOiBQcm90b2NvbCBUeXBlOiAiKTsNCiAJc3dpdGNoIChn
Y3cucHJvdG9jb2wpIHsNCi0JCWNhc2UgMDogY2FzZSAxOiBwcmludGsoS0VS
Tl9JTkZPICJBVEFcbiIpO2JyZWFrOw0KLQkJY2FzZSAyOglwcmludGsoS0VS
Tl9JTkZPICJBVEFQSVxuIik7YnJlYWs7DQotCQljYXNlIDM6IHByaW50ayhL
RVJOX0lORk8gIlJlc2VydmVkIChVbmtub3duIHRvIGlkZS10YXBlKVxuIik7
YnJlYWs7DQorCQljYXNlIDA6IGNhc2UgMTogcHJpbnRrKCJBVEFcbiIpO2Jy
ZWFrOw0KKwkJY2FzZSAyOglwcmludGsoIkFUQVBJXG4iKTticmVhazsNCisJ
CWNhc2UgMzogcHJpbnRrKCJSZXNlcnZlZCAoVW5rbm93biB0byBpZGUtdGFw
ZSlcbiIpO2JyZWFrOw0KIAl9DQogCXByaW50ayhLRVJOX0lORk8gImlkZS10
YXBlOiBEZXZpY2UgVHlwZTogJXggLSAiLGdjdy5kZXZpY2VfdHlwZSk7CQ0K
IAlzd2l0Y2ggKGdjdy5kZXZpY2VfdHlwZSkgew0KLQkJY2FzZSAwOiBwcmlu
dGsoS0VSTl9JTkZPICJEaXJlY3QtYWNjZXNzIERldmljZVxuIik7YnJlYWs7
DQotCQljYXNlIDE6IHByaW50ayhLRVJOX0lORk8gIlN0cmVhbWluZyBUYXBl
IERldmljZVxuIik7YnJlYWs7DQotCQljYXNlIDI6IGNhc2UgMzogY2FzZSA0
OiBwcmludGsoS0VSTl9JTkZPICJSZXNlcnZlZFxuIik7YnJlYWs7DQotCQlj
YXNlIDU6IHByaW50ayhLRVJOX0lORk8gIkNELVJPTSBEZXZpY2VcbiIpO2Jy
ZWFrOw0KLQkJY2FzZSA2OiBwcmludGsoS0VSTl9JTkZPICJSZXNlcnZlZFxu
Iik7DQotCQljYXNlIDc6IHByaW50ayhLRVJOX0lORk8gIk9wdGljYWwgbWVt
b3J5IERldmljZVxuIik7YnJlYWs7DQotCQljYXNlIDB4MWY6IHByaW50ayhL
RVJOX0lORk8gIlVua25vd24gb3Igbm8gRGV2aWNlIHR5cGVcbiIpO2JyZWFr
Ow0KLQkJZGVmYXVsdDogcHJpbnRrKEtFUk5fSU5GTyAiUmVzZXJ2ZWRcbiIp
Ow0KKwkJY2FzZSAwOiBwcmludGsoIkRpcmVjdC1hY2Nlc3MgRGV2aWNlXG4i
KTticmVhazsNCisJCWNhc2UgMTogcHJpbnRrKCJTdHJlYW1pbmcgVGFwZSBE
ZXZpY2VcbiIpO2JyZWFrOw0KKwkJY2FzZSAyOiBjYXNlIDM6IGNhc2UgNDog
cHJpbnRrKCJSZXNlcnZlZFxuIik7YnJlYWs7DQorCQljYXNlIDU6IHByaW50
aygiQ0QtUk9NIERldmljZVxuIik7YnJlYWs7DQorCQljYXNlIDY6IHByaW50
aygiUmVzZXJ2ZWRcbiIpOw0KKwkJY2FzZSA3OiBwcmludGsoIk9wdGljYWwg
bWVtb3J5IERldmljZVxuIik7YnJlYWs7DQorCQljYXNlIDB4MWY6IHByaW50
aygiVW5rbm93biBvciBubyBEZXZpY2UgdHlwZVxuIik7YnJlYWs7DQorCQlk
ZWZhdWx0OiBwcmludGsoIlJlc2VydmVkXG4iKTsNCiAJfQ0KIAlwcmludGso
S0VSTl9JTkZPICJpZGUtdGFwZTogUmVtb3ZhYmxlOiAlcyIsZ2N3LnJlbW92
YWJsZSA/ICJZZXNcbiI6Ik5vXG4iKTsJDQogCXByaW50ayhLRVJOX0lORk8g
ImlkZS10YXBlOiBDb21tYW5kIFBhY2tldCBEUlEgVHlwZTogIik7DQogCXN3
aXRjaCAoZ2N3LmRycV90eXBlKSB7DQotCQljYXNlIDA6IHByaW50ayhLRVJO
X0lORk8gIk1pY3JvcHJvY2Vzc29yIERSUVxuIik7YnJlYWs7DQotCQljYXNl
IDE6IHByaW50ayhLRVJOX0lORk8gIkludGVycnVwdCBEUlFcbiIpO2JyZWFr
Ow0KLQkJY2FzZSAyOiBwcmludGsoS0VSTl9JTkZPICJBY2NlbGVyYXRlZCBE
UlFcbiIpO2JyZWFrOw0KLQkJY2FzZSAzOiBwcmludGsoS0VSTl9JTkZPICJS
ZXNlcnZlZFxuIik7YnJlYWs7DQorCQljYXNlIDA6IHByaW50aygiTWljcm9w
cm9jZXNzb3IgRFJRXG4iKTticmVhazsNCisJCWNhc2UgMTogcHJpbnRrKCJJ
bnRlcnJ1cHQgRFJRXG4iKTticmVhazsNCisJCWNhc2UgMjogcHJpbnRrKCJB
Y2NlbGVyYXRlZCBEUlFcbiIpO2JyZWFrOw0KKwkJY2FzZSAzOiBwcmludGso
IlJlc2VydmVkXG4iKTticmVhazsNCiAJfQ0KIAlwcmludGsoS0VSTl9JTkZP
ICJpZGUtdGFwZTogQ29tbWFuZCBQYWNrZXQgU2l6ZTogIik7DQogCXN3aXRj
aCAoZ2N3LnBhY2tldF9zaXplKSB7DQotCQljYXNlIDA6IHByaW50ayhLRVJO
X0lORk8gIjEyIGJ5dGVzXG4iKTticmVhazsNCi0JCWNhc2UgMTogcHJpbnRr
KEtFUk5fSU5GTyAiMTYgYnl0ZXNcbiIpO2JyZWFrOw0KLQkJZGVmYXVsdDog
cHJpbnRrKEtFUk5fSU5GTyAiUmVzZXJ2ZWRcbiIpO2JyZWFrOw0KKwkJY2Fz
ZSAwOiBwcmludGsoIjEyIGJ5dGVzXG4iKTticmVhazsNCisJCWNhc2UgMTog
cHJpbnRrKCIxNiBieXRlc1xuIik7YnJlYWs7DQorCQlkZWZhdWx0OiBwcmlu
dGsoIlJlc2VydmVkXG4iKTticmVhazsNCiAJfQ0KIAlwcmludGsoS0VSTl9J
TkZPICJpZGUtdGFwZTogTW9kZWw6ICUuNDBzXG4iLGlkLT5tb2RlbCk7DQog
CXByaW50ayhLRVJOX0lORk8gImlkZS10YXBlOiBGaXJtd2FyZSBSZXZpc2lv
bjogJS44c1xuIixpZC0+ZndfcmV2KTsNCkBAIC01NTk5LDQ1ICs1NjY0LDQ1
IEBADQogCXByaW50ayhLRVJOX0lORk8gImlkZS10YXBlOiBTaW5nbGUgV29y
ZCBETUEgc3VwcG9ydGVkIG1vZGVzOiAiKTsNCiAJZm9yIChpPTAsbWFzaz0x
O2k8ODtpKyssbWFzaz1tYXNrIDw8IDEpIHsNCiAJCWlmIChpZC0+ZG1hXzF3
b3JkICYgbWFzaykNCi0JCQlwcmludGsoS0VSTl9JTkZPICIlZCAiLGkpOw0K
KwkJCXByaW50aygiJWQgIixpKTsNCiAJCWlmIChpZC0+ZG1hXzF3b3JkICYg
KG1hc2sgPDwgOCkpDQotCQkJcHJpbnRrKEtFUk5fSU5GTyAiKGFjdGl2ZSkg
Iik7DQorCQkJcHJpbnRrKCIoYWN0aXZlKSAiKTsNCiAJfQ0KLQlwcmludGso
S0VSTl9JTkZPICJcbiIpOw0KKwlwcmludGsoIlxuIik7DQogCXByaW50ayhL
RVJOX0lORk8gImlkZS10YXBlOiBNdWx0aSBXb3JkIERNQSBzdXBwb3J0ZWQg
bW9kZXM6ICIpOw0KIAlmb3IgKGk9MCxtYXNrPTE7aTw4O2krKyxtYXNrPW1h
c2sgPDwgMSkgew0KIAkJaWYgKGlkLT5kbWFfbXdvcmQgJiBtYXNrKQ0KLQkJ
CXByaW50ayhLRVJOX0lORk8gIiVkICIsaSk7DQorCQkJcHJpbnRrKCIlZCAi
LGkpOw0KIAkJaWYgKGlkLT5kbWFfbXdvcmQgJiAobWFzayA8PCA4KSkNCi0J
CQlwcmludGsoS0VSTl9JTkZPICIoYWN0aXZlKSAiKTsNCisJCQlwcmludGso
IihhY3RpdmUpICIpOw0KIAl9DQotCXByaW50ayhLRVJOX0lORk8gIlxuIik7
DQorCXByaW50aygiXG4iKTsNCiAJaWYgKGlkLT5maWVsZF92YWxpZCAmIDB4
MDAwMikgew0KIAkJcHJpbnRrKEtFUk5fSU5GTyAiaWRlLXRhcGU6IEVuaGFu
Y2VkIFBJTyBNb2RlczogJXNcbiIsDQogCQkJaWQtPmVpZGVfcGlvX21vZGVz
ICYgMSA/ICJNb2RlIDMiOiJOb25lIik7DQogCQlwcmludGsoS0VSTl9JTkZP
ICJpZGUtdGFwZTogTWluaW11bSBNdWx0aS13b3JkIERNQSBjeWNsZSBwZXIg
d29yZDogIik7DQogCQlpZiAoaWQtPmVpZGVfZG1hX21pbiA9PSAwKQ0KLQkJ
CXByaW50ayhLRVJOX0lORk8gIk5vdCBzdXBwb3J0ZWRcbiIpOw0KKwkJCXBy
aW50aygiTm90IHN1cHBvcnRlZFxuIik7DQogCQllbHNlDQotCQkJcHJpbnRr
KEtFUk5fSU5GTyAiJWQgbnNcbiIsaWQtPmVpZGVfZG1hX21pbik7DQorCQkJ
cHJpbnRrKCIlZCBuc1xuIixpZC0+ZWlkZV9kbWFfbWluKTsNCiANCiAJCXBy
aW50ayhLRVJOX0lORk8gImlkZS10YXBlOiBNYW51ZmFjdHVyZXJcJ3MgUmVj
b21tZW5kZWQgTXVsdGktd29yZCBjeWNsZTogIik7DQogCQlpZiAoaWQtPmVp
ZGVfZG1hX3RpbWUgPT0gMCkNCi0JCQlwcmludGsoS0VSTl9JTkZPICJOb3Qg
c3VwcG9ydGVkXG4iKTsNCisJCQlwcmludGsoIk5vdCBzdXBwb3J0ZWRcbiIp
Ow0KIAkJZWxzZQ0KLQkJCXByaW50ayhLRVJOX0lORk8gIiVkIG5zXG4iLGlk
LT5laWRlX2RtYV90aW1lKTsNCisJCQlwcmludGsoIiVkIG5zXG4iLGlkLT5l
aWRlX2RtYV90aW1lKTsNCiANCiAJCXByaW50ayhLRVJOX0lORk8gImlkZS10
YXBlOiBNaW5pbXVtIFBJTyBjeWNsZSB3aXRob3V0IElPUkRZOiAiKTsNCiAJ
CWlmIChpZC0+ZWlkZV9waW8gPT0gMCkNCi0JCQlwcmludGsoS0VSTl9JTkZP
ICJOb3Qgc3VwcG9ydGVkXG4iKTsNCisJCQlwcmludGsoIk5vdCBzdXBwb3J0
ZWRcbiIpOw0KIAkJZWxzZQ0KLQkJCXByaW50ayhLRVJOX0lORk8gIiVkIG5z
XG4iLGlkLT5laWRlX3Bpbyk7DQorCQkJcHJpbnRrKCIlZCBuc1xuIixpZC0+
ZWlkZV9waW8pOw0KIA0KIAkJcHJpbnRrKEtFUk5fSU5GTyAiaWRlLXRhcGU6
IE1pbmltdW0gUElPIGN5Y2xlIHdpdGggSU9SRFk6ICIpOw0KIAkJaWYgKGlk
LT5laWRlX3Bpb19pb3JkeSA9PSAwKQ0KLQkJCXByaW50ayhLRVJOX0lORk8g
Ik5vdCBzdXBwb3J0ZWRcbiIpOw0KKwkJCXByaW50aygiTm90IHN1cHBvcnRl
ZFxuIik7DQogCQllbHNlDQotCQkJcHJpbnRrKEtFUk5fSU5GTyAiJWQgbnNc
biIsaWQtPmVpZGVfcGlvX2lvcmR5KTsNCisJCQlwcmludGsoIiVkIG5zXG4i
LGlkLT5laWRlX3Bpb19pb3JkeSk7DQogCQkNCiAJfSBlbHNlDQogCQlwcmlu
dGsoS0VSTl9JTkZPICJpZGUtdGFwZTogQWNjb3JkaW5nIHRvIHRoZSBkZXZp
Y2UsIGZpZWxkcyA2NC03MCBhcmUgbm90IHZhbGlkLlxuIik7DQpAQCAtNTk0
Niw5ICs2MDExLDkgQEANCiAgKgkJCWRyaXZlCXNldHRpbmcgbmFtZQlyZWFk
L3dyaXRlCWlvY3RsCWlvY3RsCQlkYXRhIHR5cGUJbWluCQkJbWF4CQkJbXVs
X2ZhY3RvcgkJCWRpdl9mYWN0b3IJCQlkYXRhIHBvaW50ZXIJCQkJc2V0IGZ1
bmN0aW9uDQogICovDQogCWlkZV9hZGRfc2V0dGluZyhkcml2ZSwJImJ1ZmZl
ciIsCVNFVFRJTkdfUkVBRCwJLTEsCS0xLAkJVFlQRV9TSE9SVCwJMCwJCQkw
eGZmZmYsCQkJMSwJCQkJMiwJCQkJJnRhcGUtPmNhcGFiaWxpdGllcy5idWZm
ZXJfc2l6ZSwJTlVMTCk7DQotCWlkZV9hZGRfc2V0dGluZyhkcml2ZSwJInBp
cGVsaW5lX21pbiIsCVNFVFRJTkdfUlcsCS0xLAktMSwJCVRZUEVfSU5ULAky
LAkJCTB4ZmZmZiwJCQl0YXBlLT5zdGFnZV9zaXplIC8gMTAyNCwJMSwJCQkJ
JnRhcGUtPm1pbl9waXBlbGluZSwJCQlOVUxMKTsNCi0JaWRlX2FkZF9zZXR0
aW5nKGRyaXZlLAkicGlwZWxpbmUiLAlTRVRUSU5HX1JXLAktMSwJLTEsCQlU
WVBFX0lOVCwJMiwJCQkweGZmZmYsCQkJdGFwZS0+c3RhZ2Vfc2l6ZSAvIDEw
MjQsCTEsCQkJCSZ0YXBlLT5tYXhfc3RhZ2VzLAkJCU5VTEwpOw0KLQlpZGVf
YWRkX3NldHRpbmcoZHJpdmUsCSJwaXBlbGluZV9tYXgiLAlTRVRUSU5HX1JX
LAktMSwJLTEsCQlUWVBFX0lOVCwJMiwJCQkweGZmZmYsCQkJdGFwZS0+c3Rh
Z2Vfc2l6ZSAvIDEwMjQsCTEsCQkJCSZ0YXBlLT5tYXhfcGlwZWxpbmUsCQkJ
TlVMTCk7DQorCWlkZV9hZGRfc2V0dGluZyhkcml2ZSwJInBpcGVsaW5lX21p
biIsCVNFVFRJTkdfUlcsCS0xLAktMSwJCVRZUEVfSU5ULAkxLAkJCTB4ZmZm
ZiwJCQl0YXBlLT5zdGFnZV9zaXplIC8gMTAyNCwJMSwJCQkJJnRhcGUtPm1p
bl9waXBlbGluZSwJCQlOVUxMKTsNCisJaWRlX2FkZF9zZXR0aW5nKGRyaXZl
LAkicGlwZWxpbmUiLAlTRVRUSU5HX1JXLAktMSwJLTEsCQlUWVBFX0lOVCwJ
MSwJCQkweGZmZmYsCQkJdGFwZS0+c3RhZ2Vfc2l6ZSAvIDEwMjQsCTEsCQkJ
CSZ0YXBlLT5tYXhfc3RhZ2VzLAkJCU5VTEwpOw0KKwlpZGVfYWRkX3NldHRp
bmcoZHJpdmUsCSJwaXBlbGluZV9tYXgiLAlTRVRUSU5HX1JXLAktMSwJLTEs
CQlUWVBFX0lOVCwJMSwJCQkweGZmZmYsCQkJdGFwZS0+c3RhZ2Vfc2l6ZSAv
IDEwMjQsCTEsCQkJCSZ0YXBlLT5tYXhfcGlwZWxpbmUsCQkJTlVMTCk7DQog
CWlkZV9hZGRfc2V0dGluZyhkcml2ZSwJInBpcGVsaW5lX3VzZWQiLFNFVFRJ
TkdfUkVBRCwJLTEsCS0xLAkJVFlQRV9JTlQsCTAsCQkJMHhmZmZmLAkJCXRh
cGUtPnN0YWdlX3NpemUgLyAxMDI0LAkxLAkJCQkmdGFwZS0+bnJfc3RhZ2Vz
LAkJCU5VTEwpOw0KIAlpZGVfYWRkX3NldHRpbmcoZHJpdmUsCSJwaXBlbGlu
ZV9wZW5kaW5nIixTRVRUSU5HX1JFQUQsLTEsCS0xLAkJVFlQRV9JTlQsCTAs
CQkJMHhmZmZmLAkJCXRhcGUtPnN0YWdlX3NpemUgLyAxMDI0LAkxLAkJCQkm
dGFwZS0+bnJfcGVuZGluZ19zdGFnZXMsCQlOVUxMKTsNCiAJaWRlX2FkZF9z
ZXR0aW5nKGRyaXZlLAkic3BlZWQiLAlTRVRUSU5HX1JFQUQsCS0xLAktMSwJ
CVRZUEVfU0hPUlQsCTAsCQkJMHhmZmZmLAkJCTEsCQkJCTEsCQkJCSZ0YXBl
LT5jYXBhYmlsaXRpZXMuc3BlZWQsCQlOVUxMKTsNCkBAIC02MDYzLDggKzYx
MjgsMTEgQEANCiAJc2lfbWVtaW5mbygmc2kpOw0KIAlpZiAodGFwZS0+bWF4
X3N0YWdlcyAqIHRhcGUtPnN0YWdlX3NpemUgPiBzaS50b3RhbHJhbSAqIHNp
Lm1lbV91bml0IC8gMTApDQogCQl0YXBlLT5tYXhfc3RhZ2VzID0gc2kudG90
YWxyYW0gKiBzaS5tZW1fdW5pdCAvICgxMCAqIHRhcGUtPnN0YWdlX3NpemUp
Ow0KLQl0YXBlLT5taW5fcGlwZWxpbmUgPSB0YXBlLT5tYXhfc3RhZ2VzOw0K
LQl0YXBlLT5tYXhfcGlwZWxpbmUgPSB0YXBlLT5tYXhfc3RhZ2VzICogMjsN
CisJdGFwZS0+bWF4X3N0YWdlcyAgID0gbWluKHRhcGUtPm1heF9zdGFnZXMs
IElERVRBUEVfTUFYX1BJUEVMSU5FX1NUQUdFUyk7DQorCXRhcGUtPm1pbl9w
aXBlbGluZSA9IG1pbih0YXBlLT5tYXhfc3RhZ2VzLCBJREVUQVBFX01JTl9Q
SVBFTElORV9TVEFHRVMpOw0KKwl0YXBlLT5tYXhfcGlwZWxpbmUgPSBtaW4o
dGFwZS0+bWF4X3N0YWdlcyAqIDIsIElERVRBUEVfTUFYX1BJUEVMSU5FX1NU
QUdFUyk7DQorCWlmICh0YXBlLT5tYXhfc3RhZ2VzID09IDApDQorCQl0YXBl
LT5tYXhfc3RhZ2VzID0gdGFwZS0+bWluX3BpcGVsaW5lID0gdGFwZS0+bWF4
X3BpcGVsaW5lID0gMTsNCiANCiAJdDEgPSAodGFwZS0+c3RhZ2Vfc2l6ZSAq
IEhaKSAvIChzcGVlZCAqIDEwMDApOw0KIAl0bWlkID0gKHRhcGUtPmNhcGFi
aWxpdGllcy5idWZmZXJfc2l6ZSAqIDMyICogSFopIC8gKHNwZWVkICogMTI1
KTsNCg==
---2084555674-369813718-1041265712=:1848--
-
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/