patch for vanilla kernel 2.6.20

Lino Sanfilippo <[email protected]> Tue, 07 Jul 2009 17:12:17 +0200
Newsgroups gmane.linux.dazuko.devel
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------090708040608020504030806
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
***************************************************
--------------090708040608020504030806
Content-Type: text/plain;
 name="patch_2.6.20"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="patch_2.6.20"

ZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9DSEFOR0VMT0cgZGF6dWtvZnMtMy4w
LjAtcmM0XzIuNi4yMC9DSEFOR0VMT0cKLS0tIGRhenVrb2ZzLTMuMC4wL0NIQU5HRUxPRwky
MDA5LTAyLTIyIDE3OjUxOjIyLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAt
cmM0XzIuNi4yMC9DSEFOR0VMT0cJMjAwOC0xMi0xMiAxNzo1NDoyMy4wMDAwMDAwMDAgKzAx
MDAKQEAgLTIsMTEgKzIsNiBAQAogIERhenVrb0ZTIENIQU5HRUxPRwogPT09PT09PT09PT09
PT09PT09PT0KIAotMy4wLjAgKDIwMDktMDItMjIpCi0tIGFkZGVkIGRlZmluZSBmb3IgdmVy
c2lvbiBudW1iZXIgb3V0cHV0Ci0tIGFkZGVkIHBhdGNoZXMgZm9yIHZhcmlvdXMgb3RoZXIg
a2VybmVscwotCi0KIDMuMC4wLXJjNCAoMjAwOC0xMS0zMCkKIC0gZml4IGluY29ycmVjdCBk
ZW50cnkvdmZzbW50IHJlZmVyZW5jaW5nIHdoZW4gYWNjZXNzIGRlbmllZAogLSBmaXggaW1w
cm9wZXIgY2xlYW51cCBpbiBzZXZlcmFsIGVycm9yIGhhbmRsaW5nIGNvbmRpdGlvbnMKZGlm
ZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9jdHJsX2Rldi5jIGRhenVrb2ZzLTMuMC4w
LXJjNF8yLjYuMjAvY3RybF9kZXYuYwotLS0gZGF6dWtvZnMtMy4wLjAvY3RybF9kZXYuYwky
MDA5LTAyLTIyIDE3OjQ1OjIwLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAt
cmM0XzIuNi4yMC9jdHJsX2Rldi5jCTIwMDgtMTItMTIgMTc6NTQ6MjMuMDAwMDAwMDAwICsw
MTAwCkBAIC0xODMsNyArMTgzLDcgQEAgaW50IGRhenVrb2ZzX2N0cmxfZGV2X2luaXQoaW50
IGRldl9tYWpvcgogCiAJLyogY3JlYXRlIGNvbnRyb2wgZGV2aWNlICovCiAJZGV2ID0gZGV2
aWNlX2NyZWF0ZShkYXp1a29mc19jbGFzcywgTlVMTCwgTUtERVYoZGV2X21ham9yLCBkZXZf
bWlub3IpLAotCQkJICAgIE5VTEwsICIlcy5jdHJsIiwgREVWSUNFX05BTUUpOworCQkJICAg
ICIlcy5jdHJsIiwgREVWSUNFX05BTUUpOwogCWlmIChJU19FUlIoZGV2KSkgewogCQllcnIg
PSBQVFJfRVJSKGRldik7CiAJCWdvdG8gZXJyb3Jfb3V0MjsKZGlmZiAteCBDVlMgLXJ1cCBk
YXp1a29mcy0zLjAuMC9kYXp1a29mc19mcy5oIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjAv
ZGF6dWtvZnNfZnMuaAotLS0gZGF6dWtvZnMtMy4wLjAvZGF6dWtvZnNfZnMuaAkyMDA5LTAy
LTIyIDE3OjQzOjExLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAtcmM0XzIu
Ni4yMC9kYXp1a29mc19mcy5oCTIwMDktMDctMDMgMTg6MDE6NTAuMDAwMDAwMDAwICswMjAw
CkBAIC0zLDcgKzMsNyBAQAogICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMDQgRXJleiBaYWRv
awogICAgQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQgU3RvbnkgQnJvb2sgVW5pdmVyc2l0eQog
ICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDcgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNo
aW5lcyBDb3JwLgotICAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMDkgSm9obiBPZ25lc3MKKyAg
IENvcHlyaWdodCAoQykgMjAwOCBKb2huIE9nbmVzcwogICAgICBBdXRob3I6IEpvaG4gT2du
ZXNzIDxkYXp1a29jb2RlQG9nbmVzcy5uZXQ+CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI0LDggKzI0
LDYgQEAKICNpZm5kZWYgX19EQVpVS09GU19GU19ICiAjZGVmaW5lIF9fREFaVUtPRlNfRlNf
SAogCi0jZGVmaW5lIERBWlVLT0ZTX1ZFUlNJT04gIjMuMC4wIgotCiBleHRlcm4gc3RydWN0
IGttZW1fY2FjaGUgKmRhenVrb2ZzX2RlbnRyeV9pbmZvX2NhY2hlcDsKIGV4dGVybiBzdHJ1
Y3Qga21lbV9jYWNoZSAqZGF6dWtvZnNfZmlsZV9pbmZvX2NhY2hlcDsKIGV4dGVybiBzdHJ1
Y3QgZmlsZV9vcGVyYXRpb25zIGRhenVrb2ZzX21haW5fZm9wczsKZGlmZiAteCBDVlMgLXJ1
cCBkYXp1a29mcy0zLjAuMC9kZW50cnkuYyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjIwL2Rl
bnRyeS5jCi0tLSBkYXp1a29mcy0zLjAuMC9kZW50cnkuYwkyMDA5LTAyLTIyIDE3OjQ0OjIy
LjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yMC9kZW50cnku
YwkyMDA4LTEyLTEyIDE3OjU0OjIzLjAwMDAwMDAwMCArMDEwMApAQCAtNjUsMTkgKzY1LDE5
IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCAKIAogCWxvd2Vy
X21udCA9IEdFVF9MT1dFUl9NTlQoZGVudHJ5KTsKIAotCXZmc21vdW50X3NhdmUgPSBuZC0+
cGF0aC5tbnQ7Ci0JZGVudHJ5X3NhdmUgPSBuZC0+cGF0aC5kZW50cnk7CisJdmZzbW91bnRf
c2F2ZSA9IG5kLT5tbnQ7CisJZGVudHJ5X3NhdmUgPSBuZC0+ZGVudHJ5OwogCi0JbmQtPnBh
dGgubW50ID0gbW50Z2V0KGxvd2VyX21udCk7Ci0JbmQtPnBhdGguZGVudHJ5ID0gZGdldChs
b3dlcl9kZW50cnkpOworCW5kLT5tbnQgPSBtbnRnZXQobG93ZXJfbW50KTsKKwluZC0+ZGVu
dHJ5ID0gZGdldChsb3dlcl9kZW50cnkpOwogCiAJdmFsaWQgPSBsb3dlcl9kZW50cnktPmRf
b3AtPmRfcmV2YWxpZGF0ZShsb3dlcl9kZW50cnksIG5kKTsKIAogCW1udHB1dChsb3dlcl9t
bnQpOwogCWRwdXQobG93ZXJfZGVudHJ5KTsKIAotCW5kLT5wYXRoLm1udCA9IHZmc21vdW50
X3NhdmU7Ci0JbmQtPnBhdGguZGVudHJ5ID0gZGVudHJ5X3NhdmU7CisJbmQtPm1udCA9IHZm
c21vdW50X3NhdmU7CisJbmQtPmRlbnRyeSA9IGRlbnRyeV9zYXZlOwogCiAJLyogdXBkYXRl
IHRoZSBpbm9kZSwgZXZlbiBpZiBkX3JldmFsaWRhdGUoKSAhPSAxICovCiAJaWYgKGRlbnRy
eS0+ZF9pbm9kZSkgewpkaWZmIC14IENWUyAtcnVwIGRhenVrb2ZzLTMuMC4wL2V2ZW50LmMg
ZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yMC9ldmVudC5jCi0tLSBkYXp1a29mcy0zLjAuMC9l
dmVudC5jCTIwMDktMDItMjIgMTc6NDQ6MDMuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1a29m
cy0zLjAuMC1yYzRfMi42LjIwL2V2ZW50LmMJMjAwOS0wNy0wMyAxODo1NjozOS4wMDAwMDAw
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
bmcgZ3JvdXBfaWQpCiB7CiAJc3RydWN0IGRhenVrb2ZzX2dyb3VwICpncnA7CkBAIC04NzQs
NyArODc2LDggQEAgc3RhdGljIHN0cnVjdCBkYXp1a29mc19ldmVudF9jb250YWluZXIgKgog
CS8qIG1vdmUgZmlyc3QgdG9kby1pdGVtIHRvIHdvcmtpbmcgbGlzdCAqLwogCW11dGV4X2xv
Y2soJndvcmtfbXV0ZXgpOwogCWlmICghbGlzdF9lbXB0eSgmZ3JwLT50b2RvX2xpc3QubGlz
dCkpIHsKLQkJZWMgPSBsaXN0X2ZpcnN0X2VudHJ5KCZncnAtPnRvZG9fbGlzdC5saXN0LAor
CQlzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkID0gJmdycC0+dG9kb19saXN0Lmxpc3Q7CisJCWVj
ID0gbGlzdF9lbnRyeShoZWFkLT5uZXh0LAogCQkJCSAgICAgIHN0cnVjdCBkYXp1a29mc19l
dmVudF9jb250YWluZXIsIGxpc3QpOwogCQlsaXN0X2RlbCgmZWMtPmxpc3QpOwogCQlsaXN0
X2FkZCgmZWMtPmxpc3QsICZncnAtPndvcmtpbmdfbGlzdC5saXN0KTsKQEAgLTkyOCw3ICs5
MzEsOCBAQCBzdGF0aWMgaW50IG9wZW5fZmlsZShzdHJ1Y3QgZGF6dWtvZnNfZXZlCiAJLyog
YWRkIG15c2VsZiB0byBiZSBpZ25vcmVkIG9uIGZpbGUgb3BlbiAodG8gYXZvaWQgcmVjdXJz
aW9uKSAqLwogCW1hc2tfcHJvYygmcHJvYyk7CiAKLQllYy0+ZmlsZSA9IGRlbnRyeV9vcGVu
KGRnZXQoZXZ0LT5kZW50cnkpLCBtbnRnZXQoZXZ0LT5tbnQpLCBPX1JET05MWSk7CisJZWMt
PmZpbGUgPSBkZW50cnlfb3BlbihkZ2V0KGV2dC0+ZGVudHJ5KSwgbW50Z2V0KGV2dC0+bW50
KSwgCisJCQkgICAgICAgT19SRE9OTFkgfCBPX0xBUkdFRklMRSk7CiAJaWYgKElTX0VSUihl
Yy0+ZmlsZSkpIHsKIAkJY2hlY2tfcmVjdXJzaW9uKCk7ICAvKiByZW1vdmUgbXlzZWxmIGZy
b20gcHJvY19saXN0ICovCiAJCXJldCA9IFBUUl9FUlIoZWMtPmZpbGUpOwpAQCAtMTAwNCw5
ICsxMDA4LDkgQEAgaW50IGRhenVrb2ZzX2dldF9ldmVudCh1bnNpZ25lZCBsb25nIGdybwog
CX0KIAogCXdoaWxlICgxKSB7Ci0JCXJldCA9IHdhaXRfZXZlbnRfZnJlZXphYmxlKGdycC0+
cXVldWUsCi0JCQkJCSAgIGlzX2V2ZW50X2F2YWlsYWJsZShncnApIHx8Ci0JCQkJCSAgIGdy
cC0+ZGVwcmVjYXRlZCk7CisJCXJldCA9IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZShncnAt
PnF1ZXVlLAorCQkJCQkgICAgICAgaXNfZXZlbnRfYXZhaWxhYmxlKGdycCkgfHwKKwkJCQkJ
ICAgICAgIGdycC0+ZGVwcmVjYXRlZCk7CiAJCWlmIChyZXQgIT0gMCkKIAkJCWJyZWFrOwog
CmRpZmYgLXggQ1ZTIC1ydXAgZGF6dWtvZnMtMy4wLjAvZmlsZS5jIGRhenVrb2ZzLTMuMC4w
LXJjNF8yLjYuMjAvZmlsZS5jCi0tLSBkYXp1a29mcy0zLjAuMC9maWxlLmMJMjAwOS0wMi0y
MiAxNzo0MzoxMS4wMDAwMDAwMDAgKzAxMDAKKysrIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYu
MjAvZmlsZS5jCTIwMDktMDctMDMgMTg6NTA6MTYuMDAwMDAwMDAwICswMjAwCkBAIC0xNzcs
MTAgKzE3NywxMSBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX29wZW4oc3RydWN0IGlub2RlICpp
CiAJc3RydWN0IGZpbGUgKmxvd2VyX2ZpbGU7CiAJaW50IGVycjsKIAotCWVyciA9IGRhenVr
b2ZzX2NoZWNrX2FjY2VzcyhmaWxlLT5mX2RlbnRyeSwgZmlsZS0+Zl92ZnNtbnQpOwotCWlm
IChlcnIpCi0JCWdvdG8gZXJyb3Jfb3V0MTsKLQorCWlmIChTX0lTUkVHKGlub2RlLT5pX21v
ZGUpKSB7CisJCWVyciA9IGRhenVrb2ZzX2NoZWNrX2FjY2VzcyhmaWxlLT5mX2RlbnRyeSwg
ZmlsZS0+Zl92ZnNtbnQpOworCQlpZiAoZXJyKQorCQkJZ290byBlcnJvcl9vdXQxOworCX0J
CiAJU0VUX0ZJTEVfSU5GTyhmaWxlLCBrbWVtX2NhY2hlX3phbGxvYyhkYXp1a29mc19maWxl
X2luZm9fY2FjaGVwLAogCQkgICAgICBHRlBfS0VSTkVMKSk7CiAJaWYgKCFHRVRfRklMRV9J
TkZPKGZpbGUpKSB7CkBAIC0yNzIsNiArMjczLDIxIEBAIG91dDoKIAlyZXR1cm4gZXJyOwog
fQogCitzdGF0aWMgaW50IGRhenVrb2ZzX21tYXAgKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1
Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtKQoreworCisJc3RydWN0IGZpbGUgKmxvd2VyX2ZpbGUg
PSBHRVRfTE9XRVJfRklMRShmaWxlKTsKKworCS8qIGlmIGxvd2VyIGZzIGRvZXMgbm90IHN1
cHBvcnQgbW1hcCgpLCB3ZSBkb250IGNhbGwgZ2VuZXJpY19maWxlX3JlYWRvbmx5X21tYXAo
KSwgCisJICogc2luY2UgdGhpcyB3b3VsZCByZXN1bHQgaW4gY2FsbGluZyBsb3dlciByZWFk
cGFnZSgpLCB3aGljaCBtaWdodCBub3QgYmUgCisJICogZGVmaW5lZCBieSBsb3dlciBmcyBp
ZiBtbWFwKCkgaXMgbm90IHN1cHBvcnRlZCovCisJaWYgKCFsb3dlcl9maWxlLT5mX29wIHx8
ICFsb3dlcl9maWxlLT5mX29wLT5tbWFwKSAKKwkJcmV0dXJuIC1FTk9ERVY7CisJCisKKwly
ZXR1cm4gZ2VuZXJpY19maWxlX3JlYWRvbmx5X21tYXAoZmlsZSwgdm0pOworfQorCiAvKioK
ICAqIFVudXNlZCBvcGVyYXRpb25zOgogICogICAtIG93bmVyCkBAIC0yOTUsMTggKzMxMSwx
NSBAQCBvdXQ6CiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRhenVrb2ZzX21haW5fZm9wcyA9
IHsKIAkubGxzZWVrCQk9IGRhenVrb2ZzX2xsc2VlaywKIAkucmVhZAkJPSBkYXp1a29mc19y
ZWFkLAotCS5haW9fcmVhZAk9IGdlbmVyaWNfZmlsZV9haW9fcmVhZCwKIAkud3JpdGUJCT0g
ZGF6dWtvZnNfd3JpdGUsCi0JLmFpb193cml0ZQk9IGdlbmVyaWNfZmlsZV9haW9fd3JpdGUs
CiAJLnJlYWRkaXIJPSBkYXp1a29mc19yZWFkZGlyLAogCS5pb2N0bAkJPSBkYXp1a29mc19p
b2N0bCwKLQkubW1hcAkJPSBnZW5lcmljX2ZpbGVfbW1hcCwKKwkubW1hcAkJPSBkYXp1a29m
c19tbWFwLAogCS5vcGVuCQk9IGRhenVrb2ZzX29wZW4sCiAJLmZsdXNoCQk9IGRhenVrb2Zz
X2ZsdXNoLAogCS5yZWxlYXNlCT0gZGF6dWtvZnNfcmVsZWFzZSwKIAkuZnN5bmMJCT0gZGF6
dWtvZnNfZnN5bmMsCiAJLmZhc3luYwkJPSBkYXp1a29mc19mYXN5bmMsCi0JLnNwbGljZV9y
ZWFkCT0gZ2VuZXJpY19maWxlX3NwbGljZV9yZWFkLAogfTsKIAogLyoqCkBAIC0zMzUsMTEg
KzM0OCwxMCBAQCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRhenVrb2ZzX21haW5fZm9wCiBj
b25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRhenVrb2ZzX2Rpcl9mb3BzID0gewogCS5y
ZWFkZGlyCT0gZGF6dWtvZnNfcmVhZGRpciwKIAkuaW9jdGwJCT0gZGF6dWtvZnNfaW9jdGws
Ci0JLm1tYXAJCT0gZ2VuZXJpY19maWxlX21tYXAsCisJLm1tYXAJCT0gZGF6dWtvZnNfbW1h
cCwKIAkub3BlbgkJPSBkYXp1a29mc19vcGVuLAogCS5mbHVzaAkJPSBkYXp1a29mc19mbHVz
aCwKIAkucmVsZWFzZQk9IGRhenVrb2ZzX3JlbGVhc2UsCiAJLmZzeW5jCQk9IGRhenVrb2Zz
X2ZzeW5jLAogCS5mYXN5bmMJCT0gZGF6dWtvZnNfZmFzeW5jLAotCS5zcGxpY2VfcmVhZAk9
IGdlbmVyaWNfZmlsZV9zcGxpY2VfcmVhZCwKIH07CmRpZmYgLXggQ1ZTIC1ydXAgZGF6dWtv
ZnMtMy4wLjAvZ3JvdXBfZGV2LmMgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yMC9ncm91cF9k
ZXYuYwotLS0gZGF6dWtvZnMtMy4wLjAvZ3JvdXBfZGV2LmMJMjAwOS0wMi0yMiAxNzo0NToy
MC4wMDAwMDAwMDAgKzAxMDAKKysrIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjAvZ3JvdXBf
ZGV2LmMJMjAwOC0xMi0xMiAxNzo1NDoyMy4wMDAwMDAwMDAgKzAxMDAKQEAgLTIxMCw3ICsy
MTAsNyBAQCBpbnQgZGF6dWtvZnNfZ3JvdXBfZGV2X2luaXQoaW50IGRldl9tYWpvCiAJLyog
Y3JlYXRlIGdyb3VwIGRldmljZXMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgR1JPVVBfQ09VTlQ7
IGkrKykgewogCQlkZXYgPSBkZXZpY2VfY3JlYXRlKGRhenVrb2ZzX2NsYXNzLCBOVUxMLAot
CQkJCSAgICBNS0RFVihkZXZfbWFqb3IsIGRldl9taW5vcl9lbmQpLCBOVUxMLAorCQkJCSAg
ICBNS0RFVihkZXZfbWFqb3IsIGRldl9taW5vcl9lbmQpLAogCQkJCSAgICAiJXMuJWQiLCBE
RVZJQ0VfTkFNRSwgaSk7CiAJCWlmIChJU19FUlIoZGV2KSkgewogCQkJZXJyID0gUFRSX0VS
UihkZXYpOwpkaWZmIC14IENWUyAtcnVwIGRhenVrb2ZzLTMuMC4wL2lnbl9kZXYuYyBkYXp1
a29mcy0zLjAuMC1yYzRfMi42LjIwL2lnbl9kZXYuYwotLS0gZGF6dWtvZnMtMy4wLjAvaWdu
X2Rldi5jCTIwMDktMDItMjIgMTc6NDU6MjAuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1a29m
cy0zLjAuMC1yYzRfMi42LjIwL2lnbl9kZXYuYwkyMDA4LTEyLTEyIDE3OjU0OjIzLjAwMDAw
MDAwMCArMDEwMApAQCAtMTQ0LDcgKzE0NCw3IEBAIGludCBkYXp1a29mc19pZ25fZGV2X2lu
aXQoaW50IGRldl9tYWpvciwKIAlkYXp1a29mc19pZ25fY2FjaGVwID0KIAkJa21lbV9jYWNo
ZV9jcmVhdGUoImRhenVrb2ZzX2lnbl9jYWNoZSIsCiAJCQkJICBzaXplb2Yoc3RydWN0IGRh
enVrb2ZzX3Byb2MpLCAwLAotCQkJCSAgU0xBQl9IV0NBQ0hFX0FMSUdOLCBOVUxMKTsKKwkJ
CQkgIFNMQUJfSFdDQUNIRV9BTElHTiwgTlVMTCwgTlVMTCk7CiAJaWYgKCFkYXp1a29mc19p
Z25fY2FjaGVwKSB7CiAJCWVyciA9IC1FTk9NRU07CiAJCWdvdG8gZXJyb3Jfb3V0MTsKQEAg
LTE1OSw3ICsxNTksNyBAQCBpbnQgZGF6dWtvZnNfaWduX2Rldl9pbml0KGludCBkZXZfbWFq
b3IsCiAKIAkvKiBjcmVhdGUgaWdub3JlIGRldmljZSAqLwogCWRldiA9IGRldmljZV9jcmVh
dGUoZGF6dWtvZnNfY2xhc3MsIE5VTEwsIE1LREVWKGRldl9tYWpvciwgZGV2X21pbm9yKSwK
LQkJCSAgICBOVUxMLCAiJXMuaWduIiwgREVWSUNFX05BTUUpOworCQkJICAgICIlcy5pZ24i
LCBERVZJQ0VfTkFNRSk7CiAJaWYgKElTX0VSUihkZXYpKSB7CiAJCWVyciA9IFBUUl9FUlIo
ZGV2KTsKIAkJZ290byBlcnJvcl9vdXQzOwpkaWZmIC14IENWUyAtcnVwIGRhenVrb2ZzLTMu
MC4wL2lub2RlLmMgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yMC9pbm9kZS5jCi0tLSBkYXp1
a29mcy0zLjAuMC9pbm9kZS5jCTIwMDktMDItMjIgMTc6NDY6MDIuMDAwMDAwMDAwICswMTAw
CisrKyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjIwL2lub2RlLmMJMjAwOS0wNy0wMyAxODo0
MToyNS4wMDAwMDAwMDAgKzAyMDAKQEAgLTQ3LDEyICs0NywyNSBAQCBzdGF0aWMgaW50IGRh
enVrb2ZzX2lub2RlX3Rlc3Qoc3RydWN0IGluCiAKIHN0YXRpYyB2b2lkIGRhenVrb2ZzX2lu
aXRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGlub2RlICpsb3dlcl9pbm9k
ZSkKIHsKLQlTRVRfTE9XRVJfSU5PREUoaW5vZGUsIGxvd2VyX2lub2RlKTsKLQlpbm9kZS0+
aV9pbm8gPSBsb3dlcl9pbm9kZS0+aV9pbm87Ci0JaW5vZGUtPmlfdmVyc2lvbisrOwotCWlu
b2RlLT5pX29wID0gJmRhenVrb2ZzX21haW5faW9wczsKLQlpbm9kZS0+aV9mb3AgPSAmZGF6
dWtvZnNfbWFpbl9mb3BzOwotCWlub2RlLT5pX21hcHBpbmctPmFfb3BzID0gJmRhenVrb2Zz
X2FvcHM7CisgICAgICAgIFNFVF9MT1dFUl9JTk9ERShpbm9kZSwgbG93ZXJfaW5vZGUpOwor
ICAgICAgICBpbm9kZS0+aV9pbm8gPSBsb3dlcl9pbm9kZS0+aV9pbm87CisgICAgICAgIGlu
b2RlLT5pX3ZlcnNpb24rKzsKKworICAgICAgICBpZiAoU19JU0RJUihsb3dlcl9pbm9kZS0+
aV9tb2RlKSkgeworICAgICAgICAgICAgICAgIGlub2RlLT5pX29wID0gJmRhenVrb2ZzX2Rp
cl9pb3BzOworICAgICAgICAgICAgICAgIGlub2RlLT5pX2ZvcCA9ICZkYXp1a29mc19kaXJf
Zm9wczsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbm9kZS0+aV9vcCA9
ICZkYXp1a29mc19tYWluX2lvcHM7CisgICAgICAgICAgICAgICAgaW5vZGUtPmlfZm9wID0g
JmRhenVrb2ZzX21haW5fZm9wczsKKworICAgICAgICAgICAgICAgIGlmIChTX0lTTE5LKGxv
d2VyX2lub2RlLT5pX21vZGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgaW5vZGUtPmlf
b3AgPSAmZGF6dWtvZnNfc3ltbGlua19pb3BzOworICAgICAgICAgICAgICAgIGVsc2UgIGlm
IChzcGVjaWFsX2ZpbGUobG93ZXJfaW5vZGUtPmlfbW9kZSkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGluaXRfc3BlY2lhbF9pbm9kZShpbm9kZSwgbG93ZXJfaW5vZGUtPmlfbW9k
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3dlcl9p
bm9kZS0+aV9yZGV2KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAg
aW5vZGUtPmlfbWFwcGluZy0+YV9vcHMgPSAmZGF6dWtvZnNfYW9wczsKIH0KIAogc3RhdGlj
IGludCBkYXp1a29mc19pbm9kZV9zZXQoc3RydWN0IGlub2RlICppbm9kZSwgdm9pZCAqbG93
ZXJfaW5vZGUpCkBAIC02Miw3MiArNzUsMTI1IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfaW5v
ZGVfc2V0KHN0cnVjdCBpbm8KIH0KIAogaW50IGRhenVrb2ZzX2ludGVycG9zZShzdHJ1Y3Qg
ZGVudHJ5ICpsb3dlcl9kZW50cnksIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKLQkJICAgICBz
dHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgZmxhZykKKwkJICAgICBzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKnNiLCBpbnQgaGFzaCkKIHsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlOwotCXN0cnVj
dCBpbm9kZSAqbG93ZXJfaW5vZGUgPSBpZ3JhYihsb3dlcl9kZW50cnktPmRfaW5vZGUpOwot
CWludCBlcnIgPSAwOworCXN0cnVjdCBpbm9kZSAqbG93ZXJfaW5vZGU7CisJaW50IGVycjsK
IAotCWlmICghbG93ZXJfaW5vZGUpIHsKLQkJZXJyID0gLUVTVEFMRTsKLQkJZ290byBvdXQ7
Ci0JfQorCWxvd2VyX2lub2RlID0gaWdyYWIobG93ZXJfZGVudHJ5LT5kX2lub2RlKTsKIAot
CWlmIChsb3dlcl9pbm9kZS0+aV9zYiAhPSBHRVRfTE9XRVJfU0Ioc2IpKSB7Ci0JCWlwdXQo
bG93ZXJfaW5vZGUpOwotCQllcnIgPSAtRVhERVY7Ci0JCWdvdG8gb3V0OwotCX0KKwlpZiAo
IWxvd2VyX2lub2RlKSAKKwkJcmV0dXJuIC1FU1RBTEU7CiAKIAlpbm9kZSA9IGlnZXQ1X2xv
Y2tlZChzYiwgKHVuc2lnbmVkIGxvbmcpbG93ZXJfaW5vZGUsCiAJCQkgICAgIGRhenVrb2Zz
X2lub2RlX3Rlc3QsIGRhenVrb2ZzX2lub2RlX3NldCwKIAkJCSAgICAgbG93ZXJfaW5vZGUp
OwotCiAJaWYgKCFpbm9kZSkgewotCQlpcHV0KGxvd2VyX2lub2RlKTsKIAkJZXJyID0gLUVB
Q0NFUzsKLQkJZ290byBvdXQ7CisJCWdvdG8gZXJyOwogCX0KIAotCWlmIChpbm9kZS0+aV9z
dGF0ZSAmIElfTkVXKSB7CisJaWYgKGlub2RlLT5pX3N0YXRlICYgSV9ORVcpIAogCQl1bmxv
Y2tfbmV3X2lub2RlKGlub2RlKTsKIAkJLyoKIAkJICogVGhpcyBpcyBhIG5ldyBub2RlIHNv
IHdlIGxlYXZlIHRoZSBsb3dlcl9ub2RlICJpbiB1c2UiCiAJCSAqIGFuZCBkbyBub3QgY2Fs
bCBpcHV0KCkuCiAJCSAqLwotCX0gZWxzZSB7CisJZWxzZSAKIAkJLyoKIAkJICogVGhpcyBp
cyBub3QgYSBuZXcgbm9kZSBzbyB3ZSBkZWNyZW1lbnQgdGhlIHVzYWdlIGNvdW50LgogCQkg
Ki8KIAkJaXB1dChsb3dlcl9pbm9kZSk7Ci0JfQogCi0JaWYgKFNfSVNMTksobG93ZXJfaW5v
ZGUtPmlfbW9kZSkpCi0JCWlub2RlLT5pX29wID0gJmRhenVrb2ZzX3N5bWxpbmtfaW9wczsK
LQllbHNlIGlmIChTX0lTRElSKGxvd2VyX2lub2RlLT5pX21vZGUpKQotCQlpbm9kZS0+aV9v
cCA9ICZkYXp1a29mc19kaXJfaW9wczsKLQotCWlmIChTX0lTRElSKGxvd2VyX2lub2RlLT5p
X21vZGUpKQotCQlpbm9kZS0+aV9mb3AgPSAmZGF6dWtvZnNfZGlyX2ZvcHM7Ci0KLQlpZiAo
c3BlY2lhbF9maWxlKGxvd2VyX2lub2RlLT5pX21vZGUpKSB7Ci0JCWluaXRfc3BlY2lhbF9p
bm9kZShpbm9kZSwgbG93ZXJfaW5vZGUtPmlfbW9kZSwKLQkJCQkgICBsb3dlcl9pbm9kZS0+
aV9yZGV2KTsKLQl9CiAKLQlkZW50cnktPmRfb3AgPSAmZGF6dWtvZnNfZG9wczsKLQotCWlm
IChmbGFnKQorCWlmIChoYXNoKQogCQlkX2FkZChkZW50cnksIGlub2RlKTsKIAllbHNlCiAJ
CWRfaW5zdGFudGlhdGUoZGVudHJ5LCBpbm9kZSk7CiAKIAlmc3N0YWNrX2NvcHlfYXR0cl9h
bGwoaW5vZGUsIGxvd2VyX2lub2RlLCBOVUxMKTsKIAlmc3N0YWNrX2NvcHlfaW5vZGVfc2l6
ZShpbm9kZSwgbG93ZXJfaW5vZGUpOwotb3V0OgorCisJcmV0dXJuIDA7CitlcnI6CisJaXB1
dChsb3dlcl9pbm9kZSk7CiAJcmV0dXJuIGVycjsKIH0KIAorCisvKiBjcmVhdGVzIGEgbmV3
IGxvd2VyIGRlbnRyeSAqLworc3RhdGljIHN0cnVjdCBkZW50cnkgKmRhenVrb2ZzX25ld19s
b3dlcl9kZW50cnkoc3RydWN0IHFzdHIgKm5hbWUsCisJCQkJCQlzdHJ1Y3QgZGVudHJ5ICps
b3dlcl9iYXNlLCAKKwkJCQkJCXN0cnVjdCBuYW1laWRhdGEgKm5kKQoreworCXN0cnVjdCBk
ZW50cnkgKm5ld19kZW50cnk7CisJc3RydWN0IGRlbnRyeSAqdG1wOworCXN0cnVjdCBpbm9k
ZSAqbG93ZXJfaW5vZGU7CisKKwlsb3dlcl9pbm9kZSA9IGxvd2VyX2Jhc2UtPmRfaW5vZGU7
CisJLyogWFhYOiBpcyB0aGlzIGNoZWNrIHN0aWxsIG5lY2Vzc2FyeT8gKHNlZSBfX2xvb2t1
cF9oYXNoKCkpCisJICAgVGhpcyBpcyAoaG9wZWx5KSBwcm90ZWN0ZWQgYnkgbG9ja2VkIHVw
cGVyIGlub2RlICovCisJaWYgKElTX0RFQURESVIobG93ZXJfaW5vZGUpKSB7CisJCW5ld19k
ZW50cnkgPSBFUlJfUFRSKC1FTk9FTlQpOworCQlnb3RvIG91dDsKKwl9CisJdG1wID0gZF9h
bGxvYyhsb3dlcl9iYXNlLCBuYW1lKTsKKwlpZiAoIXRtcCkgeworCQluZXdfZGVudHJ5ID0g
RVJSX1BUUigtRU5PTUVNKTsKKwkJZ290byBvdXQ7CisJfQorCW5ld19kZW50cnkgPSBsb3dl
cl9pbm9kZS0+aV9vcC0+bG9va3VwKGxvd2VyX2lub2RlLCB0bXAsIG5kKTsKKwkvKiBsb29r
dXAoKSBzZWVtaW5nbHkgaXMgYWxsb3dlZCB0byByZXR1cm4gaXRzIG93biBkZW50cnkgKHdo
aWNoIAorCSAqIG1heSBpbmRlZWQgYmUgYSBkZW50cnkgb3Igb25seSBhbiBlcnJvcikuIElm
IHNvCisJICogd2UgdXNlIGl0IGFuZCBkaXNjYXJkIG91cnMuIE90aGVyd2lzZSB3ZSB1c2Ug
b3VycyAqLyAKKwlpZiAoIW5ld19kZW50cnkpIAorCQluZXdfZGVudHJ5ID0gdG1wOworCWVs
c2UgCisJCWRwdXQodG1wKTsKKwkJCitvdXQ6CQkKKwlyZXR1cm4gbmV3X2RlbnRyeTsKK30K
KworCisvKiBnZXQgbG93ZXIgZGVudHJ5IGZvciBnaXZlbiBuYW1lICovCitzdGF0aWMgc3Ry
dWN0IGRlbnRyeSAqZGF6dWtvZnNfbG9va3VwX29uZV9sb3dlcihzdHJ1Y3QgcXN0ciAqbmFt
ZSwgCisJCQkJCQlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9iYXNlLAorCQkJCQkJc3RydWN0IHZm
c21vdW50ICpsb3dlcl9tbnQpCit7CisJc3RydWN0IGRlbnRyeSAqcmVzdWx0OworCXN0cnVj
dCBuYW1laWRhdGEgbmQ7CisJaW50IGVycjsKKworCS8qIHNlZSB2ZnNfcGF0aF9sb29rdXAg
aW4ga2VybmVsIHZlcnNpb25zID49IDIuNi4yNCAqLworCW5kLmxhc3RfdHlwZSA9IExBU1Rf
Uk9PVDsKKwluZC5mbGFncyA9IDA7CisJbmQuZGVwdGggPSAwOworCW5kLmRlbnRyeSA9IGRn
ZXQobG93ZXJfYmFzZSk7CisJbmQubW50ID0gbW50Z2V0KGxvd2VyX21udCk7CisKKwllcnIg
PSBwYXRoX3dhbGsobmFtZS0+bmFtZSwgJm5kKTsKKworCWlmICghZXJyKSB7CisJCS8qIGlu
b2RlIGFscmVhZHkgZXhpc3RzIG9uIGRpc2sgKi8KKwkJcmVzdWx0ID0gbmQuZGVudHJ5Owor
CQkvKiB3ZSBkb250IG5lZWQgdGhlIG1vdW50ICovCisJCW1udHB1dChuZC5tbnQpOworCQln
b3RvIG91dDsKKwl9CisJaWYgKGVyciAhPSAtRU5PRU5UKSB7IC8qIHRoaXMgaXMgYSBSRUFM
IGVycm9yICovCQorCQlyZXN1bHQgPSBFUlJfUFRSKGVycik7CisJCWdvdG8gb3V0OworCX0J
CisJLyogY3JlYXRlIGEgbmV3IChsb3dlcikgZGVudHJ5ICovCisJcmVzdWx0ID0gZGF6dWtv
ZnNfbmV3X2xvd2VyX2RlbnRyeShuYW1lLCBsb3dlcl9iYXNlLCAmbmQpOworb3V0OgorCXJl
dHVybiByZXN1bHQ7CisKK30KKworCiAvKioKICAqIERlc2NyaXB0aW9uOiBDYWxsZWQgd2hl
biB0aGUgVkZTIG5lZWRzIHRvIGxvb2sgdXAgYW4gaW5vZGUgaW4gYSBwYXJlbnQKICAqIGRp
cmVjdG9yeS4gVGhlIG5hbWUgdG8gbG9vayBmb3IgaXMgZm91bmQgaW4gdGhlIGRlbnRyeS4g
VGhpcyBtZXRob2QKQEAgLTE0OCw2MiArMjE0LDQ4IEBAIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5
ICpkYXp1a29mc19sb29rdXAoc3QKIAlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9kZW50cnk7CiAJ
c3RydWN0IGRlbnRyeSAqbG93ZXJfZGVudHJ5X3BhcmVudDsKIAlzdHJ1Y3QgdmZzbW91bnQg
Kmxvd2VyX21udDsKLQlpbnQgZXJyID0gMDsKLQotCWlmICgoZGVudHJ5LT5kX25hbWUubGVu
ID09IDEgJiYgIXN0cmNtcChkZW50cnktPmRfbmFtZS5uYW1lLCAiLiIpKQotCSAgICB8fCAo
ZGVudHJ5LT5kX25hbWUubGVuID09IDIgJiYKLQkJIXN0cmNtcChkZW50cnktPmRfbmFtZS5u
YW1lLCAiLi4iKSkpIHsKLQkJZF9kcm9wKGRlbnRyeSk7Ci0JCWdvdG8gb3V0OwotCX0KLQot
CWRlbnRyeS0+ZF9vcCA9ICZkYXp1a29mc19kb3BzOworCWludCBlcnI7CiAKIAlsb3dlcl9k
ZW50cnlfcGFyZW50ID0gR0VUX0xPV0VSX0RFTlRSWShkZW50cnktPmRfcGFyZW50KTsKLQls
b3dlcl9kZW50cnkgPSBsb29rdXBfb25lX2xlbihkZW50cnktPmRfbmFtZS5uYW1lLCBsb3dl
cl9kZW50cnlfcGFyZW50LAotCQkJCSAgICAgIGRlbnRyeS0+ZF9uYW1lLmxlbik7CisJLyog
c2hvdWxkIGJlIHJlbGVhc2VkIGluIGRfcmVsZWFzZSgpICovCisJbG93ZXJfbW50ID0gbW50
Z2V0KEdFVF9MT1dFUl9NTlQoZGVudHJ5LT5kX3BhcmVudCkpOwogCisJbG93ZXJfZGVudHJ5
ID0gZGF6dWtvZnNfbG9va3VwX29uZV9sb3dlcigmZGVudHJ5LT5kX25hbWUsIAorCQkJCQkJ
IGxvd2VyX2RlbnRyeV9wYXJlbnQsIAorCQkJCQkJIGxvd2VyX21udCk7IAogCWlmIChJU19F
UlIobG93ZXJfZGVudHJ5KSkgewotCQllcnIgPSBQVFJfRVJSKGxvd2VyX2RlbnRyeSk7Ci0J
CWRfZHJvcChkZW50cnkpOwotCQlnb3RvIG91dDsKKwkJbW50cHV0KGxvd2VyX21udCk7CisJ
CXJldHVybiBsb3dlcl9kZW50cnk7CiAJfQotCiAJQlVHX09OKCFhdG9taWNfcmVhZCgmbG93
ZXJfZGVudHJ5LT5kX2NvdW50KSk7CiAKKwlkZW50cnktPmRfb3AgPSAmZGF6dWtvZnNfZG9w
czsKIAlTRVRfREVOVFJZX0lORk8oZGVudHJ5LCBrbWVtX2NhY2hlX3phbGxvYyhkYXp1a29m
c19kZW50cnlfaW5mb19jYWNoZXAsCiAJCQlHRlBfS0VSTkVMKSk7CiAKIAlpZiAoIUdFVF9E
RU5UUllfSU5GTyhkZW50cnkpKSB7Ci0JCWVyciA9IC1FTk9NRU07Ci0JCWdvdG8gb3V0X2Rw
dXQ7CisJCW1udHB1dChsb3dlcl9tbnQpOworCQlkcHV0KGxvd2VyX2RlbnRyeSk7CisJCXJl
dHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCX0KLQotCWxvd2VyX21udCA9IG1udGdldChHRVRf
TE9XRVJfTU5UKGRlbnRyeS0+ZF9wYXJlbnQpKTsKLQotCWZzc3RhY2tfY29weV9hdHRyX2F0
aW1lKGRpciwgbG93ZXJfZGVudHJ5X3BhcmVudC0+ZF9pbm9kZSk7Ci0KIAlTRVRfTE9XRVJf
REVOVFJZKGRlbnRyeSwgbG93ZXJfZGVudHJ5LCBsb3dlcl9tbnQpOwotCisJLyogZnJvbSBu
b3cgbG93ZXIgZGVudHJ5IGFuZCBsb3dlciBtb3VudCBhcmUgcmVsZWFzZWQgaW4gCisJICBk
X3JlbGVhc2Ugb2YgdXBwZXIgZGVudHJ5ICovCisJZnNzdGFja19jb3B5X2F0dHJfYXRpbWUo
ZGlyLCBsb3dlcl9kZW50cnlfcGFyZW50LT5kX2lub2RlKTsKIAlpZiAoIWxvd2VyX2RlbnRy
eS0+ZF9pbm9kZSkgewogCQkvKgogCQkgKiBXZSB3YW50IHRvIGFkZCBiZWNhdXNlIHdlIGNv
dWxkIG5vdCBmaW5kIGluIGxvd2VyLgogCQkgKi8KIAkJZF9hZGQoZGVudHJ5LCBOVUxMKTsK
LQkJZ290byBvdXQ7CisJCWdvdG8gb2s7CiAJfQogCiAJZXJyID0gZGF6dWtvZnNfaW50ZXJw
b3NlKGxvd2VyX2RlbnRyeSwgZGVudHJ5LCBkaXItPmlfc2IsIDEpOwotCWlmIChlcnIpCi0J
CWdvdG8gb3V0X2RwdXQ7Ci0JZ290byBvdXQ7CisJaWYgKGVycikgCisJCXJldHVybiBFUlJf
UFRSKGVycik7CiAKLW91dF9kcHV0OgotCWRwdXQobG93ZXJfZGVudHJ5KTsKLQlkX2Ryb3Ao
ZGVudHJ5KTsKLQotb3V0OgotCXJldHVybiBFUlJfUFRSKGVycik7CitvazoKKwlyZXR1cm4g
TlVMTDsgLyogdGVsbCBjYWxsZXIgdG8gdXNlIGl0cyBvd24sIHBhc3NlZCBkZW50cnksIG5v
dCBvdXJzICovCiB9CiAKIC8qKgpAQCAtMjk0LDE5ICszNDYsMTkgQEAgc3RhdGljIGludCBk
YXp1a29mc19jcmVhdGUoc3RydWN0IGlub2RlIAogCW11dGV4X2xvY2tfbmVzdGVkKCYobG93
ZXJfZGVudHJ5X3BhcmVudF9pbm9kZS0+aV9tdXRleCksCiAJCQkgIElfTVVURVhfUEFSRU5U
KTsKIAotCXZmc21vdW50X3NhdmUgPSBuZC0+cGF0aC5tbnQ7Ci0JZGVudHJ5X3NhdmUgPSBu
ZC0+cGF0aC5kZW50cnk7CisJdmZzbW91bnRfc2F2ZSA9IG5kLT5tbnQ7CisJZGVudHJ5X3Nh
dmUgPSBuZC0+ZGVudHJ5OwogCi0JbmQtPnBhdGgubW50ID0gbW50Z2V0KGxvd2VyX21udCk7
Ci0JbmQtPnBhdGguZGVudHJ5ID0gZGdldChsb3dlcl9kZW50cnkpOworCW5kLT5tbnQgPSBt
bnRnZXQobG93ZXJfbW50KTsKKwluZC0+ZGVudHJ5ID0gZGdldChsb3dlcl9kZW50cnkpOwog
CiAJZXJyID0gdmZzX2NyZWF0ZShsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLCBsb3dlcl9k
ZW50cnksIG1vZGUsIG5kKTsKIAogCW1udHB1dChsb3dlcl9tbnQpOwogCWRwdXQobG93ZXJf
ZGVudHJ5KTsKIAotCW5kLT5wYXRoLm1udCA9IHZmc21vdW50X3NhdmU7Ci0JbmQtPnBhdGgu
ZGVudHJ5ID0gZGVudHJ5X3NhdmU7CisJbmQtPm1udCA9IHZmc21vdW50X3NhdmU7CisJbmQt
PmRlbnRyeSA9IGRlbnRyeV9zYXZlOwogCiAJaWYgKGVycikKIAkJZ290byBvdXQ7CkBAIC0z
NDAsNyArMzkyLDggQEAgc3RhdGljIGludCBkYXp1a29mc19zeW1saW5rKHN0cnVjdCBpbm9k
ZQogCW11dGV4X2xvY2tfbmVzdGVkKCYobG93ZXJfZGVudHJ5X3BhcmVudF9pbm9kZS0+aV9t
dXRleCksCiAJCQkgIElfTVVURVhfUEFSRU5UKTsKIAotCWVyciA9IHZmc19zeW1saW5rKGxv
d2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUsIGxvd2VyX2RlbnRyeSwgc3ltbmFtZSk7CisJZXJy
ID0gdmZzX3N5bWxpbmsobG93ZXJfZGVudHJ5X3BhcmVudF9pbm9kZSwgbG93ZXJfZGVudHJ5
LCBzeW1uYW1lLAorCQkJICBTX0lBTExVR08pOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0Owog
CkBAIC00NTIsOSArNTA1LDM3IEBAIHN0YXRpYyB2b2lkIGRhenVrb2ZzX3B1dF9saW5rKHN0
cnVjdCBkZW4KICAqIERlc2NyaXB0aW9uOiBDYWxsZWQgYnkgdGhlIFZGUyB0byBjaGVjayBm
b3IgYWNjZXNzIHJpZ2h0cyBvbiBhCiAgKiBQT1NJWC1saWtlIGZpbGVzeXN0ZW0uCiAgKi8K
LXN0YXRpYyBpbnQgZGF6dWtvZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBp
bnQgbWFzaykKK3N0YXRpYyBpbnQgZGF6dWtvZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUg
Kmlub2RlLCBpbnQgbWFzaywKKwkJCSAgICAgICBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkKIHsK
LQlyZXR1cm4gaW5vZGVfcGVybWlzc2lvbihHRVRfTE9XRVJfSU5PREUoaW5vZGUpLCBtYXNr
KTsKKwlzdHJ1Y3QgdmZzbW91bnQgKmxvd2VyX21udCA9IE5VTEw7CisJc3RydWN0IGRlbnRy
eSAqbG93ZXJfZGVudHJ5ID0gTlVMTDsKKwlzdHJ1Y3QgdmZzbW91bnQgKnZmc21udF9zYXZl
ID0gTlVMTDsKKwlzdHJ1Y3QgZGVudHJ5ICpkZW50cnlfc2F2ZSA9IE5VTEw7CisJaW50IGVy
cjsKKworCWlmIChuZCkgeworCQlsb3dlcl9tbnQgPSBHRVRfTE9XRVJfTU5UKG5kLT5kZW50
cnkpOworCQlsb3dlcl9kZW50cnkgPSBHRVRfTE9XRVJfREVOVFJZKG5kLT5kZW50cnkpOwor
CisJCXZmc21udF9zYXZlID0gbmQtPm1udDsKKwkJZGVudHJ5X3NhdmUgPSBuZC0+ZGVudHJ5
OworCisJCW5kLT5tbnQgPSBtbnRnZXQobG93ZXJfbW50KTsKKwkJbmQtPmRlbnRyeSA9IGRn
ZXQobG93ZXJfZGVudHJ5KTsKKwl9CisKKwllcnIgPSBwZXJtaXNzaW9uKEdFVF9MT1dFUl9J
Tk9ERShpbm9kZSksIG1hc2ssIG5kKTsKKworCWlmIChuZCkgeworCQltbnRwdXQobG93ZXJf
bW50KTsKKwkJZHB1dChsb3dlcl9kZW50cnkpOworCisJCW5kLT5tbnQgPSB2ZnNtbnRfc2F2
ZTsKKwkJbmQtPmRlbnRyeSA9IGRlbnRyeV9zYXZlOworCX0KKworICAgICAgICByZXR1cm4g
ZXJyOwogfQogCiAvKioKQEAgLTQ2OCwxNCArNTQ5LDI3IEBAIHN0YXRpYyBpbnQgZGF6dWtv
ZnNfc2V0YXR0cihzdHJ1Y3QgZGVudHIKIAlzdHJ1Y3QgaW5vZGUgKmxvd2VyX2lub2RlID0g
R0VUX0xPV0VSX0lOT0RFKGlub2RlKTsKIAlpbnQgZXJyOwogCi0JZXJyID0gbm90aWZ5X2No
YW5nZShsb3dlcl9kZW50cnksIGlhKTsKIAotCWZzc3RhY2tfY29weV9hdHRyX2FsbChpbm9k
ZSwgbG93ZXJfaW5vZGUsIE5VTEwpOwotCWZzc3RhY2tfY29weV9pbm9kZV9zaXplKGlub2Rl
LCBsb3dlcl9pbm9kZSk7CisJaWYgKCFsb3dlcl9pbm9kZS0+aV9vcCB8fCAhbG93ZXJfaW5v
ZGUtPmlfb3AtPnNldGF0dHIpIAorCQkvKiBYWFg6IGF0IHRoaXMgcG9pbnQgaXQgaXMgdG9v
IGxhdGUgdG8gaGFuZGxlIGlub2RlcyBwcm9wZXJseSB0aGF0IGRvIE5PVAorCQlzcGVjaWZ5
IHNldGF0dHIoKS4gVkZTIHdvdWxkIG5vcm1hbGx5IGNhbGwgaW5vZGVfc2V0YXR0cigpIGlu
IAorCQl0aGlzIGNhc2UuIFNvIHRvIGZvcmNlIHRoaXMgd2UganVtcCBiYWNrIHRvIG5vdGlm
eV9jaGFuZ2Ugd2hpY2ggd2lsbAorCQloYW5kbGUgdGhpcyBmb3IgdXMuIEJ1dCB0aGlzIGlz
IGRhbmdlcm91czoKKwkJVGhlIGF0dHJpYnV0ZXMgbWlnaHQgYmUgbW9kaWZpZWQgYnkgbm90
aWZ5X2NoYW5nZSgpIGluIGEgd2F5CisJCXRoYXQgcmVzdWx0cyBpbiBpbnZhbGlkIGF0dHJp
YnV0ZXMuIFRoaXMgc2VlbXMgdG8gYmUgdGhlIGNhc2UKKwkJaWYgdGhlIGlub2RlIGZvciB3
aGljaCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBoYXMgdGhlIHNldHVpZAorCQlvciBzZXRn
aWQgYml0IHNldCAqLyAKKwkJZXJyID0gbm90aWZ5X2NoYW5nZShsb3dlcl9kZW50cnksIGlh
KTsKKwllbHNlIAorCQllcnIgPSBsb3dlcl9pbm9kZS0+aV9vcC0+c2V0YXR0cihsb3dlcl9k
ZW50cnksIGlhKTsKKwkKKwlpZiAoIWVycikgeworCQlmc3N0YWNrX2NvcHlfYXR0cl9hbGwo
aW5vZGUsIGxvd2VyX2lub2RlLCBOVUxMKTsKKwkJZnNzdGFja19jb3B5X2lub2RlX3NpemUo
aW5vZGUsIGxvd2VyX2lub2RlKTsKKwl9IAogCiAJcmV0dXJuIGVycjsKIH0KLQogLyoqCiAg
KiBEZXNjcmlwdGlvbjogQ2FsbGVkIGJ5IHRoZSBWRlMgdG8gc2V0IGFuIGV4dGVuZGVkIGF0
dHJpYnV0ZSBmb3IgYSBmaWxlLgogICogRXh0ZW5kZWQgYXR0cmlidXRlIGlzIGEgbmFtZTp2
YWx1ZSBwYWlyIGFzc29jaWF0ZWQgd2l0aCBhbiBpbm9kZS4gVGhpcwpAQCAtNDk2LDcgKzU5
MCw3IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfc2V0eGF0dHIoc3RydWN0IGRlbnQKIAogCWlm
ICghbG93ZXJfZGVudHJ5X2lub2RlLT5pX29wIHx8CiAJICAgICFsb3dlcl9kZW50cnlfaW5v
ZGUtPmlfb3AtPnNldHhhdHRyKSB7Ci0JCWVyciA9IC1FTk9TWVM7CisJCWVyciA9IC1FT1BO
T1RTVVBQOwogCQlnb3RvIG91dDsKIAl9CiAKQEAgLTUyOCw3ICs2MjIsNyBAQCBzdGF0aWMg
c3NpemVfdCBkYXp1a29mc19nZXR4YXR0cihzdHJ1Y3QgCiAKIAlpZiAoIWxvd2VyX2RlbnRy
eV9pbm9kZS0+aV9vcCB8fAogCSAgICAhbG93ZXJfZGVudHJ5X2lub2RlLT5pX29wLT5nZXR4
YXR0cikgewotCQllcnIgPSAtRU5PU1lTOworCQllcnIgPSAtRU9QTk9UU1VQUDsKIAkJZ290
byBvdXQ7CiAJfQogCkBAIC01NTcsNyArNjUxLDcgQEAgc3RhdGljIHNzaXplX3QgZGF6dWtv
ZnNfbGlzdHhhdHRyKHN0cnVjdAogCiAJaWYgKCFsb3dlcl9kZW50cnlfaW5vZGUtPmlfb3Ag
fHwKIAkgICAgIWxvd2VyX2RlbnRyeV9pbm9kZS0+aV9vcC0+bGlzdHhhdHRyKSB7Ci0JCWVy
ciA9IC1FTk9TWVM7CisJCWVyciA9IC1FT1BOT1RTVVBQOwogCQlnb3RvIG91dDsKIAl9CiAK
QEAgLTU4NCw3ICs2NzgsNyBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX3JlbW92ZXhhdHRyKHN0
cnVjdCBkCiAKIAlpZiAoIWxvd2VyX2RlbnRyeV9pbm9kZS0+aV9vcCB8fAogCSAgICAhbG93
ZXJfZGVudHJ5X2lub2RlLT5pX29wLT5yZW1vdmV4YXR0cikgewotCQllcnIgPSAtRU5PU1lT
OworCQllcnIgPSAtRU9QTk9UU1VQUDsKIAkJZ290byBvdXQ7CiAJfQogCmRpZmYgLXggQ1ZT
IC1ydXAgZGF6dWtvZnMtMy4wLjAvTWFrZWZpbGUgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4y
MC9NYWtlZmlsZQotLS0gZGF6dWtvZnMtMy4wLjAvTWFrZWZpbGUJMjAwOS0wMi0yMiAxNzo0
NjowMi4wMDAwMDAwMDAgKzAxMDAKKysrIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjAvTWFr
ZWZpbGUJMjAwOS0wNS0xMSAxOTo1MDoxNy4wMDAwMDAwMDAgKzAyMDAKQEAgLTE5LDYgKzE5
LDcgQEAgZGF6dWtvZnNfaW5zdGFsbDogZGF6dWtvZnNfbW9kdWxlcwogCiBjbGVhbjoKIAly
bSAtZiBNb2R1bGUuc3ltdmVycworCXJtIC1mIG1vZHVsZXMub3JkZXIKIAltYWtlIC1DICQo
REFaVUtPRlNfS0VSTkVMX1NSQykgU1VCRElSUz0iYHB3ZGAiIGNsZWFuCiAKIC5QSE9OWTog
ZGF6dWtvZnNfbW9kdWxlcyBkYXp1a29mc19pbnN0YWxsIGNsZWFuCmRpZmYgLXggQ1ZTIC1y
dXAgZGF6dWtvZnMtMy4wLjAvUkVBRE1FIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjAvUkVB
RE1FCi0tLSBkYXp1a29mcy0zLjAuMC9SRUFETUUJMjAwOS0wMi0yMiAxNzozODoyMS4wMDAw
MDAwMDAgKzAxMDAKKysrIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjAvUkVBRE1FCTIwMDgt
MTItMTIgMTc6NTQ6MjMuMDAwMDAwMDAwICswMTAwCkBAIC0yMSwxMCArMjEsMTAgQEAgTk9U
RTogRGF6dWtvRlMgaXMgY29tcGxldGVseSBzZXBhcmF0ZSBmcgogPT09PT09PT09PT09PT09
PT0KIAogQmVsb3cgYXJlIGJyaWVmIGluc3RydWN0aW9ucyB0byBnZXQgRGF6dWtvRlMgY29t
cGlsZWQgYW5kIHJ1bm5pbmcgb24gYQotc3lzdGVtIHdpdGggYSBMaW51eCAyLjYuMjgga2Vy
bmVsLiBZb3UgbWF5IG5lZWQgdG8gbWFudWFsbHkgYWRqdXN0IHRoZQorc3lzdGVtIHdpdGgg
YSBMaW51eCAyLjYuMjcga2VybmVsLiBZb3UgbWF5IG5lZWQgdG8gbWFudWFsbHkgYWRqdXN0
IHRoZQogTWFrZWZpbGUgaWYgeW91IGtlcm5lbCBzb3VyY2VzIGFyZSBub3QgaW4gdGhlIGRl
ZmF1bHQgbG9jYXRpb24uCi0oUGF0Y2hlcyBhcmUgcHJvdmlkZWQgZm9yIHZhcmlvdXMgb3Ro
ZXIga2VybmVscy4gU2VlIHRoZSBzZWN0aW9uIGJlbG93Ci10aXRsZWQgIlBBVENISU5HIiBm
b3IgbW9yZSBpbmZvcm1hdGlvbi4pCisoQSBwYXRjaCBpcyBwcm92aWRlZCB0byBjb252ZXJ0
IHRoZSBEYXp1a29GUyBjb2RlIHRvIHN1cHBvcnQgTGludXgKKzIuNi4yNi4pCiAKIGNvbXBp
bGUgdGhlIGtlcm5lbCBtb2R1bGUKICAgIyBtYWtlCkBAIC01MiwyNSArNTIsNiBAQCB1bm1v
dW50IERhenVrb0ZTCiAKIAogCi09PT09PT09PT09Ci0gUEFUQ0hJTkcKLT09PT09PT09PT0K
LQotSW4gdGhlICJwYXRjaGVzIiBkaXJlY3RvcnkgdGhlcmUgYXJlIHBhdGNoZXMgYXZhaWxh
YmxlIHRvIG1vZGlmeSB0aGUKLURhenVrb0ZTIGNvZGUgdG8gZml0IHZhcmlvdXMgb3RoZXIg
a2VybmVscy4gRm9yIGV4YW1wbGUsIGlmIHlvdSBhcmUKLXJ1bm5pbmcgb3BlblNVU0UgMTEu
MSB5b3UgY2FuIHBhdGNoIHRoZSBjb2RlIHdpdGggdGhlIGZvbGxvd2luZwotY29tbWFuZDoK
LQotJCBwYXRjaCAtcDEgPCBwYXRjaGVzL3BhdGNoLW9wZW5zdXNlLTExLjEKLQotVGhlcmUg
c2hvdWxkIG5vdCBiZSBhbnkgZXJyb3JzLiBJZiB0aGVyZSBhcmUgZXJyb3JzLCB0aGVuIHRo
ZSBwYXRjaAotaXMgYnJva2VuIGFuZCBzaG91bGQgYmUgcmVwb3J0ZWQgb24gdGhlIGRhenVr
by1kZXZlbCBtYWlsaW5nIGxpc3QuCi0KLU9uY2UgdGhlIGNvZGUgaGFzIGJlZW4gcGF0Y2hl
ZCB5b3UgY2FuIGJ1aWxkIHRoZSBrZXJuZWwgbW9kdWxlIGFzCi1kZXNjcmliZWQgaW4gdGhl
IHNlY3Rpb24gIkJVSUxEIC8gSU5TVEFMTCIgYWJvdmUuCi0KLQotCiA9PT09PT09PT0KICBU
RVNUSU5HCiA9PT09PT09PT0KQEAgLTE1NCw5ICsxMzUsNiBAQCBhbnkgcHJvYmxlbXMuCiAg
S05PV04gSVNTVUVTCiA9PT09PT09PT09PT09PQogCi0tIFRoZSBrZXJuZWwgd2lsbCBjcmFz
aCBpZiB5b3UgYXR0ZW1wdCB0byBtb3VudCBEYXp1a29GUyB0byBhIGZpbGUgaW5zdGVhZAot
ICBvZiBhIGRpcmVjdG9yeS4gKFRoZSB2YXJpb3VzIGtlcm5lbCBwYXRjaGVzIGhhbmRsZSB0
aGlzIGVycm9yLikKLQogLSBEYXp1a29GUyBkb2VzIG5vdCBzdXBwb3J0IHdyaXRpbmcgdG8g
bWVtb3J5IG1hcHBlZCBmaWxlcy4gVGhpcyBzaG91bGQgbm90CiAgIGNhdXNlIHRoZSBrZXJu
ZWwgdG8gY3Jhc2gsIGJ1dCB3aWxsIGluc3RlYWQgcmVzdWx0IGluIHRoZSBhcHBsaWNhdGlv
bgogICBmYWlsaW5nIHRvIHBlcmZvcm0gdGhlIHdyaXRlcyAoYWx0aG91Z2ggbW1hcCgpIHdp
bGwgYXBwZWFyIHRvIGJlCmRpZmYgLXggQ1ZTIC1ydXAgZGF6dWtvZnMtMy4wLjAvc3VwZXIu
YyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjIwL3N1cGVyLmMKLS0tIGRhenVrb2ZzLTMuMC4w
L3N1cGVyLmMJMjAwOS0wMi0yMiAxNzo0NjowMi4wMDAwMDAwMDAgKzAxMDAKKysrIGRhenVr
b2ZzLTMuMC4wLXJjNF8yLjYuMjAvc3VwZXIuYwkyMDA5LTA3LTAzIDE3OjU4OjA0LjAwMDAw
MDAwMCArMDIwMApAQCAtMzUsNiArMzUsMTAgQEAgc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hl
ICpkYXp1a29mc19zYl9pbgogc3RydWN0IGttZW1fY2FjaGUgKmRhenVrb2ZzX2RlbnRyeV9p
bmZvX2NhY2hlcDsKIHN0cnVjdCBrbWVtX2NhY2hlICpkYXp1a29mc19maWxlX2luZm9fY2Fj
aGVwOwogCisKKyNkZWZpbmUgREFaVUtPRlNfVkVSU0lPTiAiMy4wLjAtcmM0LWF2aXJhLWIy
LjYiCisKKwogc3RhdGljIHN0cnVjdCBpbm9kZSAqZGF6dWtvZnNfYWxsb2NfaW5vZGUoc3Ry
dWN0IHN1cGVyX2Jsb2NrICpzYikKIHsKIAlzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5mbyAq
aW5vZGVpOwpAQCAtMTU4LDggKzE2Miw4IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfcmVhZF9z
dXBlcihzdHJ1Y3Qgc3UKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCi0JbG93ZXJfcm9v
dCA9IGRnZXQobmQucGF0aC5kZW50cnkpOwotCWxvd2VyX21udCA9IG1udGdldChuZC5wYXRo
Lm1udCk7CisJbG93ZXJfcm9vdCA9IGRnZXQobmQuZGVudHJ5KTsKKwlsb3dlcl9tbnQgPSBt
bnRnZXQobmQubW50KTsKIAogCWlmIChJU19FUlIobG93ZXJfcm9vdCkpIHsKIAkJZXJyID0g
UFRSX0VSUihsb3dlcl9yb290KTsKQEAgLTE3MCw2ICsxNzQsMTAgQEAgc3RhdGljIGludCBk
YXp1a29mc19yZWFkX3N1cGVyKHN0cnVjdCBzdQogCQllcnIgPSAtRU5PRU5UOwogCQlnb3Rv
IG91dF9wdXQ7CiAJfQorCWlmICghU19JU0RJUihsb3dlcl9yb290LT5kX2lub2RlLT5pX21v
ZGUpKSB7CisJCWVyciA9IC1FTk9FTlQ7CisJCWdvdG8gb3V0X3B1dDsKKwl9CiAKIAlTRVRf
TE9XRVJfU0Ioc2IsIGxvd2VyX3Jvb3QtPmRfc2IpOwogCXNiLT5zX21heGJ5dGVzID0gbG93
ZXJfcm9vdC0+ZF9zYi0+c19tYXhieXRlczsKQEAgLTE4NCw3ICsxOTIsNyBAQCBvdXRfcHV0
OgogCWRwdXQobG93ZXJfcm9vdCk7CiAJbW50cHV0KGxvd2VyX21udCk7CiBvdXQ6Ci0JcGF0
aF9wdXQoJm5kLnBhdGgpOworCXBhdGhfcmVsZWFzZSgmbmQpOwogCXJldHVybiBlcnI7CiB9
CiAKQEAgLTIxMywxNSArMjIxLDE2IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfZ2V0X3NiKHN0
cnVjdCBmaWxlX3MKIAogb3V0X2Fib3J0OgogCXVwX3dyaXRlKCZzYi0+c191bW91bnQpOwor
CWRwdXQoc2ItPnNfcm9vdCk7CiAJZGVhY3RpdmF0ZV9zdXBlcihzYik7CiBvdXQ6CiAJcmV0
dXJuIGVycjsKIH0KIAotc3RhdGljIHZvaWQgaW5pdF9vbmNlKHZvaWQgKmRhdGEpCitzdGF0
aWMgdm9pZCBpbml0X29uY2Uodm9pZCAqdnB0ciwgc3RydWN0IGttZW1fY2FjaGUgKmNhY2hl
cCwgdW5zaWduZWQgbG9uZyBmbGFncykKIHsKIAlzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5m
byAqaW5vZGVfaW5mbyA9Ci0JCShzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5mbyAqKWRhdGE7
CisJCShzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5mbyAqKXZwdHI7CiAKIAltZW1zZXQoaW5v
ZGVfaW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBkYXp1a29mc19pbm9kZV9pbmZvKSk7CiAJaW5v
ZGVfaW5pdF9vbmNlKCYoaW5vZGVfaW5mby0+dmZzX2lub2RlKSk7CkBAIC0yNTYsNyArMjY1
LDcgQEAgc3RhdGljIGludCBpbml0X2NhY2hlcyh2b2lkKQogCQlrbWVtX2NhY2hlX2NyZWF0
ZSgiZGF6dWtvZnNfaW5vZGVfaW5mb19jYWNoZSIsCiAJCQkJICBzaXplb2Yoc3RydWN0IGRh
enVrb2ZzX2lub2RlX2luZm8pLCAwLAogCQkJCSAgU0xBQl9IV0NBQ0hFX0FMSUdOLAotCQkJ
CSAgaW5pdF9vbmNlKTsKKwkJCQkgIGluaXRfb25jZSwgTlVMTCk7CiAJaWYgKCFkYXp1a29m
c19pbm9kZV9pbmZvX2NhY2hlcCkKIAkJZ290byBvdXRfbm9tZW07CiAKQEAgLTI2NCw3ICsy
NzMsNyBAQCBzdGF0aWMgaW50IGluaXRfY2FjaGVzKHZvaWQpCiAJCWttZW1fY2FjaGVfY3Jl
YXRlKCJkYXp1a29mc19zYl9pbmZvX2NhY2hlIiwKIAkJCQkgIHNpemVvZihzdHJ1Y3QgZGF6
dWtvZnNfc2JfaW5mbyksIDAsCiAJCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04sCi0JCQkJICBO
VUxMKTsKKwkJCQkgIE5VTEwsIE5VTEwpOwogCWlmICghZGF6dWtvZnNfc2JfaW5mb19jYWNo
ZXApCiAJCWdvdG8gb3V0X25vbWVtOwogCkBAIC0yNzIsNyArMjgxLDcgQEAgc3RhdGljIGlu
dCBpbml0X2NhY2hlcyh2b2lkKQogCQlrbWVtX2NhY2hlX2NyZWF0ZSgiZGF6dWtvZnNfZGVu
dHJ5X2luZm9fY2FjaGUiLAogCQkJCSAgc2l6ZW9mKHN0cnVjdCBkYXp1a29mc19kZW50cnlf
aW5mbyksIDAsCiAJCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04sCi0JCQkJICBOVUxMKTsKKwkJ
CQkgIE5VTEwsIE5VTEwpOwogCWlmICghZGF6dWtvZnNfZGVudHJ5X2luZm9fY2FjaGVwKQog
CQlnb3RvIG91dF9ub21lbTsKIApAQCAtMjgwLDcgKzI4OSw3IEBAIHN0YXRpYyBpbnQgaW5p
dF9jYWNoZXModm9pZCkKIAkJa21lbV9jYWNoZV9jcmVhdGUoImRhenVrb2ZzX2ZpbGVfaW5m
b19jYWNoZSIsCiAJCQkJICBzaXplb2Yoc3RydWN0IGRhenVrb2ZzX2ZpbGVfaW5mbyksIDAs
CiAJCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04sCi0JCQkJICBOVUxMKTsKKwkJCQkgIE5VTEws
IE5VTEwpOwogCWlmICghZGF6dWtvZnNfZmlsZV9pbmZvX2NhY2hlcCkKIAkJZ290byBvdXRf
bm9tZW07CiAKQEAgLTMwNSw3ICszMTQsNyBAQCBzdGF0aWMgc3RydWN0IGZpbGVfc3lzdGVt
X3R5cGUgZGF6dWtvZnNfCiAKIHN0YXRpYyBpbnQgX19pbml0IGluaXRfZGF6dWtvZnNfZnMo
dm9pZCkKIHsKLQlpbnQgZXJyID0gMDsKKwlpbnQgZXJyOwogCiAJZXJyID0gZGF6dWtvZnNf
ZGV2X2luaXQoKTsKIAlpZiAoZXJyKQpAQCAtMzE5LDcgKzMyOCw3IEBAIHN0YXRpYyBpbnQg
X19pbml0IGluaXRfZGF6dWtvZnNfZnModm9pZCkKIAlpZiAoZXJyKQogCQlnb3RvIGVycm9y
X291dDM7CiAKLQlwcmludGsoS0VSTl9JTkZPICJkYXp1a29mczogbG9hZGVkLCB2ZXJzaW9u
PSVzXG4iLCBEQVpVS09GU19WRVJTSU9OKTsKKwlwcmludGsoS0VSTl9JTkZPICJkYXp1a29m
czogbG9hZGVkLCB2ZXJzaW9uPSIgREFaVUtPRlNfVkVSU0lPTiAiXG4iKTsKIAlyZXR1cm4g
MDsKIAogZXJyb3Jfb3V0MzoKQEAgLTMzNSw3ICszNDQsNyBAQCBzdGF0aWMgdm9pZCBfX2V4
aXQgZXhpdF9kYXp1a29mc19mcyh2b2lkCiAJdW5yZWdpc3Rlcl9maWxlc3lzdGVtKCZkYXp1
a29mc19mc190eXBlKTsKIAlkZXN0cm95X2NhY2hlcygpOwogCWRhenVrb2ZzX2Rldl9kZXN0
cm95KCk7Ci0JcHJpbnRrKEtFUk5fSU5GTyAiZGF6dWtvZnM6IHVubG9hZGVkLCB2ZXJzaW9u
PSVzXG4iLCBEQVpVS09GU19WRVJTSU9OKTsKKwlwcmludGsoS0VSTl9JTkZPICJkYXp1a29m
czogdW5sb2FkZWQsIHZlcnNpb249IiBEQVpVS09GU19WRVJTSU9OICJcbiIpOwogfQogCiBN
T0RVTEVfQVVUSE9SKCJKb2huIE9nbmVzcyIpOwo=
--------------090708040608020504030806
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

--------------090708040608020504030806--