patch for vanilla kernel 2.6.22

Lino Sanfilippo <[email protected]> Tue, 07 Jul 2009 17:11:08 +0200
Newsgroups gmane.linux.dazuko.devel
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------070908040306070809040901
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



Geschäftsführender Gesellschafter: Tjark Auerbach
Sitz der Gesellschaft: Tettnang
Handelsregister: Amtsgericht Ulm, HRB 630992
ALLGEMEINE GESCHÄFTSBEDINGUNGEN
Es gelten unsere Allgemeinen Geschäftsbedingungen
(AGB). Sie finden sie in der jeweils gültigen Fassung
im Internet unter http://www.avira.de/agb
***************************************************
--------------070908040306070809040901
Content-Type: text/plain;
 name="patch_2.6.22"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="patch_2.6.22"

ZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9DSEFOR0VMT0cgZGF6dWtvZnMtMy4w
LjAtcmM0XzIuNi4yMi9DSEFOR0VMT0cKLS0tIGRhenVrb2ZzLTMuMC4wL0NIQU5HRUxPRwky
MDA5LTAyLTIyIDE3OjUxOjIyLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAt
cmM0XzIuNi4yMi9DSEFOR0VMT0cJMjAwOC0xMi0xMiAxNzoxMjoyNy4wMDAwMDAwMDAgKzAx
MDAKQEAgLTIsMTEgKzIsNiBAQAogIERhenVrb0ZTIENIQU5HRUxPRwogPT09PT09PT09PT09
PT09PT09PT0KIAotMy4wLjAgKDIwMDktMDItMjIpCi0tIGFkZGVkIGRlZmluZSBmb3IgdmVy
c2lvbiBudW1iZXIgb3V0cHV0Ci0tIGFkZGVkIHBhdGNoZXMgZm9yIHZhcmlvdXMgb3RoZXIg
a2VybmVscwotCi0KIDMuMC4wLXJjNCAoMjAwOC0xMS0zMCkKIC0gZml4IGluY29ycmVjdCBk
ZW50cnkvdmZzbW50IHJlZmVyZW5jaW5nIHdoZW4gYWNjZXNzIGRlbmllZAogLSBmaXggaW1w
cm9wZXIgY2xlYW51cCBpbiBzZXZlcmFsIGVycm9yIGhhbmRsaW5nIGNvbmRpdGlvbnMKZGlm
ZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9jdHJsX2Rldi5jIGRhenVrb2ZzLTMuMC4w
LXJjNF8yLjYuMjIvY3RybF9kZXYuYwotLS0gZGF6dWtvZnMtMy4wLjAvY3RybF9kZXYuYwky
MDA5LTAyLTIyIDE3OjQ1OjIwLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAt
cmM0XzIuNi4yMi9jdHJsX2Rldi5jCTIwMDgtMTItMTIgMTc6MTI6MjcuMDAwMDAwMDAwICsw
MTAwCkBAIC0xODMsNyArMTgzLDcgQEAgaW50IGRhenVrb2ZzX2N0cmxfZGV2X2luaXQoaW50
IGRldl9tYWpvcgogCiAJLyogY3JlYXRlIGNvbnRyb2wgZGV2aWNlICovCiAJZGV2ID0gZGV2
aWNlX2NyZWF0ZShkYXp1a29mc19jbGFzcywgTlVMTCwgTUtERVYoZGV2X21ham9yLCBkZXZf
bWlub3IpLAotCQkJICAgIE5VTEwsICIlcy5jdHJsIiwgREVWSUNFX05BTUUpOworCQkJICAg
ICIlcy5jdHJsIiwgREVWSUNFX05BTUUpOwogCWlmIChJU19FUlIoZGV2KSkgewogCQllcnIg
PSBQVFJfRVJSKGRldik7CiAJCWdvdG8gZXJyb3Jfb3V0MjsKZGlmZiAteCBDVlMgLXJ1cCBk
YXp1a29mcy0zLjAuMC9kYXp1a29mc19mcy5oIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjIv
ZGF6dWtvZnNfZnMuaAotLS0gZGF6dWtvZnMtMy4wLjAvZGF6dWtvZnNfZnMuaAkyMDA5LTAy
LTIyIDE3OjQzOjExLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAtcmM0XzIu
Ni4yMi9kYXp1a29mc19mcy5oCTIwMDktMDctMDMgMTg6MDE6MzEuMDAwMDAwMDAwICswMjAw
CkBAIC0zLDcgKzMsNyBAQAogICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMDQgRXJleiBaYWRv
awogICAgQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQgU3RvbnkgQnJvb2sgVW5pdmVyc2l0eQog
ICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDcgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNo
aW5lcyBDb3JwLgotICAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMDkgSm9obiBPZ25lc3MKKyAg
IENvcHlyaWdodCAoQykgMjAwOCBKb2huIE9nbmVzcwogICAgICBBdXRob3I6IEpvaG4gT2du
ZXNzIDxkYXp1a29jb2RlQG9nbmVzcy5uZXQ+CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI0LDggKzI0
LDYgQEAKICNpZm5kZWYgX19EQVpVS09GU19GU19ICiAjZGVmaW5lIF9fREFaVUtPRlNfRlNf
SAogCi0jZGVmaW5lIERBWlVLT0ZTX1ZFUlNJT04gIjMuMC4wIgotCiBleHRlcm4gc3RydWN0
IGttZW1fY2FjaGUgKmRhenVrb2ZzX2RlbnRyeV9pbmZvX2NhY2hlcDsKIGV4dGVybiBzdHJ1
Y3Qga21lbV9jYWNoZSAqZGF6dWtvZnNfZmlsZV9pbmZvX2NhY2hlcDsKIGV4dGVybiBzdHJ1
Y3QgZmlsZV9vcGVyYXRpb25zIGRhenVrb2ZzX21haW5fZm9wczsKZGlmZiAteCBDVlMgLXJ1
cCBkYXp1a29mcy0zLjAuMC9kZW50cnkuYyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjIyL2Rl
bnRyeS5jCi0tLSBkYXp1a29mcy0zLjAuMC9kZW50cnkuYwkyMDA5LTAyLTIyIDE3OjQ0OjIy
LjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yMi9kZW50cnku
YwkyMDA4LTEyLTEyIDE3OjEyOjI3LjAwMDAwMDAwMCArMDEwMApAQCAtNjUsMTkgKzY1LDE5
IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCAKIAogCWxvd2Vy
X21udCA9IEdFVF9MT1dFUl9NTlQoZGVudHJ5KTsKIAotCXZmc21vdW50X3NhdmUgPSBuZC0+
cGF0aC5tbnQ7Ci0JZGVudHJ5X3NhdmUgPSBuZC0+cGF0aC5kZW50cnk7CisJdmZzbW91bnRf
c2F2ZSA9IG5kLT5tbnQ7CisJZGVudHJ5X3NhdmUgPSBuZC0+ZGVudHJ5OwogCi0JbmQtPnBh
dGgubW50ID0gbW50Z2V0KGxvd2VyX21udCk7Ci0JbmQtPnBhdGguZGVudHJ5ID0gZGdldChs
b3dlcl9kZW50cnkpOworCW5kLT5tbnQgPSBtbnRnZXQobG93ZXJfbW50KTsKKwluZC0+ZGVu
dHJ5ID0gZGdldChsb3dlcl9kZW50cnkpOwogCiAJdmFsaWQgPSBsb3dlcl9kZW50cnktPmRf
b3AtPmRfcmV2YWxpZGF0ZShsb3dlcl9kZW50cnksIG5kKTsKIAogCW1udHB1dChsb3dlcl9t
bnQpOwogCWRwdXQobG93ZXJfZGVudHJ5KTsKIAotCW5kLT5wYXRoLm1udCA9IHZmc21vdW50
X3NhdmU7Ci0JbmQtPnBhdGguZGVudHJ5ID0gZGVudHJ5X3NhdmU7CisJbmQtPm1udCA9IHZm
c21vdW50X3NhdmU7CisJbmQtPmRlbnRyeSA9IGRlbnRyeV9zYXZlOwogCiAJLyogdXBkYXRl
IHRoZSBpbm9kZSwgZXZlbiBpZiBkX3JldmFsaWRhdGUoKSAhPSAxICovCiAJaWYgKGRlbnRy
eS0+ZF9pbm9kZSkgewpkaWZmIC14IENWUyAtcnVwIGRhenVrb2ZzLTMuMC4wL2V2ZW50LmMg
ZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yMi9ldmVudC5jCi0tLSBkYXp1a29mcy0zLjAuMC9l
dmVudC5jCTIwMDktMDItMjIgMTc6NDQ6MDMuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1a29m
cy0zLjAuMC1yYzRfMi42LjIyL2V2ZW50LmMJMjAwOS0wNy0wMyAxODo1NjoyNS4wMDAwMDAw
MDAgKzAyMDAKQEAgLTIzLDcgKzIzLDYgQEAKICNpbmNsdWRlIDxsaW51eC9maWxlLmg+CiAj
aW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9tb3VudC5oPgotI2luY2x1
ZGUgPGxpbnV4L2ZyZWV6ZXIuaD4KIAogI2luY2x1ZGUgImRldi5oIgogI2luY2x1ZGUgImRh
enVrb2ZzX2ZzLmgiCkBAIC0xMTMsMjEgKzExMiwyMSBAQCBpbnQgZGF6dWtvZnNfaW5pdF9l
dmVudHModm9pZCkKIAlkYXp1a29mc19ncm91cF9jYWNoZXAgPQogCQlrbWVtX2NhY2hlX2Ny
ZWF0ZSgiZGF6dWtvZnNfZ3JvdXBfY2FjaGUiLAogCQkJCSAgc2l6ZW9mKHN0cnVjdCBkYXp1
a29mc19ncm91cCksIDAsCi0JCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04sIE5VTEwpOworCQkJ
CSAgU0xBQl9IV0NBQ0hFX0FMSUdOLCBOVUxMLCBOVUxMKTsKIAlpZiAoIWRhenVrb2ZzX2dy
b3VwX2NhY2hlcCkKIAkJZ290byBlcnJvcl9vdXQ7CiAKIAlkYXp1a29mc19ldmVudF9jb250
YWluZXJfY2FjaGVwID0KIAkJa21lbV9jYWNoZV9jcmVhdGUoImRhenVrb2ZzX2V2ZW50X2Nv
bnRhaW5lcl9jYWNoZSIsCiAJCQkJICBzaXplb2Yoc3RydWN0IGRhenVrb2ZzX2V2ZW50X2Nv
bnRhaW5lciksIDAsCi0JCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04sIE5VTEwpOworCQkJCSAg
U0xBQl9IV0NBQ0hFX0FMSUdOLCBOVUxMLCBOVUxMKTsKIAlpZiAoIWRhenVrb2ZzX2V2ZW50
X2NvbnRhaW5lcl9jYWNoZXApCiAJCWdvdG8gZXJyb3Jfb3V0OwogCiAJZGF6dWtvZnNfZXZl
bnRfY2FjaGVwID0KIAkJa21lbV9jYWNoZV9jcmVhdGUoImRhenVrb2ZzX2V2ZW50X2NhY2hl
IiwKIAkJCQkgIHNpemVvZihzdHJ1Y3QgZGF6dWtvZnNfZXZlbnQpLCAwLAotCQkJCSAgU0xB
Ql9IV0NBQ0hFX0FMSUdOLCBOVUxMKTsKKwkJCQkgIFNMQUJfSFdDQUNIRV9BTElHTiwgTlVM
TCwgTlVMTCk7CiAJaWYgKCFkYXp1a29mc19ldmVudF9jYWNoZXApCiAJCWdvdG8gZXJyb3Jf
b3V0OwogCkBAIC0xNjIsMTYgKzE2MSwyMyBAQCBzdGF0aWMgaW50IGNhcHR1cmVfZ3JvdXBf
Y291bnQoaW50ICpjYWNoCiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIGludCBnZXRfZ3Jv
dXBfY291bnQodm9pZCkKK3N0YXRpYyBpbnQgZ2V0X2dyb3VwX2NvdW50X2ludGVycnVwdGli
bGUodm9pZCkKIHsKIAlpbnQgY2FjaGUgPSAwOwotCWludCByZXQgPSB3YWl0X2V2ZW50X2Zy
ZWV6YWJsZShfX2dyb3VwX2NvdW50X3F1ZXVlLAotCQkJCSAgICAgICBjYXB0dXJlX2dyb3Vw
X2NvdW50KCZjYWNoZSkgPT0gMCk7CisJaW50IHJldCA9IHdhaXRfZXZlbnRfaW50ZXJydXB0
aWJsZShfX2dyb3VwX2NvdW50X3F1ZXVlLAorCQkJCSAgICAgICAgICAgY2FwdHVyZV9ncm91
cF9jb3VudCgmY2FjaGUpID09IDApOwogCWlmIChyZXQgPT0gMCkKIAkJcmV0ID0gX19ncm91
cF9jb3VudDsKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgaW50IGdldF9ncm91cF9jb3Vu
dCh2b2lkKQoreworCWludCBjYWNoZSA9IDA7CisJd2FpdF9ldmVudChfX2dyb3VwX2NvdW50
X3F1ZXVlLCBjYXB0dXJlX2dyb3VwX2NvdW50KCZjYWNoZSkgPT0gMCk7CisJcmV0dXJuIF9f
Z3JvdXBfY291bnQ7Cit9CisKIHN0YXRpYyB2b2lkIHB1dF9ncm91cF9jb3VudCh2b2lkKQog
ewogCW11dGV4X2xvY2soJmdyb3VwX2NvdW50X211dGV4KTsKQEAgLTM5OSw3ICs0MDUsNyBA
QCBpbnQgZGF6dWtvZnNfYWRkX2dyb3VwKGNvbnN0IGNoYXIgKm5hbWUsCiAJaW50IGFscmVh
ZHlfZXhpc3RzOwogCWludCBhdmFpbGFibGVfaWQgPSAwOwogCXN0cnVjdCBkYXp1a29mc19n
cm91cCAqZ3JwOwotCWludCBncnBfY291bnQgPSBnZXRfZ3JvdXBfY291bnQoKTsKKwlpbnQg
Z3JwX2NvdW50ID0gZ2V0X2dyb3VwX2NvdW50X2ludGVycnVwdGlibGUoKTsKIAogCWlmIChn
cnBfY291bnQgPCAwKSB7CiAJCXJldCA9IGdycF9jb3VudDsKQEAgLTQ0Nyw3ICs0NTMsNyBA
QCBpbnQgZGF6dWtvZnNfcmVtb3ZlX2dyb3VwKGNvbnN0IGNoYXIgKm5hCiAJaW50IHJldCA9
IDA7CiAJc3RydWN0IGRhenVrb2ZzX2dyb3VwICpncnA7CiAJc3RydWN0IGxpc3RfaGVhZCAq
cG9zOwotCWludCBncnBfY291bnQgPSBnZXRfZ3JvdXBfY291bnQoKTsKKwlpbnQgZ3JwX2Nv
dW50ID0gZ2V0X2dyb3VwX2NvdW50X2ludGVycnVwdGlibGUoKTsKIAogCWlmIChncnBfY291
bnQgPCAwKSB7CiAJCXJldCA9IGdycF9jb3VudDsKQEAgLTcwMSwxMSArNzA3LDEwIEBAIGlu
dCBkYXp1a29mc19jaGVja19hY2Nlc3Moc3RydWN0IGRlbnRyeSAKIHsKIAlzdHJ1Y3QgZGF6
dWtvZnNfZXZlbnRfY29udGFpbmVyICplY19hcnJheVtHUk9VUF9DT1VOVF07CiAJc3RydWN0
IGRhenVrb2ZzX2V2ZW50ICpldnQ7Ci0JaW50IGdycF9jb3VudCA9IGdldF9ncm91cF9jb3Vu
dCgpOwotCWludCBlcnI7CisJaW50IGdycF9jb3VudDsKKwlpbnQgZXJyID0gMDsKIAotCWlm
IChncnBfY291bnQgPCAwKQotCQlyZXR1cm4gZ3JwX2NvdW50OworCWdycF9jb3VudCA9IGdl
dF9ncm91cF9jb3VudCgpOwogCiAJaWYgKGNoZWNrX2FjY2Vzc19wcmVjaGVjayhncnBfY291
bnQpKSB7CiAJCXB1dF9ncm91cF9jb3VudCgpOwpAQCAtNzEzLDMyICs3MTgsMjkgQEAgaW50
IGRhenVrb2ZzX2NoZWNrX2FjY2VzcyhzdHJ1Y3QgZGVudHJ5IAogCX0KIAogCS8qIGF0IHRo
aXMgcG9pbnQsIHRoZSBhY2Nlc3Mgc2hvdWxkIGJlIGhhbmRsZWQgKi8KLQogCWlmIChhbGxv
Y2F0ZV9ldmVudF9hbmRfY29udGFpbmVycygmZXZ0LCBlY19hcnJheSwgZ3JwX2NvdW50KSkg
ewogCQlwdXRfZ3JvdXBfY291bnQoKTsKLQkJZXJyID0gLUVOT01FTTsKLQkJZ290byBvdXQ7
CisJCXJldHVybiAtRU5PTUVNOwogCX0KLQogCWV2dC0+ZGVudHJ5ID0gZGdldChkZW50cnkp
OwogCWV2dC0+bW50ID0gbW50Z2V0KG1udCk7CiAJZXZ0LT5waWQgPSBjdXJyZW50LT5waWQ7
Ci0KIAlhc3NpZ25fZXZlbnRfdG9fZ3JvdXBzKGV2dCwgZWNfYXJyYXkpOwogCiAJcHV0X2dy
b3VwX2NvdW50KCk7CiAKLQkvKiB3YWl0IHVudGlsIGV2ZW50IGNvbXBsZXRlbHkgcHJvY2Vz
c2VkIG9yIHNpZ25hbCAqLwotCWVyciA9IHdhaXRfZXZlbnRfZnJlZXphYmxlKGV2dC0+cXVl
dWUsIGV2ZW50X2Fzc2lnbmVkKGV2dCkgPT0gMCk7CisJLyogd2FpdCB1bnRpbCBldmVudCBj
b21wbGV0ZWx5IHByb2Nlc3NlZCAqLworCXdhaXRfZXZlbnQoZXZ0LT5xdWV1ZSwgZXZlbnRf
YXNzaWduZWQoZXZ0KSA9PSAwKTsKIAogCWlmIChldnQtPmRlbnkpCiAJCWVyciA9IC1FUEVS
TTsKIAogCXJlbGVhc2VfZXZlbnQoZXZ0LCAwLCAwKTsKLW91dDoKKwkKIAlyZXR1cm4gZXJy
OwogfQogCisKIGludCBkYXp1a29mc19ncm91cF9vcGVuX3RyYWNraW5nKHVuc2lnbmVkIGxv
bmcgZ3JvdXBfaWQpCiB7CiAJc3RydWN0IGRhenVrb2ZzX2dyb3VwICpncnA7CkBAIC05Mjgs
NyArOTMwLDggQEAgc3RhdGljIGludCBvcGVuX2ZpbGUoc3RydWN0IGRhenVrb2ZzX2V2ZQog
CS8qIGFkZCBteXNlbGYgdG8gYmUgaWdub3JlZCBvbiBmaWxlIG9wZW4gKHRvIGF2b2lkIHJl
Y3Vyc2lvbikgKi8KIAltYXNrX3Byb2MoJnByb2MpOwogCi0JZWMtPmZpbGUgPSBkZW50cnlf
b3BlbihkZ2V0KGV2dC0+ZGVudHJ5KSwgbW50Z2V0KGV2dC0+bW50KSwgT19SRE9OTFkpOwor
CWVjLT5maWxlID0gZGVudHJ5X29wZW4oZGdldChldnQtPmRlbnRyeSksIG1udGdldChldnQt
Pm1udCksIAorCQkJICAgICAgIE9fUkRPTkxZIHwgT19MQVJHRUZJTEUpOwogCWlmIChJU19F
UlIoZWMtPmZpbGUpKSB7CiAJCWNoZWNrX3JlY3Vyc2lvbigpOyAgLyogcmVtb3ZlIG15c2Vs
ZiBmcm9tIHByb2NfbGlzdCAqLwogCQlyZXQgPSBQVFJfRVJSKGVjLT5maWxlKTsKQEAgLTEw
MDQsOSArMTAwNyw5IEBAIGludCBkYXp1a29mc19nZXRfZXZlbnQodW5zaWduZWQgbG9uZyBn
cm8KIAl9CiAKIAl3aGlsZSAoMSkgewotCQlyZXQgPSB3YWl0X2V2ZW50X2ZyZWV6YWJsZShn
cnAtPnF1ZXVlLAotCQkJCQkgICBpc19ldmVudF9hdmFpbGFibGUoZ3JwKSB8fAotCQkJCQkg
ICBncnAtPmRlcHJlY2F0ZWQpOworCQlyZXQgPSB3YWl0X2V2ZW50X2ludGVycnVwdGlibGUo
Z3JwLT5xdWV1ZSwKKwkJCQkJICAgICAgIGlzX2V2ZW50X2F2YWlsYWJsZShncnApIHx8CisJ
CQkJCSAgICAgICBncnAtPmRlcHJlY2F0ZWQpOwogCQlpZiAocmV0ICE9IDApCiAJCQlicmVh
azsKIApkaWZmIC14IENWUyAtcnVwIGRhenVrb2ZzLTMuMC4wL2ZpbGUuYyBkYXp1a29mcy0z
LjAuMC1yYzRfMi42LjIyL2ZpbGUuYwotLS0gZGF6dWtvZnMtMy4wLjAvZmlsZS5jCTIwMDkt
MDItMjIgMTc6NDM6MTEuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1a29mcy0zLjAuMC1yYzRf
Mi42LjIyL2ZpbGUuYwkyMDA5LTA3LTAzIDE4OjQ5OjI3LjAwMDAwMDAwMCArMDIwMApAQCAt
MTc3LDEwICsxNzcsMTEgQEAgc3RhdGljIGludCBkYXp1a29mc19vcGVuKHN0cnVjdCBpbm9k
ZSAqaQogCXN0cnVjdCBmaWxlICpsb3dlcl9maWxlOwogCWludCBlcnI7CiAKLQllcnIgPSBk
YXp1a29mc19jaGVja19hY2Nlc3MoZmlsZS0+Zl9kZW50cnksIGZpbGUtPmZfdmZzbW50KTsK
LQlpZiAoZXJyKQotCQlnb3RvIGVycm9yX291dDE7Ci0KKwlpZiAoU19JU1JFRyhpbm9kZS0+
aV9tb2RlKSkgeworCQllcnIgPSBkYXp1a29mc19jaGVja19hY2Nlc3MoZmlsZS0+Zl9kZW50
cnksIGZpbGUtPmZfdmZzbW50KTsKKwkJaWYgKGVycikKKwkJCWdvdG8gZXJyb3Jfb3V0MTsK
Kwl9CQogCVNFVF9GSUxFX0lORk8oZmlsZSwga21lbV9jYWNoZV96YWxsb2MoZGF6dWtvZnNf
ZmlsZV9pbmZvX2NhY2hlcCwKIAkJICAgICAgR0ZQX0tFUk5FTCkpOwogCWlmICghR0VUX0ZJ
TEVfSU5GTyhmaWxlKSkgewpAQCAtMjcyLDYgKzI3MywyMCBAQCBvdXQ6CiAJcmV0dXJuIGVy
cjsKIH0KIAorc3RhdGljIGludCBkYXp1a29mc19tbWFwIChzdHJ1Y3QgZmlsZSAqZmlsZSwg
c3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bSkKK3sKKworCXN0cnVjdCBmaWxlICpsb3dlcl9m
aWxlID0gR0VUX0xPV0VSX0ZJTEUoZmlsZSk7CisKKwkvKiBpZiBsb3dlciBmcyBkb2VzIG5v
dCBzdXBwb3J0IG1tYXAoKSwgd2UgZG9udCBjYWxsIGdlbmVyaWNfZmlsZV9yZWFkb25seV9t
bWFwKCksIAorCSAqIHNpbmNlIHRoaXMgd291bGQgcmVzdWx0IGluIGNhbGxpbmcgbG93ZXIg
cmVhZHBhZ2UoKSwgd2hpY2ggbWlnaHQgbm90IGJlIAorCSAqIGRlZmluZWQgYnkgbG93ZXIg
ZnMgaWYgbW1hcCgpIGlzIG5vdCBzdXBwb3J0ZWQqLworCWlmICghbG93ZXJfZmlsZS0+Zl9v
cCB8fCAhbG93ZXJfZmlsZS0+Zl9vcC0+bW1hcCkgCisJCXJldHVybiAtRU5PREVWOworCQor
CisJcmV0dXJuIGdlbmVyaWNfZmlsZV9yZWFkb25seV9tbWFwKGZpbGUsIHZtKTsKK30KIC8q
KgogICogVW51c2VkIG9wZXJhdGlvbnM6CiAgKiAgIC0gb3duZXIKQEAgLTI5NSwxOCArMzEw
LDE1IEBAIG91dDoKIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGF6dWtvZnNfbWFpbl9mb3Bz
ID0gewogCS5sbHNlZWsJCT0gZGF6dWtvZnNfbGxzZWVrLAogCS5yZWFkCQk9IGRhenVrb2Zz
X3JlYWQsCi0JLmFpb19yZWFkCT0gZ2VuZXJpY19maWxlX2Fpb19yZWFkLAogCS53cml0ZQkJ
PSBkYXp1a29mc193cml0ZSwKLQkuYWlvX3dyaXRlCT0gZ2VuZXJpY19maWxlX2Fpb193cml0
ZSwKIAkucmVhZGRpcgk9IGRhenVrb2ZzX3JlYWRkaXIsCiAJLmlvY3RsCQk9IGRhenVrb2Zz
X2lvY3RsLAotCS5tbWFwCQk9IGdlbmVyaWNfZmlsZV9tbWFwLAorCS5tbWFwCQk9IGRhenVr
b2ZzX21tYXAsCiAJLm9wZW4JCT0gZGF6dWtvZnNfb3BlbiwKIAkuZmx1c2gJCT0gZGF6dWtv
ZnNfZmx1c2gsCiAJLnJlbGVhc2UJPSBkYXp1a29mc19yZWxlYXNlLAogCS5mc3luYwkJPSBk
YXp1a29mc19mc3luYywKIAkuZmFzeW5jCQk9IGRhenVrb2ZzX2Zhc3luYywKLQkuc3BsaWNl
X3JlYWQJPSBnZW5lcmljX2ZpbGVfc3BsaWNlX3JlYWQsCiB9OwogCiAvKioKQEAgLTMzNSwx
MSArMzQ3LDEwIEBAIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGF6dWtvZnNfbWFpbl9mb3AK
IGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGF6dWtvZnNfZGlyX2ZvcHMgPSB7CiAJ
LnJlYWRkaXIJPSBkYXp1a29mc19yZWFkZGlyLAogCS5pb2N0bAkJPSBkYXp1a29mc19pb2N0
bCwKLQkubW1hcAkJPSBnZW5lcmljX2ZpbGVfbW1hcCwKKwkubW1hcAkJPSBkYXp1a29mc19t
bWFwLAogCS5vcGVuCQk9IGRhenVrb2ZzX29wZW4sCiAJLmZsdXNoCQk9IGRhenVrb2ZzX2Zs
dXNoLAogCS5yZWxlYXNlCT0gZGF6dWtvZnNfcmVsZWFzZSwKIAkuZnN5bmMJCT0gZGF6dWtv
ZnNfZnN5bmMsCiAJLmZhc3luYwkJPSBkYXp1a29mc19mYXN5bmMsCi0JLnNwbGljZV9yZWFk
CT0gZ2VuZXJpY19maWxlX3NwbGljZV9yZWFkLAogfTsKZGlmZiAteCBDVlMgLXJ1cCBkYXp1
a29mcy0zLjAuMC9ncm91cF9kZXYuYyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjIyL2dyb3Vw
X2Rldi5jCi0tLSBkYXp1a29mcy0zLjAuMC9ncm91cF9kZXYuYwkyMDA5LTAyLTIyIDE3OjQ1
OjIwLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yMi9ncm91
cF9kZXYuYwkyMDA4LTEyLTEyIDE3OjEyOjI3LjAwMDAwMDAwMCArMDEwMApAQCAtMjEwLDcg
KzIxMCw3IEBAIGludCBkYXp1a29mc19ncm91cF9kZXZfaW5pdChpbnQgZGV2X21ham8KIAkv
KiBjcmVhdGUgZ3JvdXAgZGV2aWNlcyAqLwogCWZvciAoaSA9IDA7IGkgPCBHUk9VUF9DT1VO
VDsgaSsrKSB7CiAJCWRldiA9IGRldmljZV9jcmVhdGUoZGF6dWtvZnNfY2xhc3MsIE5VTEws
Ci0JCQkJICAgIE1LREVWKGRldl9tYWpvciwgZGV2X21pbm9yX2VuZCksIE5VTEwsCisJCQkJ
ICAgIE1LREVWKGRldl9tYWpvciwgZGV2X21pbm9yX2VuZCksCiAJCQkJICAgICIlcy4lZCIs
IERFVklDRV9OQU1FLCBpKTsKIAkJaWYgKElTX0VSUihkZXYpKSB7CiAJCQllcnIgPSBQVFJf
RVJSKGRldik7CmRpZmYgLXggQ1ZTIC1ydXAgZGF6dWtvZnMtMy4wLjAvaWduX2Rldi5jIGRh
enVrb2ZzLTMuMC4wLXJjNF8yLjYuMjIvaWduX2Rldi5jCi0tLSBkYXp1a29mcy0zLjAuMC9p
Z25fZGV2LmMJMjAwOS0wMi0yMiAxNzo0NToyMC4wMDAwMDAwMDAgKzAxMDAKKysrIGRhenVr
b2ZzLTMuMC4wLXJjNF8yLjYuMjIvaWduX2Rldi5jCTIwMDgtMTItMTIgMTc6NDQ6MjEuMDAw
MDAwMDAwICswMTAwCkBAIC0xNDQsNyArMTQ0LDcgQEAgaW50IGRhenVrb2ZzX2lnbl9kZXZf
aW5pdChpbnQgZGV2X21ham9yLAogCWRhenVrb2ZzX2lnbl9jYWNoZXAgPQogCQlrbWVtX2Nh
Y2hlX2NyZWF0ZSgiZGF6dWtvZnNfaWduX2NhY2hlIiwKIAkJCQkgIHNpemVvZihzdHJ1Y3Qg
ZGF6dWtvZnNfcHJvYyksIDAsCi0JCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04sIE5VTEwpOwor
CQkJCSAgU0xBQl9IV0NBQ0hFX0FMSUdOLCBOVUxMLCBOVUxMKTsKIAlpZiAoIWRhenVrb2Zz
X2lnbl9jYWNoZXApIHsKIAkJZXJyID0gLUVOT01FTTsKIAkJZ290byBlcnJvcl9vdXQxOwpA
QCAtMTU5LDcgKzE1OSw3IEBAIGludCBkYXp1a29mc19pZ25fZGV2X2luaXQoaW50IGRldl9t
YWpvciwKIAogCS8qIGNyZWF0ZSBpZ25vcmUgZGV2aWNlICovCiAJZGV2ID0gZGV2aWNlX2Ny
ZWF0ZShkYXp1a29mc19jbGFzcywgTlVMTCwgTUtERVYoZGV2X21ham9yLCBkZXZfbWlub3Ip
LAotCQkJICAgIE5VTEwsICIlcy5pZ24iLCBERVZJQ0VfTkFNRSk7CisJCQkgICAgIiVzLmln
biIsIERFVklDRV9OQU1FKTsKIAlpZiAoSVNfRVJSKGRldikpIHsKIAkJZXJyID0gUFRSX0VS
UihkZXYpOwogCQlnb3RvIGVycm9yX291dDM7CmRpZmYgLXggQ1ZTIC1ydXAgZGF6dWtvZnMt
My4wLjAvaW5vZGUuYyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjIyL2lub2RlLmMKLS0tIGRh
enVrb2ZzLTMuMC4wL2lub2RlLmMJMjAwOS0wMi0yMiAxNzo0NjowMi4wMDAwMDAwMDAgKzAx
MDAKKysrIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjIvaW5vZGUuYwkyMDA5LTA3LTAzIDE4
OjQxOjA1LjAwMDAwMDAwMCArMDIwMApAQCAtNDcsMTIgKzQ3LDI1IEBAIHN0YXRpYyBpbnQg
ZGF6dWtvZnNfaW5vZGVfdGVzdChzdHJ1Y3QgaW4KIAogc3RhdGljIHZvaWQgZGF6dWtvZnNf
aW5pdF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgaW5vZGUgKmxvd2VyX2lu
b2RlKQogewotCVNFVF9MT1dFUl9JTk9ERShpbm9kZSwgbG93ZXJfaW5vZGUpOwotCWlub2Rl
LT5pX2lubyA9IGxvd2VyX2lub2RlLT5pX2lubzsKLQlpbm9kZS0+aV92ZXJzaW9uKys7Ci0J
aW5vZGUtPmlfb3AgPSAmZGF6dWtvZnNfbWFpbl9pb3BzOwotCWlub2RlLT5pX2ZvcCA9ICZk
YXp1a29mc19tYWluX2ZvcHM7Ci0JaW5vZGUtPmlfbWFwcGluZy0+YV9vcHMgPSAmZGF6dWtv
ZnNfYW9wczsKKyAgICAgICAgU0VUX0xPV0VSX0lOT0RFKGlub2RlLCBsb3dlcl9pbm9kZSk7
CisgICAgICAgIGlub2RlLT5pX2lubyA9IGxvd2VyX2lub2RlLT5pX2lubzsKKyAgICAgICAg
aW5vZGUtPmlfdmVyc2lvbisrOworCisgICAgICAgIGlmIChTX0lTRElSKGxvd2VyX2lub2Rl
LT5pX21vZGUpKSB7CisgICAgICAgICAgICAgICAgaW5vZGUtPmlfb3AgPSAmZGF6dWtvZnNf
ZGlyX2lvcHM7CisgICAgICAgICAgICAgICAgaW5vZGUtPmlfZm9wID0gJmRhenVrb2ZzX2Rp
cl9mb3BzOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlub2RlLT5pX29w
ID0gJmRhenVrb2ZzX21haW5faW9wczsKKyAgICAgICAgICAgICAgICBpbm9kZS0+aV9mb3Ag
PSAmZGF6dWtvZnNfbWFpbl9mb3BzOworCisgICAgICAgICAgICAgICAgaWYgKFNfSVNMTkso
bG93ZXJfaW5vZGUtPmlfbW9kZSkpCisgICAgICAgICAgICAgICAgICAgICAgICBpbm9kZS0+
aV9vcCA9ICZkYXp1a29mc19zeW1saW5rX2lvcHM7CisgICAgICAgICAgICAgICAgZWxzZSAg
aWYgKHNwZWNpYWxfZmlsZShsb3dlcl9pbm9kZS0+aV9tb2RlKSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgaW5pdF9zcGVjaWFsX2lub2RlKGlub2RlLCBsb3dlcl9pbm9kZS0+aV9t
b2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvd2Vy
X2lub2RlLT5pX3JkZXYpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICBpbm9kZS0+aV9tYXBwaW5nLT5hX29wcyA9ICZkYXp1a29mc19hb3BzOwogfQogCiBzdGF0
aWMgaW50IGRhenVrb2ZzX2lub2RlX3NldChzdHJ1Y3QgaW5vZGUgKmlub2RlLCB2b2lkICps
b3dlcl9pbm9kZSkKQEAgLTYyLDcyICs3NSwxMjUgQEAgc3RhdGljIGludCBkYXp1a29mc19p
bm9kZV9zZXQoc3RydWN0IGlubwogfQogCiBpbnQgZGF6dWtvZnNfaW50ZXJwb3NlKHN0cnVj
dCBkZW50cnkgKmxvd2VyX2RlbnRyeSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAotCQkgICAg
IHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCBmbGFnKQorCQkgICAgIHN0cnVjdCBzdXBl
cl9ibG9jayAqc2IsIGludCBoYXNoKQogewogCXN0cnVjdCBpbm9kZSAqaW5vZGU7Ci0Jc3Ry
dWN0IGlub2RlICpsb3dlcl9pbm9kZSA9IGlncmFiKGxvd2VyX2RlbnRyeS0+ZF9pbm9kZSk7
Ci0JaW50IGVyciA9IDA7CisJc3RydWN0IGlub2RlICpsb3dlcl9pbm9kZTsKKwlpbnQgZXJy
OwogCi0JaWYgKCFsb3dlcl9pbm9kZSkgewotCQllcnIgPSAtRVNUQUxFOwotCQlnb3RvIG91
dDsKLQl9CisJbG93ZXJfaW5vZGUgPSBpZ3JhYihsb3dlcl9kZW50cnktPmRfaW5vZGUpOwog
Ci0JaWYgKGxvd2VyX2lub2RlLT5pX3NiICE9IEdFVF9MT1dFUl9TQihzYikpIHsKLQkJaXB1
dChsb3dlcl9pbm9kZSk7Ci0JCWVyciA9IC1FWERFVjsKLQkJZ290byBvdXQ7Ci0JfQorCWlm
ICghbG93ZXJfaW5vZGUpIAorCQlyZXR1cm4gLUVTVEFMRTsKIAogCWlub2RlID0gaWdldDVf
bG9ja2VkKHNiLCAodW5zaWduZWQgbG9uZylsb3dlcl9pbm9kZSwKIAkJCSAgICAgZGF6dWtv
ZnNfaW5vZGVfdGVzdCwgZGF6dWtvZnNfaW5vZGVfc2V0LAogCQkJICAgICBsb3dlcl9pbm9k
ZSk7Ci0KIAlpZiAoIWlub2RlKSB7Ci0JCWlwdXQobG93ZXJfaW5vZGUpOwogCQllcnIgPSAt
RUFDQ0VTOwotCQlnb3RvIG91dDsKKwkJZ290byBlcnI7CiAJfQogCi0JaWYgKGlub2RlLT5p
X3N0YXRlICYgSV9ORVcpIHsKKwlpZiAoaW5vZGUtPmlfc3RhdGUgJiBJX05FVykgCiAJCXVu
bG9ja19uZXdfaW5vZGUoaW5vZGUpOwogCQkvKgogCQkgKiBUaGlzIGlzIGEgbmV3IG5vZGUg
c28gd2UgbGVhdmUgdGhlIGxvd2VyX25vZGUgImluIHVzZSIKIAkJICogYW5kIGRvIG5vdCBj
YWxsIGlwdXQoKS4KIAkJICovCi0JfSBlbHNlIHsKKwllbHNlIAogCQkvKgogCQkgKiBUaGlz
IGlzIG5vdCBhIG5ldyBub2RlIHNvIHdlIGRlY3JlbWVudCB0aGUgdXNhZ2UgY291bnQuCiAJ
CSAqLwogCQlpcHV0KGxvd2VyX2lub2RlKTsKLQl9CiAKLQlpZiAoU19JU0xOSyhsb3dlcl9p
bm9kZS0+aV9tb2RlKSkKLQkJaW5vZGUtPmlfb3AgPSAmZGF6dWtvZnNfc3ltbGlua19pb3Bz
OwotCWVsc2UgaWYgKFNfSVNESVIobG93ZXJfaW5vZGUtPmlfbW9kZSkpCi0JCWlub2RlLT5p
X29wID0gJmRhenVrb2ZzX2Rpcl9pb3BzOwotCi0JaWYgKFNfSVNESVIobG93ZXJfaW5vZGUt
PmlfbW9kZSkpCi0JCWlub2RlLT5pX2ZvcCA9ICZkYXp1a29mc19kaXJfZm9wczsKLQotCWlm
IChzcGVjaWFsX2ZpbGUobG93ZXJfaW5vZGUtPmlfbW9kZSkpIHsKLQkJaW5pdF9zcGVjaWFs
X2lub2RlKGlub2RlLCBsb3dlcl9pbm9kZS0+aV9tb2RlLAotCQkJCSAgIGxvd2VyX2lub2Rl
LT5pX3JkZXYpOwotCX0KIAotCWRlbnRyeS0+ZF9vcCA9ICZkYXp1a29mc19kb3BzOwotCi0J
aWYgKGZsYWcpCisJaWYgKGhhc2gpCiAJCWRfYWRkKGRlbnRyeSwgaW5vZGUpOwogCWVsc2UK
IAkJZF9pbnN0YW50aWF0ZShkZW50cnksIGlub2RlKTsKIAogCWZzc3RhY2tfY29weV9hdHRy
X2FsbChpbm9kZSwgbG93ZXJfaW5vZGUsIE5VTEwpOwogCWZzc3RhY2tfY29weV9pbm9kZV9z
aXplKGlub2RlLCBsb3dlcl9pbm9kZSk7Ci1vdXQ6CisKKwlyZXR1cm4gMDsKK2VycjoKKwlp
cHV0KGxvd2VyX2lub2RlKTsKIAlyZXR1cm4gZXJyOwogfQogCisKKy8qIGNyZWF0ZXMgYSBu
ZXcgbG93ZXIgZGVudHJ5ICovCitzdGF0aWMgc3RydWN0IGRlbnRyeSAqZGF6dWtvZnNfbmV3
X2xvd2VyX2RlbnRyeShzdHJ1Y3QgcXN0ciAqbmFtZSwKKwkJCQkJCXN0cnVjdCBkZW50cnkg
Kmxvd2VyX2Jhc2UsIAorCQkJCQkJc3RydWN0IG5hbWVpZGF0YSAqbmQpCit7CisJc3RydWN0
IGRlbnRyeSAqbmV3X2RlbnRyeTsKKwlzdHJ1Y3QgZGVudHJ5ICp0bXA7CisJc3RydWN0IGlu
b2RlICpsb3dlcl9pbm9kZTsKKworCWxvd2VyX2lub2RlID0gbG93ZXJfYmFzZS0+ZF9pbm9k
ZTsKKwkvKiBYWFg6IGlzIHRoaXMgY2hlY2sgc3RpbGwgbmVjZXNzYXJ5PyAoc2VlIF9fbG9v
a3VwX2hhc2goKSkKKwkgICBUaGlzIGlzIChob3BlbHkpIHByb3RlY3RlZCBieSBsb2NrZWQg
dXBwZXIgaW5vZGUgKi8KKwlpZiAoSVNfREVBRERJUihsb3dlcl9pbm9kZSkpIHsKKwkJbmV3
X2RlbnRyeSA9IEVSUl9QVFIoLUVOT0VOVCk7CisJCWdvdG8gb3V0OworCX0KKwl0bXAgPSBk
X2FsbG9jKGxvd2VyX2Jhc2UsIG5hbWUpOworCWlmICghdG1wKSB7CisJCW5ld19kZW50cnkg
PSBFUlJfUFRSKC1FTk9NRU0pOworCQlnb3RvIG91dDsKKwl9CisJbmV3X2RlbnRyeSA9IGxv
d2VyX2lub2RlLT5pX29wLT5sb29rdXAobG93ZXJfaW5vZGUsIHRtcCwgbmQpOworCS8qIGxv
b2t1cCgpIHNlZW1pbmdseSBpcyBhbGxvd2VkIHRvIHJldHVybiBpdHMgb3duIGRlbnRyeSAo
d2hpY2ggCisJICogbWF5IGluZGVlZCBiZSBhIGRlbnRyeSBvciBvbmx5IGFuIGVycm9yKS4g
SWYgc28KKwkgKiB3ZSB1c2UgaXQgYW5kIGRpc2NhcmQgb3Vycy4gT3RoZXJ3aXNlIHdlIHVz
ZSBvdXJzICovIAorCWlmICghbmV3X2RlbnRyeSkgCisJCW5ld19kZW50cnkgPSB0bXA7CisJ
ZWxzZSAKKwkJZHB1dCh0bXApOworCQkKK291dDoJCQorCXJldHVybiBuZXdfZGVudHJ5Owor
fQorCisKKy8qIGdldCBsb3dlciBkZW50cnkgZm9yIGdpdmVuIG5hbWUgKi8KK3N0YXRpYyBz
dHJ1Y3QgZGVudHJ5ICpkYXp1a29mc19sb29rdXBfb25lX2xvd2VyKHN0cnVjdCBxc3RyICpu
YW1lLCAKKwkJCQkJCXN0cnVjdCBkZW50cnkgKmxvd2VyX2Jhc2UsCisJCQkJCQlzdHJ1Y3Qg
dmZzbW91bnQgKmxvd2VyX21udCkKK3sKKwlzdHJ1Y3QgZGVudHJ5ICpyZXN1bHQ7CisJc3Ry
dWN0IG5hbWVpZGF0YSBuZDsKKwlpbnQgZXJyOworCisJLyogc2VlIHZmc19wYXRoX2xvb2t1
cCBpbiBrZXJuZWwgdmVyc2lvbnMgPj0gMi42LjI0ICovCisJbmQubGFzdF90eXBlID0gTEFT
VF9ST09UOworCW5kLmZsYWdzID0gMDsKKwluZC5kZXB0aCA9IDA7CisJbmQuZGVudHJ5ID0g
ZGdldChsb3dlcl9iYXNlKTsKKwluZC5tbnQgPSBtbnRnZXQobG93ZXJfbW50KTsKKworCWVy
ciA9IHBhdGhfd2FsayhuYW1lLT5uYW1lLCAmbmQpOworCisJaWYgKCFlcnIpIHsKKwkJLyog
aW5vZGUgYWxyZWFkeSBleGlzdHMgb24gZGlzayAqLworCQlyZXN1bHQgPSBuZC5kZW50cnk7
CisJCS8qIHdlIGRvbnQgbmVlZCB0aGUgbW91bnQgKi8KKwkJbW50cHV0KG5kLm1udCk7CisJ
CWdvdG8gb3V0OworCX0KKwlpZiAoZXJyICE9IC1FTk9FTlQpIHsgLyogdGhpcyBpcyBhIFJF
QUwgZXJyb3IgKi8JCisJCXJlc3VsdCA9IEVSUl9QVFIoZXJyKTsKKwkJZ290byBvdXQ7CisJ
fQkKKwkvKiBjcmVhdGUgYSBuZXcgKGxvd2VyKSBkZW50cnkgKi8KKwlyZXN1bHQgPSBkYXp1
a29mc19uZXdfbG93ZXJfZGVudHJ5KG5hbWUsIGxvd2VyX2Jhc2UsICZuZCk7CitvdXQ6CisJ
cmV0dXJuIHJlc3VsdDsKKworfQorCisKIC8qKgogICogRGVzY3JpcHRpb246IENhbGxlZCB3
aGVuIHRoZSBWRlMgbmVlZHMgdG8gbG9vayB1cCBhbiBpbm9kZSBpbiBhIHBhcmVudAogICog
ZGlyZWN0b3J5LiBUaGUgbmFtZSB0byBsb29rIGZvciBpcyBmb3VuZCBpbiB0aGUgZGVudHJ5
LiBUaGlzIG1ldGhvZApAQCAtMTQ4LDYyICsyMTQsNDggQEAgc3RhdGljIHN0cnVjdCBkZW50
cnkgKmRhenVrb2ZzX2xvb2t1cChzdAogCXN0cnVjdCBkZW50cnkgKmxvd2VyX2RlbnRyeTsK
IAlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9kZW50cnlfcGFyZW50OwogCXN0cnVjdCB2ZnNtb3Vu
dCAqbG93ZXJfbW50OwotCWludCBlcnIgPSAwOwotCi0JaWYgKChkZW50cnktPmRfbmFtZS5s
ZW4gPT0gMSAmJiAhc3RyY21wKGRlbnRyeS0+ZF9uYW1lLm5hbWUsICIuIikpCi0JICAgIHx8
IChkZW50cnktPmRfbmFtZS5sZW4gPT0gMiAmJgotCQkhc3RyY21wKGRlbnRyeS0+ZF9uYW1l
Lm5hbWUsICIuLiIpKSkgewotCQlkX2Ryb3AoZGVudHJ5KTsKLQkJZ290byBvdXQ7Ci0JfQot
Ci0JZGVudHJ5LT5kX29wID0gJmRhenVrb2ZzX2RvcHM7CisJaW50IGVycjsKIAogCWxvd2Vy
X2RlbnRyeV9wYXJlbnQgPSBHRVRfTE9XRVJfREVOVFJZKGRlbnRyeS0+ZF9wYXJlbnQpOwot
CWxvd2VyX2RlbnRyeSA9IGxvb2t1cF9vbmVfbGVuKGRlbnRyeS0+ZF9uYW1lLm5hbWUsIGxv
d2VyX2RlbnRyeV9wYXJlbnQsCi0JCQkJICAgICAgZGVudHJ5LT5kX25hbWUubGVuKTsKKwkv
KiBzaG91bGQgYmUgcmVsZWFzZWQgaW4gZF9yZWxlYXNlKCkgKi8KKwlsb3dlcl9tbnQgPSBt
bnRnZXQoR0VUX0xPV0VSX01OVChkZW50cnktPmRfcGFyZW50KSk7CiAKKwlsb3dlcl9kZW50
cnkgPSBkYXp1a29mc19sb29rdXBfb25lX2xvd2VyKCZkZW50cnktPmRfbmFtZSwgCisJCQkJ
CQkgbG93ZXJfZGVudHJ5X3BhcmVudCwgCisJCQkJCQkgbG93ZXJfbW50KTsgCiAJaWYgKElT
X0VSUihsb3dlcl9kZW50cnkpKSB7Ci0JCWVyciA9IFBUUl9FUlIobG93ZXJfZGVudHJ5KTsK
LQkJZF9kcm9wKGRlbnRyeSk7Ci0JCWdvdG8gb3V0OworCQltbnRwdXQobG93ZXJfbW50KTsK
KwkJcmV0dXJuIGxvd2VyX2RlbnRyeTsKIAl9Ci0KIAlCVUdfT04oIWF0b21pY19yZWFkKCZs
b3dlcl9kZW50cnktPmRfY291bnQpKTsKIAorCWRlbnRyeS0+ZF9vcCA9ICZkYXp1a29mc19k
b3BzOwogCVNFVF9ERU5UUllfSU5GTyhkZW50cnksIGttZW1fY2FjaGVfemFsbG9jKGRhenVr
b2ZzX2RlbnRyeV9pbmZvX2NhY2hlcCwKIAkJCUdGUF9LRVJORUwpKTsKIAogCWlmICghR0VU
X0RFTlRSWV9JTkZPKGRlbnRyeSkpIHsKLQkJZXJyID0gLUVOT01FTTsKLQkJZ290byBvdXRf
ZHB1dDsKKwkJbW50cHV0KGxvd2VyX21udCk7CisJCWRwdXQobG93ZXJfZGVudHJ5KTsKKwkJ
cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAJfQotCi0JbG93ZXJfbW50ID0gbW50Z2V0KEdF
VF9MT1dFUl9NTlQoZGVudHJ5LT5kX3BhcmVudCkpOwotCi0JZnNzdGFja19jb3B5X2F0dHJf
YXRpbWUoZGlyLCBsb3dlcl9kZW50cnlfcGFyZW50LT5kX2lub2RlKTsKLQogCVNFVF9MT1dF
Ul9ERU5UUlkoZGVudHJ5LCBsb3dlcl9kZW50cnksIGxvd2VyX21udCk7Ci0KKwkvKiBmcm9t
IG5vdyBsb3dlciBkZW50cnkgYW5kIGxvd2VyIG1vdW50IGFyZSByZWxlYXNlZCBpbiAKKwkg
IGRfcmVsZWFzZSBvZiB1cHBlciBkZW50cnkgKi8KKwlmc3N0YWNrX2NvcHlfYXR0cl9hdGlt
ZShkaXIsIGxvd2VyX2RlbnRyeV9wYXJlbnQtPmRfaW5vZGUpOwogCWlmICghbG93ZXJfZGVu
dHJ5LT5kX2lub2RlKSB7CiAJCS8qCiAJCSAqIFdlIHdhbnQgdG8gYWRkIGJlY2F1c2Ugd2Ug
Y291bGQgbm90IGZpbmQgaW4gbG93ZXIuCiAJCSAqLwogCQlkX2FkZChkZW50cnksIE5VTEwp
OwotCQlnb3RvIG91dDsKKwkJZ290byBvazsKIAl9CiAKIAllcnIgPSBkYXp1a29mc19pbnRl
cnBvc2UobG93ZXJfZGVudHJ5LCBkZW50cnksIGRpci0+aV9zYiwgMSk7Ci0JaWYgKGVycikK
LQkJZ290byBvdXRfZHB1dDsKLQlnb3RvIG91dDsKKwlpZiAoZXJyKSAKKwkJcmV0dXJuIEVS
Ul9QVFIoZXJyKTsKIAotb3V0X2RwdXQ6Ci0JZHB1dChsb3dlcl9kZW50cnkpOwotCWRfZHJv
cChkZW50cnkpOwotCi1vdXQ6Ci0JcmV0dXJuIEVSUl9QVFIoZXJyKTsKK29rOgorCXJldHVy
biBOVUxMOyAvKiB0ZWxsIGNhbGxlciB0byB1c2UgaXRzIG93biwgcGFzc2VkIGRlbnRyeSwg
bm90IG91cnMgKi8KIH0KIAogLyoqCkBAIC0yOTQsMTkgKzM0NiwxOSBAQCBzdGF0aWMgaW50
IGRhenVrb2ZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgCiAJbXV0ZXhfbG9ja19uZXN0ZWQoJihs
b3dlcl9kZW50cnlfcGFyZW50X2lub2RlLT5pX211dGV4KSwKIAkJCSAgSV9NVVRFWF9QQVJF
TlQpOwogCi0JdmZzbW91bnRfc2F2ZSA9IG5kLT5wYXRoLm1udDsKLQlkZW50cnlfc2F2ZSA9
IG5kLT5wYXRoLmRlbnRyeTsKKwl2ZnNtb3VudF9zYXZlID0gbmQtPm1udDsKKwlkZW50cnlf
c2F2ZSA9IG5kLT5kZW50cnk7CiAKLQluZC0+cGF0aC5tbnQgPSBtbnRnZXQobG93ZXJfbW50
KTsKLQluZC0+cGF0aC5kZW50cnkgPSBkZ2V0KGxvd2VyX2RlbnRyeSk7CisJbmQtPm1udCA9
IG1udGdldChsb3dlcl9tbnQpOworCW5kLT5kZW50cnkgPSBkZ2V0KGxvd2VyX2RlbnRyeSk7
CiAKIAllcnIgPSB2ZnNfY3JlYXRlKGxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUsIGxvd2Vy
X2RlbnRyeSwgbW9kZSwgbmQpOwogCiAJbW50cHV0KGxvd2VyX21udCk7CiAJZHB1dChsb3dl
cl9kZW50cnkpOwogCi0JbmQtPnBhdGgubW50ID0gdmZzbW91bnRfc2F2ZTsKLQluZC0+cGF0
aC5kZW50cnkgPSBkZW50cnlfc2F2ZTsKKwluZC0+bW50ID0gdmZzbW91bnRfc2F2ZTsKKwlu
ZC0+ZGVudHJ5ID0gZGVudHJ5X3NhdmU7CiAKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKQEAg
LTM0MCw3ICszOTIsOCBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX3N5bWxpbmsoc3RydWN0IGlu
b2RlCiAJbXV0ZXhfbG9ja19uZXN0ZWQoJihsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLT5p
X211dGV4KSwKIAkJCSAgSV9NVVRFWF9QQVJFTlQpOwogCi0JZXJyID0gdmZzX3N5bWxpbmso
bG93ZXJfZGVudHJ5X3BhcmVudF9pbm9kZSwgbG93ZXJfZGVudHJ5LCBzeW1uYW1lKTsKKwll
cnIgPSB2ZnNfc3ltbGluayhsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLCBsb3dlcl9kZW50
cnksIHN5bW5hbWUsCisJCQkgIFNfSUFMTFVHTyk7CiAJaWYgKGVycikKIAkJZ290byBvdXQ7
CiAKQEAgLTQ1Miw5ICs1MDUsMzcgQEAgc3RhdGljIHZvaWQgZGF6dWtvZnNfcHV0X2xpbmso
c3RydWN0IGRlbgogICogRGVzY3JpcHRpb246IENhbGxlZCBieSB0aGUgVkZTIHRvIGNoZWNr
IGZvciBhY2Nlc3MgcmlnaHRzIG9uIGEKICAqIFBPU0lYLWxpa2UgZmlsZXN5c3RlbS4KICAq
Lwotc3RhdGljIGludCBkYXp1a29mc19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUs
IGludCBtYXNrKQorc3RhdGljIGludCBkYXp1a29mc19wZXJtaXNzaW9uKHN0cnVjdCBpbm9k
ZSAqaW5vZGUsIGludCBtYXNrLAorCQkJICAgICAgIHN0cnVjdCBuYW1laWRhdGEgKm5kKQog
ewotCXJldHVybiBpbm9kZV9wZXJtaXNzaW9uKEdFVF9MT1dFUl9JTk9ERShpbm9kZSksIG1h
c2spOworCXN0cnVjdCB2ZnNtb3VudCAqbG93ZXJfbW50ID0gTlVMTDsKKwlzdHJ1Y3QgZGVu
dHJ5ICpsb3dlcl9kZW50cnkgPSBOVUxMOworCXN0cnVjdCB2ZnNtb3VudCAqdmZzbW50X3Nh
dmUgPSBOVUxMOworCXN0cnVjdCBkZW50cnkgKmRlbnRyeV9zYXZlID0gTlVMTDsKKwlpbnQg
ZXJyOworCisJaWYgKG5kKSB7CisJCWxvd2VyX21udCA9IEdFVF9MT1dFUl9NTlQobmQtPmRl
bnRyeSk7CisJCWxvd2VyX2RlbnRyeSA9IEdFVF9MT1dFUl9ERU5UUlkobmQtPmRlbnRyeSk7
CisKKwkJdmZzbW50X3NhdmUgPSBuZC0+bW50OworCQlkZW50cnlfc2F2ZSA9IG5kLT5kZW50
cnk7CisKKwkJbmQtPm1udCA9IG1udGdldChsb3dlcl9tbnQpOworCQluZC0+ZGVudHJ5ID0g
ZGdldChsb3dlcl9kZW50cnkpOworCX0KKworCWVyciA9IHBlcm1pc3Npb24oR0VUX0xPV0VS
X0lOT0RFKGlub2RlKSwgbWFzaywgbmQpOworCisJaWYgKG5kKSB7CisJCW1udHB1dChsb3dl
cl9tbnQpOworCQlkcHV0KGxvd2VyX2RlbnRyeSk7CisKKwkJbmQtPm1udCA9IHZmc21udF9z
YXZlOworCQluZC0+ZGVudHJ5ID0gZGVudHJ5X3NhdmU7CisJfQorCisgICAgICAgIHJldHVy
biBlcnI7CiB9CiAKIC8qKgpAQCAtNDY4LDE0ICs1NDksMjcgQEAgc3RhdGljIGludCBkYXp1
a29mc19zZXRhdHRyKHN0cnVjdCBkZW50cgogCXN0cnVjdCBpbm9kZSAqbG93ZXJfaW5vZGUg
PSBHRVRfTE9XRVJfSU5PREUoaW5vZGUpOwogCWludCBlcnI7CiAKLQllcnIgPSBub3RpZnlf
Y2hhbmdlKGxvd2VyX2RlbnRyeSwgaWEpOwogCi0JZnNzdGFja19jb3B5X2F0dHJfYWxsKGlu
b2RlLCBsb3dlcl9pbm9kZSwgTlVMTCk7Ci0JZnNzdGFja19jb3B5X2lub2RlX3NpemUoaW5v
ZGUsIGxvd2VyX2lub2RlKTsKKwlpZiAoIWxvd2VyX2lub2RlLT5pX29wIHx8ICFsb3dlcl9p
bm9kZS0+aV9vcC0+c2V0YXR0cikgCisJCS8qIFhYWDogYXQgdGhpcyBwb2ludCBpdCBpcyB0
b28gbGF0ZSB0byBoYW5kbGUgaW5vZGVzIHByb3Blcmx5IHRoYXQgZG8gTk9UCisJCXNwZWNp
Znkgc2V0YXR0cigpLiBWRlMgd291bGQgbm9ybWFsbHkgY2FsbCBpbm9kZV9zZXRhdHRyKCkg
aW4gCisJCXRoaXMgY2FzZS4gU28gdG8gZm9yY2UgdGhpcyB3ZSBqdW1wIGJhY2sgdG8gbm90
aWZ5X2NoYW5nZSB3aGljaCB3aWxsCisJCWhhbmRsZSB0aGlzIGZvciB1cy4gQnV0IHRoaXMg
aXMgZGFuZ2Vyb3VzOgorCQlUaGUgYXR0cmlidXRlcyBtaWdodCBiZSBtb2RpZmllZCBieSBu
b3RpZnlfY2hhbmdlKCkgaW4gYSB3YXkKKwkJdGhhdCByZXN1bHRzIGluIGludmFsaWQgYXR0
cmlidXRlcy4gVGhpcyBzZWVtcyB0byBiZSB0aGUgY2FzZQorCQlpZiB0aGUgaW5vZGUgZm9y
IHdoaWNoIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGhhcyB0aGUgc2V0dWlkCisJCW9yIHNl
dGdpZCBiaXQgc2V0ICovIAorCQllcnIgPSBub3RpZnlfY2hhbmdlKGxvd2VyX2RlbnRyeSwg
aWEpOworCWVsc2UgCisJCWVyciA9IGxvd2VyX2lub2RlLT5pX29wLT5zZXRhdHRyKGxvd2Vy
X2RlbnRyeSwgaWEpOworCQorCWlmICghZXJyKSB7CisJCWZzc3RhY2tfY29weV9hdHRyX2Fs
bChpbm9kZSwgbG93ZXJfaW5vZGUsIE5VTEwpOworCQlmc3N0YWNrX2NvcHlfaW5vZGVfc2l6
ZShpbm9kZSwgbG93ZXJfaW5vZGUpOworCX0gCiAKIAlyZXR1cm4gZXJyOwogfQotCiAvKioK
ICAqIERlc2NyaXB0aW9uOiBDYWxsZWQgYnkgdGhlIFZGUyB0byBzZXQgYW4gZXh0ZW5kZWQg
YXR0cmlidXRlIGZvciBhIGZpbGUuCiAgKiBFeHRlbmRlZCBhdHRyaWJ1dGUgaXMgYSBuYW1l
OnZhbHVlIHBhaXIgYXNzb2NpYXRlZCB3aXRoIGFuIGlub2RlLiBUaGlzCkBAIC00OTYsNyAr
NTkwLDcgQEAgc3RhdGljIGludCBkYXp1a29mc19zZXR4YXR0cihzdHJ1Y3QgZGVudAogCiAJ
aWYgKCFsb3dlcl9kZW50cnlfaW5vZGUtPmlfb3AgfHwKIAkgICAgIWxvd2VyX2RlbnRyeV9p
bm9kZS0+aV9vcC0+c2V0eGF0dHIpIHsKLQkJZXJyID0gLUVOT1NZUzsKKwkJZXJyID0gLUVP
UE5PVFNVUFA7CiAJCWdvdG8gb3V0OwogCX0KIApAQCAtNTI4LDcgKzYyMiw3IEBAIHN0YXRp
YyBzc2l6ZV90IGRhenVrb2ZzX2dldHhhdHRyKHN0cnVjdCAKIAogCWlmICghbG93ZXJfZGVu
dHJ5X2lub2RlLT5pX29wIHx8CiAJICAgICFsb3dlcl9kZW50cnlfaW5vZGUtPmlfb3AtPmdl
dHhhdHRyKSB7Ci0JCWVyciA9IC1FTk9TWVM7CisJCWVyciA9IC1FT1BOT1RTVVBQOwogCQln
b3RvIG91dDsKIAl9CiAKQEAgLTU1Nyw3ICs2NTEsNyBAQCBzdGF0aWMgc3NpemVfdCBkYXp1
a29mc19saXN0eGF0dHIoc3RydWN0CiAKIAlpZiAoIWxvd2VyX2RlbnRyeV9pbm9kZS0+aV9v
cCB8fAogCSAgICAhbG93ZXJfZGVudHJ5X2lub2RlLT5pX29wLT5saXN0eGF0dHIpIHsKLQkJ
ZXJyID0gLUVOT1NZUzsKKwkJZXJyID0gLUVPUE5PVFNVUFA7CiAJCWdvdG8gb3V0OwogCX0K
IApAQCAtNTg0LDcgKzY3OCw3IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfcmVtb3ZleGF0dHIo
c3RydWN0IGQKIAogCWlmICghbG93ZXJfZGVudHJ5X2lub2RlLT5pX29wIHx8CiAJICAgICFs
b3dlcl9kZW50cnlfaW5vZGUtPmlfb3AtPnJlbW92ZXhhdHRyKSB7Ci0JCWVyciA9IC1FTk9T
WVM7CisJCWVyciA9IC1FT1BOT1RTVVBQOwogCQlnb3RvIG91dDsKIAl9CiAKZGlmZiAteCBD
VlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9NYWtlZmlsZSBkYXp1a29mcy0zLjAuMC1yYzRfMi42
LjIyL01ha2VmaWxlCi0tLSBkYXp1a29mcy0zLjAuMC9NYWtlZmlsZQkyMDA5LTAyLTIyIDE3
OjQ2OjAyLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yMi9N
YWtlZmlsZQkyMDA5LTA1LTExIDE5OjUwOjEwLjAwMDAwMDAwMCArMDIwMApAQCAtMTksNiAr
MTksNyBAQCBkYXp1a29mc19pbnN0YWxsOiBkYXp1a29mc19tb2R1bGVzCiAKIGNsZWFuOgog
CXJtIC1mIE1vZHVsZS5zeW12ZXJzCisJcm0gLWYgbW9kdWxlcy5vcmRlcgogCW1ha2UgLUMg
JChEQVpVS09GU19LRVJORUxfU1JDKSBTVUJESVJTPSJgcHdkYCIgY2xlYW4KIAogLlBIT05Z
OiBkYXp1a29mc19tb2R1bGVzIGRhenVrb2ZzX2luc3RhbGwgY2xlYW4KZGlmZiAteCBDVlMg
LXJ1cCBkYXp1a29mcy0zLjAuMC9SRUFETUUgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yMi9S
RUFETUUKLS0tIGRhenVrb2ZzLTMuMC4wL1JFQURNRQkyMDA5LTAyLTIyIDE3OjM4OjIxLjAw
MDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yMi9SRUFETUUJMjAw
OC0xMi0xMiAxNzoxMjoyNy4wMDAwMDAwMDAgKzAxMDAKQEAgLTIxLDEwICsyMSwxMCBAQCBO
T1RFOiBEYXp1a29GUyBpcyBjb21wbGV0ZWx5IHNlcGFyYXRlIGZyCiA9PT09PT09PT09PT09
PT09PQogCiBCZWxvdyBhcmUgYnJpZWYgaW5zdHJ1Y3Rpb25zIHRvIGdldCBEYXp1a29GUyBj
b21waWxlZCBhbmQgcnVubmluZyBvbiBhCi1zeXN0ZW0gd2l0aCBhIExpbnV4IDIuNi4yOCBr
ZXJuZWwuIFlvdSBtYXkgbmVlZCB0byBtYW51YWxseSBhZGp1c3QgdGhlCitzeXN0ZW0gd2l0
aCBhIExpbnV4IDIuNi4yNyBrZXJuZWwuIFlvdSBtYXkgbmVlZCB0byBtYW51YWxseSBhZGp1
c3QgdGhlCiBNYWtlZmlsZSBpZiB5b3Uga2VybmVsIHNvdXJjZXMgYXJlIG5vdCBpbiB0aGUg
ZGVmYXVsdCBsb2NhdGlvbi4KLShQYXRjaGVzIGFyZSBwcm92aWRlZCBmb3IgdmFyaW91cyBv
dGhlciBrZXJuZWxzLiBTZWUgdGhlIHNlY3Rpb24gYmVsb3cKLXRpdGxlZCAiUEFUQ0hJTkci
IGZvciBtb3JlIGluZm9ybWF0aW9uLikKKyhBIHBhdGNoIGlzIHByb3ZpZGVkIHRvIGNvbnZl
cnQgdGhlIERhenVrb0ZTIGNvZGUgdG8gc3VwcG9ydCBMaW51eAorMi42LjI2LikKIAogY29t
cGlsZSB0aGUga2VybmVsIG1vZHVsZQogICAjIG1ha2UKQEAgLTUyLDI1ICs1Miw2IEBAIHVu
bW91bnQgRGF6dWtvRlMKIAogCiAKLT09PT09PT09PT0KLSBQQVRDSElORwotPT09PT09PT09
PQotCi1JbiB0aGUgInBhdGNoZXMiIGRpcmVjdG9yeSB0aGVyZSBhcmUgcGF0Y2hlcyBhdmFp
bGFibGUgdG8gbW9kaWZ5IHRoZQotRGF6dWtvRlMgY29kZSB0byBmaXQgdmFyaW91cyBvdGhl
ciBrZXJuZWxzLiBGb3IgZXhhbXBsZSwgaWYgeW91IGFyZQotcnVubmluZyBvcGVuU1VTRSAx
MS4xIHlvdSBjYW4gcGF0Y2ggdGhlIGNvZGUgd2l0aCB0aGUgZm9sbG93aW5nCi1jb21tYW5k
OgotCi0kIHBhdGNoIC1wMSA8IHBhdGNoZXMvcGF0Y2gtb3BlbnN1c2UtMTEuMQotCi1UaGVy
ZSBzaG91bGQgbm90IGJlIGFueSBlcnJvcnMuIElmIHRoZXJlIGFyZSBlcnJvcnMsIHRoZW4g
dGhlIHBhdGNoCi1pcyBicm9rZW4gYW5kIHNob3VsZCBiZSByZXBvcnRlZCBvbiB0aGUgZGF6
dWtvLWRldmVsIG1haWxpbmcgbGlzdC4KLQotT25jZSB0aGUgY29kZSBoYXMgYmVlbiBwYXRj
aGVkIHlvdSBjYW4gYnVpbGQgdGhlIGtlcm5lbCBtb2R1bGUgYXMKLWRlc2NyaWJlZCBpbiB0
aGUgc2VjdGlvbiAiQlVJTEQgLyBJTlNUQUxMIiBhYm92ZS4KLQotCi0KID09PT09PT09PQog
IFRFU1RJTkcKID09PT09PT09PQpAQCAtMTU0LDkgKzEzNSw2IEBAIGFueSBwcm9ibGVtcy4K
ICBLTk9XTiBJU1NVRVMKID09PT09PT09PT09PT09CiAKLS0gVGhlIGtlcm5lbCB3aWxsIGNy
YXNoIGlmIHlvdSBhdHRlbXB0IHRvIG1vdW50IERhenVrb0ZTIHRvIGEgZmlsZSBpbnN0ZWFk
Ci0gIG9mIGEgZGlyZWN0b3J5LiAoVGhlIHZhcmlvdXMga2VybmVsIHBhdGNoZXMgaGFuZGxl
IHRoaXMgZXJyb3IuKQotCiAtIERhenVrb0ZTIGRvZXMgbm90IHN1cHBvcnQgd3JpdGluZyB0
byBtZW1vcnkgbWFwcGVkIGZpbGVzLiBUaGlzIHNob3VsZCBub3QKICAgY2F1c2UgdGhlIGtl
cm5lbCB0byBjcmFzaCwgYnV0IHdpbGwgaW5zdGVhZCByZXN1bHQgaW4gdGhlIGFwcGxpY2F0
aW9uCiAgIGZhaWxpbmcgdG8gcGVyZm9ybSB0aGUgd3JpdGVzIChhbHRob3VnaCBtbWFwKCkg
d2lsbCBhcHBlYXIgdG8gYmUKZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9zdXBl
ci5jIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjIvc3VwZXIuYwotLS0gZGF6dWtvZnMtMy4w
LjAvc3VwZXIuYwkyMDA5LTAyLTIyIDE3OjQ2OjAyLjAwMDAwMDAwMCArMDEwMAorKysgZGF6
dWtvZnMtMy4wLjAtcmM0XzIuNi4yMi9zdXBlci5jCTIwMDktMDUtMTMgMTQ6NTY6MzQuMDAw
MDAwMDAwICswMjAwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8bGludXgvZnMuaD4K
ICNpbmNsdWRlIDxsaW51eC9uYW1laS5oPgogI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+Cisj
aW5jbHVkZSA8bGludXgvYmFja2luZy1kZXYuaD4KIAogI2luY2x1ZGUgImRhenVrb2ZzX2Zz
LmgiCiAjaW5jbHVkZSAiZGV2LmgiCkBAIC0zNSw2ICszNiwxNCBAQCBzdGF0aWMgc3RydWN0
IGttZW1fY2FjaGUgKmRhenVrb2ZzX3NiX2luCiBzdHJ1Y3Qga21lbV9jYWNoZSAqZGF6dWtv
ZnNfZGVudHJ5X2luZm9fY2FjaGVwOwogc3RydWN0IGttZW1fY2FjaGUgKmRhenVrb2ZzX2Zp
bGVfaW5mb19jYWNoZXA7CiAKK3N0cnVjdCBiYWNraW5nX2Rldl9pbmZvIGRhenVrb2ZzX2Rl
dl9pbmZvID0geworCS5jYXBhYmlsaXRpZXMgPSBCRElfQ0FQX05PX1dSSVRFQkFDSyB8IAor
CQkJQkRJX0NBUF9OT19BQ0NUX0RJUlRZLAorfTsKKworI2RlZmluZSBEQVpVS09GU19WRVJT
SU9OICIzLjAuMC1yYzQtYXZpcmEtYjIuNSIKKworCiBzdGF0aWMgc3RydWN0IGlub2RlICpk
YXp1a29mc19hbGxvY19pbm9kZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogewogCXN0cnVj
dCBkYXp1a29mc19pbm9kZV9pbmZvICppbm9kZWk7CkBAIC0xNTgsOCArMTY3LDggQEAgc3Rh
dGljIGludCBkYXp1a29mc19yZWFkX3N1cGVyKHN0cnVjdCBzdQogCWlmIChlcnIpCiAJCXJl
dHVybiBlcnI7CiAKLQlsb3dlcl9yb290ID0gZGdldChuZC5wYXRoLmRlbnRyeSk7Ci0JbG93
ZXJfbW50ID0gbW50Z2V0KG5kLnBhdGgubW50KTsKKwlsb3dlcl9yb290ID0gZGdldChuZC5k
ZW50cnkpOworCWxvd2VyX21udCA9IG1udGdldChuZC5tbnQpOwogCiAJaWYgKElTX0VSUihs
b3dlcl9yb290KSkgewogCQllcnIgPSBQVFJfRVJSKGxvd2VyX3Jvb3QpOwpAQCAtMTcwLDYg
KzE3OSwxMCBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX3JlYWRfc3VwZXIoc3RydWN0IHN1CiAJ
CWVyciA9IC1FTk9FTlQ7CiAJCWdvdG8gb3V0X3B1dDsKIAl9CisJaWYgKCFTX0lTRElSKGxv
d2VyX3Jvb3QtPmRfaW5vZGUtPmlfbW9kZSkpIHsKKwkJZXJyID0gLUVOT0VOVDsKKwkJZ290
byBvdXRfcHV0OworCX0KIAogCVNFVF9MT1dFUl9TQihzYiwgbG93ZXJfcm9vdC0+ZF9zYik7
CiAJc2ItPnNfbWF4Ynl0ZXMgPSBsb3dlcl9yb290LT5kX3NiLT5zX21heGJ5dGVzOwpAQCAt
MTg0LDcgKzE5Nyw3IEBAIG91dF9wdXQ6CiAJZHB1dChsb3dlcl9yb290KTsKIAltbnRwdXQo
bG93ZXJfbW50KTsKIG91dDoKLQlwYXRoX3B1dCgmbmQucGF0aCk7CisJcGF0aF9yZWxlYXNl
KCZuZCk7CiAJcmV0dXJuIGVycjsKIH0KIApAQCAtMjEzLDE1ICsyMjYsMTYgQEAgc3RhdGlj
IGludCBkYXp1a29mc19nZXRfc2Ioc3RydWN0IGZpbGVfcwogCiBvdXRfYWJvcnQ6CiAJdXBf
d3JpdGUoJnNiLT5zX3Vtb3VudCk7CisJZHB1dChzYi0+c19yb290KTsKIAlkZWFjdGl2YXRl
X3N1cGVyKHNiKTsKIG91dDoKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgdm9pZCBpbml0
X29uY2Uodm9pZCAqZGF0YSkKK3N0YXRpYyB2b2lkIGluaXRfb25jZSh2b2lkICp2cHRyLCBz
dHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGVwLCB1bnNpZ25lZCBsb25nIGZsYWdzKQogewogCXN0
cnVjdCBkYXp1a29mc19pbm9kZV9pbmZvICppbm9kZV9pbmZvID0KLQkJKHN0cnVjdCBkYXp1
a29mc19pbm9kZV9pbmZvICopZGF0YTsKKwkJKHN0cnVjdCBkYXp1a29mc19pbm9kZV9pbmZv
ICopdnB0cjsKIAogCW1lbXNldChpbm9kZV9pbmZvLCAwLCBzaXplb2Yoc3RydWN0IGRhenVr
b2ZzX2lub2RlX2luZm8pKTsKIAlpbm9kZV9pbml0X29uY2UoJihpbm9kZV9pbmZvLT52ZnNf
aW5vZGUpKTsKQEAgLTI1Niw3ICsyNzAsNyBAQCBzdGF0aWMgaW50IGluaXRfY2FjaGVzKHZv
aWQpCiAJCWttZW1fY2FjaGVfY3JlYXRlKCJkYXp1a29mc19pbm9kZV9pbmZvX2NhY2hlIiwK
IAkJCQkgIHNpemVvZihzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5mbyksIDAsCiAJCQkJICBT
TEFCX0hXQ0FDSEVfQUxJR04sCi0JCQkJICBpbml0X29uY2UpOworCQkJCSAgaW5pdF9vbmNl
LCBOVUxMKTsKIAlpZiAoIWRhenVrb2ZzX2lub2RlX2luZm9fY2FjaGVwKQogCQlnb3RvIG91
dF9ub21lbTsKIApAQCAtMjY0LDcgKzI3OCw3IEBAIHN0YXRpYyBpbnQgaW5pdF9jYWNoZXMo
dm9pZCkKIAkJa21lbV9jYWNoZV9jcmVhdGUoImRhenVrb2ZzX3NiX2luZm9fY2FjaGUiLAog
CQkJCSAgc2l6ZW9mKHN0cnVjdCBkYXp1a29mc19zYl9pbmZvKSwgMCwKIAkJCQkgIFNMQUJf
SFdDQUNIRV9BTElHTiwKLQkJCQkgIE5VTEwpOworCQkJCSAgTlVMTCwgTlVMTCk7CiAJaWYg
KCFkYXp1a29mc19zYl9pbmZvX2NhY2hlcCkKIAkJZ290byBvdXRfbm9tZW07CiAKQEAgLTI3
Miw3ICsyODYsNyBAQCBzdGF0aWMgaW50IGluaXRfY2FjaGVzKHZvaWQpCiAJCWttZW1fY2Fj
aGVfY3JlYXRlKCJkYXp1a29mc19kZW50cnlfaW5mb19jYWNoZSIsCiAJCQkJICBzaXplb2Yo
c3RydWN0IGRhenVrb2ZzX2RlbnRyeV9pbmZvKSwgMCwKIAkJCQkgIFNMQUJfSFdDQUNIRV9B
TElHTiwKLQkJCQkgIE5VTEwpOworCQkJCSAgTlVMTCwgTlVMTCk7CiAJaWYgKCFkYXp1a29m
c19kZW50cnlfaW5mb19jYWNoZXApCiAJCWdvdG8gb3V0X25vbWVtOwogCkBAIC0yODAsNyAr
Mjk0LDcgQEAgc3RhdGljIGludCBpbml0X2NhY2hlcyh2b2lkKQogCQlrbWVtX2NhY2hlX2Ny
ZWF0ZSgiZGF6dWtvZnNfZmlsZV9pbmZvX2NhY2hlIiwKIAkJCQkgIHNpemVvZihzdHJ1Y3Qg
ZGF6dWtvZnNfZmlsZV9pbmZvKSwgMCwKIAkJCQkgIFNMQUJfSFdDQUNIRV9BTElHTiwKLQkJ
CQkgIE5VTEwpOworCQkJCSAgTlVMTCwgTlVMTCk7CiAJaWYgKCFkYXp1a29mc19maWxlX2lu
Zm9fY2FjaGVwKQogCQlnb3RvIG91dF9ub21lbTsKIApAQCAtMzA1LDcgKzMxOSw3IEBAIHN0
YXRpYyBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSBkYXp1a29mc18KIAogc3RhdGljIGludCBf
X2luaXQgaW5pdF9kYXp1a29mc19mcyh2b2lkKQogewotCWludCBlcnIgPSAwOworCWludCBl
cnI7CiAKIAllcnIgPSBkYXp1a29mc19kZXZfaW5pdCgpOwogCWlmIChlcnIpCkBAIC0zMTks
NyArMzMzLDcgQEAgc3RhdGljIGludCBfX2luaXQgaW5pdF9kYXp1a29mc19mcyh2b2lkKQog
CWlmIChlcnIpCiAJCWdvdG8gZXJyb3Jfb3V0MzsKIAotCXByaW50ayhLRVJOX0lORk8gImRh
enVrb2ZzOiBsb2FkZWQsIHZlcnNpb249JXNcbiIsIERBWlVLT0ZTX1ZFUlNJT04pOworCXBy
aW50ayhLRVJOX0lORk8gImRhenVrb2ZzOiBsb2FkZWQsIHZlcnNpb249IiBEQVpVS09GU19W
RVJTSU9OICJcbiIpOwogCXJldHVybiAwOwogCiBlcnJvcl9vdXQzOgpAQCAtMzM1LDkgKzM0
OSwxMCBAQCBzdGF0aWMgdm9pZCBfX2V4aXQgZXhpdF9kYXp1a29mc19mcyh2b2lkCiAJdW5y
ZWdpc3Rlcl9maWxlc3lzdGVtKCZkYXp1a29mc19mc190eXBlKTsKIAlkZXN0cm95X2NhY2hl
cygpOwogCWRhenVrb2ZzX2Rldl9kZXN0cm95KCk7Ci0JcHJpbnRrKEtFUk5fSU5GTyAiZGF6
dWtvZnM6IHVubG9hZGVkLCB2ZXJzaW9uPSVzXG4iLCBEQVpVS09GU19WRVJTSU9OKTsKKwlw
cmludGsoS0VSTl9JTkZPICJkYXp1a29mczogdW5sb2FkZWQsIHZlcnNpb249IiBEQVpVS09G
U19WRVJTSU9OICJcbiIpOwogfQogCisKIE1PRFVMRV9BVVRIT1IoIkpvaG4gT2duZXNzIik7
CiBNT0RVTEVfREVTQ1JJUFRJT04oImFjY2VzcyBjb250cm9sIHN0YWNrYWJsZSBmaWxlc3lz
dGVtIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Cg==
--------------070908040306070809040901
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Dazuko-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/dazuko-devel

--------------070908040306070809040901--