[PATCH] 2.5.24 IDE 96

Bartlomiej Zolnierkiewicz (B.Zolnierkiewicz@elka.pw.edu.pl)
Tue, 2 Jul 2002 23:46:03 +0200 (MET DST)


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.

---559023410-851401618-1025646363=:18786
Content-Type: TEXT/PLAIN; charset=US-ASCII

Ok, this should fix some pending issues...

Tue Jul 2 21:27:44 CEST 2002 ide-clean-96

- revert to previous (2.4.x + channel->lock) locking scheme

- bring back ide__sti() calls

- fix bug introduced in IDE 63 in ide_do_drive_cmd(), if action is ide_end
request should be added to end of queue not next to current request,
fortunately it is used only by ide-tape which is broken anyway

- fix bug introduced in IDE 94 in idedisk_do_request(), removal of
rq->special = ar; probably needed by PMAC and TCQ

- fix bug introduced in IDE 94 in do_request(), always setting IDE_BUSY
bit could lead to deadlock

- in check_crc_errors() do strict checking for UDMA modes

- clean double setting handler/timer hack

- remove CAP_SYS_ADMIN check from HDIO_GET* ioctls

---559023410-851401618-1025646363=:18786
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ide-clean-96.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.4.30.0207022346030.18786@mion.elka.pw.edu.pl>
Content-Description:
Content-Disposition: attachment; filename="ide-clean-96.diff"

ZGlmZiAtdXIgLVhkb250ZGlmZiBsaW51eC0yLjUuMjQvZHJpdmVycy9pZGUv
ZGV2aWNlLmMgbGludXgvZHJpdmVycy9pZGUvZGV2aWNlLmMNCi0tLSBsaW51
eC0yLjUuMjQvZHJpdmVycy9pZGUvZGV2aWNlLmMJVHVlIEp1biAxOCAwMDoy
OTowMiAyMDAyDQorKysgbGludXgvZHJpdmVycy9pZGUvZGV2aWNlLmMJVHVl
IEp1bCAgMiAxNzozMDoyMCAyMDAyDQpAQCAtODYsMTQgKzg2LDIxIEBADQog
ICovDQogaW50IGF0YV9idXN5X3BvbGwoc3RydWN0IGF0YV9kZXZpY2UgKmRy
aXZlLCB1bnNpZ25lZCBsb25nIHRpbWVvdXQpDQogew0KKwl1bnNpZ25lZCBs
b25nIGZsYWdzOw0KKw0KIAkvKiBzcGVjIGFsbG93cyBkcml2ZSA0MDBucyB0
byBhc3NlcnQgIkJVU1kiICovDQogCXVkZWxheSgxKTsNCiAJaWYgKCFhdGFf
c3RhdHVzKGRyaXZlLCAwLCBCVVNZX1NUQVQpKSB7DQorCQlfX3NhdmVfZmxh
Z3MoZmxhZ3MpOw0KKwkJaWRlX19zdGkoKTsNCiAJCXRpbWVvdXQgKz0gamlm
ZmllczsNCiAJCXdoaWxlICghYXRhX3N0YXR1cyhkcml2ZSwgMCwgQlVTWV9T
VEFUKSkgew0KLQkJCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIHRpbWVvdXQp
KQ0KKwkJCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIHRpbWVvdXQpKSB7DQor
CQkJCV9fcmVzdG9yZV9mbGFncyhmbGFncyk7DQogCQkJCXJldHVybiAxOw0K
KwkJCX0NCiAJCX0NCisJCV9fcmVzdG9yZV9mbGFncyhmbGFncyk7DQogCX0N
CiANCiAJcmV0dXJuIDA7DQpAQCAtMTAxLDggKzEwOCw2IEBADQogDQogLyoN
CiAgKiBDaGVjayB0aGUgc3RhdGUgb2YgdGhlIHN0YXR1cyByZWdpc3Rlci4N
Ci0gKg0KLSAqIEZJWE1FOiBDaGFubmVsIGxvY2sgc2hvdWxkIGJlIGhlbGQu
DQogICovDQogaW50IGF0YV9zdGF0dXMoc3RydWN0IGF0YV9kZXZpY2UgKmRy
aXZlLCB1OCBnb29kLCB1OCBiYWQpDQogew0KQEAgLTEyNSw4ICsxMzAsNiBA
QA0KICAqIFRoYXQgY291bGQgYmUgZG9uZSBieSBidXN5LXdhaXRpbmcgZm9y
IHRoZSBmaXJzdCBqaWZmeSBvciB0d28sIGFuZCB0aGVuDQogICogc2V0dGlu
ZyBhIHRpbWVyIHRvIHdha2UgdXAgYXQgaGFsZiBzZWNvbmQgaW50ZXJ2YWxz
IHRoZXJlYWZ0ZXIsIHVudGlsDQogICogdGltZW91dCBpcyBhY2hpZXZlZCwg
YmVmb3JlIHRpbWluZyBvdXQuDQotICoNCi0gKiBDaGFubmVsIGxvY2sgc2hv
dWxkIGJlIGhlbGQuDQogICovDQogaW50IGF0YV9zdGF0dXNfcG9sbChzdHJ1
Y3QgYXRhX2RldmljZSAqZHJpdmUsIHU4IGdvb2QsIHU4IGJhZCwNCiAJCXVu
c2lnbmVkIGxvbmcgdGltZW91dCwNCmRpZmYgLXVyIC1YZG9udGRpZmYgbGlu
dXgtMi41LjI0L2RyaXZlcnMvaWRlL2lkZS1jZC5jIGxpbnV4L2RyaXZlcnMv
aWRlL2lkZS1jZC5jDQotLS0gbGludXgtMi41LjI0L2RyaXZlcnMvaWRlL2lk
ZS1jZC5jCVRodSBKdW4gMjcgMTM6MzQ6NDIgMjAwMg0KKysrIGxpbnV4L2Ry
aXZlcnMvaWRlL2lkZS1jZC5jCVR1ZSBKdWwgIDIgMTY6NTM6NTUgMjAwMg0K
QEAgLTEyMTMsNyArMTIxMyw3IEBADQogCWlmIChjZHJvbV9yZWFkX2Zyb21f
YnVmZmVyKGRyaXZlLCBycSkpDQogCQlyZXR1cm4gaWRlX3N0b3BwZWQ7DQog
DQotCV9fYmxrX2F0dGVtcHRfcmVtZXJnZSgmZHJpdmUtPnF1ZXVlLCBycSk7
DQorCWJsa19hdHRlbXB0X3JlbWVyZ2UoJmRyaXZlLT5xdWV1ZSwgcnEpOw0K
IA0KIAkvKiBDbGVhciB0aGUgbG9jYWwgc2VjdG9yIGJ1ZmZlci4gKi8NCiAJ
aW5mby0+bnNlY3RvcnNfYnVmZmVyZWQgPSAwOw0KQEAgLTE1OTEsNyArMTU5
MSw3IEBADQogCSAqIHJlbWVyZ2UgcmVxdWVzdHMsIG9mdGVuIHRoZSBwbHVn
Z2luZyB3aWxsIG5vdCBoYXZlIGhhZCB0aW1lDQogCSAqIHRvIGRvIHRoaXMg
cHJvcGVybHkNCiAJICovDQotCV9fYmxrX2F0dGVtcHRfcmVtZXJnZSgmZHJp
dmUtPnF1ZXVlLCBycSk7DQorCWJsa19hdHRlbXB0X3JlbWVyZ2UoJmRyaXZl
LT5xdWV1ZSwgcnEpOw0KIA0KIAlpbmZvLT5uc2VjdG9yc19idWZmZXJlZCA9
IDA7DQogDQpkaWZmIC11ciAtWGRvbnRkaWZmIGxpbnV4LTIuNS4yNC9kcml2
ZXJzL2lkZS9pZGUtZGlzay5jIGxpbnV4L2RyaXZlcnMvaWRlL2lkZS1kaXNr
LmMNCi0tLSBsaW51eC0yLjUuMjQvZHJpdmVycy9pZGUvaWRlLWRpc2suYwlU
aHUgSnVuIDI3IDEzOjM0OjQyIDIwMDINCisrKyBsaW51eC9kcml2ZXJzL2lk
ZS9pZGUtZGlzay5jCVR1ZSBKdWwgIDIgMTc6Mzc6MTEgMjAwMg0KQEAgLTEw
NywxMSArMTA3LDYgQEANCiB9DQogDQogLyoNCi0gKiBUaGUgZm9sbG93aW5n
IElSUSBoYW5kbGVycyAoKl9pbnRyKSBzaG91bGQgYmUgY2FsbGVkDQotICog
d2l0aCB0aGUgY2hhbm5lbCBsb2NrIGhlbGQgYW5kIGludGVycnVwdHMgZGlz
YWJsZWQuDQotICovDQotDQotLyoNCiAgKiBIYW5kbGVyIGZvciBjb21tYW5k
IHdpdGggUElPIGRhdGEtaW4gcGhhc2UuDQogICovDQogc3RhdGljIGlkZV9z
dGFydHN0b3BfdCB0YXNrX2luX2ludHIoc3RydWN0IGF0YV9kZXZpY2UgKmRy
aXZlLCBzdHJ1Y3QgcmVxdWVzdCAqcnEpDQpAQCAtMjU3LDcgKzI1Miw2IEBA
DQogDQogc3RhdGljIGlkZV9zdGFydHN0b3BfdCB0YXNrX211bG91dF9pbnRy
KHN0cnVjdCBhdGFfZGV2aWNlICpkcml2ZSwgc3RydWN0IHJlcXVlc3QgKnJx
KQ0KIHsNCi0Jc3RydWN0IGF0YV9jaGFubmVsICpjaCA9IGRyaXZlLT5jaGFu
bmVsOw0KIAlpbnQgb2s7DQogCWludCByZXQ7DQogDQpAQCAtMjc5LDE0ICsy
NzMsMTYgQEANCiAJCXJxLT5iaW8gPSBOVUxMOw0KIAkJcmV0ID0gaWRlX3N0
b3BwZWQ7DQogCX0gZWxzZSBpZiAoIW9rKSB7DQotCQkvKiBubyBkYXRhIHll
dCwgc28gd2FpdCBmb3IgYW5vdGhlciBpbnRlcnJ1cHQgKi8NCi0JCS8qIEZJ
WE1FOiAgLS1iem9sbmllciAqLw0KLQkJaWYgKCFjaC0+aGFuZGxlcikNCi0J
CQlhdGFfc2V0X2hhbmRsZXIoZHJpdmUsIHRhc2tfbXVsb3V0X2ludHIsIFdB
SVRfQ01ELCBOVUxMKTsNCisJCS8qIG5vdCByZWFkeSB5ZXQsIHNvIHdhaXQg
Zm9yIG5leHQgSVJRICovDQorCQlhdGFfc2V0X2hhbmRsZXIoZHJpdmUsIHRh
c2tfbXVsb3V0X2ludHIsIFdBSVRfQ01ELCBOVUxMKTsNCisNCiAJCXJldCA9
IGlkZV9zdGFydGVkOw0KIAl9IGVsc2Ugew0KIAkJaW50IG1jb3VudCA9IGRy
aXZlLT5tdWx0X2NvdW50Ow0KIA0KKwkJLyogcHJlcGFyZSBmb3IgbmV4dCBJ
UlEgKi8NCisJCWF0YV9zZXRfaGFuZGxlcihkcml2ZSwgdGFza19tdWxvdXRf
aW50ciwgV0FJVF9DTUQsIE5VTEwpOw0KKw0KIAkJZG8gew0KIAkJCWNoYXIg
KmJ1ZjsNCiAJCQlpbnQgbnNlY3QgPSBycS0+Y3VycmVudF9ucl9zZWN0b3Jz
Ow0KQEAgLTMxNCw2ICszMTAsNyBAQA0KIAkJCQkJcnEtPmN1cnJlbnRfbnJf
c2VjdG9ycyA9IGJpb19pb3ZlYyhiaW8pLT5idl9sZW4gPj4gOTsNCiAJCQkJ
fQ0KIAkJCX0NCisJCQlycS0+ZXJyb3JzID0gMDsgLyogRklYTUU6IHdoeT8g
IC0tYnpvbG5pZXIgKi8NCiANCiAJCQkvKg0KIAkJCSAqIE9rLCB3ZSdyZSBh
bGwgc2V0dXAgZm9yIHRoZSBpbnRlcnJ1cHQgcmUtZW50ZXJpbmcgdXMgb24g
dGhlDQpAQCAtMzIzLDEyICszMjAsNiBAQA0KIAkJCWJpb19rdW5tYXBfaXJx
KGJ1ZiwgJmZsYWdzKTsNCiAJCX0gd2hpbGUgKG1jb3VudCk7DQogDQotCQly
cS0+ZXJyb3JzID0gMDsNCi0NCi0JCS8qIEZJWE1FOiAgLS1iem9sbmllciAq
Lw0KLQkJaWYgKCFjaC0+aGFuZGxlcikNCi0JCQlhdGFfc2V0X2hhbmRsZXIo
ZHJpdmUsIHRhc2tfbXVsb3V0X2ludHIsIFdBSVRfQ01ELCBOVUxMKTsNCi0N
CiAJCXJldCA9IGlkZV9zdGFydGVkOw0KIAl9DQogDQpAQCAtMzM5LDggKzMz
MCw2IEBADQogICogSXNzdWUgYSBSRUFEIG9yIFdSSVRFIGNvbW1hbmQgdG8g
YSBkaXNrLCB1c2luZyBMQkEgaWYgc3VwcG9ydGVkLCBvciBDSFMNCiAgKiBv
dGhlcndpc2UsIHRvIGFkZHJlc3Mgc2VjdG9ycy4gIEl0IGFsc28gdGFrZXMg
Y2FyZSBvZiBpc3N1aW5nIHNwZWNpYWwNCiAgKiBEUklWRV9DTURzLg0KLSAq
DQotICogQ2hhbm5lbCBsb2NrIHNob3VsZCBiZSBoZWxkLg0KICAqLw0KIHN0
YXRpYyBpZGVfc3RhcnRzdG9wX3QgaWRlZGlza19kb19yZXF1ZXN0KHN0cnVj
dCBhdGFfZGV2aWNlICpkcml2ZSwgc3RydWN0IHJlcXVlc3QgKnJxLCBzZWN0
b3JfdCBibG9jaykNCiB7DQpAQCAtNTI2LDEwICs1MTUsNyBAQA0KIAkJcHJp
bnRrKCJidWZmZXI9JXBcbiIsIHJxLT5idWZmZXIpOw0KICNlbmRpZg0KIAl9
DQotDQotCS8qDQotCSAqIENoYW5uZWwgbG9jayBzaG91bGQgYmUgaGVsZCBv
biBlbnRyeS4NCi0JICovDQorCXJxLT5zcGVjaWFsID0gYXI7DQogDQogCS8q
IChrcy9ocyk6IE1vdmVkIHRvIHN0YXJ0LCBkbyBub3QgdXNlIGZvciBtdWx0
aXBsZSBvdXQgY29tbWFuZHMuDQogCSAqIEZJWE1FOiB3aHkgbm90PyEgKi8N
CkBAIC01NTIsMjggKzUzOCwyNSBAQA0KIAkvKiBGSVhNRTogdGhpcyBpcyBh
Y3R1YWxseSBkaXN0aW5ndXNoaW5nIGJldHdlZW4gUElPIGFuZCBETUEgcmVx
dWVzdHMuDQogCSAqLw0KIAlpZiAoYXItPlhYWF9oYW5kbGVyKSB7DQorCQlp
ZiAoYXItPmNvbW1hbmRfdHlwZSA9PSBJREVfRFJJVkVfVEFTS19JTiB8fA0K
KwkJICAgIGFyLT5jb21tYW5kX3R5cGUgPT0gSURFX0RSSVZFX1RBU0tfTk9f
REFUQSkgew0KKw0KKwkJCWF0YV9zZXRfaGFuZGxlcihkcml2ZSwgYXItPlhY
WF9oYW5kbGVyLCBXQUlUX0NNRCwgTlVMTCk7DQorCQkJT1VUX0JZVEUoY21k
LCBJREVfQ09NTUFORF9SRUcpOw0KIA0KLQkJYXRhX3NldF9oYW5kbGVyKGRy
aXZlLCBhci0+WFhYX2hhbmRsZXIsIFdBSVRfQ01ELCBOVUxMKTsNCi0JCU9V
VF9CWVRFKGNtZCwgSURFX0NPTU1BTkRfUkVHKTsNCisJCQlyZXR1cm4gaWRl
X3N0YXJ0ZWQ7DQorCQl9DQogDQogCQkvKiBGSVhNRTogV2FybmluZyBjaGVj
ayBmb3IgcmFjZSBiZXR3ZWVuIGhhbmRsZXIgYW5kIHByZWhhbmRsZXINCiAJ
CSAqIGZvciB3cml0aW5nIGZpcnN0IGJsb2NrIG9mIGRhdGEuICBob3dldmVy
IHNpbmNlIHdlIGFyZSB3ZWxsDQogCQkgKiBpbnNpZGUgdGhlIGJvdW5kYXJp
ZXMgb2YgdGhlIHNlZWssIHdlIHNob3VsZCBiZSBva2F5Lg0KLQkJICoNCi0J
CSAqIEZJWE1FOiBSZXBsYWNlIHRoZSBzd2l0Y2ggYnkgdXNpbmcgYSBwcm9w
ZXIgY29tbWFuZF90eXBlLg0KKwkJICogRklYTUU6IHNob3VsZCBiZSBmaXhl
ZCAgLS1iem9sbmllcg0KIAkJICovDQotDQotCQlpZiAoY21kID09IENGQV9X
UklURV9TRUNUX1dPX0VSQVNFIHx8DQotCQkgICAgY21kID09IFdJTl9XUklU
RSB8fA0KLQkJICAgIGNtZCA9PSBXSU5fV1JJVEVfRVhUIHx8DQotCQkgICAg
Y21kID09IFdJTl9XUklURV9WRVJJRlkgfHwNCi0JCSAgICBjbWQgPT0gV0lO
X1dSSVRFX0JVRkZFUiB8fA0KLQkJICAgIGNtZCA9PSBXSU5fRE9XTkxPQURf
TUlDUk9DT0RFIHx8DQotCQkgICAgY21kID09IENGQV9XUklURV9NVUxUSV9X
T19FUkFTRSB8fA0KLQkJICAgIGNtZCA9PSBXSU5fTVVMVFdSSVRFIHx8DQot
CQkgICAgY21kID09IFdJTl9NVUxUV1JJVEVfRVhUKSB7DQorCQlpZiAoYXIt
PmNvbW1hbmRfdHlwZSA9PSBJREVfRFJJVkVfVEFTS19SQVdfV1JJVEUpIHsN
CiAJCQlpZGVfc3RhcnRzdG9wX3Qgc3RhcnRzdG9wOw0KIA0KKwkJCU9VVF9C
WVRFKGNtZCwgSURFX0NPTU1BTkRfUkVHKTsNCisNCiAJCQlpZiAoYXRhX3N0
YXR1c19wb2xsKGRyaXZlLCBEQVRBX1JFQURZLCBkcml2ZS0+YmFkX3dzdGF0
LA0KIAkJCQkJCVdBSVRfRFJRLCBycSwgJnN0YXJ0c3RvcCkpIHsNCiAJCQkJ
cHJpbnRrKEtFUk5fRVJSICIlczogbm8gRFJRIGFmdGVyIGlzc3VpbmcgJXNc
biIsDQpAQCAtNTkxLDcgKzU3NCwxMCBAQA0KIAkJCQl1bnNpZ25lZCBsb25n
IGZsYWdzOw0KIAkJCQljaGFyICpidWYgPSBpZGVfbWFwX3JxKHJxLCAmZmxh
Z3MpOw0KIA0KKwkJCQlhdGFfc2V0X2hhbmRsZXIoZHJpdmUsIGFyLT5YWFhf
aGFuZGxlciwgV0FJVF9DTUQsIE5VTEwpOw0KKw0KIAkJCQkvKiBGb3IgV3Jp
dGVfc2VjdG9ycyB3ZSBuZWVkIHRvIHN0dWZmIHRoZSBmaXJzdCBzZWN0b3Ig
Ki8NCisJCQkJLyogRklYTUU6IHdoYXQgaWYgIXJxLT5jdXJyZW50X25yX3Nl
Y3RvcnMgIC0tYnpvbG5pZXIgKi8NCiAJCQkJYXRhX3dyaXRlKGRyaXZlLCBi
dWYsIFNFQ1RPUl9XT1JEUyk7DQogDQogCQkJCXJxLT5jdXJyZW50X25yX3Nl
Y3RvcnMtLTsNCkBAIC02MjEsNiArNjA3LDcgQEANCiAJCQkJCXByaW50ayhL
RVJOX0VSUiAiRElTQVNURVIgV0FJVElORyBUTyBIQVBQRU4hXG4iKTsNCiAJ
CQkJfQ0KIA0KKwkJCQkvKiB3aWxsIHNldCBoYW5kbGVyIGZvciB1cyAqLw0K
IAkJCQlyZXR1cm4gYXItPlhYWF9oYW5kbGVyKGRyaXZlLCBycSk7DQogCQkJ
fQ0KIAkJfQ0KQEAgLTYzMiw2ICs2MTksNyBAQA0KIAkJICogRklYTUU6IEhh
bmRsZSB0aGUgYWx0ZXJuYXRlaXZlcyBieSBhIGNvbW1hbmQgdHlwZS4NCiAJ
CSAqLw0KIA0KKwkJLyogRklYTUU6IGlkZV9zdGFydGVkPyAgLS1iem9sbmll
ciAqLw0KIAkJaWYgKCFkcml2ZS0+dXNpbmdfZG1hKQ0KIAkJCXJldHVybiBp
ZGVfc3RhcnRlZDsNCiANCkBAIC02NTYsNiArNjQ0LDcgQEANCiAJCX0NCiAJ
fQ0KIA0KKwkvKiBub3QgcmVhY2hlZCAqLw0KIAlyZXR1cm4gaWRlX3N0YXJ0
ZWQ7DQogfQ0KIA0KZGlmZiAtdXIgLVhkb250ZGlmZiBsaW51eC0yLjUuMjQv
ZHJpdmVycy9pZGUvaWRlLWZsb3BweS5jIGxpbnV4L2RyaXZlcnMvaWRlL2lk
ZS1mbG9wcHkuYw0KLS0tIGxpbnV4LTIuNS4yNC9kcml2ZXJzL2lkZS9pZGUt
ZmxvcHB5LmMJVGh1IEp1biAyNyAxMzozNDo0MiAyMDAyDQorKysgbGludXgv
ZHJpdmVycy9pZGUvaWRlLWZsb3BweS5jCVR1ZSBKdWwgIDIgMTc6NDE6MzEg
MjAwMg0KQEAgLTM0Niw2ICszNDYsOCBAQA0KICAqLw0KIHN0YXRpYyBpbnQg
aWRlZmxvcHB5X2VuZF9yZXF1ZXN0KHN0cnVjdCBhdGFfZGV2aWNlICpkcml2
ZSwgc3RydWN0IHJlcXVlc3QgKnJxLCBpbnQgdXB0b2RhdGUpDQogew0KKwl1
bnNpZ25lZCBsb25nIGZsYWdzOw0KKwlzdHJ1Y3QgYXRhX2NoYW5uZWwgKmNo
ID0gZHJpdmUtPmNoYW5uZWw7DQogCWlkZWZsb3BweV9mbG9wcHlfdCAqZmxv
cHB5ID0gZHJpdmUtPmRyaXZlcl9kYXRhOw0KIAlpbnQgZXJyb3I7DQogDQpA
QCAtMzY5LDExICszNzEsMTUgQEANCiAJCXJldHVybiAwOw0KIAl9DQogDQor
CXNwaW5fbG9ja19pcnFzYXZlKGNoLT5sb2NrLCBmbGFncyk7DQorDQogCXJx
LT5lcnJvcnMgPSBlcnJvcjsNCiAJYmxrZGV2X2RlcXVldWVfcmVxdWVzdChy
cSk7DQogCWRyaXZlLT5ycSA9IE5VTEw7DQogCWVuZF90aGF0X3JlcXVlc3Rf
bGFzdChycSk7DQogDQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoY2gtPmxv
Y2ssIGZsYWdzKTsNCisNCiAJcmV0dXJuIDA7DQogfQ0KIA0KZGlmZiAtdXIg
LVhkb250ZGlmZiBsaW51eC0yLjUuMjQvZHJpdmVycy9pZGUvaWRlLXRhcGUu
YyBsaW51eC9kcml2ZXJzL2lkZS9pZGUtdGFwZS5jDQotLS0gbGludXgtMi41
LjI0L2RyaXZlcnMvaWRlL2lkZS10YXBlLmMJVGh1IEp1biAyNyAxMzozNDo0
MiAyMDAyDQorKysgbGludXgvZHJpdmVycy9pZGUvaWRlLXRhcGUuYwlUdWUg
SnVsICAyIDE3OjM5OjU3IDIwMDINCkBAIC0xNjIyLDcgKzE2MjIsNyBAQA0K
IHN0YXRpYyBpbnQgaWRldGFwZV9lbmRfcmVxdWVzdChzdHJ1Y3QgYXRhX2Rl
dmljZSAqZHJpdmUsIHN0cnVjdCByZXF1ZXN0ICpycSwgaW50IHVwdG9kYXRl
KQ0KIHsNCiAJaWRldGFwZV90YXBlX3QgKnRhcGUgPSBkcml2ZS0+ZHJpdmVy
X2RhdGE7DQotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQorCXVuc2lnbmVkIGxv
bmcgZmxhZ3MsIGZsYWdzMjsNCiAJaW50IGVycm9yOw0KIAlpbnQgcmVtb3Zl
X3N0YWdlID0gMDsNCiAjaWYgT05TVFJFQU1fREVCVUcNCkBAIC0xNzA5LDEw
ICsxNzA5LDE1IEBADQogCQl9DQogCX0NCiANCisJLyogRklYTUU6IHJlcGxh
Y2UgdGFwZS0+c3BpbmxvY2sgd2l0aCBjaGFubmVsLT5zcGlubG9jayAgLS1i
em9sbmllciAqLw0KKwlzcGluX2xvY2tfaXJxc2F2ZShkcml2ZS0+Y2hhbm5l
bC0+bG9jaywgZmxhZ3MyKTsNCisNCiAJYmxrZGV2X2RlcXVldWVfcmVxdWVz
dChycSk7DQogCWRyaXZlLT5ycSA9IE5VTEw7DQogCWVuZF90aGF0X3JlcXVl
c3RfbGFzdChycSk7DQogDQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoZHJp
dmUtPmNoYW5uZWwtPmxvY2ssIGZsYWdzMik7DQorDQogCWlmIChyZW1vdmVf
c3RhZ2UpDQogCQlpZGV0YXBlX3JlbW92ZV9zdGFnZV9oZWFkKGRyaXZlKTsN
CiAJaWYgKHRhcGUtPmFjdGl2ZV9kYXRhX3JlcXVlc3QgPT0gTlVMTCkNCmRp
ZmYgLXVyIC1YZG9udGRpZmYgbGludXgtMi41LjI0L2RyaXZlcnMvaWRlL2lk
ZS10YXNrZmlsZS5jIGxpbnV4L2RyaXZlcnMvaWRlL2lkZS10YXNrZmlsZS5j
DQotLS0gbGludXgtMi41LjI0L2RyaXZlcnMvaWRlL2lkZS10YXNrZmlsZS5j
CVRodSBKdW4gMjcgMTM6MzQ6NDIgMjAwMg0KKysrIGxpbnV4L2RyaXZlcnMv
aWRlL2lkZS10YXNrZmlsZS5jCVR1ZSBKdWwgIDIgMTc6MzU6NDcgMjAwMg0K
QEAgLTE5NywxMyArMTk3LDE0IEBADQogaW50IGlkZV9kb19kcml2ZV9jbWQo
c3RydWN0IGF0YV9kZXZpY2UgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAqcnEs
IGlkZV9hY3Rpb25fdCBhY3Rpb24pDQogew0KIAl1bnNpZ25lZCBsb25nIGZs
YWdzOw0KLQl1bnNpZ25lZCBpbnQgbWFqb3IgPSBkcml2ZS0+Y2hhbm5lbC0+
bWFqb3I7DQorCXN0cnVjdCBhdGFfY2hhbm5lbCAqY2ggPSBkcml2ZS0+Y2hh
bm5lbDsNCisJdW5zaWduZWQgaW50IG1ham9yID0gY2gtPm1ham9yOw0KIAly
ZXF1ZXN0X3F1ZXVlX3QgKnEgPSAmZHJpdmUtPnF1ZXVlOw0KIAlzdHJ1Y3Qg
bGlzdF9oZWFkICpxdWV1ZV9oZWFkID0gJnEtPnF1ZXVlX2hlYWQ7DQogCURF
Q0xBUkVfQ09NUExFVElPTih3YWl0KTsNCiANCiAjaWZkZWYgQ09ORklHX0JM
S19ERVZfUERDNDAzMA0KLQlpZiAoZHJpdmUtPmNoYW5uZWwtPmNoaXBzZXQg
PT0gaWRlX3BkYzQwMzAgJiYgcnEtPmJ1ZmZlciAhPSBOVUxMKQ0KKwlpZiAo
Y2gtPmNoaXBzZXQgPT0gaWRlX3BkYzQwMzAgJiYgcnEtPmJ1ZmZlcikNCiAJ
CXJldHVybiAtRU5PU1lTOyAgLyogc3BlY2lhbCBkcml2ZSBjbWRzIG5vdCBz
dXBwb3J0ZWQgKi8NCiAjZW5kaWYNCiAJcnEtPmVycm9ycyA9IDA7DQpAQCAt
MjEyLDIyICsyMTMsMTggQEANCiAJaWYgKGFjdGlvbiA9PSBpZGVfd2FpdCkN
CiAJCXJxLT53YWl0aW5nID0gJndhaXQ7DQogDQotCXNwaW5fbG9ja19pcnFz
YXZlKGRyaXZlLT5jaGFubmVsLT5sb2NrLCBmbGFncyk7DQorCXNwaW5fbG9j
a19pcnFzYXZlKGNoLT5sb2NrLCBmbGFncyk7DQorDQorCWlmIChhY3Rpb24g
PT0gaWRlX3ByZWVtcHQpDQorCQlkcml2ZS0+cnEgPSBOVUxMOw0KKwllbHNl
IGlmICghYmxrX3F1ZXVlX2VtcHR5KCZkcml2ZS0+cXVldWUpKQ0KKwkJcXVl
dWVfaGVhZCA9IHF1ZXVlX2hlYWQtPnByZXY7CS8qIGlkZV9lbmQgYW5kIGlk
ZV93YWl0ICovDQogDQotCWlmIChibGtfcXVldWVfZW1wdHkoJmRyaXZlLT5x
dWV1ZSkgfHwgYWN0aW9uID09IGlkZV9wcmVlbXB0KSB7DQotCQlpZiAoYWN0
aW9uID09IGlkZV9wcmVlbXB0KQ0KLQkJCWRyaXZlLT5ycSA9IE5VTEw7DQot
CX0gZWxzZSB7DQotCQlpZiAoYWN0aW9uID09IGlkZV93YWl0KQ0KLQkJCXF1
ZXVlX2hlYWQgPSBxdWV1ZV9oZWFkLT5wcmV2Ow0KLQkJZWxzZQ0KLQkJCXF1
ZXVlX2hlYWQgPSBxdWV1ZV9oZWFkLT5uZXh0Ow0KLQl9DQogCXEtPmVsZXZh
dG9yLmVsZXZhdG9yX2FkZF9yZXFfZm4ocSwgcnEsIHF1ZXVlX2hlYWQpOw0K
IA0KIAlkb19pZGVfcmVxdWVzdChxKTsNCiANCi0Jc3Bpbl91bmxvY2tfaXJx
cmVzdG9yZShkcml2ZS0+Y2hhbm5lbC0+bG9jaywgZmxhZ3MpOw0KKwlzcGlu
X3VubG9ja19pcnFyZXN0b3JlKGNoLT5sb2NrLCBmbGFncyk7DQogDQogCWlm
IChhY3Rpb24gPT0gaWRlX3dhaXQpIHsNCiAJCXdhaXRfZm9yX2NvbXBsZXRp
b24oJndhaXQpOwkvKiB3YWl0IGZvciBpdCB0byBiZSBzZXJ2aWNlZCAqLw0K
QEAgLTIzNSwyNSArMjMyLDIwIEBADQogCX0NCiANCiAJcmV0dXJuIDA7DQot
DQogfQ0KIA0KIA0KIC8qDQogICogSW52b2tlZCBvbiBjb21wbGV0aW9uIG9m
IGEgc3BlY2lhbCBSRVFfU1BFQ0lBTCBjb21tYW5kLg0KICAqLw0KLS8qDQot
ICogQ2hhbm5lbCBsb2NrIHNob3VsZCBiZSBoZWxkLg0KLSAqLw0KIHN0YXRp
YyBpZGVfc3RhcnRzdG9wX3Qgc3BlY2lhbF9pbnRyKHN0cnVjdCBhdGFfZGV2
aWNlICpkcml2ZSwgc3RydWN0DQogCQlyZXF1ZXN0ICpycSkgew0KLQ0KKwl1
bnNpZ25lZCBsb25nIGZsYWdzOw0KKwlzdHJ1Y3QgYXRhX2NoYW5uZWwgKmNo
ID1kcml2ZS0+Y2hhbm5lbDsNCiAJc3RydWN0IGF0YV90YXNrZmlsZSAqYXIg
PSBycS0+c3BlY2lhbDsNCiAJaWRlX3N0YXJ0c3RvcF90IHJldCA9IGlkZV9z
dG9wcGVkOw0KIA0KLQkvKiBGSVhNRTogIC0tYnpvbG5pZXINCiAJaWRlX19z
dGkoKTsNCi0JKi8NCiANCiAJaWYgKHJxLT5idWZmZXIgJiYgYXItPnRhc2tm
aWxlLnNlY3Rvcl9udW1iZXIpIHsNCiAJCWlmICghYXRhX3N0YXR1cyhkcml2
ZSwgMCwgRFJRX1NUQVQpICYmIGFyLT50YXNrZmlsZS5zZWN0b3JfbnVtYmVy
KSB7DQpAQCAtMjg1LDEwICsyNzcsMTQgQEANCiAJCWF0YV9pbl9yZWdmaWxl
KGRyaXZlLCAmYXItPmhvYmZpbGUpOw0KIAl9DQogDQorCXNwaW5fbG9ja19p
cnFzYXZlKGNoLT5sb2NrLCBmbGFncyk7DQorDQogCWJsa2Rldl9kZXF1ZXVl
X3JlcXVlc3QocnEpOw0KIAlkcml2ZS0+cnEgPSBOVUxMOw0KIAllbmRfdGhh
dF9yZXF1ZXN0X2xhc3QocnEpOw0KIA0KKwlzcGluX3VubG9ja19pcnFyZXN0
b3JlKGNoLT5sb2NrLCBmbGFncyk7DQorDQogCXJldHVybiByZXQ7DQogfQ0K
IA0KZGlmZiAtdXIgLVhkb250ZGlmZiBsaW51eC0yLjUuMjQvZHJpdmVycy9p
ZGUvaWRlLmMgbGludXgvZHJpdmVycy9pZGUvaWRlLmMNCi0tLSBsaW51eC0y
LjUuMjQvZHJpdmVycy9pZGUvaWRlLmMJVGh1IEp1biAyNyAxMzozNDo0MiAy
MDAyDQorKysgbGludXgvZHJpdmVycy9pZGUvaWRlLmMJVHVlIEp1bCAgMiAx
NzozNjoyMyAyMDAyDQpAQCAtMTA2LDE1ICsxMDYsMTQgQEANCiAJcmV0dXJu
IDA7DQogfQ0KIA0KLS8qDQotICogTm90IGxvY2tpbmcgdmFyaWFidCBvZiB0
aGUgZW5kX3JlcXVlc3QgbWV0aG9kLg0KLSAqDQotICogQ2hhbm5lbCBsb2Nr
IHNob3VsZCBiZSBoZWxkLg0KLSAqLw0KIGludCBfX2F0YV9lbmRfcmVxdWVz
dChzdHJ1Y3QgYXRhX2RldmljZSAqZHJpdmUsIHN0cnVjdCByZXF1ZXN0ICpy
cSwgaW50IHVwdG9kYXRlLCB1bnNpZ25lZCBpbnQgbnJfc2VjcykNCiB7DQor
CXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQorCXN0cnVjdCBhdGFfY2hhbm5lbCAq
Y2ggPSBkcml2ZS0+Y2hhbm5lbDsNCiAJaW50IHJldCA9IDE7DQogDQorCXNw
aW5fbG9ja19pcnFzYXZlKGNoLT5sb2NrLCBmbGFncyk7DQorDQogCUJVR19P
TighKHJxLT5mbGFncyAmIFJFUV9TVEFSVEVEKSk7DQogDQogCS8qIEZJWE1F
OiBNYWtlIHRoaXMgInNtYWxsIiBoYWNrIHRvIGVsaW1pbmF0ZSBsb2NraW5n
IGZyb20NCkBAIC0xNDMsNiArMTQyLDcgQEANCiAJCXJldCA9IDA7DQogCX0N
CiANCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShjaC0+bG9jaywgZmxhZ3Mp
Ow0KIA0KIAlyZXR1cm4gcmV0Ow0KIH0NCkBAIC0xNTMsMTQgKzE1MywxNiBA
QA0KICAqIGF0IHRoZSBhcHByb3ByaWF0ZSBjb2RlIHRvIGhhbmRsZSB0aGUg
bmV4dCBpbnRlcnJ1cHQsIGFuZCBhDQogICogdGltZXIgaXMgc3RhcnRlZCB0
byBwcmV2ZW50IHVzIGZyb20gd2FpdGluZyBmb3JldmVyIGluIGNhc2UNCiAg
KiBzb21ldGhpbmcgZ29lcyB3cm9uZyAoc2VlIHRoZSBpZGVfdGltZXJfZXhw
aXJ5KCkgaGFuZGxlciBsYXRlciBvbikuDQotICoNCi0gKiBDaGFubmVsIGxv
Y2sgc2hvdWxkIGJlIGhlbGQuDQogICovDQogdm9pZCBhdGFfc2V0X2hhbmRs
ZXIoc3RydWN0IGF0YV9kZXZpY2UgKmRyaXZlLCBhdGFfaGFuZGxlcl90IGhh
bmRsZXIsDQogCQkgICAgICB1bnNpZ25lZCBsb25nIHRpbWVvdXQsIGF0YV9l
eHBpcnlfdCBleHBpcnkpDQogew0KKwl1bnNpZ25lZCBsb25nIGZsYWdzOw0K
IAlzdHJ1Y3QgYXRhX2NoYW5uZWwgKmNoID0gZHJpdmUtPmNoYW5uZWw7DQog
DQorCXNwaW5fbG9ja19pcnFzYXZlKGNoLT5sb2NrLCBmbGFncyk7DQorDQor
CS8qIEZJWE1FOiBjaGFuZ2UgaXQgbGF0ZXIgdG8gQlVHX09OKGNoLT5oYW5k
bGVyKSAgLS1iem9sbmllciAqLw0KIAlpZiAoY2gtPmhhbmRsZXIpDQogCQlw
cmludGsoIiVzOiAlczogaGFuZGxlciBub3QgbnVsbDsgb2xkPSVwLCBuZXc9
JXAsIGZyb20gJXBcbiIsDQogCQkJZHJpdmUtPm5hbWUsIF9fRlVOQ1RJT05f
XywgY2gtPmhhbmRsZXIsIGhhbmRsZXIsIF9fYnVpbHRpbl9yZXR1cm5fYWRk
cmVzcygwKSk7DQpAQCAtMTcyLDQ4ICsxNzQsMzUgQEANCiANCiAJYWRkX3Rp
bWVyKCZjaC0+dGltZXIpOw0KIA0KKwlzcGluX3VubG9ja19pcnFyZXN0b3Jl
KGNoLT5sb2NrLCBmbGFncyk7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIGNoZWNr
X2NyY19lcnJvcnMoc3RydWN0IGF0YV9kZXZpY2UgKmRyaXZlKQ0KIHsNCiAJ
aWYgKCFkcml2ZS0+dXNpbmdfZG1hKQ0KLQkgICAgcmV0dXJuOw0KKwkJcmV0
dXJuOw0KIA0KIAkvKiBjaGVjayB0aGUgRE1BIGNyYyBjb3VudCAqLw0KIAlp
ZiAoZHJpdmUtPmNyY19jb3VudCkgew0KIAkJdWRtYV9lbmFibGUoZHJpdmUs
IDAsIDApOw0KIAkJaWYgKGRyaXZlLT5jaGFubmVsLT5zcGVlZHByb2MpIHsN
Ci0JCQl1OCBwaW8gPSBYRkVSX1BJT180Ow0KKwkJCXU4IG1vZGUgPSBkcml2
ZS0+Y3VycmVudF9zcGVlZDsNCiAJCQlkcml2ZS0+Y3JjX2NvdW50ID0gMDsN
CiANCi0JCQlzd2l0Y2ggKGRyaXZlLT5jdXJyZW50X3NwZWVkKSB7DQotCQkJ
Y2FzZSBYRkVSX1VETUFfNzogcGlvID0gWEZFUl9VRE1BXzY7DQotCQkJCWJy
ZWFrOw0KLQkJCWNhc2UgWEZFUl9VRE1BXzY6IHBpbyA9IFhGRVJfVURNQV81
Ow0KLQkJCQlicmVhazsNCi0JCQljYXNlIFhGRVJfVURNQV81OiBwaW8gPSBY
RkVSX1VETUFfNDsNCi0JCQkJYnJlYWs7DQotCQkJY2FzZSBYRkVSX1VETUFf
NDogcGlvID0gWEZFUl9VRE1BXzM7DQotCQkJCWJyZWFrOw0KLQkJCWNhc2Ug
WEZFUl9VRE1BXzM6IHBpbyA9IFhGRVJfVURNQV8yOw0KLQkJCQlicmVhazsN
Ci0JCQljYXNlIFhGRVJfVURNQV8yOiBwaW8gPSBYRkVSX1VETUFfMTsNCi0J
CQkJYnJlYWs7DQotCQkJY2FzZSBYRkVSX1VETUFfMTogcGlvID0gWEZFUl9V
RE1BXzA7DQotCQkJCWJyZWFrOw0KKwkJCWlmIChtb2RlID4gWEZFUl9VRE1B
XzApDQorCQkJCW1vZGUtLTsNCisJCQllbHNlDQogCQkJLyoNCiAJCQkgKiBP
T1BTIHdlIGRvIG5vdCBnb3RvIG5vbiBVbHRyYSBETUEgbW9kZXMNCiAJCQkg
KiB3aXRob3V0IGlDUkMncyBhdmFpbGFibGUgd2UgZm9yY2UNCiAJCQkgKiB0
aGUgc3lzdGVtIHRvIFBJTyBhbmQgbWFrZSB0aGUgdXNlcg0KIAkJCSAqIGlu
dm9rZSB0aGUgQVRBLTEgQVRBLTIgRE1BIG1vZGVzLg0KIAkJCSAqLw0KLQkJ
CWNhc2UgWEZFUl9VRE1BXzA6DQotCQkJZGVmYXVsdDoNCi0JCQkJcGlvID0g
WEZFUl9QSU9fNDsNCi0JCQl9DQotCQkgICAgICAgIGRyaXZlLT5jaGFubmVs
LT5zcGVlZHByb2MoZHJpdmUsIHBpbyk7DQorCQkJCW1vZGUgPSBYRkVSX1BJ
T180Ow0KKw0KKwkJCWRyaXZlLT5jaGFubmVsLT5zcGVlZHByb2MoZHJpdmUs
IG1vZGUpOw0KIAkJfQ0KLQkJaWYgKGRyaXZlLT5jdXJyZW50X3NwZWVkID49
IFhGRVJfU1dfRE1BXzApDQorCQlpZiAoZHJpdmUtPmN1cnJlbnRfc3BlZWQg
Pj0gWEZFUl9VRE1BXzApDQogCQkJdWRtYV9lbmFibGUoZHJpdmUsIDEsIDEp
Ow0KIAl9IGVsc2UNCiAJCXVkbWFfZW5hYmxlKGRyaXZlLCAwLCAxKTsNCkBA
IC0yNDYsOCArMjM1LDYgQEANCiAgKiBQb2xsIHRoZSBpbnRlcmZhY2UgZm9y
IGNvbXBsZXRpb24gZXZlcnkgNTBtcyBkdXJpbmcgYW4gQVRBUEkgZHJpdmUg
cmVzZXQNCiAgKiBvcGVyYXRpb24uIElmIHRoZSBkcml2ZSBoYXMgbm90IHll
dCByZXNwb25kZWQsIGFuZCB3ZSBoYXZlIG5vdCB5ZXQgaGl0IG91cg0KICAq
IG1heGltdW0gd2FpdGluZyB0aW1lLCB0aGVuIHRoZSB0aW1lciBpcyByZXN0
YXJ0ZWQgZm9yIGFub3RoZXIgNTBtcy4NCi0gKg0KLSAqIENoYW5uZWwgbG9j
ayBzaG91bGQgYmUgaGVsZC4NCiAgKi8NCiBzdGF0aWMgaWRlX3N0YXJ0c3Rv
cF90IGF0YXBpX3Jlc2V0X3BvbGxmdW5jKHN0cnVjdCBhdGFfZGV2aWNlICpk
cml2ZSwgc3RydWN0IHJlcXVlc3QgKl9fcnEpDQogew0KQEAgLTI3OSw4ICsy
NjYsNiBAQA0KICAqIFBvbGwgdGhlIGludGVyZmFjZSBmb3IgY29tcGxldGlv
biBldmVyeSA1MG1zIGR1cmluZyBhbiBhdGEgcmVzZXQgb3BlcmF0aW9uLg0K
ICAqIElmIHRoZSBkcml2ZXMgaGF2ZSBub3QgeWV0IHJlc3BvbmRlZCwgYW5k
IHdlIGhhdmUgbm90IHlldCBoaXQgb3VyIG1heGltdW0NCiAgKiB3YWl0aW5n
IHRpbWUsIHRoZW4gdGhlIHRpbWVyIGlzIHJlc3RhcnRlZCBmb3IgYW5vdGhl
ciA1MG1zLg0KLSAqDQotICogQ2hhbm5lbCBsb2NrIHNob3VsZCBiZSBoZWxk
Lg0KICAqLw0KIHN0YXRpYyBpZGVfc3RhcnRzdG9wX3QgcmVzZXRfcG9sbGZ1
bmMoc3RydWN0IGF0YV9kZXZpY2UgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAq
X19ycSkNCiB7DQpAQCAtMzQ4LDEwICszMzMsNyBAQA0KICAqIEVxdWFsbHkg
cG9vciwgdGhvdWdoLCBpcyB0aGUgZmFjdCB0aGF0IHRoaXMgbWF5IGEgdmVy
eSBsb25nIHRpbWUgdG8NCiAgKiBjb21wbGV0ZSwgKHVwIHRvIDMwIHNlY29u
ZHMgd29yc3QgY2FzZSkuICBTbywgaW5zdGVhZCBvZiBidXN5LXdhaXRpbmcg
aGVyZQ0KICAqIGZvciBpdCwgd2Ugc2V0IGEgdGltZXIgdG8gcG9sbCBhdCA1
MG1zIGludGVydmFscy4NCi0gKg0KLSAqIENoYW5uZWwgbG9jayBzaG91bGQg
YmUgaGVsZC4NCiAgKi8NCi0NCiBzdGF0aWMgaWRlX3N0YXJ0c3RvcF90IGRv
X3Jlc2V0MShzdHJ1Y3QgYXRhX2RldmljZSAqZHJpdmUsIGludCB0cnlfYXRh
cGkpDQogew0KIAl1bnNpZ25lZCBpbnQgdW5pdDsNCkBAIC01NTgsOCArNTQw
LDYgQEANCiANCiAvKg0KICAqIFRha2UgYWN0aW9uIGJhc2VkIG9uIHRoZSBl
cnJvciByZXR1cm5lZCBieSB0aGUgZHJpdmUuDQotICoNCi0gKiBDaGFubmVs
IGxvY2sgc2hvdWxkIGJlIGhlbGQuDQogICovDQogaWRlX3N0YXJ0c3RvcF90
IGF0YV9lcnJvcihzdHJ1Y3QgYXRhX2RldmljZSAqZHJpdmUsIHN0cnVjdCBy
ZXF1ZXN0ICpycSwJY29uc3QgY2hhciAqbXNnKQ0KIHsNCkBAIC04MTIsNiAr
NzkyLDcgQEANCiAJCXN0cnVjdCBhdGFfY2hhbm5lbCAqY2g7DQogCQlzdHJ1
Y3QgYXRhX2RldmljZSAqZHJpdmU7DQogCQlzdHJ1Y3QgcmVxdWVzdCAqcnEg
PSBOVUxMOw0KKwkJaWRlX3N0YXJ0c3RvcF90IHN0YXJ0c3RvcDsNCiAJCWlu
dCBpOw0KIA0KIAkJLyogdGhpcyB3aWxsIGNsZWFyIElERV9CVVNZLCBpZiBh
cHByb3ByaWF0ZSAqLw0KQEAgLTkwMSwxMiArODgyLDE2IEBADQogDQogCQkJ
ZHJpdmUtPnJxID0gcnE7DQogDQorCQkJc3Bpbl91bmxvY2soY2gtPmxvY2sp
Ow0KIAkJCWlkZV9fc3RpKCk7CS8qIGFsbG93IG90aGVyIElSUXMgd2hpbGUg
d2Ugc3RhcnQgdGhpcyByZXF1ZXN0ICovDQorCQkJc3RhcnRzdG9wID0gc3Rh
cnRfcmVxdWVzdChkcml2ZSwgcnEpOw0KKwkJCXNwaW5fbG9ja19pcnEoY2gt
PmxvY2spOw0KKw0KIAkJCS8qIGNvbW1hbmQgc3RhcnRlZCwgd2UgYXJlIGJ1
c3kgKi8NCi0JCX0gd2hpbGUgKGlkZV9zdGFydGVkICE9IHN0YXJ0X3JlcXVl
c3QoZHJpdmUsIHJxKSk7DQorCQl9IHdoaWxlIChzdGFydHN0b3AgIT0gaWRl
X3N0YXJ0ZWQpOw0KIAkJLyogbWFrZSBzdXJlIHRoZSBCVVNZIGJpdCBpcyBz
ZXQgKi8NCiAJCS8qIEZJWE1FOiBwZXJoYXBzIHRoZXJlIGlzIHNvbWUgcGxh
Y2Ugd2hlcmUgd2UgbWlzcyB0byBzZXQgaXQ/ICovDQotCQlzZXRfYml0KElE
RV9CVVNZLCBjaC0+YWN0aXZlKTsNCisvLwkJc2V0X2JpdChJREVfQlVTWSwg
Y2gtPmFjdGl2ZSk7DQogCX0NCiB9DQogDQpAQCAtMTE2NiwxNSArMTE1MSwx
NiBAQA0KIAljaC0+aGFuZGxlciA9IE5VTEw7DQogCWRlbF90aW1lcigmY2gt
PnRpbWVyKTsNCiANCi0JaWYgKGNoLT51bm1hc2spIHsNCi0JCS8qIEZJWE1F
OiBwZXJoYXBzIGRpc2FibGVfaXJxKGlycSk7IF9fc3RpKCk7ID8gLVp3YW5l
DQorCXNwaW5fdW5sb2NrKGNoLT5sb2NrKTsNCisNCisJaWYgKGNoLT51bm1h
c2spDQogCQlpZGVfX3N0aSgpOw0KLQkJKi8NCi0JfQ0KIA0KIAkvKiBzZXJ2
aWNlIHRoaXMgaW50ZXJydXB0LCBtYXkgc2V0IGhhbmRsZXIgZm9yIG5leHQg
aW50ZXJydXB0ICovDQogCXN0YXJ0c3RvcCA9IGhhbmRsZXIoZHJpdmUsIGRy
aXZlLT5ycSk7DQogDQorCXNwaW5fbG9ja19pcnEoY2gtPmxvY2spOw0KKw0K
IAkvKg0KIAkgKiBOb3RlIHRoYXQgaGFuZGxlcigpIG1heSBoYXZlIHNldCB0
aGluZ3MgdXAgZm9yIGFub3RoZXINCiAJICogaW50ZXJydXB0IHRvIG9jY3Vy
IHNvb24sIGJ1dCBpdCBjYW5ub3QgaGFwcGVuIHVudGlsDQpkaWZmIC11ciAt
WGRvbnRkaWZmIGxpbnV4LTIuNS4yNC9kcml2ZXJzL2lkZS9pb2N0bC5jIGxp
bnV4L2RyaXZlcnMvaWRlL2lvY3RsLmMNCi0tLSBsaW51eC0yLjUuMjQvZHJp
dmVycy9pZGUvaW9jdGwuYwlXZWQgSnVuIDI2IDAwOjAyOjUzIDIwMDINCisr
KyBsaW51eC9kcml2ZXJzL2lkZS9pb2N0bC5jCVN1biBKdW4gMzAgMjI6MTY6
NTAgMjAwMg0KQEAgLTEyMiw5ICsxMjIsNiBAQA0KIAkJY2FzZSBIRElPX0dF
VF8zMkJJVDogew0KIAkJCXVuc2lnbmVkIGxvbmcgdmFsID0gZHJpdmUtPmNo
YW5uZWwtPmlvXzMyYml0Ow0KIA0KLQkJCWlmICghY2FwYWJsZShDQVBfU1lT
X0FETUlOKSkNCi0JCQkJcmV0dXJuIC1FQUNDRVM7DQotDQogCQkJaWYgKHB1
dF91c2VyKHZhbCwgKHVuc2lnbmVkIGxvbmcgKikgYXJnKSkNCiAJCQkJcmV0
dXJuIC1FRkFVTFQ7DQogCQkJcmV0dXJuIDA7DQpAQCAtMTcyLDkgKzE2OSw2
IEBADQogCQljYXNlIEhESU9fR0VUX1VOTUFTS0lOVFI6IHsNCiAJCQl1bnNp
Z25lZCBsb25nIHZhbCA9IGRyaXZlLT5jaGFubmVsLT51bm1hc2s7DQogDQot
CQkJaWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQ0KLQkJCQlyZXR1cm4g
LUVBQ0NFUzsNCi0NCiAJCQlpZiAocHV0X3VzZXIodmFsLCAodW5zaWduZWQg
bG9uZyAqKSBhcmcpKQ0KIAkJCQlyZXR1cm4gLUVGQVVMVDsNCiANCkBAIC0y
MDIsOSArMTk2LDYgQEANCiAJCWNhc2UgSERJT19HRVRfRE1BOiB7DQogCQkJ
dW5zaWduZWQgbG9uZyB2YWwgPSBkcml2ZS0+dXNpbmdfZG1hOw0KIA0KLQkJ
CWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkNCi0JCQkJcmV0dXJuIC1F
QUNDRVM7DQotDQogCQkJaWYgKHB1dF91c2VyKHZhbCwgKHVuc2lnbmVkIGxv
bmcgKikgYXJnKSkNCiAJCQkJcmV0dXJuIC1FRkFVTFQ7DQogDQpAQCAtMjM2
LDkgKzIyNyw2IEBADQogCQkJc3RydWN0IGhkX2dlb21ldHJ5ICpsb2MgPSAo
c3RydWN0IGhkX2dlb21ldHJ5ICopIGFyZzsNCiAJCQl1bnNpZ25lZCBzaG9y
dCBiaW9zX2N5bCA9IGRyaXZlLT5iaW9zX2N5bDsgLyogdHJ1bmNhdGUgKi8N
CiANCi0JCQlpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikpDQotCQkJCXJl
dHVybiAtRUFDQ0VTOw0KLQ0KIAkJCWlmICghbG9jIHx8IChkcml2ZS0+dHlw
ZSAhPSBBVEFfRElTSyAmJiBkcml2ZS0+dHlwZSAhPSBBVEFfRkxPUFBZKSkN
CiAJCQkJcmV0dXJuIC1FSU5WQUw7DQogDQpAQCAtMjYxLDkgKzI0OSw2IEBA
DQogCQljYXNlIEhESU9fR0VUR0VPX0JJR19SQVc6IHsNCiAJCQlzdHJ1Y3Qg
aGRfYmlnX2dlb21ldHJ5ICpsb2MgPSAoc3RydWN0IGhkX2JpZ19nZW9tZXRy
eSAqKSBhcmc7DQogDQotCQkJaWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4p
KQ0KLQkJCQlyZXR1cm4gLUVBQ0NFUzsNCi0NCiAJCQlpZiAoIWxvYyB8fCAo
ZHJpdmUtPnR5cGUgIT0gQVRBX0RJU0sgJiYgZHJpdmUtPnR5cGUgIT0gQVRB
X0ZMT1BQWSkpDQogCQkJCXJldHVybiAtRUlOVkFMOw0KIA0KQEAgLTI4NCw4
ICsyNjksNiBAQA0KIAkJfQ0KIA0KIAkJY2FzZSBIRElPX0dFVF9JREVOVElU
WToNCi0JCQlpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikpDQotCQkJCXJl
dHVybiAtRUFDQ0VTOw0KIA0KIAkJCWlmIChtaW5vcihpbm9kZS0+aV9yZGV2
KSAmIFBBUlROX01BU0spDQogCQkJCXJldHVybiAtRUlOVkFMOw0KQEAgLTI5
OSw4ICsyODIsNiBAQA0KIAkJCXJldHVybiAwOw0KIA0KIAkJY2FzZSBIRElP
X0dFVF9OSUNFOg0KLQkJCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkN
Ci0JCQkJcmV0dXJuIC1FQUNDRVM7DQogDQogCQkJcmV0dXJuIHB1dF91c2Vy
KGRyaXZlLT5kc2Nfb3ZlcmxhcCA8PCBJREVfTklDRV9EU0NfT1ZFUkxBUCB8
DQogCQkJCQlkcml2ZS0+YXRhcGlfb3ZlcmxhcCA8PCBJREVfTklDRV9BVEFQ
SV9PVkVSTEFQLA0KQEAgLTMyMyw4ICszMDQsNiBAQA0KIAkJCXJldHVybiAw
Ow0KIA0KIAkJY2FzZSBIRElPX0dFVF9CVVNTVEFURToNCi0JCQlpZiAoIWNh
cGFibGUoQ0FQX1NZU19BRE1JTikpDQotCQkJCXJldHVybiAtRUFDQ0VTOw0K
IA0KIAkJCWlmIChwdXRfdXNlcihkcml2ZS0+Y2hhbm5lbC0+YnVzX3N0YXRl
LCAobG9uZyAqKWFyZykpDQogCQkJCXJldHVybiAtRUZBVUxUOw0KZGlmZiAt
dXIgLVhkb250ZGlmZiBsaW51eC0yLjUuMjQvZHJpdmVycy9pZGUvcGNpZG1h
LmMgbGludXgvZHJpdmVycy9pZGUvcGNpZG1hLmMNCi0tLSBsaW51eC0yLjUu
MjQvZHJpdmVycy9pZGUvcGNpZG1hLmMJVGh1IEp1biAyNyAxMzozNDo0MiAy
MDAyDQorKysgbGludXgvZHJpdmVycy9pZGUvcGNpZG1hLmMJVHVlIEp1bCAg
MiAxNzoyODowMiAyMDAyDQpAQCAtMzYsOCArMzYsNiBAQA0KIA0KIC8qDQog
ICogVGhpcyBpcyB0aGUgaGFuZGxlciBmb3IgZGlzayByZWFkL3dyaXRlIERN
QSBpbnRlcnJ1cHRzLg0KLSAqDQotICogQ2hhbm5lbCBsb2NrIHNob3VsZCBi
ZSBoZWxkLg0KICAqLw0KIGlkZV9zdGFydHN0b3BfdCBpZGVfZG1hX2ludHIo
c3RydWN0IGF0YV9kZXZpY2UgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAqcnEp
DQogew0KQEAgLTM5NCw4ICszOTIsNiBAQA0KIA0KIC8qDQogICogVGVhcmRv
d24gbWFwcGluZ3MgYWZ0ZXIgRE1BIGhhcyBjb21wbGV0ZWQuDQotICoNCi0g
KiBDaGFubmVsIGxvY2sgc2hvdWxkIGJlIGhlbGQuDQogICovDQogdm9pZCB1
ZG1hX2Rlc3Ryb3lfdGFibGUoc3RydWN0IGF0YV9jaGFubmVsICpjaCkNCiB7
DQpAQCAtNDA2LDggKzQwMiw2IEBADQogICogUHJlcGFyZSB0aGUgY2hhbm5l
bCBmb3IgYSBETUEgc3RhcnRmZXIuIFBsZWFzZSBub3RlIHRoYXQgb25seSB0
aGUgYnJva2VuDQogICogUGFjaWZpYyBEaWdpdGFsIGhvc3QgY2hpcCBuZWVk
cyB0aGUgcmVxdWVzIHRvIGJlIHBhc3NlZCB0aGVyZSB0byBkZWNpZGUNCiAg
KiBhYm91dCBhZGRyZXNzaW5nIG1vZGVzLg0KLSAqDQotICogQ2hhbm5lbCBs
b2NrIHNob3VsZCBiZSBoZWxkLg0KICAqLw0KIHZvaWQgdWRtYV9wY2lfc3Rh
cnQoc3RydWN0IGF0YV9kZXZpY2UgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAq
cnEpDQogew0KQEAgLTQyMSw5ICs0MTUsNiBAQA0KIAlvdXRiKGluYihkbWFf
YmFzZSkgfCAxLCBkbWFfYmFzZSk7CS8qIHN0YXJ0IERNQSAqLw0KIH0NCiAN
Ci0vKg0KLSAqIENoYW5uZWwgbG9jayBzaG91bGQgYmUgaGVsZC4NCi0gKi8N
CiBpbnQgdWRtYV9wY2lfc3RvcChzdHJ1Y3QgYXRhX2RldmljZSAqZHJpdmUp
DQogew0KIAlzdHJ1Y3QgYXRhX2NoYW5uZWwgKmNoID0gZHJpdmUtPmNoYW5u
ZWw7DQpAQCAtNDQwLDggKzQzMSw2IEBADQogDQogLyoNCiAgKiBGSVhNRTog
VGhpcyBzaG91bGQgYmUgYXR0YWNoZWQgdG8gYSBjaGFubmVsIGFzIHdlIGNh
biBzZWUgbm93IQ0KLSAqDQotICogQ2hhbm5lbCBsb2NrIHNob3VsZCBiZSBo
ZWxkLg0KICAqLw0KIGludCB1ZG1hX3BjaV9pcnFfc3RhdHVzKHN0cnVjdCBh
dGFfZGV2aWNlICpkcml2ZSkNCiB7DQpAQCAtNTI4LDggKzUxNyw2IEBADQog
ICoNCiAgKiBJdCdzIGV4cG9ydGVkIG9ubHkgZm9yIGhvc3QgY2hpcHMgd2hp
Y2ggdXNlIGl0IGZvciBmYWxsYmFjayBvciAodG9vKSBsYXRlDQogICogY2Fw
YWJpbGl0eSBjaGVja2luZy4NCi0gKg0KLSAqIENoYW5uZWwgbG9jayBzaG91
bGQgYmUgaGVsZC4NCiAgKi8NCiBpbnQgdWRtYV9wY2lfaW5pdChzdHJ1Y3Qg
YXRhX2RldmljZSAqZHJpdmUsIHN0cnVjdCByZXF1ZXN0ICpycSkNCiB7DQpk
aWZmIC11ciAtWGRvbnRkaWZmIGxpbnV4LTIuNS4yNC9kcml2ZXJzL2lkZS90
Y3EuYyBsaW51eC9kcml2ZXJzL2lkZS90Y3EuYw0KLS0tIGxpbnV4LTIuNS4y
NC9kcml2ZXJzL2lkZS90Y3EuYwlUaHUgSnVuIDI3IDEzOjM0OjQyIDIwMDIN
CisrKyBsaW51eC9kcml2ZXJzL2lkZS90Y3EuYwlUdWUgSnVsICAyIDE4OjEz
OjUxIDIwMDINCkBAIC01NywxNiArNTcsMTkgQEANCiANCiBzdGF0aWMgaWRl
X3N0YXJ0c3RvcF90IHRjcV9ub3BfaGFuZGxlcihzdHJ1Y3QgYXRhX2Rldmlj
ZSAqZHJpdmUsIHN0cnVjdCByZXF1ZXN0ICpycSkNCiB7DQorCXVuc2lnbmVk
IGxvbmcgZmxhZ3M7DQogCXN0cnVjdCBhdGFfdGFza2ZpbGUgKmFyZ3MgPSBy
cS0+c3BlY2lhbDsNCiANCi0JLyogRklYTUU6ICAtLWJ6b2xuaWVyDQogCWlk
ZV9fc3RpKCk7DQotCSovDQorDQorCXNwaW5fbG9ja19pcnFzYXZlKGNoLT5s
b2NrLCBmbGFncyk7DQogDQogCWJsa2Rldl9kZXF1ZXVlX3JlcXVlc3QocnEp
Ow0KIAlkcml2ZS0+cnEgPSBOVUxMOw0KIAllbmRfdGhhdF9yZXF1ZXN0X2xh
c3QocnEpOw0KIA0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKGNoLT5sb2Nr
LCBmbGFncyk7DQorDQogCWtmcmVlKGFyZ3MpOw0KIA0KIAlyZXR1cm4gaWRl
X3N0b3BwZWQ7DQpAQCAtODMsOSArODYsMTIgQEANCiAJcmVxdWVzdF9xdWV1
ZV90ICpxID0gJmRyaXZlLT5xdWV1ZTsNCiAJc3RydWN0IGF0YV90YXNrZmls
ZSAqYXI7DQogCXN0cnVjdCByZXF1ZXN0ICpycTsNCisJdW5zaWduZWQgbG9u
ZyBmbGFnczsNCiANCiAJcHJpbnRrKEtFUk5fSU5GTyAiQVRBOiAlczogaW52
YWxpZGF0aW5nIHBlbmRpbmcgcXVldWUgKCVkKVxuIiwgZHJpdmUtPm5hbWUs
IGF0YV9wZW5kaW5nX2NvbW1hbmRzKGRyaXZlKSk7DQogDQorCXNwaW5fbG9j
a19pcnFzYXZlKGNoLT5sb2NrLCBmbGFncyk7DQorDQogCWRlbF90aW1lcigm
Y2gtPnRpbWVyKTsNCiANCiAJaWYgKHRlc3RfYml0KElERV9ETUEsIGNoLT5h
Y3RpdmUpKQ0KQEAgLTEzNyw3ICsxNDMsNyBAQA0KIAkgKiBzdGFydCBkb2lu
ZyBzdHVmZiBhZ2Fpbg0KIAkgKi8NCiAJcS0+cmVxdWVzdF9mbihxKTsNCi0N
CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShjaC0+bG9jaywgZmxhZ3MpOw0K
IAlwcmludGsoS0VSTl9ERUJVRyAiQVRBOiB0Y3FfaW52YWxpZGF0ZV9xdWV1
ZTogZG9uZVxuIik7DQogfQ0KIA0KQEAgLTE1NiwyMCArMTYyLDE3IEBADQog
CWlmICghY2gtPmhhbmRsZXIpDQogCQlwcmludGsoS0VSTl9FUlIgIkFUQTog
JXM6IG1pc3NpbmcgSVNSIVxuIiwgX19GVU5DVElPTl9fKTsNCiANCisJc3Bp
bl91bmxvY2tfaXJxcmVzdG9yZShjaC0+bG9jaywgZmxhZ3MpOw0KKw0KIAkv
Kg0KIAkgKiBpZiBwZW5kaW5nIGNvbW1hbmRzLCB0cnkgc2VydmljZSBiZWZv
cmUgZ2l2aW5nIHVwDQogCSAqLw0KIAlpZiAoYXRhX3BlbmRpbmdfY29tbWFu
ZHMoZHJpdmUpICYmICFhdGFfc3RhdHVzKGRyaXZlLCAwLCBTRVJWSUNFX1NU
QVQpKQ0KLQkJaWYgKHNlcnZpY2UoZHJpdmUsIGRyaXZlLT5ycSkgPT0gaWRl
X3N0YXJ0ZWQpIHsNCi0JCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKGNoLT5s
b2NrLCBmbGFncyk7DQotDQorCQlpZiAoc2VydmljZShkcml2ZSwgZHJpdmUt
PnJxKSA9PSBpZGVfc3RhcnRlZCkNCiAJCQlyZXR1cm47DQotCQl9DQogDQog
CWlmIChkcml2ZSkNCiAJCXRjcV9pbnZhbGlkYXRlX3F1ZXVlKGRyaXZlKTsN
Ci0NCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShjaC0+bG9jaywgZmxhZ3Mp
Ow0KIH0NCiANCiBzdGF0aWMgdm9pZCBfX3NldF9pcnEoc3RydWN0IGF0YV9j
aGFubmVsICpjaCwgYXRhX2hhbmRsZXJfdCAqaGFuZGxlcikNCkBAIC0xODgs
NiArMTkxLDE2IEBADQogCWNoLT5oYW5kbGVyID0gaGFuZGxlcjsNCiB9DQog
DQorc3RhdGljIHZvaWQgc2V0X2lycShzdHJ1Y3QgYXRhX2RldmljZSAqZHJp
dmUsIGF0YV9oYW5kbGVyX3QgKmhhbmRsZXIpDQorew0KKwlzdHJ1Y3QgYXRh
X2NoYW5uZWwgKmNoID0gZHJpdmUtPmNoYW5uZWw7DQorCXVuc2lnbmVkIGxv
bmcgZmxhZ3M7DQorDQorCXNwaW5fbG9ja19pcnFzYXZlKGNoLT5sb2NrLCBm
bGFncyk7DQorCV9fc2V0X2lycShjaCwgaGFuZGxlcik7DQorCXNwaW5fdW5s
b2NrX2lycXJlc3RvcmUoY2gtPmxvY2ssIGZsYWdzKTsNCit9DQorDQogLyoN
CiAgKiB3YWl0IDQwMG5zLCB0aGVuIHBvbGwgZm9yIGJ1c3lfbWFzayB0byBj
bGVhciBmcm9tIGFsdCBzdGF0dXMNCiAgKi8NCkBAIC0yMTUsMTEgKzIyOCwx
MiBAQA0KICAqIGFuZCBpdCBtdXN0IGhhdmUgcmVwb3J0ZWQgYSBuZWVkIGZv
ciBzZXJ2aWNlIChzdGF0dXMgaGFzIFNFUlZJQ0VfU1RBVCBzZXQpDQogICoN
CiAgKiBBbHNvLCBuSUVOIG11c3QgYmUgc2V0IGFzIG5vdCB0byBuZWVkIHBy
b3RlY3Rpb24gYWdhaW5zdCBpZGVfZG1hcV9pbnRyDQotICoNCi0gKiBDaGFu
bmVsIGxvY2sgc2hvdWxkIGJlIGhlbGQuDQogICovDQogc3RhdGljIGlkZV9z
dGFydHN0b3BfdCBzZXJ2aWNlKHN0cnVjdCBhdGFfZGV2aWNlICpkcml2ZSwg
c3RydWN0IHJlcXVlc3QgKnJxKQ0KIHsNCisJc3RydWN0IGF0YV9jaGFubmVs
ICpjaCA9IGRyaXZlLT5jaGFubmVsOw0KKwlpZGVfc3RhcnRzdG9wX3QgcmV0
Ow0KKwl1bnNpZ25lZCBsb25nIGZsYWdzOw0KIAl1OCBmZWF0LCBzdGF0Ow0K
IAlpbnQgdGFnOw0KIA0KQEAgLTI4MCwxNSArMjk0LDE4IEBADQogDQogCVRD
UV9QUklOVEsoIiVzOiBzdGF0ICV4LCBmZWF0ICV4XG4iLCBfX0ZVTkNUSU9O
X18sIHN0YXQsIGZlYXQpOw0KIA0KKwlzcGluX2xvY2tfaXJxc2F2ZShjaC0+
bG9jaywgZmxhZ3MpOw0KKw0KIAlycSA9IGJsa19xdWV1ZV9maW5kX3RhZygm
ZHJpdmUtPnF1ZXVlLCB0YWcpOw0KIAlpZiAoIXJxKSB7DQogCQlwcmludGso
S0VSTl9FUlIiJXM6IG1pc3NpbmcgcmVxdWVzdCBmb3IgdGFnICVkXG4iLCBf
X0ZVTkNUSU9OX18sIHRhZyk7DQotDQorCQlzcGluX3VubG9ja19pcnFyZXN0
b3JlKGNoLT5sb2NrLCBmbGFncyk7DQogCQlyZXR1cm4gaWRlX3N0b3BwZWQ7
DQogCX0NCiANCiAJZHJpdmUtPnJxID0gcnE7DQogDQorCXNwaW5fdW5sb2Nr
X2lycXJlc3RvcmUoY2gtPmxvY2ssIGZsYWdzKTsNCiAJLyoNCiAJICogd2Un
bGwgc3RhcnQgYSBkbWEgcmVhZCBvciB3cml0ZSwgZGV2aWNlIHdpbGwgdHJp
Z2dlcg0KIAkgKiBpbnRlcnJ1cHQgdG8gaW5kaWNhdGUgZW5kIG9mIHRyYW5z
ZmVyLCByZWxlYXNlIGlzIG5vdCBhbGxvd2VkDQpAQCAtMzExLDcgKzMyOCw3
IEBADQogCS8qDQogCSAqIHdlIGhhdmUgcGVuZGluZyBjb21tYW5kcywgd2Fp
dCBmb3IgaW50ZXJydXB0DQogCSAqLw0KLQlfX3NldF9pcnEoZHJpdmUsIGlk
ZV9kbWFxX2ludHIpOw0KKwlzZXRfaXJxKGRyaXZlLCBpZGVfZG1hcV9pbnRy
KTsNCiANCiAJcmV0dXJuIGlkZV9zdGFydGVkOw0KIH0NCkBAIC01MDQsOCAr
NTIxLDYgQEANCiAvKg0KICAqIEludm9rZWQgZnJvbSBhIFNFUlZJQ0UgaW50
ZXJydXB0LCBjb21tYW5kIGV0YyBhbHJlYWR5IGtub3duLiAgSnVzdCBuZWVk
IHRvDQogICogc3RhcnQgdGhlIGRtYSBlbmdpbmUgZm9yIHRoaXMgdGFnLg0K
LSAqDQotICogQ2hhbm5lbCBsb2NrIHNob3VsZCBiZSBoZWxkLg0KICAqLw0K
IHN0YXRpYyBpZGVfc3RhcnRzdG9wX3QgdWRtYV90Y3Ffc3RhcnQoc3RydWN0
IGF0YV9kZXZpY2UgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAqcnEpDQogew0K
QEAgLTUyMSw3ICs1MzYsNyBAQA0KIAlpZiAoYXRhX3N0YXJ0X2RtYShkcml2
ZSwgcnEpKQ0KIAkJcmV0dXJuIGlkZV9zdG9wcGVkOw0KIA0KLQlfX3NldF9p
cnEoY2gsIGlkZV9kbWFxX2ludHIpOw0KKwlzZXRfaXJxKGNoLCBpZGVfZG1h
cV9pbnRyKTsNCiAJdWRtYV9zdGFydChkcml2ZSwgcnEpOw0KIA0KIAlyZXR1
cm4gaWRlX3N0YXJ0ZWQ7DQpAQCAtNTI5LDggKzU0NCw2IEBADQogDQogLyoN
CiAgKiBTdGFydCBhIHF1ZXVlZCBjb21tYW5kIGZyb20gc2NyYXRjaC4NCi0g
Kg0KLSAqIENoYW5uZWwgbG9jayBzaG91bGQgYmUgaGVsZC4NCiAgKi8NCiBp
ZGVfc3RhcnRzdG9wX3QgdWRtYV90Y3FfaW5pdChzdHJ1Y3QgYXRhX2Rldmlj
ZSAqZHJpdmUsIHN0cnVjdCByZXF1ZXN0ICpycSkNCiB7DQpAQCAtNTczLDcg
KzU4Niw3IEBADQogCWlmICgoZmVhdCA9IEdFVF9GRUFUKCkpICYgTlNFQ19S
RUwpIHsNCiAJCWRyaXZlLT5pbW1lZF9yZWwrKzsNCiAJCWRyaXZlLT5ycSA9
IE5VTEw7DQotCQlfX3NldF9pcnEoZHJpdmUtPmNoYW5uZWwsIGlkZV9kbWFx
X2ludHIpOw0KKwkJc2V0X2lycShkcml2ZS0+Y2hhbm5lbCwgaWRlX2RtYXFf
aW50cik7DQogDQogCQlUQ1FfUFJJTlRLKCJSRUwgaW4gcXVldWVkX3N0YXJ0
XG4iKTsNCiANCmRpZmYgLXVyIC1YZG9udGRpZmYgbGludXgtMi41LjI0L2Ry
aXZlcnMvc2NzaS9pZGUtc2NzaS5jIGxpbnV4L2RyaXZlcnMvc2NzaS9pZGUt
c2NzaS5jDQotLS0gbGludXgtMi41LjI0L2RyaXZlcnMvc2NzaS9pZGUtc2Nz
aS5jCUZyaSBKdW4gMjggMDA6MDM6MDYgMjAwMg0KKysrIGxpbnV4L2RyaXZl
cnMvc2NzaS9pZGUtc2NzaS5jCVR1ZSBKdWwgIDIgMTc6MzI6NDcgMjAwMg0K
QEAgLTIzNiw2ICsyMzYsNyBAQA0KIA0KIHN0YXRpYyBpbnQgaWRlc2NzaV9l
bmRfcmVxdWVzdChzdHJ1Y3QgYXRhX2RldmljZSAqZHJpdmUsIHN0cnVjdCBy
ZXF1ZXN0ICpycSwgaW50IHVwdG9kYXRlKQ0KIHsNCisJdW5zaWduZWQgbG9u
ZyBmbGFnczsNCiAJc3RydWN0IFNjc2lfSG9zdCAqaG9zdCA9IGRyaXZlLT5k
cml2ZXJfZGF0YTsNCiAJaWRlc2NzaV9zY3NpX3QgKnNjc2kgPSBpZGVzY3Np
X3ByaXZhdGUoaG9zdCk7DQogCXN0cnVjdCBhdGFwaV9wYWNrZXRfY29tbWFu
ZCAqcGMgPSAoc3RydWN0IGF0YXBpX3BhY2tldF9jb21tYW5kICopIHJxLT5z
cGVjaWFsOw0KQEAgLTI0NywxMCArMjQ4LDE0IEBADQogCQlyZXR1cm4gMDsN
CiAJfQ0KIA0KKwlzcGluX2xvY2tfaXJxc2F2ZShkcml2ZS0+Y2hhbm5lbC0+
bG9jaywgZmxhZ3MpOw0KKw0KIAlibGtkZXZfZGVxdWV1ZV9yZXF1ZXN0KHJx
KTsNCiAJZHJpdmUtPnJxID0gTlVMTDsNCiAJZW5kX3RoYXRfcmVxdWVzdF9s
YXN0KHJxKTsNCiANCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShkcml2ZS0+
Y2hhbm5lbC0+bG9jaywgZmxhZ3MpOw0KKw0KIAlpZiAocnEtPmVycm9ycyA+
PSBFUlJPUl9NQVgpIHsNCiAJCXBjLT5zLnNjc2lfY21kLT5yZXN1bHQgPSBE
SURfRVJST1IgPDwgMTY7DQogCQlpZiAobG9nKQ0K
---559023410-851401618-1025646363=:18786--
-
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/