From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peeters Simon Subject: [patch] Move nodesize/leafsize/sectorsize to fs_info Date: Sun, 7 Aug 2011 23:54:31 +0200 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=90e6ba613b581df7f504a9f16010 To: linux-btrfs@vger.kernel.org Return-path: List-ID: --90e6ba613b581df7f504a9f16010 Content-Type: text/plain; charset=ISO-8859-1 moved nodesize, leafsize and sectorsize from btrfs_root to btrfs_fs_info as mentioned in [1] and updated everything accordingly. patch against the "for-linus" tree builds and loads, no further testing done. [1] https://btrfs.wiki.kernel.org/index.php/Cleanup_ideas ps: "Pass fs_info instead of root" is next. --90e6ba613b581df7f504a9f16010 Content-Type: text/x-diff; charset=US-ASCII; name="btrfs-cleanup-leafsize_nodesize_sectorsize2.patch" Content-Disposition: attachment; filename="btrfs-cleanup-leafsize_nodesize_sectorsize2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gr2jrwkq0 ZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL2NvbXByZXNzaW9uLmMgYi9mcy9idHJmcy9jb21wcmVzc2lv bi5jCmluZGV4IDhlYzVkODYuLjE0NjI4NmMgMTAwNjQ0Ci0tLSBhL2ZzL2J0cmZzL2NvbXByZXNz aW9uLmMKKysrIGIvZnMvYnRyZnMvY29tcHJlc3Npb24uYwpAQCAtODcsNyArODcsNyBAQCBzdGF0 aWMgaW5saW5lIGludCBjb21wcmVzc2VkX2Jpb19zaXplKHN0cnVjdCBidHJmc19yb290ICpyb290 LAogewogCXUxNiBjc3VtX3NpemUgPSBidHJmc19zdXBlcl9jc3VtX3NpemUoJnJvb3QtPmZzX2lu Zm8tPnN1cGVyX2NvcHkpOwogCXJldHVybiBzaXplb2Yoc3RydWN0IGNvbXByZXNzZWRfYmlvKSAr Ci0JCSgoZGlza19zaXplICsgcm9vdC0+c2VjdG9yc2l6ZSAtIDEpIC8gcm9vdC0+c2VjdG9yc2l6 ZSkgKgorCQkoKGRpc2tfc2l6ZSArIHJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemUgLSAxKSAvIHJv b3QtPmZzX2luZm8tPnNlY3RvcnNpemUpICoKIAkJY3N1bV9zaXplOwogfQogCkBAIC02NzQsOCAr Njc0LDggQEAgaW50IGJ0cmZzX3N1Ym1pdF9jb21wcmVzc2VkX3JlYWQoc3RydWN0IGlub2RlICpp bm9kZSwgc3RydWN0IGJpbyAqYmlvLAogCQkJCQkJCWNvbXBfYmlvLCBzdW1zKTsKIAkJCQlCVUdf T04ocmV0KTsKIAkJCX0KLQkJCXN1bXMgKz0gKGNvbXBfYmlvLT5iaV9zaXplICsgcm9vdC0+c2Vj dG9yc2l6ZSAtIDEpIC8KLQkJCQlyb290LT5zZWN0b3JzaXplOworCQkJc3VtcyArPSAoY29tcF9i aW8tPmJpX3NpemUgKyByb290LT5mc19pbmZvLT5zZWN0b3JzaXplIC0gMSkgLworCQkJCXJvb3Qt PmZzX2luZm8tPnNlY3RvcnNpemU7CiAKIAkJCXJldCA9IGJ0cmZzX21hcF9iaW8ocm9vdCwgUkVB RCwgY29tcF9iaW8sCiAJCQkJCSAgICBtaXJyb3JfbnVtLCAwKTsKZGlmZiAtLWdpdCBhL2ZzL2J0 cmZzL2N0cmVlLmMgYi9mcy9idHJmcy9jdHJlZS5jCmluZGV4IDAxMWNhYjMuLmI1ODYyYTggMTAw NjQ0Ci0tLSBhL2ZzL2J0cmZzL2N0cmVlLmMKKysrIGIvZnMvYnRyZnMvY3RyZWUuYwpAQCAtMjA3 MCwxMyArMjA3MCwxMyBAQCBzdGF0aWMgbm9pbmxpbmUgaW50IGluc2VydF9uZXdfcm9vdChzdHJ1 Y3QgYnRyZnNfdHJhbnNfaGFuZGxlICp0cmFucywKIAllbHNlCiAJCWJ0cmZzX25vZGVfa2V5KGxv d2VyLCAmbG93ZXJfa2V5LCAwKTsKIAotCWMgPSBidHJmc19hbGxvY19mcmVlX2Jsb2NrKHRyYW5z LCByb290LCByb290LT5ub2Rlc2l6ZSwgMCwKKwljID0gYnRyZnNfYWxsb2NfZnJlZV9ibG9jayh0 cmFucywgcm9vdCwgcm9vdC0+ZnNfaW5mby0+bm9kZXNpemUsIDAsCiAJCQkJICAgcm9vdC0+cm9v dF9rZXkub2JqZWN0aWQsICZsb3dlcl9rZXksCiAJCQkJICAgbGV2ZWwsIHJvb3QtPm5vZGUtPnN0 YXJ0LCAwKTsKIAlpZiAoSVNfRVJSKGMpKQogCQlyZXR1cm4gUFRSX0VSUihjKTsKIAotCXJvb3Rf YWRkX3VzZWQocm9vdCwgcm9vdC0+bm9kZXNpemUpOworCXJvb3RfYWRkX3VzZWQocm9vdCwgcm9v dC0+ZnNfaW5mby0+bm9kZXNpemUpOwogCiAJbWVtc2V0X2V4dGVudF9idWZmZXIoYywgMCwgMCwg c2l6ZW9mKHN0cnVjdCBidHJmc19oZWFkZXIpKTsKIAlidHJmc19zZXRfaGVhZGVyX25yaXRlbXMo YywgMSk7CkBAIC0yMTk3LDEzICsyMTk3LDEzIEBAIHN0YXRpYyBub2lubGluZSBpbnQgc3BsaXRf bm9kZShzdHJ1Y3QgYnRyZnNfdHJhbnNfaGFuZGxlICp0cmFucywKIAltaWQgPSAoY19ucml0ZW1z ICsgMSkgLyAyOwogCWJ0cmZzX25vZGVfa2V5KGMsICZkaXNrX2tleSwgbWlkKTsKIAotCXNwbGl0 ID0gYnRyZnNfYWxsb2NfZnJlZV9ibG9jayh0cmFucywgcm9vdCwgcm9vdC0+bm9kZXNpemUsIDAs CisJc3BsaXQgPSBidHJmc19hbGxvY19mcmVlX2Jsb2NrKHRyYW5zLCByb290LCByb290LT5mc19p bmZvLT5ub2Rlc2l6ZSwgMCwKIAkJCQkJcm9vdC0+cm9vdF9rZXkub2JqZWN0aWQsCiAJCQkJCSZk aXNrX2tleSwgbGV2ZWwsIGMtPnN0YXJ0LCAwKTsKIAlpZiAoSVNfRVJSKHNwbGl0KSkKIAkJcmV0 dXJuIFBUUl9FUlIoc3BsaXQpOwogCi0Jcm9vdF9hZGRfdXNlZChyb290LCByb290LT5ub2Rlc2l6 ZSk7CisJcm9vdF9hZGRfdXNlZChyb290LCByb290LT5mc19pbmZvLT5ub2Rlc2l6ZSk7CiAKIAlt ZW1zZXRfZXh0ZW50X2J1ZmZlcihzcGxpdCwgMCwgMCwgc2l6ZW9mKHN0cnVjdCBidHJmc19oZWFk ZXIpKTsKIAlidHJmc19zZXRfaGVhZGVyX2xldmVsKHNwbGl0LCBidHJmc19oZWFkZXJfbGV2ZWwo YykpOwpAQCAtMjk1MSwxMyArMjk1MSwxMyBAQCBhZ2FpbjoKIAllbHNlCiAJCWJ0cmZzX2l0ZW1f a2V5KGwsICZkaXNrX2tleSwgbWlkKTsKIAotCXJpZ2h0ID0gYnRyZnNfYWxsb2NfZnJlZV9ibG9j ayh0cmFucywgcm9vdCwgcm9vdC0+bGVhZnNpemUsIDAsCisJcmlnaHQgPSBidHJmc19hbGxvY19m cmVlX2Jsb2NrKHRyYW5zLCByb290LCByb290LT5mc19pbmZvLT5sZWFmc2l6ZSwgMCwKIAkJCQkJ cm9vdC0+cm9vdF9rZXkub2JqZWN0aWQsCiAJCQkJCSZkaXNrX2tleSwgMCwgbC0+c3RhcnQsIDAp OwogCWlmIChJU19FUlIocmlnaHQpKQogCQlyZXR1cm4gUFRSX0VSUihyaWdodCk7CiAKLQlyb290 X2FkZF91c2VkKHJvb3QsIHJvb3QtPmxlYWZzaXplKTsKKwlyb290X2FkZF91c2VkKHJvb3QsIHJv b3QtPmZzX2luZm8tPmxlYWZzaXplKTsKIAogCW1lbXNldF9leHRlbnRfYnVmZmVyKHJpZ2h0LCAw LCAwLCBzaXplb2Yoc3RydWN0IGJ0cmZzX2hlYWRlcikpOwogCWJ0cmZzX3NldF9oZWFkZXJfYnl0 ZW5yKHJpZ2h0LCByaWdodC0+c3RhcnQpOwpkaWZmIC0tZ2l0IGEvZnMvYnRyZnMvY3RyZWUuaCBi L2ZzL2J0cmZzL2N0cmVlLmgKaW5kZXggYTYyNjNiZC4uZWU2Yzg3MiAxMDA2NDQKLS0tIGEvZnMv YnRyZnMvY3RyZWUuaAorKysgYi9mcy9idHJmcy9jdHJlZS5oCkBAIC0zMzksMTEgKzMzOSwxMSBA QCBzdHJ1Y3QgYnRyZnNfaGVhZGVyIHsKIAl1OCBsZXZlbDsKIH0gX19hdHRyaWJ1dGVfXyAoKF9f cGFja2VkX18pKTsKIAotI2RlZmluZSBCVFJGU19OT0RFUFRSU19QRVJfQkxPQ0socikgKCgocikt Pm5vZGVzaXplIC0gXAorI2RlZmluZSBCVFJGU19OT0RFUFRSU19QRVJfQkxPQ0socikgKCgocikt PmZzX2luZm8tPm5vZGVzaXplIC0gXAogCQkJCSAgICAgIHNpemVvZihzdHJ1Y3QgYnRyZnNfaGVh ZGVyKSkgLyBcCiAJCQkJICAgICBzaXplb2Yoc3RydWN0IGJ0cmZzX2tleV9wdHIpKQogI2RlZmlu ZSBfX0JUUkZTX0xFQUZfREFUQV9TSVpFKGJzKSAoKGJzKSAtIHNpemVvZihzdHJ1Y3QgYnRyZnNf aGVhZGVyKSkKLSNkZWZpbmUgQlRSRlNfTEVBRl9EQVRBX1NJWkUocikgKF9fQlRSRlNfTEVBRl9E QVRBX1NJWkUoci0+bGVhZnNpemUpKQorI2RlZmluZSBCVFJGU19MRUFGX0RBVEFfU0laRShyKSAo X19CVFJGU19MRUFGX0RBVEFfU0laRShyLT5mc19pbmZvLT5sZWFmc2l6ZSkpCiAjZGVmaW5lIEJU UkZTX01BWF9JTkxJTkVfREFUQV9TSVpFKHIpIChCVFJGU19MRUFGX0RBVEFfU0laRShyKSAtIFwK IAkJCQkJc2l6ZW9mKHN0cnVjdCBidHJmc19pdGVtKSAtIFwKIAkJCQkJc2l6ZW9mKHN0cnVjdCBi dHJmc19maWxlX2V4dGVudF9pdGVtKSkKQEAgLTExMTUsNiArMTExNSwxNSBAQCBzdHJ1Y3QgYnRy ZnNfZnNfaW5mbyB7CiAJaW50IHNjcnViX3dvcmtlcnNfcmVmY250OwogCXN0cnVjdCBidHJmc193 b3JrZXJzIHNjcnViX3dvcmtlcnM7CiAKKwkvKiBub2RlIGFsbG9jYXRpb25zIGFyZSBkb25lIGlu IG5vZGVzaXplIHVuaXRzICovCisJdTMyIG5vZGVzaXplOworCisJLyogbGVhZiBhbGxvY2F0aW9u cyBhcmUgZG9uZSBpbiBsZWFmc2l6ZSB1bml0cyAqLworCXUzMiBsZWFmc2l6ZTsKKworCS8qIGRh dGEgYWxsb2NhdGlvbnMgYXJlIGRvbmUgaW4gc2VjdG9yc2l6ZSB1bml0cyAqLworCXUzMiBzZWN0 b3JzaXplOworCiAJLyogZmlsZXN5c3RlbSBzdGF0ZSAqLwogCXU2NCBmc19zdGF0ZTsKIApAQCAt MTE2OCwxNSArMTE3Nyw2IEBAIHN0cnVjdCBidHJmc19yb290IHsKIAl1NjQgb2JqZWN0aWQ7CiAJ dTY0IGxhc3RfdHJhbnM7CiAKLQkvKiBkYXRhIGFsbG9jYXRpb25zIGFyZSBkb25lIGluIHNlY3Rv cnNpemUgdW5pdHMgKi8KLQl1MzIgc2VjdG9yc2l6ZTsKLQotCS8qIG5vZGUgYWxsb2NhdGlvbnMg YXJlIGRvbmUgaW4gbm9kZXNpemUgdW5pdHMgKi8KLQl1MzIgbm9kZXNpemU7Ci0KLQkvKiBsZWFm IGFsbG9jYXRpb25zIGFyZSBkb25lIGluIGxlYWZzaXplIHVuaXRzICovCi0JdTMyIGxlYWZzaXpl OwotCiAJdTMyIHN0cmlwZXNpemU7CiAKIAl1MzIgdHlwZTsKQEAgLTIxMDcsOCArMjEwNyw4IEBA IHN0YXRpYyBpbmxpbmUgc3RydWN0IGJ0cmZzX3Jvb3QgKmJ0cmZzX3NiKHN0cnVjdCBzdXBlcl9i bG9jayAqc2IpCiBzdGF0aWMgaW5saW5lIHUzMiBidHJmc19sZXZlbF9zaXplKHN0cnVjdCBidHJm c19yb290ICpyb290LCBpbnQgbGV2ZWwpCiB7CiAJaWYgKGxldmVsID09IDApCi0JCXJldHVybiBy b290LT5sZWFmc2l6ZTsKLQlyZXR1cm4gcm9vdC0+bm9kZXNpemU7CisJCXJldHVybiByb290LT5m c19pbmZvLT5sZWFmc2l6ZTsKKwlyZXR1cm4gcm9vdC0+ZnNfaW5mby0+bm9kZXNpemU7CiB9CiAK IC8qIGhlbHBlciBmdW5jdGlvbiB0byBjYXN0IGludG8gdGhlIGRhdGEgYXJlYSBvZiB0aGUgbGVh Zi4gKi8KQEAgLTIxMzUsNyArMjEzNSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBidHJmc19taXhl ZF9zcGFjZV9pbmZvKHN0cnVjdCBidHJmc19zcGFjZV9pbmZvICpzcGFjZV9pbmZvKQogc3RhdGlj IGlubGluZSB1NjQgYnRyZnNfY2FsY190cmFuc19tZXRhZGF0YV9zaXplKHN0cnVjdCBidHJmc19y b290ICpyb290LAogCQkJCQkJIHVuc2lnbmVkIG51bV9pdGVtcykKIHsKLQlyZXR1cm4gKHJvb3Qt PmxlYWZzaXplICsgcm9vdC0+bm9kZXNpemUgKiAoQlRSRlNfTUFYX0xFVkVMIC0gMSkpICoKKwly ZXR1cm4gKHJvb3QtPmZzX2luZm8tPmxlYWZzaXplICsgcm9vdC0+ZnNfaW5mby0+bm9kZXNpemUg KiAoQlRSRlNfTUFYX0xFVkVMIC0gMSkpICoKIAkJMyAqIG51bV9pdGVtczsKIH0KIApkaWZmIC0t Z2l0IGEvZnMvYnRyZnMvZGlzay1pby5jIGIvZnMvYnRyZnMvZGlzay1pby5jCmluZGV4IDk0ZWNh YzMuLjEwMTU4Y2VmIDEwMDY0NAotLS0gYS9mcy9idHJmcy9kaXNrLWlvLmMKKysrIGIvZnMvYnRy ZnMvZGlzay1pby5jCkBAIC0xMDU2LDE2ICsxMDU2LDEyIEBAIGludCBjbGVhbl90cmVlX2Jsb2Nr KHN0cnVjdCBidHJmc190cmFuc19oYW5kbGUgKnRyYW5zLCBzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9v dCwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBfX3NldHVwX3Jvb3QodTMyIG5vZGVzaXpl LCB1MzIgbGVhZnNpemUsIHUzMiBzZWN0b3JzaXplLAotCQkJdTMyIHN0cmlwZXNpemUsIHN0cnVj dCBidHJmc19yb290ICpyb290LAorc3RhdGljIGludCBfX3NldHVwX3Jvb3QodTMyIHN0cmlwZXNp emUsIHN0cnVjdCBidHJmc19yb290ICpyb290LAogCQkJc3RydWN0IGJ0cmZzX2ZzX2luZm8gKmZz X2luZm8sCiAJCQl1NjQgb2JqZWN0aWQpCiB7CiAJcm9vdC0+bm9kZSA9IE5VTEw7CiAJcm9vdC0+ Y29tbWl0X3Jvb3QgPSBOVUxMOwotCXJvb3QtPnNlY3RvcnNpemUgPSBzZWN0b3JzaXplOwotCXJv b3QtPm5vZGVzaXplID0gbm9kZXNpemU7Ci0Jcm9vdC0+bGVhZnNpemUgPSBsZWFmc2l6ZTsKIAly b290LT5zdHJpcGVzaXplID0gc3RyaXBlc2l6ZTsKIAlyb290LT5yZWZfY293cyA9IDA7CiAJcm9v dC0+dHJhY2tfZGlydHkgPSAwOwpAQCAtMTEyOSw5ICsxMTI1LDcgQEAgc3RhdGljIGludCBmaW5k X2FuZF9zZXR1cF9yb290KHN0cnVjdCBidHJmc19yb290ICp0cmVlX3Jvb3QsCiAJdTMyIGJsb2Nr c2l6ZTsKIAl1NjQgZ2VuZXJhdGlvbjsKIAotCV9fc2V0dXBfcm9vdCh0cmVlX3Jvb3QtPm5vZGVz aXplLCB0cmVlX3Jvb3QtPmxlYWZzaXplLAotCQkgICAgIHRyZWVfcm9vdC0+c2VjdG9yc2l6ZSwg dHJlZV9yb290LT5zdHJpcGVzaXplLAotCQkgICAgIHJvb3QsIGZzX2luZm8sIG9iamVjdGlkKTsK KwlfX3NldHVwX3Jvb3QodHJlZV9yb290LT5zdHJpcGVzaXplLCByb290LCBmc19pbmZvLCBvYmpl Y3RpZCk7CiAJcmV0ID0gYnRyZnNfZmluZF9sYXN0X3Jvb3QodHJlZV9yb290LCBvYmplY3RpZCwK IAkJCQkgICAmcm9vdC0+cm9vdF9pdGVtLCAmcm9vdC0+cm9vdF9rZXkpOwogCWlmIChyZXQgPiAw KQpAQCAtMTE2MSw5ICsxMTU1LDggQEAgc3RhdGljIHN0cnVjdCBidHJmc19yb290ICphbGxvY19s b2dfdHJlZShzdHJ1Y3QgYnRyZnNfdHJhbnNfaGFuZGxlICp0cmFucywKIAlpZiAoIXJvb3QpCiAJ CXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCi0JX19zZXR1cF9yb290KHRyZWVfcm9vdC0+bm9k ZXNpemUsIHRyZWVfcm9vdC0+bGVhZnNpemUsCi0JCSAgICAgdHJlZV9yb290LT5zZWN0b3JzaXpl LCB0cmVlX3Jvb3QtPnN0cmlwZXNpemUsCi0JCSAgICAgcm9vdCwgZnNfaW5mbywgQlRSRlNfVFJF RV9MT0dfT0JKRUNUSUQpOworCV9fc2V0dXBfcm9vdCh0cmVlX3Jvb3QtPnN0cmlwZXNpemUsIHJv b3QsIGZzX2luZm8sCisJCSAgICAgQlRSRlNfVFJFRV9MT0dfT0JKRUNUSUQpOwogCiAJcm9vdC0+ cm9vdF9rZXkub2JqZWN0aWQgPSBCVFJGU19UUkVFX0xPR19PQkpFQ1RJRDsKIAlyb290LT5yb290 X2tleS50eXBlID0gQlRSRlNfUk9PVF9JVEVNX0tFWTsKQEAgLTExNzYsNyArMTE2OSw3IEBAIHN0 YXRpYyBzdHJ1Y3QgYnRyZnNfcm9vdCAqYWxsb2NfbG9nX3RyZWUoc3RydWN0IGJ0cmZzX3RyYW5z X2hhbmRsZSAqdHJhbnMsCiAJICovCiAJcm9vdC0+cmVmX2Nvd3MgPSAwOwogCi0JbGVhZiA9IGJ0 cmZzX2FsbG9jX2ZyZWVfYmxvY2sodHJhbnMsIHJvb3QsIHJvb3QtPmxlYWZzaXplLCAwLAorCWxl YWYgPSBidHJmc19hbGxvY19mcmVlX2Jsb2NrKHRyYW5zLCByb290LCByb290LT5mc19pbmZvLT5s ZWFmc2l6ZSwgMCwKIAkJCQkgICAgICBCVFJGU19UUkVFX0xPR19PQkpFQ1RJRCwgTlVMTCwgMCwg MCwgMCk7CiAJaWYgKElTX0VSUihsZWFmKSkgewogCQlrZnJlZShyb290KTsKQEAgLTEyMjgsNyAr MTIyMSw3IEBAIGludCBidHJmc19hZGRfbG9nX3RyZWUoc3RydWN0IGJ0cmZzX3RyYW5zX2hhbmRs ZSAqdHJhbnMsCiAJaW5vZGVfaXRlbS0+Z2VuZXJhdGlvbiA9IGNwdV90b19sZTY0KDEpOwogCWlu b2RlX2l0ZW0tPnNpemUgPSBjcHVfdG9fbGU2NCgzKTsKIAlpbm9kZV9pdGVtLT5ubGluayA9IGNw dV90b19sZTMyKDEpOwotCWlub2RlX2l0ZW0tPm5ieXRlcyA9IGNwdV90b19sZTY0KHJvb3QtPmxl YWZzaXplKTsKKwlpbm9kZV9pdGVtLT5uYnl0ZXMgPSBjcHVfdG9fbGU2NChyb290LT5mc19pbmZv LT5sZWFmc2l6ZSk7CiAJaW5vZGVfaXRlbS0+bW9kZSA9IGNwdV90b19sZTMyKFNfSUZESVIgfCAw NzU1KTsKIAogCWJ0cmZzX3NldF9yb290X25vZGUoJmxvZ19yb290LT5yb290X2l0ZW0sIGxvZ19y b290LT5ub2RlKTsKQEAgLTEyNjQsOSArMTI1Nyw3IEBAIHN0cnVjdCBidHJmc19yb290ICpidHJm c19yZWFkX2ZzX3Jvb3Rfbm9fcmFkaXgoc3RydWN0IGJ0cmZzX3Jvb3QgKnRyZWVfcm9vdCwKIAkJ Z290byBvdXQ7CiAJfQogCi0JX19zZXR1cF9yb290KHRyZWVfcm9vdC0+bm9kZXNpemUsIHRyZWVf cm9vdC0+bGVhZnNpemUsCi0JCSAgICAgdHJlZV9yb290LT5zZWN0b3JzaXplLCB0cmVlX3Jvb3Qt PnN0cmlwZXNpemUsCi0JCSAgICAgcm9vdCwgZnNfaW5mbywgbG9jYXRpb24tPm9iamVjdGlkKTsK KwlfX3NldHVwX3Jvb3QodHJlZV9yb290LT5zdHJpcGVzaXplLCByb290LCBmc19pbmZvLCBsb2Nh dGlvbi0+b2JqZWN0aWQpOwogCiAJcGF0aCA9IGJ0cmZzX2FsbG9jX3BhdGgoKTsKIAlpZiAoIXBh dGgpIHsKQEAgLTE3NjIsOCArMTc1Myw3IEBAIHN0cnVjdCBidHJmc19yb290ICpvcGVuX2N0cmVl KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCiAJaW5pdF93YWl0cXVldWVfaGVhZCgmZnNfaW5mby0+ dHJhbnNhY3Rpb25fYmxvY2tlZF93YWl0KTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZmc19pbmZv LT5hc3luY19zdWJtaXRfd2FpdCk7CiAKLQlfX3NldHVwX3Jvb3QoNDA5NiwgNDA5NiwgNDA5Niwg NDA5NiwgdHJlZV9yb290LAotCQkgICAgIGZzX2luZm8sIEJUUkZTX1JPT1RfVFJFRV9PQkpFQ1RJ RCk7CisJX19zZXR1cF9yb290KDQwOTYsIHRyZWVfcm9vdCwgZnNfaW5mbywgQlRSRlNfUk9PVF9U UkVFX09CSkVDVElEKTsKIAogCWJoID0gYnRyZnNfcmVhZF9kZXZfc3VwZXIoZnNfZGV2aWNlcy0+ bGF0ZXN0X2JkZXYpOwogCWlmICghYmgpIHsKQEAgLTE5MDcsOSArMTg5NywxMCBAQCBzdHJ1Y3Qg YnRyZnNfcm9vdCAqb3Blbl9jdHJlZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogCWxlYWZzaXpl ID0gYnRyZnNfc3VwZXJfbGVhZnNpemUoZGlza19zdXBlcik7CiAJc2VjdG9yc2l6ZSA9IGJ0cmZz X3N1cGVyX3NlY3RvcnNpemUoZGlza19zdXBlcik7CiAJc3RyaXBlc2l6ZSA9IGJ0cmZzX3N1cGVy X3N0cmlwZXNpemUoZGlza19zdXBlcik7Ci0JdHJlZV9yb290LT5ub2Rlc2l6ZSA9IG5vZGVzaXpl OwotCXRyZWVfcm9vdC0+bGVhZnNpemUgPSBsZWFmc2l6ZTsKLQl0cmVlX3Jvb3QtPnNlY3RvcnNp emUgPSBzZWN0b3JzaXplOworCQorCWZzX2luZm8tPm5vZGVzaXplID0gbm9kZXNpemU7CisJZnNf aW5mby0+bGVhZnNpemUgPSBsZWFmc2l6ZTsKKwlmc19pbmZvLT5zZWN0b3JzaXplID0gc2VjdG9y c2l6ZTsKIAl0cmVlX3Jvb3QtPnN0cmlwZXNpemUgPSBzdHJpcGVzaXplOwogCiAJc2ItPnNfYmxv Y2tzaXplID0gc2VjdG9yc2l6ZTsKQEAgLTE5MzQsOCArMTkyNSw3IEBAIHN0cnVjdCBidHJmc19y b290ICpvcGVuX2N0cmVlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCiAJCQkJICAgICBidHJmc19z dXBlcl9jaHVua19yb290X2xldmVsKGRpc2tfc3VwZXIpKTsKIAlnZW5lcmF0aW9uID0gYnRyZnNf c3VwZXJfY2h1bmtfcm9vdF9nZW5lcmF0aW9uKGRpc2tfc3VwZXIpOwogCi0JX19zZXR1cF9yb290 KG5vZGVzaXplLCBsZWFmc2l6ZSwgc2VjdG9yc2l6ZSwgc3RyaXBlc2l6ZSwKLQkJICAgICBjaHVu a19yb290LCBmc19pbmZvLCBCVFJGU19DSFVOS19UUkVFX09CSkVDVElEKTsKKwlfX3NldHVwX3Jv b3Qoc3RyaXBlc2l6ZSwgY2h1bmtfcm9vdCwgZnNfaW5mbywgQlRSRlNfQ0hVTktfVFJFRV9PQkpF Q1RJRCk7CiAKIAljaHVua19yb290LT5ub2RlID0gcmVhZF90cmVlX2Jsb2NrKGNodW5rX3Jvb3Qs CiAJCQkJCSAgIGJ0cmZzX3N1cGVyX2NodW5rX3Jvb3QoZGlza19zdXBlciksCkBAIC0yMDU4LDgg KzIwNDgsOCBAQCBzdHJ1Y3QgYnRyZnNfcm9vdCAqb3Blbl9jdHJlZShzdHJ1Y3Qgc3VwZXJfYmxv Y2sgKnNiLAogCQkJZ290byBmYWlsX3RyYW5zX2t0aHJlYWQ7CiAJCX0KIAotCQlfX3NldHVwX3Jv b3Qobm9kZXNpemUsIGxlYWZzaXplLCBzZWN0b3JzaXplLCBzdHJpcGVzaXplLAotCQkJICAgICBs b2dfdHJlZV9yb290LCBmc19pbmZvLCBCVFJGU19UUkVFX0xPR19PQkpFQ1RJRCk7CisJCV9fc2V0 dXBfcm9vdChzdHJpcGVzaXplLCBsb2dfdHJlZV9yb290LCBmc19pbmZvLAorCQkJICAgICBCVFJG U19UUkVFX0xPR19PQkpFQ1RJRCk7CiAKIAkJbG9nX3RyZWVfcm9vdC0+bm9kZSA9IHJlYWRfdHJl ZV9ibG9jayh0cmVlX3Jvb3QsIGJ5dGVuciwKIAkJCQkJCSAgICAgIGJsb2Nrc2l6ZSwKZGlmZiAt LWdpdCBhL2ZzL2J0cmZzL2V4dGVudC10cmVlLmMgYi9mcy9idHJmcy9leHRlbnQtdHJlZS5jCmlu ZGV4IDY2YmFjMjIuLjAwOWMwYzMgMTAwNjQ0Ci0tLSBhL2ZzL2J0cmZzL2V4dGVudC10cmVlLmMK KysrIGIvZnMvYnRyZnMvZXh0ZW50LXRyZWUuYwpAQCAtMzAzMyw3ICszMDMzLDcgQEAgaW50IGJ0 cmZzX2NoZWNrX2RhdGFfZnJlZV9zcGFjZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1NjQgYnl0ZXMp CiAJaW50IHJldCA9IDAsIGNvbW1pdHRlZCA9IDAsIGFsbG9jX2NodW5rID0gMTsKIAogCS8qIG1h a2Ugc3VyZSBieXRlcyBhcmUgc2VjdG9yc2l6ZSBhbGlnbmVkICovCi0JYnl0ZXMgPSAoYnl0ZXMg KyByb290LT5zZWN0b3JzaXplIC0gMSkgJiB+KCh1NjQpcm9vdC0+c2VjdG9yc2l6ZSAtIDEpOwor CWJ5dGVzID0gKGJ5dGVzICsgcm9vdC0+ZnNfaW5mby0+c2VjdG9yc2l6ZSAtIDEpICYgfigodTY0 KXJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemUgLSAxKTsKIAogCWlmIChyb290ID09IHJvb3QtPmZz X2luZm8tPnRyZWVfcm9vdCB8fAogCSAgICBCVFJGU19JKGlub2RlKS0+bG9jYXRpb24ub2JqZWN0 aWQgPT0gQlRSRlNfRlJFRV9JTk9fT0JKRUNUSUQpIHsKQEAgLTMxMzEsNyArMzEzMSw3IEBAIHZv aWQgYnRyZnNfZnJlZV9yZXNlcnZlZF9kYXRhX3NwYWNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHU2 NCBieXRlcykKIAlzdHJ1Y3QgYnRyZnNfc3BhY2VfaW5mbyAqZGF0YV9zaW5mbzsKIAogCS8qIG1h a2Ugc3VyZSBieXRlcyBhcmUgc2VjdG9yc2l6ZSBhbGlnbmVkICovCi0JYnl0ZXMgPSAoYnl0ZXMg KyByb290LT5zZWN0b3JzaXplIC0gMSkgJiB+KCh1NjQpcm9vdC0+c2VjdG9yc2l6ZSAtIDEpOwor CWJ5dGVzID0gKGJ5dGVzICsgcm9vdC0+ZnNfaW5mby0+c2VjdG9yc2l6ZSAtIDEpICYgfigodTY0 KXJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemUgLSAxKTsKIAogCWRhdGFfc2luZm8gPSBCVFJGU19J KGlub2RlKS0+c3BhY2VfaW5mbzsKIAlzcGluX2xvY2soJmRhdGFfc2luZm8tPmxvY2spOwpAQCAt Mzc5Niw3ICszNzk2LDcgQEAgc3RhdGljIHU2NCBjYWxjX2dsb2JhbF9tZXRhZGF0YV9zaXplKHN0 cnVjdCBidHJmc19mc19pbmZvICpmc19pbmZvKQogCWlmIChudW1fYnl0ZXMgKiAzID4gbWV0YV91 c2VkKQogCQludW1fYnl0ZXMgPSBkaXY2NF91NjQobWV0YV91c2VkLCAzKTsKIAotCXJldHVybiBB TElHTihudW1fYnl0ZXMsIGZzX2luZm8tPmV4dGVudF9yb290LT5sZWFmc2l6ZSA8PCAxMCk7CisJ cmV0dXJuIEFMSUdOKG51bV9ieXRlcywgZnNfaW5mby0+bGVhZnNpemUgPDwgMTApOwogfQogCiBz dGF0aWMgdm9pZCB1cGRhdGVfZ2xvYmFsX2Jsb2NrX3JzdihzdHJ1Y3QgYnRyZnNfZnNfaW5mbyAq ZnNfaW5mbykKQEAgLTM5OTYsNyArMzk5Niw3IEBAIGludCBidHJmc19kZWxhbGxvY19yZXNlcnZl X21ldGFkYXRhKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHU2NCBudW1fYnl0ZXMpCiAJaWYgKGJ0cmZz X3RyYW5zYWN0aW9uX2luX2NvbW1pdChyb290LT5mc19pbmZvKSkKIAkJc2NoZWR1bGVfdGltZW91 dCgxKTsKIAotCW51bV9ieXRlcyA9IEFMSUdOKG51bV9ieXRlcywgcm9vdC0+c2VjdG9yc2l6ZSk7 CisJbnVtX2J5dGVzID0gQUxJR04obnVtX2J5dGVzLCByb290LT5mc19pbmZvLT5zZWN0b3JzaXpl KTsKIAogCXNwaW5fbG9jaygmQlRSRlNfSShpbm9kZSktPmxvY2spOwogCUJUUkZTX0koaW5vZGUp LT5vdXRzdGFuZGluZ19leHRlbnRzKys7CkBAIC00MDM1LDcgKzQwMzUsNyBAQCB2b2lkIGJ0cmZz X2RlbGFsbG9jX3JlbGVhc2VfbWV0YWRhdGEoc3RydWN0IGlub2RlICppbm9kZSwgdTY0IG51bV9i eXRlcykKIAl1NjQgdG9fZnJlZSA9IDA7CiAJdW5zaWduZWQgZHJvcHBlZDsKIAotCW51bV9ieXRl cyA9IEFMSUdOKG51bV9ieXRlcywgcm9vdC0+c2VjdG9yc2l6ZSk7CisJbnVtX2J5dGVzID0gQUxJ R04obnVtX2J5dGVzLCByb290LT5mc19pbmZvLT5zZWN0b3JzaXplKTsKIAlkcm9wcGVkID0gZHJv cF9vdXRzdGFuZGluZ19leHRlbnQoaW5vZGUpOwogCiAJdG9fZnJlZSA9IGNhbGNfY3N1bV9tZXRh ZGF0YV9zaXplKGlub2RlLCBudW1fYnl0ZXMpOwpAQCAtNDg4Miw3ICs0ODgyLDcgQEAgc3RhdGlj IG5vaW5saW5lIGludCBmaW5kX2ZyZWVfZXh0ZW50KHN0cnVjdCBidHJmc190cmFuc19oYW5kbGUg KnRyYW5zLAogCXU2NCBpZGVhbF9jYWNoZV9wZXJjZW50ID0gMDsKIAl1NjQgaWRlYWxfY2FjaGVf b2Zmc2V0ID0gMDsKIAotCVdBUk5fT04obnVtX2J5dGVzIDwgcm9vdC0+c2VjdG9yc2l6ZSk7CisJ V0FSTl9PTihudW1fYnl0ZXMgPCByb290LT5mc19pbmZvLT5zZWN0b3JzaXplKTsKIAlidHJmc19z ZXRfa2V5X3R5cGUoaW5zLCBCVFJGU19FWFRFTlRfSVRFTV9LRVkpOwogCWlucy0+b2JqZWN0aWQg PSAwOwogCWlucy0+b2Zmc2V0ID0gMDsKQEAgLTUzNzUsMTQgKzUzNzUsMTQgQEAgYWdhaW46CiAJ CQkJICAgICBudW1fYnl0ZXMgKyAyICogMTAyNCAqIDEwMjQsIGRhdGEsCiAJCQkJICAgICBDSFVO S19BTExPQ19OT19GT1JDRSk7CiAKLQlXQVJOX09OKG51bV9ieXRlcyA8IHJvb3QtPnNlY3RvcnNp emUpOworCVdBUk5fT04obnVtX2J5dGVzIDwgcm9vdC0+ZnNfaW5mby0+c2VjdG9yc2l6ZSk7CiAJ cmV0ID0gZmluZF9mcmVlX2V4dGVudCh0cmFucywgcm9vdCwgbnVtX2J5dGVzLCBlbXB0eV9zaXpl LAogCQkJICAgICAgIHNlYXJjaF9zdGFydCwgc2VhcmNoX2VuZCwgaGludF9ieXRlLAogCQkJICAg ICAgIGlucywgZGF0YSk7CiAKIAlpZiAocmV0ID09IC1FTk9TUEMgJiYgbnVtX2J5dGVzID4gbWlu X2FsbG9jX3NpemUpIHsKIAkJbnVtX2J5dGVzID0gbnVtX2J5dGVzID4+IDE7Ci0JCW51bV9ieXRl cyA9IG51bV9ieXRlcyAmIH4ocm9vdC0+c2VjdG9yc2l6ZSAtIDEpOworCQludW1fYnl0ZXMgPSBu dW1fYnl0ZXMgJiB+KHJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemUgLSAxKTsKIAkJbnVtX2J5dGVz ID0gbWF4KG51bV9ieXRlcywgbWluX2FsbG9jX3NpemUpOwogCQlkb19jaHVua19hbGxvYyh0cmFu cywgcm9vdC0+ZnNfaW5mby0+ZXh0ZW50X3Jvb3QsCiAJCQkgICAgICAgbnVtX2J5dGVzLCBkYXRh LCBDSFVOS19BTExPQ19GT1JDRSk7CkBAIC03MDA4LDcgKzcwMDgsNyBAQCBpbnQgYnRyZnNfcmVh ZF9ibG9ja19ncm91cHMoc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QpCiAJCWtleS5vYmplY3RpZCA9 IGZvdW5kX2tleS5vYmplY3RpZCArIGZvdW5kX2tleS5vZmZzZXQ7CiAJCWJ0cmZzX3JlbGVhc2Vf cGF0aChwYXRoKTsKIAkJY2FjaGUtPmZsYWdzID0gYnRyZnNfYmxvY2tfZ3JvdXBfZmxhZ3MoJmNh Y2hlLT5pdGVtKTsKLQkJY2FjaGUtPnNlY3RvcnNpemUgPSByb290LT5zZWN0b3JzaXplOworCQlj YWNoZS0+c2VjdG9yc2l6ZSA9IHJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemU7CiAKIAkJYnRyZnNf aW5pdF9mcmVlX3NwYWNlX2N0bChjYWNoZSk7CiAKQEAgLTcxMDgsNyArNzEwOCw3IEBAIGludCBi dHJmc19tYWtlX2Jsb2NrX2dyb3VwKHN0cnVjdCBidHJmc190cmFuc19oYW5kbGUgKnRyYW5zLAog CWNhY2hlLT5rZXkub2JqZWN0aWQgPSBjaHVua19vZmZzZXQ7CiAJY2FjaGUtPmtleS5vZmZzZXQg PSBzaXplOwogCWNhY2hlLT5rZXkudHlwZSA9IEJUUkZTX0JMT0NLX0dST1VQX0lURU1fS0VZOwot CWNhY2hlLT5zZWN0b3JzaXplID0gcm9vdC0+c2VjdG9yc2l6ZTsKKwljYWNoZS0+c2VjdG9yc2l6 ZSA9IHJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemU7CiAJY2FjaGUtPmZzX2luZm8gPSByb290LT5m c19pbmZvOwogCiAJYXRvbWljX3NldCgmY2FjaGUtPmNvdW50LCAxKTsKZGlmZiAtLWdpdCBhL2Zz L2J0cmZzL2V4dGVudF9pby5jIGIvZnMvYnRyZnMvZXh0ZW50X2lvLmMKaW5kZXggODQ5MTcxMi4u NDY1Njc1NyAxMDA2NDQKLS0tIGEvZnMvYnRyZnMvZXh0ZW50X2lvLmMKKysrIGIvZnMvYnRyZnMv ZXh0ZW50X2lvLmMKQEAgLTI3MjksNyArMjcyOSw3IEBAIHN0YXRpYyBzdHJ1Y3QgZXh0ZW50X21h cCAqZ2V0X2V4dGVudF9za2lwX2hvbGVzKHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJCQkJCQl1NjQg bGFzdCwKIAkJCQkJCWdldF9leHRlbnRfdCAqZ2V0X2V4dGVudCkKIHsKLQl1NjQgc2VjdG9yc2l6 ZSA9IEJUUkZTX0koaW5vZGUpLT5yb290LT5zZWN0b3JzaXplOworCXU2NCBzZWN0b3JzaXplID0g QlRSRlNfSShpbm9kZSktPnJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemU7CiAJc3RydWN0IGV4dGVu dF9tYXAgKmVtOwogCXU2NCBsZW47CiAKZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL2ZpbGUtaXRlbS5j IGIvZnMvYnRyZnMvZmlsZS1pdGVtLmMKaW5kZXggYjkxMDY5NC4uYjk3ZTY1NyAxMDA2NDQKLS0t IGEvZnMvYnRyZnMvZmlsZS1pdGVtLmMKKysrIGIvZnMvYnRyZnMvZmlsZS1pdGVtLmMKQEAgLTMy LDcgKzMyLDcgQEAKICNkZWZpbmUgTUFYX09SREVSRURfU1VNX0JZVEVTKHIpICgoUEFHRV9TSVpF IC0gXAogCQkJCSAgIHNpemVvZihzdHJ1Y3QgYnRyZnNfb3JkZXJlZF9zdW0pKSAvIFwKIAkJCQkg ICBzaXplb2Yoc3RydWN0IGJ0cmZzX3NlY3Rvcl9zdW0pICogXAotCQkJCSAgIChyKS0+c2VjdG9y c2l6ZSAtIChyKS0+c2VjdG9yc2l6ZSkKKwkJCQkgICAociktPmZzX2luZm8tPnNlY3RvcnNpemUg LSAociktPmZzX2luZm8tPnNlY3RvcnNpemUpCiAKIGludCBidHJmc19pbnNlcnRfZmlsZV9leHRl bnQoc3RydWN0IGJ0cmZzX3RyYW5zX2hhbmRsZSAqdHJhbnMsCiAJCQkgICAgIHN0cnVjdCBidHJm c19yb290ICpyb290LApAQCAtMjM0LDcgKzIzNCw3IEBAIHN0YXRpYyBpbnQgX19idHJmc19sb29r dXBfYmlvX3N1bXMoc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QsCiAJCQkJCQkgICAgICAgcGF0aC0+ c2xvdHNbMF0pOwogCQkJaXRlbV9sYXN0X29mZnNldCA9IGl0ZW1fc3RhcnRfb2Zmc2V0ICsKIAkJ CQkoaXRlbV9zaXplIC8gY3N1bV9zaXplKSAqCi0JCQkJcm9vdC0+c2VjdG9yc2l6ZTsKKwkJCQly b290LT5mc19pbmZvLT5zZWN0b3JzaXplOwogCQkJaXRlbSA9IGJ0cmZzX2l0ZW1fcHRyKHBhdGgt Pm5vZGVzWzBdLCBwYXRoLT5zbG90c1swXSwKIAkJCQkJICAgICAgc3RydWN0IGJ0cmZzX2NzdW1f aXRlbSk7CiAJCX0KQEAgLTI0Myw3ICsyNDMsNyBAQCBzdGF0aWMgaW50IF9fYnRyZnNfbG9va3Vw X2Jpb19zdW1zKHN0cnVjdCBidHJmc19yb290ICpyb290LAogCQkgKiBhIHNpbmdsZSBsZWFmIHNv IGl0IHdpbGwgYWxzbyBmaXQgaW5zaWRlIGEgdTMyCiAJCSAqLwogCQlkaWZmID0gZGlza19ieXRl bnIgLSBpdGVtX3N0YXJ0X29mZnNldDsKLQkJZGlmZiA9IGRpZmYgLyByb290LT5zZWN0b3JzaXpl OworCQlkaWZmID0gZGlmZiAvIHJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemU7CiAJCWRpZmYgPSBk aWZmICogY3N1bV9zaXplOwogCiAJCXJlYWRfZXh0ZW50X2J1ZmZlcihwYXRoLT5ub2Rlc1swXSwg JnN1bSwKQEAgLTM0NCw3ICszNDQsNyBAQCBpbnQgYnRyZnNfbG9va3VwX2NzdW1zX3JhbmdlKHN0 cnVjdCBidHJmc19yb290ICpyb290LCB1NjQgc3RhcnQsIHU2NCBlbmQsCiAJCQlzdGFydCA9IGtl eS5vZmZzZXQ7CiAKIAkJc2l6ZSA9IGJ0cmZzX2l0ZW1fc2l6ZV9ucihsZWFmLCBwYXRoLT5zbG90 c1swXSk7Ci0JCWNzdW1fZW5kID0ga2V5Lm9mZnNldCArIChzaXplIC8gY3N1bV9zaXplKSAqIHJv b3QtPnNlY3RvcnNpemU7CisJCWNzdW1fZW5kID0ga2V5Lm9mZnNldCArIChzaXplIC8gY3N1bV9z aXplKSAqIHJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemU7CiAJCWlmIChjc3VtX2VuZCA8PSBzdGFy dCkgewogCQkJcGF0aC0+c2xvdHNbMF0rKzsKIAkJCWNvbnRpbnVlOwpAQCAtMzc1LDggKzM3NSw4 IEBAIGludCBidHJmc19sb29rdXBfY3N1bXNfcmFuZ2Uoc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3Qs IHU2NCBzdGFydCwgdTY0IGVuZCwKIAkJCQkJCW9mZnNldCwgY3N1bV9zaXplKTsKIAkJCQlzZWN0 b3Jfc3VtLT5ieXRlbnIgPSBzdGFydDsKIAotCQkJCXNpemUgLT0gcm9vdC0+c2VjdG9yc2l6ZTsK LQkJCQlzdGFydCArPSByb290LT5zZWN0b3JzaXplOworCQkJCXNpemUgLT0gcm9vdC0+ZnNfaW5m by0+c2VjdG9yc2l6ZTsKKwkJCQlzdGFydCArPSByb290LT5mc19pbmZvLT5zZWN0b3JzaXplOwog CQkJCW9mZnNldCArPSBjc3VtX3NpemU7CiAJCQkJc2VjdG9yX3N1bSsrOwogCQkJfQpAQCAtNzgz LDE0ICs3ODMsMTQgQEAgaW5zZXJ0OgogCWJ0cmZzX3JlbGVhc2VfcGF0aChwYXRoKTsKIAljc3Vt X29mZnNldCA9IDA7CiAJaWYgKGZvdW5kX25leHQpIHsKLQkJdTY0IHRtcCA9IHRvdGFsX2J5dGVz ICsgcm9vdC0+c2VjdG9yc2l6ZTsKKwkJdTY0IHRtcCA9IHRvdGFsX2J5dGVzICsgcm9vdC0+ZnNf aW5mby0+c2VjdG9yc2l6ZTsKIAkJdTY0IG5leHRfc2VjdG9yID0gc2VjdG9yX3N1bS0+Ynl0ZW5y OwogCQlzdHJ1Y3QgYnRyZnNfc2VjdG9yX3N1bSAqbmV4dCA9IHNlY3Rvcl9zdW0gKyAxOwogCiAJ CXdoaWxlICh0bXAgPCBzdW1zLT5sZW4pIHsKLQkJCWlmIChuZXh0X3NlY3RvciArIHJvb3QtPnNl Y3RvcnNpemUgIT0gbmV4dC0+Ynl0ZW5yKQorCQkJaWYgKG5leHRfc2VjdG9yICsgcm9vdC0+ZnNf aW5mby0+c2VjdG9yc2l6ZSAhPSBuZXh0LT5ieXRlbnIpCiAJCQkJYnJlYWs7Ci0JCQl0bXAgKz0g cm9vdC0+c2VjdG9yc2l6ZTsKKwkJCXRtcCArPSByb290LT5mc19pbmZvLT5zZWN0b3JzaXplOwog CQkJbmV4dF9zZWN0b3IgPSBuZXh0LT5ieXRlbnI7CiAJCQluZXh0Kys7CiAJCX0KQEAgLTgyNiw3 ICs4MjYsNyBAQCBuZXh0X3NlY3RvcjoKIAogCXdyaXRlX2V4dGVudF9idWZmZXIobGVhZiwgJnNl Y3Rvcl9zdW0tPnN1bSwgKHVuc2lnbmVkIGxvbmcpaXRlbSwgY3N1bV9zaXplKTsKIAotCXRvdGFs X2J5dGVzICs9IHJvb3QtPnNlY3RvcnNpemU7CisJdG90YWxfYnl0ZXMgKz0gcm9vdC0+ZnNfaW5m by0+c2VjdG9yc2l6ZTsKIAlzZWN0b3Jfc3VtKys7CiAJaWYgKHRvdGFsX2J5dGVzIDwgc3Vtcy0+ bGVuKSB7CiAJCWl0ZW0gPSAoc3RydWN0IGJ0cmZzX2NzdW1faXRlbSAqKSgoY2hhciAqKWl0ZW0g KwpkaWZmIC0tZ2l0IGEvZnMvYnRyZnMvZmlsZS5jIGIvZnMvYnRyZnMvZmlsZS5jCmluZGV4IDAx MGFlYzguLjk2ZDZlYTQgMTAwNjQ0Ci0tLSBhL2ZzL2J0cmZzL2ZpbGUuYworKysgYi9mcy9idHJm cy9maWxlLmMKQEAgLTM5Niw5ICszOTYsOSBAQCBpbnQgYnRyZnNfZGlydHlfcGFnZXMoc3RydWN0 IGJ0cmZzX3Jvb3QgKnJvb3QsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJdTY0IGVuZF9wb3MgPSBw b3MgKyB3cml0ZV9ieXRlczsKIAlsb2ZmX3QgaXNpemUgPSBpX3NpemVfcmVhZChpbm9kZSk7CiAK LQlzdGFydF9wb3MgPSBwb3MgJiB+KCh1NjQpcm9vdC0+c2VjdG9yc2l6ZSAtIDEpOworCXN0YXJ0 X3BvcyA9IHBvcyAmIH4oKHU2NClyb290LT5mc19pbmZvLT5zZWN0b3JzaXplIC0gMSk7CiAJbnVt X2J5dGVzID0gKHdyaXRlX2J5dGVzICsgcG9zIC0gc3RhcnRfcG9zICsKLQkJICAgIHJvb3QtPnNl Y3RvcnNpemUgLSAxKSAmIH4oKHU2NClyb290LT5zZWN0b3JzaXplIC0gMSk7CisJCSAgICByb290 LT5mc19pbmZvLT5zZWN0b3JzaXplIC0gMSkgJiB+KCh1NjQpcm9vdC0+ZnNfaW5mby0+c2VjdG9y c2l6ZSAtIDEpOwogCiAJZW5kX29mX2xhc3RfYmxvY2sgPSBzdGFydF9wb3MgKyBudW1fYnl0ZXMg LSAxOwogCWVyciA9IGJ0cmZzX3NldF9leHRlbnRfZGVsYWxsb2MoaW5vZGUsIHN0YXJ0X3Bvcywg ZW5kX29mX2xhc3RfYmxvY2ssCkBAIC03NDUsNyArNzQ1LDcgQEAgbmV4dF9zbG90OgogCQkJCWlu b2RlX3N1Yl9ieXRlcyhpbm9kZSwKIAkJCQkJCWV4dGVudF9lbmQgLSBrZXkub2Zmc2V0KTsKIAkJ CQlleHRlbnRfZW5kID0gQUxJR04oZXh0ZW50X2VuZCwKLQkJCQkJCSAgIHJvb3QtPnNlY3RvcnNp emUpOworCQkJCQkJICAgcm9vdC0+ZnNfaW5mby0+c2VjdG9yc2l6ZSk7CiAJCQl9IGVsc2UgaWYg KGRpc2tfYnl0ZW5yID4gMCkgewogCQkJCXJldCA9IGJ0cmZzX2ZyZWVfZXh0ZW50KHRyYW5zLCBy b290LAogCQkJCQkJZGlza19ieXRlbnIsIG51bV9ieXRlcywgMCwKQEAgLTEwNzAsNyArMTA3MCw3 IEBAIHN0YXRpYyBub2lubGluZSBpbnQgcHJlcGFyZV9wYWdlcyhzdHJ1Y3QgYnRyZnNfcm9vdCAq cm9vdCwgc3RydWN0IGZpbGUgKmZpbGUsCiAJdTY0IHN0YXJ0X3BvczsKIAl1NjQgbGFzdF9wb3M7 CiAKLQlzdGFydF9wb3MgPSBwb3MgJiB+KCh1NjQpcm9vdC0+c2VjdG9yc2l6ZSAtIDEpOworCXN0 YXJ0X3BvcyA9IHBvcyAmIH4oKHU2NClyb290LT5mc19pbmZvLT5zZWN0b3JzaXplIC0gMSk7CiAJ bGFzdF9wb3MgPSAoKHU2NClpbmRleCArIG51bV9wYWdlcykgPDwgUEFHRV9DQUNIRV9TSElGVDsK IAogCWlmIChzdGFydF9wb3MgPiBpbm9kZS0+aV9zaXplKSB7CkBAIC0xMjY0LDcgKzEyNjQsNyBA QCBzdGF0aWMgbm9pbmxpbmUgc3NpemVfdCBfX2J0cmZzX2J1ZmZlcmVkX3dyaXRlKHN0cnVjdCBm aWxlICpmaWxlLAogCiAJCWJhbGFuY2VfZGlydHlfcGFnZXNfcmF0ZWxpbWl0ZWRfbnIoaW5vZGUt PmlfbWFwcGluZywKIAkJCQkJCSAgIGRpcnR5X3BhZ2VzKTsKLQkJaWYgKGRpcnR5X3BhZ2VzIDwg KHJvb3QtPmxlYWZzaXplID4+IFBBR0VfQ0FDSEVfU0hJRlQpICsgMSkKKwkJaWYgKGRpcnR5X3Bh Z2VzIDwgKHJvb3QtPmZzX2luZm8tPmxlYWZzaXplID4+IFBBR0VfQ0FDSEVfU0hJRlQpICsgMSkK IAkJCWJ0cmZzX2J0cmVlX2JhbGFuY2VfZGlydHkocm9vdCwgMSk7CiAJCWJ0cmZzX3Rocm90dGxl KHJvb3QpOwogCkBAIC0xNTYzLDcgKzE1NjMsNyBAQCBzdGF0aWMgbG9uZyBidHJmc19mYWxsb2Nh dGUoc3RydWN0IGZpbGUgKmZpbGUsIGludCBtb2RlLAogCXU2NCBhbGxvY19lbmQ7CiAJdTY0IGFs bG9jX2hpbnQgPSAwOwogCXU2NCBsb2NrZWRfZW5kOwotCXU2NCBtYXNrID0gQlRSRlNfSShpbm9k ZSktPnJvb3QtPnNlY3RvcnNpemUgLSAxOworCXU2NCBtYXNrID0gQlRSRlNfSShpbm9kZSktPnJv b3QtPmZzX2luZm8tPnNlY3RvcnNpemUgLSAxOwogCXN0cnVjdCBleHRlbnRfbWFwICplbTsKIAlp bnQgcmV0OwogCmRpZmYgLS1naXQgYS9mcy9idHJmcy9mcmVlLXNwYWNlLWNhY2hlLmMgYi9mcy9i dHJmcy9mcmVlLXNwYWNlLWNhY2hlLmMKaW5kZXggNjM3NzcxMy4uYzg0ZTc1MiAxMDA2NDQKLS0t IGEvZnMvYnRyZnMvZnJlZS1zcGFjZS1jYWNoZS5jCisrKyBiL2ZzL2J0cmZzL2ZyZWUtc3BhY2Ut Y2FjaGUuYwpAQCAtNTY3LDcgKzU2Nyw3IEBAIGludCBfX2J0cmZzX3dyaXRlX291dF9jYWNoZShz dHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwgc3RydWN0IGlub2RlICppbm9kZSwKIAogCWZpbGVtYXBf d3JpdGVfYW5kX3dhaXQoaW5vZGUtPmlfbWFwcGluZyk7CiAJYnRyZnNfd2FpdF9vcmRlcmVkX3Jh bmdlKGlub2RlLCBpbm9kZS0+aV9zaXplICYKLQkJCQkgfihyb290LT5zZWN0b3JzaXplIC0gMSks ICh1NjQpLTEpOworCQkJCSB+KHJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemUgLSAxKSwgKHU2NCkt MSk7CiAKIAlwYWdlcyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBwYWdlICopICogbnVtX3BhZ2Vz LCBHRlBfTk9GUyk7CiAJaWYgKCFwYWdlcykKZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL2lub2RlLmMg Yi9mcy9idHJmcy9pbm9kZS5jCmluZGV4IDM0MTk1ZjkuLmJjYzEzOGIgMTAwNjQ0Ci0tLSBhL2Zz L2J0cmZzL2lub2RlLmMKKysrIGIvZnMvYnRyZnMvaW5vZGUuYwpAQCAtMjI2LDggKzIyNiw4IEBA IHN0YXRpYyBub2lubGluZSBpbnQgY293X2ZpbGVfcmFuZ2VfaW5saW5lKHN0cnVjdCBidHJmc190 cmFuc19oYW5kbGUgKnRyYW5zLAogCXU2NCBpc2l6ZSA9IGlfc2l6ZV9yZWFkKGlub2RlKTsKIAl1 NjQgYWN0dWFsX2VuZCA9IG1pbihlbmQgKyAxLCBpc2l6ZSk7CiAJdTY0IGlubGluZV9sZW4gPSBh Y3R1YWxfZW5kIC0gc3RhcnQ7Ci0JdTY0IGFsaWduZWRfZW5kID0gKGVuZCArIHJvb3QtPnNlY3Rv cnNpemUgLSAxKSAmCi0JCQl+KCh1NjQpcm9vdC0+c2VjdG9yc2l6ZSAtIDEpOworCXU2NCBhbGln bmVkX2VuZCA9IChlbmQgKyByb290LT5mc19pbmZvLT5zZWN0b3JzaXplIC0gMSkgJgorCQkJfigo dTY0KXJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemUgLSAxKTsKIAl1NjQgaGludF9ieXRlOwogCXU2 NCBkYXRhX2xlbiA9IGlubGluZV9sZW47CiAJaW50IHJldDsKQEAgLTIzOSw3ICsyMzksNyBAQCBz dGF0aWMgbm9pbmxpbmUgaW50IGNvd19maWxlX3JhbmdlX2lubGluZShzdHJ1Y3QgYnRyZnNfdHJh bnNfaGFuZGxlICp0cmFucywKIAkgICAgYWN0dWFsX2VuZCA+PSBQQUdFX0NBQ0hFX1NJWkUgfHwK IAkgICAgZGF0YV9sZW4gPj0gQlRSRlNfTUFYX0lOTElORV9EQVRBX1NJWkUocm9vdCkgfHwKIAkg ICAgKCFjb21wcmVzc2VkX3NpemUgJiYKLQkgICAgKGFjdHVhbF9lbmQgJiAocm9vdC0+c2VjdG9y c2l6ZSAtIDEpKSA9PSAwKSB8fAorCSAgICAoYWN0dWFsX2VuZCAmIChyb290LT5mc19pbmZvLT5z ZWN0b3JzaXplIC0gMSkpID09IDApIHx8CiAJICAgIGVuZCArIDEgPCBpc2l6ZSB8fAogCSAgICBk YXRhX2xlbiA+IHJvb3QtPmZzX2luZm8tPm1heF9pbmxpbmUpIHsKIAkJcmV0dXJuIDE7CkBAIC0z MjYsNyArMzI2LDcgQEAgc3RhdGljIG5vaW5saW5lIGludCBjb21wcmVzc19maWxlX3JhbmdlKHN0 cnVjdCBpbm9kZSAqaW5vZGUsCiAJc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QgPSBCVFJGU19JKGlu b2RlKS0+cm9vdDsKIAlzdHJ1Y3QgYnRyZnNfdHJhbnNfaGFuZGxlICp0cmFuczsKIAl1NjQgbnVt X2J5dGVzOwotCXU2NCBibG9ja3NpemUgPSByb290LT5zZWN0b3JzaXplOworCXU2NCBibG9ja3Np emUgPSByb290LT5mc19pbmZvLT5zZWN0b3JzaXplOwogCXU2NCBhY3R1YWxfZW5kOwogCXU2NCBp c2l6ZSA9IGlfc2l6ZV9yZWFkKGlub2RlKTsKIAlpbnQgcmV0ID0gMDsKQEAgLTc3Niw3ICs3NzYs NyBAQCBzdGF0aWMgbm9pbmxpbmUgaW50IGNvd19maWxlX3JhbmdlKHN0cnVjdCBpbm9kZSAqaW5v ZGUsCiAJdW5zaWduZWQgbG9uZyByYW1fc2l6ZTsKIAl1NjQgZGlza19udW1fYnl0ZXM7CiAJdTY0 IGN1cl9hbGxvY19zaXplOwotCXU2NCBibG9ja3NpemUgPSByb290LT5zZWN0b3JzaXplOworCXU2 NCBibG9ja3NpemUgPSByb290LT5mc19pbmZvLT5zZWN0b3JzaXplOwogCXN0cnVjdCBidHJmc19r ZXkgaW5zOwogCXN0cnVjdCBleHRlbnRfbWFwICplbTsKIAlzdHJ1Y3QgZXh0ZW50X21hcF90cmVl ICplbV90cmVlID0gJkJUUkZTX0koaW5vZGUpLT5leHRlbnRfdHJlZTsKQEAgLTgzMCw3ICs4MzAs NyBAQCBzdGF0aWMgbm9pbmxpbmUgaW50IGNvd19maWxlX3JhbmdlKHN0cnVjdCBpbm9kZSAqaW5v ZGUsCiAKIAkJY3VyX2FsbG9jX3NpemUgPSBkaXNrX251bV9ieXRlczsKIAkJcmV0ID0gYnRyZnNf cmVzZXJ2ZV9leHRlbnQodHJhbnMsIHJvb3QsIGN1cl9hbGxvY19zaXplLAotCQkJCQkgICByb290 LT5zZWN0b3JzaXplLCAwLCBhbGxvY19oaW50LAorCQkJCQkgICByb290LT5mc19pbmZvLT5zZWN0 b3JzaXplLCAwLCBhbGxvY19oaW50LAogCQkJCQkgICAodTY0KS0xLCAmaW5zLCAxKTsKIAkJQlVH X09OKHJldCk7CiAKQEAgLTExNTgsNyArMTE1OCw3IEBAIG5leHRfc2xvdDoKIAkJfSBlbHNlIGlm IChleHRlbnRfdHlwZSA9PSBCVFJGU19GSUxFX0VYVEVOVF9JTkxJTkUpIHsKIAkJCWV4dGVudF9l bmQgPSBmb3VuZF9rZXkub2Zmc2V0ICsKIAkJCQlidHJmc19maWxlX2V4dGVudF9pbmxpbmVfbGVu KGxlYWYsIGZpKTsKLQkJCWV4dGVudF9lbmQgPSBBTElHTihleHRlbnRfZW5kLCByb290LT5zZWN0 b3JzaXplKTsKKwkJCWV4dGVudF9lbmQgPSBBTElHTihleHRlbnRfZW5kLCByb290LT5mc19pbmZv LT5zZWN0b3JzaXplKTsKIAkJfSBlbHNlIHsKIAkJCUJVR19PTigxKTsKIAkJfQpAQCAtMzEzNyw3 ICszMTM3LDcgQEAgaW50IGJ0cmZzX3RydW5jYXRlX2lub2RlX2l0ZW1zKHN0cnVjdCBidHJmc190 cmFuc19oYW5kbGUgKnRyYW5zLAogCXU2NCBleHRlbnRfbnVtX2J5dGVzID0gMDsKIAl1NjQgZXh0 ZW50X29mZnNldCA9IDA7CiAJdTY0IGl0ZW1fZW5kID0gMDsKLQl1NjQgbWFzayA9IHJvb3QtPnNl Y3RvcnNpemUgLSAxOworCXU2NCBtYXNrID0gcm9vdC0+ZnNfaW5mby0+c2VjdG9yc2l6ZSAtIDE7 CiAJdTMyIGZvdW5kX3R5cGUgPSAodTgpLTE7CiAJaW50IGZvdW5kX2V4dGVudDsKIAlpbnQgZGVs X2l0ZW07CkBAIC0zMjQyLDkgKzMyNDIsOSBAQCBzZWFyY2hfYWdhaW46CiAJCQkJdTY0IG9yaWdf bnVtX2J5dGVzID0KIAkJCQkJYnRyZnNfZmlsZV9leHRlbnRfbnVtX2J5dGVzKGxlYWYsIGZpKTsK IAkJCQlleHRlbnRfbnVtX2J5dGVzID0gbmV3X3NpemUgLQotCQkJCQlmb3VuZF9rZXkub2Zmc2V0 ICsgcm9vdC0+c2VjdG9yc2l6ZSAtIDE7CisJCQkJCWZvdW5kX2tleS5vZmZzZXQgKyByb290LT5m c19pbmZvLT5zZWN0b3JzaXplIC0gMTsKIAkJCQlleHRlbnRfbnVtX2J5dGVzID0gZXh0ZW50X251 bV9ieXRlcyAmCi0JCQkJCX4oKHU2NClyb290LT5zZWN0b3JzaXplIC0gMSk7CisJCQkJCX4oKHU2 NClyb290LT5mc19pbmZvLT5zZWN0b3JzaXplIC0gMSk7CiAJCQkJYnRyZnNfc2V0X2ZpbGVfZXh0 ZW50X251bV9ieXRlcyhsZWFmLCBmaSwKIAkJCQkJCQkgZXh0ZW50X251bV9ieXRlcyk7CiAJCQkJ bnVtX2RlYyA9IChvcmlnX251bV9ieXRlcyAtCkBAIC0zMzY0LDcgKzMzNjQsNyBAQCBzdGF0aWMg aW50IGJ0cmZzX3RydW5jYXRlX3BhZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxv ZmZfdCBmcm9tKQogCXN0cnVjdCBidHJmc19vcmRlcmVkX2V4dGVudCAqb3JkZXJlZDsKIAlzdHJ1 Y3QgZXh0ZW50X3N0YXRlICpjYWNoZWRfc3RhdGUgPSBOVUxMOwogCWNoYXIgKmthZGRyOwotCXUz MiBibG9ja3NpemUgPSByb290LT5zZWN0b3JzaXplOworCXUzMiBibG9ja3NpemUgPSByb290LT5m c19pbmZvLT5zZWN0b3JzaXplOwogCXBnb2ZmX3QgaW5kZXggPSBmcm9tID4+IFBBR0VfQ0FDSEVf U0hJRlQ7CiAJdW5zaWduZWQgb2Zmc2V0ID0gZnJvbSAmIChQQUdFX0NBQ0hFX1NJWkUtMSk7CiAJ c3RydWN0IHBhZ2UgKnBhZ2U7CkBAIC0zNDY1LDcgKzM0NjUsNyBAQCBpbnQgYnRyZnNfY29udF9l eHBhbmQoc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IG9sZHNpemUsIGxvZmZfdCBzaXplKQog CXN0cnVjdCBleHRlbnRfaW9fdHJlZSAqaW9fdHJlZSA9ICZCVFJGU19JKGlub2RlKS0+aW9fdHJl ZTsKIAlzdHJ1Y3QgZXh0ZW50X21hcCAqZW0gPSBOVUxMOwogCXN0cnVjdCBleHRlbnRfc3RhdGUg KmNhY2hlZF9zdGF0ZSA9IE5VTEw7Ci0JdTY0IG1hc2sgPSByb290LT5zZWN0b3JzaXplIC0gMTsK Kwl1NjQgbWFzayA9IHJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemUgLSAxOwogCXU2NCBob2xlX3N0 YXJ0ID0gKG9sZHNpemUgKyBtYXNrKSAmIH5tYXNrOwogCXU2NCBibG9ja19lbmQgPSAoc2l6ZSAr IG1hc2spICYgfm1hc2s7CiAJdTY0IGxhc3RfYnl0ZTsKQEAgLTUwMTQsOCArNTAxNCw4IEBAIGFn YWluOgogCX0gZWxzZSBpZiAoZm91bmRfdHlwZSA9PSBCVFJGU19GSUxFX0VYVEVOVF9JTkxJTkUp IHsKIAkJc2l6ZV90IHNpemU7CiAJCXNpemUgPSBidHJmc19maWxlX2V4dGVudF9pbmxpbmVfbGVu KGxlYWYsIGl0ZW0pOwotCQlleHRlbnRfZW5kID0gKGV4dGVudF9zdGFydCArIHNpemUgKyByb290 LT5zZWN0b3JzaXplIC0gMSkgJgotCQkJfigodTY0KXJvb3QtPnNlY3RvcnNpemUgLSAxKTsKKwkJ ZXh0ZW50X2VuZCA9IChleHRlbnRfc3RhcnQgKyBzaXplICsgcm9vdC0+ZnNfaW5mby0+c2VjdG9y c2l6ZSAtIDEpICYKKwkJCX4oKHU2NClyb290LT5mc19pbmZvLT5zZWN0b3JzaXplIC0gMSk7CiAJ fQogCiAJaWYgKHN0YXJ0ID49IGV4dGVudF9lbmQpIHsKQEAgLTUwODUsOCArNTA4NSw4IEBAIGFn YWluOgogCQljb3B5X3NpemUgPSBtaW5fdCh1NjQsIFBBR0VfQ0FDSEVfU0laRSAtIHBnX29mZnNl dCwKIAkJCQlzaXplIC0gZXh0ZW50X29mZnNldCk7CiAJCWVtLT5zdGFydCA9IGV4dGVudF9zdGFy dCArIGV4dGVudF9vZmZzZXQ7Ci0JCWVtLT5sZW4gPSAoY29weV9zaXplICsgcm9vdC0+c2VjdG9y c2l6ZSAtIDEpICYKLQkJCX4oKHU2NClyb290LT5zZWN0b3JzaXplIC0gMSk7CisJCWVtLT5sZW4g PSAoY29weV9zaXplICsgcm9vdC0+ZnNfaW5mby0+c2VjdG9yc2l6ZSAtIDEpICYKKwkJCX4oKHU2 NClyb290LT5mc19pbmZvLT5zZWN0b3JzaXplIC0gMSk7CiAJCWVtLT5vcmlnX3N0YXJ0ID0gRVhU RU5UX01BUF9JTkxJTkU7CiAJCWlmIChjb21wcmVzc190eXBlKSB7CiAJCQlzZXRfYml0KEVYVEVO VF9GTEFHX0NPTVBSRVNTRUQsICZlbS0+ZmxhZ3MpOwpAQCAtNTE4MSw3ICs1MTgxLDcgQEAgaW5z ZXJ0OgogCQkJaWYgKGV4aXN0aW5nKSB7CiAJCQkJZXJyID0gbWVyZ2VfZXh0ZW50X21hcHBpbmco ZW1fdHJlZSwgZXhpc3RpbmcsCiAJCQkJCQkJICAgZW0sIHN0YXJ0LAotCQkJCQkJCSAgIHJvb3Qt PnNlY3RvcnNpemUpOworCQkJCQkJCSAgIHJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemUpOwogCQkJ CWZyZWVfZXh0ZW50X21hcChleGlzdGluZyk7CiAJCQkJaWYgKGVycikgewogCQkJCQlmcmVlX2V4 dGVudF9tYXAoZW0pOwpAQCAtNTM3NSw3ICs1Mzc1LDcgQEAgc3RhdGljIHN0cnVjdCBleHRlbnRf bWFwICpidHJmc19uZXdfZXh0ZW50X2RpcmVjdChzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCXRyYW5z LT5ibG9ja19yc3YgPSAmcm9vdC0+ZnNfaW5mby0+ZGVsYWxsb2NfYmxvY2tfcnN2OwogCiAJYWxs b2NfaGludCA9IGdldF9leHRlbnRfYWxsb2NhdGlvbl9oaW50KGlub2RlLCBzdGFydCwgbGVuKTsK LQlyZXQgPSBidHJmc19yZXNlcnZlX2V4dGVudCh0cmFucywgcm9vdCwgbGVuLCByb290LT5zZWN0 b3JzaXplLCAwLAorCXJldCA9IGJ0cmZzX3Jlc2VydmVfZXh0ZW50KHRyYW5zLCByb290LCBsZW4s IHJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemUsIDAsCiAJCQkJICAgYWxsb2NfaGludCwgKHU2NCkt MSwgJmlucywgMSk7CiAJaWYgKHJldCkgewogCQllbSA9IEVSUl9QVFIocmV0KTsKQEAgLTU1NjQs NyArNTU2NCw3IEBAIHN0YXRpYyBpbnQgYnRyZnNfZ2V0X2Jsb2Nrc19kaXJlY3Qoc3RydWN0IGlu b2RlICppbm9kZSwgc2VjdG9yX3QgaWJsb2NrLAogCQlmcmVlX2V4dGVudF9tYXAoZW0pOwogCQkv KiBESU8gd2lsbCBkbyBvbmUgaG9sZSBhdCBhIHRpbWUsIHNvIGp1c3QgdW5sb2NrIGEgc2VjdG9y ICovCiAJCXVubG9ja19leHRlbnQoJkJUUkZTX0koaW5vZGUpLT5pb190cmVlLCBzdGFydCwKLQkJ CSAgICAgIHN0YXJ0ICsgcm9vdC0+c2VjdG9yc2l6ZSAtIDEsIEdGUF9OT0ZTKTsKKwkJCSAgICAg IHN0YXJ0ICsgcm9vdC0+ZnNfaW5mby0+c2VjdG9yc2l6ZSAtIDEsIEdGUF9OT0ZTKTsKIAkJcmV0 dXJuIDA7CiAJfQogCkBAIC02MTA5LDcgKzYxMDksNyBAQCBzdGF0aWMgc3NpemVfdCBjaGVja19k aXJlY3RfSU8oc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QsIGludCBydywgc3RydWN0IGtpb2NiICpp bwogCWludCBpOwogCXNpemVfdCBzaXplOwogCXVuc2lnbmVkIGxvbmcgYWRkcjsKLQl1bnNpZ25l ZCBibG9ja3NpemVfbWFzayA9IHJvb3QtPnNlY3RvcnNpemUgLSAxOworCXVuc2lnbmVkIGJsb2Nr c2l6ZV9tYXNrID0gcm9vdC0+ZnNfaW5mby0+c2VjdG9yc2l6ZSAtIDE7CiAJc3NpemVfdCByZXR2 YWwgPSAtRUlOVkFMOwogCWxvZmZfdCBlbmQgPSBvZmZzZXQ7CiAKQEAgLTY0OTUsNyArNjQ5NSw3 IEBAIHN0YXRpYyBpbnQgYnRyZnNfdHJ1bmNhdGUoc3RydWN0IGlub2RlICppbm9kZSkKIAlpbnQg ZXJyID0gMDsKIAlzdHJ1Y3QgYnRyZnNfdHJhbnNfaGFuZGxlICp0cmFuczsKIAl1bnNpZ25lZCBs b25nIG5yOwotCXU2NCBtYXNrID0gcm9vdC0+c2VjdG9yc2l6ZSAtIDE7CisJdTY0IG1hc2sgPSBy b290LT5mc19pbmZvLT5zZWN0b3JzaXplIC0gMTsKIAogCXJldCA9IGJ0cmZzX3RydW5jYXRlX3Bh Z2UoaW5vZGUtPmlfbWFwcGluZywgaW5vZGUtPmlfc2l6ZSk7CiAJaWYgKHJldCkKZGlmZiAtLWdp dCBhL2ZzL2J0cmZzL2lvY3RsLmMgYi9mcy9idHJmcy9pb2N0bC5jCmluZGV4IDJiYjA4ODYuLmRm YTNhMzMgMTAwNjQ0Ci0tLSBhL2ZzL2J0cmZzL2lvY3RsLmMKKysrIGIvZnMvYnRyZnMvaW9jdGwu YwpAQCAtMzUxLDcgKzM1MSw3IEBAIHN0YXRpYyBub2lubGluZSBpbnQgY3JlYXRlX3N1YnZvbChz dHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwKIAkJcmV0dXJuIFBUUl9FUlIodHJhbnMpOwogCX0KIAot CWxlYWYgPSBidHJmc19hbGxvY19mcmVlX2Jsb2NrKHRyYW5zLCByb290LCByb290LT5sZWFmc2l6 ZSwKKwlsZWFmID0gYnRyZnNfYWxsb2NfZnJlZV9ibG9jayh0cmFucywgcm9vdCwgcm9vdC0+ZnNf aW5mby0+bGVhZnNpemUsCiAJCQkJICAgICAgMCwgb2JqZWN0aWQsIE5VTEwsIDAsIDAsIDApOwog CWlmIChJU19FUlIobGVhZikpIHsKIAkJcmV0ID0gUFRSX0VSUihsZWFmKTsKQEAgLTM3Nyw3ICsz NzcsNyBAQCBzdGF0aWMgbm9pbmxpbmUgaW50IGNyZWF0ZV9zdWJ2b2woc3RydWN0IGJ0cmZzX3Jv b3QgKnJvb3QsCiAJaW5vZGVfaXRlbS0+Z2VuZXJhdGlvbiA9IGNwdV90b19sZTY0KDEpOwogCWlu b2RlX2l0ZW0tPnNpemUgPSBjcHVfdG9fbGU2NCgzKTsKIAlpbm9kZV9pdGVtLT5ubGluayA9IGNw dV90b19sZTMyKDEpOwotCWlub2RlX2l0ZW0tPm5ieXRlcyA9IGNwdV90b19sZTY0KHJvb3QtPmxl YWZzaXplKTsKKwlpbm9kZV9pdGVtLT5uYnl0ZXMgPSBjcHVfdG9fbGU2NChyb290LT5mc19pbmZv LT5sZWFmc2l6ZSk7CiAJaW5vZGVfaXRlbS0+bW9kZSA9IGNwdV90b19sZTMyKFNfSUZESVIgfCAw NzU1KTsKIAogCXJvb3RfaXRlbS5mbGFncyA9IDA7CkBAIC0xMjM2LDggKzEyMzYsOCBAQCBzdGF0 aWMgbm9pbmxpbmUgaW50IGJ0cmZzX2lvY3RsX3Jlc2l6ZShzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9v dCwKIAkJZ290byBvdXRfdW5sb2NrOwogCX0KIAotCWRvX2RpdihuZXdfc2l6ZSwgcm9vdC0+c2Vj dG9yc2l6ZSk7Ci0JbmV3X3NpemUgKj0gcm9vdC0+c2VjdG9yc2l6ZTsKKwlkb19kaXYobmV3X3Np emUsIHJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemUpOworCW5ld19zaXplICo9IHJvb3QtPmZzX2lu Zm8tPnNlY3RvcnNpemU7CiAKIAlwcmludGsoS0VSTl9JTkZPICJuZXcgc2l6ZSBmb3IgJXMgaXMg JWxsdVxuIiwKIAkJZGV2aWNlLT5uYW1lLCAodW5zaWduZWQgbG9uZyBsb25nKW5ld19zaXplKTsK ZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL29yZGVyZWQtZGF0YS5jIGIvZnMvYnRyZnMvb3JkZXJlZC1k YXRhLmMKaW5kZXggYTFjOTQwNC4uNTc0MjQ4MSAxMDA2NDQKLS0tIGEvZnMvYnRyZnMvb3JkZXJl ZC1kYXRhLmMKKysrIGIvZnMvYnRyZnMvb3JkZXJlZC1kYXRhLmMKQEAgLTc4MCw3ICs3ODAsNyBA QCBpbnQgYnRyZnNfb3JkZXJlZF91cGRhdGVfaV9zaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHU2 NCBvZmZzZXQsCiAJaWYgKG9yZGVyZWQpCiAJCW9mZnNldCA9IGVudHJ5X2VuZChvcmRlcmVkKTsK IAllbHNlCi0JCW9mZnNldCA9IEFMSUdOKG9mZnNldCwgQlRSRlNfSShpbm9kZSktPnJvb3QtPnNl Y3RvcnNpemUpOworCQlvZmZzZXQgPSBBTElHTihvZmZzZXQsIEJUUkZTX0koaW5vZGUpLT5yb290 LT5mc19pbmZvLT5zZWN0b3JzaXplKTsKIAogCXNwaW5fbG9jaygmdHJlZS0+bG9jayk7CiAJZGlz a19pX3NpemUgPSBCVFJGU19JKGlub2RlKS0+ZGlza19pX3NpemU7CkBAIC05MDgsNyArOTA4LDcg QEAgaW50IGJ0cmZzX2ZpbmRfb3JkZXJlZF9zdW0oc3RydWN0IGlub2RlICppbm9kZSwgdTY0IG9m ZnNldCwgdTY0IGRpc2tfYnl0ZW5yLAogCXN0cnVjdCBidHJmc19vcmRlcmVkX2lub2RlX3RyZWUg KnRyZWUgPSAmQlRSRlNfSShpbm9kZSktPm9yZGVyZWRfdHJlZTsKIAl1bnNpZ25lZCBsb25nIG51 bV9zZWN0b3JzOwogCXVuc2lnbmVkIGxvbmcgaTsKLQl1MzIgc2VjdG9yc2l6ZSA9IEJUUkZTX0ko aW5vZGUpLT5yb290LT5zZWN0b3JzaXplOworCXUzMiBzZWN0b3JzaXplID0gQlRSRlNfSShpbm9k ZSktPnJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemU7CiAJaW50IHJldCA9IDE7CiAKIAlvcmRlcmVk ID0gYnRyZnNfbG9va3VwX29yZGVyZWRfZXh0ZW50KGlub2RlLCBvZmZzZXQpOwpkaWZmIC0tZ2l0 IGEvZnMvYnRyZnMvb3JkZXJlZC1kYXRhLmggYi9mcy9idHJmcy9vcmRlcmVkLWRhdGEuaAppbmRl eCBmZjFmNjlhLi4zZjE4ZmRiIDEwMDY0NAotLS0gYS9mcy9idHJmcy9vcmRlcmVkLWRhdGEuaAor KysgYi9mcy9idHJmcy9vcmRlcmVkLWRhdGEuaApAQCAtMTIzLDggKzEyMyw4IEBAIHN0cnVjdCBi dHJmc19vcmRlcmVkX2V4dGVudCB7CiBzdGF0aWMgaW5saW5lIGludCBidHJmc19vcmRlcmVkX3N1 bV9zaXplKHN0cnVjdCBidHJmc19yb290ICpyb290LAogCQkJCQkgdW5zaWduZWQgbG9uZyBieXRl cykKIHsKLQl1bnNpZ25lZCBsb25nIG51bV9zZWN0b3JzID0gKGJ5dGVzICsgcm9vdC0+c2VjdG9y c2l6ZSAtIDEpIC8KLQkJcm9vdC0+c2VjdG9yc2l6ZTsKKwl1bnNpZ25lZCBsb25nIG51bV9zZWN0 b3JzID0gKGJ5dGVzICsgcm9vdC0+ZnNfaW5mby0+c2VjdG9yc2l6ZSAtIDEpIC8KKwkJcm9vdC0+ ZnNfaW5mby0+c2VjdG9yc2l6ZTsKIAludW1fc2VjdG9ycysrOwogCXJldHVybiBzaXplb2Yoc3Ry dWN0IGJ0cmZzX29yZGVyZWRfc3VtKSArCiAJCW51bV9zZWN0b3JzICogc2l6ZW9mKHN0cnVjdCBi dHJmc19zZWN0b3Jfc3VtKTsKZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL3JlbG9jYXRpb24uYyBiL2Zz L2J0cmZzL3JlbG9jYXRpb24uYwppbmRleCA1OWJiMTc2Li4wZDgxZjA4IDEwMDY0NAotLS0gYS9m cy9idHJmcy9yZWxvY2F0aW9uLmMKKysrIGIvZnMvYnRyZnMvcmVsb2NhdGlvbi5jCkBAIC0xNTcx LDggKzE1NzEsOCBAQCBpbnQgcmVwbGFjZV9maWxlX2V4dGVudHMoc3RydWN0IGJ0cmZzX3RyYW5z X2hhbmRsZSAqdHJhbnMsCiAJCQkJZW5kID0ga2V5Lm9mZnNldCArCiAJCQkJICAgICAgYnRyZnNf ZmlsZV9leHRlbnRfbnVtX2J5dGVzKGxlYWYsIGZpKTsKIAkJCQlXQVJOX09OKCFJU19BTElHTkVE KGtleS5vZmZzZXQsCi0JCQkJCQkgICAgcm9vdC0+c2VjdG9yc2l6ZSkpOwotCQkJCVdBUk5fT04o IUlTX0FMSUdORUQoZW5kLCByb290LT5zZWN0b3JzaXplKSk7CisJCQkJCQkgICAgcm9vdC0+ZnNf aW5mby0+c2VjdG9yc2l6ZSkpOworCQkJCVdBUk5fT04oIUlTX0FMSUdORUQoZW5kLCByb290LT5m c19pbmZvLT5zZWN0b3JzaXplKSk7CiAJCQkJZW5kLS07CiAJCQkJcmV0ID0gdHJ5X2xvY2tfZXh0 ZW50KCZCVFJGU19JKGlub2RlKS0+aW9fdHJlZSwKIAkJCQkJCSAgICAgIGtleS5vZmZzZXQsIGVu ZCwKQEAgLTE5MjksNyArMTkyOSw3IEBAIHN0YXRpYyBpbnQgaW52YWxpZGF0ZV9leHRlbnRfY2Fj aGUoc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QsCiAJCQkJc3RhcnQgPSAwOwogCQkJZWxzZSB7CiAJ CQkJc3RhcnQgPSBtaW5fa2V5LT5vZmZzZXQ7Ci0JCQkJV0FSTl9PTighSVNfQUxJR05FRChzdGFy dCwgcm9vdC0+c2VjdG9yc2l6ZSkpOworCQkJCVdBUk5fT04oIUlTX0FMSUdORUQoc3RhcnQsIHJv b3QtPmZzX2luZm8tPnNlY3RvcnNpemUpKTsKIAkJCX0KIAkJfSBlbHNlIHsKIAkJCXN0YXJ0ID0g MDsKQEAgLTE5NDQsNyArMTk0NCw3IEBAIHN0YXRpYyBpbnQgaW52YWxpZGF0ZV9leHRlbnRfY2Fj aGUoc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QsCiAJCQkJaWYgKG1heF9rZXktPm9mZnNldCA9PSAw KQogCQkJCQljb250aW51ZTsKIAkJCQllbmQgPSBtYXhfa2V5LT5vZmZzZXQ7Ci0JCQkJV0FSTl9P TighSVNfQUxJR05FRChlbmQsIHJvb3QtPnNlY3RvcnNpemUpKTsKKwkJCQlXQVJOX09OKCFJU19B TElHTkVEKGVuZCwgcm9vdC0+ZnNfaW5mby0+c2VjdG9yc2l6ZSkpOwogCQkJCWVuZC0tOwogCQkJ fQogCQl9IGVsc2UgewpAQCAtMjAzMyw3ICsyMDMzLDcgQEAgc3RhdGljIG5vaW5saW5lX2Zvcl9z dGFjayBpbnQgbWVyZ2VfcmVsb2Nfcm9vdChzdHJ1Y3QgcmVsb2NfY29udHJvbCAqcmMsCiAJCWJ0 cmZzX3VubG9ja191cF9zYWZlKHBhdGgsIDApOwogCX0KIAotCW1pbl9yZXNlcnZlZCA9IHJvb3Qt Pm5vZGVzaXplICogKEJUUkZTX01BWF9MRVZFTCAtIDEpICogMjsKKwltaW5fcmVzZXJ2ZWQgPSBy b290LT5mc19pbmZvLT5ub2Rlc2l6ZSAqIChCVFJGU19NQVhfTEVWRUwgLSAxKSAqIDI7CiAJbWVt c2V0KCZuZXh0X2tleSwgMCwgc2l6ZW9mKG5leHRfa2V5KSk7CiAKIAl3aGlsZSAoMSkgewpAQCAt MjE0NSw3ICsyMTQ1LDcgQEAgaW50IHByZXBhcmVfdG9fbWVyZ2Uoc3RydWN0IHJlbG9jX2NvbnRy b2wgKnJjLCBpbnQgZXJyKQogCWludCByZXQ7CiAKIAltdXRleF9sb2NrKCZyb290LT5mc19pbmZv LT5yZWxvY19tdXRleCk7Ci0JcmMtPm1lcmdpbmdfcnN2X3NpemUgKz0gcm9vdC0+bm9kZXNpemUg KiAoQlRSRlNfTUFYX0xFVkVMIC0gMSkgKiAyOworCXJjLT5tZXJnaW5nX3Jzdl9zaXplICs9IHJv b3QtPmZzX2luZm8tPm5vZGVzaXplICogKEJUUkZTX01BWF9MRVZFTCAtIDEpICogMjsKIAlyYy0+ bWVyZ2luZ19yc3Zfc2l6ZSArPSByYy0+bm9kZXNfcmVsb2NhdGVkICogMjsKIAltdXRleF91bmxv Y2soJnJvb3QtPmZzX2luZm8tPnJlbG9jX211dGV4KTsKIApAQCAtMzY0Niw3ICszNjQ2LDcgQEAg aW50IHByZXBhcmVfdG9fcmVsb2NhdGUoc3RydWN0IHJlbG9jX2NvbnRyb2wgKnJjKQogCSAqIGlz IG5vIHJlc2VydmF0aW9uIGluIHRyYW5zYWN0aW9uIGhhbmRsZS4KIAkgKi8KIAlyZXQgPSBidHJm c19ibG9ja19yc3ZfYWRkKE5VTEwsIHJjLT5leHRlbnRfcm9vdCwgcmMtPmJsb2NrX3JzdiwKLQkJ CQkgIHJjLT5leHRlbnRfcm9vdC0+bm9kZXNpemUgKiAyNTYpOworCQkJCSAgcmMtPmV4dGVudF9y b290LT5mc19pbmZvLT5ub2Rlc2l6ZSAqIDI1Nik7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsK IApAQCAtNDI3Nyw3ICs0Mjc3LDcgQEAgaW50IGJ0cmZzX3JlbG9jX2Nsb25lX2NzdW1zKHN0cnVj dCBpbm9kZSAqaW5vZGUsIHU2NCBmaWxlX3BvcywgdTY0IGxlbikKIAkJd2hpbGUgKG9mZnNldCA8 IHN1bXMtPmxlbikgewogCQkJc2VjdG9yX3N1bS0+Ynl0ZW5yICs9IG9yZGVyZWQtPnN0YXJ0IC0g ZGlza19ieXRlbnI7CiAJCQlzZWN0b3Jfc3VtKys7Ci0JCQlvZmZzZXQgKz0gcm9vdC0+c2VjdG9y c2l6ZTsKKwkJCW9mZnNldCArPSByb290LT5mc19pbmZvLT5zZWN0b3JzaXplOwogCQl9CiAKIAkJ YnRyZnNfYWRkX29yZGVyZWRfc3VtKGlub2RlLCBvcmRlcmVkLCBzdW1zKTsKZGlmZiAtLWdpdCBh L2ZzL2J0cmZzL3NjcnViLmMgYi9mcy9idHJmcy9zY3J1Yi5jCmluZGV4IGE4ZDAzZDUuLjIzZDQ0 YTAgMTAwNjQ0Ci0tLSBhL2ZzL2J0cmZzL3NjcnViLmMKKysrIGIvZnMvYnRyZnMvc2NydWIuYwpA QCAtNjY2LDcgKzY2Niw3IEBAIHN0YXRpYyBpbnQgc2NydWJfZmluZF9jc3VtKHN0cnVjdCBzY3J1 Yl9kZXYgKnNkZXYsIHU2NCBsb2dpY2FsLCB1NjQgbGVuLAogCWludCByZXQgPSAwOwogCXVuc2ln bmVkIGxvbmcgaTsKIAl1bnNpZ25lZCBsb25nIG51bV9zZWN0b3JzOwotCXUzMiBzZWN0b3JzaXpl ID0gc2Rldi0+ZGV2LT5kZXZfcm9vdC0+c2VjdG9yc2l6ZTsKKwl1MzIgc2VjdG9yc2l6ZSA9IHNk ZXYtPmRldi0+ZGV2X3Jvb3QtPmZzX2luZm8tPnNlY3RvcnNpemU7CiAKIAl3aGlsZSAoIWxpc3Rf ZW1wdHkoJnNkZXYtPmNzdW1fbGlzdCkpIHsKIAkJc3VtID0gbGlzdF9maXJzdF9lbnRyeSgmc2Rl di0+Y3N1bV9saXN0LApAQCAtMTE5OCw5ICsxMTk4LDkgQEAgaW50IGJ0cmZzX3NjcnViX2Rldihz dHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwgdTY0IGRldmlkLCB1NjQgc3RhcnQsIHU2NCBlbmQsCiAJ LyoKIAkgKiBjaGVjayBzb21lIGFzc3VtcHRpb25zCiAJICovCi0JaWYgKHJvb3QtPnNlY3RvcnNp emUgIT0gUEFHRV9TSVpFIHx8Ci0JICAgIHJvb3QtPnNlY3RvcnNpemUgIT0gcm9vdC0+bGVhZnNp emUgfHwKLQkgICAgcm9vdC0+c2VjdG9yc2l6ZSAhPSByb290LT5ub2Rlc2l6ZSkgeworCWlmIChy b290LT5mc19pbmZvLT5zZWN0b3JzaXplICE9IFBBR0VfU0laRSB8fAorCSAgICByb290LT5mc19p bmZvLT5zZWN0b3JzaXplICE9IHJvb3QtPmZzX2luZm8tPmxlYWZzaXplIHx8CisJICAgIHJvb3Qt PmZzX2luZm8tPnNlY3RvcnNpemUgIT0gcm9vdC0+ZnNfaW5mby0+bm9kZXNpemUpIHsKIAkJcHJp bnRrKEtFUk5fRVJSICJidHJmc19zY3J1Yjogc2l6ZSBhc3N1bXB0aW9ucyBmYWlsXG4iKTsKIAkJ cmV0dXJuIC1FSU5WQUw7CiAJfQpkaWZmIC0tZ2l0IGEvZnMvYnRyZnMvc3VwZXIuYyBiL2ZzL2J0 cmZzL3N1cGVyLmMKaW5kZXggMTU2MzRkNC4uNGEwNzk2NiAxMDA2NDQKLS0tIGEvZnMvYnRyZnMv c3VwZXIuYworKysgYi9mcy9idHJmcy9zdXBlci5jCkBAIC0zMjAsNyArMzIwLDcgQEAgaW50IGJ0 cmZzX3BhcnNlX29wdGlvbnMoc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QsIGNoYXIgKm9wdGlvbnMp CiAJCQkJaWYgKGluZm8tPm1heF9pbmxpbmUpIHsKIAkJCQkJaW5mby0+bWF4X2lubGluZSA9IG1h eF90KHU2NCwKIAkJCQkJCWluZm8tPm1heF9pbmxpbmUsCi0JCQkJCQlyb290LT5zZWN0b3JzaXpl KTsKKwkJCQkJCXJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemUpOwogCQkJCX0KIAkJCQlwcmludGso S0VSTl9JTkZPICJidHJmczogbWF4X2lubGluZSBhdCAlbGx1XG4iLAogCQkJCQkodW5zaWduZWQg bG9uZyBsb25nKWluZm8tPm1heF9pbmxpbmUpOwpkaWZmIC0tZ2l0IGEvZnMvYnRyZnMvdHJlZS1s b2cuYyBiL2ZzL2J0cmZzL3RyZWUtbG9nLmMKaW5kZXggYmFiZWU2NS4uZDY5YmFlNCAxMDA2NDQK LS0tIGEvZnMvYnRyZnMvdHJlZS1sb2cuYworKysgYi9mcy9idHJmcy90cmVlLWxvZy5jCkBAIC00 ODMsNyArNDgzLDcgQEAgc3RhdGljIG5vaW5saW5lIGludCByZXBsYXlfb25lX2V4dGVudChzdHJ1 Y3QgYnRyZnNfdHJhbnNfaGFuZGxlICp0cmFucywKIAkJCQkgICAgICBzdHJ1Y3QgYnRyZnNfa2V5 ICprZXkpCiB7CiAJaW50IGZvdW5kX3R5cGU7Ci0JdTY0IG1hc2sgPSByb290LT5zZWN0b3JzaXpl IC0gMTsKKwl1NjQgbWFzayA9IHJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemUgLSAxOwogCXU2NCBl eHRlbnRfZW5kOwogCXU2NCBhbGxvY19oaW50OwogCXU2NCBzdGFydCA9IGtleS0+b2Zmc2V0Owpk aWZmIC0tZ2l0IGEvZnMvYnRyZnMvdm9sdW1lcy5jIGIvZnMvYnRyZnMvdm9sdW1lcy5jCmluZGV4 IDNjNWYyZmMuLjAzZWY2ZDAgMTAwNjQ0Ci0tLSBhL2ZzL2J0cmZzL3ZvbHVtZXMuYworKysgYi9m cy9idHJmcy92b2x1bWVzLmMKQEAgLTE2MzQsOSArMTYzNCw5IEBAIGludCBidHJmc19pbml0X25l d19kZXZpY2Uoc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QsIGNoYXIgKmRldmljZV9wYXRoKQogCWdl bmVyYXRlX3JhbmRvbV91dWlkKGRldmljZS0+dXVpZCk7CiAJc3Bpbl9sb2NrX2luaXQoJmRldmlj ZS0+aW9fbG9jayk7CiAJZGV2aWNlLT5nZW5lcmF0aW9uID0gdHJhbnMtPnRyYW5zaWQ7Ci0JZGV2 aWNlLT5pb193aWR0aCA9IHJvb3QtPnNlY3RvcnNpemU7Ci0JZGV2aWNlLT5pb19hbGlnbiA9IHJv b3QtPnNlY3RvcnNpemU7Ci0JZGV2aWNlLT5zZWN0b3Jfc2l6ZSA9IHJvb3QtPnNlY3RvcnNpemU7 CisJZGV2aWNlLT5pb193aWR0aCA9IHJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemU7CisJZGV2aWNl LT5pb19hbGlnbiA9IHJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemU7CisJZGV2aWNlLT5zZWN0b3Jf c2l6ZSA9IHJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemU7CiAJZGV2aWNlLT50b3RhbF9ieXRlcyA9 IGlfc2l6ZV9yZWFkKGJkZXYtPmJkX2lub2RlKTsKIAlkZXZpY2UtPmRpc2tfdG90YWxfYnl0ZXMg PSBkZXZpY2UtPnRvdGFsX2J5dGVzOwogCWRldmljZS0+ZGV2X3Jvb3QgPSByb290LT5mc19pbmZv LT5kZXZfcm9vdDsKQEAgLTI1MDAsNyArMjUwMCw3IEBAIHN0YXRpYyBpbnQgX19idHJmc19hbGxv Y19jaHVuayhzdHJ1Y3QgYnRyZnNfdHJhbnNfaGFuZGxlICp0cmFucywKIAkJCQkJCSAgIGogKiBz dHJpcGVfc2l6ZTsKIAkJfQogCX0KLQltYXAtPnNlY3Rvcl9zaXplID0gZXh0ZW50X3Jvb3QtPnNl Y3RvcnNpemU7CisJbWFwLT5zZWN0b3Jfc2l6ZSA9IGV4dGVudF9yb290LT5mc19pbmZvLT5zZWN0 b3JzaXplOwogCW1hcC0+c3RyaXBlX2xlbiA9IEJUUkZTX1NUUklQRV9MRU47CiAJbWFwLT5pb19h bGlnbiA9IEJUUkZTX1NUUklQRV9MRU47CiAJbWFwLT5pb193aWR0aCA9IEJUUkZTX1NUUklQRV9M RU47CkBAIC0yNjA5LDcgKzI2MDksNyBAQCBzdGF0aWMgaW50IF9fZmluaXNoX2NodW5rX2FsbG9j KHN0cnVjdCBidHJmc190cmFuc19oYW5kbGUgKnRyYW5zLAogCWJ0cmZzX3NldF9zdGFja19jaHVu a19udW1fc3RyaXBlcyhjaHVuaywgbWFwLT5udW1fc3RyaXBlcyk7CiAJYnRyZnNfc2V0X3N0YWNr X2NodW5rX2lvX2FsaWduKGNodW5rLCBtYXAtPnN0cmlwZV9sZW4pOwogCWJ0cmZzX3NldF9zdGFj a19jaHVua19pb193aWR0aChjaHVuaywgbWFwLT5zdHJpcGVfbGVuKTsKLQlidHJmc19zZXRfc3Rh Y2tfY2h1bmtfc2VjdG9yX3NpemUoY2h1bmssIGV4dGVudF9yb290LT5zZWN0b3JzaXplKTsKKwli dHJmc19zZXRfc3RhY2tfY2h1bmtfc2VjdG9yX3NpemUoY2h1bmssIGV4dGVudF9yb290LT5mc19p bmZvLT5zZWN0b3JzaXplKTsKIAlidHJmc19zZXRfc3RhY2tfY2h1bmtfc3ViX3N0cmlwZXMoY2h1 bmssIG1hcC0+c3ViX3N0cmlwZXMpOwogCiAJa2V5Lm9iamVjdGlkID0gQlRSRlNfRklSU1RfQ0hV TktfVFJFRV9PQkpFQ1RJRDsK --90e6ba613b581df7f504a9f16010--