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