patch for vanilla kernel 2.6.24

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

ZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9DSEFOR0VMT0cgZGF6dWtvZnMtMy4w
LjAtcmM0XzIuNi4yNC9DSEFOR0VMT0cKLS0tIGRhenVrb2ZzLTMuMC4wL0NIQU5HRUxPRwky
MDA5LTAyLTIyIDE3OjUxOjIyLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAt
cmM0XzIuNi4yNC9DSEFOR0VMT0cJMjAwOC0xMi0xMiAxNjozMjo0NC4wMDAwMDAwMDAgKzAx
MDAKQEAgLTIsMTEgKzIsNiBAQAogIERhenVrb0ZTIENIQU5HRUxPRwogPT09PT09PT09PT09
PT09PT09PT0KIAotMy4wLjAgKDIwMDktMDItMjIpCi0tIGFkZGVkIGRlZmluZSBmb3IgdmVy
c2lvbiBudW1iZXIgb3V0cHV0Ci0tIGFkZGVkIHBhdGNoZXMgZm9yIHZhcmlvdXMgb3RoZXIg
a2VybmVscwotCi0KIDMuMC4wLXJjNCAoMjAwOC0xMS0zMCkKIC0gZml4IGluY29ycmVjdCBk
ZW50cnkvdmZzbW50IHJlZmVyZW5jaW5nIHdoZW4gYWNjZXNzIGRlbmllZAogLSBmaXggaW1w
cm9wZXIgY2xlYW51cCBpbiBzZXZlcmFsIGVycm9yIGhhbmRsaW5nIGNvbmRpdGlvbnMKZGlm
ZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9jdHJsX2Rldi5jIGRhenVrb2ZzLTMuMC4w
LXJjNF8yLjYuMjQvY3RybF9kZXYuYwotLS0gZGF6dWtvZnMtMy4wLjAvY3RybF9kZXYuYwky
MDA5LTAyLTIyIDE3OjQ1OjIwLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAt
cmM0XzIuNi4yNC9jdHJsX2Rldi5jCTIwMDgtMTItMTIgMTY6MzI6NDQuMDAwMDAwMDAwICsw
MTAwCkBAIC0xODMsNyArMTgzLDcgQEAgaW50IGRhenVrb2ZzX2N0cmxfZGV2X2luaXQoaW50
IGRldl9tYWpvcgogCiAJLyogY3JlYXRlIGNvbnRyb2wgZGV2aWNlICovCiAJZGV2ID0gZGV2
aWNlX2NyZWF0ZShkYXp1a29mc19jbGFzcywgTlVMTCwgTUtERVYoZGV2X21ham9yLCBkZXZf
bWlub3IpLAotCQkJICAgIE5VTEwsICIlcy5jdHJsIiwgREVWSUNFX05BTUUpOworCQkJICAg
ICIlcy5jdHJsIiwgREVWSUNFX05BTUUpOwogCWlmIChJU19FUlIoZGV2KSkgewogCQllcnIg
PSBQVFJfRVJSKGRldik7CiAJCWdvdG8gZXJyb3Jfb3V0MjsKZGlmZiAteCBDVlMgLXJ1cCBk
YXp1a29mcy0zLjAuMC9kYXp1a29mc19mcy5oIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjQv
ZGF6dWtvZnNfZnMuaAotLS0gZGF6dWtvZnMtMy4wLjAvZGF6dWtvZnNfZnMuaAkyMDA5LTAy
LTIyIDE3OjQzOjExLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAtcmM0XzIu
Ni4yNC9kYXp1a29mc19mcy5oCTIwMDktMDctMDMgMTg6MDE6MDAuMDAwMDAwMDAwICswMjAw
CkBAIC0zLDcgKzMsNyBAQAogICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMDQgRXJleiBaYWRv
awogICAgQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQgU3RvbnkgQnJvb2sgVW5pdmVyc2l0eQog
ICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDcgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNo
aW5lcyBDb3JwLgotICAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMDkgSm9obiBPZ25lc3MKKyAg
IENvcHlyaWdodCAoQykgMjAwOCBKb2huIE9nbmVzcwogICAgICBBdXRob3I6IEpvaG4gT2du
ZXNzIDxkYXp1a29jb2RlQG9nbmVzcy5uZXQ+CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI0LDggKzI0
LDYgQEAKICNpZm5kZWYgX19EQVpVS09GU19GU19ICiAjZGVmaW5lIF9fREFaVUtPRlNfRlNf
SAogCi0jZGVmaW5lIERBWlVLT0ZTX1ZFUlNJT04gIjMuMC4wIgotCiBleHRlcm4gc3RydWN0
IGttZW1fY2FjaGUgKmRhenVrb2ZzX2RlbnRyeV9pbmZvX2NhY2hlcDsKIGV4dGVybiBzdHJ1
Y3Qga21lbV9jYWNoZSAqZGF6dWtvZnNfZmlsZV9pbmZvX2NhY2hlcDsKIGV4dGVybiBzdHJ1
Y3QgZmlsZV9vcGVyYXRpb25zIGRhenVrb2ZzX21haW5fZm9wczsKZGlmZiAteCBDVlMgLXJ1
cCBkYXp1a29mcy0zLjAuMC9kZW50cnkuYyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0L2Rl
bnRyeS5jCi0tLSBkYXp1a29mcy0zLjAuMC9kZW50cnkuYwkyMDA5LTAyLTIyIDE3OjQ0OjIy
LjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yNC9kZW50cnku
YwkyMDA4LTEyLTEyIDE2OjQxOjM0LjAwMDAwMDAwMCArMDEwMApAQCAtNjUsMTkgKzY1LDE5
IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCAKIAogCWxvd2Vy
X21udCA9IEdFVF9MT1dFUl9NTlQoZGVudHJ5KTsKIAotCXZmc21vdW50X3NhdmUgPSBuZC0+
cGF0aC5tbnQ7Ci0JZGVudHJ5X3NhdmUgPSBuZC0+cGF0aC5kZW50cnk7CisJdmZzbW91bnRf
c2F2ZSA9IG5kLT5tbnQ7CisJZGVudHJ5X3NhdmUgPSBuZC0+ZGVudHJ5OwogCi0JbmQtPnBh
dGgubW50ID0gbW50Z2V0KGxvd2VyX21udCk7Ci0JbmQtPnBhdGguZGVudHJ5ID0gZGdldChs
b3dlcl9kZW50cnkpOworCW5kLT5tbnQgPSBtbnRnZXQobG93ZXJfbW50KTsKKwluZC0+ZGVu
dHJ5ID0gZGdldChsb3dlcl9kZW50cnkpOwogCiAJdmFsaWQgPSBsb3dlcl9kZW50cnktPmRf
b3AtPmRfcmV2YWxpZGF0ZShsb3dlcl9kZW50cnksIG5kKTsKIAogCW1udHB1dChsb3dlcl9t
bnQpOwogCWRwdXQobG93ZXJfZGVudHJ5KTsKIAotCW5kLT5wYXRoLm1udCA9IHZmc21vdW50
X3NhdmU7Ci0JbmQtPnBhdGguZGVudHJ5ID0gZGVudHJ5X3NhdmU7CisJbmQtPm1udCA9IHZm
c21vdW50X3NhdmU7CisJbmQtPmRlbnRyeSA9IGRlbnRyeV9zYXZlOwogCiAJLyogdXBkYXRl
IHRoZSBpbm9kZSwgZXZlbiBpZiBkX3JldmFsaWRhdGUoKSAhPSAxICovCiAJaWYgKGRlbnRy
eS0+ZF9pbm9kZSkgewpkaWZmIC14IENWUyAtcnVwIGRhenVrb2ZzLTMuMC4wL2V2ZW50LmMg
ZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yNC9ldmVudC5jCi0tLSBkYXp1a29mcy0zLjAuMC9l
dmVudC5jCTIwMDktMDItMjIgMTc6NDQ6MDMuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1a29m
cy0zLjAuMC1yYzRfMi42LjI0L2V2ZW50LmMJMjAwOS0wNy0wMyAxODo1NTo1MS4wMDAwMDAw
MDAgKzAyMDAKQEAgLTIzLDcgKzIzLDYgQEAKICNpbmNsdWRlIDxsaW51eC9maWxlLmg+CiAj
aW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9tb3VudC5oPgotI2luY2x1
ZGUgPGxpbnV4L2ZyZWV6ZXIuaD4KIAogI2luY2x1ZGUgImRldi5oIgogI2luY2x1ZGUgImRh
enVrb2ZzX2ZzLmgiCkBAIC0xNjIsMTYgKzE2MSwyMyBAQCBzdGF0aWMgaW50IGNhcHR1cmVf
Z3JvdXBfY291bnQoaW50ICpjYWNoCiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIGludCBn
ZXRfZ3JvdXBfY291bnQodm9pZCkKK3N0YXRpYyBpbnQgZ2V0X2dyb3VwX2NvdW50X2ludGVy
cnVwdGlibGUodm9pZCkKIHsKIAlpbnQgY2FjaGUgPSAwOwotCWludCByZXQgPSB3YWl0X2V2
ZW50X2ZyZWV6YWJsZShfX2dyb3VwX2NvdW50X3F1ZXVlLAotCQkJCSAgICAgICBjYXB0dXJl
X2dyb3VwX2NvdW50KCZjYWNoZSkgPT0gMCk7CisJaW50IHJldCA9IHdhaXRfZXZlbnRfaW50
ZXJydXB0aWJsZShfX2dyb3VwX2NvdW50X3F1ZXVlLAorCQkJCSAgICAgICAgICAgY2FwdHVy
ZV9ncm91cF9jb3VudCgmY2FjaGUpID09IDApOwogCWlmIChyZXQgPT0gMCkKIAkJcmV0ID0g
X19ncm91cF9jb3VudDsKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgaW50IGdldF9ncm91
cF9jb3VudCh2b2lkKQoreworCWludCBjYWNoZSA9IDA7CisJd2FpdF9ldmVudChfX2dyb3Vw
X2NvdW50X3F1ZXVlLCBjYXB0dXJlX2dyb3VwX2NvdW50KCZjYWNoZSkgPT0gMCk7CisJcmV0
dXJuIF9fZ3JvdXBfY291bnQ7Cit9CisKIHN0YXRpYyB2b2lkIHB1dF9ncm91cF9jb3VudCh2
b2lkKQogewogCW11dGV4X2xvY2soJmdyb3VwX2NvdW50X211dGV4KTsKQEAgLTM5OSw3ICs0
MDUsNyBAQCBpbnQgZGF6dWtvZnNfYWRkX2dyb3VwKGNvbnN0IGNoYXIgKm5hbWUsCiAJaW50
IGFscmVhZHlfZXhpc3RzOwogCWludCBhdmFpbGFibGVfaWQgPSAwOwogCXN0cnVjdCBkYXp1
a29mc19ncm91cCAqZ3JwOwotCWludCBncnBfY291bnQgPSBnZXRfZ3JvdXBfY291bnQoKTsK
KwlpbnQgZ3JwX2NvdW50ID0gZ2V0X2dyb3VwX2NvdW50X2ludGVycnVwdGlibGUoKTsKIAog
CWlmIChncnBfY291bnQgPCAwKSB7CiAJCXJldCA9IGdycF9jb3VudDsKQEAgLTQ0Nyw3ICs0
NTMsNyBAQCBpbnQgZGF6dWtvZnNfcmVtb3ZlX2dyb3VwKGNvbnN0IGNoYXIgKm5hCiAJaW50
IHJldCA9IDA7CiAJc3RydWN0IGRhenVrb2ZzX2dyb3VwICpncnA7CiAJc3RydWN0IGxpc3Rf
aGVhZCAqcG9zOwotCWludCBncnBfY291bnQgPSBnZXRfZ3JvdXBfY291bnQoKTsKKwlpbnQg
Z3JwX2NvdW50ID0gZ2V0X2dyb3VwX2NvdW50X2ludGVycnVwdGlibGUoKTsKIAogCWlmIChn
cnBfY291bnQgPCAwKSB7CiAJCXJldCA9IGdycF9jb3VudDsKQEAgLTcwMSwxMSArNzA3LDEw
IEBAIGludCBkYXp1a29mc19jaGVja19hY2Nlc3Moc3RydWN0IGRlbnRyeSAKIHsKIAlzdHJ1
Y3QgZGF6dWtvZnNfZXZlbnRfY29udGFpbmVyICplY19hcnJheVtHUk9VUF9DT1VOVF07CiAJ
c3RydWN0IGRhenVrb2ZzX2V2ZW50ICpldnQ7Ci0JaW50IGdycF9jb3VudCA9IGdldF9ncm91
cF9jb3VudCgpOwotCWludCBlcnI7CisJaW50IGdycF9jb3VudDsKKwlpbnQgZXJyID0gMDsK
IAotCWlmIChncnBfY291bnQgPCAwKQotCQlyZXR1cm4gZ3JwX2NvdW50OworCWdycF9jb3Vu
dCA9IGdldF9ncm91cF9jb3VudCgpOwogCiAJaWYgKGNoZWNrX2FjY2Vzc19wcmVjaGVjayhn
cnBfY291bnQpKSB7CiAJCXB1dF9ncm91cF9jb3VudCgpOwpAQCAtNzEzLDMyICs3MTgsMjkg
QEAgaW50IGRhenVrb2ZzX2NoZWNrX2FjY2VzcyhzdHJ1Y3QgZGVudHJ5IAogCX0KIAogCS8q
IGF0IHRoaXMgcG9pbnQsIHRoZSBhY2Nlc3Mgc2hvdWxkIGJlIGhhbmRsZWQgKi8KLQogCWlm
IChhbGxvY2F0ZV9ldmVudF9hbmRfY29udGFpbmVycygmZXZ0LCBlY19hcnJheSwgZ3JwX2Nv
dW50KSkgewogCQlwdXRfZ3JvdXBfY291bnQoKTsKLQkJZXJyID0gLUVOT01FTTsKLQkJZ290
byBvdXQ7CisJCXJldHVybiAtRU5PTUVNOwogCX0KLQogCWV2dC0+ZGVudHJ5ID0gZGdldChk
ZW50cnkpOwogCWV2dC0+bW50ID0gbW50Z2V0KG1udCk7CiAJZXZ0LT5waWQgPSBjdXJyZW50
LT5waWQ7Ci0KIAlhc3NpZ25fZXZlbnRfdG9fZ3JvdXBzKGV2dCwgZWNfYXJyYXkpOwogCiAJ
cHV0X2dyb3VwX2NvdW50KCk7CiAKLQkvKiB3YWl0IHVudGlsIGV2ZW50IGNvbXBsZXRlbHkg
cHJvY2Vzc2VkIG9yIHNpZ25hbCAqLwotCWVyciA9IHdhaXRfZXZlbnRfZnJlZXphYmxlKGV2
dC0+cXVldWUsIGV2ZW50X2Fzc2lnbmVkKGV2dCkgPT0gMCk7CisJLyogd2FpdCB1bnRpbCBl
dmVudCBjb21wbGV0ZWx5IHByb2Nlc3NlZCAqLworCXdhaXRfZXZlbnQoZXZ0LT5xdWV1ZSwg
ZXZlbnRfYXNzaWduZWQoZXZ0KSA9PSAwKTsKIAogCWlmIChldnQtPmRlbnkpCiAJCWVyciA9
IC1FUEVSTTsKIAogCXJlbGVhc2VfZXZlbnQoZXZ0LCAwLCAwKTsKLW91dDoKKwkKIAlyZXR1
cm4gZXJyOwogfQogCisKIGludCBkYXp1a29mc19ncm91cF9vcGVuX3RyYWNraW5nKHVuc2ln
bmVkIGxvbmcgZ3JvdXBfaWQpCiB7CiAJc3RydWN0IGRhenVrb2ZzX2dyb3VwICpncnA7CkBA
IC05MjgsNyArOTMwLDggQEAgc3RhdGljIGludCBvcGVuX2ZpbGUoc3RydWN0IGRhenVrb2Zz
X2V2ZQogCS8qIGFkZCBteXNlbGYgdG8gYmUgaWdub3JlZCBvbiBmaWxlIG9wZW4gKHRvIGF2
b2lkIHJlY3Vyc2lvbikgKi8KIAltYXNrX3Byb2MoJnByb2MpOwogCi0JZWMtPmZpbGUgPSBk
ZW50cnlfb3BlbihkZ2V0KGV2dC0+ZGVudHJ5KSwgbW50Z2V0KGV2dC0+bW50KSwgT19SRE9O
TFkpOworCWVjLT5maWxlID0gZGVudHJ5X29wZW4oZGdldChldnQtPmRlbnRyeSksIG1udGdl
dChldnQtPm1udCksIAorCQkJICAgICAgIE9fUkRPTkxZIHwgT19MQVJHRUZJTEUpOwogCWlm
IChJU19FUlIoZWMtPmZpbGUpKSB7CiAJCWNoZWNrX3JlY3Vyc2lvbigpOyAgLyogcmVtb3Zl
IG15c2VsZiBmcm9tIHByb2NfbGlzdCAqLwogCQlyZXQgPSBQVFJfRVJSKGVjLT5maWxlKTsK
QEAgLTEwMDQsOSArMTAwNyw5IEBAIGludCBkYXp1a29mc19nZXRfZXZlbnQodW5zaWduZWQg
bG9uZyBncm8KIAl9CiAKIAl3aGlsZSAoMSkgewotCQlyZXQgPSB3YWl0X2V2ZW50X2ZyZWV6
YWJsZShncnAtPnF1ZXVlLAotCQkJCQkgICBpc19ldmVudF9hdmFpbGFibGUoZ3JwKSB8fAot
CQkJCQkgICBncnAtPmRlcHJlY2F0ZWQpOworCQlyZXQgPSB3YWl0X2V2ZW50X2ludGVycnVw
dGlibGUoZ3JwLT5xdWV1ZSwKKwkJCQkJICAgICAgIGlzX2V2ZW50X2F2YWlsYWJsZShncnAp
IHx8CisJCQkJCSAgICAgICBncnAtPmRlcHJlY2F0ZWQpOwogCQlpZiAocmV0ICE9IDApCiAJ
CQlicmVhazsKIApkaWZmIC14IENWUyAtcnVwIGRhenVrb2ZzLTMuMC4wL2ZpbGUuYyBkYXp1
a29mcy0zLjAuMC1yYzRfMi42LjI0L2ZpbGUuYwotLS0gZGF6dWtvZnMtMy4wLjAvZmlsZS5j
CTIwMDktMDItMjIgMTc6NDM6MTEuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1a29mcy0zLjAu
MC1yYzRfMi42LjI0L2ZpbGUuYwkyMDA5LTA3LTAzIDE4OjUyOjE0LjAwMDAwMDAwMCArMDIw
MApAQCAtMTc3LDEwICsxNzcsMTEgQEAgc3RhdGljIGludCBkYXp1a29mc19vcGVuKHN0cnVj
dCBpbm9kZSAqaQogCXN0cnVjdCBmaWxlICpsb3dlcl9maWxlOwogCWludCBlcnI7CiAKLQll
cnIgPSBkYXp1a29mc19jaGVja19hY2Nlc3MoZmlsZS0+Zl9kZW50cnksIGZpbGUtPmZfdmZz
bW50KTsKLQlpZiAoZXJyKQotCQlnb3RvIGVycm9yX291dDE7Ci0KKwlpZiAoU19JU1JFRyhp
bm9kZS0+aV9tb2RlKSkgeworCQllcnIgPSBkYXp1a29mc19jaGVja19hY2Nlc3MoZmlsZS0+
Zl9kZW50cnksIGZpbGUtPmZfdmZzbW50KTsKKwkJaWYgKGVycikKKwkJCWdvdG8gZXJyb3Jf
b3V0MTsKKwl9CiAJU0VUX0ZJTEVfSU5GTyhmaWxlLCBrbWVtX2NhY2hlX3phbGxvYyhkYXp1
a29mc19maWxlX2luZm9fY2FjaGVwLAogCQkgICAgICBHRlBfS0VSTkVMKSk7CiAJaWYgKCFH
RVRfRklMRV9JTkZPKGZpbGUpKSB7CkBAIC0yNzIsNiArMjczLDIwIEBAIG91dDoKIAlyZXR1
cm4gZXJyOwogfQogCitzdGF0aWMgaW50IGRhenVrb2ZzX21tYXAgKHN0cnVjdCBmaWxlICpm
aWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtKQoreworCisJc3RydWN0IGZpbGUgKmxv
d2VyX2ZpbGUgPSBHRVRfTE9XRVJfRklMRShmaWxlKTsKKworCS8qIGlmIGxvd2VyIGZzIGRv
ZXMgbm90IHN1cHBvcnQgbW1hcCgpLCB3ZSBkb250IGNhbGwgZ2VuZXJpY19maWxlX3JlYWRv
bmx5X21tYXAoKSwgCisJICogc2luY2UgdGhpcyB3b3VsZCByZXN1bHQgaW4gY2FsbGluZyBs
b3dlciByZWFkcGFnZSgpLCB3aGljaCBtaWdodCBub3QgYmUgCisJICogZGVmaW5lZCBieSBs
b3dlciBmcyBpZiBtbWFwKCkgaXMgbm90IHN1cHBvcnRlZCovCisJaWYgKCFsb3dlcl9maWxl
LT5mX29wIHx8ICFsb3dlcl9maWxlLT5mX29wLT5tbWFwKSAKKwkJcmV0dXJuIC1FTk9ERVY7
CisJCisKKwlyZXR1cm4gZ2VuZXJpY19maWxlX3JlYWRvbmx5X21tYXAoZmlsZSwgdm0pOwor
fQogLyoqCiAgKiBVbnVzZWQgb3BlcmF0aW9uczoKICAqICAgLSBvd25lcgpAQCAtMjk1LDE4
ICszMTAsMTUgQEAgb3V0Ogogc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBkYXp1a29mc19tYWlu
X2ZvcHMgPSB7CiAJLmxsc2VlawkJPSBkYXp1a29mc19sbHNlZWssCiAJLnJlYWQJCT0gZGF6
dWtvZnNfcmVhZCwKLQkuYWlvX3JlYWQJPSBnZW5lcmljX2ZpbGVfYWlvX3JlYWQsCiAJLndy
aXRlCQk9IGRhenVrb2ZzX3dyaXRlLAotCS5haW9fd3JpdGUJPSBnZW5lcmljX2ZpbGVfYWlv
X3dyaXRlLAogCS5yZWFkZGlyCT0gZGF6dWtvZnNfcmVhZGRpciwKIAkuaW9jdGwJCT0gZGF6
dWtvZnNfaW9jdGwsCi0JLm1tYXAJCT0gZ2VuZXJpY19maWxlX21tYXAsCisJLm1tYXAJCT0g
ZGF6dWtvZnNfbW1hcCwKIAkub3BlbgkJPSBkYXp1a29mc19vcGVuLAogCS5mbHVzaAkJPSBk
YXp1a29mc19mbHVzaCwKIAkucmVsZWFzZQk9IGRhenVrb2ZzX3JlbGVhc2UsCiAJLmZzeW5j
CQk9IGRhenVrb2ZzX2ZzeW5jLAogCS5mYXN5bmMJCT0gZGF6dWtvZnNfZmFzeW5jLAotCS5z
cGxpY2VfcmVhZAk9IGdlbmVyaWNfZmlsZV9zcGxpY2VfcmVhZCwKIH07CiAKIC8qKgpAQCAt
MzM1LDExICszNDcsMTAgQEAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBkYXp1a29mc19tYWlu
X2ZvcAogY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBkYXp1a29mc19kaXJfZm9wcyA9
IHsKIAkucmVhZGRpcgk9IGRhenVrb2ZzX3JlYWRkaXIsCiAJLmlvY3RsCQk9IGRhenVrb2Zz
X2lvY3RsLAotCS5tbWFwCQk9IGdlbmVyaWNfZmlsZV9tbWFwLAorCS5tbWFwCQk9IGRhenVr
b2ZzX21tYXAsCiAJLm9wZW4JCT0gZGF6dWtvZnNfb3BlbiwKIAkuZmx1c2gJCT0gZGF6dWtv
ZnNfZmx1c2gsCiAJLnJlbGVhc2UJPSBkYXp1a29mc19yZWxlYXNlLAogCS5mc3luYwkJPSBk
YXp1a29mc19mc3luYywKIAkuZmFzeW5jCQk9IGRhenVrb2ZzX2Zhc3luYywKLQkuc3BsaWNl
X3JlYWQJPSBnZW5lcmljX2ZpbGVfc3BsaWNlX3JlYWQsCiB9OwpkaWZmIC14IENWUyAtcnVw
IGRhenVrb2ZzLTMuMC4wL2dyb3VwX2Rldi5jIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjQv
Z3JvdXBfZGV2LmMKLS0tIGRhenVrb2ZzLTMuMC4wL2dyb3VwX2Rldi5jCTIwMDktMDItMjIg
MTc6NDU6MjAuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0
L2dyb3VwX2Rldi5jCTIwMDgtMTItMTIgMTY6MzI6NDQuMDAwMDAwMDAwICswMTAwCkBAIC0y
MTAsNyArMjEwLDcgQEAgaW50IGRhenVrb2ZzX2dyb3VwX2Rldl9pbml0KGludCBkZXZfbWFq
bwogCS8qIGNyZWF0ZSBncm91cCBkZXZpY2VzICovCiAJZm9yIChpID0gMDsgaSA8IEdST1VQ
X0NPVU5UOyBpKyspIHsKIAkJZGV2ID0gZGV2aWNlX2NyZWF0ZShkYXp1a29mc19jbGFzcywg
TlVMTCwKLQkJCQkgICAgTUtERVYoZGV2X21ham9yLCBkZXZfbWlub3JfZW5kKSwgTlVMTCwK
KwkJCQkgICAgTUtERVYoZGV2X21ham9yLCBkZXZfbWlub3JfZW5kKSwKIAkJCQkgICAgIiVz
LiVkIiwgREVWSUNFX05BTUUsIGkpOwogCQlpZiAoSVNfRVJSKGRldikpIHsKIAkJCWVyciA9
IFBUUl9FUlIoZGV2KTsKZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9pZ25fZGV2
LmMgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yNC9pZ25fZGV2LmMKLS0tIGRhenVrb2ZzLTMu
MC4wL2lnbl9kZXYuYwkyMDA5LTAyLTIyIDE3OjQ1OjIwLjAwMDAwMDAwMCArMDEwMAorKysg
ZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yNC9pZ25fZGV2LmMJMjAwOC0xMi0xMiAxNjozMjo0
NC4wMDAwMDAwMDAgKzAxMDAKQEAgLTE1OSw3ICsxNTksNyBAQCBpbnQgZGF6dWtvZnNfaWdu
X2Rldl9pbml0KGludCBkZXZfbWFqb3IsCiAKIAkvKiBjcmVhdGUgaWdub3JlIGRldmljZSAq
LwogCWRldiA9IGRldmljZV9jcmVhdGUoZGF6dWtvZnNfY2xhc3MsIE5VTEwsIE1LREVWKGRl
dl9tYWpvciwgZGV2X21pbm9yKSwKLQkJCSAgICBOVUxMLCAiJXMuaWduIiwgREVWSUNFX05B
TUUpOworCQkJICAgICIlcy5pZ24iLCBERVZJQ0VfTkFNRSk7CiAJaWYgKElTX0VSUihkZXYp
KSB7CiAJCWVyciA9IFBUUl9FUlIoZGV2KTsKIAkJZ290byBlcnJvcl9vdXQzOwpkaWZmIC14
IENWUyAtcnVwIGRhenVrb2ZzLTMuMC4wL2lub2RlLmMgZGF6dWtvZnMtMy4wLjAtcmM0XzIu
Ni4yNC9pbm9kZS5jCi0tLSBkYXp1a29mcy0zLjAuMC9pbm9kZS5jCTIwMDktMDItMjIgMTc6
NDY6MDIuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0L2lu
b2RlLmMJMjAwOS0wNy0wMyAxODo0MDowNy4wMDAwMDAwMDAgKzAyMDAKQEAgLTQ3LDEyICs0
NywyNSBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX2lub2RlX3Rlc3Qoc3RydWN0IGluCiAKIHN0
YXRpYyB2b2lkIGRhenVrb2ZzX2luaXRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSwgc3Ry
dWN0IGlub2RlICpsb3dlcl9pbm9kZSkKIHsKLQlTRVRfTE9XRVJfSU5PREUoaW5vZGUsIGxv
d2VyX2lub2RlKTsKLQlpbm9kZS0+aV9pbm8gPSBsb3dlcl9pbm9kZS0+aV9pbm87Ci0JaW5v
ZGUtPmlfdmVyc2lvbisrOwotCWlub2RlLT5pX29wID0gJmRhenVrb2ZzX21haW5faW9wczsK
LQlpbm9kZS0+aV9mb3AgPSAmZGF6dWtvZnNfbWFpbl9mb3BzOwotCWlub2RlLT5pX21hcHBp
bmctPmFfb3BzID0gJmRhenVrb2ZzX2FvcHM7CisgICAgICAgIFNFVF9MT1dFUl9JTk9ERShp
bm9kZSwgbG93ZXJfaW5vZGUpOworICAgICAgICBpbm9kZS0+aV9pbm8gPSBsb3dlcl9pbm9k
ZS0+aV9pbm87CisgICAgICAgIGlub2RlLT5pX3ZlcnNpb24rKzsKKworICAgICAgICBpZiAo
U19JU0RJUihsb3dlcl9pbm9kZS0+aV9tb2RlKSkgeworICAgICAgICAgICAgICAgIGlub2Rl
LT5pX29wID0gJmRhenVrb2ZzX2Rpcl9pb3BzOworICAgICAgICAgICAgICAgIGlub2RlLT5p
X2ZvcCA9ICZkYXp1a29mc19kaXJfZm9wczsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICBpbm9kZS0+aV9vcCA9ICZkYXp1a29mc19tYWluX2lvcHM7CisgICAgICAgICAg
ICAgICAgaW5vZGUtPmlfZm9wID0gJmRhenVrb2ZzX21haW5fZm9wczsKKworICAgICAgICAg
ICAgICAgIGlmIChTX0lTTE5LKGxvd2VyX2lub2RlLT5pX21vZGUpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgaW5vZGUtPmlfb3AgPSAmZGF6dWtvZnNfc3ltbGlua19pb3BzOworICAg
ICAgICAgICAgICAgIGVsc2UgIGlmIChzcGVjaWFsX2ZpbGUobG93ZXJfaW5vZGUtPmlfbW9k
ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluaXRfc3BlY2lhbF9pbm9kZShpbm9k
ZSwgbG93ZXJfaW5vZGUtPmlfbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb3dlcl9pbm9kZS0+aV9yZGV2KTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgaW5vZGUtPmlfbWFwcGluZy0+YV9vcHMgPSAmZGF6dWtv
ZnNfYW9wczsKIH0KIAogc3RhdGljIGludCBkYXp1a29mc19pbm9kZV9zZXQoc3RydWN0IGlu
b2RlICppbm9kZSwgdm9pZCAqbG93ZXJfaW5vZGUpCkBAIC02MSw3MyArNzQsMTE5IEBAIHN0
YXRpYyBpbnQgZGF6dWtvZnNfaW5vZGVfc2V0KHN0cnVjdCBpbm8KIAlyZXR1cm4gMDsKIH0K
IAorCiBpbnQgZGF6dWtvZnNfaW50ZXJwb3NlKHN0cnVjdCBkZW50cnkgKmxvd2VyX2RlbnRy
eSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAotCQkgICAgIHN0cnVjdCBzdXBlcl9ibG9jayAq
c2IsIGludCBmbGFnKQorCQkgICAgIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCBoYXNo
KQogewogCXN0cnVjdCBpbm9kZSAqaW5vZGU7Ci0Jc3RydWN0IGlub2RlICpsb3dlcl9pbm9k
ZSA9IGlncmFiKGxvd2VyX2RlbnRyeS0+ZF9pbm9kZSk7Ci0JaW50IGVyciA9IDA7CisJc3Ry
dWN0IGlub2RlICpsb3dlcl9pbm9kZTsKKwlpbnQgZXJyOwogCi0JaWYgKCFsb3dlcl9pbm9k
ZSkgewotCQllcnIgPSAtRVNUQUxFOwotCQlnb3RvIG91dDsKLQl9CisJbG93ZXJfaW5vZGUg
PSBpZ3JhYihsb3dlcl9kZW50cnktPmRfaW5vZGUpOwogCi0JaWYgKGxvd2VyX2lub2RlLT5p
X3NiICE9IEdFVF9MT1dFUl9TQihzYikpIHsKLQkJaXB1dChsb3dlcl9pbm9kZSk7Ci0JCWVy
ciA9IC1FWERFVjsKLQkJZ290byBvdXQ7Ci0JfQorCWlmICghbG93ZXJfaW5vZGUpIAorCQly
ZXR1cm4gLUVTVEFMRTsKIAogCWlub2RlID0gaWdldDVfbG9ja2VkKHNiLCAodW5zaWduZWQg
bG9uZylsb3dlcl9pbm9kZSwKIAkJCSAgICAgZGF6dWtvZnNfaW5vZGVfdGVzdCwgZGF6dWtv
ZnNfaW5vZGVfc2V0LAogCQkJICAgICBsb3dlcl9pbm9kZSk7Ci0KIAlpZiAoIWlub2RlKSB7
Ci0JCWlwdXQobG93ZXJfaW5vZGUpOwogCQllcnIgPSAtRUFDQ0VTOwotCQlnb3RvIG91dDsK
KwkJZ290byBlcnI7CiAJfQogCi0JaWYgKGlub2RlLT5pX3N0YXRlICYgSV9ORVcpIHsKKwlp
ZiAoaW5vZGUtPmlfc3RhdGUgJiBJX05FVykgCiAJCXVubG9ja19uZXdfaW5vZGUoaW5vZGUp
OwogCQkvKgogCQkgKiBUaGlzIGlzIGEgbmV3IG5vZGUgc28gd2UgbGVhdmUgdGhlIGxvd2Vy
X25vZGUgImluIHVzZSIKIAkJICogYW5kIGRvIG5vdCBjYWxsIGlwdXQoKS4KIAkJICovCi0J
fSBlbHNlIHsKKwllbHNlIAogCQkvKgogCQkgKiBUaGlzIGlzIG5vdCBhIG5ldyBub2RlIHNv
IHdlIGRlY3JlbWVudCB0aGUgdXNhZ2UgY291bnQuCiAJCSAqLwogCQlpcHV0KGxvd2VyX2lu
b2RlKTsKLQl9CiAKLQlpZiAoU19JU0xOSyhsb3dlcl9pbm9kZS0+aV9tb2RlKSkKLQkJaW5v
ZGUtPmlfb3AgPSAmZGF6dWtvZnNfc3ltbGlua19pb3BzOwotCWVsc2UgaWYgKFNfSVNESVIo
bG93ZXJfaW5vZGUtPmlfbW9kZSkpCi0JCWlub2RlLT5pX29wID0gJmRhenVrb2ZzX2Rpcl9p
b3BzOwotCi0JaWYgKFNfSVNESVIobG93ZXJfaW5vZGUtPmlfbW9kZSkpCi0JCWlub2RlLT5p
X2ZvcCA9ICZkYXp1a29mc19kaXJfZm9wczsKLQotCWlmIChzcGVjaWFsX2ZpbGUobG93ZXJf
aW5vZGUtPmlfbW9kZSkpIHsKLQkJaW5pdF9zcGVjaWFsX2lub2RlKGlub2RlLCBsb3dlcl9p
bm9kZS0+aV9tb2RlLAotCQkJCSAgIGxvd2VyX2lub2RlLT5pX3JkZXYpOwotCX0KLQotCWRl
bnRyeS0+ZF9vcCA9ICZkYXp1a29mc19kb3BzOwogCi0JaWYgKGZsYWcpCisJaWYgKGhhc2gp
CiAJCWRfYWRkKGRlbnRyeSwgaW5vZGUpOwogCWVsc2UKIAkJZF9pbnN0YW50aWF0ZShkZW50
cnksIGlub2RlKTsKIAogCWZzc3RhY2tfY29weV9hdHRyX2FsbChpbm9kZSwgbG93ZXJfaW5v
ZGUsIE5VTEwpOwogCWZzc3RhY2tfY29weV9pbm9kZV9zaXplKGlub2RlLCBsb3dlcl9pbm9k
ZSk7Ci1vdXQ6CisKKwlyZXR1cm4gMDsKK2VycjoKKwlpcHV0KGxvd2VyX2lub2RlKTsKIAly
ZXR1cm4gZXJyOwogfQogCisvKiBjcmVhdGVzIGEgbmV3IGxvd2VyIGRlbnRyeSAqLworc3Rh
dGljIHN0cnVjdCBkZW50cnkgKmRhenVrb2ZzX25ld19sb3dlcl9kZW50cnkoc3RydWN0IHFz
dHIgKm5hbWUsCisJCQkJCQlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9iYXNlLCAKKwkJCQkJCXN0
cnVjdCBuYW1laWRhdGEgKm5kKQoreworCXN0cnVjdCBkZW50cnkgKm5ld19kZW50cnk7CisJ
c3RydWN0IGRlbnRyeSAqdG1wOworCXN0cnVjdCBpbm9kZSAqbG93ZXJfaW5vZGU7CisKKwls
b3dlcl9pbm9kZSA9IGxvd2VyX2Jhc2UtPmRfaW5vZGU7CisJLyogWFhYOiBpcyB0aGlzIGNo
ZWNrIHN0aWxsIG5lY2Vzc2FyeT8gKHNlZSBfX2xvb2t1cF9oYXNoKCkpCisJICAgVGhpcyBp
cyAoaG9wZWx5KSBwcm90ZWN0ZWQgYnkgbG9ja2VkIHVwcGVyIGlub2RlICovCisJaWYgKElT
X0RFQURESVIobG93ZXJfaW5vZGUpKSB7CisJCW5ld19kZW50cnkgPSBFUlJfUFRSKC1FTk9F
TlQpOworCQlnb3RvIG91dDsKKwl9CisJdG1wID0gZF9hbGxvYyhsb3dlcl9iYXNlLCBuYW1l
KTsKKwlpZiAoIXRtcCkgeworCQluZXdfZGVudHJ5ID0gRVJSX1BUUigtRU5PTUVNKTsKKwkJ
Z290byBvdXQ7CisJfQorCW5ld19kZW50cnkgPSBsb3dlcl9pbm9kZS0+aV9vcC0+bG9va3Vw
KGxvd2VyX2lub2RlLCB0bXAsIG5kKTsKKwkvKiBsb29rdXAoKSBzZWVtaW5nbHkgaXMgYWxs
b3dlZCB0byByZXR1cm4gaXRzIG93biBkZW50cnkgKHdoaWNoIAorCSAqIG1heSBpbmRlZWQg
YmUgYSBkZW50cnkgb3Igb25seSBhbiBlcnJvcikuIElmIHNvCisJICogd2UgdXNlIGl0IGFu
ZCBkaXNjYXJkIG91cnMuIE90aGVyd2lzZSB3ZSB1c2Ugb3VycyAqLyAKKwlpZiAoIW5ld19k
ZW50cnkpIAorCQluZXdfZGVudHJ5ID0gdG1wOworCWVsc2UgCisJCWRwdXQodG1wKTsKKwkJ
CitvdXQ6CQkKKwlyZXR1cm4gbmV3X2RlbnRyeTsKK30KKworCisvKiBnZXQgbG93ZXIgZGVu
dHJ5IGZvciBnaXZlbiBuYW1lICovCitzdGF0aWMgc3RydWN0IGRlbnRyeSAqZGF6dWtvZnNf
bG9va3VwX29uZV9sb3dlcihzdHJ1Y3QgcXN0ciAqbmFtZSwgCisJCQkJCQlzdHJ1Y3QgZGVu
dHJ5ICpsb3dlcl9iYXNlLAorCQkJCQkJc3RydWN0IHZmc21vdW50ICpsb3dlcl9tbnQpCit7
CisJc3RydWN0IGRlbnRyeSAqcmVzdWx0OworCXN0cnVjdCBuYW1laWRhdGEgbmQ7CisJaW50
IGVycjsKKworCWVyciA9IHZmc19wYXRoX2xvb2t1cChsb3dlcl9iYXNlLCBsb3dlcl9tbnQs
IG5hbWUtPm5hbWUsIDAsICZuZCk7CisKKwlpZiAoIWVycikgeworCQkvKiBpbm9kZSBhbHJl
YWR5IGV4aXN0cyBvbiBkaXNrICovCisJCXJlc3VsdCA9IG5kLmRlbnRyeTsKKwkJLyogd2Ug
ZG9udCBuZWVkIHRoZSBtb3VudCAqLworCQltbnRwdXQobmQubW50KTsKKwkJZ290byBvdXQ7
CisJfQorCWlmIChlcnIgIT0gLUVOT0VOVCkgeyAvKiB0aGlzIGlzIGEgUkVBTCBlcnJvciAq
LwkKKwkJcmVzdWx0ID0gRVJSX1BUUihlcnIpOworCQlnb3RvIG91dDsKKwl9CQorCS8qIGNy
ZWF0ZSBhIG5ldyAobG93ZXIpIGRlbnRyeSAqLworCXJlc3VsdCA9IGRhenVrb2ZzX25ld19s
b3dlcl9kZW50cnkobmFtZSwgbG93ZXJfYmFzZSwgJm5kKTsKK291dDoKKwlyZXR1cm4gcmVz
dWx0OworCit9CisKKwogLyoqCiAgKiBEZXNjcmlwdGlvbjogQ2FsbGVkIHdoZW4gdGhlIFZG
UyBuZWVkcyB0byBsb29rIHVwIGFuIGlub2RlIGluIGEgcGFyZW50CiAgKiBkaXJlY3Rvcnku
IFRoZSBuYW1lIHRvIGxvb2sgZm9yIGlzIGZvdW5kIGluIHRoZSBkZW50cnkuIFRoaXMgbWV0
aG9kCkBAIC0xNDgsNjIgKzIwNyw0OCBAQCBzdGF0aWMgc3RydWN0IGRlbnRyeSAqZGF6dWtv
ZnNfbG9va3VwKHN0CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfZGVudHJ5OwogCXN0cnVjdCBk
ZW50cnkgKmxvd2VyX2RlbnRyeV9wYXJlbnQ7CiAJc3RydWN0IHZmc21vdW50ICpsb3dlcl9t
bnQ7Ci0JaW50IGVyciA9IDA7Ci0KLQlpZiAoKGRlbnRyeS0+ZF9uYW1lLmxlbiA9PSAxICYm
ICFzdHJjbXAoZGVudHJ5LT5kX25hbWUubmFtZSwgIi4iKSkKLQkgICAgfHwgKGRlbnRyeS0+
ZF9uYW1lLmxlbiA9PSAyICYmCi0JCSFzdHJjbXAoZGVudHJ5LT5kX25hbWUubmFtZSwgIi4u
IikpKSB7Ci0JCWRfZHJvcChkZW50cnkpOwotCQlnb3RvIG91dDsKLQl9Ci0KLQlkZW50cnkt
PmRfb3AgPSAmZGF6dWtvZnNfZG9wczsKKwlpbnQgZXJyOwogCiAJbG93ZXJfZGVudHJ5X3Bh
cmVudCA9IEdFVF9MT1dFUl9ERU5UUlkoZGVudHJ5LT5kX3BhcmVudCk7Ci0JbG93ZXJfZGVu
dHJ5ID0gbG9va3VwX29uZV9sZW4oZGVudHJ5LT5kX25hbWUubmFtZSwgbG93ZXJfZGVudHJ5
X3BhcmVudCwKLQkJCQkgICAgICBkZW50cnktPmRfbmFtZS5sZW4pOworCS8qIHNob3VsZCBi
ZSByZWxlYXNlZCBpbiBkX3JlbGVhc2UoKSAqLworCWxvd2VyX21udCA9IG1udGdldChHRVRf
TE9XRVJfTU5UKGRlbnRyeS0+ZF9wYXJlbnQpKTsKIAorCWxvd2VyX2RlbnRyeSA9IGRhenVr
b2ZzX2xvb2t1cF9vbmVfbG93ZXIoJmRlbnRyeS0+ZF9uYW1lLCAKKwkJCQkJCSBsb3dlcl9k
ZW50cnlfcGFyZW50LCAKKwkJCQkJCSBsb3dlcl9tbnQpOyAKIAlpZiAoSVNfRVJSKGxvd2Vy
X2RlbnRyeSkpIHsKLQkJZXJyID0gUFRSX0VSUihsb3dlcl9kZW50cnkpOwotCQlkX2Ryb3Ao
ZGVudHJ5KTsKLQkJZ290byBvdXQ7CisJCW1udHB1dChsb3dlcl9tbnQpOworCQlyZXR1cm4g
bG93ZXJfZGVudHJ5OwogCX0KLQogCUJVR19PTighYXRvbWljX3JlYWQoJmxvd2VyX2RlbnRy
eS0+ZF9jb3VudCkpOwogCisJZGVudHJ5LT5kX29wID0gJmRhenVrb2ZzX2RvcHM7CiAJU0VU
X0RFTlRSWV9JTkZPKGRlbnRyeSwga21lbV9jYWNoZV96YWxsb2MoZGF6dWtvZnNfZGVudHJ5
X2luZm9fY2FjaGVwLAogCQkJR0ZQX0tFUk5FTCkpOwogCiAJaWYgKCFHRVRfREVOVFJZX0lO
Rk8oZGVudHJ5KSkgewotCQllcnIgPSAtRU5PTUVNOwotCQlnb3RvIG91dF9kcHV0OworCQlt
bnRwdXQobG93ZXJfbW50KTsKKwkJZHB1dChsb3dlcl9kZW50cnkpOworCQlyZXR1cm4gRVJS
X1BUUigtRU5PTUVNKTsKIAl9Ci0KLQlsb3dlcl9tbnQgPSBtbnRnZXQoR0VUX0xPV0VSX01O
VChkZW50cnktPmRfcGFyZW50KSk7Ci0KLQlmc3N0YWNrX2NvcHlfYXR0cl9hdGltZShkaXIs
IGxvd2VyX2RlbnRyeV9wYXJlbnQtPmRfaW5vZGUpOwotCiAJU0VUX0xPV0VSX0RFTlRSWShk
ZW50cnksIGxvd2VyX2RlbnRyeSwgbG93ZXJfbW50KTsKLQorCS8qIGZyb20gbm93IGxvd2Vy
IGRlbnRyeSBhbmQgbG93ZXIgbW91bnQgYXJlIHJlbGVhc2VkIGluIAorCSAgZF9yZWxlYXNl
IG9mIHVwcGVyIGRlbnRyeSAqLworCWZzc3RhY2tfY29weV9hdHRyX2F0aW1lKGRpciwgbG93
ZXJfZGVudHJ5X3BhcmVudC0+ZF9pbm9kZSk7CiAJaWYgKCFsb3dlcl9kZW50cnktPmRfaW5v
ZGUpIHsKIAkJLyoKIAkJICogV2Ugd2FudCB0byBhZGQgYmVjYXVzZSB3ZSBjb3VsZCBub3Qg
ZmluZCBpbiBsb3dlci4KIAkJICovCiAJCWRfYWRkKGRlbnRyeSwgTlVMTCk7Ci0JCWdvdG8g
b3V0OworCQlnb3RvIG9rOwogCX0KIAogCWVyciA9IGRhenVrb2ZzX2ludGVycG9zZShsb3dl
cl9kZW50cnksIGRlbnRyeSwgZGlyLT5pX3NiLCAxKTsKLQlpZiAoZXJyKQotCQlnb3RvIG91
dF9kcHV0OwotCWdvdG8gb3V0OwotCi1vdXRfZHB1dDoKLQlkcHV0KGxvd2VyX2RlbnRyeSk7
Ci0JZF9kcm9wKGRlbnRyeSk7CisJaWYgKGVycikgCisJCXJldHVybiBFUlJfUFRSKGVycik7
CiAKLW91dDoKLQlyZXR1cm4gRVJSX1BUUihlcnIpOworb2s6CisJcmV0dXJuIE5VTEw7IC8q
IHRlbGwgY2FsbGVyIHRvIHVzZSBpdHMgb3duLCBwYXNzZWQgZGVudHJ5LCBub3Qgb3VycyAq
LwogfQogCiAvKioKQEAgLTI5NCwxOSArMzM5LDE5IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNf
Y3JlYXRlKHN0cnVjdCBpbm9kZSAKIAltdXRleF9sb2NrX25lc3RlZCgmKGxvd2VyX2RlbnRy
eV9wYXJlbnRfaW5vZGUtPmlfbXV0ZXgpLAogCQkJICBJX01VVEVYX1BBUkVOVCk7CiAKLQl2
ZnNtb3VudF9zYXZlID0gbmQtPnBhdGgubW50OwotCWRlbnRyeV9zYXZlID0gbmQtPnBhdGgu
ZGVudHJ5OworCXZmc21vdW50X3NhdmUgPSBuZC0+bW50OworCWRlbnRyeV9zYXZlID0gbmQt
PmRlbnRyeTsKIAotCW5kLT5wYXRoLm1udCA9IG1udGdldChsb3dlcl9tbnQpOwotCW5kLT5w
YXRoLmRlbnRyeSA9IGRnZXQobG93ZXJfZGVudHJ5KTsKKwluZC0+bW50ID0gbW50Z2V0KGxv
d2VyX21udCk7CisJbmQtPmRlbnRyeSA9IGRnZXQobG93ZXJfZGVudHJ5KTsKIAogCWVyciA9
IHZmc19jcmVhdGUobG93ZXJfZGVudHJ5X3BhcmVudF9pbm9kZSwgbG93ZXJfZGVudHJ5LCBt
b2RlLCBuZCk7CiAKIAltbnRwdXQobG93ZXJfbW50KTsKIAlkcHV0KGxvd2VyX2RlbnRyeSk7
CiAKLQluZC0+cGF0aC5tbnQgPSB2ZnNtb3VudF9zYXZlOwotCW5kLT5wYXRoLmRlbnRyeSA9
IGRlbnRyeV9zYXZlOworCW5kLT5tbnQgPSB2ZnNtb3VudF9zYXZlOworCW5kLT5kZW50cnkg
PSBkZW50cnlfc2F2ZTsKIAogCWlmIChlcnIpCiAJCWdvdG8gb3V0OwpAQCAtMzQwLDcgKzM4
NSw4IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfc3ltbGluayhzdHJ1Y3QgaW5vZGUKIAltdXRl
eF9sb2NrX25lc3RlZCgmKGxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUtPmlfbXV0ZXgpLAog
CQkJICBJX01VVEVYX1BBUkVOVCk7CiAKLQllcnIgPSB2ZnNfc3ltbGluayhsb3dlcl9kZW50
cnlfcGFyZW50X2lub2RlLCBsb3dlcl9kZW50cnksIHN5bW5hbWUpOworCWVyciA9IHZmc19z
eW1saW5rKGxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUsIGxvd2VyX2RlbnRyeSwgc3ltbmFt
ZSwKKwkJCSAgU19JQUxMVUdPKTsKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKIApAQCAtNDUy
LDkgKzQ5OCwzNyBAQCBzdGF0aWMgdm9pZCBkYXp1a29mc19wdXRfbGluayhzdHJ1Y3QgZGVu
CiAgKiBEZXNjcmlwdGlvbjogQ2FsbGVkIGJ5IHRoZSBWRlMgdG8gY2hlY2sgZm9yIGFjY2Vz
cyByaWdodHMgb24gYQogICogUE9TSVgtbGlrZSBmaWxlc3lzdGVtLgogICovCi1zdGF0aWMg
aW50IGRhenVrb2ZzX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2sp
CitzdGF0aWMgaW50IGRhenVrb2ZzX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwg
aW50IG1hc2ssCisJCQkgICAgICAgc3RydWN0IG5hbWVpZGF0YSAqbmQpCiB7Ci0JcmV0dXJu
IGlub2RlX3Blcm1pc3Npb24oR0VUX0xPV0VSX0lOT0RFKGlub2RlKSwgbWFzayk7CisJc3Ry
dWN0IHZmc21vdW50ICpsb3dlcl9tbnQgPSBOVUxMOworCXN0cnVjdCBkZW50cnkgKmxvd2Vy
X2RlbnRyeSA9IE5VTEw7CisJc3RydWN0IHZmc21vdW50ICp2ZnNtbnRfc2F2ZSA9IE5VTEw7
CisJc3RydWN0IGRlbnRyeSAqZGVudHJ5X3NhdmUgPSBOVUxMOworCWludCBlcnI7CisKKwlp
ZiAobmQpIHsKKwkJbG93ZXJfbW50ID0gR0VUX0xPV0VSX01OVChuZC0+ZGVudHJ5KTsKKwkJ
bG93ZXJfZGVudHJ5ID0gR0VUX0xPV0VSX0RFTlRSWShuZC0+ZGVudHJ5KTsKKworCQl2ZnNt
bnRfc2F2ZSA9IG5kLT5tbnQ7CisJCWRlbnRyeV9zYXZlID0gbmQtPmRlbnRyeTsKKworCQlu
ZC0+bW50ID0gbW50Z2V0KGxvd2VyX21udCk7CisJCW5kLT5kZW50cnkgPSBkZ2V0KGxvd2Vy
X2RlbnRyeSk7CisJfQorCisJZXJyID0gcGVybWlzc2lvbihHRVRfTE9XRVJfSU5PREUoaW5v
ZGUpLCBtYXNrLCBuZCk7CisKKwlpZiAobmQpIHsKKwkJbW50cHV0KGxvd2VyX21udCk7CisJ
CWRwdXQobG93ZXJfZGVudHJ5KTsKKworCQluZC0+bW50ID0gdmZzbW50X3NhdmU7CisJCW5k
LT5kZW50cnkgPSBkZW50cnlfc2F2ZTsKKwl9CisKKyAgICAgICAgcmV0dXJuIGVycjsKIH0K
IAogLyoqCkBAIC00NjgsMTQgKzU0MiwyNyBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX3NldGF0
dHIoc3RydWN0IGRlbnRyCiAJc3RydWN0IGlub2RlICpsb3dlcl9pbm9kZSA9IEdFVF9MT1dF
Ul9JTk9ERShpbm9kZSk7CiAJaW50IGVycjsKIAotCWVyciA9IG5vdGlmeV9jaGFuZ2UobG93
ZXJfZGVudHJ5LCBpYSk7CiAKLQlmc3N0YWNrX2NvcHlfYXR0cl9hbGwoaW5vZGUsIGxvd2Vy
X2lub2RlLCBOVUxMKTsKLQlmc3N0YWNrX2NvcHlfaW5vZGVfc2l6ZShpbm9kZSwgbG93ZXJf
aW5vZGUpOworCWlmICghbG93ZXJfaW5vZGUtPmlfb3AgfHwgIWxvd2VyX2lub2RlLT5pX29w
LT5zZXRhdHRyKSAKKwkJLyogWFhYOiBhdCB0aGlzIHBvaW50IGl0IGlzIHRvbyBsYXRlIHRv
IGhhbmRsZSBpbm9kZXMgcHJvcGVybHkgdGhhdCBkbyBOT1QKKwkJc3BlY2lmeSBzZXRhdHRy
KCkuIFZGUyB3b3VsZCBub3JtYWxseSBjYWxsIGlub2RlX3NldGF0dHIoKSBpbiAKKwkJdGhp
cyBjYXNlLiBTbyB0byBmb3JjZSB0aGlzIHdlIGp1bXAgYmFjayB0byBub3RpZnlfY2hhbmdl
IHdoaWNoIHdpbGwKKwkJaGFuZGxlIHRoaXMgZm9yIHVzLiBCdXQgdGhpcyBpcyBkYW5nZXJv
dXM6CisJCVRoZSBhdHRyaWJ1dGVzIG1pZ2h0IGJlIG1vZGlmaWVkIGJ5IG5vdGlmeV9jaGFu
Z2UoKSBpbiBhIHdheQorCQl0aGF0IHJlc3VsdHMgaW4gaW52YWxpZCBhdHRyaWJ1dGVzLiBU
aGlzIHNlZW1zIHRvIGJlIHRoZSBjYXNlCisJCWlmIHRoZSBpbm9kZSBmb3Igd2hpY2ggdGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgaGFzIHRoZSBzZXR1aWQKKwkJb3Igc2V0Z2lkIGJpdCBz
ZXQgKi8gCisJCWVyciA9IG5vdGlmeV9jaGFuZ2UobG93ZXJfZGVudHJ5LCBpYSk7CisJZWxz
ZSAKKwkJZXJyID0gbG93ZXJfaW5vZGUtPmlfb3AtPnNldGF0dHIobG93ZXJfZGVudHJ5LCBp
YSk7CisJCisJaWYgKCFlcnIpIHsKKwkJZnNzdGFja19jb3B5X2F0dHJfYWxsKGlub2RlLCBs
b3dlcl9pbm9kZSwgTlVMTCk7CisJCWZzc3RhY2tfY29weV9pbm9kZV9zaXplKGlub2RlLCBs
b3dlcl9pbm9kZSk7CisJfSAKIAogCXJldHVybiBlcnI7CiB9Ci0KIC8qKgogICogRGVzY3Jp
cHRpb246IENhbGxlZCBieSB0aGUgVkZTIHRvIHNldCBhbiBleHRlbmRlZCBhdHRyaWJ1dGUg
Zm9yIGEgZmlsZS4KICAqIEV4dGVuZGVkIGF0dHJpYnV0ZSBpcyBhIG5hbWU6dmFsdWUgcGFp
ciBhc3NvY2lhdGVkIHdpdGggYW4gaW5vZGUuIFRoaXMKQEAgLTQ5Niw3ICs1ODMsNyBAQCBz
dGF0aWMgaW50IGRhenVrb2ZzX3NldHhhdHRyKHN0cnVjdCBkZW50CiAKIAlpZiAoIWxvd2Vy
X2RlbnRyeV9pbm9kZS0+aV9vcCB8fAogCSAgICAhbG93ZXJfZGVudHJ5X2lub2RlLT5pX29w
LT5zZXR4YXR0cikgewotCQllcnIgPSAtRU5PU1lTOworCQllcnIgPSAtRU9QTk9UU1VQUDsK
IAkJZ290byBvdXQ7CiAJfQogCkBAIC01MjgsNyArNjE1LDcgQEAgc3RhdGljIHNzaXplX3Qg
ZGF6dWtvZnNfZ2V0eGF0dHIoc3RydWN0IAogCiAJaWYgKCFsb3dlcl9kZW50cnlfaW5vZGUt
Pmlfb3AgfHwKIAkgICAgIWxvd2VyX2RlbnRyeV9pbm9kZS0+aV9vcC0+Z2V0eGF0dHIpIHsK
LQkJZXJyID0gLUVOT1NZUzsKKwkJZXJyID0gLUVPUE5PVFNVUFA7CiAJCWdvdG8gb3V0Owog
CX0KIApAQCAtNTU3LDcgKzY0NCw3IEBAIHN0YXRpYyBzc2l6ZV90IGRhenVrb2ZzX2xpc3R4
YXR0cihzdHJ1Y3QKIAogCWlmICghbG93ZXJfZGVudHJ5X2lub2RlLT5pX29wIHx8CiAJICAg
ICFsb3dlcl9kZW50cnlfaW5vZGUtPmlfb3AtPmxpc3R4YXR0cikgewotCQllcnIgPSAtRU5P
U1lTOworCQllcnIgPSAtRU9QTk9UU1VQUDsKIAkJZ290byBvdXQ7CiAJfQogCkBAIC01ODQs
NyArNjcxLDcgQEAgc3RhdGljIGludCBkYXp1a29mc19yZW1vdmV4YXR0cihzdHJ1Y3QgZAog
CiAJaWYgKCFsb3dlcl9kZW50cnlfaW5vZGUtPmlfb3AgfHwKIAkgICAgIWxvd2VyX2RlbnRy
eV9pbm9kZS0+aV9vcC0+cmVtb3ZleGF0dHIpIHsKLQkJZXJyID0gLUVOT1NZUzsKKwkJZXJy
ID0gLUVPUE5PVFNVUFA7CiAJCWdvdG8gb3V0OwogCX0KIApkaWZmIC14IENWUyAtcnVwIGRh
enVrb2ZzLTMuMC4wL01ha2VmaWxlIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjQvTWFrZWZp
bGUKLS0tIGRhenVrb2ZzLTMuMC4wL01ha2VmaWxlCTIwMDktMDItMjIgMTc6NDY6MDIuMDAw
MDAwMDAwICswMTAwCisrKyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0L01ha2VmaWxlCTIw
MDktMDUtMTEgMTk6NTA6MDMuMDAwMDAwMDAwICswMjAwCkBAIC0xOSw2ICsxOSw3IEBAIGRh
enVrb2ZzX2luc3RhbGw6IGRhenVrb2ZzX21vZHVsZXMKIAogY2xlYW46CiAJcm0gLWYgTW9k
dWxlLnN5bXZlcnMKKwlybSAtZiBtb2R1bGVzLm9yZGVyCiAJbWFrZSAtQyAkKERBWlVLT0ZT
X0tFUk5FTF9TUkMpIFNVQkRJUlM9ImBwd2RgIiBjbGVhbgogCiAuUEhPTlk6IGRhenVrb2Zz
X21vZHVsZXMgZGF6dWtvZnNfaW5zdGFsbCBjbGVhbgpkaWZmIC14IENWUyAtcnVwIGRhenVr
b2ZzLTMuMC4wL1JFQURNRSBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0L1JFQURNRQotLS0g
ZGF6dWtvZnMtMy4wLjAvUkVBRE1FCTIwMDktMDItMjIgMTc6Mzg6MjEuMDAwMDAwMDAwICsw
MTAwCisrKyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0L1JFQURNRQkyMDA4LTEyLTEyIDE2
OjMyOjQ0LjAwMDAwMDAwMCArMDEwMApAQCAtMjEsMTAgKzIxLDEwIEBAIE5PVEU6IERhenVr
b0ZTIGlzIGNvbXBsZXRlbHkgc2VwYXJhdGUgZnIKID09PT09PT09PT09PT09PT09CiAKIEJl
bG93IGFyZSBicmllZiBpbnN0cnVjdGlvbnMgdG8gZ2V0IERhenVrb0ZTIGNvbXBpbGVkIGFu
ZCBydW5uaW5nIG9uIGEKLXN5c3RlbSB3aXRoIGEgTGludXggMi42LjI4IGtlcm5lbC4gWW91
IG1heSBuZWVkIHRvIG1hbnVhbGx5IGFkanVzdCB0aGUKK3N5c3RlbSB3aXRoIGEgTGludXgg
Mi42LjI3IGtlcm5lbC4gWW91IG1heSBuZWVkIHRvIG1hbnVhbGx5IGFkanVzdCB0aGUKIE1h
a2VmaWxlIGlmIHlvdSBrZXJuZWwgc291cmNlcyBhcmUgbm90IGluIHRoZSBkZWZhdWx0IGxv
Y2F0aW9uLgotKFBhdGNoZXMgYXJlIHByb3ZpZGVkIGZvciB2YXJpb3VzIG90aGVyIGtlcm5l
bHMuIFNlZSB0aGUgc2VjdGlvbiBiZWxvdwotdGl0bGVkICJQQVRDSElORyIgZm9yIG1vcmUg
aW5mb3JtYXRpb24uKQorKEEgcGF0Y2ggaXMgcHJvdmlkZWQgdG8gY29udmVydCB0aGUgRGF6
dWtvRlMgY29kZSB0byBzdXBwb3J0IExpbnV4CisyLjYuMjYuKQogCiBjb21waWxlIHRoZSBr
ZXJuZWwgbW9kdWxlCiAgICMgbWFrZQpAQCAtNTIsMjUgKzUyLDYgQEAgdW5tb3VudCBEYXp1
a29GUwogCiAKIAotPT09PT09PT09PQotIFBBVENISU5HCi09PT09PT09PT09Ci0KLUluIHRo
ZSAicGF0Y2hlcyIgZGlyZWN0b3J5IHRoZXJlIGFyZSBwYXRjaGVzIGF2YWlsYWJsZSB0byBt
b2RpZnkgdGhlCi1EYXp1a29GUyBjb2RlIHRvIGZpdCB2YXJpb3VzIG90aGVyIGtlcm5lbHMu
IEZvciBleGFtcGxlLCBpZiB5b3UgYXJlCi1ydW5uaW5nIG9wZW5TVVNFIDExLjEgeW91IGNh
biBwYXRjaCB0aGUgY29kZSB3aXRoIHRoZSBmb2xsb3dpbmcKLWNvbW1hbmQ6Ci0KLSQgcGF0
Y2ggLXAxIDwgcGF0Y2hlcy9wYXRjaC1vcGVuc3VzZS0xMS4xCi0KLVRoZXJlIHNob3VsZCBu
b3QgYmUgYW55IGVycm9ycy4gSWYgdGhlcmUgYXJlIGVycm9ycywgdGhlbiB0aGUgcGF0Y2gK
LWlzIGJyb2tlbiBhbmQgc2hvdWxkIGJlIHJlcG9ydGVkIG9uIHRoZSBkYXp1a28tZGV2ZWwg
bWFpbGluZyBsaXN0LgotCi1PbmNlIHRoZSBjb2RlIGhhcyBiZWVuIHBhdGNoZWQgeW91IGNh
biBidWlsZCB0aGUga2VybmVsIG1vZHVsZSBhcwotZGVzY3JpYmVkIGluIHRoZSBzZWN0aW9u
ICJCVUlMRCAvIElOU1RBTEwiIGFib3ZlLgotCi0KLQogPT09PT09PT09CiAgVEVTVElORwog
PT09PT09PT09CkBAIC0xNTQsOSArMTM1LDYgQEAgYW55IHByb2JsZW1zLgogIEtOT1dOIElT
U1VFUwogPT09PT09PT09PT09PT0KIAotLSBUaGUga2VybmVsIHdpbGwgY3Jhc2ggaWYgeW91
IGF0dGVtcHQgdG8gbW91bnQgRGF6dWtvRlMgdG8gYSBmaWxlIGluc3RlYWQKLSAgb2YgYSBk
aXJlY3RvcnkuIChUaGUgdmFyaW91cyBrZXJuZWwgcGF0Y2hlcyBoYW5kbGUgdGhpcyBlcnJv
ci4pCi0KIC0gRGF6dWtvRlMgZG9lcyBub3Qgc3VwcG9ydCB3cml0aW5nIHRvIG1lbW9yeSBt
YXBwZWQgZmlsZXMuIFRoaXMgc2hvdWxkIG5vdAogICBjYXVzZSB0aGUga2VybmVsIHRvIGNy
YXNoLCBidXQgd2lsbCBpbnN0ZWFkIHJlc3VsdCBpbiB0aGUgYXBwbGljYXRpb24KICAgZmFp
bGluZyB0byBwZXJmb3JtIHRoZSB3cml0ZXMgKGFsdGhvdWdoIG1tYXAoKSB3aWxsIGFwcGVh
ciB0byBiZQpkaWZmIC14IENWUyAtcnVwIGRhenVrb2ZzLTMuMC4wL3N1cGVyLmMgZGF6dWtv
ZnMtMy4wLjAtcmM0XzIuNi4yNC9zdXBlci5jCi0tLSBkYXp1a29mcy0zLjAuMC9zdXBlci5j
CTIwMDktMDItMjIgMTc6NDY6MDIuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1a29mcy0zLjAu
MC1yYzRfMi42LjI0L3N1cGVyLmMJMjAwOS0wNy0wMyAxODoxNToxNS4wMDAwMDAwMDAgKzAy
MDAKQEAgLTM1LDYgKzM1LDEwIEBAIHN0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAqZGF6dWtv
ZnNfc2JfaW4KIHN0cnVjdCBrbWVtX2NhY2hlICpkYXp1a29mc19kZW50cnlfaW5mb19jYWNo
ZXA7CiBzdHJ1Y3Qga21lbV9jYWNoZSAqZGF6dWtvZnNfZmlsZV9pbmZvX2NhY2hlcDsKIAor
CisjZGVmaW5lIERBWlVLT0ZTX1ZFUlNJT04gIjMuMC4wLXJjNC1hdmlyYS1iMi42IgorCisK
IHN0YXRpYyBzdHJ1Y3QgaW5vZGUgKmRhenVrb2ZzX2FsbG9jX2lub2RlKHN0cnVjdCBzdXBl
cl9ibG9jayAqc2IpCiB7CiAJc3RydWN0IGRhenVrb2ZzX2lub2RlX2luZm8gKmlub2RlaTsK
QEAgLTE1OCw4ICsxNjIsOCBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX3JlYWRfc3VwZXIoc3Ry
dWN0IHN1CiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKIAotCWxvd2VyX3Jvb3QgPSBkZ2V0
KG5kLnBhdGguZGVudHJ5KTsKLQlsb3dlcl9tbnQgPSBtbnRnZXQobmQucGF0aC5tbnQpOwor
CWxvd2VyX3Jvb3QgPSBkZ2V0KG5kLmRlbnRyeSk7CisJbG93ZXJfbW50ID0gbW50Z2V0KG5k
Lm1udCk7CiAKIAlpZiAoSVNfRVJSKGxvd2VyX3Jvb3QpKSB7CiAJCWVyciA9IFBUUl9FUlIo
bG93ZXJfcm9vdCk7CkBAIC0xNzAsNiArMTc0LDEwIEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNf
cmVhZF9zdXBlcihzdHJ1Y3Qgc3UKIAkJZXJyID0gLUVOT0VOVDsKIAkJZ290byBvdXRfcHV0
OwogCX0KKwlpZiAoIVNfSVNESVIobG93ZXJfcm9vdC0+ZF9pbm9kZS0+aV9tb2RlKSkgewor
CQllcnIgPSAtRU5PRU5UOworCQlnb3RvIG91dF9wdXQ7CisJfQogCiAJU0VUX0xPV0VSX1NC
KHNiLCBsb3dlcl9yb290LT5kX3NiKTsKIAlzYi0+c19tYXhieXRlcyA9IGxvd2VyX3Jvb3Qt
PmRfc2ItPnNfbWF4Ynl0ZXM7CkBAIC0xODQsNyArMTkyLDcgQEAgb3V0X3B1dDoKIAlkcHV0
KGxvd2VyX3Jvb3QpOwogCW1udHB1dChsb3dlcl9tbnQpOwogb3V0OgotCXBhdGhfcHV0KCZu
ZC5wYXRoKTsKKwlwYXRoX3JlbGVhc2UoJm5kKTsKIAlyZXR1cm4gZXJyOwogfQogCkBAIC0y
MTMsMTUgKzIyMSwxNiBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX2dldF9zYihzdHJ1Y3QgZmls
ZV9zCiAKIG91dF9hYm9ydDoKIAl1cF93cml0ZSgmc2ItPnNfdW1vdW50KTsKKwlkcHV0KHNi
LT5zX3Jvb3QpOwogCWRlYWN0aXZhdGVfc3VwZXIoc2IpOwogb3V0OgogCXJldHVybiBlcnI7
CiB9CiAKLXN0YXRpYyB2b2lkIGluaXRfb25jZSh2b2lkICpkYXRhKQorc3RhdGljIHZvaWQg
aW5pdF9vbmNlKHN0cnVjdCBrbWVtX2NhY2hlICpjYWNoZXAsIHZvaWQgKnZwdHIpCiB7CiAJ
c3RydWN0IGRhenVrb2ZzX2lub2RlX2luZm8gKmlub2RlX2luZm8gPQotCQkoc3RydWN0IGRh
enVrb2ZzX2lub2RlX2luZm8gKilkYXRhOworCQkoc3RydWN0IGRhenVrb2ZzX2lub2RlX2lu
Zm8gKil2cHRyOwogCiAJbWVtc2V0KGlub2RlX2luZm8sIDAsIHNpemVvZihzdHJ1Y3QgZGF6
dWtvZnNfaW5vZGVfaW5mbykpOwogCWlub2RlX2luaXRfb25jZSgmKGlub2RlX2luZm8tPnZm
c19pbm9kZSkpOwpAQCAtMzAzLDkgKzMxMiwxMCBAQCBzdGF0aWMgc3RydWN0IGZpbGVfc3lz
dGVtX3R5cGUgZGF6dWtvZnNfCiAJLmZzX2ZsYWdzCT0gMCwKIH07CiAKKwogc3RhdGljIGlu
dCBfX2luaXQgaW5pdF9kYXp1a29mc19mcyh2b2lkKQogewotCWludCBlcnIgPSAwOworCWlu
dCBlcnI7CiAKIAllcnIgPSBkYXp1a29mc19kZXZfaW5pdCgpOwogCWlmIChlcnIpCkBAIC0z
MTksNyArMzI5LDcgQEAgc3RhdGljIGludCBfX2luaXQgaW5pdF9kYXp1a29mc19mcyh2b2lk
KQogCWlmIChlcnIpCiAJCWdvdG8gZXJyb3Jfb3V0MzsKIAotCXByaW50ayhLRVJOX0lORk8g
ImRhenVrb2ZzOiBsb2FkZWQsIHZlcnNpb249JXNcbiIsIERBWlVLT0ZTX1ZFUlNJT04pOwor
CXByaW50ayhLRVJOX0lORk8gImRhenVrb2ZzOiBsb2FkZWQsIHZlcnNpb249IiBEQVpVS09G
U19WRVJTSU9OICJcbiIpOwogCXJldHVybiAwOwogCiBlcnJvcl9vdXQzOgpAQCAtMzM1LDcg
KzM0NSw3IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBleGl0X2RhenVrb2ZzX2ZzKHZvaWQKIAl1
bnJlZ2lzdGVyX2ZpbGVzeXN0ZW0oJmRhenVrb2ZzX2ZzX3R5cGUpOwogCWRlc3Ryb3lfY2Fj
aGVzKCk7CiAJZGF6dWtvZnNfZGV2X2Rlc3Ryb3koKTsKLQlwcmludGsoS0VSTl9JTkZPICJk
YXp1a29mczogdW5sb2FkZWQsIHZlcnNpb249JXNcbiIsIERBWlVLT0ZTX1ZFUlNJT04pOwor
CXByaW50ayhLRVJOX0lORk8gImRhenVrb2ZzOiB1bmxvYWRlZCwgdmVyc2lvbj0iIERBWlVL
T0ZTX1ZFUlNJT04gIlxuIik7CiB9CiAKIE1PRFVMRV9BVVRIT1IoIkpvaG4gT2duZXNzIik7
Cg==
--------------000005080501080303000409
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

--------------000005080501080303000409--