From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v5,01/78] xfs: Rename xa_ elements to ail_ From: Matthew Wilcox Message-Id: <20171215220450.7899-2-willy@infradead.org> Date: Fri, 15 Dec 2017 14:03:33 -0800 To: linux-kernel@vger.kernel.org Cc: Matthew Wilcox , Ross Zwisler , David Howells , Shaohua Li , Jens Axboe , Rehas Sachdeva , Marc Zyngier , linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-nilfs@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-xfs@vger.kernel.org, linux-usb@vger.kernel.org, linux-raid@vger.kernel.org List-ID: RnJvbTogTWF0dGhldyBXaWxjb3ggPG1hd2lsY294QG1pY3Jvc29mdC5jb20+CgpUaGlzIGlzIGEg c2ltcGxlIHJlbmFtZSwgZXhjZXB0IHRoYXQgeGFfYWlsIGJlY29tZXMgYWlsX2hlYWQuCgpTaWdu ZWQtb2ZmLWJ5OiBNYXR0aGV3IFdpbGNveCA8bWF3aWxjb3hAbWljcm9zb2Z0LmNvbT4KLS0tCiBm cy94ZnMveGZzX2J1Zl9pdGVtLmMgICAgfCAgMTAgKystLQogZnMveGZzL3hmc19kcXVvdC5jICAg ICAgIHwgICA0ICstCiBmcy94ZnMveGZzX2RxdW90X2l0ZW0uYyAgfCAgMTEgKystLQogZnMveGZz L3hmc19pbm9kZV9pdGVtLmMgIHwgIDIyICsrKy0tLS0KIGZzL3hmcy94ZnNfbG9nLmMgICAgICAg ICB8ICAgNiArLQogZnMveGZzL3hmc19sb2dfcmVjb3Zlci5jIHwgIDgwICsrKysrKysrKysrKy0t LS0tLS0tLS0tLS0KIGZzL3hmcy94ZnNfdHJhbnMuYyAgICAgICB8ICAxOCArKystLS0KIGZzL3hm cy94ZnNfdHJhbnNfYWlsLmMgICB8IDE1MiArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogZnMveGZzL3hmc190cmFuc19idWYuYyAgIHwgICA0ICstCiBmcy94 ZnMveGZzX3RyYW5zX3ByaXYuaCAgfCAgNDIgKysrKysrLS0tLS0tLQogMTAgZmlsZXMgY2hhbmdl ZCwgMTc1IGluc2VydGlvbnMoKyksIDE3NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9mcy94 ZnMveGZzX2J1Zl9pdGVtLmMgYi9mcy94ZnMveGZzX2J1Zl9pdGVtLmMKaW5kZXggZTBhMGFmMDk0 NmYyLi42YzUwMzU1NDRhOTMgMTAwNjQ0Ci0tLSBhL2ZzL3hmcy94ZnNfYnVmX2l0ZW0uYworKysg Yi9mcy94ZnMveGZzX2J1Zl9pdGVtLmMKQEAgLTQ1OSw3ICs0NTksNyBAQCB4ZnNfYnVmX2l0ZW1f dW5waW4oCiAJCQlicC0+Yl9mc3ByaXYgPSBOVUxMOwogCQkJYnAtPmJfaW9kb25lID0gTlVMTDsK IAkJfSBlbHNlIHsKLQkJCXNwaW5fbG9jaygmYWlscC0+eGFfbG9jayk7CisJCQlzcGluX2xvY2so JmFpbHAtPmFpbF9sb2NrKTsKIAkJCXhmc190cmFuc19haWxfZGVsZXRlKGFpbHAsIGxpcCwgU0hV VERPV05fTE9HX0lPX0VSUk9SKTsKIAkJCXhmc19idWZfaXRlbV9yZWxzZShicCk7CiAJCQlBU1NF UlQoYnAtPmJfZnNwcml2ID09IE5VTEwpOwpAQCAtMTA1NiwxMyArMTA1NiwxMyBAQCB4ZnNfYnVm X2RvX2NhbGxiYWNrc19mYWlsKAogCXN0cnVjdCB4ZnNfbG9nX2l0ZW0JKmxpcCA9IGJwLT5iX2Zz cHJpdjsKIAlzdHJ1Y3QgeGZzX2FpbAkJKmFpbHAgPSBsaXAtPmxpX2FpbHA7CiAKLQlzcGluX2xv Y2soJmFpbHAtPnhhX2xvY2spOworCXNwaW5fbG9jaygmYWlscC0+YWlsX2xvY2spOwogCWZvciAo OyBsaXA7IGxpcCA9IG5leHQpIHsKIAkJbmV4dCA9IGxpcC0+bGlfYmlvX2xpc3Q7CiAJCWlmIChs aXAtPmxpX29wcy0+aW9wX2Vycm9yKQogCQkJbGlwLT5saV9vcHMtPmlvcF9lcnJvcihsaXAsIGJw KTsKIAl9Ci0Jc3Bpbl91bmxvY2soJmFpbHAtPnhhX2xvY2spOworCXNwaW5fdW5sb2NrKCZhaWxw LT5haWxfbG9jayk7CiB9CiAKIHN0YXRpYyBib29sCkBAIC0xMjE1LDcgKzEyMTUsNyBAQCB4ZnNf YnVmX2lvZG9uZSgKIAkgKgogCSAqIEVpdGhlciB3YXksIEFJTCBpcyB1c2VsZXNzIGlmIHdlJ3Jl IGZvcmNpbmcgYSBzaHV0ZG93bi4KIAkgKi8KLQlzcGluX2xvY2soJmFpbHAtPnhhX2xvY2spOwor CXNwaW5fbG9jaygmYWlscC0+YWlsX2xvY2spOwogCXhmc190cmFuc19haWxfZGVsZXRlKGFpbHAs IGxpcCwgU0hVVERPV05fQ09SUlVQVF9JTkNPUkUpOwogCXhmc19idWZfaXRlbV9mcmVlKEJVRl9J VEVNKGxpcCkpOwogfQpAQCAtMTIzNiw3ICsxMjM2LDcgQEAgeGZzX2J1Zl9yZXN1Ym1pdF9mYWls ZWRfYnVmZmVycygKIAkvKgogCSAqIENsZWFyIFhGU19MSV9GQUlMRUQgZmxhZyBmcm9tIGFsbCBp dGVtcyBiZWZvcmUgcmVzdWJtaXQKIAkgKgotCSAqIFhGU19MSV9GQUlMRUQgc2V0L2NsZWFyIGlz IHByb3RlY3RlZCBieSB4YV9sb2NrLCBjYWxsZXIgIHRoaXMKKwkgKiBYRlNfTElfRkFJTEVEIHNl dC9jbGVhciBpcyBwcm90ZWN0ZWQgYnkgYWlsX2xvY2ssIGNhbGxlciAgdGhpcwogCSAqIGZ1bmN0 aW9uIGFscmVhZHkgaGF2ZSBpdCBhY3F1aXJlZAogCSAqLwogCWZvciAoOyBsaXA7IGxpcCA9IG5l eHQpIHsKZGlmZiAtLWdpdCBhL2ZzL3hmcy94ZnNfZHF1b3QuYyBiL2ZzL3hmcy94ZnNfZHF1b3Qu YwppbmRleCBmMjQ4NzA4YzEwZmYuLmUyYTQ2NmRmNWRkMSAxMDA2NDQKLS0tIGEvZnMveGZzL3hm c19kcXVvdC5jCisrKyBiL2ZzL3hmcy94ZnNfZHF1b3QuYwpAQCAtOTc0LDcgKzk3NCw3IEBAIHhm c19xbV9kcWZsdXNoX2RvbmUoCiAJICAgICAobGlwLT5saV9mbGFncyAmIFhGU19MSV9GQUlMRUQp KSkgewogCiAJCS8qIHhmc190cmFuc19haWxfZGVsZXRlKCkgZHJvcHMgdGhlIEFJTCBsb2NrLiAq LwotCQlzcGluX2xvY2soJmFpbHAtPnhhX2xvY2spOworCQlzcGluX2xvY2soJmFpbHAtPmFpbF9s b2NrKTsKIAkJaWYgKGxpcC0+bGlfbHNuID09IHFpcC0+cWxpX2ZsdXNoX2xzbikgewogCQkJeGZz X3RyYW5zX2FpbF9kZWxldGUoYWlscCwgbGlwLCBTSFVURE9XTl9DT1JSVVBUX0lOQ09SRSk7CiAJ CX0gZWxzZSB7CkBAIC05ODQsNyArOTg0LDcgQEAgeGZzX3FtX2RxZmx1c2hfZG9uZSgKIAkJCSAq LwogCQkJaWYgKGxpcC0+bGlfZmxhZ3MgJiBYRlNfTElfRkFJTEVEKQogCQkJCXhmc19jbGVhcl9s aV9mYWlsZWQobGlwKTsKLQkJCXNwaW5fdW5sb2NrKCZhaWxwLT54YV9sb2NrKTsKKwkJCXNwaW5f dW5sb2NrKCZhaWxwLT5haWxfbG9jayk7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2ZzL3hmcy94 ZnNfZHF1b3RfaXRlbS5jIGIvZnMveGZzL3hmc19kcXVvdF9pdGVtLmMKaW5kZXggNjY0ZGVhMTA1 ZTc2Li42MjYzN2EyMjY2MDEgMTAwNjQ0Ci0tLSBhL2ZzL3hmcy94ZnNfZHF1b3RfaXRlbS5jCisr KyBiL2ZzL3hmcy94ZnNfZHF1b3RfaXRlbS5jCkBAIC0xNjAsOCArMTYwLDkgQEAgeGZzX2RxdW90 X2l0ZW1fZXJyb3IoCiBTVEFUSUMgdWludAogeGZzX3FtX2RxdW90X2xvZ2l0ZW1fcHVzaCgKIAlz dHJ1Y3QgeGZzX2xvZ19pdGVtCSpsaXAsCi0Jc3RydWN0IGxpc3RfaGVhZAkqYnVmZmVyX2xpc3Qp IF9fcmVsZWFzZXMoJmxpcC0+bGlfYWlscC0+eGFfbG9jaykKLQkJCQkJICAgICAgX19hY3F1aXJl cygmbGlwLT5saV9haWxwLT54YV9sb2NrKQorCXN0cnVjdCBsaXN0X2hlYWQJKmJ1ZmZlcl9saXN0 KQorCQlfX3JlbGVhc2VzKCZsaXAtPmxpX2FpbHAtPmFpbF9sb2NrKQorCQlfX2FjcXVpcmVzKCZs aXAtPmxpX2FpbHAtPmFpbF9sb2NrKQogewogCXN0cnVjdCB4ZnNfZHF1b3QJKmRxcCA9IERRVU9U X0lURU0obGlwKS0+cWxpX2RxdW90OwogCXN0cnVjdCB4ZnNfYnVmCQkqYnAgPSBsaXAtPmxpX2J1 ZjsKQEAgLTIwOCw3ICsyMDksNyBAQCB4ZnNfcW1fZHF1b3RfbG9naXRlbV9wdXNoKAogCQlnb3Rv IG91dF91bmxvY2s7CiAJfQogCi0Jc3Bpbl91bmxvY2soJmxpcC0+bGlfYWlscC0+eGFfbG9jayk7 CisJc3Bpbl91bmxvY2soJmxpcC0+bGlfYWlscC0+YWlsX2xvY2spOwogCiAJZXJyb3IgPSB4ZnNf cW1fZHFmbHVzaChkcXAsICZicCk7CiAJaWYgKGVycm9yKSB7CkBAIC0yMjAsNyArMjIxLDcgQEAg eGZzX3FtX2RxdW90X2xvZ2l0ZW1fcHVzaCgKIAkJeGZzX2J1Zl9yZWxzZShicCk7CiAJfQogCi0J c3Bpbl9sb2NrKCZsaXAtPmxpX2FpbHAtPnhhX2xvY2spOworCXNwaW5fbG9jaygmbGlwLT5saV9h aWxwLT5haWxfbG9jayk7CiBvdXRfdW5sb2NrOgogCXhmc19kcXVubG9jayhkcXApOwogCXJldHVy biBydmFsOwpAQCAtNDAzLDcgKzQwNCw3IEBAIHhmc19xbV9xb2ZmZW5kX2xvZ2l0ZW1fY29tbWl0 dGVkKAogCSAqIERlbGV0ZSB0aGUgcW9mZi1zdGFydCBsb2dpdGVtIGZyb20gdGhlIEFJTC4KIAkg KiB4ZnNfdHJhbnNfYWlsX2RlbGV0ZSgpIGRyb3BzIHRoZSBBSUwgbG9jay4KIAkgKi8KLQlzcGlu X2xvY2soJmFpbHAtPnhhX2xvY2spOworCXNwaW5fbG9jaygmYWlscC0+YWlsX2xvY2spOwogCXhm c190cmFuc19haWxfZGVsZXRlKGFpbHAsICZxZnMtPnFxbF9pdGVtLCBTSFVURE9XTl9MT0dfSU9f RVJST1IpOwogCiAJa21lbV9mcmVlKHFmcy0+cXFsX2l0ZW0ubGlfbHZfc2hhZG93KTsKZGlmZiAt LWdpdCBhL2ZzL3hmcy94ZnNfaW5vZGVfaXRlbS5jIGIvZnMveGZzL3hmc19pbm9kZV9pdGVtLmMK aW5kZXggNmVlNWMzYmYxOWFkLi4wNzFhY2Q0MjQ5YTAgMTAwNjQ0Ci0tLSBhL2ZzL3hmcy94ZnNf aW5vZGVfaXRlbS5jCisrKyBiL2ZzL3hmcy94ZnNfaW5vZGVfaXRlbS5jCkBAIC01MDEsOCArNTAx LDggQEAgU1RBVElDIHVpbnQKIHhmc19pbm9kZV9pdGVtX3B1c2goCiAJc3RydWN0IHhmc19sb2df aXRlbQkqbGlwLAogCXN0cnVjdCBsaXN0X2hlYWQJKmJ1ZmZlcl9saXN0KQotCQlfX3JlbGVhc2Vz KCZsaXAtPmxpX2FpbHAtPnhhX2xvY2spCi0JCV9fYWNxdWlyZXMoJmxpcC0+bGlfYWlscC0+eGFf bG9jaykKKwkJX19yZWxlYXNlcygmbGlwLT5saV9haWxwLT5haWxfbG9jaykKKwkJX19hY3F1aXJl cygmbGlwLT5saV9haWxwLT5haWxfbG9jaykKIHsKIAlzdHJ1Y3QgeGZzX2lub2RlX2xvZ19pdGVt ICppaXAgPSBJTk9ERV9JVEVNKGxpcCk7CiAJc3RydWN0IHhmc19pbm9kZQkqaXAgPSBpaXAtPmls aV9pbm9kZTsKQEAgLTU2MSw3ICs1NjEsNyBAQCB4ZnNfaW5vZGVfaXRlbV9wdXNoKAogCUFTU0VS VChpaXAtPmlsaV9maWVsZHMgIT0gMCB8fCBYRlNfRk9SQ0VEX1NIVVRET1dOKGlwLT5pX21vdW50 KSk7CiAJQVNTRVJUKGlpcC0+aWxpX2xvZ2dlZCA9PSAwIHx8IFhGU19GT1JDRURfU0hVVERPV04o aXAtPmlfbW91bnQpKTsKIAotCXNwaW5fdW5sb2NrKCZsaXAtPmxpX2FpbHAtPnhhX2xvY2spOwor CXNwaW5fdW5sb2NrKCZsaXAtPmxpX2FpbHAtPmFpbF9sb2NrKTsKIAogCWVycm9yID0geGZzX2lm bHVzaChpcCwgJmJwKTsKIAlpZiAoIWVycm9yKSB7CkBAIC01NzAsNyArNTcwLDcgQEAgeGZzX2lu b2RlX2l0ZW1fcHVzaCgKIAkJeGZzX2J1Zl9yZWxzZShicCk7CiAJfQogCi0Jc3Bpbl9sb2NrKCZs aXAtPmxpX2FpbHAtPnhhX2xvY2spOworCXNwaW5fbG9jaygmbGlwLT5saV9haWxwLT5haWxfbG9j ayk7CiBvdXRfdW5sb2NrOgogCXhmc19pdW5sb2NrKGlwLCBYRlNfSUxPQ0tfU0hBUkVEKTsKIAly ZXR1cm4gcnZhbDsKQEAgLTc3NCw3ICs3NzQsNyBAQCB4ZnNfaWZsdXNoX2RvbmUoCiAJCWJvb2wJ CQltbGlwX2NoYW5nZWQgPSBmYWxzZTsKIAogCQkvKiB0aGlzIGlzIGFuIG9wZW5jb2RlZCBiYXRj aCB2ZXJzaW9uIG9mIHhmc190cmFuc19haWxfZGVsZXRlICovCi0JCXNwaW5fbG9jaygmYWlscC0+ eGFfbG9jayk7CisJCXNwaW5fbG9jaygmYWlscC0+YWlsX2xvY2spOwogCQlmb3IgKGJsaXAgPSBs aXA7IGJsaXA7IGJsaXAgPSBibGlwLT5saV9iaW9fbGlzdCkgewogCQkJaWYgKElOT0RFX0lURU0o YmxpcCktPmlsaV9sb2dnZWQgJiYKIAkJCSAgICBibGlwLT5saV9sc24gPT0gSU5PREVfSVRFTShi bGlwKS0+aWxpX2ZsdXNoX2xzbikKQEAgLTc4NSwxNSArNzg1LDE1IEBAIHhmc19pZmx1c2hfZG9u ZSgKIAkJfQogCiAJCWlmIChtbGlwX2NoYW5nZWQpIHsKLQkJCWlmICghWEZTX0ZPUkNFRF9TSFVU RE9XTihhaWxwLT54YV9tb3VudCkpCi0JCQkJeGxvZ19hc3NpZ25fdGFpbF9sc25fbG9ja2VkKGFp bHAtPnhhX21vdW50KTsKLQkJCWlmIChsaXN0X2VtcHR5KCZhaWxwLT54YV9haWwpKQotCQkJCXdh a2VfdXBfYWxsKCZhaWxwLT54YV9lbXB0eSk7CisJCQlpZiAoIVhGU19GT1JDRURfU0hVVERPV04o YWlscC0+YWlsX21vdW50KSkKKwkJCQl4bG9nX2Fzc2lnbl90YWlsX2xzbl9sb2NrZWQoYWlscC0+ YWlsX21vdW50KTsKKwkJCWlmIChsaXN0X2VtcHR5KCZhaWxwLT5haWxfaGVhZCkpCisJCQkJd2Fr ZV91cF9hbGwoJmFpbHAtPmFpbF9lbXB0eSk7CiAJCX0KLQkJc3Bpbl91bmxvY2soJmFpbHAtPnhh X2xvY2spOworCQlzcGluX3VubG9jaygmYWlscC0+YWlsX2xvY2spOwogCiAJCWlmIChtbGlwX2No YW5nZWQpCi0JCQl4ZnNfbG9nX3NwYWNlX3dha2UoYWlscC0+eGFfbW91bnQpOworCQkJeGZzX2xv Z19zcGFjZV93YWtlKGFpbHAtPmFpbF9tb3VudCk7CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBhL2Zz L3hmcy94ZnNfbG9nLmMgYi9mcy94ZnMveGZzX2xvZy5jCmluZGV4IGE1MDNhZjk2ZDc4MC4uNzE0 ODYyNWVlYmYyIDEwMDY0NAotLS0gYS9mcy94ZnMveGZzX2xvZy5jCisrKyBiL2ZzL3hmcy94ZnNf bG9nLmMKQEAgLTExNDgsNyArMTE0OCw3IEBAIHhsb2dfYXNzaWduX3RhaWxfbHNuX2xvY2tlZCgK IAlzdHJ1Y3QgeGZzX2xvZ19pdGVtCSpsaXA7CiAJeGZzX2xzbl90CQl0YWlsX2xzbjsKIAotCWFz c2VydF9zcGluX2xvY2tlZCgmbXAtPm1fYWlsLT54YV9sb2NrKTsKKwlhc3NlcnRfc3Bpbl9sb2Nr ZWQoJm1wLT5tX2FpbC0+YWlsX2xvY2spOwogCiAJLyoKIAkgKiBUbyBtYWtlIHN1cmUgd2UgYWx3 YXlzIGhhdmUgYSB2YWxpZCBMU04gZm9yIHRoZSBsb2cgdGFpbCB3ZSBrZWVwCkBAIC0xMTcxLDkg KzExNzEsOSBAQCB4bG9nX2Fzc2lnbl90YWlsX2xzbigKIHsKIAl4ZnNfbHNuX3QJCXRhaWxfbHNu OwogCi0Jc3Bpbl9sb2NrKCZtcC0+bV9haWwtPnhhX2xvY2spOworCXNwaW5fbG9jaygmbXAtPm1f YWlsLT5haWxfbG9jayk7CiAJdGFpbF9sc24gPSB4bG9nX2Fzc2lnbl90YWlsX2xzbl9sb2NrZWQo bXApOwotCXNwaW5fdW5sb2NrKCZtcC0+bV9haWwtPnhhX2xvY2spOworCXNwaW5fdW5sb2NrKCZt cC0+bV9haWwtPmFpbF9sb2NrKTsKIAogCXJldHVybiB0YWlsX2xzbjsKIH0KZGlmZiAtLWdpdCBh L2ZzL3hmcy94ZnNfbG9nX3JlY292ZXIuYyBiL2ZzL3hmcy94ZnNfbG9nX3JlY292ZXIuYwppbmRl eCAyOGQxYWJmZTgzNWUuLmQ4NzE3NjE2MjZmYiAxMDA2NDQKLS0tIGEvZnMveGZzL3hmc19sb2df cmVjb3Zlci5jCisrKyBiL2ZzL3hmcy94ZnNfbG9nX3JlY292ZXIuYwpAQCAtMzQyNCw3ICszNDI0 LDcgQEAgeGxvZ19yZWNvdmVyX2VmaV9wYXNzMigKIAl9CiAJYXRvbWljX3NldCgmZWZpcC0+ZWZp X25leHRfZXh0ZW50LCBlZmlfZm9ybWF0cC0+ZWZpX25leHRlbnRzKTsKIAotCXNwaW5fbG9jaygm bG9nLT5sX2FpbHAtPnhhX2xvY2spOworCXNwaW5fbG9jaygmbG9nLT5sX2FpbHAtPmFpbF9sb2Nr KTsKIAkvKgogCSAqIFRoZSBFRkkgaGFzIHR3byByZWZlcmVuY2VzLiBPbmUgZm9yIHRoZSBFRkQg YW5kIG9uZSBmb3IgRUZJIHRvIGVuc3VyZQogCSAqIGl0IG1ha2VzIGl0IGludG8gdGhlIEFJTC4g SW5zZXJ0IHRoZSBFRkkgaW50byB0aGUgQUlMIGRpcmVjdGx5IGFuZApAQCAtMzQ2Nyw3ICszNDY3 LDcgQEAgeGxvZ19yZWNvdmVyX2VmZF9wYXNzMigKIAkgKiBTZWFyY2ggZm9yIHRoZSBFRkkgd2l0 aCB0aGUgaWQgaW4gdGhlIEVGRCBmb3JtYXQgc3RydWN0dXJlIGluIHRoZQogCSAqIEFJTC4KIAkg Ki8KLQlzcGluX2xvY2soJmFpbHAtPnhhX2xvY2spOworCXNwaW5fbG9jaygmYWlscC0+YWlsX2xv Y2spOwogCWxpcCA9IHhmc190cmFuc19haWxfY3Vyc29yX2ZpcnN0KGFpbHAsICZjdXIsIDApOwog CXdoaWxlIChsaXAgIT0gTlVMTCkgewogCQlpZiAobGlwLT5saV90eXBlID09IFhGU19MSV9FRkkp IHsKQEAgLTM0NzcsOSArMzQ3Nyw5IEBAIHhsb2dfcmVjb3Zlcl9lZmRfcGFzczIoCiAJCQkJICog RHJvcCB0aGUgRUZEIHJlZmVyZW5jZSB0byB0aGUgRUZJLiBUaGlzCiAJCQkJICogcmVtb3ZlcyB0 aGUgRUZJIGZyb20gdGhlIEFJTCBhbmQgZnJlZXMgaXQuCiAJCQkJICovCi0JCQkJc3Bpbl91bmxv Y2soJmFpbHAtPnhhX2xvY2spOworCQkJCXNwaW5fdW5sb2NrKCZhaWxwLT5haWxfbG9jayk7CiAJ CQkJeGZzX2VmaV9yZWxlYXNlKGVmaXApOwotCQkJCXNwaW5fbG9jaygmYWlscC0+eGFfbG9jayk7 CisJCQkJc3Bpbl9sb2NrKCZhaWxwLT5haWxfbG9jayk7CiAJCQkJYnJlYWs7CiAJCQl9CiAJCX0K QEAgLTM0ODcsNyArMzQ4Nyw3IEBAIHhsb2dfcmVjb3Zlcl9lZmRfcGFzczIoCiAJfQogCiAJeGZz X3RyYW5zX2FpbF9jdXJzb3JfZG9uZSgmY3VyKTsKLQlzcGluX3VubG9jaygmYWlscC0+eGFfbG9j ayk7CisJc3Bpbl91bmxvY2soJmFpbHAtPmFpbF9sb2NrKTsKIAogCXJldHVybiAwOwogfQpAQCAt MzUyMCw3ICszNTIwLDcgQEAgeGxvZ19yZWNvdmVyX3J1aV9wYXNzMigKIAl9CiAJYXRvbWljX3Nl dCgmcnVpcC0+cnVpX25leHRfZXh0ZW50LCBydWlfZm9ybWF0cC0+cnVpX25leHRlbnRzKTsKIAot CXNwaW5fbG9jaygmbG9nLT5sX2FpbHAtPnhhX2xvY2spOworCXNwaW5fbG9jaygmbG9nLT5sX2Fp bHAtPmFpbF9sb2NrKTsKIAkvKgogCSAqIFRoZSBSVUkgaGFzIHR3byByZWZlcmVuY2VzLiBPbmUg Zm9yIHRoZSBSVUQgYW5kIG9uZSBmb3IgUlVJIHRvIGVuc3VyZQogCSAqIGl0IG1ha2VzIGl0IGlu dG8gdGhlIEFJTC4gSW5zZXJ0IHRoZSBSVUkgaW50byB0aGUgQUlMIGRpcmVjdGx5IGFuZApAQCAt MzU2MCw3ICszNTYwLDcgQEAgeGxvZ19yZWNvdmVyX3J1ZF9wYXNzMigKIAkgKiBTZWFyY2ggZm9y IHRoZSBSVUkgd2l0aCB0aGUgaWQgaW4gdGhlIFJVRCBmb3JtYXQgc3RydWN0dXJlIGluIHRoZQog CSAqIEFJTC4KIAkgKi8KLQlzcGluX2xvY2soJmFpbHAtPnhhX2xvY2spOworCXNwaW5fbG9jaygm YWlscC0+YWlsX2xvY2spOwogCWxpcCA9IHhmc190cmFuc19haWxfY3Vyc29yX2ZpcnN0KGFpbHAs ICZjdXIsIDApOwogCXdoaWxlIChsaXAgIT0gTlVMTCkgewogCQlpZiAobGlwLT5saV90eXBlID09 IFhGU19MSV9SVUkpIHsKQEAgLTM1NzAsOSArMzU3MCw5IEBAIHhsb2dfcmVjb3Zlcl9ydWRfcGFz czIoCiAJCQkJICogRHJvcCB0aGUgUlVEIHJlZmVyZW5jZSB0byB0aGUgUlVJLiBUaGlzCiAJCQkJ ICogcmVtb3ZlcyB0aGUgUlVJIGZyb20gdGhlIEFJTCBhbmQgZnJlZXMgaXQuCiAJCQkJICovCi0J CQkJc3Bpbl91bmxvY2soJmFpbHAtPnhhX2xvY2spOworCQkJCXNwaW5fdW5sb2NrKCZhaWxwLT5h aWxfbG9jayk7CiAJCQkJeGZzX3J1aV9yZWxlYXNlKHJ1aXApOwotCQkJCXNwaW5fbG9jaygmYWls cC0+eGFfbG9jayk7CisJCQkJc3Bpbl9sb2NrKCZhaWxwLT5haWxfbG9jayk7CiAJCQkJYnJlYWs7 CiAJCQl9CiAJCX0KQEAgLTM1ODAsNyArMzU4MCw3IEBAIHhsb2dfcmVjb3Zlcl9ydWRfcGFzczIo CiAJfQogCiAJeGZzX3RyYW5zX2FpbF9jdXJzb3JfZG9uZSgmY3VyKTsKLQlzcGluX3VubG9jaygm YWlscC0+eGFfbG9jayk7CisJc3Bpbl91bmxvY2soJmFpbHAtPmFpbF9sb2NrKTsKIAogCXJldHVy biAwOwogfQpAQCAtMzYzNiw3ICszNjM2LDcgQEAgeGxvZ19yZWNvdmVyX2N1aV9wYXNzMigKIAl9 CiAJYXRvbWljX3NldCgmY3VpcC0+Y3VpX25leHRfZXh0ZW50LCBjdWlfZm9ybWF0cC0+Y3VpX25l eHRlbnRzKTsKIAotCXNwaW5fbG9jaygmbG9nLT5sX2FpbHAtPnhhX2xvY2spOworCXNwaW5fbG9j aygmbG9nLT5sX2FpbHAtPmFpbF9sb2NrKTsKIAkvKgogCSAqIFRoZSBDVUkgaGFzIHR3byByZWZl cmVuY2VzLiBPbmUgZm9yIHRoZSBDVUQgYW5kIG9uZSBmb3IgQ1VJIHRvIGVuc3VyZQogCSAqIGl0 IG1ha2VzIGl0IGludG8gdGhlIEFJTC4gSW5zZXJ0IHRoZSBDVUkgaW50byB0aGUgQUlMIGRpcmVj dGx5IGFuZApAQCAtMzY3Nyw3ICszNjc3LDcgQEAgeGxvZ19yZWNvdmVyX2N1ZF9wYXNzMigKIAkg KiBTZWFyY2ggZm9yIHRoZSBDVUkgd2l0aCB0aGUgaWQgaW4gdGhlIENVRCBmb3JtYXQgc3RydWN0 dXJlIGluIHRoZQogCSAqIEFJTC4KIAkgKi8KLQlzcGluX2xvY2soJmFpbHAtPnhhX2xvY2spOwor CXNwaW5fbG9jaygmYWlscC0+YWlsX2xvY2spOwogCWxpcCA9IHhmc190cmFuc19haWxfY3Vyc29y X2ZpcnN0KGFpbHAsICZjdXIsIDApOwogCXdoaWxlIChsaXAgIT0gTlVMTCkgewogCQlpZiAobGlw LT5saV90eXBlID09IFhGU19MSV9DVUkpIHsKQEAgLTM2ODcsOSArMzY4Nyw5IEBAIHhsb2dfcmVj b3Zlcl9jdWRfcGFzczIoCiAJCQkJICogRHJvcCB0aGUgQ1VEIHJlZmVyZW5jZSB0byB0aGUgQ1VJ LiBUaGlzCiAJCQkJICogcmVtb3ZlcyB0aGUgQ1VJIGZyb20gdGhlIEFJTCBhbmQgZnJlZXMgaXQu CiAJCQkJICovCi0JCQkJc3Bpbl91bmxvY2soJmFpbHAtPnhhX2xvY2spOworCQkJCXNwaW5fdW5s b2NrKCZhaWxwLT5haWxfbG9jayk7CiAJCQkJeGZzX2N1aV9yZWxlYXNlKGN1aXApOwotCQkJCXNw aW5fbG9jaygmYWlscC0+eGFfbG9jayk7CisJCQkJc3Bpbl9sb2NrKCZhaWxwLT5haWxfbG9jayk7 CiAJCQkJYnJlYWs7CiAJCQl9CiAJCX0KQEAgLTM2OTcsNyArMzY5Nyw3IEBAIHhsb2dfcmVjb3Zl cl9jdWRfcGFzczIoCiAJfQogCiAJeGZzX3RyYW5zX2FpbF9jdXJzb3JfZG9uZSgmY3VyKTsKLQlz cGluX3VubG9jaygmYWlscC0+eGFfbG9jayk7CisJc3Bpbl91bmxvY2soJmFpbHAtPmFpbF9sb2Nr KTsKIAogCXJldHVybiAwOwogfQpAQCAtMzc1NSw3ICszNzU1LDcgQEAgeGxvZ19yZWNvdmVyX2J1 aV9wYXNzMigKIAl9CiAJYXRvbWljX3NldCgmYnVpcC0+YnVpX25leHRfZXh0ZW50LCBidWlfZm9y bWF0cC0+YnVpX25leHRlbnRzKTsKIAotCXNwaW5fbG9jaygmbG9nLT5sX2FpbHAtPnhhX2xvY2sp OworCXNwaW5fbG9jaygmbG9nLT5sX2FpbHAtPmFpbF9sb2NrKTsKIAkvKgogCSAqIFRoZSBSVUkg aGFzIHR3byByZWZlcmVuY2VzLiBPbmUgZm9yIHRoZSBSVUQgYW5kIG9uZSBmb3IgUlVJIHRvIGVu c3VyZQogCSAqIGl0IG1ha2VzIGl0IGludG8gdGhlIEFJTC4gSW5zZXJ0IHRoZSBSVUkgaW50byB0 aGUgQUlMIGRpcmVjdGx5IGFuZApAQCAtMzc5Niw3ICszNzk2LDcgQEAgeGxvZ19yZWNvdmVyX2J1 ZF9wYXNzMigKIAkgKiBTZWFyY2ggZm9yIHRoZSBCVUkgd2l0aCB0aGUgaWQgaW4gdGhlIEJVRCBm b3JtYXQgc3RydWN0dXJlIGluIHRoZQogCSAqIEFJTC4KIAkgKi8KLQlzcGluX2xvY2soJmFpbHAt PnhhX2xvY2spOworCXNwaW5fbG9jaygmYWlscC0+YWlsX2xvY2spOwogCWxpcCA9IHhmc190cmFu c19haWxfY3Vyc29yX2ZpcnN0KGFpbHAsICZjdXIsIDApOwogCXdoaWxlIChsaXAgIT0gTlVMTCkg ewogCQlpZiAobGlwLT5saV90eXBlID09IFhGU19MSV9CVUkpIHsKQEAgLTM4MDYsOSArMzgwNiw5 IEBAIHhsb2dfcmVjb3Zlcl9idWRfcGFzczIoCiAJCQkJICogRHJvcCB0aGUgQlVEIHJlZmVyZW5j ZSB0byB0aGUgQlVJLiBUaGlzCiAJCQkJICogcmVtb3ZlcyB0aGUgQlVJIGZyb20gdGhlIEFJTCBh bmQgZnJlZXMgaXQuCiAJCQkJICovCi0JCQkJc3Bpbl91bmxvY2soJmFpbHAtPnhhX2xvY2spOwor CQkJCXNwaW5fdW5sb2NrKCZhaWxwLT5haWxfbG9jayk7CiAJCQkJeGZzX2J1aV9yZWxlYXNlKGJ1 aXApOwotCQkJCXNwaW5fbG9jaygmYWlscC0+eGFfbG9jayk7CisJCQkJc3Bpbl9sb2NrKCZhaWxw LT5haWxfbG9jayk7CiAJCQkJYnJlYWs7CiAJCQl9CiAJCX0KQEAgLTM4MTYsNyArMzgxNiw3IEBA IHhsb2dfcmVjb3Zlcl9idWRfcGFzczIoCiAJfQogCiAJeGZzX3RyYW5zX2FpbF9jdXJzb3JfZG9u ZSgmY3VyKTsKLQlzcGluX3VubG9jaygmYWlscC0+eGFfbG9jayk7CisJc3Bpbl91bmxvY2soJmFp bHAtPmFpbF9sb2NrKTsKIAogCXJldHVybiAwOwogfQpAQCAtNDY0OSw5ICs0NjQ5LDkgQEAgeGxv Z19yZWNvdmVyX3Byb2Nlc3NfZWZpKAogCWlmICh0ZXN0X2JpdChYRlNfRUZJX1JFQ09WRVJFRCwg JmVmaXAtPmVmaV9mbGFncykpCiAJCXJldHVybiAwOwogCi0Jc3Bpbl91bmxvY2soJmFpbHAtPnhh X2xvY2spOworCXNwaW5fdW5sb2NrKCZhaWxwLT5haWxfbG9jayk7CiAJZXJyb3IgPSB4ZnNfZWZp X3JlY292ZXIobXAsIGVmaXApOwotCXNwaW5fbG9jaygmYWlscC0+eGFfbG9jayk7CisJc3Bpbl9s b2NrKCZhaWxwLT5haWxfbG9jayk7CiAKIAlyZXR1cm4gZXJyb3I7CiB9CkBAIC00NjY3LDkgKzQ2 NjcsOSBAQCB4bG9nX3JlY292ZXJfY2FuY2VsX2VmaSgKIAogCWVmaXAgPSBjb250YWluZXJfb2Yo bGlwLCBzdHJ1Y3QgeGZzX2VmaV9sb2dfaXRlbSwgZWZpX2l0ZW0pOwogCi0Jc3Bpbl91bmxvY2so JmFpbHAtPnhhX2xvY2spOworCXNwaW5fdW5sb2NrKCZhaWxwLT5haWxfbG9jayk7CiAJeGZzX2Vm aV9yZWxlYXNlKGVmaXApOwotCXNwaW5fbG9jaygmYWlscC0+eGFfbG9jayk7CisJc3Bpbl9sb2Nr KCZhaWxwLT5haWxfbG9jayk7CiB9CiAKIC8qIFJlY292ZXIgdGhlIFJVSSBpZiBuZWNlc3Nhcnku ICovCkBAIC00Njg5LDkgKzQ2ODksOSBAQCB4bG9nX3JlY292ZXJfcHJvY2Vzc19ydWkoCiAJaWYg KHRlc3RfYml0KFhGU19SVUlfUkVDT1ZFUkVELCAmcnVpcC0+cnVpX2ZsYWdzKSkKIAkJcmV0dXJu IDA7CiAKLQlzcGluX3VubG9jaygmYWlscC0+eGFfbG9jayk7CisJc3Bpbl91bmxvY2soJmFpbHAt PmFpbF9sb2NrKTsKIAllcnJvciA9IHhmc19ydWlfcmVjb3ZlcihtcCwgcnVpcCk7Ci0Jc3Bpbl9s b2NrKCZhaWxwLT54YV9sb2NrKTsKKwlzcGluX2xvY2soJmFpbHAtPmFpbF9sb2NrKTsKIAogCXJl dHVybiBlcnJvcjsKIH0KQEAgLTQ3MDcsOSArNDcwNyw5IEBAIHhsb2dfcmVjb3Zlcl9jYW5jZWxf cnVpKAogCiAJcnVpcCA9IGNvbnRhaW5lcl9vZihsaXAsIHN0cnVjdCB4ZnNfcnVpX2xvZ19pdGVt LCBydWlfaXRlbSk7CiAKLQlzcGluX3VubG9jaygmYWlscC0+eGFfbG9jayk7CisJc3Bpbl91bmxv Y2soJmFpbHAtPmFpbF9sb2NrKTsKIAl4ZnNfcnVpX3JlbGVhc2UocnVpcCk7Ci0Jc3Bpbl9sb2Nr KCZhaWxwLT54YV9sb2NrKTsKKwlzcGluX2xvY2soJmFpbHAtPmFpbF9sb2NrKTsKIH0KIAogLyog UmVjb3ZlciB0aGUgQ1VJIGlmIG5lY2Vzc2FyeS4gKi8KQEAgLTQ3MzAsOSArNDczMCw5IEBAIHhs b2dfcmVjb3Zlcl9wcm9jZXNzX2N1aSgKIAlpZiAodGVzdF9iaXQoWEZTX0NVSV9SRUNPVkVSRUQs ICZjdWlwLT5jdWlfZmxhZ3MpKQogCQlyZXR1cm4gMDsKIAotCXNwaW5fdW5sb2NrKCZhaWxwLT54 YV9sb2NrKTsKKwlzcGluX3VubG9jaygmYWlscC0+YWlsX2xvY2spOwogCWVycm9yID0geGZzX2N1 aV9yZWNvdmVyKG1wLCBjdWlwLCBkZm9wcyk7Ci0Jc3Bpbl9sb2NrKCZhaWxwLT54YV9sb2NrKTsK KwlzcGluX2xvY2soJmFpbHAtPmFpbF9sb2NrKTsKIAogCXJldHVybiBlcnJvcjsKIH0KQEAgLTQ3 NDgsOSArNDc0OCw5IEBAIHhsb2dfcmVjb3Zlcl9jYW5jZWxfY3VpKAogCiAJY3VpcCA9IGNvbnRh aW5lcl9vZihsaXAsIHN0cnVjdCB4ZnNfY3VpX2xvZ19pdGVtLCBjdWlfaXRlbSk7CiAKLQlzcGlu X3VubG9jaygmYWlscC0+eGFfbG9jayk7CisJc3Bpbl91bmxvY2soJmFpbHAtPmFpbF9sb2NrKTsK IAl4ZnNfY3VpX3JlbGVhc2UoY3VpcCk7Ci0Jc3Bpbl9sb2NrKCZhaWxwLT54YV9sb2NrKTsKKwlz cGluX2xvY2soJmFpbHAtPmFpbF9sb2NrKTsKIH0KIAogLyogUmVjb3ZlciB0aGUgQlVJIGlmIG5l Y2Vzc2FyeS4gKi8KQEAgLTQ3NzEsOSArNDc3MSw5IEBAIHhsb2dfcmVjb3Zlcl9wcm9jZXNzX2J1 aSgKIAlpZiAodGVzdF9iaXQoWEZTX0JVSV9SRUNPVkVSRUQsICZidWlwLT5idWlfZmxhZ3MpKQog CQlyZXR1cm4gMDsKIAotCXNwaW5fdW5sb2NrKCZhaWxwLT54YV9sb2NrKTsKKwlzcGluX3VubG9j aygmYWlscC0+YWlsX2xvY2spOwogCWVycm9yID0geGZzX2J1aV9yZWNvdmVyKG1wLCBidWlwLCBk Zm9wcyk7Ci0Jc3Bpbl9sb2NrKCZhaWxwLT54YV9sb2NrKTsKKwlzcGluX2xvY2soJmFpbHAtPmFp bF9sb2NrKTsKIAogCXJldHVybiBlcnJvcjsKIH0KQEAgLTQ3ODksOSArNDc4OSw5IEBAIHhsb2df cmVjb3Zlcl9jYW5jZWxfYnVpKAogCiAJYnVpcCA9IGNvbnRhaW5lcl9vZihsaXAsIHN0cnVjdCB4 ZnNfYnVpX2xvZ19pdGVtLCBidWlfaXRlbSk7CiAKLQlzcGluX3VubG9jaygmYWlscC0+eGFfbG9j ayk7CisJc3Bpbl91bmxvY2soJmFpbHAtPmFpbF9sb2NrKTsKIAl4ZnNfYnVpX3JlbGVhc2UoYnVp cCk7Ci0Jc3Bpbl9sb2NrKCZhaWxwLT54YV9sb2NrKTsKKwlzcGluX2xvY2soJmFpbHAtPmFpbF9s b2NrKTsKIH0KIAogLyogSXMgdGhpcyBsb2cgaXRlbSBhIGRlZmVycmVkIGFjdGlvbiBpbnRlbnQ/ ICovCkBAIC00ODc5LDcgKzQ4NzksNyBAQCB4bG9nX3JlY292ZXJfcHJvY2Vzc19pbnRlbnRzKAog I2VuZGlmCiAKIAlhaWxwID0gbG9nLT5sX2FpbHA7Ci0Jc3Bpbl9sb2NrKCZhaWxwLT54YV9sb2Nr KTsKKwlzcGluX2xvY2soJmFpbHAtPmFpbF9sb2NrKTsKIAlsaXAgPSB4ZnNfdHJhbnNfYWlsX2N1 cnNvcl9maXJzdChhaWxwLCAmY3VyLCAwKTsKICNpZiBkZWZpbmVkKERFQlVHKSB8fCBkZWZpbmVk KFhGU19XQVJOKQogCWxhc3RfbHNuID0geGxvZ19hc3NpZ25fbHNuKGxvZy0+bF9jdXJyX2N5Y2xl LCBsb2ctPmxfY3Vycl9ibG9jayk7CkBAIC00OTMzLDcgKzQ5MzMsNyBAQCB4bG9nX3JlY292ZXJf cHJvY2Vzc19pbnRlbnRzKAogCX0KIG91dDoKIAl4ZnNfdHJhbnNfYWlsX2N1cnNvcl9kb25lKCZj dXIpOwotCXNwaW5fdW5sb2NrKCZhaWxwLT54YV9sb2NrKTsKKwlzcGluX3VubG9jaygmYWlscC0+ YWlsX2xvY2spOwogCWlmIChlcnJvcikKIAkJeGZzX2RlZmVyX2NhbmNlbCgmZGZvcHMpOwogCWVs c2UKQEAgLTQ5NTYsNyArNDk1Niw3IEBAIHhsb2dfcmVjb3Zlcl9jYW5jZWxfaW50ZW50cygKIAlz dHJ1Y3QgeGZzX2FpbAkJKmFpbHA7CiAKIAlhaWxwID0gbG9nLT5sX2FpbHA7Ci0Jc3Bpbl9sb2Nr KCZhaWxwLT54YV9sb2NrKTsKKwlzcGluX2xvY2soJmFpbHAtPmFpbF9sb2NrKTsKIAlsaXAgPSB4 ZnNfdHJhbnNfYWlsX2N1cnNvcl9maXJzdChhaWxwLCAmY3VyLCAwKTsKIAl3aGlsZSAobGlwICE9 IE5VTEwpIHsKIAkJLyoKQEAgLTQ5OTAsNyArNDk5MCw3IEBAIHhsb2dfcmVjb3Zlcl9jYW5jZWxf aW50ZW50cygKIAl9CiAKIAl4ZnNfdHJhbnNfYWlsX2N1cnNvcl9kb25lKCZjdXIpOwotCXNwaW5f dW5sb2NrKCZhaWxwLT54YV9sb2NrKTsKKwlzcGluX3VubG9jaygmYWlscC0+YWlsX2xvY2spOwog CXJldHVybiBlcnJvcjsKIH0KIApkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc190cmFucy5jIGIvZnMv eGZzL3hmc190cmFucy5jCmluZGV4IGE4N2Y2NTdmNTljOS4uNzU2ZTAxOTk5YzI0IDEwMDY0NAot LS0gYS9mcy94ZnMveGZzX3RyYW5zLmMKKysrIGIvZnMveGZzL3hmc190cmFucy5jCkBAIC03ODEs OCArNzgxLDggQEAgeGZzX2xvZ19pdGVtX2JhdGNoX2luc2VydCgKIHsKIAlpbnQJaTsKIAotCXNw aW5fbG9jaygmYWlscC0+eGFfbG9jayk7Ci0JLyogeGZzX3RyYW5zX2FpbF91cGRhdGVfYnVsayBk cm9wcyBhaWxwLT54YV9sb2NrICovCisJc3Bpbl9sb2NrKCZhaWxwLT5haWxfbG9jayk7CisJLyog eGZzX3RyYW5zX2FpbF91cGRhdGVfYnVsayBkcm9wcyBhaWxwLT5haWxfbG9jayAqLwogCXhmc190 cmFuc19haWxfdXBkYXRlX2J1bGsoYWlscCwgY3VyLCBsb2dfaXRlbXMsIG5yX2l0ZW1zLCBjb21t aXRfbHNuKTsKIAogCWZvciAoaSA9IDA7IGkgPCBucl9pdGVtczsgaSsrKSB7CkBAIC04MjUsOSAr ODI1LDkgQEAgeGZzX3RyYW5zX2NvbW1pdHRlZF9idWxrKAogCXN0cnVjdCB4ZnNfYWlsX2N1cnNv cgljdXI7CiAJaW50CQkJaSA9IDA7CiAKLQlzcGluX2xvY2soJmFpbHAtPnhhX2xvY2spOworCXNw aW5fbG9jaygmYWlscC0+YWlsX2xvY2spOwogCXhmc190cmFuc19haWxfY3Vyc29yX2xhc3QoYWls cCwgJmN1ciwgY29tbWl0X2xzbik7Ci0Jc3Bpbl91bmxvY2soJmFpbHAtPnhhX2xvY2spOworCXNw aW5fdW5sb2NrKCZhaWxwLT5haWxfbG9jayk7CiAKIAkvKiB1bnBpbiBhbGwgdGhlIGxvZyBpdGVt cyAqLwogCWZvciAobHYgPSBsb2dfdmVjdG9yOyBsdjsgbHYgPSBsdi0+bHZfbmV4dCApIHsKQEAg LTg0Nyw3ICs4NDcsNyBAQCB4ZnNfdHJhbnNfY29tbWl0dGVkX2J1bGsoCiAJCSAqIG9iamVjdCBp bnRvIHRoZSBBSUwgYXMgd2UgYXJlIGluIGEgc2h1dGRvd24gc2l0dWF0aW9uLgogCQkgKi8KIAkJ aWYgKGFib3J0ZWQpIHsKLQkJCUFTU0VSVChYRlNfRk9SQ0VEX1NIVVRET1dOKGFpbHAtPnhhX21v dW50KSk7CisJCQlBU1NFUlQoWEZTX0ZPUkNFRF9TSFVURE9XTihhaWxwLT5haWxfbW91bnQpKTsK IAkJCWxpcC0+bGlfb3BzLT5pb3BfdW5waW4obGlwLCAxKTsKIAkJCWNvbnRpbnVlOwogCQl9CkBA IC04NjEsMTEgKzg2MSwxMSBAQCB4ZnNfdHJhbnNfY29tbWl0dGVkX2J1bGsoCiAJCQkgKiBub3Qg YWZmZWN0IHRoZSBBSUwgY3Vyc29yIHRoZSBidWxrIGluc2VydCBwYXRoIGlzCiAJCQkgKiB1c2lu Zy4KIAkJCSAqLwotCQkJc3Bpbl9sb2NrKCZhaWxwLT54YV9sb2NrKTsKKwkJCXNwaW5fbG9jaygm YWlscC0+YWlsX2xvY2spOwogCQkJaWYgKFhGU19MU05fQ01QKGl0ZW1fbHNuLCBsaXAtPmxpX2xz bikgPiAwKQogCQkJCXhmc190cmFuc19haWxfdXBkYXRlKGFpbHAsIGxpcCwgaXRlbV9sc24pOwog CQkJZWxzZQotCQkJCXNwaW5fdW5sb2NrKCZhaWxwLT54YV9sb2NrKTsKKwkJCQlzcGluX3VubG9j aygmYWlscC0+YWlsX2xvY2spOwogCQkJbGlwLT5saV9vcHMtPmlvcF91bnBpbihsaXAsIDApOwog CQkJY29udGludWU7CiAJCX0KQEAgLTg4Myw5ICs4ODMsOSBAQCB4ZnNfdHJhbnNfY29tbWl0dGVk X2J1bGsoCiAJaWYgKGkpCiAJCXhmc19sb2dfaXRlbV9iYXRjaF9pbnNlcnQoYWlscCwgJmN1ciwg bG9nX2l0ZW1zLCBpLCBjb21taXRfbHNuKTsKIAotCXNwaW5fbG9jaygmYWlscC0+eGFfbG9jayk7 CisJc3Bpbl9sb2NrKCZhaWxwLT5haWxfbG9jayk7CiAJeGZzX3RyYW5zX2FpbF9jdXJzb3JfZG9u ZSgmY3VyKTsKLQlzcGluX3VubG9jaygmYWlscC0+eGFfbG9jayk7CisJc3Bpbl91bmxvY2soJmFp bHAtPmFpbF9sb2NrKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2ZzL3hmcy94ZnNfdHJhbnNfYWls LmMgYi9mcy94ZnMveGZzX3RyYW5zX2FpbC5jCmluZGV4IGNlZjg5ZjcxMjdkMy4uZDRhMjQ0NTIx NWU2IDEwMDY0NAotLS0gYS9mcy94ZnMveGZzX3RyYW5zX2FpbC5jCisrKyBiL2ZzL3hmcy94ZnNf dHJhbnNfYWlsLmMKQEAgLTQwLDcgKzQwLDcgQEAgeGZzX2FpbF9jaGVjaygKIHsKIAl4ZnNfbG9n X2l0ZW1fdAkqcHJldl9saXA7CiAKLQlpZiAobGlzdF9lbXB0eSgmYWlscC0+eGFfYWlsKSkKKwlp ZiAobGlzdF9lbXB0eSgmYWlscC0+YWlsX2hlYWQpKQogCQlyZXR1cm47CiAKIAkvKgpAQCAtNDgs MTEgKzQ4LDExIEBAIHhmc19haWxfY2hlY2soCiAJICovCiAJQVNTRVJUKChsaXAtPmxpX2ZsYWdz ICYgWEZTX0xJX0lOX0FJTCkgIT0gMCk7CiAJcHJldl9saXAgPSBsaXN0X2VudHJ5KGxpcC0+bGlf YWlsLnByZXYsIHhmc19sb2dfaXRlbV90LCBsaV9haWwpOwotCWlmICgmcHJldl9saXAtPmxpX2Fp bCAhPSAmYWlscC0+eGFfYWlsKQorCWlmICgmcHJldl9saXAtPmxpX2FpbCAhPSAmYWlscC0+YWls X2hlYWQpCiAJCUFTU0VSVChYRlNfTFNOX0NNUChwcmV2X2xpcC0+bGlfbHNuLCBsaXAtPmxpX2xz bikgPD0gMCk7CiAKIAlwcmV2X2xpcCA9IGxpc3RfZW50cnkobGlwLT5saV9haWwubmV4dCwgeGZz X2xvZ19pdGVtX3QsIGxpX2FpbCk7Ci0JaWYgKCZwcmV2X2xpcC0+bGlfYWlsICE9ICZhaWxwLT54 YV9haWwpCisJaWYgKCZwcmV2X2xpcC0+bGlfYWlsICE9ICZhaWxwLT5haWxfaGVhZCkKIAkJQVNT RVJUKFhGU19MU05fQ01QKHByZXZfbGlwLT5saV9sc24sIGxpcC0+bGlfbHNuKSA+PSAwKTsKIAog CkBAIC02OSwxMCArNjksMTAgQEAgc3RhdGljIHhmc19sb2dfaXRlbV90ICoKIHhmc19haWxfbWF4 KAogCXN0cnVjdCB4ZnNfYWlsICAqYWlscCkKIHsKLQlpZiAobGlzdF9lbXB0eSgmYWlscC0+eGFf YWlsKSkKKwlpZiAobGlzdF9lbXB0eSgmYWlscC0+YWlsX2hlYWQpKQogCQlyZXR1cm4gTlVMTDsK IAotCXJldHVybiBsaXN0X2VudHJ5KGFpbHAtPnhhX2FpbC5wcmV2LCB4ZnNfbG9nX2l0ZW1fdCwg bGlfYWlsKTsKKwlyZXR1cm4gbGlzdF9lbnRyeShhaWxwLT5haWxfaGVhZC5wcmV2LCB4ZnNfbG9n X2l0ZW1fdCwgbGlfYWlsKTsKIH0KIAogLyoKQEAgLTg0LDcgKzg0LDcgQEAgeGZzX2FpbF9uZXh0 KAogCXN0cnVjdCB4ZnNfYWlsICAqYWlscCwKIAl4ZnNfbG9nX2l0ZW1fdCAgKmxpcCkKIHsKLQlp ZiAobGlwLT5saV9haWwubmV4dCA9PSAmYWlscC0+eGFfYWlsKQorCWlmIChsaXAtPmxpX2FpbC5u ZXh0ID09ICZhaWxwLT5haWxfaGVhZCkKIAkJcmV0dXJuIE5VTEw7CiAKIAlyZXR1cm4gbGlzdF9m aXJzdF9lbnRyeSgmbGlwLT5saV9haWwsIHhmc19sb2dfaXRlbV90LCBsaV9haWwpOwpAQCAtMTA1 LDExICsxMDUsMTEgQEAgeGZzX2FpbF9taW5fbHNuKAogCXhmc19sc25fdAlsc24gPSAwOwogCXhm c19sb2dfaXRlbV90CSpsaXA7CiAKLQlzcGluX2xvY2soJmFpbHAtPnhhX2xvY2spOworCXNwaW5f bG9jaygmYWlscC0+YWlsX2xvY2spOwogCWxpcCA9IHhmc19haWxfbWluKGFpbHApOwogCWlmIChs aXApCiAJCWxzbiA9IGxpcC0+bGlfbHNuOwotCXNwaW5fdW5sb2NrKCZhaWxwLT54YV9sb2NrKTsK KwlzcGluX3VubG9jaygmYWlscC0+YWlsX2xvY2spOwogCiAJcmV0dXJuIGxzbjsKIH0KQEAgLTEy NCwxMSArMTI0LDExIEBAIHhmc19haWxfbWF4X2xzbigKIAl4ZnNfbHNuX3QgICAgICAgbHNuID0g MDsKIAl4ZnNfbG9nX2l0ZW1fdCAgKmxpcDsKIAotCXNwaW5fbG9jaygmYWlscC0+eGFfbG9jayk7 CisJc3Bpbl9sb2NrKCZhaWxwLT5haWxfbG9jayk7CiAJbGlwID0geGZzX2FpbF9tYXgoYWlscCk7 CiAJaWYgKGxpcCkKIAkJbHNuID0gbGlwLT5saV9sc247Ci0Jc3Bpbl91bmxvY2soJmFpbHAtPnhh X2xvY2spOworCXNwaW5fdW5sb2NrKCZhaWxwLT5haWxfbG9jayk7CiAKIAlyZXR1cm4gbHNuOwog fQpAQCAtMTQ2LDcgKzE0Niw3IEBAIHhmc190cmFuc19haWxfY3Vyc29yX2luaXQoCiAJc3RydWN0 IHhmc19haWxfY3Vyc29yCSpjdXIpCiB7CiAJY3VyLT5pdGVtID0gTlVMTDsKLQlsaXN0X2FkZF90 YWlsKCZjdXItPmxpc3QsICZhaWxwLT54YV9jdXJzb3JzKTsKKwlsaXN0X2FkZF90YWlsKCZjdXIt Pmxpc3QsICZhaWxwLT5haWxfY3Vyc29ycyk7CiB9CiAKIC8qCkBAIC0xOTQsNyArMTk0LDcgQEAg eGZzX3RyYW5zX2FpbF9jdXJzb3JfY2xlYXIoCiB7CiAJc3RydWN0IHhmc19haWxfY3Vyc29yCSpj dXI7CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGN1ciwgJmFpbHAtPnhhX2N1cnNvcnMsIGxpc3Qp IHsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGN1ciwgJmFpbHAtPmFpbF9jdXJzb3JzLCBsaXN0KSB7 CiAJCWlmIChjdXItPml0ZW0gPT0gbGlwKQogCQkJY3VyLT5pdGVtID0gKHN0cnVjdCB4ZnNfbG9n X2l0ZW0gKikKIAkJCQkJKCh1aW50cHRyX3QpY3VyLT5pdGVtIHwgMSk7CkBAIC0yMjIsNyArMjIy LDcgQEAgeGZzX3RyYW5zX2FpbF9jdXJzb3JfZmlyc3QoCiAJCWdvdG8gb3V0OwogCX0KIAotCWxp c3RfZm9yX2VhY2hfZW50cnkobGlwLCAmYWlscC0+eGFfYWlsLCBsaV9haWwpIHsKKwlsaXN0X2Zv cl9lYWNoX2VudHJ5KGxpcCwgJmFpbHAtPmFpbF9oZWFkLCBsaV9haWwpIHsKIAkJaWYgKFhGU19M U05fQ01QKGxpcC0+bGlfbHNuLCBsc24pID49IDApCiAJCQlnb3RvIG91dDsKIAl9CkBAIC0yNDEs NyArMjQxLDcgQEAgX194ZnNfdHJhbnNfYWlsX2N1cnNvcl9sYXN0KAogewogCXhmc19sb2dfaXRl bV90CQkqbGlwOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeV9yZXZlcnNlKGxpcCwgJmFpbHAtPnhh X2FpbCwgbGlfYWlsKSB7CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9yZXZlcnNlKGxpcCwgJmFpbHAt PmFpbF9oZWFkLCBsaV9haWwpIHsKIAkJaWYgKFhGU19MU05fQ01QKGxpcC0+bGlfbHNuLCBsc24p IDw9IDApCiAJCQlyZXR1cm4gbGlwOwogCX0KQEAgLTMxMCw3ICszMTAsNyBAQCB4ZnNfYWlsX3Nw bGljZSgKIAlpZiAobGlwKQogCQlsaXN0X3NwbGljZShsaXN0LCAmbGlwLT5saV9haWwpOwogCWVs c2UKLQkJbGlzdF9zcGxpY2UobGlzdCwgJmFpbHAtPnhhX2FpbCk7CisJCWxpc3Rfc3BsaWNlKGxp c3QsICZhaWxwLT5haWxfaGVhZCk7CiB9CiAKIC8qCkBAIC0zMzUsMTcgKzMzNSwxNyBAQCB4ZnNh aWxkX3B1c2hfaXRlbSgKIAkgKiBJZiBsb2cgaXRlbSBwaW5uaW5nIGlzIGVuYWJsZWQsIHNraXAg dGhlIHB1c2ggYW5kIHRyYWNrIHRoZSBpdGVtIGFzCiAJICogcGlubmVkLiBUaGlzIGNhbiBoZWxw IGluZHVjZSBoZWFkLWJlaGluZC10YWlsIGNvbmRpdGlvbnMuCiAJICovCi0JaWYgKFhGU19URVNU X0VSUk9SKGZhbHNlLCBhaWxwLT54YV9tb3VudCwgWEZTX0VSUlRBR19MT0dfSVRFTV9QSU4pKQor CWlmIChYRlNfVEVTVF9FUlJPUihmYWxzZSwgYWlscC0+YWlsX21vdW50LCBYRlNfRVJSVEFHX0xP R19JVEVNX1BJTikpCiAJCXJldHVybiBYRlNfSVRFTV9QSU5ORUQ7CiAKLQlyZXR1cm4gbGlwLT5s aV9vcHMtPmlvcF9wdXNoKGxpcCwgJmFpbHAtPnhhX2J1Zl9saXN0KTsKKwlyZXR1cm4gbGlwLT5s aV9vcHMtPmlvcF9wdXNoKGxpcCwgJmFpbHAtPmFpbF9idWZfbGlzdCk7CiB9CiAKIHN0YXRpYyBs b25nCiB4ZnNhaWxkX3B1c2goCiAJc3RydWN0IHhmc19haWwJCSphaWxwKQogewotCXhmc19tb3Vu dF90CQkqbXAgPSBhaWxwLT54YV9tb3VudDsKKwl4ZnNfbW91bnRfdAkJKm1wID0gYWlscC0+YWls X21vdW50OwogCXN0cnVjdCB4ZnNfYWlsX2N1cnNvcgljdXI7CiAJeGZzX2xvZ19pdGVtX3QJCSps aXA7CiAJeGZzX2xzbl90CQlsc247CkBAIC0zNjAsMzAgKzM2MCwzMCBAQCB4ZnNhaWxkX3B1c2go CiAJICogYnVmZmVycyB0aGUgbGFzdCB0aW1lIHdlIHJhbiwgZm9yY2UgdGhlIGxvZyBmaXJzdCBh bmQgd2FpdCBmb3IgaXQKIAkgKiBiZWZvcmUgcHVzaGluZyBhZ2Fpbi4KIAkgKi8KLQlpZiAoYWls cC0+eGFfbG9nX2ZsdXNoICYmIGFpbHAtPnhhX2xhc3RfcHVzaGVkX2xzbiA9PSAwICYmCi0JICAg ICghbGlzdF9lbXB0eV9jYXJlZnVsKCZhaWxwLT54YV9idWZfbGlzdCkgfHwKKwlpZiAoYWlscC0+ YWlsX2xvZ19mbHVzaCAmJiBhaWxwLT5haWxfbGFzdF9wdXNoZWRfbHNuID09IDAgJiYKKwkgICAg KCFsaXN0X2VtcHR5X2NhcmVmdWwoJmFpbHAtPmFpbF9idWZfbGlzdCkgfHwKIAkgICAgIHhmc19h aWxfbWluX2xzbihhaWxwKSkpIHsKLQkJYWlscC0+eGFfbG9nX2ZsdXNoID0gMDsKKwkJYWlscC0+ YWlsX2xvZ19mbHVzaCA9IDA7CiAKIAkJWEZTX1NUQVRTX0lOQyhtcCwgeHNfcHVzaF9haWxfZmx1 c2gpOwogCQl4ZnNfbG9nX2ZvcmNlKG1wLCBYRlNfTE9HX1NZTkMpOwogCX0KIAotCXNwaW5fbG9j aygmYWlscC0+eGFfbG9jayk7CisJc3Bpbl9sb2NrKCZhaWxwLT5haWxfbG9jayk7CiAKLQkvKiBi YXJyaWVyIG1hdGNoZXMgdGhlIHhhX3RhcmdldCB1cGRhdGUgaW4geGZzX2FpbF9wdXNoKCkgKi8K KwkvKiBiYXJyaWVyIG1hdGNoZXMgdGhlIGFpbF90YXJnZXQgdXBkYXRlIGluIHhmc19haWxfcHVz aCgpICovCiAJc21wX3JtYigpOwotCXRhcmdldCA9IGFpbHAtPnhhX3RhcmdldDsKLQlhaWxwLT54 YV90YXJnZXRfcHJldiA9IHRhcmdldDsKKwl0YXJnZXQgPSBhaWxwLT5haWxfdGFyZ2V0OworCWFp bHAtPmFpbF90YXJnZXRfcHJldiA9IHRhcmdldDsKIAotCWxpcCA9IHhmc190cmFuc19haWxfY3Vy c29yX2ZpcnN0KGFpbHAsICZjdXIsIGFpbHAtPnhhX2xhc3RfcHVzaGVkX2xzbik7CisJbGlwID0g eGZzX3RyYW5zX2FpbF9jdXJzb3JfZmlyc3QoYWlscCwgJmN1ciwgYWlscC0+YWlsX2xhc3RfcHVz aGVkX2xzbik7CiAJaWYgKCFsaXApIHsKIAkJLyoKIAkJICogSWYgdGhlIEFJTCBpcyBlbXB0eSBv ciBvdXIgcHVzaCBoYXMgcmVhY2hlZCB0aGUgZW5kIHdlIGFyZQogCQkgKiBkb25lIG5vdy4KIAkJ ICovCiAJCXhmc190cmFuc19haWxfY3Vyc29yX2RvbmUoJmN1cik7Ci0JCXNwaW5fdW5sb2NrKCZh aWxwLT54YV9sb2NrKTsKKwkJc3Bpbl91bmxvY2soJmFpbHAtPmFpbF9sb2NrKTsKIAkJZ290byBv dXRfZG9uZTsKIAl9CiAKQEAgLTQwNCw3ICs0MDQsNyBAQCB4ZnNhaWxkX3B1c2goCiAJCQlYRlNf U1RBVFNfSU5DKG1wLCB4c19wdXNoX2FpbF9zdWNjZXNzKTsKIAkJCXRyYWNlX3hmc19haWxfcHVz aChsaXApOwogCi0JCQlhaWxwLT54YV9sYXN0X3B1c2hlZF9sc24gPSBsc247CisJCQlhaWxwLT5h aWxfbGFzdF9wdXNoZWRfbHNuID0gbHNuOwogCQkJYnJlYWs7CiAKIAkJY2FzZSBYRlNfSVRFTV9G TFVTSElORzoKQEAgLTQyMyw3ICs0MjMsNyBAQCB4ZnNhaWxkX3B1c2goCiAJCQl0cmFjZV94ZnNf YWlsX2ZsdXNoaW5nKGxpcCk7CiAKIAkJCWZsdXNoaW5nKys7Ci0JCQlhaWxwLT54YV9sYXN0X3B1 c2hlZF9sc24gPSBsc247CisJCQlhaWxwLT5haWxfbGFzdF9wdXNoZWRfbHNuID0gbHNuOwogCQkJ YnJlYWs7CiAKIAkJY2FzZSBYRlNfSVRFTV9QSU5ORUQ6CkBAIC00MzEsNyArNDMxLDcgQEAgeGZz YWlsZF9wdXNoKAogCQkJdHJhY2VfeGZzX2FpbF9waW5uZWQobGlwKTsKIAogCQkJc3R1Y2srKzsK LQkJCWFpbHAtPnhhX2xvZ19mbHVzaCsrOworCQkJYWlscC0+YWlsX2xvZ19mbHVzaCsrOwogCQkJ YnJlYWs7CiAJCWNhc2UgWEZTX0lURU1fTE9DS0VEOgogCQkJWEZTX1NUQVRTX0lOQyhtcCwgeHNf cHVzaF9haWxfbG9ja2VkKTsKQEAgLTQ2OCwxMCArNDY4LDEwIEBAIHhmc2FpbGRfcHVzaCgKIAkJ bHNuID0gbGlwLT5saV9sc247CiAJfQogCXhmc190cmFuc19haWxfY3Vyc29yX2RvbmUoJmN1cik7 Ci0Jc3Bpbl91bmxvY2soJmFpbHAtPnhhX2xvY2spOworCXNwaW5fdW5sb2NrKCZhaWxwLT5haWxf bG9jayk7CiAKLQlpZiAoeGZzX2J1Zl9kZWx3cmlfc3VibWl0X25vd2FpdCgmYWlscC0+eGFfYnVm X2xpc3QpKQotCQlhaWxwLT54YV9sb2dfZmx1c2grKzsKKwlpZiAoeGZzX2J1Zl9kZWx3cmlfc3Vi bWl0X25vd2FpdCgmYWlscC0+YWlsX2J1Zl9saXN0KSkKKwkJYWlscC0+YWlsX2xvZ19mbHVzaCsr OwogCiAJaWYgKCFjb3VudCB8fCBYRlNfTFNOX0NNUChsc24sIHRhcmdldCkgPj0gMCkgewogb3V0 X2RvbmU6CkBAIC00ODEsNyArNDgxLDcgQEAgeGZzYWlsZF9wdXNoKAogCQkgKiBBSUwgYmVmb3Jl IHdlIHN0YXJ0IHRoZSBuZXh0IHNjYW4gZnJvbSB0aGUgc3RhcnQgb2YgdGhlIEFJTC4KIAkJICov CiAJCXRvdXQgPSA1MDsKLQkJYWlscC0+eGFfbGFzdF9wdXNoZWRfbHNuID0gMDsKKwkJYWlscC0+ YWlsX2xhc3RfcHVzaGVkX2xzbiA9IDA7CiAJfSBlbHNlIGlmICgoKHN0dWNrICsgZmx1c2hpbmcp ICogMTAwKSAvIGNvdW50ID4gOTApIHsKIAkJLyoKIAkJICogRWl0aGVyIHRoZXJlIGlzIGEgbG90 IG9mIGNvbnRlbnRpb24gb24gdGhlIEFJTCBvciB3ZSBhcmUKQEAgLTQ5NCw3ICs0OTQsNyBAQCB4 ZnNhaWxkX3B1c2goCiAJCSAqIHRoZSByZXN0YXJ0IHRvIGlzc3VlIGEgbG9nIGZvcmNlIHRvIHVu cGluIHRoZSBzdHVjayBpdGVtcy4KIAkJICovCiAJCXRvdXQgPSAyMDsKLQkJYWlscC0+eGFfbGFz dF9wdXNoZWRfbHNuID0gMDsKKwkJYWlscC0+YWlsX2xhc3RfcHVzaGVkX2xzbiA9IDA7CiAJfSBl bHNlIHsKIAkJLyoKIAkJICogQXNzdW1lIHdlIGhhdmUgbW9yZSB3b3JrIHRvIGRvIGluIGEgc2hv cnQgd2hpbGUuCkBAIC01MzYsMjYgKzUzNiwyNiBAQCB4ZnNhaWxkKAogCQkJYnJlYWs7CiAJCX0K IAotCQlzcGluX2xvY2soJmFpbHAtPnhhX2xvY2spOworCQlzcGluX2xvY2soJmFpbHAtPmFpbF9s b2NrKTsKIAogCQkvKgogCQkgKiBJZGxlIGlmIHRoZSBBSUwgaXMgZW1wdHkgYW5kIHdlIGFyZSBu b3QgcmFjaW5nIHdpdGggYSB0YXJnZXQKIAkJICogdXBkYXRlLiBXZSBjaGVjayB0aGUgQUlMIGFm dGVyIHdlIHNldCB0aGUgdGFzayB0byBhIHNsZWVwCi0JCSAqIHN0YXRlIHRvIGd1YXJhbnRlZSB0 aGF0IHdlIGVpdGhlciBjYXRjaCBhbiB4YV90YXJnZXQgdXBkYXRlCisJCSAqIHN0YXRlIHRvIGd1 YXJhbnRlZSB0aGF0IHdlIGVpdGhlciBjYXRjaCBhbiBhaWxfdGFyZ2V0IHVwZGF0ZQogCQkgKiBv ciB0aGF0IGEgd2FrZV91cCByZXNldHMgdGhlIHN0YXRlIHRvIFRBU0tfUlVOTklORy4KIAkJICog T3RoZXJ3aXNlLCB3ZSBydW4gdGhlIHJpc2sgb2Ygc2xlZXBpbmcgaW5kZWZpbml0ZWx5LgogCQkg KgotCQkgKiBUaGUgYmFycmllciBtYXRjaGVzIHRoZSB4YV90YXJnZXQgdXBkYXRlIGluIHhmc19h aWxfcHVzaCgpLgorCQkgKiBUaGUgYmFycmllciBtYXRjaGVzIHRoZSBhaWxfdGFyZ2V0IHVwZGF0 ZSBpbiB4ZnNfYWlsX3B1c2goKS4KIAkJICovCiAJCXNtcF9ybWIoKTsKIAkJaWYgKCF4ZnNfYWls X21pbihhaWxwKSAmJgotCQkgICAgYWlscC0+eGFfdGFyZ2V0ID09IGFpbHAtPnhhX3RhcmdldF9w cmV2KSB7Ci0JCQlzcGluX3VubG9jaygmYWlscC0+eGFfbG9jayk7CisJCSAgICBhaWxwLT5haWxf dGFyZ2V0ID09IGFpbHAtPmFpbF90YXJnZXRfcHJldikgeworCQkJc3Bpbl91bmxvY2soJmFpbHAt PmFpbF9sb2NrKTsKIAkJCWZyZWV6YWJsZV9zY2hlZHVsZSgpOwogCQkJdG91dCA9IDA7CiAJCQlj b250aW51ZTsKIAkJfQotCQlzcGluX3VubG9jaygmYWlscC0+eGFfbG9jayk7CisJCXNwaW5fdW5s b2NrKCZhaWxwLT5haWxfbG9jayk7CiAKIAkJaWYgKHRvdXQpCiAJCQlmcmVlemFibGVfc2NoZWR1 bGVfdGltZW91dChtc2Vjc190b19qaWZmaWVzKHRvdXQpKTsKQEAgLTU5Miw4ICs1OTIsOCBAQCB4 ZnNfYWlsX3B1c2goCiAJeGZzX2xvZ19pdGVtX3QJKmxpcDsKIAogCWxpcCA9IHhmc19haWxfbWlu KGFpbHApOwotCWlmICghbGlwIHx8IFhGU19GT1JDRURfU0hVVERPV04oYWlscC0+eGFfbW91bnQp IHx8Ci0JICAgIFhGU19MU05fQ01QKHRocmVzaG9sZF9sc24sIGFpbHAtPnhhX3RhcmdldCkgPD0g MCkKKwlpZiAoIWxpcCB8fCBYRlNfRk9SQ0VEX1NIVVRET1dOKGFpbHAtPmFpbF9tb3VudCkgfHwK KwkgICAgWEZTX0xTTl9DTVAodGhyZXNob2xkX2xzbiwgYWlscC0+YWlsX3RhcmdldCkgPD0gMCkK IAkJcmV0dXJuOwogCiAJLyoKQEAgLTYwMSwxMCArNjAxLDEwIEBAIHhmc19haWxfcHVzaCgKIAkg KiB0aGUgWEZTX0FJTF9QVVNISU5HX0JJVC4KIAkgKi8KIAlzbXBfd21iKCk7Ci0JeGZzX3RyYW5z X2FpbF9jb3B5X2xzbihhaWxwLCAmYWlscC0+eGFfdGFyZ2V0LCAmdGhyZXNob2xkX2xzbik7CisJ eGZzX3RyYW5zX2FpbF9jb3B5X2xzbihhaWxwLCAmYWlscC0+YWlsX3RhcmdldCwgJnRocmVzaG9s ZF9sc24pOwogCXNtcF93bWIoKTsKIAotCXdha2VfdXBfcHJvY2VzcyhhaWxwLT54YV90YXNrKTsK Kwl3YWtlX3VwX3Byb2Nlc3MoYWlscC0+YWlsX3Rhc2spOwogfQogCiAvKgpAQCAtNjMwLDE4ICs2 MzAsMTggQEAgeGZzX2FpbF9wdXNoX2FsbF9zeW5jKAogCXN0cnVjdCB4ZnNfbG9nX2l0ZW0JKmxp cDsKIAlERUZJTkVfV0FJVCh3YWl0KTsKIAotCXNwaW5fbG9jaygmYWlscC0+eGFfbG9jayk7CisJ c3Bpbl9sb2NrKCZhaWxwLT5haWxfbG9jayk7CiAJd2hpbGUgKChsaXAgPSB4ZnNfYWlsX21heChh aWxwKSkgIT0gTlVMTCkgewotCQlwcmVwYXJlX3RvX3dhaXQoJmFpbHAtPnhhX2VtcHR5LCAmd2Fp dCwgVEFTS19VTklOVEVSUlVQVElCTEUpOwotCQlhaWxwLT54YV90YXJnZXQgPSBsaXAtPmxpX2xz bjsKLQkJd2FrZV91cF9wcm9jZXNzKGFpbHAtPnhhX3Rhc2spOwotCQlzcGluX3VubG9jaygmYWls cC0+eGFfbG9jayk7CisJCXByZXBhcmVfdG9fd2FpdCgmYWlscC0+YWlsX2VtcHR5LCAmd2FpdCwg VEFTS19VTklOVEVSUlVQVElCTEUpOworCQlhaWxwLT5haWxfdGFyZ2V0ID0gbGlwLT5saV9sc247 CisJCXdha2VfdXBfcHJvY2VzcyhhaWxwLT5haWxfdGFzayk7CisJCXNwaW5fdW5sb2NrKCZhaWxw LT5haWxfbG9jayk7CiAJCXNjaGVkdWxlKCk7Ci0JCXNwaW5fbG9jaygmYWlscC0+eGFfbG9jayk7 CisJCXNwaW5fbG9jaygmYWlscC0+YWlsX2xvY2spOwogCX0KLQlzcGluX3VubG9jaygmYWlscC0+ eGFfbG9jayk7CisJc3Bpbl91bmxvY2soJmFpbHAtPmFpbF9sb2NrKTsKIAotCWZpbmlzaF93YWl0 KCZhaWxwLT54YV9lbXB0eSwgJndhaXQpOworCWZpbmlzaF93YWl0KCZhaWxwLT5haWxfZW1wdHks ICZ3YWl0KTsKIH0KIAogLyoKQEAgLTY3Miw3ICs2NzIsNyBAQCB4ZnNfdHJhbnNfYWlsX3VwZGF0 ZV9idWxrKAogCXN0cnVjdCB4ZnNfYWlsX2N1cnNvcgkqY3VyLAogCXN0cnVjdCB4ZnNfbG9nX2l0 ZW0JKipsb2dfaXRlbXMsCiAJaW50CQkJbnJfaXRlbXMsCi0JeGZzX2xzbl90CQlsc24pIF9fcmVs ZWFzZXMoYWlscC0+eGFfbG9jaykKKwl4ZnNfbHNuX3QJCWxzbikgX19yZWxlYXNlcyhhaWxwLT5h aWxfbG9jaykKIHsKIAl4ZnNfbG9nX2l0ZW1fdAkJKm1saXA7CiAJaW50CQkJbWxpcF9jaGFuZ2Vk ID0gMDsKQEAgLTcwNSwxMyArNzA1LDEzIEBAIHhmc190cmFuc19haWxfdXBkYXRlX2J1bGsoCiAJ CXhmc19haWxfc3BsaWNlKGFpbHAsIGN1ciwgJnRtcCwgbHNuKTsKIAogCWlmIChtbGlwX2NoYW5n ZWQpIHsKLQkJaWYgKCFYRlNfRk9SQ0VEX1NIVVRET1dOKGFpbHAtPnhhX21vdW50KSkKLQkJCXhs b2dfYXNzaWduX3RhaWxfbHNuX2xvY2tlZChhaWxwLT54YV9tb3VudCk7Ci0JCXNwaW5fdW5sb2Nr KCZhaWxwLT54YV9sb2NrKTsKKwkJaWYgKCFYRlNfRk9SQ0VEX1NIVVRET1dOKGFpbHAtPmFpbF9t b3VudCkpCisJCQl4bG9nX2Fzc2lnbl90YWlsX2xzbl9sb2NrZWQoYWlscC0+YWlsX21vdW50KTsK KwkJc3Bpbl91bmxvY2soJmFpbHAtPmFpbF9sb2NrKTsKIAotCQl4ZnNfbG9nX3NwYWNlX3dha2Uo YWlscC0+eGFfbW91bnQpOworCQl4ZnNfbG9nX3NwYWNlX3dha2UoYWlscC0+YWlsX21vdW50KTsK IAl9IGVsc2UgewotCQlzcGluX3VubG9jaygmYWlscC0+eGFfbG9jayk7CisJCXNwaW5fdW5sb2Nr KCZhaWxwLT5haWxfbG9jayk7CiAJfQogfQogCkBAIC03NTYsMTMgKzc1NiwxMyBAQCB2b2lkCiB4 ZnNfdHJhbnNfYWlsX2RlbGV0ZSgKIAlzdHJ1Y3QgeGZzX2FpbAkJKmFpbHAsCiAJc3RydWN0IHhm c19sb2dfaXRlbQkqbGlwLAotCWludAkJCXNodXRkb3duX3R5cGUpIF9fcmVsZWFzZXMoYWlscC0+ eGFfbG9jaykKKwlpbnQJCQlzaHV0ZG93bl90eXBlKSBfX3JlbGVhc2VzKGFpbHAtPmFpbF9sb2Nr KQogewotCXN0cnVjdCB4ZnNfbW91bnQJKm1wID0gYWlscC0+eGFfbW91bnQ7CisJc3RydWN0IHhm c19tb3VudAkqbXAgPSBhaWxwLT5haWxfbW91bnQ7CiAJYm9vbAkJCW1saXBfY2hhbmdlZDsKIAog CWlmICghKGxpcC0+bGlfZmxhZ3MgJiBYRlNfTElfSU5fQUlMKSkgewotCQlzcGluX3VubG9jaygm YWlscC0+eGFfbG9jayk7CisJCXNwaW5fdW5sb2NrKCZhaWxwLT5haWxfbG9jayk7CiAJCWlmICgh WEZTX0ZPUkNFRF9TSFVURE9XTihtcCkpIHsKIAkJCXhmc19hbGVydF90YWcobXAsIFhGU19QVEFH X0FJTERFTEVURSwKIAkiJXM6IGF0dGVtcHRpbmcgdG8gZGVsZXRlIGEgbG9nIGl0ZW0gdGhhdCBp cyBub3QgaW4gdGhlIEFJTCIsCkBAIC03NzYsMTMgKzc3NiwxMyBAQCB4ZnNfdHJhbnNfYWlsX2Rl bGV0ZSgKIAlpZiAobWxpcF9jaGFuZ2VkKSB7CiAJCWlmICghWEZTX0ZPUkNFRF9TSFVURE9XTiht cCkpCiAJCQl4bG9nX2Fzc2lnbl90YWlsX2xzbl9sb2NrZWQobXApOwotCQlpZiAobGlzdF9lbXB0 eSgmYWlscC0+eGFfYWlsKSkKLQkJCXdha2VfdXBfYWxsKCZhaWxwLT54YV9lbXB0eSk7CisJCWlm IChsaXN0X2VtcHR5KCZhaWxwLT5haWxfaGVhZCkpCisJCQl3YWtlX3VwX2FsbCgmYWlscC0+YWls X2VtcHR5KTsKIAl9CiAKLQlzcGluX3VubG9jaygmYWlscC0+eGFfbG9jayk7CisJc3Bpbl91bmxv Y2soJmFpbHAtPmFpbF9sb2NrKTsKIAlpZiAobWxpcF9jaGFuZ2VkKQotCQl4ZnNfbG9nX3NwYWNl X3dha2UoYWlscC0+eGFfbW91bnQpOworCQl4ZnNfbG9nX3NwYWNlX3dha2UoYWlscC0+YWlsX21v dW50KTsKIH0KIAogaW50CkBAIC03OTUsMTYgKzc5NSwxNiBAQCB4ZnNfdHJhbnNfYWlsX2luaXQo CiAJaWYgKCFhaWxwKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCWFpbHAtPnhhX21vdW50ID0gbXA7 Ci0JSU5JVF9MSVNUX0hFQUQoJmFpbHAtPnhhX2FpbCk7Ci0JSU5JVF9MSVNUX0hFQUQoJmFpbHAt PnhhX2N1cnNvcnMpOwotCXNwaW5fbG9ja19pbml0KCZhaWxwLT54YV9sb2NrKTsKLQlJTklUX0xJ U1RfSEVBRCgmYWlscC0+eGFfYnVmX2xpc3QpOwotCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmFpbHAt PnhhX2VtcHR5KTsKKwlhaWxwLT5haWxfbW91bnQgPSBtcDsKKwlJTklUX0xJU1RfSEVBRCgmYWls cC0+YWlsX2hlYWQpOworCUlOSVRfTElTVF9IRUFEKCZhaWxwLT5haWxfY3Vyc29ycyk7CisJc3Bp bl9sb2NrX2luaXQoJmFpbHAtPmFpbF9sb2NrKTsKKwlJTklUX0xJU1RfSEVBRCgmYWlscC0+YWls X2J1Zl9saXN0KTsKKwlpbml0X3dhaXRxdWV1ZV9oZWFkKCZhaWxwLT5haWxfZW1wdHkpOwogCi0J YWlscC0+eGFfdGFzayA9IGt0aHJlYWRfcnVuKHhmc2FpbGQsIGFpbHAsICJ4ZnNhaWxkLyVzIiwK LQkJCWFpbHAtPnhhX21vdW50LT5tX2ZzbmFtZSk7Ci0JaWYgKElTX0VSUihhaWxwLT54YV90YXNr KSkKKwlhaWxwLT5haWxfdGFzayA9IGt0aHJlYWRfcnVuKHhmc2FpbGQsIGFpbHAsICJ4ZnNhaWxk LyVzIiwKKwkJCWFpbHAtPmFpbF9tb3VudC0+bV9mc25hbWUpOworCWlmIChJU19FUlIoYWlscC0+ YWlsX3Rhc2spKQogCQlnb3RvIG91dF9mcmVlX2FpbHA7CiAKIAltcC0+bV9haWwgPSBhaWxwOwpA QCAtODIxLDYgKzgyMSw2IEBAIHhmc190cmFuc19haWxfZGVzdHJveSgKIHsKIAlzdHJ1Y3QgeGZz X2FpbAkqYWlscCA9IG1wLT5tX2FpbDsKIAotCWt0aHJlYWRfc3RvcChhaWxwLT54YV90YXNrKTsK KwlrdGhyZWFkX3N0b3AoYWlscC0+YWlsX3Rhc2spOwogCWttZW1fZnJlZShhaWxwKTsKIH0KZGlm ZiAtLWdpdCBhL2ZzL3hmcy94ZnNfdHJhbnNfYnVmLmMgYi9mcy94ZnMveGZzX3RyYW5zX2J1Zi5j CmluZGV4IDNiYTdhOTZhOGFiZC4uYjg4NzFiY2ZlMDBiIDEwMDY0NAotLS0gYS9mcy94ZnMveGZz X3RyYW5zX2J1Zi5jCisrKyBiL2ZzL3hmcy94ZnNfdHJhbnNfYnVmLmMKQEAgLTQyOSw4ICs0Mjks OCBAQCB4ZnNfdHJhbnNfYnJlbHNlKHhmc190cmFuc190CSp0cCwKIAkgKiBJZiB0aGUgZnMgaGFz IHNodXRkb3duIGFuZCB3ZSBkcm9wcGVkIHRoZSBsYXN0IHJlZmVyZW5jZSwgaXQgbWF5IGZhbGwK IAkgKiBvbiB1cyB0byByZWxlYXNlIGEgKHBvc3NpYmx5IGRpcnR5KSBibGkgaWYgaXQgbmV2ZXIg bWFkZSBpdCB0byB0aGUKIAkgKiBBSUwgKGUuZy4sIHRoZSBhYm9ydGVkIHVucGluIGFscmVhZHkg aGFwcGVuZWQgYW5kIGRpZG4ndCByZWxlYXNlIGl0Ci0JICogZHVlIHRvIG91ciByZWZlcmVuY2Up LiBTaW5jZSB3ZSdyZSBhbHJlYWR5IHNodXRkb3duIGFuZCBuZWVkIHhhX2xvY2ssCi0JICoganVz dCBmb3JjZSByZW1vdmUgZnJvbSB0aGUgQUlMIGFuZCByZWxlYXNlIHRoZSBibGkgaGVyZS4KKwkg KiBkdWUgdG8gb3VyIHJlZmVyZW5jZSkuIFNpbmNlIHdlJ3JlIGFscmVhZHkgc2h1dGRvd24gYW5k IG5lZWQKKwkgKiBhaWxfbG9jaywganVzdCBmb3JjZSByZW1vdmUgZnJvbSB0aGUgQUlMIGFuZCBy ZWxlYXNlIHRoZSBibGkgaGVyZS4KIAkgKi8KIAlpZiAoWEZTX0ZPUkNFRF9TSFVURE9XTih0cC0+ dF9tb3VudHApICYmIGZyZWVkKSB7CiAJCXhmc190cmFuc19haWxfcmVtb3ZlKCZiaXAtPmJsaV9p dGVtLCBTSFVURE9XTl9MT0dfSU9fRVJST1IpOwpkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc190cmFu c19wcml2LmggYi9mcy94ZnMveGZzX3RyYW5zX3ByaXYuaAppbmRleCBiMzE3YTM2NDRjMDAuLmJl MjRiMGM4YTMzMiAxMDA2NDQKLS0tIGEvZnMveGZzL3hmc190cmFuc19wcml2LmgKKysrIGIvZnMv eGZzL3hmc190cmFuc19wcml2LmgKQEAgLTY1LDE3ICs2NSwxNyBAQCBzdHJ1Y3QgeGZzX2FpbF9j dXJzb3IgewogICogRXZlbnR1YWxseSB3ZSBuZWVkIHRvIGRyaXZlIHRoZSBsb2NraW5nIGluIGhl cmUgYXMgd2VsbC4KICAqLwogc3RydWN0IHhmc19haWwgewotCXN0cnVjdCB4ZnNfbW91bnQJKnhh X21vdW50OwotCXN0cnVjdCB0YXNrX3N0cnVjdAkqeGFfdGFzazsKLQlzdHJ1Y3QgbGlzdF9oZWFk CXhhX2FpbDsKLQl4ZnNfbHNuX3QJCXhhX3RhcmdldDsKLQl4ZnNfbHNuX3QJCXhhX3RhcmdldF9w cmV2OwotCXN0cnVjdCBsaXN0X2hlYWQJeGFfY3Vyc29yczsKLQlzcGlubG9ja190CQl4YV9sb2Nr OwotCXhmc19sc25fdAkJeGFfbGFzdF9wdXNoZWRfbHNuOwotCWludAkJCXhhX2xvZ19mbHVzaDsK LQlzdHJ1Y3QgbGlzdF9oZWFkCXhhX2J1Zl9saXN0OwotCXdhaXRfcXVldWVfaGVhZF90CXhhX2Vt cHR5OworCXN0cnVjdCB4ZnNfbW91bnQJKmFpbF9tb3VudDsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QJ KmFpbF90YXNrOworCXN0cnVjdCBsaXN0X2hlYWQJYWlsX2hlYWQ7CisJeGZzX2xzbl90CQlhaWxf dGFyZ2V0OworCXhmc19sc25fdAkJYWlsX3RhcmdldF9wcmV2OworCXN0cnVjdCBsaXN0X2hlYWQJ YWlsX2N1cnNvcnM7CisJc3BpbmxvY2tfdAkJYWlsX2xvY2s7CisJeGZzX2xzbl90CQlhaWxfbGFz dF9wdXNoZWRfbHNuOworCWludAkJCWFpbF9sb2dfZmx1c2g7CisJc3RydWN0IGxpc3RfaGVhZAlh aWxfYnVmX2xpc3Q7CisJd2FpdF9xdWV1ZV9oZWFkX3QJYWlsX2VtcHR5OwogfTsKIAogLyoKQEAg LTg0LDcgKzg0LDcgQEAgc3RydWN0IHhmc19haWwgewogdm9pZAl4ZnNfdHJhbnNfYWlsX3VwZGF0 ZV9idWxrKHN0cnVjdCB4ZnNfYWlsICphaWxwLAogCQkJCXN0cnVjdCB4ZnNfYWlsX2N1cnNvciAq Y3VyLAogCQkJCXN0cnVjdCB4ZnNfbG9nX2l0ZW0gKipsb2dfaXRlbXMsIGludCBucl9pdGVtcywK LQkJCQl4ZnNfbHNuX3QgbHNuKSBfX3JlbGVhc2VzKGFpbHAtPnhhX2xvY2spOworCQkJCXhmc19s c25fdCBsc24pIF9fcmVsZWFzZXMoYWlscC0+YWlsX2xvY2spOwogLyoKICAqIFJldHVybiBhIHBv aW50ZXIgdG8gdGhlIGZpcnN0IGl0ZW0gaW4gdGhlIEFJTC4gIElmIHRoZSBBSUwgaXMgZW1wdHks IHRoZW4KICAqIHJldHVybiBOVUxMLgpAQCAtOTMsNyArOTMsNyBAQCBzdGF0aWMgaW5saW5lIHN0 cnVjdCB4ZnNfbG9nX2l0ZW0gKgogeGZzX2FpbF9taW4oCiAJc3RydWN0IHhmc19haWwgICphaWxw KQogewotCXJldHVybiBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoJmFpbHAtPnhhX2FpbCwgc3Ry dWN0IHhmc19sb2dfaXRlbSwKKwlyZXR1cm4gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKCZhaWxw LT5haWxfaGVhZCwgc3RydWN0IHhmc19sb2dfaXRlbSwKIAkJCQkJbGlfYWlsKTsKIH0KIApAQCAt MTAxLDE0ICsxMDEsMTQgQEAgc3RhdGljIGlubGluZSB2b2lkCiB4ZnNfdHJhbnNfYWlsX3VwZGF0 ZSgKIAlzdHJ1Y3QgeGZzX2FpbAkJKmFpbHAsCiAJc3RydWN0IHhmc19sb2dfaXRlbQkqbGlwLAot CXhmc19sc25fdAkJbHNuKSBfX3JlbGVhc2VzKGFpbHAtPnhhX2xvY2spCisJeGZzX2xzbl90CQls c24pIF9fcmVsZWFzZXMoYWlscC0+YWlsX2xvY2spCiB7CiAJeGZzX3RyYW5zX2FpbF91cGRhdGVf YnVsayhhaWxwLCBOVUxMLCAmbGlwLCAxLCBsc24pOwogfQogCiBib29sIHhmc19haWxfZGVsZXRl X29uZShzdHJ1Y3QgeGZzX2FpbCAqYWlscCwgc3RydWN0IHhmc19sb2dfaXRlbSAqbGlwKTsKIHZv aWQgeGZzX3RyYW5zX2FpbF9kZWxldGUoc3RydWN0IHhmc19haWwgKmFpbHAsIHN0cnVjdCB4ZnNf bG9nX2l0ZW0gKmxpcCwKLQkJaW50IHNodXRkb3duX3R5cGUpIF9fcmVsZWFzZXMoYWlscC0+eGFf bG9jayk7CisJCWludCBzaHV0ZG93bl90eXBlKSBfX3JlbGVhc2VzKGFpbHAtPmFpbF9sb2NrKTsK IAogc3RhdGljIGlubGluZSB2b2lkCiB4ZnNfdHJhbnNfYWlsX3JlbW92ZSgKQEAgLTExNywxMiAr MTE3LDEyIEBAIHhmc190cmFuc19haWxfcmVtb3ZlKAogewogCXN0cnVjdCB4ZnNfYWlsCQkqYWls cCA9IGxpcC0+bGlfYWlscDsKIAotCXNwaW5fbG9jaygmYWlscC0+eGFfbG9jayk7CisJc3Bpbl9s b2NrKCZhaWxwLT5haWxfbG9jayk7CiAJLyogeGZzX3RyYW5zX2FpbF9kZWxldGUoKSBkcm9wcyB0 aGUgQUlMIGxvY2sgKi8KIAlpZiAobGlwLT5saV9mbGFncyAmIFhGU19MSV9JTl9BSUwpCiAJCXhm c190cmFuc19haWxfZGVsZXRlKGFpbHAsIGxpcCwgc2h1dGRvd25fdHlwZSk7CiAJZWxzZQotCQlz cGluX3VubG9jaygmYWlscC0+eGFfbG9jayk7CisJCXNwaW5fdW5sb2NrKCZhaWxwLT5haWxfbG9j ayk7CiB9CiAKIHZvaWQJCQl4ZnNfYWlsX3B1c2goc3RydWN0IHhmc19haWwgKiwgeGZzX2xzbl90 KTsKQEAgLTE0OSw5ICsxNDksOSBAQCB4ZnNfdHJhbnNfYWlsX2NvcHlfbHNuKAogCXhmc19sc25f dAkqc3JjKQogewogCUFTU0VSVChzaXplb2YoeGZzX2xzbl90KSA9PSA4KTsJLyogZG9uJ3QgbG9j ayBpZiBpdCBzaHJpbmtzICovCi0Jc3Bpbl9sb2NrKCZhaWxwLT54YV9sb2NrKTsKKwlzcGluX2xv Y2soJmFpbHAtPmFpbF9sb2NrKTsKIAkqZHN0ID0gKnNyYzsKLQlzcGluX3VubG9jaygmYWlscC0+ eGFfbG9jayk7CisJc3Bpbl91bmxvY2soJmFpbHAtPmFpbF9sb2NrKTsKIH0KICNlbHNlCiBzdGF0 aWMgaW5saW5lIHZvaWQKQEAgLTE3Miw3ICsxNzIsNyBAQCB4ZnNfY2xlYXJfbGlfZmFpbGVkKAog CXN0cnVjdCB4ZnNfYnVmCSpicCA9IGxpcC0+bGlfYnVmOwogCiAJQVNTRVJUKGxpcC0+bGlfZmxh Z3MgJiBYRlNfTElfSU5fQUlMKTsKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZsaXAtPmxpX2FpbHAt PnhhX2xvY2spOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmxpcC0+bGlfYWlscC0+YWlsX2xvY2sp OwogCiAJaWYgKGxpcC0+bGlfZmxhZ3MgJiBYRlNfTElfRkFJTEVEKSB7CiAJCWxpcC0+bGlfZmxh Z3MgJj0gflhGU19MSV9GQUlMRUQ7CkBAIC0xODYsNyArMTg2LDcgQEAgeGZzX3NldF9saV9mYWls ZWQoCiAJc3RydWN0IHhmc19sb2dfaXRlbQkqbGlwLAogCXN0cnVjdCB4ZnNfYnVmCQkqYnApCiB7 Ci0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmbGlwLT5saV9haWxwLT54YV9sb2NrKTsKKwlsb2NrZGVw X2Fzc2VydF9oZWxkKCZsaXAtPmxpX2FpbHAtPmFpbF9sb2NrKTsKIAogCWlmICghKGxpcC0+bGlf ZmxhZ3MgJiBYRlNfTElfRkFJTEVEKSkgewogCQl4ZnNfYnVmX2hvbGQoYnApOwo=