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,06/78] xarray: Change definition of sibling entries From: Matthew Wilcox Message-Id: <20171215220450.7899-7-willy@infradead.org> Date: Fri, 15 Dec 2017 14:03:38 -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+CgpJbnN0ZWFkIG9m IHN0b3JpbmcgYSBwb2ludGVyIHRvIHRoZSBzbG90IGNvbnRhaW5pbmcgdGhlIGNhbm9uaWNhbCBl bnRyeSwKc3RvcmUgdGhlIG9mZnNldCBvZiB0aGUgc2xvdC4gIFByb2R1Y2VzIHNsaWdodGx5IG1v cmUgZWZmaWNpZW50IGNvZGUKKH4zMDAgYnl0ZXMpIGFuZCBzaW1wbGlmaWVzIHRoZSBpbXBsZW1l bnRhdGlvbi4KClNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgV2lsY294IDxtYXdpbGNveEBtaWNyb3Nv ZnQuY29tPgotLS0KIGluY2x1ZGUvbGludXgveGFycmF5LmggfCA4MiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogbGliL3JhZGl4LXRyZWUuYyAgICAg ICB8IDY1ICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBj aGFuZ2VkLCAxMDAgaW5zZXJ0aW9ucygrKSwgNDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9saW51eC94YXJyYXkuaCBiL2luY2x1ZGUvbGludXgveGFycmF5LmgKaW5kZXggNDlm ZmZjMzU0NDMxLi5mMTc1MzUwNTYwZmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgveGFycmF5 LmgKKysrIGIvaW5jbHVkZS9saW51eC94YXJyYXkuaApAQCAtNDksNiArNDksMTcgQEAgc3RhdGlj IGlubGluZSBib29sIHhhX2lzX3ZhbHVlKGNvbnN0IHZvaWQgKmVudHJ5KQogCXJldHVybiAodW5z aWduZWQgbG9uZyllbnRyeSAmIDE7CiB9CiAKKy8qKgorICogeGFfaXNfaW50ZXJuYWwoKSAtIElz IHRoZSBlbnRyeSBhbiBpbnRlcm5hbCBlbnRyeT8KKyAqIEBlbnRyeTogRW50cnkgcmV0cmlldmVk IGZyb20gdGhlIFhBcnJheQorICoKKyAqIFJldHVybjogJXRydWUgaWYgdGhlIGVudHJ5IGlzIGFu IGludGVybmFsIGVudHJ5LgorICovCitzdGF0aWMgaW5saW5lIGJvb2wgeGFfaXNfaW50ZXJuYWwo Y29uc3Qgdm9pZCAqZW50cnkpCit7CisJcmV0dXJuICgodW5zaWduZWQgbG9uZyllbnRyeSAmIDMp ID09IDI7Cit9CisKICNkZWZpbmUgeGFfdHJ5bG9jayh4YSkJCXNwaW5fdHJ5bG9jaygmKHhhKS0+ eGFfbG9jaykKICNkZWZpbmUgeGFfbG9jayh4YSkJCXNwaW5fbG9jaygmKHhhKS0+eGFfbG9jaykK ICNkZWZpbmUgeGFfdW5sb2NrKHhhKQkJc3Bpbl91bmxvY2soJih4YSktPnhhX2xvY2spCkBAIC02 MSw0ICs3Miw3NSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgeGFfaXNfdmFsdWUoY29uc3Qgdm9pZCAq ZW50cnkpCiAjZGVmaW5lIHhhX3VubG9ja19pcnFyZXN0b3JlKHhhLCBmbGFncykgXAogCQkJCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJih4YSktPnhhX2xvY2ssIGZsYWdzKQogCisvKiBFdmVyeXRo aW5nIGJlbG93IGhlcmUgaXMgdGhlIEFkdmFuY2VkIEFQSS4gIFByb2NlZWQgd2l0aCBjYXV0aW9u LiAqLworCisvKgorICogVGhlIHhhcnJheSBpcyBjb25zdHJ1Y3RlZCBvdXQgb2YgYSBzZXQgb2Yg J2NodW5rcycgb2YgcG9pbnRlcnMuICBDaG9vc2luZworICogdGhlIGJlc3QgY2h1bmsgc2l6ZSBy ZXF1aXJlcyBzb21lIHRyYWRlb2Zmcy4gIEEgcG93ZXIgb2YgdHdvIHJlY29tbWVuZHMKKyAqIGl0 c2VsZiBzbyB0aGF0IHdlIGNhbiB3YWxrIHRoZSB0cmVlIGJhc2VkIHB1cmVseSBvbiBzaGlmdHMg YW5kIG1hc2tzLgorICogR2VuZXJhbGx5LCB0aGUgbGFyZ2VyIHRoZSBiZXR0ZXI7IGFzIHRoZSBu dW1iZXIgb2Ygc2xvdHMgcGVyIGxldmVsIG9mIHRoZQorICogdHJlZSBpbmNyZWFzZXMsIHRoZSBs ZXNzIHRhbGwgdGhlIHRyZWUgbmVlZHMgdG8gYmUuICBCdXQgdGhhdCBuZWVkcyB0byBiZQorICog YmFsYW5jZWQgYWdhaW5zdCB0aGUgbWVtb3J5IGNvbnN1bXB0aW9uIG9mIGVhY2ggbm9kZS4gIE9u IGEgNjQtYml0IHN5c3RlbSwKKyAqIHhhX25vZGUgaXMgY3VycmVudGx5IDU3NiBieXRlcywgYW5k IHdlIGdldCA3IG9mIHRoZW0gcGVyIDRrQiBwYWdlLiAgSWYgd2UKKyAqIGRvdWJsZWQgdGhlIG51 bWJlciBvZiBzbG90cyBwZXIgbm9kZSwgd2UnZCBnZXQgb25seSAzIG5vZGVzIHBlciA0a0IgcGFn ZS4KKyAqLworI2lmbmRlZiBYQV9DSFVOS19TSElGVAorI2RlZmluZSBYQV9DSFVOS19TSElGVAkJ KENPTkZJR19CQVNFX1NNQUxMID8gNCA6IDYpCisjZW5kaWYKKyNkZWZpbmUgWEFfQ0hVTktfU0la RQkJKDFVTCA8PCBYQV9DSFVOS19TSElGVCkKKyNkZWZpbmUgWEFfQ0hVTktfTUFTSwkJKFhBX0NI VU5LX1NJWkUgLSAxKQorCisvKgorICogSW50ZXJuYWwgZW50cmllcyBoYXZlIHRoZSBib3R0b20g dHdvIGJpdHMgc2V0IHRvIHRoZSB2YWx1ZSAxMGIuICBNb3N0CisgKiBpbnRlcm5hbCBlbnRyaWVz IGFyZSBwb2ludGVycyB0byB0aGUgbmV4dCBub2RlIGluIHRoZSB0cmVlLiAgU2luY2UgdGhlCisg KiBrZXJuZWwgdW5tYXBzIHBhZ2UgMCB0byB0cmFwIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMs IHdlIGNhbiB1c2UgdmFsdWVzCisgKiAwLTEwMjMgZm9yIHNwZWNpYWwgcHVycG9zZXMuICBWYWx1 ZXMgMC02MiBhcmUgdXNlZCBmb3Igc2libGluZworICogZW50cmllcy4gIFZhbHVlIDI1NiBpcyB1 c2VkIGZvciB0aGUgcmV0cnkgZW50cnkuCisgKi8KKworLyogUHJpdmF0ZSAqLworc3RhdGljIGlu bGluZSB2b2lkICp4YV9ta19pbnRlcm5hbCh1bnNpZ25lZCBsb25nIHYpCit7CisJcmV0dXJuICh2 b2lkICopKCh2IDw8IDIpIHwgMik7Cit9CisKKy8qIFByaXZhdGUgKi8KK3N0YXRpYyBpbmxpbmUg dW5zaWduZWQgbG9uZyB4YV90b19pbnRlcm5hbChjb25zdCB2b2lkICplbnRyeSkKK3sKKwlyZXR1 cm4gKHVuc2lnbmVkIGxvbmcpZW50cnkgPj4gMjsKK30KKworLyogUHJpdmF0ZSAqLworc3RhdGlj IGlubGluZSBib29sIHhhX2lzX25vZGUoY29uc3Qgdm9pZCAqZW50cnkpCit7CisJcmV0dXJuIHhh X2lzX2ludGVybmFsKGVudHJ5KSAmJiAodW5zaWduZWQgbG9uZyllbnRyeSA+IDQwOTY7Cit9CisK Ky8qIFByaXZhdGUgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCAqeGFfbWtfc2libGluZyh1bnNpZ25l ZCBpbnQgb2Zmc2V0KQoreworCXJldHVybiB4YV9ta19pbnRlcm5hbChvZmZzZXQpOworfQorCisv KiBQcml2YXRlICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgeGFfdG9fc2libGluZyhj b25zdCB2b2lkICplbnRyeSkKK3sKKwlyZXR1cm4geGFfdG9faW50ZXJuYWwoZW50cnkpOworfQor CisvKioKKyAqIHhhX2lzX3NpYmxpbmcoKSAtIElzIHRoZSBlbnRyeSBhIHNpYmxpbmcgZW50cnk/ CisgKiBAZW50cnk6IEVudHJ5IHJldHJpZXZlZCBmcm9tIHRoZSBYQXJyYXkKKyAqCisgKiBSZXR1 cm46ICV0cnVlIGlmIHRoZSBlbnRyeSBpcyBhIHNpYmxpbmcgZW50cnkuCisgKi8KK3N0YXRpYyBp bmxpbmUgYm9vbCB4YV9pc19zaWJsaW5nKGNvbnN0IHZvaWQgKmVudHJ5KQoreworCXJldHVybiBJ U19FTkFCTEVEKENPTkZJR19SQURJWF9UUkVFX01VTFRJT1JERVIpICYmCisJCXhhX2lzX2ludGVy bmFsKGVudHJ5KSAmJgorCQkoZW50cnkgPCB4YV9ta19zaWJsaW5nKFhBX0NIVU5LX1NJWkUgLSAx KSk7Cit9CisKKyNkZWZpbmUgWEFfUkVUUllfRU5UUlkJCXhhX21rX2ludGVybmFsKDI1NikKKwog I2VuZGlmIC8qIF9MSU5VWF9YQVJSQVlfSCAqLwpkaWZmIC0tZ2l0IGEvbGliL3JhZGl4LXRyZWUu YyBiL2xpYi9yYWRpeC10cmVlLmMKaW5kZXggY2RhN2E3MzBlNTkxLi4wYTdhMjFkZDkzOTggMTAw NjQ0Ci0tLSBhL2xpYi9yYWRpeC10cmVlLmMKKysrIGIvbGliL3JhZGl4LXRyZWUuYwpAQCAtMzcs NiArMzcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3JjdXBkYXRlLmg+CiAjaW5jbHVkZSA8bGludXgv c2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPGxpbnV4L3hhcnJh eS5oPgogCiAKIC8qIE51bWJlciBvZiBub2RlcyBpbiBmdWxseSBwb3B1bGF0ZWQgdHJlZSBvZiBn aXZlbiBoZWlnaHQgKi8KQEAgLTk3LDI0ICs5OCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCAqbm9k ZV90b19lbnRyeSh2b2lkICpwdHIpCiAJcmV0dXJuICh2b2lkICopKCh1bnNpZ25lZCBsb25nKXB0 ciB8IFJBRElYX1RSRUVfSU5URVJOQUxfTk9ERSk7CiB9CiAKLSNkZWZpbmUgUkFESVhfVFJFRV9S RVRSWQlub2RlX3RvX2VudHJ5KE5VTEwpCi0KLSNpZmRlZiBDT05GSUdfUkFESVhfVFJFRV9NVUxU SU9SREVSCi0vKiBTaWJsaW5nIHNsb3RzIHBvaW50IGRpcmVjdGx5IHRvIGFub3RoZXIgc2xvdCBp biB0aGUgc2FtZSBub2RlICovCi1zdGF0aWMgaW5saW5lCi1ib29sIGlzX3NpYmxpbmdfZW50cnko Y29uc3Qgc3RydWN0IHJhZGl4X3RyZWVfbm9kZSAqcGFyZW50LCB2b2lkICpub2RlKQotewotCXZv aWQgX19yY3UgKipwdHIgPSBub2RlOwotCXJldHVybiAocGFyZW50LT5zbG90cyA8PSBwdHIpICYm Ci0JCQkocHRyIDwgcGFyZW50LT5zbG90cyArIFJBRElYX1RSRUVfTUFQX1NJWkUpOwotfQotI2Vs c2UKLXN0YXRpYyBpbmxpbmUKLWJvb2wgaXNfc2libGluZ19lbnRyeShjb25zdCBzdHJ1Y3QgcmFk aXhfdHJlZV9ub2RlICpwYXJlbnQsIHZvaWQgKm5vZGUpCi17Ci0JcmV0dXJuIGZhbHNlOwotfQot I2VuZGlmCisjZGVmaW5lIFJBRElYX1RSRUVfUkVUUlkJWEFfUkVUUllfRU5UUlkKIAogc3RhdGlj IGlubGluZSB1bnNpZ25lZCBsb25nCiBnZXRfc2xvdF9vZmZzZXQoY29uc3Qgc3RydWN0IHJhZGl4 X3RyZWVfbm9kZSAqcGFyZW50LCB2b2lkIF9fcmN1ICoqc2xvdCkKQEAgLTEyOCwxNiArMTEyLDEw IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgcmFkaXhfdHJlZV9kZXNjZW5kKGNvbnN0IHN0cnVjdCBy YWRpeF90cmVlX25vZGUgKnBhcmVudCwKIAl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gKGluZGV4ID4+ IHBhcmVudC0+c2hpZnQpICYgUkFESVhfVFJFRV9NQVBfTUFTSzsKIAl2b2lkIF9fcmN1ICoqZW50 cnkgPSByY3VfZGVyZWZlcmVuY2VfcmF3KHBhcmVudC0+c2xvdHNbb2Zmc2V0XSk7CiAKLSNpZmRl ZiBDT05GSUdfUkFESVhfVFJFRV9NVUxUSU9SREVSCi0JaWYgKHJhZGl4X3RyZWVfaXNfaW50ZXJu YWxfbm9kZShlbnRyeSkpIHsKLQkJaWYgKGlzX3NpYmxpbmdfZW50cnkocGFyZW50LCBlbnRyeSkp IHsKLQkJCXZvaWQgX19yY3UgKipzaWJlbnRyeTsKLQkJCXNpYmVudHJ5ID0gKHZvaWQgX19yY3Ug KiopIGVudHJ5X3RvX25vZGUoZW50cnkpOwotCQkJb2Zmc2V0ID0gZ2V0X3Nsb3Rfb2Zmc2V0KHBh cmVudCwgc2liZW50cnkpOwotCQkJZW50cnkgPSByY3VfZGVyZWZlcmVuY2VfcmF3KCpzaWJlbnRy eSk7Ci0JCX0KKwlpZiAoeGFfaXNfc2libGluZyhlbnRyeSkpIHsKKwkJb2Zmc2V0ID0geGFfdG9f c2libGluZyhlbnRyeSk7CisJCWVudHJ5ID0gcmN1X2RlcmVmZXJlbmNlX3JhdyhwYXJlbnQtPnNs b3RzW29mZnNldF0pOwogCX0KLSNlbmRpZgogCiAJKm5vZGVwID0gKHZvaWQgKillbnRyeTsKIAly ZXR1cm4gb2Zmc2V0OwpAQCAtMjk5LDEwICsyNzcsMTAgQEAgc3RhdGljIHZvaWQgZHVtcF9ub2Rl KHN0cnVjdCByYWRpeF90cmVlX25vZGUgKm5vZGUsIHVuc2lnbmVkIGxvbmcgaW5kZXgpCiAJCX0g ZWxzZSBpZiAoIXJhZGl4X3RyZWVfaXNfaW50ZXJuYWxfbm9kZShlbnRyeSkpIHsKIAkJCXByX2Rl YnVnKCJyYWRpeCBlbnRyeSAlcCBvZmZzZXQgJWxkIGluZGljZXMgJWx1LSVsdSBwYXJlbnQgJXBc biIsCiAJCQkJCWVudHJ5LCBpLCBmaXJzdCwgbGFzdCwgbm9kZSk7Ci0JCX0gZWxzZSBpZiAoaXNf c2libGluZ19lbnRyeShub2RlLCBlbnRyeSkpIHsKKwkJfSBlbHNlIGlmICh4YV9pc19zaWJsaW5n KGVudHJ5KSkgewogCQkJcHJfZGVidWcoInJhZGl4IHNibG5nICVwIG9mZnNldCAlbGQgaW5kaWNl cyAlbHUtJWx1IHBhcmVudCAlcCB2YWwgJXBcbiIsCiAJCQkJCWVudHJ5LCBpLCBmaXJzdCwgbGFz dCwgbm9kZSwKLQkJCQkJKih2b2lkICoqKWVudHJ5X3RvX25vZGUoZW50cnkpKTsKKwkJCQkJbm9k ZS0+c2xvdHNbeGFfdG9fc2libGluZyhlbnRyeSldKTsKIAkJfSBlbHNlIHsKIAkJCWR1bXBfbm9k ZShlbnRyeV90b19ub2RlKGVudHJ5KSwgZmlyc3QpOwogCQl9CkBAIC04NzIsOCArODUwLDcgQEAg c3RhdGljIHZvaWQgcmFkaXhfdHJlZV9mcmVlX25vZGVzKHN0cnVjdCByYWRpeF90cmVlX25vZGUg Km5vZGUpCiAKIAlmb3IgKDs7KSB7CiAJCXZvaWQgKmVudHJ5ID0gcmN1X2RlcmVmZXJlbmNlX3Jh dyhjaGlsZC0+c2xvdHNbb2Zmc2V0XSk7Ci0JCWlmIChyYWRpeF90cmVlX2lzX2ludGVybmFsX25v ZGUoZW50cnkpICYmCi0JCQkJCSFpc19zaWJsaW5nX2VudHJ5KGNoaWxkLCBlbnRyeSkpIHsKKwkJ aWYgKHhhX2lzX25vZGUoZW50cnkpKSB7CiAJCQljaGlsZCA9IGVudHJ5X3RvX25vZGUoZW50cnkp OwogCQkJb2Zmc2V0ID0gMDsKIAkJCWNvbnRpbnVlOwpAQCAtODk1LDcgKzg3Miw3IEBAIHN0YXRp YyB2b2lkIHJhZGl4X3RyZWVfZnJlZV9ub2RlcyhzdHJ1Y3QgcmFkaXhfdHJlZV9ub2RlICpub2Rl KQogc3RhdGljIGlubGluZSBpbnQgaW5zZXJ0X2VudHJpZXMoc3RydWN0IHJhZGl4X3RyZWVfbm9k ZSAqbm9kZSwKIAkJdm9pZCBfX3JjdSAqKnNsb3QsIHZvaWQgKml0ZW0sIHVuc2lnbmVkIG9yZGVy LCBib29sIHJlcGxhY2UpCiB7Ci0Jc3RydWN0IHJhZGl4X3RyZWVfbm9kZSAqY2hpbGQ7CisJdm9p ZCAqc2libGluZzsKIAl1bnNpZ25lZCBpLCBuLCB0YWcsIG9mZnNldCwgdGFncyA9IDA7CiAKIAlp ZiAobm9kZSkgewpAQCAtOTEzLDcgKzg5MCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGluc2VydF9l bnRyaWVzKHN0cnVjdCByYWRpeF90cmVlX25vZGUgKm5vZGUsCiAJCW9mZnNldCA9IG9mZnNldCAm IH4obiAtIDEpOwogCQlzbG90ID0gJm5vZGUtPnNsb3RzW29mZnNldF07CiAJfQotCWNoaWxkID0g bm9kZV90b19lbnRyeShzbG90KTsKKwlzaWJsaW5nID0geGFfbWtfc2libGluZyhvZmZzZXQpOwog CiAJZm9yIChpID0gMDsgaSA8IG47IGkrKykgewogCQlpZiAoc2xvdFtpXSkgewpAQCAtOTMwLDcg KzkwNyw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGluc2VydF9lbnRyaWVzKHN0cnVjdCByYWRpeF90 cmVlX25vZGUgKm5vZGUsCiAJZm9yIChpID0gMDsgaSA8IG47IGkrKykgewogCQlzdHJ1Y3QgcmFk aXhfdHJlZV9ub2RlICpvbGQgPSByY3VfZGVyZWZlcmVuY2VfcmF3KHNsb3RbaV0pOwogCQlpZiAo aSkgewotCQkJcmN1X2Fzc2lnbl9wb2ludGVyKHNsb3RbaV0sIGNoaWxkKTsKKwkJCXJjdV9hc3Np Z25fcG9pbnRlcihzbG90W2ldLCBzaWJsaW5nKTsKIAkJCWZvciAodGFnID0gMDsgdGFnIDwgUkFE SVhfVFJFRV9NQVhfVEFHUzsgdGFnKyspCiAJCQkJaWYgKHRhZ3MgJiAoMSA8PCB0YWcpKQogCQkJ CQl0YWdfY2xlYXIobm9kZSwgdGFnLCBvZmZzZXQgKyBpKTsKQEAgLTk0MCw5ICs5MTcsNyBAQCBz dGF0aWMgaW5saW5lIGludCBpbnNlcnRfZW50cmllcyhzdHJ1Y3QgcmFkaXhfdHJlZV9ub2RlICpu b2RlLAogCQkJCWlmICh0YWdzICYgKDEgPDwgdGFnKSkKIAkJCQkJdGFnX3NldChub2RlLCB0YWcs IG9mZnNldCk7CiAJCX0KLQkJaWYgKHJhZGl4X3RyZWVfaXNfaW50ZXJuYWxfbm9kZShvbGQpICYm Ci0JCQkJCSFpc19zaWJsaW5nX2VudHJ5KG5vZGUsIG9sZCkgJiYKLQkJCQkJKG9sZCAhPSBSQURJ WF9UUkVFX1JFVFJZKSkKKwkJaWYgKHhhX2lzX25vZGUob2xkKSkKIAkJCXJhZGl4X3RyZWVfZnJl ZV9ub2RlcyhvbGQpOwogCQlpZiAoeGFfaXNfdmFsdWUob2xkKSkKIAkJCW5vZGUtPmV4Y2VwdGlv bmFsLS07CkBAIC0xMTAxLDEwICsxMDc2LDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCByZXBsYWNl X3NpYmxpbmdfZW50cmllcyhzdHJ1Y3QgcmFkaXhfdHJlZV9ub2RlICpub2RlLAogCQkJCXZvaWQg X19yY3UgKipzbG90LCBpbnQgY291bnQsIGludCBleGNlcHRpb25hbCkKIHsKICNpZmRlZiBDT05G SUdfUkFESVhfVFJFRV9NVUxUSU9SREVSCi0Jdm9pZCAqcHRyID0gbm9kZV90b19lbnRyeShzbG90 KTsKLQl1bnNpZ25lZCBvZmZzZXQgPSBnZXRfc2xvdF9vZmZzZXQobm9kZSwgc2xvdCkgKyAxOwor CXVuc2lnbmVkIG9mZnNldCA9IGdldF9zbG90X29mZnNldChub2RlLCBzbG90KTsKKwl2b2lkICpw dHIgPSB4YV9ta19zaWJsaW5nKG9mZnNldCk7CiAKLQl3aGlsZSAob2Zmc2V0IDwgUkFESVhfVFJF RV9NQVBfU0laRSkgeworCXdoaWxlICgrK29mZnNldCA8IFJBRElYX1RSRUVfTUFQX1NJWkUpIHsK IAkJaWYgKHJjdV9kZXJlZmVyZW5jZV9yYXcobm9kZS0+c2xvdHNbb2Zmc2V0XSkgIT0gcHRyKQog CQkJYnJlYWs7CiAJCWlmIChjb3VudCA8IDApIHsKQEAgLTExMTIsNyArMTA4Nyw2IEBAIHN0YXRp YyBpbmxpbmUgdm9pZCByZXBsYWNlX3NpYmxpbmdfZW50cmllcyhzdHJ1Y3QgcmFkaXhfdHJlZV9u b2RlICpub2RlLAogCQkJbm9kZS0+Y291bnQtLTsKIAkJfQogCQlub2RlLT5leGNlcHRpb25hbCAr PSBleGNlcHRpb25hbDsKLQkJb2Zmc2V0Kys7CiAJfQogI2VuZGlmCiB9CkBAIC0xMzExLDggKzEy ODUsNyBAQCBpbnQgcmFkaXhfdHJlZV9zcGxpdChzdHJ1Y3QgcmFkaXhfdHJlZV9yb290ICpyb290 LCB1bnNpZ25lZCBsb25nIGluZGV4LAogCQkJdGFncyB8PSAxIDw8IHRhZzsKIAogCWZvciAoZW5k ID0gb2Zmc2V0ICsgMTsgZW5kIDwgUkFESVhfVFJFRV9NQVBfU0laRTsgZW5kKyspIHsKLQkJaWYg KCFpc19zaWJsaW5nX2VudHJ5KHBhcmVudCwKLQkJCQlyY3VfZGVyZWZlcmVuY2VfcmF3KHBhcmVu dC0+c2xvdHNbZW5kXSkpKQorCQlpZiAoIXhhX2lzX3NpYmxpbmcocmN1X2RlcmVmZXJlbmNlX3Jh dyhwYXJlbnQtPnNsb3RzW2VuZF0pKSkKIAkJCWJyZWFrOwogCQlmb3IgKHRhZyA9IDA7IHRhZyA8 IFJBRElYX1RSRUVfTUFYX1RBR1M7IHRhZysrKQogCQkJaWYgKHRhZ3MgJiAoMSA8PCB0YWcpKQpA QCAtMTYwOCwxMSArMTU4MSw5IEBAIHN0YXRpYyB2b2lkIHNldF9pdGVyX3RhZ3Moc3RydWN0IHJh ZGl4X3RyZWVfaXRlciAqaXRlciwKIHN0YXRpYyB2b2lkIF9fcmN1ICoqc2tpcF9zaWJsaW5ncyhz dHJ1Y3QgcmFkaXhfdHJlZV9ub2RlICoqbm9kZXAsCiAJCQl2b2lkIF9fcmN1ICoqc2xvdCwgc3Ry dWN0IHJhZGl4X3RyZWVfaXRlciAqaXRlcikKIHsKLQl2b2lkICpzaWIgPSBub2RlX3RvX2VudHJ5 KHNsb3QgLSAxKTsKLQogCXdoaWxlIChpdGVyLT5pbmRleCA8IGl0ZXItPm5leHRfaW5kZXgpIHsK IAkJKm5vZGVwID0gcmN1X2RlcmVmZXJlbmNlX3Jhdygqc2xvdCk7Ci0JCWlmICgqbm9kZXAgJiYg Km5vZGVwICE9IHNpYikKKwkJaWYgKCpub2RlcCAmJiAheGFfaXNfc2libGluZygqbm9kZXApKQog CQkJcmV0dXJuIHNsb3Q7CiAJCXNsb3QrKzsKIAkJaXRlci0+aW5kZXggPSBfX3JhZGl4X3RyZWVf aXRlcl9hZGQoaXRlciwgMSk7CkBAIC0xNzYzLDcgKzE3MzQsNyBAQCB2b2lkIF9fcmN1ICoqcmFk aXhfdHJlZV9uZXh0X2NodW5rKGNvbnN0IHN0cnVjdCByYWRpeF90cmVlX3Jvb3QgKnJvb3QsCiAJ CQkJd2hpbGUgKCsrb2Zmc2V0CTwgUkFESVhfVFJFRV9NQVBfU0laRSkgewogCQkJCQl2b2lkICpz bG90ID0gcmN1X2RlcmVmZXJlbmNlX3JhdygKIAkJCQkJCQlub2RlLT5zbG90c1tvZmZzZXRdKTsK LQkJCQkJaWYgKGlzX3NpYmxpbmdfZW50cnkobm9kZSwgc2xvdCkpCisJCQkJCWlmICh4YV9pc19z aWJsaW5nKHNsb3QpKQogCQkJCQkJY29udGludWU7CiAJCQkJCWlmIChzbG90KQogCQkJCQkJYnJl YWs7Cg==