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--