Re: Patch for ide-tape driver

Alan Stern (stern@rowland.harvard.edu)
Tue, 10 Dec 2002 16:15:28 -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-1839264800-1039554928=:11565
Content-Type: TEXT/PLAIN; charset=US-ASCII

On 10 Dec 2002, Alan Cox wrote:

> On Mon, 2002-12-09 at 20:03, Alan Stern wrote:
> > Attached are patch files for both 2.4.20 and 2.5.50. Please apply them
> > when you have a chance.
>
> 2.4.21pre1 has updated IDE core code so it probably wants a bit of a
> resync before it can go in. The 2.5.50 one is matching the 2.4.21pre1
> IDE core so it shouldnt be too bad.

All right. I cloned Marcelo's 2.4 tree from bkbits.net this morning, and
sure enough, there are numerous changes with respect to the distribution
version of 2.4.20. I have updated my patch for the ide-tape driver
accordingly and attached it. Please don't tell me that yet more changes
have been made in the meantime -- it's very difficult to hit a moving
target! :-)

So far as I am aware, there have not been any changes to the 2.5.50
version of the driver, so the patch file I submitted earlier should still
apply.

Alan Stern

P.S.: It is a considerable nuisance having to clone an entire kernel tree
just to get the current version of one file. Can anyone tell me if there
is a quicker, less bandwidth-intensive way of accomplishing the same
thing?

---2084555674-1839264800-1039554928=:11565
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ide-tape.c.patch-2.4.21"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.33L2.0212101615280.11565@ida.rowland.org>
Content-Description: Patch for 2.4.21 version of ide-tape.c
Content-Disposition: attachment; filename="ide-tape.c.patch-2.4.21"

LS0tIGxpbnV4L2RyaXZlcnMvaWRlL2lkZS10YXBlLmMub3JpZwlUdWUgRGVj
IDEwIDExOjE1OjMwIDIwMDINCisrKyBsaW51eC9kcml2ZXJzL2lkZS9pZGUt
dGFwZS5jCVR1ZSBEZWMgMTAgMTU6Mzc6NTEgMjAwMg0KQEAgLTEsNSArMSw1
IEBADQogLyoNCi0gKiBsaW51eC9kcml2ZXJzL2lkZS9pZGUtdGFwZS5jCQlW
ZXJzaW9uIDEuMTdhCUphbiwgMjAwMQ0KKyAqIGxpbnV4L2RyaXZlcnMvaWRl
L2lkZS10YXBlLmMJCVZlcnNpb24gMS4xN2IJRGVjLCAyMDAyDQogICoNCiAg
KiBDb3B5cmlnaHQgKEMpIDE5OTUgLSAxOTk5IEdhZGkgT3htYW4gPGdhZGlv
QG5ldHZpc2lvbi5uZXQuaWw+DQogICoNCkBAIC0yOTEsNiArMjkxLDI4IEBA
DQogICogVmVyIDEuMTdhIEFwciAyMDAxIFdpbGxlbSBSaWVkZSBvc3N0QHJp
ZWRlLm9yZw0KICAqIAkJCS0gR2V0IGRyaXZlJ3MgYWN0dWFsIGJsb2NrIHNp
emUgZnJvbSBtb2RlIHNlbnNlIGJsb2NrIGRlc2NyaXB0b3INCiAgKiAJCQkt
IExpbWl0IHNpemUgb2YgcGlwZWxpbmUNCisgKiBWZXIgMS4xN2IgRGVjIDIw
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
ZHVsZS5oPg0KQEAgLTU3Niw5ICs1OTgsMTAgQEANCiAgKgl3aGVuZXZlciB3
ZSBzZW5zZSB0aGF0IHRoZSBwaXBlbGluZSBpcyBlbXB0eSwgdW50aWwgd2Ug
cmVhY2gNCiAgKgl0aGUgb3B0aW11bSB2YWx1ZSBvciB1bnRpbCB3ZSByZWFj
aCBNQVguDQogICoNCi0gKglTZXR0aW5nIHRoZSBmb2xsb3dpbmcgcGFyYW1l
dGVyIHRvIDAgd2lsbCBkaXNhYmxlIHRoZSBwaXBlbGluZWQgbW9kZS4NCisg
KglTZXR0aW5nIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyIHRvIDAgaXMgaWxs
ZWdhbDogdGhlIHBpcGVsaW5lZCBtb2RlDQorICoJY2Fubm90IGJlIGRpc2Fi
bGVkIChjYWxjdWxhdGVfc3BlZWRzKCkgZGl2aWRlcyBieSB0YXBlLT5tYXhf
c3RhZ2VzLikNCiAgKi8NCi0jZGVmaW5lIElERVRBUEVfTUlOX1BJUEVMSU5F
X1NUQUdFUwkyMDANCisjZGVmaW5lIElERVRBUEVfTUlOX1BJUEVMSU5FX1NU
QUdFUwkgIDENCiAjZGVmaW5lIElERVRBUEVfTUFYX1BJUEVMSU5FX1NUQUdF
Uwk0MDANCiAjZGVmaW5lIElERVRBUEVfSU5DUkVBU0VfU1RBR0VTX1JBVEUJ
IDIwDQogDQpAQCAtNjAwLDggKzYyMyw4IEBADQogICoJaXMgdmVyaWZpZWQg
dG8gYmUgc3RhYmxlIGVub3VnaC4gVGhpcyB3aWxsIG1ha2UgaXQgbXVjaCBt
b3JlDQogICoJZXN0aGV0aWMuDQogICovDQotI2RlZmluZSBJREVUQVBFX0RF
QlVHX0lORk8JCTENCi0jZGVmaW5lIElERVRBUEVfREVCVUdfTE9HCQkxDQor
I2RlZmluZSBJREVUQVBFX0RFQlVHX0lORk8JCTANCisjZGVmaW5lIElERVRB
UEVfREVCVUdfTE9HCQkwDQogI2RlZmluZSBJREVUQVBFX0RFQlVHX0xPR19W
RVJCT1NFCTANCiAjZGVmaW5lIElERVRBUEVfREVCVUdfQlVHUwkJMQ0KIA0K
QEAgLTE2OTksMjUgKzE3MjIsNiBAQA0KIAl9DQogfQ0KIA0KLXN0YXRpYyB2
b2lkIGlkZXRhcGVfYWJvcnRfcGlwZWxpbmUgKGlkZV9kcml2ZV90ICpkcml2
ZSkNCi17DQotCWlkZXRhcGVfdGFwZV90ICp0YXBlID0gZHJpdmUtPmRyaXZl
cl9kYXRhOw0KLQlpZGV0YXBlX3N0YWdlX3QgKnN0YWdlID0gdGFwZS0+bmV4
dF9zdGFnZTsNCi0NCi0jaWYgSURFVEFQRV9ERUJVR19MT0cNCi0JaWYgKHRh
cGUtPmRlYnVnX2xldmVsID49IDQpDQotCQlwcmludGsoS0VSTl9JTkZPICJp
ZGUtdGFwZTogJXM6ICVzIGNhbGxlZFxuIiwNCi0JCQl0YXBlLT5uYW1lLCBf
X0ZVTkNUSU9OX18pOw0KLSNlbmRpZg0KLQl3aGlsZSAoc3RhZ2UpIHsNCi0J
CWlmIChzdGFnZS0+cnEuY21kID09IElERVRBUEVfV1JJVEVfUlEpDQotCQkJ
c3RhZ2UtPnJxLmNtZCA9IElERVRBUEVfQUJPUlRFRF9XUklURV9SUTsNCi0J
CWVsc2UgaWYgKHN0YWdlLT5ycS5jbWQgPT0gSURFVEFQRV9SRUFEX1JRKQ0K
LQkJCXN0YWdlLT5ycS5jbWQgPSBJREVUQVBFX0FCT1JURURfUkVBRF9SUTsN
Ci0JCXN0YWdlID0gc3RhZ2UtPm5leHQ7DQotCX0NCi19DQotDQogLyoNCiAg
KglpZGV0YXBlX2FjdGl2ZV9uZXh0X3N0YWdlIHdpbGwgZGVjbGFyZSB0aGUg
bmV4dCBzdGFnZSBhcyAiYWN0aXZlIi4NCiAgKi8NCkBAIC0xNzYzLDcgKzE3
NjcsNyBAQA0KIAkJcHJpbnRrIChLRVJOX0lORk8gImlkZS10YXBlOiBSZWFj
aGVkICVzXG4iLCBfX0ZVTkNUSU9OX18pOw0KICNlbmRpZiAvKiBJREVUQVBF
X0RFQlVHX0xPRyAqLw0KIA0KLQl0YXBlLT5tYXhfc3RhZ2VzICs9IGluY3Jl
YXNlOw0KKwl0YXBlLT5tYXhfc3RhZ2VzICs9IElERV9NQVgoaW5jcmVhc2Us
IDEpOw0KIAl0YXBlLT5tYXhfc3RhZ2VzID0gSURFX01BWCh0YXBlLT5tYXhf
c3RhZ2VzLCB0YXBlLT5taW5fcGlwZWxpbmUpOw0KIAl0YXBlLT5tYXhfc3Rh
Z2VzID0gSURFX01JTih0YXBlLT5tYXhfc3RhZ2VzLCB0YXBlLT5tYXhfcGlw
ZWxpbmUpOw0KIH0NCkBAIC0xODM5LDYgKzE4NDMsMzAgQEANCiAJfQ0KIH0N
CiANCitzdGF0aWMgdm9pZCBpZGV0YXBlX2Fib3J0X3BpcGVsaW5lIChpZGVf
ZHJpdmVfdCAqZHJpdmUsIGlkZXRhcGVfc3RhZ2VfdCAqbGFzdF9zdGFnZSkN
Cit7DQorCWlkZXRhcGVfdGFwZV90ICp0YXBlID0gZHJpdmUtPmRyaXZlcl9k
YXRhOw0KKwlpZGV0YXBlX3N0YWdlX3QgKnN0YWdlID0gdGFwZS0+bmV4dF9z
dGFnZTsNCisJaWRldGFwZV9zdGFnZV90ICpuc3RhZ2U7DQorDQorI2lmIElE
RVRBUEVfREVCVUdfTE9HDQorCWlmICh0YXBlLT5kZWJ1Z19sZXZlbCA+PSA0
KQ0KKwkJcHJpbnRrKEtFUk5fSU5GTyAiaWRlLXRhcGU6ICVzOiAlcyBjYWxs
ZWRcbiIsDQorCQkJdGFwZS0+bmFtZSwgX19GVU5DVElPTl9fKTsNCisjZW5k
aWYNCisJd2hpbGUgKHN0YWdlKSB7DQorCQluc3RhZ2UgPSBzdGFnZS0+bmV4
dDsNCisJCWlkZXRhcGVfa2ZyZWVfc3RhZ2UodGFwZSwgc3RhZ2UpOw0KKwkJ
LS10YXBlLT5ucl9zdGFnZXM7DQorCQktLXRhcGUtPm5yX3BlbmRpbmdfc3Rh
Z2VzOw0KKwkJc3RhZ2UgPSBuc3RhZ2U7DQorCX0NCisJdGFwZS0+bGFzdF9z
dGFnZSA9IGxhc3Rfc3RhZ2U7DQorCWlmIChsYXN0X3N0YWdlKQ0KKwkJbGFz
dF9zdGFnZS0+bmV4dCA9IE5VTEw7DQorCXRhcGUtPm5leHRfc3RhZ2UgPSBO
VUxMOw0KK30NCisNCiAvKg0KICAqCWlkZXRhcGVfZW5kX3JlcXVlc3QgaXMg
dXNlZCB0byBmaW5pc2ggc2VydmljaW5nIGEgcmVxdWVzdCwgYW5kIHRvDQog
ICoJaW5zZXJ0IGEgcGVuZGluZyBwaXBlbGluZSByZXF1ZXN0IGludG8gdGhl
IG1haW4gZGV2aWNlIHF1ZXVlLg0KQEAgLTE4NTAsNiArMTg3OCw3IEBADQog
CXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQogCWludCBlcnJvcjsNCiAJaW50IHJl
bW92ZV9zdGFnZSA9IDA7DQorCWlkZXRhcGVfc3RhZ2VfdCAqYWN0aXZlX3N0
YWdlOw0KICNpZiBPTlNUUkVBTV9ERUJVRw0KIAlpZGV0YXBlX3N0YWdlX3Qg
KnN0YWdlOw0KIAlvc19hdXhfdCAqYXV4Ow0KQEAgLTE4NzMsNiArMTkwMiw3
IEBADQogCXNwaW5fbG9ja19pcnFzYXZlKCZ0YXBlLT5zcGlubG9jaywgZmxh
Z3MpOw0KIAlpZiAodGFwZS0+YWN0aXZlX2RhdGFfcmVxdWVzdCA9PSBycSkg
ew0KIAkJLyogVGhlIHJlcXVlc3Qgd2FzIGEgcGlwZWxpbmVkIGRhdGEgdHJh
bnNmZXIgcmVxdWVzdCAqLw0KKwkJYWN0aXZlX3N0YWdlID0gdGFwZS0+YWN0
aXZlX3N0YWdlOw0KIAkJdGFwZS0+YWN0aXZlX3N0YWdlID0gTlVMTDsNCiAJ
CXRhcGUtPmFjdGl2ZV9kYXRhX3JlcXVlc3QgPSBOVUxMOw0KIAkJdGFwZS0+
bnJfcGVuZGluZ19zdGFnZXMtLTsNCkBAIC0xODkyLDE4ICsxOTIyLDIwIEBA
DQogCQkJCWlmICh0YXBlLT5maXJzdF9mcmFtZV9wb3NpdGlvbiA9PSBPU19E
QVRBX0VOREZSQU1FMSkgeyANCiAjaWYgT05TVFJFQU1fREVCVUcNCiAJCQkJ
CWlmICh0YXBlLT5kZWJ1Z19sZXZlbCA+PSAyKQ0KLQkJCQkJCXByaW50aygi
aWRlLXRhcGU6ICVzOiBza2lwcGluZyBvdmVyIGNvbmZpZyBwYXJpdGlvbi4u
XG4iLCB0YXBlLT5uYW1lKTsNCisJCQkJCQlwcmludGsoImlkZS10YXBlOiAl
czogc2tpcHBpbmcgb3ZlciBjb25maWcgcGFydGl0aW9uLlxuIiwgdGFwZS0+
bmFtZSk7DQogI2VuZGlmDQogCQkJCQl0YXBlLT5vbnN0cmVhbV93cml0ZV9l
cnJvciA9IE9TX1BBUlRfRVJST1I7DQotCQkJCQlpZiAodGFwZS0+d2FpdGlu
ZykNCisJCQkJCWlmICh0YXBlLT53YWl0aW5nKSB7DQorCQkJCQkJcnEtPndh
aXRpbmcgPSBOVUxMOw0KIAkJCQkJCWNvbXBsZXRlKHRhcGUtPndhaXRpbmcp
Ow0KKwkJCQkJfQ0KIAkJCQl9DQogCQkJfQ0KIAkJCXJlbW92ZV9zdGFnZSA9
IDE7DQogCQkJaWYgKGVycm9yKSB7DQogCQkJCXNldF9iaXQoSURFVEFQRV9Q
SVBFTElORV9FUlJPUiwgJnRhcGUtPmZsYWdzKTsNCiAJCQkJaWYgKGVycm9y
ID09IElERVRBUEVfRVJST1JfRU9EKQ0KLQkJCQkJaWRldGFwZV9hYm9ydF9w
aXBlbGluZShkcml2ZSk7DQorCQkJCQlpZGV0YXBlX2Fib3J0X3BpcGVsaW5l
KGRyaXZlLCBhY3RpdmVfc3RhZ2UpOw0KIAkJCQlpZiAodGFwZS0+b25zdHJl
YW0gJiYgIXRhcGUtPnJhdyAmJg0KIAkJCQkgICAgZXJyb3IgPT0gSURFVEFQ
RV9FUlJPUl9HRU5FUkFMICYmDQogCQkJCSAgICB0YXBlLT5zZW5zZS5zZW5z
ZV9rZXkgPT0gMykgew0KQEAgLTE5MTQsMTQgKzE5NDYsMTYgQEANCiAJCQkJ
CXRhcGUtPm5yX3BlbmRpbmdfc3RhZ2VzKys7DQogCQkJCQl0YXBlLT5uZXh0
X3N0YWdlID0gdGFwZS0+Zmlyc3Rfc3RhZ2U7DQogCQkJCQlycS0+Y3VycmVu
dF9ucl9zZWN0b3JzID0gcnEtPm5yX3NlY3RvcnM7DQotCQkJCQlpZiAodGFw
ZS0+d2FpdGluZykNCisJCQkJCWlmICh0YXBlLT53YWl0aW5nKSB7DQorCQkJ
CQkJcnEtPndhaXRpbmcgPSBOVUxMOw0KIAkJCQkJCWNvbXBsZXRlKHRhcGUt
PndhaXRpbmcpOw0KKwkJCQkJfQ0KIAkJCQl9DQogCQkJfQ0KIAkJfSBlbHNl
IGlmIChycS0+Y21kID09IElERVRBUEVfUkVBRF9SUSkgew0KIAkJCWlmIChl
cnJvciA9PSBJREVUQVBFX0VSUk9SX0VPRCkgew0KIAkJCQlzZXRfYml0KElE
RVRBUEVfUElQRUxJTkVfRVJST1IsICZ0YXBlLT5mbGFncyk7DQotCQkJCWlk
ZXRhcGVfYWJvcnRfcGlwZWxpbmUoZHJpdmUpOw0KKwkJCQlpZGV0YXBlX2Fi
b3J0X3BpcGVsaW5lKGRyaXZlLCBhY3RpdmVfc3RhZ2UpOw0KIAkJCX0NCiAJ
CX0NCiAJCWlmICh0YXBlLT5uZXh0X3N0YWdlICE9IE5VTEwgJiYgIXRhcGUt
Pm9uc3RyZWFtX3dyaXRlX2Vycm9yKSB7DQpAQCAtMTk2OSw3ICsyMDAzLDcg
QEANCiAJaWRldGFwZV9pbml0X3BjKHBjKTsJDQogCXBjLT5jWzBdID0gSURF
VEFQRV9SRVFVRVNUX1NFTlNFX0NNRDsNCiAJcGMtPmNbNF0gPSAyMDsNCi0J
cGMtPnJlcXVlc3RfdHJhbnNmZXIgPSAxODsNCisJcGMtPnJlcXVlc3RfdHJh
bnNmZXIgPSAyMDsNCiAJcGMtPmNhbGxiYWNrID0gJmlkZXRhcGVfcmVxdWVz
dF9zZW5zZV9jYWxsYmFjazsNCiB9DQogDQpAQCAtMjA3MSw3ICsyMTA1LDcg
QEANCiANCiAjaWZkZWYgQ09ORklHX0JMS19ERVZfSURFRE1BDQogCWlmICh0
ZXN0X2JpdChQQ19ETUFfSU5fUFJPR1JFU1MsICZwYy0+ZmxhZ3MpKSB7DQot
CQlpZiAoSFdJRihkcml2ZSktPmlkZV9kbWFfZW5kKGRyaXZlKSkgew0KKwkJ
aWYgKEhXSUYoZHJpdmUpLT5pZGVfZG1hX2VuZChkcml2ZSkgfHwgc3RhdHVz
LmIuY2hlY2spIHsNCiAJCQkvKg0KIAkJCSAqIEEgRE1BIGVycm9yIGlzIHNv
bWV0aW1lcyBleHBlY3RlZC4gRm9yIGV4YW1wbGUsDQogCQkJICogaWYgdGhl
IHRhcGUgaXMgY3Jvc3NpbmcgYSBmaWxlbWFyayBkdXJpbmcgYQ0KQEAgLTIw
ODMsOCArMjExNywxOCBAQA0KIAkJCSAqIGFjdHVhbGx5IHRyYW5zZmVycmVk
ICh3ZSBjYW4ndCByZWNlaXZlIHRoYXQNCiAJCQkgKiBpbmZvcm1hdGlvbiBm
cm9tIHRoZSBETUEgZW5naW5lIG9uIG1vc3QgY2hpcHNldHMpLg0KIAkJCSAq
Lw0KKw0KKwkJCS8qDQorCQkJICogT24gdGhlIGNvbnRyYXJ5LCBhIERNQSBl
cnJvciBpcyBuZXZlciBleHBlY3RlZDsNCisJCQkgKiBpdCB1c3VhbGx5IGlu
ZGljYXRlcyBhIGhhcmR3YXJlIGVycm9yIG9yIGFib3J0Lg0KKwkJCSAqIElm
IHRoZSB0YXBlIGNyb3NzZXMgYSBmaWxlbWFyayBkdXJpbmcgYSBSRUFEDQor
CQkJICogY29tbWFuZCwgaXQgd2lsbCBpc3N1ZSBhbiBpcnEgYW5kIHBvc2l0
aW9uIGl0c2VsZg0KKwkJCSAqIGFmdGVyIHRoZSBmaWxlbWFyayAobm90IGJl
Zm9yZSkuIE9ubHkgYSBwYXJ0aWFsDQorCQkJICogZGF0YSB0cmFuc2ZlciB3
aWxsIG9jY3VyLCBidXQgbm8gRE1BIGVycm9yLg0KKwkJCSAqIChBUywgMTkg
QXByIDIwMDEpDQorCQkJICovDQogCQkJc2V0X2JpdCAoUENfRE1BX0VSUk9S
LCAmcGMtPmZsYWdzKTsNCi0JCX0gZWxzZSBpZiAoIXN0YXR1cy5iLmNoZWNr
KSB7DQorCQl9IGVsc2Ugew0KIAkJCXBjLT5hY3R1YWxseV90cmFuc2ZlcnJl
ZCA9IHBjLT5yZXF1ZXN0X3RyYW5zZmVyOw0KIAkJCWlkZXRhcGVfdXBkYXRl
X2J1ZmZlcnMgKHBjKTsNCiAJCX0NCkBAIC0yMTIzLDcgKzIxNjcsNyBAQA0K
IAkJCS8qIEVycm9yIGRldGVjdGVkICovDQogI2lmIElERVRBUEVfREVCVUdf
TE9HDQogCQkJaWYgKHRhcGUtPmRlYnVnX2xldmVsID49IDEpDQotCQkJCXBy
aW50ayhLRVJOX0lORk8gImlkZS10YXBlOiAlczogSS9PIGVycm9yLCAiLA0K
KwkJCQlwcmludGsoS0VSTl9JTkZPICJpZGUtdGFwZTogJXM6IEkvTyBlcnJv
clxuIiwNCiAJCQkJCXRhcGUtPm5hbWUpOw0KICNlbmRpZiAvKiBJREVUQVBF
X0RFQlVHX0xPRyAqLw0KIAkJCWlmIChwYy0+Y1swXSA9PSBJREVUQVBFX1JF
UVVFU1RfU0VOU0VfQ01EKSB7DQpAQCAtMjMxNCw2ICsyMzU4LDExIEBADQog
CQlCVUcoKTsNCiAJLyogU2V0IHRoZSBpbnRlcnJ1cHQgcm91dGluZSAqLw0K
IAlpZGVfc2V0X2hhbmRsZXIoZHJpdmUsICZpZGV0YXBlX3BjX2ludHIsIElE
RVRBUEVfV0FJVF9DTUQsIE5VTEwpOw0KKyNpZmRlZiBDT05GSUdfQkxLX0RF
Vl9JREVETUENCisJLyogQmVnaW4gRE1BLCBpZiBuZWNlc3NhcnkgKi8NCisJ
aWYgKHRlc3RfYml0KFBDX0RNQV9JTl9QUk9HUkVTUywgJnBjLT5mbGFncykp
DQorCQkodm9pZCkgKEhXSUYoZHJpdmUpLT5pZGVfZG1hX2JlZ2luKGRyaXZl
KSk7DQorI2VuZGlmDQogCS8qIFNlbmQgdGhlIGFjdHVhbCBwYWNrZXQgKi8N
CiAJSFdJRihkcml2ZSktPmF0YXBpX291dHB1dF9ieXRlcyhkcml2ZSwgcGMt
PmMsIDEyKTsNCiAJcmV0dXJuIGlkZV9zdGFydGVkOw0KQEAgLTIzNDMsOCAr
MjM5Miw3IEBADQogCQkvKg0KIAkJICoJV2Ugd2lsbCAiYWJvcnQiIHJldHJ5
aW5nIGEgcGFja2V0IGNvbW1hbmQgaW4gY2FzZQ0KIAkJICoJYSBsZWdpdGlt
YXRlIGVycm9yIGNvZGUgd2FzIHJlY2VpdmVkIChjcm9zc2luZyBhDQotCQkg
KglmaWxlbWFyaywgb3IgRE1BIGVycm9yIGluIHRoZSBlbmQgb2YgbWVkaWEs
IGZvcg0KLQkJICoJZXhhbXBsZSkuDQorCQkgKglmaWxlbWFyaywgb3IgZW5k
IG9mIHRoZSBtZWRpYSwgZm9yIGV4YW1wbGUpLg0KIAkJICovDQogCQlpZiAo
IXRlc3RfYml0IChQQ19BQk9SVCwgJnBjLT5mbGFncykpIHsNCiAJCQlpZiAo
IShwYy0+Y1swXSA9PSBJREVUQVBFX1RFU1RfVU5JVF9SRUFEWV9DTUQgJiYN
CkBAIC0yMzcxLDcgKzI0MTksOCBAQA0KIAl9DQogI2lmIElERVRBUEVfREVC
VUdfTE9HDQogCWlmICh0YXBlLT5kZWJ1Z19sZXZlbCA+PSAyKQ0KLQkJcHJp
bnRrKEtFUk5fSU5GTyAiaWRlLXRhcGU6IFJldHJ5IG51bWJlciAtICVkXG4i
LCBwYy0+cmV0cmllcyk7DQorCQlwcmludGsoS0VSTl9JTkZPICJpZGUtdGFw
ZTogUmV0cnkgbnVtYmVyIC0gJWQsIGNtZCA9ICUwMlhcbiIsDQorCQkJCXBj
LT5yZXRyaWVzLCBwYy0+Y1swXSk7DQogI2VuZGlmIC8qIElERVRBUEVfREVC
VUdfTE9HICovDQogDQogCXBjLT5yZXRyaWVzKys7DQpAQCAtMjQwNCwxMCAr
MjQ1Myw4IEBADQogCUhXSUYoZHJpdmUpLT5PVVRCKGJjb3VudC5iLmxvdywg
SURFX0JDT1VOVExfUkVHKTsNCiAJSFdJRihkcml2ZSktPk9VVEIoZHJpdmUt
PnNlbGVjdC5hbGwsIElERV9TRUxFQ1RfUkVHKTsNCiAjaWZkZWYgQ09ORklH
X0JMS19ERVZfSURFRE1BDQotCWlmIChmZWF0dXJlLmIuZG1hKSB7CQkvKiBC
ZWdpbiBETUEsIGlmIG5lY2Vzc2FyeSAqLw0KKwlpZiAoZmVhdHVyZS5iLmRt
YSkJCS8qIFdpbGwgYmVnaW4gRE1BIGxhdGVyICovDQogCQlzZXRfYml0KFBD
X0RNQV9JTl9QUk9HUkVTUywgJnBjLT5mbGFncyk7DQotCQkodm9pZCkgKEhX
SUYoZHJpdmUpLT5pZGVfZG1hX2JlZ2luKGRyaXZlKSk7DQotCX0NCiAjZW5k
aWYgLyogQ09ORklHX0JMS19ERVZfSURFRE1BICovDQogCWlmICh0ZXN0X2Jp
dChJREVUQVBFX0RSUV9JTlRFUlJVUFQsICZ0YXBlLT5mbGFncykpIHsNCiAJ
CWlmIChIV0dST1VQKGRyaXZlKS0+aGFuZGxlciAhPSBOVUxMKQ0KQEAgLTMy
MzgsNyArMzI4NSw3IEBADQogCXRhcGUtPndhaXRpbmcgPSAmd2FpdDsNCiAJ
c3Bpbl91bmxvY2soJnRhcGUtPnNwaW5sb2NrKTsNCiAJd2FpdF9mb3JfY29t
cGxldGlvbigmd2FpdCk7DQotCXJxLT53YWl0aW5nID0gTlVMTDsNCisJLyog
VGhlIHN0YWdlIGFuZCBpdHMgc3RydWN0IHJlcXVlc3QgaGF2ZSBiZWVuIGRl
YWxsb2NhdGVkICovDQogCXRhcGUtPndhaXRpbmcgPSBOVUxMOw0KIAlzcGlu
X2xvY2tfaXJxKCZ0YXBlLT5zcGlubG9jayk7DQogfQ0KQEAgLTM1MTAsMTEg
KzM1NTcsMTUgQEANCiANCiAJaWYgKHRhcGUtPmNocmRldl9kaXJlY3Rpb24g
IT0gaWRldGFwZV9kaXJlY3Rpb25fcmVhZCkNCiAJCXJldHVybiAwOw0KKwlj
bnQgPSB0YXBlLT5tZXJnZV9zdGFnZV9zaXplIC8gdGFwZS0+dGFwZV9ibG9j
a19zaXplOw0KKwlpZiAodGVzdF9hbmRfY2xlYXJfYml0KElERVRBUEVfRklM
RU1BUkssICZ0YXBlLT5mbGFncykpDQorCQkrK2NudDsJCS8qIEZpbGVtYXJr
cyBjb3VudCBhcyAxIHNlY3RvciAqLw0KIAl0YXBlLT5tZXJnZV9zdGFnZV9z
aXplID0gMDsNCiAJaWYgKHRhcGUtPm1lcmdlX3N0YWdlICE9IE5VTEwpIHsN
CiAJCV9faWRldGFwZV9rZnJlZV9zdGFnZSh0YXBlLT5tZXJnZV9zdGFnZSk7
DQogCQl0YXBlLT5tZXJnZV9zdGFnZSA9IE5VTEw7DQogCX0NCisJY2xlYXJf
Yml0KElERVRBUEVfUElQRUxJTkVfRVJST1IsICZ0YXBlLT5mbGFncyk7DQog
CXRhcGUtPmNocmRldl9kaXJlY3Rpb24gPSBpZGV0YXBlX2RpcmVjdGlvbl9u
b25lOw0KIAkNCiAJaWYgKHRhcGUtPmZpcnN0X3N0YWdlID09IE5VTEwpDQpA
QCAtMzUyNiw5ICszNTc3LDE0IEBADQogCQlpZGV0YXBlX3dhaXRfZm9yX3Jl
cXVlc3QoZHJpdmUsIHRhcGUtPmFjdGl2ZV9kYXRhX3JlcXVlc3QpOw0KIAlz
cGluX3VubG9ja19pcnFyZXN0b3JlKCZ0YXBlLT5zcGlubG9jaywgZmxhZ3Mp
Ow0KIA0KLQljbnQgPSB0YXBlLT5ucl9zdGFnZXMgLSB0YXBlLT5ucl9wZW5k
aW5nX3N0YWdlczsNCi0Jd2hpbGUgKHRhcGUtPmZpcnN0X3N0YWdlICE9IE5V
TEwpDQorCXdoaWxlICh0YXBlLT5maXJzdF9zdGFnZSAhPSBOVUxMKSB7DQor
CQlzdHJ1Y3QgcmVxdWVzdCAqcnFfcHRyID0gJnRhcGUtPmZpcnN0X3N0YWdl
LT5ycTsNCisNCisJCWNudCArPSBycV9wdHItPm5yX3NlY3RvcnMgLSBycV9w
dHItPmN1cnJlbnRfbnJfc2VjdG9yczsgDQorCQlpZiAocnFfcHRyLT5lcnJv
cnMgPT0gSURFVEFQRV9FUlJPUl9GSUxFTUFSSykNCisJCQkrK2NudDsNCiAJ
CWlkZXRhcGVfcmVtb3ZlX3N0YWdlX2hlYWQoZHJpdmUpOw0KKwl9DQogCXRh
cGUtPm5yX3BlbmRpbmdfc3RhZ2VzID0gMDsNCiAJdGFwZS0+bWF4X3N0YWdl
cyA9IHRhcGUtPm1pbl9waXBlbGluZTsNCiAJcmV0dXJuIGNudDsNCkBAIC00
MTUxLDcgKzQyMDcsNyBAQA0KIAkJICovDQogCQlieXRlc19yZWFkID0gaWRl
dGFwZV9xdWV1ZV9yd190YWlsKGRyaXZlLCBJREVUQVBFX1JFQURfUlEsIDAs
IHRhcGUtPm1lcmdlX3N0YWdlLT5iaCk7DQogCQlpZiAoYnl0ZXNfcmVhZCA8
IDApIHsNCi0JCQlrZnJlZSh0YXBlLT5tZXJnZV9zdGFnZSk7DQorCQkJX19p
ZGV0YXBlX2tmcmVlX3N0YWdlKHRhcGUtPm1lcmdlX3N0YWdlKTsNCiAJCQl0
YXBlLT5tZXJnZV9zdGFnZSA9IE5VTEw7DQogCQkJdGFwZS0+Y2hyZGV2X2Rp
cmVjdGlvbiA9IGlkZXRhcGVfZGlyZWN0aW9uX25vbmU7DQogCQkJcmV0dXJu
IGJ5dGVzX3JlYWQ7DQpAQCAtNDE2NCw3ICs0MjIwLDcgQEANCiAJcnEuc2Vj
dG9yID0gdGFwZS0+Zmlyc3RfZnJhbWVfcG9zaXRpb247DQogCXJxLm5yX3Nl
Y3RvcnMgPSBycS5jdXJyZW50X25yX3NlY3RvcnMgPSBibG9ja3M7DQogCWlm
ICghdGVzdF9iaXQoSURFVEFQRV9QSVBFTElORV9FUlJPUiwgJnRhcGUtPmZs
YWdzKSAmJg0KLQkgICAgdGFwZS0+bnJfc3RhZ2VzIDw9IG1heF9zdGFnZXMp
IHsNCisJICAgIHRhcGUtPm5yX3N0YWdlcyA8IG1heF9zdGFnZXMpIHsNCiAJ
CW5ld19zdGFnZSA9IGlkZXRhcGVfa21hbGxvY19zdGFnZSh0YXBlKTsNCiAJ
CXdoaWxlIChuZXdfc3RhZ2UgIT0gTlVMTCkgew0KIAkJCW5ld19zdGFnZS0+
cnEgPSBycTsNCkBAIC00Mjg3LDYgKzQzNDMsMTIgQEANCiAjZW5kaWYgLyog
SURFVEFQRV9ERUJVR19MT0cgKi8NCiANCiAJLyoNCisJICogSWYgd2UgYXJl
IGF0IGEgZmlsZW1hcmssIHJldHVybiBhIHJlYWQgbGVuZ3RoIG9mIDANCisJ
ICovDQorCWlmICh0ZXN0X2JpdChJREVUQVBFX0ZJTEVNQVJLLCAmdGFwZS0+
ZmxhZ3MpKQ0KKwkJcmV0dXJuIDA7DQorDQorCS8qDQogCSAqIFdhaXQgZm9y
IHRoZSBuZXh0IGxvZ2ljYWwgYmxvY2sgdG8gYmUgYXZhaWxhYmxlIGF0IHRo
ZSBoZWFkDQogCSAqIG9mIHRoZSBwaXBlbGluZQ0KIAkgKi8NCkBAIC00MzE1
LDE0ICs0Mzc3LDcgQEANCiAJfQ0KIAlpZiAocnFfcHRyLT5lcnJvcnMgPT0g
SURFVEFQRV9FUlJPUl9FT0QpDQogCQlyZXR1cm4gMDsNCi0JaWYgKHJxX3B0
ci0+ZXJyb3JzID09IElERVRBUEVfRVJST1JfRklMRU1BUkspIHsNCi0JCWlk
ZXRhcGVfc3dpdGNoX2J1ZmZlcnMgKHRhcGUsIHRhcGUtPmZpcnN0X3N0YWdl
KTsNCi0JCXNldF9iaXQoSURFVEFQRV9GSUxFTUFSSywgJnRhcGUtPmZsYWdz
KTsNCi0jaWYgVVNFX0lPVFJBQ0UNCi0JCUlPX3RyYWNlKElPX0lERVRBUEVf
RklGTywgdGFwZS0+cGlwZWxpbmVfaGVhZCwgdGFwZS0+YnVmZmVyX2hlYWQs
IHRhcGUtPnRhcGVfaGVhZCwgdGFwZS0+bWlub3IpOw0KLSNlbmRpZg0KLQkJ
Y2FsY3VsYXRlX3NwZWVkcyhkcml2ZSk7DQotCX0gZWxzZSB7DQorCWVsc2Ug
ew0KIAkJaWRldGFwZV9zd2l0Y2hfYnVmZmVycyh0YXBlLCB0YXBlLT5maXJz
dF9zdGFnZSk7DQogCQlpZiAocnFfcHRyLT5lcnJvcnMgPT0gSURFVEFQRV9F
UlJPUl9HRU5FUkFMKSB7DQogI2lmIE9OU1RSRUFNX0RFQlVHDQpAQCAtNDMz
MSw3ICs0Mzg2LDggQEANCiAJCQkJCSJieXRlc19yZWFkICVkXG4iLCBieXRl
c19yZWFkKTsNCiAjZW5kaWYNCiAJCX0NCi0JCWNsZWFyX2JpdChJREVUQVBF
X0ZJTEVNQVJLLCAmdGFwZS0+ZmxhZ3MpOw0KKwkJaWYgKHJxX3B0ci0+ZXJy
b3JzID09IElERVRBUEVfRVJST1JfRklMRU1BUkspDQorCQkJc2V0X2JpdChJ
REVUQVBFX0ZJTEVNQVJLLCAmdGFwZS0+ZmxhZ3MpOw0KIAkJc3Bpbl9sb2Nr
X2lycXNhdmUoJnRhcGUtPnNwaW5sb2NrLCBmbGFncyk7DQogCQlpZGV0YXBl
X3JlbW92ZV9zdGFnZV9oZWFkIChkcml2ZSk7DQogCQlzcGluX3VubG9ja19p
cnFyZXN0b3JlKCZ0YXBlLT5zcGlubG9jaywgZmxhZ3MpOw0KQEAgLTQ3MTQs
NiArNDc3MCwxNCBAQA0KIAkJdGFwZS0+cmVzdGFydF9zcGVlZF9jb250cm9s
X3JlcSA9IDE7DQogCQlyZXR1cm4gcmV0dmFsOw0KIAl9DQorIA0KKwlpZiAo
bXRfY291bnQgPT0gMCkNCisJCXJldHVybiAwOw0KKwlpZiAoTVRCU0YgPT0g
bXRfb3AgfHwgTVRCU0ZNID09IG10X29wKSB7DQorCQlpZiAoIXRhcGUtPmNh
cGFiaWxpdGllcy5zcHJldikNCisJCQlyZXR1cm4gLUVJTzsNCisJCW10X2Nv
dW50ID0gLSBtdF9jb3VudDsNCisJfQ0KIA0KIAlpZiAodGFwZS0+Y2hyZGV2
X2RpcmVjdGlvbiA9PSBpZGV0YXBlX2RpcmVjdGlvbl9yZWFkKSB7DQogCQkv
Kg0KQEAgLTQ3MjEsMjggKzQ3ODUsMzYgQEANCiAJCSAqCWZpbGVtYXJrcy4N
CiAJCSAqLw0KIAkJdGFwZS0+bWVyZ2Vfc3RhZ2Vfc2l6ZSA9IDA7DQotCQlj
bGVhcl9iaXQoSURFVEFQRV9GSUxFTUFSSywgJnRhcGUtPmZsYWdzKTsNCisJ
CWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoSURFVEFQRV9GSUxFTUFSSywgJnRh
cGUtPmZsYWdzKSkNCisJCQkrK2NvdW50Ow0KIAkJd2hpbGUgKHRhcGUtPmZp
cnN0X3N0YWdlICE9IE5VTEwpIHsNCi0JCQlpZGV0YXBlX3dhaXRfZmlyc3Rf
c3RhZ2UoZHJpdmUpOw0KLQkJCWlmICh0YXBlLT5maXJzdF9zdGFnZS0+cnEu
ZXJyb3JzID09IElERVRBUEVfRVJST1JfRklMRU1BUkspDQotCQkJCWNvdW50
Kys7DQogCQkJaWYgKGNvdW50ID09IG10X2NvdW50KSB7DQotCQkJCXN3aXRj
aCAobXRfb3ApIHsNCi0JCQkJCWNhc2UgTVRGU0Y6DQotCQkJCQkJc3Bpbl9s
b2NrX2lycXNhdmUoJnRhcGUtPnNwaW5sb2NrLCBmbGFncyk7DQotCQkJCQkJ
aWRldGFwZV9yZW1vdmVfc3RhZ2VfaGVhZChkcml2ZSk7DQotCQkJCQkJc3Bp
bl91bmxvY2tfaXJxcmVzdG9yZSgmdGFwZS0+c3BpbmxvY2ssIGZsYWdzKTsN
Ci0JCQkJCWNhc2UgTVRGU0ZNOg0KLQkJCQkJCXJldHVybiAoMCk7DQotCQkJ
CQlkZWZhdWx0Og0KLQkJCQkJCWJyZWFrOw0KLQkJCQl9DQorCQkJCWlmICht
dF9vcCA9PSBNVEZTRk0pDQorCQkJCQlzZXRfYml0KElERVRBUEVfRklMRU1B
UkssICZ0YXBlLT5mbGFncyk7DQorCQkJCXJldHVybiAwOw0KIAkJCX0NCiAJ
CQlzcGluX2xvY2tfaXJxc2F2ZSgmdGFwZS0+c3BpbmxvY2ssIGZsYWdzKTsN
CisJCQlpZiAodGFwZS0+Zmlyc3Rfc3RhZ2UgPT0gdGFwZS0+YWN0aXZlX3N0
YWdlKSB7DQorCQkJCS8qDQorCQkJCSAqCVdlIGhhdmUgcmVhY2hlZCB0aGUg
YWN0aXZlIHN0YWdlIGluIHRoZSByZWFkIHBpcGVsaW5lLg0KKwkJCQkgKglU
aGVyZSBpcyBubyBwb2ludCBpbiBhbGxvd2luZyB0aGUgZHJpdmUgdG8gY29u
dGludWUNCisJCQkJICoJcmVhZGluZyBhbnkgZmFydGhlciwgc28gd2Ugc3Rv
cCB0aGUgcGlwZWxpbmUuDQorCQkJCSAqDQorCQkJCSAqCVRoaXMgc2VjdGlv
biBzaG91bGQgYmUgbW92ZWQgdG8gYSBzZXBhcmF0ZSBzdWJyb3V0aW5lLA0K
KwkJCQkgKgliZWNhdXNlIGEgc2ltaWxhciBmdW5jdGlvbiBpcyBwZXJmb3Jt
ZWQgaW4NCisJCQkJICoJX19pZGV0YXBlX2Rpc2NhcmRfcmVhZF9waXBlbGlu
ZSgpLCBmb3IgZXhhbXBsZS4NCisJCQkJICovDQorCQkJCXRhcGUtPm5leHRf
c3RhZ2UgPSBOVUxMOw0KKwkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ0
YXBlLT5zcGlubG9jaywgZmxhZ3MpOw0KKwkJCQlpZGV0YXBlX3dhaXRfZmly
c3Rfc3RhZ2UoZHJpdmUpOw0KKwkJCQl0YXBlLT5uZXh0X3N0YWdlID0gdGFw
ZS0+Zmlyc3Rfc3RhZ2UtPm5leHQ7DQorCQkJfSBlbHNlDQorCQkJCXNwaW5f
dW5sb2NrX2lycXJlc3RvcmUoJnRhcGUtPnNwaW5sb2NrLCBmbGFncyk7DQor
CQkJaWYgKHRhcGUtPmZpcnN0X3N0YWdlLT5ycS5lcnJvcnMgPT0gSURFVEFQ
RV9FUlJPUl9GSUxFTUFSSykNCisJCQkJKytjb3VudDsNCiAJCQlpZGV0YXBl
X3JlbW92ZV9zdGFnZV9oZWFkKGRyaXZlKTsNCi0JCQlzcGluX3VubG9ja19p
cnFyZXN0b3JlKCZ0YXBlLT5zcGlubG9jaywgZmxhZ3MpOw0KIAkJfQ0KLQkJ
aWRldGFwZV9kaXNjYXJkX3JlYWRfcGlwZWxpbmUoZHJpdmUsIDEpOw0KKwkJ
aWRldGFwZV9kaXNjYXJkX3JlYWRfcGlwZWxpbmUoZHJpdmUsIDApOw0KIAl9
DQogDQogCS8qDQpAQCAtNDc1MSwyNSArNDgyMywxNyBAQA0KIAkgKi8NCiAJ
c3dpdGNoIChtdF9vcCkgew0KIAkJY2FzZSBNVEZTRjoNCisJCWNhc2UgTVRC
U0Y6DQogCQkJaWRldGFwZV9jcmVhdGVfc3BhY2VfY21kKCZwYyxtdF9jb3Vu
dC1jb3VudCxJREVUQVBFX1NQQUNFX09WRVJfRklMRU1BUkspOw0KIAkJCXJl
dHVybiAoaWRldGFwZV9xdWV1ZV9wY190YWlsKGRyaXZlLCAmcGMpKTsNCiAJ
CWNhc2UgTVRGU0ZNOg0KLQkJCWlmICghdGFwZS0+Y2FwYWJpbGl0aWVzLnNw
cmV2KQ0KLQkJCQlyZXR1cm4gKC1FSU8pOw0KLQkJCXJldHZhbCA9IGlkZXRh
cGVfc3BhY2Vfb3Zlcl9maWxlbWFya3MoZHJpdmUsIE1URlNGLCBtdF9jb3Vu
dC1jb3VudCk7DQotCQkJaWYgKHJldHZhbCkgcmV0dXJuIChyZXR2YWwpOw0K
LQkJCXJldHVybiAoaWRldGFwZV9zcGFjZV9vdmVyX2ZpbGVtYXJrcyhkcml2
ZSwgTVRCU0YsIDEpKTsNCi0JCWNhc2UgTVRCU0Y6DQotCQkJaWYgKCF0YXBl
LT5jYXBhYmlsaXRpZXMuc3ByZXYpDQotCQkJCXJldHVybiAoLUVJTyk7DQot
CQkJaWRldGFwZV9jcmVhdGVfc3BhY2VfY21kKCZwYywtKG10X2NvdW50K2Nv
dW50KSxJREVUQVBFX1NQQUNFX09WRVJfRklMRU1BUkspOw0KLQkJCXJldHVy
biAoaWRldGFwZV9xdWV1ZV9wY190YWlsKGRyaXZlLCAmcGMpKTsNCiAJCWNh
c2UgTVRCU0ZNOg0KIAkJCWlmICghdGFwZS0+Y2FwYWJpbGl0aWVzLnNwcmV2
KQ0KIAkJCQlyZXR1cm4gKC1FSU8pOw0KLQkJCXJldHZhbCA9IGlkZXRhcGVf
c3BhY2Vfb3Zlcl9maWxlbWFya3MoZHJpdmUsIE1UQlNGLCBtdF9jb3VudCtj
b3VudCk7DQorCQkJcmV0dmFsID0gaWRldGFwZV9zcGFjZV9vdmVyX2ZpbGVt
YXJrcyhkcml2ZSwgTVRGU0YsIG10X2NvdW50LWNvdW50KTsNCiAJCQlpZiAo
cmV0dmFsKSByZXR1cm4gKHJldHZhbCk7DQotCQkJcmV0dXJuIChpZGV0YXBl
X3NwYWNlX292ZXJfZmlsZW1hcmtzKGRyaXZlLCBNVEZTRiwgMSkpOw0KKwkJ
CWNvdW50ID0gKE1UQlNGTSA9PSBtdF9vcCA/IDEgOiAtMSk7DQorCQkJcmV0
dXJuIChpZGV0YXBlX3NwYWNlX292ZXJfZmlsZW1hcmtzKGRyaXZlLCBNVEZT
RiwgY291bnQpKTsNCiAJCWRlZmF1bHQ6DQogCQkJcHJpbnRrKEtFUk5fRVJS
ICJpZGUtdGFwZTogTVRJTyBvcGVyYXRpb24gJWQgbm90ICINCiAJCQkJInN1
cHBvcnRlZFxuIiwgbXRfb3ApOw0KQEAgLTUxMTcsNyArNTE4MSw3IEBADQog
CQkgKi8NCiAJCXJldHZhbCA9IGlkZXRhcGVfcXVldWVfcndfdGFpbChkcml2
ZSwgSURFVEFQRV9XUklURV9SUSwgMCwgdGFwZS0+bWVyZ2Vfc3RhZ2UtPmJo
KTsNCiAJCWlmIChyZXR2YWwgPCAwKSB7DQotCQkJa2ZyZWUodGFwZS0+bWVy
Z2Vfc3RhZ2UpOw0KKwkJCV9faWRldGFwZV9rZnJlZV9zdGFnZSh0YXBlLT5t
ZXJnZV9zdGFnZSk7DQogCQkJdGFwZS0+bWVyZ2Vfc3RhZ2UgPSBOVUxMOw0K
IAkJCXRhcGUtPmNocmRldl9kaXJlY3Rpb24gPSBpZGV0YXBlX2RpcmVjdGlv
bl9ub25lOw0KIAkJCXJldHVybiByZXR2YWw7DQpAQCAtNTcwMSw5ICs1NzY1
LDExIEBADQogCQlNT0RfREVDX1VTRV9DT1VOVDsNCiAJCXJldHVybiAtRUJV
U1k7DQogCX0NCi0JaWRldGFwZV9yZWFkX3Bvc2l0aW9uKGRyaXZlKTsNCisJ
aWYgKHRhcGUtPm9uc3RyZWFtKQ0KKwkJaWRldGFwZV9yZWFkX3Bvc2l0aW9u
KGRyaXZlKTsNCiAJTU9EX0RFQ19VU0VfQ09VTlQ7DQotCWNsZWFyX2JpdChJ
REVUQVBFX1BJUEVMSU5FX0VSUk9SLCAmdGFwZS0+ZmxhZ3MpOw0KKwlpZiAo
dGFwZS0+Y2hyZGV2X2RpcmVjdGlvbiAhPSBpZGV0YXBlX2RpcmVjdGlvbl9y
ZWFkKQ0KKwkJY2xlYXJfYml0KElERVRBUEVfUElQRUxJTkVfRVJST1IsICZ0
YXBlLT5mbGFncyk7DQogDQogCWlmICh0YXBlLT5jaHJkZXZfZGlyZWN0aW9u
ID09IGlkZXRhcGVfZGlyZWN0aW9uX25vbmUpIHsNCiAJCU1PRF9JTkNfVVNF
X0NPVU5UOw0KQEAgLTU3NzYsMTAgKzU4NDIsMTEgQEANCiAJaWYgKG1pbm9y
IDwgMTI4KQ0KIAkJKHZvaWQpIGlkZXRhcGVfcmV3aW5kX3RhcGUoZHJpdmUp
Ow0KIAlpZiAodGFwZS0+Y2hyZGV2X2RpcmVjdGlvbiA9PSBpZGV0YXBlX2Rp
cmVjdGlvbl9ub25lKSB7DQotCQlpZiAodGFwZS0+ZG9vcl9sb2NrZWQgIT0g
RE9PUl9FWFBMSUNJVExZX0xPQ0tFRCkgew0KLQkJCWlmIChpZGV0YXBlX2Ny
ZWF0ZV9wcmV2ZW50X2NtZChkcml2ZSwgJnBjLCAwKSkNCisJCWlmICh0YXBl
LT5kb29yX2xvY2tlZCA9PSBET09SX0xPQ0tFRCkgew0KKwkJCWlmIChpZGV0
YXBlX2NyZWF0ZV9wcmV2ZW50X2NtZChkcml2ZSwgJnBjLCAwKSkgew0KIAkJ
CQlpZiAoIWlkZXRhcGVfcXVldWVfcGNfdGFpbChkcml2ZSwgJnBjKSkNCiAJ
CQkJCXRhcGUtPmRvb3JfbG9ja2VkID0gRE9PUl9VTkxPQ0tFRDsNCisJCQl9
DQogCQl9DQogCQlNT0RfREVDX1VTRV9DT1VOVDsNCiAJfQ0KQEAgLTU4MTMs
MzQgKzU4ODAsMzQgQEANCiAJcHJpbnRrKEtFUk5fSU5GTyAiaWRlLXRhcGU6
IER1bXBpbmcgQVRBUEkgSWRlbnRpZnkgRGV2aWNlIHRhcGUgcGFyYW1ldGVy
c1xuIik7DQogCXByaW50ayhLRVJOX0lORk8gImlkZS10YXBlOiBQcm90b2Nv
bCBUeXBlOiAiKTsNCiAJc3dpdGNoIChnY3cucHJvdG9jb2wpIHsNCi0JCWNh
c2UgMDogY2FzZSAxOiBwcmludGsoS0VSTl9JTkZPICJBVEFcbiIpO2JyZWFr
Ow0KLQkJY2FzZSAyOglwcmludGsoS0VSTl9JTkZPICJBVEFQSVxuIik7YnJl
YWs7DQotCQljYXNlIDM6IHByaW50ayhLRVJOX0lORk8gIlJlc2VydmVkIChV
bmtub3duIHRvIGlkZS10YXBlKVxuIik7YnJlYWs7DQorCQljYXNlIDA6IGNh
c2UgMTogcHJpbnRrKCJBVEFcbiIpO2JyZWFrOw0KKwkJY2FzZSAyOglwcmlu
dGsoIkFUQVBJXG4iKTticmVhazsNCisJCWNhc2UgMzogcHJpbnRrKCJSZXNl
cnZlZCAoVW5rbm93biB0byBpZGUtdGFwZSlcbiIpO2JyZWFrOw0KIAl9DQog
CXByaW50ayhLRVJOX0lORk8gImlkZS10YXBlOiBEZXZpY2UgVHlwZTogJXgg
LSAiLGdjdy5kZXZpY2VfdHlwZSk7CQ0KIAlzd2l0Y2ggKGdjdy5kZXZpY2Vf
dHlwZSkgew0KLQkJY2FzZSAwOiBwcmludGsoS0VSTl9JTkZPICJEaXJlY3Qt
YWNjZXNzIERldmljZVxuIik7YnJlYWs7DQotCQljYXNlIDE6IHByaW50ayhL
RVJOX0lORk8gIlN0cmVhbWluZyBUYXBlIERldmljZVxuIik7YnJlYWs7DQot
CQljYXNlIDI6IGNhc2UgMzogY2FzZSA0OiBwcmludGsoS0VSTl9JTkZPICJS
ZXNlcnZlZFxuIik7YnJlYWs7DQotCQljYXNlIDU6IHByaW50ayhLRVJOX0lO
Rk8gIkNELVJPTSBEZXZpY2VcbiIpO2JyZWFrOw0KLQkJY2FzZSA2OiBwcmlu
dGsoS0VSTl9JTkZPICJSZXNlcnZlZFxuIik7DQotCQljYXNlIDc6IHByaW50
ayhLRVJOX0lORk8gIk9wdGljYWwgbWVtb3J5IERldmljZVxuIik7YnJlYWs7
DQotCQljYXNlIDB4MWY6IHByaW50ayhLRVJOX0lORk8gIlVua25vd24gb3Ig
bm8gRGV2aWNlIHR5cGVcbiIpO2JyZWFrOw0KLQkJZGVmYXVsdDogcHJpbnRr
KEtFUk5fSU5GTyAiUmVzZXJ2ZWRcbiIpOw0KKwkJY2FzZSAwOiBwcmludGso
IkRpcmVjdC1hY2Nlc3MgRGV2aWNlXG4iKTticmVhazsNCisJCWNhc2UgMTog
cHJpbnRrKCJTdHJlYW1pbmcgVGFwZSBEZXZpY2VcbiIpO2JyZWFrOw0KKwkJ
Y2FzZSAyOiBjYXNlIDM6IGNhc2UgNDogcHJpbnRrKCJSZXNlcnZlZFxuIik7
YnJlYWs7DQorCQljYXNlIDU6IHByaW50aygiQ0QtUk9NIERldmljZVxuIik7
YnJlYWs7DQorCQljYXNlIDY6IHByaW50aygiUmVzZXJ2ZWRcbiIpOw0KKwkJ
Y2FzZSA3OiBwcmludGsoIk9wdGljYWwgbWVtb3J5IERldmljZVxuIik7YnJl
YWs7DQorCQljYXNlIDB4MWY6IHByaW50aygiVW5rbm93biBvciBubyBEZXZp
Y2UgdHlwZVxuIik7YnJlYWs7DQorCQlkZWZhdWx0OiBwcmludGsoIlJlc2Vy
dmVkXG4iKTsNCiAJfQ0KIAlwcmludGsoS0VSTl9JTkZPICJpZGUtdGFwZTog
UmVtb3ZhYmxlOiAlcyIsZ2N3LnJlbW92YWJsZSA/ICJZZXNcbiI6Ik5vXG4i
KTsJDQogCXByaW50ayhLRVJOX0lORk8gImlkZS10YXBlOiBDb21tYW5kIFBh
Y2tldCBEUlEgVHlwZTogIik7DQogCXN3aXRjaCAoZ2N3LmRycV90eXBlKSB7
DQotCQljYXNlIDA6IHByaW50ayhLRVJOX0lORk8gIk1pY3JvcHJvY2Vzc29y
IERSUVxuIik7YnJlYWs7DQotCQljYXNlIDE6IHByaW50ayhLRVJOX0lORk8g
IkludGVycnVwdCBEUlFcbiIpO2JyZWFrOw0KLQkJY2FzZSAyOiBwcmludGso
S0VSTl9JTkZPICJBY2NlbGVyYXRlZCBEUlFcbiIpO2JyZWFrOw0KLQkJY2Fz
ZSAzOiBwcmludGsoS0VSTl9JTkZPICJSZXNlcnZlZFxuIik7YnJlYWs7DQor
CQljYXNlIDA6IHByaW50aygiTWljcm9wcm9jZXNzb3IgRFJRXG4iKTticmVh
azsNCisJCWNhc2UgMTogcHJpbnRrKCJJbnRlcnJ1cHQgRFJRXG4iKTticmVh
azsNCisJCWNhc2UgMjogcHJpbnRrKCJBY2NlbGVyYXRlZCBEUlFcbiIpO2Jy
ZWFrOw0KKwkJY2FzZSAzOiBwcmludGsoIlJlc2VydmVkXG4iKTticmVhazsN
CiAJfQ0KIAlwcmludGsoS0VSTl9JTkZPICJpZGUtdGFwZTogQ29tbWFuZCBQ
YWNrZXQgU2l6ZTogIik7DQogCXN3aXRjaCAoZ2N3LnBhY2tldF9zaXplKSB7
DQotCQljYXNlIDA6IHByaW50ayhLRVJOX0lORk8gIjEyIGJ5dGVzXG4iKTti
cmVhazsNCi0JCWNhc2UgMTogcHJpbnRrKEtFUk5fSU5GTyAiMTYgYnl0ZXNc
biIpO2JyZWFrOw0KLQkJZGVmYXVsdDogcHJpbnRrKEtFUk5fSU5GTyAiUmVz
ZXJ2ZWRcbiIpO2JyZWFrOw0KKwkJY2FzZSAwOiBwcmludGsoIjEyIGJ5dGVz
XG4iKTticmVhazsNCisJCWNhc2UgMTogcHJpbnRrKCIxNiBieXRlc1xuIik7
YnJlYWs7DQorCQlkZWZhdWx0OiBwcmludGsoIlJlc2VydmVkXG4iKTticmVh
azsNCiAJfQ0KIAlwcmludGsoS0VSTl9JTkZPICJpZGUtdGFwZTogTW9kZWw6
ICUuNDBzXG4iLGlkLT5tb2RlbCk7DQogCXByaW50ayhLRVJOX0lORk8gImlk
ZS10YXBlOiBGaXJtd2FyZSBSZXZpc2lvbjogJS44c1xuIixpZC0+ZndfcmV2
KTsNCkBAIC01ODU2LDQ0ICs1OTIzLDQ0IEBADQogCXByaW50ayhLRVJOX0lO
Rk8gImlkZS10YXBlOiBTaW5nbGUgV29yZCBETUEgc3VwcG9ydGVkIG1vZGVz
OiAiKTsNCiAJZm9yIChpPTAsbWFzaz0xO2k8ODtpKyssbWFzaz1tYXNrIDw8
IDEpIHsNCiAJCWlmIChpZC0+ZG1hXzF3b3JkICYgbWFzaykNCi0JCQlwcmlu
dGsoS0VSTl9JTkZPICIlZCAiLGkpOw0KKwkJCXByaW50aygiJWQgIixpKTsN
CiAJCWlmIChpZC0+ZG1hXzF3b3JkICYgKG1hc2sgPDwgOCkpDQotCQkJcHJp
bnRrKEtFUk5fSU5GTyAiKGFjdGl2ZSkgIik7DQorCQkJcHJpbnRrKCIoYWN0
aXZlKSAiKTsNCiAJfQ0KLQlwcmludGsoS0VSTl9JTkZPICJcbiIpOw0KKwlw
cmludGsoIlxuIik7DQogCXByaW50ayhLRVJOX0lORk8gImlkZS10YXBlOiBN
dWx0aSBXb3JkIERNQSBzdXBwb3J0ZWQgbW9kZXM6ICIpOw0KIAlmb3IgKGk9
MCxtYXNrPTE7aTw4O2krKyxtYXNrPW1hc2sgPDwgMSkgew0KIAkJaWYgKGlk
LT5kbWFfbXdvcmQgJiBtYXNrKQ0KLQkJCXByaW50ayhLRVJOX0lORk8gIiVk
ICIsaSk7DQorCQkJcHJpbnRrKCIlZCAiLGkpOw0KIAkJaWYgKGlkLT5kbWFf
bXdvcmQgJiAobWFzayA8PCA4KSkNCi0JCQlwcmludGsoS0VSTl9JTkZPICIo
YWN0aXZlKSAiKTsNCisJCQlwcmludGsoIihhY3RpdmUpICIpOw0KIAl9DQot
CXByaW50ayhLRVJOX0lORk8gIlxuIik7DQorCXByaW50aygiXG4iKTsNCiAJ
aWYgKGlkLT5maWVsZF92YWxpZCAmIDB4MDAwMikgew0KIAkJcHJpbnRrKEtF
Uk5fSU5GTyAiaWRlLXRhcGU6IEVuaGFuY2VkIFBJTyBNb2RlczogJXNcbiIs
aWQtPmVpZGVfcGlvX21vZGVzICYgMSA/ICJNb2RlIDMiOiJOb25lIik7DQog
CQlwcmludGsoS0VSTl9JTkZPICJpZGUtdGFwZTogTWluaW11bSBNdWx0aS13
b3JkIERNQSBjeWNsZSBwZXIgd29yZDogIik7DQogCQlpZiAoaWQtPmVpZGVf
ZG1hX21pbiA9PSAwKQ0KLQkJCXByaW50ayhLRVJOX0lORk8gIk5vdCBzdXBw
b3J0ZWRcbiIpOw0KKwkJCXByaW50aygiTm90IHN1cHBvcnRlZFxuIik7DQog
CQllbHNlDQotCQkJcHJpbnRrKEtFUk5fSU5GTyAiJWQgbnNcbiIsaWQtPmVp
ZGVfZG1hX21pbik7DQorCQkJcHJpbnRrKCIlZCBuc1xuIixpZC0+ZWlkZV9k
bWFfbWluKTsNCiANCiAJCXByaW50ayhLRVJOX0lORk8gImlkZS10YXBlOiBN
YW51ZmFjdHVyZXJcJ3MgUmVjb21tZW5kZWQgTXVsdGktd29yZCBjeWNsZTog
Iik7DQogCQlpZiAoaWQtPmVpZGVfZG1hX3RpbWUgPT0gMCkNCi0JCQlwcmlu
dGsoS0VSTl9JTkZPICJOb3Qgc3VwcG9ydGVkXG4iKTsNCisJCQlwcmludGso
Ik5vdCBzdXBwb3J0ZWRcbiIpOw0KIAkJZWxzZQ0KLQkJCXByaW50ayhLRVJO
X0lORk8gIiVkIG5zXG4iLGlkLT5laWRlX2RtYV90aW1lKTsNCisJCQlwcmlu
dGsoIiVkIG5zXG4iLGlkLT5laWRlX2RtYV90aW1lKTsNCiANCiAJCXByaW50
ayhLRVJOX0lORk8gImlkZS10YXBlOiBNaW5pbXVtIFBJTyBjeWNsZSB3aXRo
b3V0IElPUkRZOiAiKTsNCiAJCWlmIChpZC0+ZWlkZV9waW8gPT0gMCkNCi0J
CQlwcmludGsoS0VSTl9JTkZPICJOb3Qgc3VwcG9ydGVkXG4iKTsNCisJCQlw
cmludGsoIk5vdCBzdXBwb3J0ZWRcbiIpOw0KIAkJZWxzZQ0KLQkJCXByaW50
ayhLRVJOX0lORk8gIiVkIG5zXG4iLGlkLT5laWRlX3Bpbyk7DQorCQkJcHJp
bnRrKCIlZCBuc1xuIixpZC0+ZWlkZV9waW8pOw0KIA0KIAkJcHJpbnRrKEtF
Uk5fSU5GTyAiaWRlLXRhcGU6IE1pbmltdW0gUElPIGN5Y2xlIHdpdGggSU9S
RFk6ICIpOw0KIAkJaWYgKGlkLT5laWRlX3Bpb19pb3JkeSA9PSAwKQ0KLQkJ
CXByaW50ayhLRVJOX0lORk8gIk5vdCBzdXBwb3J0ZWRcbiIpOw0KKwkJCXBy
aW50aygiTm90IHN1cHBvcnRlZFxuIik7DQogCQllbHNlDQotCQkJcHJpbnRr
KEtFUk5fSU5GTyAiJWQgbnNcbiIsaWQtPmVpZGVfcGlvX2lvcmR5KTsNCisJ
CQlwcmludGsoIiVkIG5zXG4iLGlkLT5laWRlX3Bpb19pb3JkeSk7DQogCQkN
CiAJfSBlbHNlDQogCQlwcmludGsoS0VSTl9JTkZPICJpZGUtdGFwZTogQWNj
b3JkaW5nIHRvIHRoZSBkZXZpY2UsIGZpZWxkcyA2NC03MCBhcmUgbm90IHZh
bGlkLlxuIik7DQpAQCAtNjIwNSw5ICs2MjcyLDkgQEANCiAgKgkJCWRyaXZl
CXNldHRpbmcgbmFtZQlyZWFkL3dyaXRlCWlvY3RsCWlvY3RsCQlkYXRhIHR5
cGUJbWluCQkJbWF4CQkJbXVsX2ZhY3RvcgkJCWRpdl9mYWN0b3IJCQlkYXRh
IHBvaW50ZXIJCQkJc2V0IGZ1bmN0aW9uDQogICovDQogCWlkZV9hZGRfc2V0
dGluZyhkcml2ZSwJImJ1ZmZlciIsCVNFVFRJTkdfUkVBRCwJLTEsCS0xLAkJ
VFlQRV9TSE9SVCwJMCwJCQkweGZmZmYsCQkJMSwJCQkJMiwJCQkJJnRhcGUt
PmNhcGFiaWxpdGllcy5idWZmZXJfc2l6ZSwJTlVMTCk7DQotCWlkZV9hZGRf
c2V0dGluZyhkcml2ZSwJInBpcGVsaW5lX21pbiIsCVNFVFRJTkdfUlcsCS0x
LAktMSwJCVRZUEVfSU5ULAkyLAkJCTB4ZmZmZiwJCQl0YXBlLT5zdGFnZV9z
aXplIC8gMTAyNCwJMSwJCQkJJnRhcGUtPm1pbl9waXBlbGluZSwJCQlOVUxM
KTsNCi0JaWRlX2FkZF9zZXR0aW5nKGRyaXZlLAkicGlwZWxpbmUiLAlTRVRU
SU5HX1JXLAktMSwJLTEsCQlUWVBFX0lOVCwJMiwJCQkweGZmZmYsCQkJdGFw
ZS0+c3RhZ2Vfc2l6ZSAvIDEwMjQsCTEsCQkJCSZ0YXBlLT5tYXhfc3RhZ2Vz
LAkJCU5VTEwpOw0KLQlpZGVfYWRkX3NldHRpbmcoZHJpdmUsCSJwaXBlbGlu
ZV9tYXgiLAlTRVRUSU5HX1JXLAktMSwJLTEsCQlUWVBFX0lOVCwJMiwJCQkw
eGZmZmYsCQkJdGFwZS0+c3RhZ2Vfc2l6ZSAvIDEwMjQsCTEsCQkJCSZ0YXBl
LT5tYXhfcGlwZWxpbmUsCQkJTlVMTCk7DQorCWlkZV9hZGRfc2V0dGluZyhk
cml2ZSwJInBpcGVsaW5lX21pbiIsCVNFVFRJTkdfUlcsCS0xLAktMSwJCVRZ
UEVfSU5ULAkxLAkJCTB4ZmZmZiwJCQl0YXBlLT5zdGFnZV9zaXplIC8gMTAy
NCwJMSwJCQkJJnRhcGUtPm1pbl9waXBlbGluZSwJCQlOVUxMKTsNCisJaWRl
X2FkZF9zZXR0aW5nKGRyaXZlLAkicGlwZWxpbmUiLAlTRVRUSU5HX1JXLAkt
MSwJLTEsCQlUWVBFX0lOVCwJMSwJCQkweGZmZmYsCQkJdGFwZS0+c3RhZ2Vf
c2l6ZSAvIDEwMjQsCTEsCQkJCSZ0YXBlLT5tYXhfc3RhZ2VzLAkJCU5VTEwp
Ow0KKwlpZGVfYWRkX3NldHRpbmcoZHJpdmUsCSJwaXBlbGluZV9tYXgiLAlT
RVRUSU5HX1JXLAktMSwJLTEsCQlUWVBFX0lOVCwJMSwJCQkweGZmZmYsCQkJ
dGFwZS0+c3RhZ2Vfc2l6ZSAvIDEwMjQsCTEsCQkJCSZ0YXBlLT5tYXhfcGlw
ZWxpbmUsCQkJTlVMTCk7DQogCWlkZV9hZGRfc2V0dGluZyhkcml2ZSwJInBp
cGVsaW5lX3VzZWQiLFNFVFRJTkdfUkVBRCwJLTEsCS0xLAkJVFlQRV9JTlQs
CTAsCQkJMHhmZmZmLAkJCXRhcGUtPnN0YWdlX3NpemUgLyAxMDI0LAkxLAkJ
CQkmdGFwZS0+bnJfc3RhZ2VzLAkJCU5VTEwpOw0KIAlpZGVfYWRkX3NldHRp
bmcoZHJpdmUsCSJwaXBlbGluZV9wZW5kaW5nIixTRVRUSU5HX1JFQUQsLTEs
CS0xLAkJVFlQRV9JTlQsCTAsCQkJMHhmZmZmLAkJCXRhcGUtPnN0YWdlX3Np
emUgLyAxMDI0LAkxLAkJCQkmdGFwZS0+bnJfcGVuZGluZ19zdGFnZXMsCQlO
VUxMKTsNCiAJaWRlX2FkZF9zZXR0aW5nKGRyaXZlLAkic3BlZWQiLAlTRVRU
SU5HX1JFQUQsCS0xLAktMSwJCVRZUEVfU0hPUlQsCTAsCQkJMHhmZmZmLAkJ
CTEsCQkJCTEsCQkJCSZ0YXBlLT5jYXBhYmlsaXRpZXMuc3BlZWQsCQlOVUxM
KTsNCkBAIC02MzE3LDggKzYzODQsMTEgQEANCiAJc2lfbWVtaW5mbygmc2kp
Ow0KIAlpZiAodGFwZS0+bWF4X3N0YWdlcyAqIHRhcGUtPnN0YWdlX3NpemUg
PiBzaS50b3RhbHJhbSAqIHNpLm1lbV91bml0IC8gMTApDQogCQl0YXBlLT5t
YXhfc3RhZ2VzID0gc2kudG90YWxyYW0gKiBzaS5tZW1fdW5pdCAvICgxMCAq
IHRhcGUtPnN0YWdlX3NpemUpOw0KLQl0YXBlLT5taW5fcGlwZWxpbmUgPSB0
YXBlLT5tYXhfc3RhZ2VzOw0KLQl0YXBlLT5tYXhfcGlwZWxpbmUgPSB0YXBl
LT5tYXhfc3RhZ2VzICogMjsNCisJdGFwZS0+bWF4X3N0YWdlcyAgID0gSURF
X01JTih0YXBlLT5tYXhfc3RhZ2VzLCBJREVUQVBFX01BWF9QSVBFTElORV9T
VEFHRVMpOw0KKwl0YXBlLT5taW5fcGlwZWxpbmUgPSBJREVfTUlOKHRhcGUt
Pm1heF9zdGFnZXMsIElERVRBUEVfTUlOX1BJUEVMSU5FX1NUQUdFUyk7DQor
CXRhcGUtPm1heF9waXBlbGluZSA9IElERV9NSU4odGFwZS0+bWF4X3N0YWdl
cyAqIDIsIElERVRBUEVfTUFYX1BJUEVMSU5FX1NUQUdFUyk7DQorCWlmICh0
YXBlLT5tYXhfc3RhZ2VzID09IDApDQorCQl0YXBlLT5tYXhfc3RhZ2VzID0g
dGFwZS0+bWluX3BpcGVsaW5lID0gdGFwZS0+bWF4X3BpcGVsaW5lID0gMTsN
CiANCiAJdDEgPSAodGFwZS0+c3RhZ2Vfc2l6ZSAqIEhaKSAvIChzcGVlZCAq
IDEwMDApOw0KIAl0bWlkID0gKHRhcGUtPmNhcGFiaWxpdGllcy5idWZmZXJf
c2l6ZSAqIDMyICogSFopIC8gKHNwZWVkICogMTI1KTsNCg==
---2084555674-1839264800-1039554928=:11565--
-
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/