Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753363AbaBCV7Z (ORCPT ); Mon, 3 Feb 2014 16:59:25 -0500 Received: from mail-ve0-f177.google.com ([209.85.128.177]:59085 "EHLO mail-ve0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753100AbaBCV7V (ORCPT ); Mon, 3 Feb 2014 16:59:21 -0500 MIME-Version: 1.0 In-Reply-To: References: <1391013467-7598-1-git-send-email-ilya.dryomov@inktank.com> <20140130075421.GA10050@infradead.org> <20140203102943.GF11829@infradead.org> Date: Mon, 3 Feb 2014 13:59:19 -0800 X-Google-Sender-Auth: 4KwRPHC1aGSel94QpDTFNLvcEKc Message-ID: Subject: Re: [PATCH v2] ceph: fix posix ACL hooks From: Linus Torvalds To: Christoph Hellwig Cc: Ilya Dryomov , Sage Weil , Dave Jones , Linux Kernel Mailing List , ceph-devel@vger.kernel.org, linux-fsdevel , Al Viro , Guangliang Zhao , Li Wang , zheng.z.yan@intel.com Content-Type: multipart/mixed; boundary=bcaec547c9cfb9e59804f187a280 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --bcaec547c9cfb9e59804f187a280 Content-Type: text/plain; charset=UTF-8 On Mon, Feb 3, 2014 at 1:03 PM, Linus Torvalds wrote: > > What do you think? I guess this patch could be split up into two: one > that does the "vfs_xyz()" helper functions, and another that does the > inode_permission() change. I tied them together mainly because I > started with the inode_permission() change, and that required the > vfs_xyz() change. Ok, this is the split-up. I haven't completed the "make allmodconfig" for the first patch yet, so I might have split this wrong, but it was fairly well separated and I'm pretty sure that this is fine. I do actually agree that the second patch isn't exactly pretty. Passing in both dentry and inode is redundant, and calling the function "inode_permission()" is now a misnomer. But it makes it a lot easier to see the differences this way in the diff (particularly word-diff), so I think a renaming and/or dropping the inode parameter would better be done as a separate patch anyway. And no, as far as the first patch is concerned, I certainly wouldn't hate dropping the first 'parent' argument from the vfs_xyzzy() functions either, since that *should* be redundant, but quite frankly, I didn't want to think too much about that, and this was the simple conversions (and all callers were quite happy with dropping the inode and replacing it with the dentry). Linus --bcaec547c9cfb9e59804f187a280 Content-Type: application/octet-stream; name=vfs-function-cleanup Content-Disposition: attachment; filename=vfs-function-cleanup Content-Transfer-Encoding: base64 X-Attachment-Id: f_hr8a2z8y1 Y29tbWl0IGZmNGJlMDk0MmJjNTRmNjM2ZmNlMjRiNjgyY2FlYTJhOWRmMDBkMDgKQXV0aG9yOiBM aW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+CkRhdGU6ICAgTW9u IEZlYiAzIDEzOjE3OjI5IDIwMTQgLTA4MDAKCiAgICBQdXNoIGRlbnRyeSBwb2ludGVyIGRvd24g dG8gdmZzX3h5enp5KCkgaGVscGVyIGZ1bmN0aW9ucwogICAgCiAgICBUaGlzIGFjdHVhbGx5IGVu ZHMgdXAgYmVpbmcgY2xvc2VyIHRvIHdoYXQgdGhlIGNhbGxlcnMgd2FudCBhbnl3YXksIHNvCiAg ICBpdCBzaW1wbGlmaWVzIG1vc3QgY2FsbCBzaXRlcy4gIEFuZCB3ZSdsbCBldmVudHVhbGx5IHdh bnQgdG8gcHVzaCBkb3duCiAgICB0aGUgZGVudHJ5IHBvaW50ZXIgdG8gdGhlIHBlcm1pc3Npb24g Y2hlY2tpbmcgcm91dGluZXMsIHdoaWNoIGluIHR1cm4KICAgIHJlcXVpcmVzIHRoaXMuCiAgICAK ICAgIFNpZ25lZC1vZmYtYnk6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0 aW9uLm9yZz4KLS0tCiBkcml2ZXJzL2Jhc2UvZGV2dG1wZnMuYyAgICAgICAgICAgICAgICAgICAg ICAgICB8ICA4ICstLQogZHJpdmVycy9zdGFnaW5nL2x1c3RyZS9sdXN0cmUvbHZmcy9sdmZzX2xp bnV4LmMgfCAgNCArLQogZnMvY2FjaGVmaWxlcy9uYW1laS5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAxMSArKy0tCiBmcy9lY3J5cHRmcy9pbm9kZS5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDIyICsrKy0tLS0KIGZzL25hbWVpLmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgODYgKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogZnMvbmZzZC9uZnM0 cmVjb3Zlci5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArLQogZnMvbmZzZC92ZnMu YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyOCArKystLS0tLQogaW5jbHVk ZS9saW51eC9mcy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNiArKy0tLQogaXBj L21xdWV1ZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCArLS0KIG5l dC91bml4L2FmX3VuaXguYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIDEw IGZpbGVzIGNoYW5nZWQsIDk4IGluc2VydGlvbnMoKyksIDkzIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvYmFzZS9kZXZ0bXBmcy5jIGIvZHJpdmVycy9iYXNlL2RldnRtcGZzLmMK aW5kZXggMjU3OThkYjE0NTUzLi5mYjgxZGU5YTc4YTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmFz ZS9kZXZ0bXBmcy5jCisrKyBiL2RyaXZlcnMvYmFzZS9kZXZ0bXBmcy5jCkBAIC0xNTcsNyArMTU3 LDcgQEAgc3RhdGljIGludCBkZXZfbWtkaXIoY29uc3QgY2hhciAqbmFtZSwgdW1vZGVfdCBtb2Rl KQogCWlmIChJU19FUlIoZGVudHJ5KSkKIAkJcmV0dXJuIFBUUl9FUlIoZGVudHJ5KTsKIAotCWVy ciA9IHZmc19ta2RpcihwYXRoLmRlbnRyeS0+ZF9pbm9kZSwgZGVudHJ5LCBtb2RlKTsKKwllcnIg PSB2ZnNfbWtkaXIocGF0aC5kZW50cnksIGRlbnRyeSwgbW9kZSk7CiAJaWYgKCFlcnIpCiAJCS8q IG1hcmsgYXMga2VybmVsLWNyZWF0ZWQgaW5vZGUgKi8KIAkJZGVudHJ5LT5kX2lub2RlLT5pX3By aXZhdGUgPSAmdGhyZWFkOwpAQCAtMjA3LDcgKzIwNyw3IEBAIHN0YXRpYyBpbnQgaGFuZGxlX2Ny ZWF0ZShjb25zdCBjaGFyICpub2RlbmFtZSwgdW1vZGVfdCBtb2RlLCBrdWlkX3QgdWlkLAogCWlm IChJU19FUlIoZGVudHJ5KSkKIAkJcmV0dXJuIFBUUl9FUlIoZGVudHJ5KTsKIAotCWVyciA9IHZm c19ta25vZChwYXRoLmRlbnRyeS0+ZF9pbm9kZSwgZGVudHJ5LCBtb2RlLCBkZXYtPmRldnQpOwor CWVyciA9IHZmc19ta25vZChwYXRoLmRlbnRyeSwgZGVudHJ5LCBtb2RlLCBkZXYtPmRldnQpOwog CWlmICghZXJyKSB7CiAJCXN0cnVjdCBpYXR0ciBuZXdhdHRyczsKIApAQCAtMjM3LDcgKzIzNyw3 IEBAIHN0YXRpYyBpbnQgZGV2X3JtZGlyKGNvbnN0IGNoYXIgKm5hbWUpCiAJCXJldHVybiBQVFJf RVJSKGRlbnRyeSk7CiAJaWYgKGRlbnRyeS0+ZF9pbm9kZSkgewogCQlpZiAoZGVudHJ5LT5kX2lu b2RlLT5pX3ByaXZhdGUgPT0gJnRocmVhZCkKLQkJCWVyciA9IHZmc19ybWRpcihwYXJlbnQuZGVu dHJ5LT5kX2lub2RlLCBkZW50cnkpOworCQkJZXJyID0gdmZzX3JtZGlyKHBhcmVudC5kZW50cnks IGRlbnRyeSk7CiAJCWVsc2UKIAkJCWVyciA9IC1FUEVSTTsKIAl9IGVsc2UgewpAQCAtMzI0LDcg KzMyNCw3IEBAIHN0YXRpYyBpbnQgaGFuZGxlX3JlbW92ZShjb25zdCBjaGFyICpub2RlbmFtZSwg c3RydWN0IGRldmljZSAqZGV2KQogCQkJbXV0ZXhfbG9jaygmZGVudHJ5LT5kX2lub2RlLT5pX211 dGV4KTsKIAkJCW5vdGlmeV9jaGFuZ2UoZGVudHJ5LCAmbmV3YXR0cnMsIE5VTEwpOwogCQkJbXV0 ZXhfdW5sb2NrKCZkZW50cnktPmRfaW5vZGUtPmlfbXV0ZXgpOwotCQkJZXJyID0gdmZzX3VubGlu ayhwYXJlbnQuZGVudHJ5LT5kX2lub2RlLCBkZW50cnksIE5VTEwpOworCQkJZXJyID0gdmZzX3Vu bGluayhwYXJlbnQuZGVudHJ5LCBkZW50cnksIE5VTEwpOwogCQkJaWYgKCFlcnIgfHwgZXJyID09 IC1FTk9FTlQpCiAJCQkJZGVsZXRlZCA9IDE7CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3Rh Z2luZy9sdXN0cmUvbHVzdHJlL2x2ZnMvbHZmc19saW51eC5jIGIvZHJpdmVycy9zdGFnaW5nL2x1 c3RyZS9sdXN0cmUvbHZmcy9sdmZzX2xpbnV4LmMKaW5kZXggNDI4ZmZkOGMzN2I3Li5jNGFhMjYw ZGVmMTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy9sdXN0cmUvbHVzdHJlL2x2ZnMvbHZm c19saW51eC5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9sdXN0cmUvbHVzdHJlL2x2ZnMvbHZmc19s aW51eC5jCkBAIC0yMjIsOCArMjIyLDggQEAgaW50IGx1c3RyZV9yZW5hbWUoc3RydWN0IGRlbnRy eSAqZGlyLCBzdHJ1Y3QgdmZzbW91bnQgKm1udCwKIAlpZiAoSVNfRVJSKGRjaGlsZF9uZXcpKQog CQlHT1RPKHB1dF9vbGQsIGVyciA9IFBUUl9FUlIoZGNoaWxkX25ldykpOwogCi0JZXJyID0gbGxf dmZzX3JlbmFtZShkaXItPmRfaW5vZGUsIGRjaGlsZF9vbGQsIG1udCwKLQkJCSAgICBkaXItPmRf aW5vZGUsIGRjaGlsZF9uZXcsIG1udCwgTlVMTCk7CisJZXJyID0gbGxfdmZzX3JlbmFtZShkaXIs IGRjaGlsZF9vbGQsIG1udCwKKwkJCSAgICBkaXIsIGRjaGlsZF9uZXcsIG1udCwgTlVMTCk7CiAK IAlkcHV0KGRjaGlsZF9uZXcpOwogcHV0X29sZDoKZGlmZiAtLWdpdCBhL2ZzL2NhY2hlZmlsZXMv bmFtZWkuYyBiL2ZzL2NhY2hlZmlsZXMvbmFtZWkuYwppbmRleCBjYTY1ZjM5ZGM4ZGMuLmM0YjY3 MTI5MDllMyAxMDA2NDQKLS0tIGEvZnMvY2FjaGVmaWxlcy9uYW1laS5jCisrKyBiL2ZzL2NhY2hl ZmlsZXMvbmFtZWkuYwpAQCAtMjk0LDcgKzI5NCw3IEBAIHN0YXRpYyBpbnQgY2FjaGVmaWxlc19i dXJ5X29iamVjdChzdHJ1Y3QgY2FjaGVmaWxlc19jYWNoZSAqY2FjaGUsCiAJCWlmIChyZXQgPCAw KSB7CiAJCQljYWNoZWZpbGVzX2lvX2Vycm9yKGNhY2hlLCAiVW5saW5rIHNlY3VyaXR5IGVycm9y Iik7CiAJCX0gZWxzZSB7Ci0JCQlyZXQgPSB2ZnNfdW5saW5rKGRpci0+ZF9pbm9kZSwgcmVwLCBO VUxMKTsKKwkJCXJldCA9IHZmc191bmxpbmsoZGlyLCByZXAsIE5VTEwpOwogCiAJCQlpZiAocHJl ZW1wdGl2ZSkKIAkJCQljYWNoZWZpbGVzX21hcmtfb2JqZWN0X2J1cmllZChjYWNoZSwgcmVwKTsK QEAgLTM5NSw4ICszOTUsNyBAQCB0cnlfYWdhaW46CiAJaWYgKHJldCA8IDApIHsKIAkJY2FjaGVm aWxlc19pb19lcnJvcihjYWNoZSwgIlJlbmFtZSBzZWN1cml0eSBlcnJvciAlZCIsIHJldCk7CiAJ fSBlbHNlIHsKLQkJcmV0ID0gdmZzX3JlbmFtZShkaXItPmRfaW5vZGUsIHJlcCwKLQkJCQkgY2Fj aGUtPmdyYXZleWFyZC0+ZF9pbm9kZSwgZ3JhdmUsIE5VTEwpOworCQlyZXQgPSB2ZnNfcmVuYW1l KGRpciwgcmVwLCBjYWNoZS0+Z3JhdmV5YXJkLCBncmF2ZSwgTlVMTCk7CiAJCWlmIChyZXQgIT0g MCAmJiByZXQgIT0gLUVOT01FTSkKIAkJCWNhY2hlZmlsZXNfaW9fZXJyb3IoY2FjaGUsCiAJCQkJ CSAgICAiUmVuYW1lIGZhaWxlZCB3aXRoIGVycm9yICVkIiwgcmV0KTsKQEAgLTUzNyw3ICs1MzYs NyBAQCBsb29rdXBfYWdhaW46CiAJCQlpZiAocmV0IDwgMCkKIAkJCQlnb3RvIGNyZWF0ZV9lcnJv cjsKIAkJCXN0YXJ0ID0gamlmZmllczsKLQkJCXJldCA9IHZmc19ta2RpcihkaXItPmRfaW5vZGUs IG5leHQsIDApOworCQkJcmV0ID0gdmZzX21rZGlyKGRpciwgbmV4dCwgMCk7CiAJCQljYWNoZWZp bGVzX2hpc3QoY2FjaGVmaWxlc19ta2Rpcl9oaXN0b2dyYW0sIHN0YXJ0KTsKIAkJCWlmIChyZXQg PCAwKQogCQkJCWdvdG8gY3JlYXRlX2Vycm9yOwpAQCAtNTY2LDcgKzU2NSw3IEBAIGxvb2t1cF9h Z2FpbjoKIAkJCWlmIChyZXQgPCAwKQogCQkJCWdvdG8gY3JlYXRlX2Vycm9yOwogCQkJc3RhcnQg PSBqaWZmaWVzOwotCQkJcmV0ID0gdmZzX2NyZWF0ZShkaXItPmRfaW5vZGUsIG5leHQsIFNfSUZS RUcsIHRydWUpOworCQkJcmV0ID0gdmZzX2NyZWF0ZShkaXIsIG5leHQsIFNfSUZSRUcsIHRydWUp OwogCQkJY2FjaGVmaWxlc19oaXN0KGNhY2hlZmlsZXNfY3JlYXRlX2hpc3RvZ3JhbSwgc3RhcnQp OwogCQkJaWYgKHJldCA8IDApCiAJCQkJZ290byBjcmVhdGVfZXJyb3I7CkBAIC03NTUsNyArNzU0 LDcgQEAgc3RydWN0IGRlbnRyeSAqY2FjaGVmaWxlc19nZXRfZGlyZWN0b3J5KHN0cnVjdCBjYWNo ZWZpbGVzX2NhY2hlICpjYWNoZSwKIAkJcmV0ID0gc2VjdXJpdHlfcGF0aF9ta2RpcigmcGF0aCwg c3ViZGlyLCAwNzAwKTsKIAkJaWYgKHJldCA8IDApCiAJCQlnb3RvIG1rZGlyX2Vycm9yOwotCQly ZXQgPSB2ZnNfbWtkaXIoZGlyLT5kX2lub2RlLCBzdWJkaXIsIDA3MDApOworCQlyZXQgPSB2ZnNf bWtkaXIoZGlyLCBzdWJkaXIsIDA3MDApOwogCQlpZiAocmV0IDwgMCkKIAkJCWdvdG8gbWtkaXJf ZXJyb3I7CiAKZGlmZiAtLWdpdCBhL2ZzL2VjcnlwdGZzL2lub2RlLmMgYi9mcy9lY3J5cHRmcy9p bm9kZS5jCmluZGV4IGIxNjdjYTQ4YjhlZS4uYTdhODIzZjk4MGM1IDEwMDY0NAotLS0gYS9mcy9l Y3J5cHRmcy9pbm9kZS5jCisrKyBiL2ZzL2VjcnlwdGZzL2lub2RlLmMKQEAgLTE1Myw3ICsxNTMs NyBAQCBzdGF0aWMgaW50IGVjcnlwdGZzX2RvX3VubGluayhzdHJ1Y3QgaW5vZGUgKmRpciwgc3Ry dWN0IGRlbnRyeSAqZGVudHJ5LAogCiAJZGdldChsb3dlcl9kZW50cnkpOwogCWxvd2VyX2Rpcl9k ZW50cnkgPSBsb2NrX3BhcmVudChsb3dlcl9kZW50cnkpOwotCXJjID0gdmZzX3VubGluayhsb3dl cl9kaXJfaW5vZGUsIGxvd2VyX2RlbnRyeSwgTlVMTCk7CisJcmMgPSB2ZnNfdW5saW5rKGxvd2Vy X2Rpcl9kZW50cnksIGxvd2VyX2RlbnRyeSwgTlVMTCk7CiAJaWYgKHJjKSB7CiAJCXByaW50ayhL RVJOX0VSUiAiRXJyb3IgaW4gdmZzX3VubGluazsgcmMgPSBbJWRdXG4iLCByYyk7CiAJCWdvdG8g b3V0X3VubG9jazsKQEAgLTE5OCw3ICsxOTgsNyBAQCBlY3J5cHRmc19kb19jcmVhdGUoc3RydWN0 IGlub2RlICpkaXJlY3RvcnlfaW5vZGUsCiAJCWlub2RlID0gRVJSX0NBU1QobG93ZXJfZGlyX2Rl bnRyeSk7CiAJCWdvdG8gb3V0OwogCX0KLQlyYyA9IHZmc19jcmVhdGUobG93ZXJfZGlyX2RlbnRy eS0+ZF9pbm9kZSwgbG93ZXJfZGVudHJ5LCBtb2RlLCB0cnVlKTsKKwlyYyA9IHZmc19jcmVhdGUo bG93ZXJfZGlyX2RlbnRyeSwgbG93ZXJfZGVudHJ5LCBtb2RlLCB0cnVlKTsKIAlpZiAocmMpIHsK IAkJcHJpbnRrKEtFUk5fRVJSICIlczogRmFpbHVyZSB0byBjcmVhdGUgZGVudHJ5IGluIGxvd2Vy IGZzOyAiCiAJCSAgICAgICAicmMgPSBbJWRdXG4iLCBfX2Z1bmNfXywgcmMpOwpAQCAtMjA4LDcg KzIwOCw3IEBAIGVjcnlwdGZzX2RvX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpcmVjdG9yeV9pbm9k ZSwKIAlpbm9kZSA9IF9fZWNyeXB0ZnNfZ2V0X2lub2RlKGxvd2VyX2RlbnRyeS0+ZF9pbm9kZSwK IAkJCQkgICAgIGRpcmVjdG9yeV9pbm9kZS0+aV9zYik7CiAJaWYgKElTX0VSUihpbm9kZSkpIHsK LQkJdmZzX3VubGluayhsb3dlcl9kaXJfZGVudHJ5LT5kX2lub2RlLCBsb3dlcl9kZW50cnksIE5V TEwpOworCQl2ZnNfdW5saW5rKGxvd2VyX2Rpcl9kZW50cnksIGxvd2VyX2RlbnRyeSwgTlVMTCk7 CiAJCWdvdG8gb3V0X2xvY2s7CiAJfQogCWZzc3RhY2tfY29weV9hdHRyX3RpbWVzKGRpcmVjdG9y eV9pbm9kZSwgbG93ZXJfZGlyX2RlbnRyeS0+ZF9pbm9kZSk7CkBAIC00NzQsOCArNDc0LDcgQEAg c3RhdGljIGludCBlY3J5cHRmc19saW5rKHN0cnVjdCBkZW50cnkgKm9sZF9kZW50cnksIHN0cnVj dCBpbm9kZSAqZGlyLAogCWRnZXQobG93ZXJfb2xkX2RlbnRyeSk7CiAJZGdldChsb3dlcl9uZXdf ZGVudHJ5KTsKIAlsb3dlcl9kaXJfZGVudHJ5ID0gbG9ja19wYXJlbnQobG93ZXJfbmV3X2RlbnRy eSk7Ci0JcmMgPSB2ZnNfbGluayhsb3dlcl9vbGRfZGVudHJ5LCBsb3dlcl9kaXJfZGVudHJ5LT5k X2lub2RlLAotCQkgICAgICBsb3dlcl9uZXdfZGVudHJ5LCBOVUxMKTsKKwlyYyA9IHZmc19saW5r KGxvd2VyX29sZF9kZW50cnksIGxvd2VyX2Rpcl9kZW50cnksIGxvd2VyX25ld19kZW50cnksIE5V TEwpOwogCWlmIChyYyB8fCAhbG93ZXJfbmV3X2RlbnRyeS0+ZF9pbm9kZSkKIAkJZ290byBvdXRf bG9jazsKIAlyYyA9IGVjcnlwdGZzX2ludGVycG9zZShsb3dlcl9uZXdfZGVudHJ5LCBuZXdfZGVu dHJ5LCBkaXItPmlfc2IpOwpAQCAtNTIwLDggKzUxOSw3IEBAIHN0YXRpYyBpbnQgZWNyeXB0ZnNf c3ltbGluayhzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAogCQkJCQkJ ICBzdHJsZW4oc3ltbmFtZSkpOwogCWlmIChyYykKIAkJZ290byBvdXRfbG9jazsKLQlyYyA9IHZm c19zeW1saW5rKGxvd2VyX2Rpcl9kZW50cnktPmRfaW5vZGUsIGxvd2VyX2RlbnRyeSwKLQkJCSBl bmNvZGVkX3N5bW5hbWUpOworCXJjID0gdmZzX3N5bWxpbmsobG93ZXJfZGlyX2RlbnRyeSwgbG93 ZXJfZGVudHJ5LCBlbmNvZGVkX3N5bW5hbWUpOwogCWtmcmVlKGVuY29kZWRfc3ltbmFtZSk7CiAJ aWYgKHJjIHx8ICFsb3dlcl9kZW50cnktPmRfaW5vZGUpCiAJCWdvdG8gb3V0X2xvY2s7CkBAIC01 NDYsNyArNTQ0LDcgQEAgc3RhdGljIGludCBlY3J5cHRmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKmRp ciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bW9kZV90IG1vZGUKIAogCWxvd2VyX2RlbnRyeSA9 IGVjcnlwdGZzX2RlbnRyeV90b19sb3dlcihkZW50cnkpOwogCWxvd2VyX2Rpcl9kZW50cnkgPSBs b2NrX3BhcmVudChsb3dlcl9kZW50cnkpOwotCXJjID0gdmZzX21rZGlyKGxvd2VyX2Rpcl9kZW50 cnktPmRfaW5vZGUsIGxvd2VyX2RlbnRyeSwgbW9kZSk7CisJcmMgPSB2ZnNfbWtkaXIobG93ZXJf ZGlyX2RlbnRyeSwgbG93ZXJfZGVudHJ5LCBtb2RlKTsKIAlpZiAocmMgfHwgIWxvd2VyX2RlbnRy eS0+ZF9pbm9kZSkKIAkJZ290byBvdXQ7CiAJcmMgPSBlY3J5cHRmc19pbnRlcnBvc2UobG93ZXJf ZGVudHJ5LCBkZW50cnksIGRpci0+aV9zYik7CkBAIC01NzIsNyArNTcwLDcgQEAgc3RhdGljIGlu dCBlY3J5cHRmc19ybWRpcihzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5 KQogCWRnZXQoZGVudHJ5KTsKIAlsb3dlcl9kaXJfZGVudHJ5ID0gbG9ja19wYXJlbnQobG93ZXJf ZGVudHJ5KTsKIAlkZ2V0KGxvd2VyX2RlbnRyeSk7Ci0JcmMgPSB2ZnNfcm1kaXIobG93ZXJfZGly X2RlbnRyeS0+ZF9pbm9kZSwgbG93ZXJfZGVudHJ5KTsKKwlyYyA9IHZmc19ybWRpcihsb3dlcl9k aXJfZGVudHJ5LCBsb3dlcl9kZW50cnkpOwogCWRwdXQobG93ZXJfZGVudHJ5KTsKIAlpZiAoIXJj ICYmIGRlbnRyeS0+ZF9pbm9kZSkKIAkJY2xlYXJfbmxpbmsoZGVudHJ5LT5kX2lub2RlKTsKQEAg LTU5NCw3ICs1OTIsNyBAQCBlY3J5cHRmc19ta25vZChzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0 IGRlbnRyeSAqZGVudHJ5LCB1bW9kZV90IG1vZGUsIGRldl90IGRldgogCiAJbG93ZXJfZGVudHJ5 ID0gZWNyeXB0ZnNfZGVudHJ5X3RvX2xvd2VyKGRlbnRyeSk7CiAJbG93ZXJfZGlyX2RlbnRyeSA9 IGxvY2tfcGFyZW50KGxvd2VyX2RlbnRyeSk7Ci0JcmMgPSB2ZnNfbWtub2QobG93ZXJfZGlyX2Rl bnRyeS0+ZF9pbm9kZSwgbG93ZXJfZGVudHJ5LCBtb2RlLCBkZXYpOworCXJjID0gdmZzX21rbm9k KGxvd2VyX2Rpcl9kZW50cnksIGxvd2VyX2RlbnRyeSwgbW9kZSwgZGV2KTsKIAlpZiAocmMgfHwg IWxvd2VyX2RlbnRyeS0+ZF9pbm9kZSkKIAkJZ290byBvdXQ7CiAJcmMgPSBlY3J5cHRmc19pbnRl cnBvc2UobG93ZXJfZGVudHJ5LCBkZW50cnksIGRpci0+aV9zYik7CkBAIC02MzksOCArNjM3LDgg QEAgZWNyeXB0ZnNfcmVuYW1lKHN0cnVjdCBpbm9kZSAqb2xkX2Rpciwgc3RydWN0IGRlbnRyeSAq b2xkX2RlbnRyeSwKIAkJcmMgPSAtRU5PVEVNUFRZOwogCQlnb3RvIG91dF9sb2NrOwogCX0KLQly YyA9IHZmc19yZW5hbWUobG93ZXJfb2xkX2Rpcl9kZW50cnktPmRfaW5vZGUsIGxvd2VyX29sZF9k ZW50cnksCi0JCQlsb3dlcl9uZXdfZGlyX2RlbnRyeS0+ZF9pbm9kZSwgbG93ZXJfbmV3X2RlbnRy eSwKKwlyYyA9IHZmc19yZW5hbWUobG93ZXJfb2xkX2Rpcl9kZW50cnksIGxvd2VyX29sZF9kZW50 cnksCisJCQlsb3dlcl9uZXdfZGlyX2RlbnRyeSwgbG93ZXJfbmV3X2RlbnRyeSwKIAkJCU5VTEwp OwogCWlmIChyYykKIAkJZ290byBvdXRfbG9jazsKZGlmZiAtLWdpdCBhL2ZzL25hbWVpLmMgYi9m cy9uYW1laS5jCmluZGV4IGQ1ODBkZjJlNjgwNC4uMTQyNzQxZTFhYzllIDEwMDY0NAotLS0gYS9m cy9uYW1laS5jCisrKyBiL2ZzL25hbWVpLmMKQEAgLTIzNjUsOCArMjM2NSw5IEBAIHN0YXRpYyBp bmxpbmUgaW50IGNoZWNrX3N0aWNreShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGlub2RlICpp bm9kZSkKICAqIDEwLiBXZSBkb24ndCBhbGxvdyByZW1vdmFsIG9mIE5GUyBzaWxseXJlbmFtZWQg ZmlsZXM7IGl0J3MgaGFuZGxlZCBieQogICogICAgIG5mc19hc3luY191bmxpbmsoKS4KICAqLwot c3RhdGljIGludCBtYXlfZGVsZXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICp2 aWN0aW0sIGJvb2wgaXNkaXIpCitzdGF0aWMgaW50IG1heV9kZWxldGUoc3RydWN0IGRlbnRyeSAq cGFyZW50LCBzdHJ1Y3QgZGVudHJ5ICp2aWN0aW0sIGJvb2wgaXNkaXIpCiB7CisJc3RydWN0IGlu b2RlICpkaXIgPSBwYXJlbnQtPmRfaW5vZGU7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IHZpY3Rp bS0+ZF9pbm9kZTsKIAlpbnQgZXJyb3I7CiAKQEAgLTI0MDgsOCArMjQwOSw5IEBAIHN0YXRpYyBp bnQgbWF5X2RlbGV0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqdmljdGltLCBi b29sIGlzZGlyKQogICogIDMuIFdlIHNob3VsZCBoYXZlIHdyaXRlIGFuZCBleGVjIHBlcm1pc3Np b25zIG9uIGRpcgogICogIDQuIFdlIGNhbid0IGRvIGl0IGlmIGRpciBpcyBpbW11dGFibGUgKGRv bmUgaW4gcGVybWlzc2lvbigpKQogICovCi1zdGF0aWMgaW5saW5lIGludCBtYXlfY3JlYXRlKHN0 cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpjaGlsZCkKK3N0YXRpYyBpbmxpbmUgaW50 IG1heV9jcmVhdGUoc3RydWN0IGRlbnRyeSAqcGFyZW50LCBzdHJ1Y3QgZGVudHJ5ICpjaGlsZCkK IHsKKwlzdHJ1Y3QgaW5vZGUgKmRpciA9IHBhcmVudC0+ZF9pbm9kZTsKIAlhdWRpdF9pbm9kZV9j aGlsZChkaXIsIGNoaWxkLCBBVURJVF9UWVBFX0NISUxEX0NSRUFURSk7CiAJaWYgKGNoaWxkLT5k X2lub2RlKQogCQlyZXR1cm4gLUVFWElTVDsKQEAgLTI0NjAsMTAgKzI0NjIsMTEgQEAgdm9pZCB1 bmxvY2tfcmVuYW1lKHN0cnVjdCBkZW50cnkgKnAxLCBzdHJ1Y3QgZGVudHJ5ICpwMikKIAl9CiB9 CiAKLWludCB2ZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50 cnksIHVtb2RlX3QgbW9kZSwKK2ludCB2ZnNfY3JlYXRlKHN0cnVjdCBkZW50cnkgKnBhcmVudCwg c3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bW9kZV90IG1vZGUsCiAJCWJvb2wgd2FudF9leGNsKQog ewotCWludCBlcnJvciA9IG1heV9jcmVhdGUoZGlyLCBkZW50cnkpOworCXN0cnVjdCBpbm9kZSAq ZGlyID0gcGFyZW50LT5kX2lub2RlOworCWludCBlcnJvciA9IG1heV9jcmVhdGUocGFyZW50LCBk ZW50cnkpOwogCWlmIChlcnJvcikKIAkJcmV0dXJuIGVycm9yOwogCkBAIC0yODEyLDggKzI4MTUs NyBAQCBzdGF0aWMgaW50IGxvb2t1cF9vcGVuKHN0cnVjdCBuYW1laWRhdGEgKm5kLCBzdHJ1Y3Qg cGF0aCAqcGF0aCwKIAkJZXJyb3IgPSBzZWN1cml0eV9wYXRoX21rbm9kKCZuZC0+cGF0aCwgZGVu dHJ5LCBtb2RlLCAwKTsKIAkJaWYgKGVycm9yKQogCQkJZ290byBvdXRfZHB1dDsKLQkJZXJyb3Ig PSB2ZnNfY3JlYXRlKGRpci0+ZF9pbm9kZSwgZGVudHJ5LCBtb2RlLAotCQkJCSAgIG5kLT5mbGFn cyAmIExPT0tVUF9FWENMKTsKKwkJZXJyb3IgPSB2ZnNfY3JlYXRlKGRpciwgZGVudHJ5LCBtb2Rl LCBuZC0+ZmxhZ3MgJiBMT09LVVBfRVhDTCk7CiAJCWlmIChlcnJvcikKIAkJCWdvdG8gb3V0X2Rw dXQ7CiAJfQpAQCAtMzMyMyw5ICszMzI1LDEwIEBAIHN0cnVjdCBkZW50cnkgKnVzZXJfcGF0aF9j cmVhdGUoaW50IGRmZCwgY29uc3QgY2hhciBfX3VzZXIgKnBhdGhuYW1lLAogfQogRVhQT1JUX1NZ TUJPTCh1c2VyX3BhdGhfY3JlYXRlKTsKIAotaW50IHZmc19ta25vZChzdHJ1Y3QgaW5vZGUgKmRp ciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bW9kZV90IG1vZGUsIGRldl90IGRldikKK2ludCB2 ZnNfbWtub2Qoc3RydWN0IGRlbnRyeSAqcGFyZW50LCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVt b2RlX3QgbW9kZSwgZGV2X3QgZGV2KQogewotCWludCBlcnJvciA9IG1heV9jcmVhdGUoZGlyLCBk ZW50cnkpOworCXN0cnVjdCBpbm9kZSAqZGlyOworCWludCBlcnJvciA9IG1heV9jcmVhdGUocGFy ZW50LCBkZW50cnkpOwogCiAJaWYgKGVycm9yKQogCQlyZXR1cm4gZXJyb3I7CkBAIC0zMzMzLDYg KzMzMzYsNyBAQCBpbnQgdmZzX21rbm9kKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5 ICpkZW50cnksIHVtb2RlX3QgbW9kZSwgZGV2X3QgZGV2KQogCWlmICgoU19JU0NIUihtb2RlKSB8 fCBTX0lTQkxLKG1vZGUpKSAmJiAhY2FwYWJsZShDQVBfTUtOT0QpKQogCQlyZXR1cm4gLUVQRVJN OwogCisJZGlyID0gcGFyZW50LT5kX2lub2RlOwogCWlmICghZGlyLT5pX29wLT5ta25vZCkKIAkJ cmV0dXJuIC1FUEVSTTsKIApAQCAtMzM5MCwxNCArMzM5NCwxNCBAQCByZXRyeToKIAkJZ290byBv dXQ7CiAJc3dpdGNoIChtb2RlICYgU19JRk1UKSB7CiAJCWNhc2UgMDogY2FzZSBTX0lGUkVHOgot CQkJZXJyb3IgPSB2ZnNfY3JlYXRlKHBhdGguZGVudHJ5LT5kX2lub2RlLGRlbnRyeSxtb2RlLHRy dWUpOworCQkJZXJyb3IgPSB2ZnNfY3JlYXRlKHBhdGguZGVudHJ5LGRlbnRyeSxtb2RlLHRydWUp OwogCQkJYnJlYWs7CiAJCWNhc2UgU19JRkNIUjogY2FzZSBTX0lGQkxLOgotCQkJZXJyb3IgPSB2 ZnNfbWtub2QocGF0aC5kZW50cnktPmRfaW5vZGUsZGVudHJ5LG1vZGUsCisJCQllcnJvciA9IHZm c19ta25vZChwYXRoLmRlbnRyeSxkZW50cnksbW9kZSwKIAkJCQkJbmV3X2RlY29kZV9kZXYoZGV2 KSk7CiAJCQlicmVhazsKIAkJY2FzZSBTX0lGSUZPOiBjYXNlIFNfSUZTT0NLOgotCQkJZXJyb3Ig PSB2ZnNfbWtub2QocGF0aC5kZW50cnktPmRfaW5vZGUsZGVudHJ5LG1vZGUsMCk7CisJCQllcnJv ciA9IHZmc19ta25vZChwYXRoLmRlbnRyeSxkZW50cnksbW9kZSwwKTsKIAkJCWJyZWFrOwogCX0K IG91dDoKQEAgLTM0MTQsMTQgKzM0MTgsMTYgQEAgU1lTQ0FMTF9ERUZJTkUzKG1rbm9kLCBjb25z dCBjaGFyIF9fdXNlciAqLCBmaWxlbmFtZSwgdW1vZGVfdCwgbW9kZSwgdW5zaWduZWQsIGQKIAly ZXR1cm4gc3lzX21rbm9kYXQoQVRfRkRDV0QsIGZpbGVuYW1lLCBtb2RlLCBkZXYpOwogfQogCi1p bnQgdmZzX21rZGlyKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVt b2RlX3QgbW9kZSkKK2ludCB2ZnNfbWtkaXIoc3RydWN0IGRlbnRyeSAqcGFyZW50LCBzdHJ1Y3Qg ZGVudHJ5ICpkZW50cnksIHVtb2RlX3QgbW9kZSkKIHsKLQlpbnQgZXJyb3IgPSBtYXlfY3JlYXRl KGRpciwgZGVudHJ5KTsKLQl1bnNpZ25lZCBtYXhfbGlua3MgPSBkaXItPmlfc2ItPnNfbWF4X2xp bmtzOworCXN0cnVjdCBpbm9kZSAqZGlyOworCXVuc2lnbmVkIG1heF9saW5rczsKKwlpbnQgZXJy b3IgPSBtYXlfY3JlYXRlKHBhcmVudCwgZGVudHJ5KTsKIAogCWlmIChlcnJvcikKIAkJcmV0dXJu IGVycm9yOwogCisJZGlyID0gcGFyZW50LT5kX2lub2RlOwogCWlmICghZGlyLT5pX29wLT5ta2Rp cikKIAkJcmV0dXJuIC1FUEVSTTsKIApAQCAtMzQzMCw2ICszNDM2LDcgQEAgaW50IHZmc19ta2Rp cihzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bW9kZV90IG1vZGUp CiAJaWYgKGVycm9yKQogCQlyZXR1cm4gZXJyb3I7CiAKKwltYXhfbGlua3MgPSBkaXItPmlfc2It PnNfbWF4X2xpbmtzOwogCWlmIChtYXhfbGlua3MgJiYgZGlyLT5pX25saW5rID49IG1heF9saW5r cykKIAkJcmV0dXJuIC1FTUxJTks7CiAKQEAgLTM0NTUsNyArMzQ2Miw3IEBAIHJldHJ5OgogCQlt b2RlICY9IH5jdXJyZW50X3VtYXNrKCk7CiAJZXJyb3IgPSBzZWN1cml0eV9wYXRoX21rZGlyKCZw YXRoLCBkZW50cnksIG1vZGUpOwogCWlmICghZXJyb3IpCi0JCWVycm9yID0gdmZzX21rZGlyKHBh dGguZGVudHJ5LT5kX2lub2RlLCBkZW50cnksIG1vZGUpOworCQllcnJvciA9IHZmc19ta2Rpcihw YXRoLmRlbnRyeSwgZGVudHJ5LCBtb2RlKTsKIAlkb25lX3BhdGhfY3JlYXRlKCZwYXRoLCBkZW50 cnkpOwogCWlmIChyZXRyeV9lc3RhbGUoZXJyb3IsIGxvb2t1cF9mbGFncykpIHsKIAkJbG9va3Vw X2ZsYWdzIHw9IExPT0tVUF9SRVZBTDsKQEAgLTM0OTMsMTMgKzM1MDAsMTUgQEAgdm9pZCBkZW50 cnlfdW5oYXNoKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIAlzcGluX3VubG9jaygmZGVudHJ5LT5k X2xvY2spOwogfQogCi1pbnQgdmZzX3JtZGlyKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVu dHJ5ICpkZW50cnkpCitpbnQgdmZzX3JtZGlyKHN0cnVjdCBkZW50cnkgKnBhcmVudCwgc3RydWN0 IGRlbnRyeSAqZGVudHJ5KQogewotCWludCBlcnJvciA9IG1heV9kZWxldGUoZGlyLCBkZW50cnks IDEpOworCXN0cnVjdCBpbm9kZSAqZGlyOworCWludCBlcnJvciA9IG1heV9kZWxldGUocGFyZW50 LCBkZW50cnksIDEpOwogCiAJaWYgKGVycm9yKQogCQlyZXR1cm4gZXJyb3I7CiAKKwlkaXIgPSBw YXJlbnQtPmRfaW5vZGU7CiAJaWYgKCFkaXItPmlfb3AtPnJtZGlyKQogCQlyZXR1cm4gLUVQRVJN OwogCkBAIC0zNTcxLDcgKzM1ODAsNyBAQCByZXRyeToKIAllcnJvciA9IHNlY3VyaXR5X3BhdGhf cm1kaXIoJm5kLnBhdGgsIGRlbnRyeSk7CiAJaWYgKGVycm9yKQogCQlnb3RvIGV4aXQzOwotCWVy cm9yID0gdmZzX3JtZGlyKG5kLnBhdGguZGVudHJ5LT5kX2lub2RlLCBkZW50cnkpOworCWVycm9y ID0gdmZzX3JtZGlyKG5kLnBhdGguZGVudHJ5LCBkZW50cnkpOwogZXhpdDM6CiAJZHB1dChkZW50 cnkpOwogZXhpdDI6CkBAIC0zNjEwLDEwICszNjE5LDExIEBAIFNZU0NBTExfREVGSU5FMShybWRp ciwgY29uc3QgY2hhciBfX3VzZXIgKiwgcGF0aG5hbWUpCiAgKiBiZSBhcHByb3ByaWF0ZSBmb3Ig Y2FsbGVycyB0aGF0IGV4cGVjdCB0aGUgdW5kZXJseWluZyBmaWxlc3lzdGVtIG5vdAogICogdG8g YmUgTkZTIGV4cG9ydGVkLgogICovCi1pbnQgdmZzX3VubGluayhzdHJ1Y3QgaW5vZGUgKmRpciwg c3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKipkZWxlZ2F0ZWRfaW5vZGUpCitp bnQgdmZzX3VubGluayhzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsIHN0cnVjdCBkZW50cnkgKmRlbnRy eSwgc3RydWN0IGlub2RlICoqZGVsZWdhdGVkX2lub2RlKQogeworCXN0cnVjdCBpbm9kZSAqZGly ID0gcGFyZW50LT5kX2lub2RlOwogCXN0cnVjdCBpbm9kZSAqdGFyZ2V0ID0gZGVudHJ5LT5kX2lu b2RlOwotCWludCBlcnJvciA9IG1heV9kZWxldGUoZGlyLCBkZW50cnksIDApOworCWludCBlcnJv ciA9IG1heV9kZWxldGUocGFyZW50LCBkZW50cnksIDApOwogCiAJaWYgKGVycm9yKQogCQlyZXR1 cm4gZXJyb3I7CkBAIC0zNjkwLDcgKzM3MDAsNyBAQCByZXRyeV9kZWxlZzoKIAkJZXJyb3IgPSBz ZWN1cml0eV9wYXRoX3VubGluaygmbmQucGF0aCwgZGVudHJ5KTsKIAkJaWYgKGVycm9yKQogCQkJ Z290byBleGl0MjsKLQkJZXJyb3IgPSB2ZnNfdW5saW5rKG5kLnBhdGguZGVudHJ5LT5kX2lub2Rl LCBkZW50cnksICZkZWxlZ2F0ZWRfaW5vZGUpOworCQllcnJvciA9IHZmc191bmxpbmsobmQucGF0 aC5kZW50cnksIGRlbnRyeSwgJmRlbGVnYXRlZF9pbm9kZSk7CiBleGl0MjoKIAkJZHB1dChkZW50 cnkpOwogCX0KQEAgLTM3NDAsMTMgKzM3NTAsMTUgQEAgU1lTQ0FMTF9ERUZJTkUxKHVubGluaywg Y29uc3QgY2hhciBfX3VzZXIgKiwgcGF0aG5hbWUpCiAJcmV0dXJuIGRvX3VubGlua2F0KEFUX0ZE Q1dELCBwYXRobmFtZSk7CiB9CiAKLWludCB2ZnNfc3ltbGluayhzdHJ1Y3QgaW5vZGUgKmRpciwg c3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjb25zdCBjaGFyICpvbGRuYW1lKQoraW50IHZmc19zeW1s aW5rKHN0cnVjdCBkZW50cnkgKnBhcmVudCwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjb25zdCBj aGFyICpvbGRuYW1lKQogewotCWludCBlcnJvciA9IG1heV9jcmVhdGUoZGlyLCBkZW50cnkpOwor CXN0cnVjdCBpbm9kZSAqZGlyOworCWludCBlcnJvciA9IG1heV9jcmVhdGUocGFyZW50LCBkZW50 cnkpOwogCiAJaWYgKGVycm9yKQogCQlyZXR1cm4gZXJyb3I7CiAKKwlkaXIgPSBwYXJlbnQtPmRf aW5vZGU7CiAJaWYgKCFkaXItPmlfb3AtPnN5bWxpbmspCiAJCXJldHVybiAtRVBFUk07CiAKQEAg LTM3ODAsNyArMzc5Miw3IEBAIHJldHJ5OgogCiAJZXJyb3IgPSBzZWN1cml0eV9wYXRoX3N5bWxp bmsoJnBhdGgsIGRlbnRyeSwgZnJvbS0+bmFtZSk7CiAJaWYgKCFlcnJvcikKLQkJZXJyb3IgPSB2 ZnNfc3ltbGluayhwYXRoLmRlbnRyeS0+ZF9pbm9kZSwgZGVudHJ5LCBmcm9tLT5uYW1lKTsKKwkJ ZXJyb3IgPSB2ZnNfc3ltbGluayhwYXRoLmRlbnRyeSwgZGVudHJ5LCBmcm9tLT5uYW1lKTsKIAlk b25lX3BhdGhfY3JlYXRlKCZwYXRoLCBkZW50cnkpOwogCWlmIChyZXRyeV9lc3RhbGUoZXJyb3Is IGxvb2t1cF9mbGFncykpIHsKIAkJbG9va3VwX2ZsYWdzIHw9IExPT0tVUF9SRVZBTDsKQEAgLTM4 MTUsOCArMzgyNyw5IEBAIFNZU0NBTExfREVGSU5FMihzeW1saW5rLCBjb25zdCBjaGFyIF9fdXNl ciAqLCBvbGRuYW1lLCBjb25zdCBjaGFyIF9fdXNlciAqLCBuZXduCiAgKiBiZSBhcHByb3ByaWF0 ZSBmb3IgY2FsbGVycyB0aGF0IGV4cGVjdCB0aGUgdW5kZXJseWluZyBmaWxlc3lzdGVtIG5vdAog ICogdG8gYmUgTkZTIGV4cG9ydGVkLgogICovCi1pbnQgdmZzX2xpbmsoc3RydWN0IGRlbnRyeSAq b2xkX2RlbnRyeSwgc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKm5ld19kZW50cnks IHN0cnVjdCBpbm9kZSAqKmRlbGVnYXRlZF9pbm9kZSkKK2ludCB2ZnNfbGluayhzdHJ1Y3QgZGVu dHJ5ICpvbGRfZGVudHJ5LCBzdHJ1Y3QgZGVudHJ5ICpuZXdfcGFyZW50LCBzdHJ1Y3QgZGVudHJ5 ICpuZXdfZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKipkZWxlZ2F0ZWRfaW5vZGUpCiB7CisJc3RydWN0 IGlub2RlICpkaXIgPSBuZXdfcGFyZW50LT5kX2lub2RlOwogCXN0cnVjdCBpbm9kZSAqaW5vZGUg PSBvbGRfZGVudHJ5LT5kX2lub2RlOwogCXVuc2lnbmVkIG1heF9saW5rcyA9IGRpci0+aV9zYi0+ c19tYXhfbGlua3M7CiAJaW50IGVycm9yOwpAQCAtMzgyNCw3ICszODM3LDcgQEAgaW50IHZmc19s aW5rKHN0cnVjdCBkZW50cnkgKm9sZF9kZW50cnksIHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3Qg ZGVudHJ5ICpuZXdfZGUKIAlpZiAoIWlub2RlKQogCQlyZXR1cm4gLUVOT0VOVDsKIAotCWVycm9y ID0gbWF5X2NyZWF0ZShkaXIsIG5ld19kZW50cnkpOworCWVycm9yID0gbWF5X2NyZWF0ZShuZXdf cGFyZW50LCBuZXdfZGVudHJ5KTsKIAlpZiAoZXJyb3IpCiAJCXJldHVybiBlcnJvcjsKIApAQCAt MzkyMSw3ICszOTM0LDcgQEAgcmV0cnk6CiAJZXJyb3IgPSBzZWN1cml0eV9wYXRoX2xpbmsob2xk X3BhdGguZGVudHJ5LCAmbmV3X3BhdGgsIG5ld19kZW50cnkpOwogCWlmIChlcnJvcikKIAkJZ290 byBvdXRfZHB1dDsKLQllcnJvciA9IHZmc19saW5rKG9sZF9wYXRoLmRlbnRyeSwgbmV3X3BhdGgu ZGVudHJ5LT5kX2lub2RlLCBuZXdfZGVudHJ5LCAmZGVsZWdhdGVkX2lub2RlKTsKKwllcnJvciA9 IHZmc19saW5rKG9sZF9wYXRoLmRlbnRyeSwgbmV3X3BhdGguZGVudHJ5LCBuZXdfZGVudHJ5LCAm ZGVsZWdhdGVkX2lub2RlKTsKIG91dF9kcHV0OgogCWRvbmVfcGF0aF9jcmVhdGUoJm5ld19wYXRo LCBuZXdfZGVudHJ5KTsKIAlpZiAoZGVsZWdhdGVkX2lub2RlKSB7CkBAIC00MDkxLDI4ICs0MTA0 LDMxIEBAIG91dDoKICAqIGJlIGFwcHJvcHJpYXRlIGZvciBjYWxsZXJzIHRoYXQgZXhwZWN0IHRo ZSB1bmRlcmx5aW5nIGZpbGVzeXN0ZW0gbm90CiAgKiB0byBiZSBORlMgZXhwb3J0ZWQuCiAgKi8K LWludCB2ZnNfcmVuYW1lKHN0cnVjdCBpbm9kZSAqb2xkX2Rpciwgc3RydWN0IGRlbnRyeSAqb2xk X2RlbnRyeSwKLQkgICAgICAgc3RydWN0IGlub2RlICpuZXdfZGlyLCBzdHJ1Y3QgZGVudHJ5ICpu ZXdfZGVudHJ5LAoraW50IHZmc19yZW5hbWUoc3RydWN0IGRlbnRyeSAqb2xkX3BhcmVudCwgc3Ry dWN0IGRlbnRyeSAqb2xkX2RlbnRyeSwKKwkgICAgICAgc3RydWN0IGRlbnRyeSAqbmV3X3BhcmVu dCwgc3RydWN0IGRlbnRyeSAqbmV3X2RlbnRyeSwKIAkgICAgICAgc3RydWN0IGlub2RlICoqZGVs ZWdhdGVkX2lub2RlKQogewogCWludCBlcnJvcjsKKwlzdHJ1Y3QgaW5vZGUgKm9sZF9kaXIsICpu ZXdfZGlyOwogCWludCBpc19kaXIgPSBkX2lzX2RpcmVjdG9yeShvbGRfZGVudHJ5KSB8fCBkX2lz X2F1dG9kaXIob2xkX2RlbnRyeSk7CiAJY29uc3QgdW5zaWduZWQgY2hhciAqb2xkX25hbWU7CiAK IAlpZiAob2xkX2RlbnRyeS0+ZF9pbm9kZSA9PSBuZXdfZGVudHJ5LT5kX2lub2RlKQogIAkJcmV0 dXJuIDA7CiAgCi0JZXJyb3IgPSBtYXlfZGVsZXRlKG9sZF9kaXIsIG9sZF9kZW50cnksIGlzX2Rp cik7CisJZXJyb3IgPSBtYXlfZGVsZXRlKG9sZF9wYXJlbnQsIG9sZF9kZW50cnksIGlzX2Rpcik7 CiAJaWYgKGVycm9yKQogCQlyZXR1cm4gZXJyb3I7CiAKIAlpZiAoIW5ld19kZW50cnktPmRfaW5v ZGUpCi0JCWVycm9yID0gbWF5X2NyZWF0ZShuZXdfZGlyLCBuZXdfZGVudHJ5KTsKKwkJZXJyb3Ig PSBtYXlfY3JlYXRlKG5ld19wYXJlbnQsIG5ld19kZW50cnkpOwogCWVsc2UKLQkJZXJyb3IgPSBt YXlfZGVsZXRlKG5ld19kaXIsIG5ld19kZW50cnksIGlzX2Rpcik7CisJCWVycm9yID0gbWF5X2Rl bGV0ZShuZXdfcGFyZW50LCBuZXdfZGVudHJ5LCBpc19kaXIpOwogCWlmIChlcnJvcikKIAkJcmV0 dXJuIGVycm9yOwogCisJb2xkX2RpciA9IG9sZF9wYXJlbnQtPmRfaW5vZGU7CisJbmV3X2RpciA9 IG5ld19wYXJlbnQtPmRfaW5vZGU7CiAJaWYgKCFvbGRfZGlyLT5pX29wLT5yZW5hbWUpCiAJCXJl dHVybiAtRVBFUk07CiAKQEAgLTQyMTMsOSArNDIyOSw5IEBAIHJldHJ5X2RlbGVnOgogCQkJCSAg ICAgJm5ld25kLnBhdGgsIG5ld19kZW50cnkpOwogCWlmIChlcnJvcikKIAkJZ290byBleGl0NTsK LQllcnJvciA9IHZmc19yZW5hbWUob2xkX2Rpci0+ZF9pbm9kZSwgb2xkX2RlbnRyeSwKLQkJCQkg ICBuZXdfZGlyLT5kX2lub2RlLCBuZXdfZGVudHJ5LAotCQkJCSAgICZkZWxlZ2F0ZWRfaW5vZGUp OworCWVycm9yID0gdmZzX3JlbmFtZShvbGRfZGlyLCBvbGRfZGVudHJ5LAorCQkJICAgbmV3X2Rp ciwgbmV3X2RlbnRyeSwKKwkJCSAgICZkZWxlZ2F0ZWRfaW5vZGUpOwogZXhpdDU6CiAJZHB1dChu ZXdfZGVudHJ5KTsKIGV4aXQ0OgpkaWZmIC0tZ2l0IGEvZnMvbmZzZC9uZnM0cmVjb3Zlci5jIGIv ZnMvbmZzZC9uZnM0cmVjb3Zlci5jCmluZGV4IDljMjcxZjQyNjA0YS4uNjY2MjIzYjBkMDBhIDEw MDY0NAotLS0gYS9mcy9uZnNkL25mczRyZWNvdmVyLmMKKysrIGIvZnMvbmZzZC9uZnM0cmVjb3Zl ci5jCkBAIC0yMDksNyArMjA5LDcgQEAgbmZzZDRfY3JlYXRlX2NsaWRfZGlyKHN0cnVjdCBuZnM0 X2NsaWVudCAqY2xwKQogCQkgKiBhcyB3ZWxsIGJlIGZvcmdpdmluZyBhbmQganVzdCBzdWNjZWVk IHNpbGVudGx5LgogCQkgKi8KIAkJZ290byBvdXRfcHV0OwotCXN0YXR1cyA9IHZmc19ta2Rpcihk aXItPmRfaW5vZGUsIGRlbnRyeSwgU19JUldYVSk7CisJc3RhdHVzID0gdmZzX21rZGlyKGRpciwg ZGVudHJ5LCBTX0lSV1hVKTsKIG91dF9wdXQ6CiAJZHB1dChkZW50cnkpOwogb3V0X3VubG9jazoK QEAgLTMyMyw3ICszMjMsNyBAQCBuZnNkNF91bmxpbmtfY2xpZF9kaXIoY2hhciAqbmFtZSwgaW50 IG5hbWxlbiwgc3RydWN0IG5mc2RfbmV0ICpubikKIAlzdGF0dXMgPSAtRU5PRU5UOwogCWlmICgh ZGVudHJ5LT5kX2lub2RlKQogCQlnb3RvIG91dDsKLQlzdGF0dXMgPSB2ZnNfcm1kaXIoZGlyLT5k X2lub2RlLCBkZW50cnkpOworCXN0YXR1cyA9IHZmc19ybWRpcihkaXIsIGRlbnRyeSk7CiBvdXQ6 CiAJZHB1dChkZW50cnkpOwogb3V0X3VubG9jazoKQEAgLTM4Myw3ICszODMsNyBAQCBwdXJnZV9v bGQoc3RydWN0IGRlbnRyeSAqcGFyZW50LCBzdHJ1Y3QgZGVudHJ5ICpjaGlsZCwgc3RydWN0IG5m c2RfbmV0ICpubikKIAlpZiAobmZzNF9oYXNfcmVjbGFpbWVkX3N0YXRlKGNoaWxkLT5kX25hbWUu bmFtZSwgbm4pKQogCQlyZXR1cm4gMDsKIAotCXN0YXR1cyA9IHZmc19ybWRpcihwYXJlbnQtPmRf aW5vZGUsIGNoaWxkKTsKKwlzdGF0dXMgPSB2ZnNfcm1kaXIocGFyZW50LCBjaGlsZCk7CiAJaWYg KHN0YXR1cykKIAkJcHJpbnRrKCJmYWlsZWQgdG8gcmVtb3ZlIGNsaWVudCByZWNvdmVyeSBkaXJl Y3RvcnkgJXBkXG4iLAogCQkJCWNoaWxkKTsKZGlmZiAtLWdpdCBhL2ZzL25mc2QvdmZzLmMgYi9m cy9uZnNkL3Zmcy5jCmluZGV4IDAxN2QzY2I1ZTk5Yi4uNmZhZWYwZTVlNDNiIDEwMDY0NAotLS0g YS9mcy9uZnNkL3Zmcy5jCisrKyBiL2ZzL25mc2QvdmZzLmMKQEAgLTEyMjAsMTggKzEyMjAsMTgg QEAgbmZzZF9jcmVhdGUoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IHN2Y19maCAqZmhw LAogCWhvc3RfZXJyID0gMDsKIAlzd2l0Y2ggKHR5cGUpIHsKIAljYXNlIFNfSUZSRUc6Ci0JCWhv c3RfZXJyID0gdmZzX2NyZWF0ZShkaXJwLCBkY2hpbGQsIGlhcC0+aWFfbW9kZSwgdHJ1ZSk7CisJ CWhvc3RfZXJyID0gdmZzX2NyZWF0ZShkZW50cnksIGRjaGlsZCwgaWFwLT5pYV9tb2RlLCB0cnVl KTsKIAkJaWYgKCFob3N0X2VycikKIAkJCW5mc2RfY2hlY2tfaWdub3JlX3Jlc2l6aW5nKGlhcCk7 CiAJCWJyZWFrOwogCWNhc2UgU19JRkRJUjoKLQkJaG9zdF9lcnIgPSB2ZnNfbWtkaXIoZGlycCwg ZGNoaWxkLCBpYXAtPmlhX21vZGUpOworCQlob3N0X2VyciA9IHZmc19ta2RpcihkZW50cnksIGRj aGlsZCwgaWFwLT5pYV9tb2RlKTsKIAkJYnJlYWs7CiAJY2FzZSBTX0lGQ0hSOgogCWNhc2UgU19J RkJMSzoKIAljYXNlIFNfSUZJRk86CiAJY2FzZSBTX0lGU09DSzoKLQkJaG9zdF9lcnIgPSB2ZnNf bWtub2QoZGlycCwgZGNoaWxkLCBpYXAtPmlhX21vZGUsIHJkZXYpOworCQlob3N0X2VyciA9IHZm c19ta25vZChkZW50cnksIGRjaGlsZCwgaWFwLT5pYV9tb2RlLCByZGV2KTsKIAkJYnJlYWs7CiAJ fQogCWlmIChob3N0X2VyciA8IDApCkBAIC0xMzg4LDcgKzEzODgsNyBAQCBkb19uZnNkX2NyZWF0 ZShzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3Qgc3ZjX2ZoICpmaHAsCiAJCWdvdG8gb3V0 OwogCX0KIAotCWhvc3RfZXJyID0gdmZzX2NyZWF0ZShkaXJwLCBkY2hpbGQsIGlhcC0+aWFfbW9k ZSwgdHJ1ZSk7CisJaG9zdF9lcnIgPSB2ZnNfY3JlYXRlKGRlbnRyeSwgZGNoaWxkLCBpYXAtPmlh X21vZGUsIHRydWUpOwogCWlmIChob3N0X2VyciA8IDApIHsKIAkJZmhfZHJvcF93cml0ZShmaHAp OwogCQlnb3RvIG91dF9uZnNlcnI7CkBAIC0xNTI4LDExICsxNTI4LDExIEBAIG5mc2Rfc3ltbGlu ayhzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3Qgc3ZjX2ZoICpmaHAsCiAJCWVsc2Ugewog CQkJc3RybmNweShwYXRoX2FsbG9jZWQsIHBhdGgsIHBsZW4pOwogCQkJcGF0aF9hbGxvY2VkW3Bs ZW5dID0gMDsKLQkJCWhvc3RfZXJyID0gdmZzX3N5bWxpbmsoZGVudHJ5LT5kX2lub2RlLCBkbmV3 LCBwYXRoX2FsbG9jZWQpOworCQkJaG9zdF9lcnIgPSB2ZnNfc3ltbGluayhkZW50cnksIGRuZXcs IHBhdGhfYWxsb2NlZCk7CiAJCQlrZnJlZShwYXRoX2FsbG9jZWQpOwogCQl9CiAJfSBlbHNlCi0J CWhvc3RfZXJyID0gdmZzX3N5bWxpbmsoZGVudHJ5LT5kX2lub2RlLCBkbmV3LCBwYXRoKTsKKwkJ aG9zdF9lcnIgPSB2ZnNfc3ltbGluayhkZW50cnksIGRuZXcsIHBhdGgpOwogCWVyciA9IG5mc2Vy cm5vKGhvc3RfZXJyKTsKIAlpZiAoIWVycikKIAkJZXJyID0gbmZzZXJybm8oY29tbWl0X21ldGFk YXRhKGZocCkpOwpAQCAtMTU2MCw3ICsxNTYwLDYgQEAgbmZzZF9saW5rKHN0cnVjdCBzdmNfcnFz dCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZmaHAsCiAJCQkJY2hhciAqbmFtZSwgaW50IGxlbiwg c3RydWN0IHN2Y19maCAqdGZocCkKIHsKIAlzdHJ1Y3QgZGVudHJ5CSpkZGlyLCAqZG5ldywgKmRv bGQ7Ci0Jc3RydWN0IGlub2RlCSpkaXJwOwogCV9fYmUzMgkJZXJyOwogCWludAkJaG9zdF9lcnI7 CiAKQEAgLTE1ODgsNyArMTU4Nyw2IEBAIG5mc2RfbGluayhzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3Rw LCBzdHJ1Y3Qgc3ZjX2ZoICpmZmhwLAogCiAJZmhfbG9ja19uZXN0ZWQoZmZocCwgSV9NVVRFWF9Q QVJFTlQpOwogCWRkaXIgPSBmZmhwLT5maF9kZW50cnk7Ci0JZGlycCA9IGRkaXItPmRfaW5vZGU7 CiAKIAlkbmV3ID0gbG9va3VwX29uZV9sZW4obmFtZSwgZGRpciwgbGVuKTsKIAlob3N0X2VyciA9 IFBUUl9FUlIoZG5ldyk7CkBAIC0xNjAwLDcgKzE1OTgsNyBAQCBuZnNkX2xpbmsoc3RydWN0IHN2 Y19ycXN0ICpycXN0cCwgc3RydWN0IHN2Y19maCAqZmZocCwKIAllcnIgPSBuZnNlcnJfbm9lbnQ7 CiAJaWYgKCFkb2xkLT5kX2lub2RlKQogCQlnb3RvIG91dF9kcHV0OwotCWhvc3RfZXJyID0gdmZz X2xpbmsoZG9sZCwgZGlycCwgZG5ldywgTlVMTCk7CisJaG9zdF9lcnIgPSB2ZnNfbGluayhkb2xk LCBkZGlyLCBkbmV3LCBOVUxMKTsKIAlpZiAoIWhvc3RfZXJyKSB7CiAJCWVyciA9IG5mc2Vycm5v KGNvbW1pdF9tZXRhZGF0YShmZmhwKSk7CiAJCWlmICghZXJyKQpAQCAtMTYzMyw3ICsxNjMxLDYg QEAgbmZzZF9yZW5hbWUoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IHN2Y19maCAqZmZo cCwgY2hhciAqZm5hbWUsIGludCBmbGVuLAogCQkJICAgIHN0cnVjdCBzdmNfZmggKnRmaHAsIGNo YXIgKnRuYW1lLCBpbnQgdGxlbikKIHsKIAlzdHJ1Y3QgZGVudHJ5CSpmZGVudHJ5LCAqdGRlbnRy eSwgKm9kZW50cnksICpuZGVudHJ5LCAqdHJhcDsKLQlzdHJ1Y3QgaW5vZGUJKmZkaXIsICp0ZGly OwogCV9fYmUzMgkJZXJyOwogCWludAkJaG9zdF9lcnI7CiAKQEAgLTE2NDUsMTAgKzE2NDIsNyBA QCBuZnNkX3JlbmFtZShzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3Qgc3ZjX2ZoICpmZmhw LCBjaGFyICpmbmFtZSwgaW50IGZsZW4sCiAJCWdvdG8gb3V0OwogCiAJZmRlbnRyeSA9IGZmaHAt PmZoX2RlbnRyeTsKLQlmZGlyID0gZmRlbnRyeS0+ZF9pbm9kZTsKLQogCXRkZW50cnkgPSB0Zmhw LT5maF9kZW50cnk7Ci0JdGRpciA9IHRkZW50cnktPmRfaW5vZGU7CiAKIAllcnIgPSBuZnNlcnJf cGVybTsKIAlpZiAoIWZsZW4gfHwgaXNkb3RlbnQoZm5hbWUsIGZsZW4pIHx8ICF0bGVuIHx8IGlz ZG90ZW50KHRuYW1lLCB0bGVuKSkKQEAgLTE2OTMsNyArMTY4Nyw3IEBAIG5mc2RfcmVuYW1lKHN0 cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZmaHAsIGNoYXIgKmZuYW1lLCBp bnQgZmxlbiwKIAlpZiAoZmZocC0+ZmhfZXhwb3J0LT5leF9wYXRoLmRlbnRyeSAhPSB0ZmhwLT5m aF9leHBvcnQtPmV4X3BhdGguZGVudHJ5KQogCQlnb3RvIG91dF9kcHV0X25ldzsKIAotCWhvc3Rf ZXJyID0gdmZzX3JlbmFtZShmZGlyLCBvZGVudHJ5LCB0ZGlyLCBuZGVudHJ5LCBOVUxMKTsKKwlo b3N0X2VyciA9IHZmc19yZW5hbWUoZmRlbnRyeSwgb2RlbnRyeSwgdGRlbnRyeSwgbmRlbnRyeSwg TlVMTCk7CiAJaWYgKCFob3N0X2VycikgewogCQlob3N0X2VyciA9IGNvbW1pdF9tZXRhZGF0YSh0 ZmhwKTsKIAkJaWYgKCFob3N0X2VycikKQEAgLTE3MjksNyArMTcyMyw2IEBAIG5mc2RfdW5saW5r KHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmggKmZocCwgaW50IHR5cGUsCiAJ CQkJY2hhciAqZm5hbWUsIGludCBmbGVuKQogewogCXN0cnVjdCBkZW50cnkJKmRlbnRyeSwgKnJk ZW50cnk7Ci0Jc3RydWN0IGlub2RlCSpkaXJwOwogCV9fYmUzMgkJZXJyOwogCWludAkJaG9zdF9l cnI7CiAKQEAgLTE3NDYsNyArMTczOSw2IEBAIG5mc2RfdW5saW5rKHN0cnVjdCBzdmNfcnFzdCAq cnFzdHAsIHN0cnVjdCBzdmNfZmggKmZocCwgaW50IHR5cGUsCiAKIAlmaF9sb2NrX25lc3RlZChm aHAsIElfTVVURVhfUEFSRU5UKTsKIAlkZW50cnkgPSBmaHAtPmZoX2RlbnRyeTsKLQlkaXJwID0g ZGVudHJ5LT5kX2lub2RlOwogCiAJcmRlbnRyeSA9IGxvb2t1cF9vbmVfbGVuKGZuYW1lLCBkZW50 cnksIGZsZW4pOwogCWhvc3RfZXJyID0gUFRSX0VSUihyZGVudHJ5KTsKQEAgLTE3NjMsOSArMTc1 NSw5IEBAIG5mc2RfdW5saW5rKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBzdmNfZmgg KmZocCwgaW50IHR5cGUsCiAJCXR5cGUgPSByZGVudHJ5LT5kX2lub2RlLT5pX21vZGUgJiBTX0lG TVQ7CiAKIAlpZiAodHlwZSAhPSBTX0lGRElSKQotCQlob3N0X2VyciA9IHZmc191bmxpbmsoZGly cCwgcmRlbnRyeSwgTlVMTCk7CisJCWhvc3RfZXJyID0gdmZzX3VubGluayhkZW50cnksIHJkZW50 cnksIE5VTEwpOwogCWVsc2UKLQkJaG9zdF9lcnIgPSB2ZnNfcm1kaXIoZGlycCwgcmRlbnRyeSk7 CisJCWhvc3RfZXJyID0gdmZzX3JtZGlyKGRlbnRyeSwgcmRlbnRyeSk7CiAJaWYgKCFob3N0X2Vy cikKIAkJaG9zdF9lcnIgPSBjb21taXRfbWV0YWRhdGEoZmhwKTsKIAlkcHV0KHJkZW50cnkpOwpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9mcy5oIGIvaW5jbHVkZS9saW51eC9mcy5oCmluZGV4 IDA5ZjU1M2M1OTgxMy4uYzlmZDhmYjI4YzkyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Zz LmgKKysrIGIvaW5jbHVkZS9saW51eC9mcy5oCkBAIC0xNDQ5LDE0ICsxNDQ5LDE0IEBAIGV4dGVy biBib29sIGlub2RlX293bmVyX29yX2NhcGFibGUoY29uc3Qgc3RydWN0IGlub2RlICppbm9kZSk7 CiAvKgogICogVkZTIGhlbHBlciBmdW5jdGlvbnMuLgogICovCi1leHRlcm4gaW50IHZmc19jcmVh dGUoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKiwgdW1vZGVfdCwgYm9vbCk7Ci1leHRl cm4gaW50IHZmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqLCB1bW9kZV90 KTsKLWV4dGVybiBpbnQgdmZzX21rbm9kKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICos IHVtb2RlX3QsIGRldl90KTsKLWV4dGVybiBpbnQgdmZzX3N5bWxpbmsoc3RydWN0IGlub2RlICos IHN0cnVjdCBkZW50cnkgKiwgY29uc3QgY2hhciAqKTsKLWV4dGVybiBpbnQgdmZzX2xpbmsoc3Ry dWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5v ZGUgKiopOwotZXh0ZXJuIGludCB2ZnNfcm1kaXIoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50 cnkgKik7Ci1leHRlcm4gaW50IHZmc191bmxpbmsoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50 cnkgKiwgc3RydWN0IGlub2RlICoqKTsKLWV4dGVybiBpbnQgdmZzX3JlbmFtZShzdHJ1Y3QgaW5v ZGUgKiwgc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqLCBz dHJ1Y3QgaW5vZGUgKiopOworZXh0ZXJuIGludCB2ZnNfY3JlYXRlKHN0cnVjdCBkZW50cnkgKiwg c3RydWN0IGRlbnRyeSAqLCB1bW9kZV90LCBib29sKTsKK2V4dGVybiBpbnQgdmZzX21rZGlyKHN0 cnVjdCBkZW50cnkgKiwgc3RydWN0IGRlbnRyeSAqLCB1bW9kZV90KTsKK2V4dGVybiBpbnQgdmZz X21rbm9kKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGRlbnRyeSAqLCB1bW9kZV90LCBkZXZfdCk7 CitleHRlcm4gaW50IHZmc19zeW1saW5rKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGRlbnRyeSAq LCBjb25zdCBjaGFyICopOworZXh0ZXJuIGludCB2ZnNfbGluayhzdHJ1Y3QgZGVudHJ5ICosIHN0 cnVjdCBkZW50cnkgKiwgc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKiopOworZXh0ZXJu IGludCB2ZnNfcm1kaXIoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgZGVudHJ5ICopOworZXh0ZXJu IGludCB2ZnNfdW5saW5rKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3Qg aW5vZGUgKiopOworZXh0ZXJuIGludCB2ZnNfcmVuYW1lKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0 IGRlbnRyeSAqLCBzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlub2Rl ICoqKTsKIAogLyoKICAqIFZGUyBkZW50cnkgaGVscGVyIGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBh L2lwYy9tcXVldWUuYyBiL2lwYy9tcXVldWUuYwppbmRleCBjY2YxZjlmZDI2M2EuLjljMjU0ZDFl MDc3ZiAxMDA2NDQKLS0tIGEvaXBjL21xdWV1ZS5jCisrKyBiL2lwYy9tcXVldWUuYwpAQCAtNzI4 LDcgKzcyOCw3IEBAIHN0YXRpYyBpbnQgbXFfYXR0cl9vayhzdHJ1Y3QgaXBjX25hbWVzcGFjZSAq aXBjX25zLCBzdHJ1Y3QgbXFfYXR0ciAqYXR0cikKIC8qCiAgKiBJbnZva2VkIHdoZW4gY3JlYXRp bmcgYSBuZXcgcXVldWUgdmlhIHN5c19tcV9vcGVuCiAgKi8KLXN0YXRpYyBzdHJ1Y3QgZmlsZSAq ZG9fY3JlYXRlKHN0cnVjdCBpcGNfbmFtZXNwYWNlICppcGNfbnMsIHN0cnVjdCBpbm9kZSAqZGly LAorc3RhdGljIHN0cnVjdCBmaWxlICpkb19jcmVhdGUoc3RydWN0IGlwY19uYW1lc3BhY2UgKmlw Y19ucywgc3RydWN0IGRlbnRyeSAqcGFyZW50LAogCQkJc3RydWN0IHBhdGggKnBhdGgsIGludCBv ZmxhZywgdW1vZGVfdCBtb2RlLAogCQkJc3RydWN0IG1xX2F0dHIgKmF0dHIpCiB7CkBAIC03NTQs NyArNzU0LDcgQEAgc3RhdGljIHN0cnVjdCBmaWxlICpkb19jcmVhdGUoc3RydWN0IGlwY19uYW1l c3BhY2UgKmlwY19ucywgc3RydWN0IGlub2RlICpkaXIsCiAJfQogCiAJbW9kZSAmPSB+Y3VycmVu dF91bWFzaygpOwotCXJldCA9IHZmc19jcmVhdGUoZGlyLCBwYXRoLT5kZW50cnksIG1vZGUsIHRy dWUpOworCXJldCA9IHZmc19jcmVhdGUocGFyZW50LCBwYXRoLT5kZW50cnksIG1vZGUsIHRydWUp OwogCXBhdGgtPmRlbnRyeS0+ZF9mc2RhdGEgPSBOVUxMOwogCWlmIChyZXQpCiAJCXJldHVybiBF UlJfUFRSKHJldCk7CkBAIC04MjQsNyArODI0LDcgQEAgU1lTQ0FMTF9ERUZJTkU0KG1xX29wZW4s IGNvbnN0IGNoYXIgX191c2VyICosIHVfbmFtZSwgaW50LCBvZmxhZywgdW1vZGVfdCwgbW9kZSwK IAkJCQlnb3RvIG91dDsKIAkJCX0KIAkJCWF1ZGl0X2lub2RlX3BhcmVudF9oaWRkZW4obmFtZSwg cm9vdCk7Ci0JCQlmaWxwID0gZG9fY3JlYXRlKGlwY19ucywgcm9vdC0+ZF9pbm9kZSwKKwkJCWZp bHAgPSBkb19jcmVhdGUoaXBjX25zLCByb290LAogCQkJCQkJJnBhdGgsIG9mbGFnLCBtb2RlLAog CQkJCQkJdV9hdHRyID8gJmF0dHIgOiBOVUxMKTsKIAkJfQpAQCAtODg2LDcgKzg4Niw3IEBAIFNZ U0NBTExfREVGSU5FMShtcV91bmxpbmssIGNvbnN0IGNoYXIgX191c2VyICosIHVfbmFtZSkKIAkJ ZXJyID0gLUVOT0VOVDsKIAl9IGVsc2UgewogCQlpaG9sZChpbm9kZSk7Ci0JCWVyciA9IHZmc191 bmxpbmsoZGVudHJ5LT5kX3BhcmVudC0+ZF9pbm9kZSwgZGVudHJ5LCBOVUxMKTsKKwkJZXJyID0g dmZzX3VubGluayhkZW50cnktPmRfcGFyZW50LCBkZW50cnksIE5VTEwpOwogCX0KIAlkcHV0KGRl bnRyeSk7CiAKZGlmZiAtLWdpdCBhL25ldC91bml4L2FmX3VuaXguYyBiL25ldC91bml4L2FmX3Vu aXguYwppbmRleCAyOWZjOGJlZTk3MDIuLjkzMzcxZjdiOWY4NiAxMDA2NDQKLS0tIGEvbmV0L3Vu aXgvYWZfdW5peC5jCisrKyBiL25ldC91bml4L2FmX3VuaXguYwpAQCAtODQ1LDcgKzg0NSw3IEBA IHN0YXRpYyBpbnQgdW5peF9ta25vZChjb25zdCBjaGFyICpzdW5fcGF0aCwgdW1vZGVfdCBtb2Rl LCBzdHJ1Y3QgcGF0aCAqcmVzKQogCSAqLwogCWVyciA9IHNlY3VyaXR5X3BhdGhfbWtub2QoJnBh dGgsIGRlbnRyeSwgbW9kZSwgMCk7CiAJaWYgKCFlcnIpIHsKLQkJZXJyID0gdmZzX21rbm9kKHBh dGguZGVudHJ5LT5kX2lub2RlLCBkZW50cnksIG1vZGUsIDApOworCQllcnIgPSB2ZnNfbWtub2Qo cGF0aC5kZW50cnksIGRlbnRyeSwgbW9kZSwgMCk7CiAJCWlmICghZXJyKSB7CiAJCQlyZXMtPm1u dCA9IG1udGdldChwYXRoLm1udCk7CiAJCQlyZXMtPmRlbnRyeSA9IGRnZXQoZGVudHJ5KTsK --bcaec547c9cfb9e59804f187a280 Content-Type: application/octet-stream; name=inode_permission-patch Content-Disposition: attachment; filename=inode_permission-patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_hr8a34jh2 Y29tbWl0IDEwMWIwODQ3OWNmMWI1YmFhMGU3Njg3MjgxNTQ4ZWEzNTFmYTNhOGIKQXV0aG9yOiBM aW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+CkRhdGU6ICAgTW9u IEZlYiAzIDEzOjQ3OjA4IDIwMTQgLTA4MDAKCiAgICBNYWtlICdpbm9kZV9wZXJtaXNzaW9uKCkn IHRha2UgdGhlIGRlbnRyeSBwb2ludGVyIHRvbwotLS0KIGRyaXZlcnMvc3RhZ2luZy9sdXN0cmUv bHVzdHJlL2xsaXRlL2ZpbGUuYyAgICAgICAgIHwgIDYgKystLQogLi4uL3N0YWdpbmcvbHVzdHJl L2x1c3RyZS9sbGl0ZS9sbGl0ZV9pbnRlcm5hbC5oICAgfCAgMiArLQogZnMvYWZzL2ludGVybmFs LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZnMvYWZzL3NlY3Vy aXR5LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZnMvYmFkX2lu b2RlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZnMvYnRy ZnMvaW5vZGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZnMv YnRyZnMvaW9jdGwuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNiArKysr Ky0tLS0KIGZzL2NlcGgvaW5vZGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGZzL2NlcGgvc3VwZXIuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGZzL2NpZnMvY2lmc2ZzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KIGZzL2NvZGEvY29kYV9saW51eC5oICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGZzL2NvZGEvZGlyLmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KIGZzL2NvZGEvcGlvY3RsLmMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDQgKy0tCiBmcy9lY3J5cHRmcy9pbm9kZS5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICA0ICstLQogZnMvZXhlYy5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZnMvZnVzZS9kaXIuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZnMvZ2ZzMi9pbm9kZS5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMSArKysrLS0KIGZzL2hvc3Rmcy9ob3N0 ZnNfa2Vybi5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL2ludGVybmFs LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgLQogZnMva2VybmZz L2lub2RlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZnMva2Vy bmZzL2tlcm5mcy1pbnRlcm5hbC5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZnMv bmFtZWkuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0MCArKysr KysrKysrKy0tLS0tLS0tLS0tCiBmcy9uY3Bmcy9pb2N0bC5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICA2ICsrLS0KIGZzL25mcy9kaXIuYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL25mc2QvbmZzZmguYyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL25mc2QvdmZzLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0tCiBmcy9uaWxmczIvaW5vZGUuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy9uaWxmczIvbmlsZnMuaCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy9ub3RpZnkvZmFub3Rp ZnkvZmFub3RpZnlfdXNlci5jICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy9ub3RpZnkvaW5v dGlmeS9pbm90aWZ5X3VzZXIuYyAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy9vY2ZzMi9m aWxlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy9vY2Zz Mi9maWxlLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy9v Y2ZzMi9yZWZjb3VudHRyZWUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE1ICsrKyst LS0tCiBmcy9vcGVuLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDE0ICsrKystLS0tCiBmcy9wcm9jL2Jhc2UuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBmcy9wcm9jL2ZkLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAyICstCiBmcy9wcm9jL2ZkLmggICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiBmcy9wcm9jL3Byb2Nfc3lzY3RsLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy9yZWlzZXJmcy94YXR0ci5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy9yZWlzZXJmcy94YXR0ci5oICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy91ZGYvZmlsZS5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy91dGltZXMuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy94YXR0ci5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyICsrKy0tLS0KIGluY2x1ZGUvbGlu dXgvZnMuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0tCiBpbmNsdWRl L2xpbnV4L25mc19mcy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBpcGMv bXF1ZXVlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBr ZXJuZWwvc3lzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICst CiBtbS9tZW1jb250cm9sLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBuZXQvdW5peC9hZl91bml4LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCiB2aXJ0L2t2bS9hc3NpZ25lZC1kZXYuYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyICstCiA1MCBmaWxlcyBjaGFuZ2VkLCAxMTIgaW5zZXJ0aW9ucygrKSwgOTkgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL2x1c3RyZS9sdXN0cmUvbGxpdGUv ZmlsZS5jIGIvZHJpdmVycy9zdGFnaW5nL2x1c3RyZS9sdXN0cmUvbGxpdGUvZmlsZS5jCmluZGV4 IGMxMjgyMWFlZGMyZi4uN2EyZTVmOWIyZTFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcv bHVzdHJlL2x1c3RyZS9sbGl0ZS9maWxlLmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL2x1c3RyZS9s dXN0cmUvbGxpdGUvZmlsZS5jCkBAIC0xOTUxLDggKzE5NTEsOCBAQCBzdGF0aWMgaW50IGxsX3N3 YXBfbGF5b3V0cyhzdHJ1Y3QgZmlsZSAqZmlsZTEsIHN0cnVjdCBmaWxlICpmaWxlMiwKIAlpZiAo IVNfSVNSRUcobGxzcy0+aW5vZGUyLT5pX21vZGUpKQogCQlHT1RPKGZyZWUsIHJjID0gLUVJTlZB TCk7CiAKLQlpZiAoaW5vZGVfcGVybWlzc2lvbihsbHNzLT5pbm9kZTEsIE1BWV9XUklURSkgfHwK LQkgICAgaW5vZGVfcGVybWlzc2lvbihsbHNzLT5pbm9kZTIsIE1BWV9XUklURSkpCisJaWYgKGlu b2RlX3Blcm1pc3Npb24oZmlsZTEtPmZfZGVudHJ5LCBsbHNzLT5pbm9kZTEsIE1BWV9XUklURSkg fHwKKwkgICAgaW5vZGVfcGVybWlzc2lvbihmaWxlMi0+Zl9kZW50cnksIGxsc3MtPmlub2RlMiwg TUFZX1dSSVRFKSkKIAkJR09UTyhmcmVlLCByYyA9IC1FUEVSTSk7CiAKIAlpZiAobGxzcy0+aW5v ZGUyLT5pX3NiICE9IGxsc3MtPmlub2RlMS0+aV9zYikKQEAgLTMwNzksNyArMzA3OSw3IEBAIHN0 cnVjdCBwb3NpeF9hY2wgKiBsbF9nZXRfYWNsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCB0eXBl KQogfQogCiAKLWludCBsbF9pbm9kZV9wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGlu dCBtYXNrKQoraW50IGxsX2lub2RlX3Blcm1pc3Npb24oc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBz dHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzaykKIHsKIAlpbnQgcmMgPSAwOwogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3N0YWdpbmcvbHVzdHJlL2x1c3RyZS9sbGl0ZS9sbGl0ZV9pbnRlcm5hbC5o IGIvZHJpdmVycy9zdGFnaW5nL2x1c3RyZS9sdXN0cmUvbGxpdGUvbGxpdGVfaW50ZXJuYWwuaApp bmRleCA3ZWU1YzAyNzgzZjkuLmI3NjdlNDg0ZGZlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFn aW5nL2x1c3RyZS9sdXN0cmUvbGxpdGUvbGxpdGVfaW50ZXJuYWwuaAorKysgYi9kcml2ZXJzL3N0 YWdpbmcvbHVzdHJlL2x1c3RyZS9sbGl0ZS9sbGl0ZV9pbnRlcm5hbC5oCkBAIC03OTksNyArNzk5 LDcgQEAgaW50IGxsX2dldGF0dHIoc3RydWN0IHZmc21vdW50ICptbnQsIHN0cnVjdCBkZW50cnkg KmRlLCBzdHJ1Y3Qga3N0YXQgKnN0YXQpOwogc3RydWN0IGxsX2ZpbGVfZGF0YSAqbGxfZmlsZV9k YXRhX2dldCh2b2lkKTsKIHN0cnVjdCBwb3NpeF9hY2wgKiBsbF9nZXRfYWNsKHN0cnVjdCBpbm9k ZSAqaW5vZGUsIGludCB0eXBlKTsKIAotaW50IGxsX2lub2RlX3Blcm1pc3Npb24oc3RydWN0IGlu b2RlICppbm9kZSwgaW50IG1hc2spOworaW50IGxsX2lub2RlX3Blcm1pc3Npb24oc3RydWN0IGRl bnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzayk7CiAKIGludCBsbF9s b3Zfc2V0c3RyaXBlX2VhX2luZm8oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZp bGUsCiAJCQkgICAgIGludCBmbGFncywgc3RydWN0IGxvdl91c2VyX21kICpsdW0sCmRpZmYgLS1n aXQgYS9mcy9hZnMvaW50ZXJuYWwuaCBiL2ZzL2Fmcy9pbnRlcm5hbC5oCmluZGV4IDY2MjFmODAw ODEyMi4uNjNhMDNiNTU1ZmQzIDEwMDY0NAotLS0gYS9mcy9hZnMvaW50ZXJuYWwuaAorKysgYi9m cy9hZnMvaW50ZXJuYWwuaApAQCAtNjI2LDcgKzYyNiw3IEBAIGV4dGVybiB2b2lkIGFmc19jbGVh cl9wZXJtaXRzKHN0cnVjdCBhZnNfdm5vZGUgKik7CiBleHRlcm4gdm9pZCBhZnNfY2FjaGVfcGVy bWl0KHN0cnVjdCBhZnNfdm5vZGUgKiwgc3RydWN0IGtleSAqLCBsb25nKTsKIGV4dGVybiB2b2lk IGFmc196YXBfcGVybWl0cyhzdHJ1Y3QgcmN1X2hlYWQgKik7CiBleHRlcm4gc3RydWN0IGtleSAq YWZzX3JlcXVlc3Rfa2V5KHN0cnVjdCBhZnNfY2VsbCAqKTsKLWV4dGVybiBpbnQgYWZzX3Blcm1p c3Npb24oc3RydWN0IGlub2RlICosIGludCk7CitleHRlcm4gaW50IGFmc19wZXJtaXNzaW9uKHN0 cnVjdCBkZW50cnkgKiwgc3RydWN0IGlub2RlICosIGludCk7CiAKIC8qCiAgKiBzZXJ2ZXIuYwpk aWZmIC0tZ2l0IGEvZnMvYWZzL3NlY3VyaXR5LmMgYi9mcy9hZnMvc2VjdXJpdHkuYwppbmRleCA4 ZDAxMDQyMmRjODkuLmNjMzRhNDFiYWIwNCAxMDA2NDQKLS0tIGEvZnMvYWZzL3NlY3VyaXR5LmMK KysrIGIvZnMvYWZzL3NlY3VyaXR5LmMKQEAgLTI4NSw3ICsyODUsNyBAQCBzdGF0aWMgaW50IGFm c19jaGVja19wZXJtaXQoc3RydWN0IGFmc192bm9kZSAqdm5vZGUsIHN0cnVjdCBrZXkgKmtleSwK ICAqIC0gQUZTIEFDTHMgYXJlIGF0dGFjaGVkIHRvIGRpcmVjdG9yaWVzIG9ubHksIGFuZCBhIGZp bGUgaXMgY29udHJvbGxlZCBieSBpdHMKICAqICAgcGFyZW50IGRpcmVjdG9yeSdzIEFDTAogICov Ci1pbnQgYWZzX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2spCitpbnQg YWZzX3Blcm1pc3Npb24oc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKmlub2Rl LCBpbnQgbWFzaykKIHsKIAlzdHJ1Y3QgYWZzX3Zub2RlICp2bm9kZSA9IEFGU19GU19JKGlub2Rl KTsKIAlhZnNfYWNjZXNzX3QgdW5pbml0aWFsaXplZF92YXIoYWNjZXNzKTsKZGlmZiAtLWdpdCBh L2ZzL2JhZF9pbm9kZS5jIGIvZnMvYmFkX2lub2RlLmMKaW5kZXggN2M5Mzk1MzAzMGZiLi5jZjYx ODFiMTJhZGQgMTAwNjQ0Ci0tLSBhL2ZzL2JhZF9pbm9kZS5jCisrKyBiL2ZzL2JhZF9pbm9kZS5j CkBAIC0yMzAsNyArMjMwLDcgQEAgc3RhdGljIGludCBiYWRfaW5vZGVfcmVhZGxpbmsoc3RydWN0 IGRlbnRyeSAqZGVudHJ5LCBjaGFyIF9fdXNlciAqYnVmZmVyLAogCXJldHVybiAtRUlPOwogfQog Ci1zdGF0aWMgaW50IGJhZF9pbm9kZV9wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGlu dCBtYXNrKQorc3RhdGljIGludCBiYWRfaW5vZGVfcGVybWlzc2lvbihzdHJ1Y3QgZGVudHJ5ICpk ZW50cnksIHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKQogewogCXJldHVybiAtRUlPOwog fQpkaWZmIC0tZ2l0IGEvZnMvYnRyZnMvaW5vZGUuYyBiL2ZzL2J0cmZzL2lub2RlLmMKaW5kZXgg NWM0YWI5YzE4OTQwLi41NDZhNjg3MmU4NDEgMTAwNjQ0Ci0tLSBhL2ZzL2J0cmZzL2lub2RlLmMK KysrIGIvZnMvYnRyZnMvaW5vZGUuYwpAQCAtODgxNyw3ICs4ODE3LDcgQEAgc3RhdGljIGludCBi dHJmc19zZXRfcGFnZV9kaXJ0eShzdHJ1Y3QgcGFnZSAqcGFnZSkKIAlyZXR1cm4gX19zZXRfcGFn ZV9kaXJ0eV9ub2J1ZmZlcnMocGFnZSk7CiB9CiAKLXN0YXRpYyBpbnQgYnRyZnNfcGVybWlzc2lv bihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzaykKK3N0YXRpYyBpbnQgYnRyZnNfcGVybWlz c2lvbihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNr KQogewogCXN0cnVjdCBidHJmc19yb290ICpyb290ID0gQlRSRlNfSShpbm9kZSktPnJvb3Q7CiAJ dW1vZGVfdCBtb2RlID0gaW5vZGUtPmlfbW9kZTsKZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL2lvY3Rs LmMgYi9mcy9idHJmcy9pb2N0bC5jCmluZGV4IGIwMTM0ODkyZGM3MC4uZDA3ZmRjOWI4YzllIDEw MDY0NAotLS0gYS9mcy9idHJmcy9pb2N0bC5jCisrKyBiL2ZzL2J0cmZzL2lvY3RsLmMKQEAgLTcx Niw5ICs3MTYsMTAgQEAgc3RhdGljIGlubGluZSBpbnQgYnRyZnNfY2hlY2tfc3RpY2t5KHN0cnVj dCBpbm9kZSAqZGlyLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQogICogICAgIG5mc19hc3luY191bmxp bmsoKS4KICAqLwogCi1zdGF0aWMgaW50IGJ0cmZzX21heV9kZWxldGUoc3RydWN0IGlub2RlICpk aXIsIHN0cnVjdCBkZW50cnkgKnZpY3RpbSwgaW50IGlzZGlyKQorc3RhdGljIGludCBidHJmc19t YXlfZGVsZXRlKHN0cnVjdCBkZW50cnkgKnBhcmVudCwgc3RydWN0IGRlbnRyeSAqdmljdGltLCBp bnQgaXNkaXIpCiB7CiAJaW50IGVycm9yOworCXN0cnVjdCBpbm9kZSAqZGlyID0gcGFyZW50LT5k X2lub2RlOwogCiAJaWYgKCF2aWN0aW0tPmRfaW5vZGUpCiAJCXJldHVybiAtRU5PRU5UOwpAQCAt NzI2LDcgKzcyNyw3IEBAIHN0YXRpYyBpbnQgYnRyZnNfbWF5X2RlbGV0ZShzdHJ1Y3QgaW5vZGUg KmRpciwgc3RydWN0IGRlbnRyeSAqdmljdGltLCBpbnQgaXNkaXIpCiAJQlVHX09OKHZpY3RpbS0+ ZF9wYXJlbnQtPmRfaW5vZGUgIT0gZGlyKTsKIAlhdWRpdF9pbm9kZV9jaGlsZChkaXIsIHZpY3Rp bSwgQVVESVRfVFlQRV9DSElMRF9ERUxFVEUpOwogCi0JZXJyb3IgPSBpbm9kZV9wZXJtaXNzaW9u KGRpciwgTUFZX1dSSVRFIHwgTUFZX0VYRUMpOworCWVycm9yID0gaW5vZGVfcGVybWlzc2lvbihw YXJlbnQsIGRpciwgTUFZX1dSSVRFIHwgTUFZX0VYRUMpOwogCWlmIChlcnJvcikKIAkJcmV0dXJu IGVycm9yOwogCWlmIChJU19BUFBFTkQoZGlyKSkKQEAgLTc1MCwxMyArNzUxLDE0IEBAIHN0YXRp YyBpbnQgYnRyZnNfbWF5X2RlbGV0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAq dmljdGltLCBpbnQgaXNkaXIpCiB9CiAKIC8qIGNvcHkgb2YgbWF5X2NyZWF0ZSBpbiBmcy9uYW1l aS5jKCkgKi8KLXN0YXRpYyBpbmxpbmUgaW50IGJ0cmZzX21heV9jcmVhdGUoc3RydWN0IGlub2Rl ICpkaXIsIHN0cnVjdCBkZW50cnkgKmNoaWxkKQorc3RhdGljIGlubGluZSBpbnQgYnRyZnNfbWF5 X2NyZWF0ZShzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsIHN0cnVjdCBkZW50cnkgKmNoaWxkKQogewor CXN0cnVjdCBpbm9kZSAqZGlyID0gcGFyZW50LT5kX2lub2RlOwogCWlmIChjaGlsZC0+ZF9pbm9k ZSkKIAkJcmV0dXJuIC1FRVhJU1Q7CiAJaWYgKElTX0RFQURESVIoZGlyKSkKIAkJcmV0dXJuIC1F Tk9FTlQ7Ci0JcmV0dXJuIGlub2RlX3Blcm1pc3Npb24oZGlyLCBNQVlfV1JJVEUgfCBNQVlfRVhF Qyk7CisJcmV0dXJuIGlub2RlX3Blcm1pc3Npb24ocGFyZW50LCBkaXIsIE1BWV9XUklURSB8IE1B WV9FWEVDKTsKIH0KIAogLyoKQEAgLTc4Nyw3ICs3ODksNyBAQCBzdGF0aWMgbm9pbmxpbmUgaW50 IGJ0cmZzX21rc3Vidm9sKHN0cnVjdCBwYXRoICpwYXJlbnQsCiAJaWYgKGRlbnRyeS0+ZF9pbm9k ZSkKIAkJZ290byBvdXRfZHB1dDsKIAotCWVycm9yID0gYnRyZnNfbWF5X2NyZWF0ZShkaXIsIGRl bnRyeSk7CisJZXJyb3IgPSBidHJmc19tYXlfY3JlYXRlKHBhcmVudC0+ZGVudHJ5LCBkZW50cnkp OwogCWlmIChlcnJvcikKIAkJZ290byBvdXRfZHB1dDsKIApAQCAtMjIxMywxMyArMjIxNSwxMyBA QCBzdGF0aWMgbm9pbmxpbmUgaW50IGJ0cmZzX2lvY3RsX3NuYXBfZGVzdHJveShzdHJ1Y3QgZmls ZSAqZmlsZSwKIAkJaWYgKHJvb3QgPT0gZGVzdCkKIAkJCWdvdG8gb3V0X2RwdXQ7CiAKLQkJZXJy ID0gaW5vZGVfcGVybWlzc2lvbihpbm9kZSwgTUFZX1dSSVRFIHwgTUFZX0VYRUMpOworCQllcnIg PSBpbm9kZV9wZXJtaXNzaW9uKGRlbnRyeSwgaW5vZGUsIE1BWV9XUklURSB8IE1BWV9FWEVDKTsK IAkJaWYgKGVycikKIAkJCWdvdG8gb3V0X2RwdXQ7CiAJfQogCiAJLyogY2hlY2sgaWYgc3Vidm9s dW1lIG1heSBiZSBkZWxldGVkIGJ5IGEgdXNlciAqLwotCWVyciA9IGJ0cmZzX21heV9kZWxldGUo ZGlyLCBkZW50cnksIDEpOworCWVyciA9IGJ0cmZzX21heV9kZWxldGUocGFyZW50LCBkZW50cnks IDEpOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0X2RwdXQ7CiAKZGlmZiAtLWdpdCBhL2ZzL2NlcGgv aW5vZGUuYyBiL2ZzL2NlcGgvaW5vZGUuYwppbmRleCAzMmQ1MTlkOGEyZTIuLjA0ZGIxNzc0Y2Iy ZCAxMDA2NDQKLS0tIGEvZnMvY2VwaC9pbm9kZS5jCisrKyBiL2ZzL2NlcGgvaW5vZGUuYwpAQCAt MTg3NSw3ICsxODc1LDcgQEAgaW50IGNlcGhfZG9fZ2V0YXR0cihzdHJ1Y3QgaW5vZGUgKmlub2Rl LCBpbnQgbWFzaykKICAqIENoZWNrIGlub2RlIHBlcm1pc3Npb25zLiAgV2UgdmVyaWZ5IHdlIGhh dmUgYSB2YWxpZCB2YWx1ZSBmb3IKICAqIHRoZSBBVVRIIGNhcCwgdGhlbiBjYWxsIHRoZSBnZW5l cmljIGhhbmRsZXIuCiAgKi8KLWludCBjZXBoX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9k ZSwgaW50IG1hc2spCitpbnQgY2VwaF9wZXJtaXNzaW9uKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwg c3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2spCiB7CiAJaW50IGVycjsKIApkaWZmIC0tZ2l0 IGEvZnMvY2VwaC9zdXBlci5oIGIvZnMvY2VwaC9zdXBlci5oCmluZGV4IDE5NzkzYjU2ZDBhNy4u NjIxNWRjMzhiNjc2IDEwMDY0NAotLS0gYS9mcy9jZXBoL3N1cGVyLmgKKysrIGIvZnMvY2VwaC9z dXBlci5oCkBAIC03MTYsNyArNzE2LDcgQEAgZXh0ZXJuIHZvaWQgY2VwaF9xdWV1ZV9pbnZhbGlk YXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwogZXh0ZXJuIHZvaWQgY2VwaF9xdWV1ZV93cml0ZWJh Y2soc3RydWN0IGlub2RlICppbm9kZSk7CiAKIGV4dGVybiBpbnQgY2VwaF9kb19nZXRhdHRyKHN0 cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKTsKLWV4dGVybiBpbnQgY2VwaF9wZXJtaXNzaW9u KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKTsKK2V4dGVybiBpbnQgY2VwaF9wZXJtaXNz aW9uKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2spOwogZXh0 ZXJuIGludCBjZXBoX3NldGF0dHIoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaWF0dHIg KmF0dHIpOwogZXh0ZXJuIGludCBjZXBoX2dldGF0dHIoc3RydWN0IHZmc21vdW50ICptbnQsIHN0 cnVjdCBkZW50cnkgKmRlbnRyeSwKIAkJCXN0cnVjdCBrc3RhdCAqc3RhdCk7CmRpZmYgLS1naXQg YS9mcy9jaWZzL2NpZnNmcy5jIGIvZnMvY2lmcy9jaWZzZnMuYwppbmRleCA4NDlmNjEzMmIzMjcu LmNhMzA0ODc4ZWY3YiAxMDA2NDQKLS0tIGEvZnMvY2lmcy9jaWZzZnMuYworKysgYi9mcy9jaWZz L2NpZnNmcy5jCkBAIC0yMTEsNyArMjExLDcgQEAgY2lmc19zdGF0ZnMoc3RydWN0IGRlbnRyeSAq ZGVudHJ5LCBzdHJ1Y3Qga3N0YXRmcyAqYnVmKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50 IGNpZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzaykKK3N0YXRpYyBp bnQgY2lmc19wZXJtaXNzaW9uKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlub2RlICpp bm9kZSwgaW50IG1hc2spCiB7CiAJc3RydWN0IGNpZnNfc2JfaW5mbyAqY2lmc19zYjsKIApkaWZm IC0tZ2l0IGEvZnMvY29kYS9jb2RhX2xpbnV4LmggYi9mcy9jb2RhL2NvZGFfbGludXguaAppbmRl eCBlNzU1MGNiOWZiNzQuLmJlNjY2YWQ1MzcxNyAxMDA2NDQKLS0tIGEvZnMvY29kYS9jb2RhX2xp bnV4LmgKKysrIGIvZnMvY29kYS9jb2RhX2xpbnV4LmgKQEAgLTM5LDcgKzM5LDcgQEAgZXh0ZXJu IGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgY29kYV9pb2N0bF9vcGVyYXRpb25zOwogLyog b3BlcmF0aW9ucyBzaGFyZWQgb3ZlciBtb3JlIHRoYW4gb25lIGZpbGUgKi8KIGludCBjb2RhX29w ZW4oc3RydWN0IGlub2RlICppLCBzdHJ1Y3QgZmlsZSAqZik7CiBpbnQgY29kYV9yZWxlYXNlKHN0 cnVjdCBpbm9kZSAqaSwgc3RydWN0IGZpbGUgKmYpOwotaW50IGNvZGFfcGVybWlzc2lvbihzdHJ1 Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzayk7CitpbnQgY29kYV9wZXJtaXNzaW9uKHN0cnVjdCBk ZW50cnkgKmRlbnRyeSwgc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2spOwogaW50IGNvZGFf cmV2YWxpZGF0ZV9pbm9kZShzdHJ1Y3QgaW5vZGUgKik7CiBpbnQgY29kYV9nZXRhdHRyKHN0cnVj dCB2ZnNtb3VudCAqLCBzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBrc3RhdCAqKTsKIGludCBjb2Rh X3NldGF0dHIoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaWF0dHIgKik7CmRpZmYgLS1naXQgYS9m cy9jb2RhL2Rpci5jIGIvZnMvY29kYS9kaXIuYwppbmRleCA1ZWZiYjVlZTBhZGMuLmMzY2U1MGFk NzI1ZSAxMDA2NDQKLS0tIGEvZnMvY29kYS9kaXIuYworKysgYi9mcy9jb2RhL2Rpci5jCkBAIC0x MjgsNyArMTI4LDcgQEAgc3RhdGljIHN0cnVjdCBkZW50cnkgKmNvZGFfbG9va3VwKHN0cnVjdCBp bm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICplbnRyeSwgdW5zaWcKIH0KIAogCi1pbnQgY29kYV9w ZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKQoraW50IGNvZGFfcGVybWlz c2lvbihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNr KQogewogCWludCBlcnJvcjsKIApkaWZmIC0tZ2l0IGEvZnMvY29kYS9waW9jdGwuYyBiL2ZzL2Nv ZGEvcGlvY3RsLmMKaW5kZXggM2Y1ZGU5NmJiYjU4Li4yYjc2MGI5N2ZlOWMgMTAwNjQ0Ci0tLSBh L2ZzL2NvZGEvcGlvY3RsLmMKKysrIGIvZnMvY29kYS9waW9jdGwuYwpAQCAtMjQsNyArMjQsNyBA QAogI2luY2x1ZGUgImNvZGFfbGludXguaCIKIAogLyogcGlvY3RsIG9wcyAqLwotc3RhdGljIGlu dCBjb2RhX2lvY3RsX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2spOwor c3RhdGljIGludCBjb2RhX2lvY3RsX3Blcm1pc3Npb24oc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBz dHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzayk7CiBzdGF0aWMgbG9uZyBjb2RhX3Bpb2N0bChz dHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwKIAkJCXVuc2lnbmVkIGxvbmcgdXNl cl9kYXRhKTsKIApAQCAtNDEsNyArNDEsNyBAQCBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25z IGNvZGFfaW9jdGxfb3BlcmF0aW9ucyA9IHsKIH07CiAKIC8qIHRoZSBjb2RhIHBpb2N0bCBpbm9k ZSBvcHMgKi8KLXN0YXRpYyBpbnQgY29kYV9pb2N0bF9wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAq aW5vZGUsIGludCBtYXNrKQorc3RhdGljIGludCBjb2RhX2lvY3RsX3Blcm1pc3Npb24oc3RydWN0 IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzaykKIHsKIAlyZXR1 cm4gKG1hc2sgJiBNQVlfRVhFQykgPyAtRUFDQ0VTIDogMDsKIH0KZGlmZiAtLWdpdCBhL2ZzL2Vj cnlwdGZzL2lub2RlLmMgYi9mcy9lY3J5cHRmcy9pbm9kZS5jCmluZGV4IGE3YTgyM2Y5ODBjNS4u ZjJkYzUxNmM2MjZhIDEwMDY0NAotLS0gYS9mcy9lY3J5cHRmcy9pbm9kZS5jCisrKyBiL2ZzL2Vj cnlwdGZzL2lub2RlLmMKQEAgLTg4Miw5ICs4ODIsOSBAQCBpbnQgZWNyeXB0ZnNfdHJ1bmNhdGUo c3RydWN0IGRlbnRyeSAqZGVudHJ5LCBsb2ZmX3QgbmV3X2xlbmd0aCkKIH0KIAogc3RhdGljIGlu dAotZWNyeXB0ZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzaykKK2Vj cnlwdGZzX3Blcm1pc3Npb24oc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKmlu b2RlLCBpbnQgbWFzaykKIHsKLQlyZXR1cm4gaW5vZGVfcGVybWlzc2lvbihlY3J5cHRmc19pbm9k ZV90b19sb3dlcihpbm9kZSksIG1hc2spOworCXJldHVybiBpbm9kZV9wZXJtaXNzaW9uKGVjcnlw dGZzX2RlbnRyeV90b19sb3dlcihkZW50cnkpLCBlY3J5cHRmc19pbm9kZV90b19sb3dlcihpbm9k ZSksIG1hc2spOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2ZzL2V4ZWMuYyBiL2ZzL2V4ZWMuYwpp bmRleCBlMTUyOWI0Yzc5YjEuLjNkODY5NjhjNWZmYiAxMDA2NDQKLS0tIGEvZnMvZXhlYy5jCisr KyBiL2ZzL2V4ZWMuYwpAQCAtMTEwMCw3ICsxMTAwLDcgQEAgRVhQT1JUX1NZTUJPTChmbHVzaF9v bGRfZXhlYyk7CiAKIHZvaWQgd291bGRfZHVtcChzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLCBz dHJ1Y3QgZmlsZSAqZmlsZSkKIHsKLQlpZiAoaW5vZGVfcGVybWlzc2lvbihmaWxlX2lub2RlKGZp bGUpLCBNQVlfUkVBRCkgPCAwKQorCWlmIChpbm9kZV9wZXJtaXNzaW9uKGZpbGUtPmZfcGF0aC5k ZW50cnksIGZpbGVfaW5vZGUoZmlsZSksIE1BWV9SRUFEKSA8IDApCiAJCWJwcm0tPmludGVycF9m bGFncyB8PSBCSU5QUk1fRkxBR1NfRU5GT1JDRV9OT05EVU1QOwogfQogRVhQT1JUX1NZTUJPTCh3 b3VsZF9kdW1wKTsKZGlmZiAtLWdpdCBhL2ZzL2Z1c2UvZGlyLmMgYi9mcy9mdXNlL2Rpci5jCmlu ZGV4IDFkMTI5MmM1ODFjMy4uZGJiN2FlMDBlNjZiIDEwMDY0NAotLS0gYS9mcy9mdXNlL2Rpci5j CisrKyBiL2ZzL2Z1c2UvZGlyLmMKQEAgLTEwOTUsNyArMTA5NSw3IEBAIHN0YXRpYyBpbnQgZnVz ZV9wZXJtX2dldGF0dHIoc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2spCiAgKiBhY2Nlc3Mg cmVxdWVzdCBpcyBzZW50LiAgRXhlY3V0ZSBwZXJtaXNzaW9uIGlzIHN0aWxsIGNoZWNrZWQKICAq IGxvY2FsbHkgYmFzZWQgb24gZmlsZSBtb2RlLgogICovCi1zdGF0aWMgaW50IGZ1c2VfcGVybWlz c2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzaykKK3N0YXRpYyBpbnQgZnVzZV9wZXJt aXNzaW9uKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1h c2spCiB7CiAJc3RydWN0IGZ1c2VfY29ubiAqZmMgPSBnZXRfZnVzZV9jb25uKGlub2RlKTsKIAli b29sIHJlZnJlc2hlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9pbm9kZS5jIGIvZnMv Z2ZzMi9pbm9kZS5jCmluZGV4IDVjNTI0MTgwYzk4ZS4uNzlkMTYyMDI5Y2FlIDEwMDY0NAotLS0g YS9mcy9nZnMyL2lub2RlLmMKKysrIGIvZnMvZ2ZzMi9pbm9kZS5jCkBAIC0xODkwLDggKzE4OTAs MTMgQEAgb3V0OgogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBpbnQgZ2ZzMl92ZnNfcGVybWlz c2lvbihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNr KQoreworCXJldHVybiBnZnMyX3Blcm1pc3Npb24oaW5vZGUsIG1hc2spOworfQorCiBjb25zdCBz dHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBnZnMyX2ZpbGVfaW9wcyA9IHsKLQkucGVybWlzc2lvbiA9 IGdmczJfcGVybWlzc2lvbiwKKwkucGVybWlzc2lvbiA9IGdmczJfdmZzX3Blcm1pc3Npb24sCiAJ LnNldGF0dHIgPSBnZnMyX3NldGF0dHIsCiAJLmdldGF0dHIgPSBnZnMyX2dldGF0dHIsCiAJLnNl dHhhdHRyID0gZ2ZzMl9zZXR4YXR0ciwKQEAgLTE5MTMsNyArMTkxOCw3IEBAIGNvbnN0IHN0cnVj dCBpbm9kZV9vcGVyYXRpb25zIGdmczJfZGlyX2lvcHMgPSB7CiAJLnJtZGlyID0gZ2ZzMl91bmxp bmssCiAJLm1rbm9kID0gZ2ZzMl9ta25vZCwKIAkucmVuYW1lID0gZ2ZzMl9yZW5hbWUsCi0JLnBl cm1pc3Npb24gPSBnZnMyX3Blcm1pc3Npb24sCisJLnBlcm1pc3Npb24gPSBnZnMyX3Zmc19wZXJt aXNzaW9uLAogCS5zZXRhdHRyID0gZ2ZzMl9zZXRhdHRyLAogCS5nZXRhdHRyID0gZ2ZzMl9nZXRh dHRyLAogCS5zZXR4YXR0ciA9IGdmczJfc2V0eGF0dHIsCkBAIC0xOTMwLDcgKzE5MzUsNyBAQCBj b25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBnZnMyX3N5bWxpbmtfaW9wcyA9IHsKIAkucmVh ZGxpbmsgPSBnZW5lcmljX3JlYWRsaW5rLAogCS5mb2xsb3dfbGluayA9IGdmczJfZm9sbG93X2xp bmssCiAJLnB1dF9saW5rID0ga2ZyZWVfcHV0X2xpbmssCi0JLnBlcm1pc3Npb24gPSBnZnMyX3Bl cm1pc3Npb24sCisJLnBlcm1pc3Npb24gPSBnZnMyX3Zmc19wZXJtaXNzaW9uLAogCS5zZXRhdHRy ID0gZ2ZzMl9zZXRhdHRyLAogCS5nZXRhdHRyID0gZ2ZzMl9nZXRhdHRyLAogCS5zZXR4YXR0ciA9 IGdmczJfc2V0eGF0dHIsCmRpZmYgLS1naXQgYS9mcy9ob3N0ZnMvaG9zdGZzX2tlcm4uYyBiL2Zz L2hvc3Rmcy9ob3N0ZnNfa2Vybi5jCmluZGV4IGZlNjQ5ZDMyNWIxZi4uZWYxNTczMTg5ZmQ3IDEw MDY0NAotLS0gYS9mcy9ob3N0ZnMvaG9zdGZzX2tlcm4uYworKysgYi9mcy9ob3N0ZnMvaG9zdGZz X2tlcm4uYwpAQCAtNzU5LDcgKzc1OSw3IEBAIHN0YXRpYyBpbnQgaG9zdGZzX3JlbmFtZShzdHJ1 Y3QgaW5vZGUgKmZyb21faW5vLCBzdHJ1Y3QgZGVudHJ5ICpmcm9tLAogCXJldHVybiBlcnI7CiB9 CiAKLXN0YXRpYyBpbnQgaG9zdGZzX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm8sIGludCBk ZXNpcmVkKQorc3RhdGljIGludCBob3N0ZnNfcGVybWlzc2lvbihzdHJ1Y3QgZGVudHJ5ICpkZW50 cnksIHN0cnVjdCBpbm9kZSAqaW5vLCBpbnQgZGVzaXJlZCkKIHsKIAljaGFyICpuYW1lOwogCWlu dCByID0gMCwgdyA9IDAsIHggPSAwLCBlcnI7CmRpZmYgLS1naXQgYS9mcy9pbnRlcm5hbC5oIGIv ZnMvaW50ZXJuYWwuaAppbmRleCA0NjU3NDI0MDc0NjYuLjUyMTA4YzhmMzkxOSAxMDA2NDQKLS0t IGEvZnMvaW50ZXJuYWwuaAorKysgYi9mcy9pbnRlcm5hbC5oCkBAIC00Miw3ICs0Miw2IEBAIGV4 dGVybiB2b2lkIF9faW5pdCBjaHJkZXZfaW5pdCh2b2lkKTsKIC8qCiAgKiBuYW1laS5jCiAgKi8K LWV4dGVybiBpbnQgX19pbm9kZV9wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqLCBpbnQpOwogZXh0 ZXJuIGludCB1c2VyX3BhdGhfbW91bnRwb2ludF9hdChpbnQsIGNvbnN0IGNoYXIgX191c2VyICos IHVuc2lnbmVkIGludCwgc3RydWN0IHBhdGggKik7CiBleHRlcm4gaW50IHZmc19wYXRoX2xvb2t1 cChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCB2ZnNtb3VudCAqLAogCQkJICAgY29uc3QgY2hhciAq LCB1bnNpZ25lZCBpbnQsIHN0cnVjdCBwYXRoICopOwpkaWZmIC0tZ2l0IGEvZnMva2VybmZzL2lu b2RlLmMgYi9mcy9rZXJuZnMvaW5vZGUuYwppbmRleCBlNTUxMjZmODViZDIuLjlmMDg0ZmMxNmZj ZiAxMDA2NDQKLS0tIGEvZnMva2VybmZzL2lub2RlLmMKKysrIGIvZnMva2VybmZzL2lub2RlLmMK QEAgLTM2MCw3ICszNjAsNyBAQCB2b2lkIGtlcm5mc19ldmljdF9pbm9kZShzdHJ1Y3QgaW5vZGUg Kmlub2RlKQogCWtlcm5mc19wdXQoa24pOwogfQogCi1pbnQga2VybmZzX2lvcF9wZXJtaXNzaW9u KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKQoraW50IGtlcm5mc19pb3BfcGVybWlzc2lv bihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKQog ewogCXN0cnVjdCBrZXJuZnNfbm9kZSAqa247CiAKZGlmZiAtLWdpdCBhL2ZzL2tlcm5mcy9rZXJu ZnMtaW50ZXJuYWwuaCBiL2ZzL2tlcm5mcy9rZXJuZnMtaW50ZXJuYWwuaAppbmRleCBlYjUzNmI3 NjM3NGEuLmY0MWJhMTI5NzhhOSAxMDA2NDQKLS0tIGEvZnMva2VybmZzL2tlcm5mcy1pbnRlcm5h bC5oCisrKyBiL2ZzL2tlcm5mcy9rZXJuZnMtaW50ZXJuYWwuaApAQCAtNzgsNyArNzgsNyBAQCBl eHRlcm4gc3RydWN0IGttZW1fY2FjaGUgKmtlcm5mc19ub2RlX2NhY2hlOwogICovCiBzdHJ1Y3Qg aW5vZGUgKmtlcm5mc19nZXRfaW5vZGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGtl cm5mc19ub2RlICprbik7CiB2b2lkIGtlcm5mc19ldmljdF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlu b2RlKTsKLWludCBrZXJuZnNfaW9wX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50 IG1hc2spOworaW50IGtlcm5mc19pb3BfcGVybWlzc2lvbihzdHJ1Y3QgZGVudHJ5ICpkZW50cnks IHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKTsKIGludCBrZXJuZnNfaW9wX3NldGF0dHIo c3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaWF0dHIgKmlhdHRyKTsKIGludCBrZXJuZnNf aW9wX2dldGF0dHIoc3RydWN0IHZmc21vdW50ICptbnQsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwK IAkJICAgICAgIHN0cnVjdCBrc3RhdCAqc3RhdCk7CmRpZmYgLS1naXQgYS9mcy9uYW1laS5jIGIv ZnMvbmFtZWkuYwppbmRleCAxNDI3NDFlMWFjOWUuLmE4ODViOTMyMjYzNyAxMDA2NDQKLS0tIGEv ZnMvbmFtZWkuYworKysgYi9mcy9uYW1laS5jCkBAIC0zMzUsMTEgKzMzNSwxMSBAQCBpbnQgZ2Vu ZXJpY19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKQogICogZmxhZyBp biBpbm9kZS0+aV9vcGZsYWdzLCB0aGF0IHNheXMgInRoaXMgaGFzIG5vdCBzcGVjaWFsCiAgKiBw ZXJtaXNzaW9uIGZ1bmN0aW9uLCB1c2UgdGhlIGZhc3QgY2FzZSIuCiAgKi8KLXN0YXRpYyBpbmxp bmUgaW50IGRvX2lub2RlX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2sp CitzdGF0aWMgaW5saW5lIGludCBkb19pbm9kZV9wZXJtaXNzaW9uKHN0cnVjdCBkZW50cnkgKmRl bnRyeSwgc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2spCiB7CiAJaWYgKHVubGlrZWx5KCEo aW5vZGUtPmlfb3BmbGFncyAmIElPUF9GQVNUUEVSTSkpKSB7CiAJCWlmIChsaWtlbHkoaW5vZGUt Pmlfb3AtPnBlcm1pc3Npb24pKQotCQkJcmV0dXJuIGlub2RlLT5pX29wLT5wZXJtaXNzaW9uKGlu b2RlLCBtYXNrKTsKKwkJCXJldHVybiBpbm9kZS0+aV9vcC0+cGVybWlzc2lvbihkZW50cnksIGlu b2RlLCBtYXNrKTsKIAogCQkvKiBUaGlzIGdldHMgc2V0IG9uY2UgZm9yIHRoZSBpbm9kZSBsaWZl dGltZSAqLwogCQlzcGluX2xvY2soJmlub2RlLT5pX2xvY2spOwpAQCAtMzYxLDcgKzM2MSw3IEBA IHN0YXRpYyBpbmxpbmUgaW50IGRvX2lub2RlX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9k ZSwgaW50IG1hc2spCiAgKiBUaGlzIGRvZXMgbm90IGNoZWNrIGZvciBhIHJlYWQtb25seSBmaWxl IHN5c3RlbS4gIFlvdSBwcm9iYWJseSB3YW50CiAgKiBpbm9kZV9wZXJtaXNzaW9uKCkuCiAgKi8K LWludCBfX2lub2RlX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2spCitz dGF0aWMgaW50IF9faW5vZGVfcGVybWlzc2lvbihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVj dCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKQogewogCWludCByZXR2YWw7CiAKQEAgLTM3Myw3ICsz NzMsNyBAQCBpbnQgX19pbm9kZV9wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBt YXNrKQogCQkJcmV0dXJuIC1FQUNDRVM7CiAJfQogCi0JcmV0dmFsID0gZG9faW5vZGVfcGVybWlz c2lvbihpbm9kZSwgbWFzayk7CisJcmV0dmFsID0gZG9faW5vZGVfcGVybWlzc2lvbihkZW50cnks IGlub2RlLCBtYXNrKTsKIAlpZiAocmV0dmFsKQogCQlyZXR1cm4gcmV0dmFsOwogCkBAIC00MTYs MTQgKzQxNiwxNCBAQCBzdGF0aWMgaW50IHNiX3Blcm1pc3Npb24oc3RydWN0IHN1cGVyX2Jsb2Nr ICpzYiwgc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2spCiAgKgogICogV2hlbiBjaGVja2lu ZyBmb3IgTUFZX0FQUEVORCwgTUFZX1dSSVRFIG11c3QgYWxzbyBiZSBzZXQgaW4gQG1hc2suCiAg Ki8KLWludCBpbm9kZV9wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKQor aW50IGlub2RlX3Blcm1pc3Npb24oc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaW5vZGUg Kmlub2RlLCBpbnQgbWFzaykKIHsKIAlpbnQgcmV0dmFsOwogCiAJcmV0dmFsID0gc2JfcGVybWlz c2lvbihpbm9kZS0+aV9zYiwgaW5vZGUsIG1hc2spOwogCWlmIChyZXR2YWwpCiAJCXJldHVybiBy ZXR2YWw7Ci0JcmV0dXJuIF9faW5vZGVfcGVybWlzc2lvbihpbm9kZSwgbWFzayk7CisJcmV0dXJu IF9faW5vZGVfcGVybWlzc2lvbihkZW50cnksIGlub2RlLCBtYXNrKTsKIH0KIAogLyoqCkBAIC03 MjksNyArNzI5LDcgQEAgc3RhdGljIGlubGluZSBpbnQgbWF5X2ZvbGxvd19saW5rKHN0cnVjdCBw YXRoICpsaW5rLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkKICAqCiAgKiBPdGhlcndpc2UgcmV0dXJu cyB0cnVlLgogICovCi1zdGF0aWMgYm9vbCBzYWZlX2hhcmRsaW5rX3NvdXJjZShzdHJ1Y3QgaW5v ZGUgKmlub2RlKQorc3RhdGljIGJvb2wgc2FmZV9oYXJkbGlua19zb3VyY2Uoc3RydWN0IGRlbnRy eSAqZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQogewogCXVtb2RlX3QgbW9kZSA9IGlub2Rl LT5pX21vZGU7CiAKQEAgLTc0Niw3ICs3NDYsNyBAQCBzdGF0aWMgYm9vbCBzYWZlX2hhcmRsaW5r X3NvdXJjZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKiBIYXJk bGlua2luZyB0byB1bnJlYWRhYmxlIG9yIHVud3JpdGFibGUgc291cmNlcyBpcyBkYW5nZXJvdXMu ICovCi0JaWYgKGlub2RlX3Blcm1pc3Npb24oaW5vZGUsIE1BWV9SRUFEIHwgTUFZX1dSSVRFKSkK KwlpZiAoaW5vZGVfcGVybWlzc2lvbihkZW50cnksIGlub2RlLCBNQVlfUkVBRCB8IE1BWV9XUklU RSkpCiAJCXJldHVybiBmYWxzZTsKIAogCXJldHVybiB0cnVlOwpAQCAtNzc4LDcgKzc3OCw3IEBA IHN0YXRpYyBpbnQgbWF5X2xpbmthdChzdHJ1Y3QgcGF0aCAqbGluaykKIAkvKiBTb3VyY2UgaW5v ZGUgb3duZXIgKG9yIENBUF9GT1dORVIpIGNhbiBoYXJkbGluayBhbGwgdGhleSBsaWtlLAogCSAq IG90aGVyd2lzZSwgaXQgbXVzdCBiZSBhIHNhZmUgc291cmNlLgogCSAqLwotCWlmICh1aWRfZXEo Y3JlZC0+ZnN1aWQsIGlub2RlLT5pX3VpZCkgfHwgc2FmZV9oYXJkbGlua19zb3VyY2UoaW5vZGUp IHx8CisJaWYgKHVpZF9lcShjcmVkLT5mc3VpZCwgaW5vZGUtPmlfdWlkKSB8fCBzYWZlX2hhcmRs aW5rX3NvdXJjZShsaW5rLT5kZW50cnksIGlub2RlKSB8fAogCSAgICBjYXBhYmxlKENBUF9GT1dO RVIpKQogCQlyZXR1cm4gMDsKIApAQCAtMTQ0MiwxMyArMTQ0MiwxMyBAQCBzdGF0aWMgaW50IGxv b2t1cF9zbG93KHN0cnVjdCBuYW1laWRhdGEgKm5kLCBzdHJ1Y3QgcGF0aCAqcGF0aCkKIHN0YXRp YyBpbmxpbmUgaW50IG1heV9sb29rdXAoc3RydWN0IG5hbWVpZGF0YSAqbmQpCiB7CiAJaWYgKG5k LT5mbGFncyAmIExPT0tVUF9SQ1UpIHsKLQkJaW50IGVyciA9IGlub2RlX3Blcm1pc3Npb24obmQt Pmlub2RlLCBNQVlfRVhFQ3xNQVlfTk9UX0JMT0NLKTsKKwkJaW50IGVyciA9IGlub2RlX3Blcm1p c3Npb24obmQtPnBhdGguZGVudHJ5LCBuZC0+aW5vZGUsIE1BWV9FWEVDfE1BWV9OT1RfQkxPQ0sp OwogCQlpZiAoZXJyICE9IC1FQ0hJTEQpCiAJCQlyZXR1cm4gZXJyOwogCQlpZiAodW5sYXp5X3dh bGsobmQsIE5VTEwpKQogCQkJcmV0dXJuIC1FQ0hJTEQ7CiAJfQotCXJldHVybiBpbm9kZV9wZXJt aXNzaW9uKG5kLT5pbm9kZSwgTUFZX0VYRUMpOworCXJldHVybiBpbm9kZV9wZXJtaXNzaW9uKG5k LT5wYXRoLmRlbnRyeSwgbmQtPmlub2RlLCBNQVlfRVhFQyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUg aW50IGhhbmRsZV9kb3RzKHN0cnVjdCBuYW1laWRhdGEgKm5kLCBpbnQgdHlwZSkKQEAgLTE3OTIs NyArMTc5Miw3IEBAIHN0YXRpYyBpbnQgcGF0aF9pbml0KGludCBkZmQsIGNvbnN0IGNoYXIgKm5h bWUsIHVuc2lnbmVkIGludCBmbGFncywKIAkJaWYgKCpuYW1lKSB7CiAJCQlpZiAoIWRfaXNfZGly ZWN0b3J5KHJvb3QpKQogCQkJCXJldHVybiAtRU5PVERJUjsKLQkJCXJldHZhbCA9IGlub2RlX3Bl cm1pc3Npb24oaW5vZGUsIE1BWV9FWEVDKTsKKwkJCXJldHZhbCA9IGlub2RlX3Blcm1pc3Npb24o cm9vdCwgaW5vZGUsIE1BWV9FWEVDKTsKIAkJCWlmIChyZXR2YWwpCiAJCQkJcmV0dXJuIHJldHZh bDsKIAkJfQpAQCAtMjA3OCw3ICsyMDc4LDcgQEAgc3RydWN0IGRlbnRyeSAqbG9va3VwX29uZV9s ZW4oY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGRlbnRyeSAqYmFzZSwgaW50IGxlbikKIAkJCXJl dHVybiBFUlJfUFRSKGVycik7CiAJfQogCi0JZXJyID0gaW5vZGVfcGVybWlzc2lvbihiYXNlLT5k X2lub2RlLCBNQVlfRVhFQyk7CisJZXJyID0gaW5vZGVfcGVybWlzc2lvbihiYXNlLCBiYXNlLT5k X2lub2RlLCBNQVlfRVhFQyk7CiAJaWYgKGVycikKIAkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKIApA QCAtMjM3OCw3ICsyMzc4LDcgQEAgc3RhdGljIGludCBtYXlfZGVsZXRlKHN0cnVjdCBkZW50cnkg KnBhcmVudCwgc3RydWN0IGRlbnRyeSAqdmljdGltLCBib29sIGlzZGlyKQogCUJVR19PTih2aWN0 aW0tPmRfcGFyZW50LT5kX2lub2RlICE9IGRpcik7CiAJYXVkaXRfaW5vZGVfY2hpbGQoZGlyLCB2 aWN0aW0sIEFVRElUX1RZUEVfQ0hJTERfREVMRVRFKTsKIAotCWVycm9yID0gaW5vZGVfcGVybWlz c2lvbihkaXIsIE1BWV9XUklURSB8IE1BWV9FWEVDKTsKKwllcnJvciA9IGlub2RlX3Blcm1pc3Np b24ocGFyZW50LCBkaXIsIE1BWV9XUklURSB8IE1BWV9FWEVDKTsKIAlpZiAoZXJyb3IpCiAJCXJl dHVybiBlcnJvcjsKIAlpZiAoSVNfQVBQRU5EKGRpcikpCkBAIC0yNDE3LDcgKzI0MTcsNyBAQCBz dGF0aWMgaW5saW5lIGludCBtYXlfY3JlYXRlKHN0cnVjdCBkZW50cnkgKnBhcmVudCwgc3RydWN0 IGRlbnRyeSAqY2hpbGQpCiAJCXJldHVybiAtRUVYSVNUOwogCWlmIChJU19ERUFERElSKGRpcikp CiAJCXJldHVybiAtRU5PRU5UOwotCXJldHVybiBpbm9kZV9wZXJtaXNzaW9uKGRpciwgTUFZX1dS SVRFIHwgTUFZX0VYRUMpOworCXJldHVybiBpbm9kZV9wZXJtaXNzaW9uKHBhcmVudCwgZGlyLCBN QVlfV1JJVEUgfCBNQVlfRVhFQyk7CiB9CiAKIC8qCkBAIC0yNTE0LDcgKzI1MTQsNyBAQCBzdGF0 aWMgaW50IG1heV9vcGVuKHN0cnVjdCBwYXRoICpwYXRoLCBpbnQgYWNjX21vZGUsIGludCBmbGFn KQogCQlicmVhazsKIAl9CiAKLQllcnJvciA9IGlub2RlX3Blcm1pc3Npb24oaW5vZGUsIGFjY19t b2RlKTsKKwllcnJvciA9IGlub2RlX3Blcm1pc3Npb24oZGVudHJ5LCBpbm9kZSwgYWNjX21vZGUp OwogCWlmIChlcnJvcikKIAkJcmV0dXJuIGVycm9yOwogCkBAIC0yNTcwLDcgKzI1NzAsNyBAQCBz dGF0aWMgaW50IG1heV9vX2NyZWF0ZShzdHJ1Y3QgcGF0aCAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpk ZW50cnksIHVtb2RlX3QgbW9kZSkKIAlpZiAoZXJyb3IpCiAJCXJldHVybiBlcnJvcjsKIAotCWVy cm9yID0gaW5vZGVfcGVybWlzc2lvbihkaXItPmRlbnRyeS0+ZF9pbm9kZSwgTUFZX1dSSVRFIHwg TUFZX0VYRUMpOworCWVycm9yID0gaW5vZGVfcGVybWlzc2lvbihkaXItPmRlbnRyeSwgZGlyLT5k ZW50cnktPmRfaW5vZGUsIE1BWV9XUklURSB8IE1BWV9FWEVDKTsKIAlpZiAoZXJyb3IpCiAJCXJl dHVybiBlcnJvcjsKIApAQCAtMzA3OSwxMCArMzA3OSwxMCBAQCBzdGF0aWMgaW50IGRvX3RtcGZp bGUoaW50IGRmZCwgc3RydWN0IGZpbGVuYW1lICpwYXRobmFtZSwKIAlpZiAodW5saWtlbHkoZXJy b3IpKQogCQlnb3RvIG91dDsKIAkvKiB3ZSB3YW50IGRpcmVjdG9yeSB0byBiZSB3cml0YWJsZSAq LwotCWVycm9yID0gaW5vZGVfcGVybWlzc2lvbihuZC0+aW5vZGUsIE1BWV9XUklURSB8IE1BWV9F WEVDKTsKKwlkZW50cnkgPSBuZC0+cGF0aC5kZW50cnk7CisJZXJyb3IgPSBpbm9kZV9wZXJtaXNz aW9uKGRlbnRyeSwgbmQtPmlub2RlLCBNQVlfV1JJVEUgfCBNQVlfRVhFQyk7CiAJaWYgKGVycm9y KQogCQlnb3RvIG91dDI7Ci0JZGVudHJ5ID0gbmQtPnBhdGguZGVudHJ5OwogCWRpciA9IGRlbnRy eS0+ZF9pbm9kZTsKIAlpZiAoIWRpci0+aV9vcC0+dG1wZmlsZSkgewogCQllcnJvciA9IC1FT1BO T1RTVVBQOwpAQCAtNDAwMCw3ICs0MDAwLDcgQEAgc3RhdGljIGludCB2ZnNfcmVuYW1lX2Rpcihz dHJ1Y3QgaW5vZGUgKm9sZF9kaXIsIHN0cnVjdCBkZW50cnkgKm9sZF9kZW50cnksCiAJICogd2Un bGwgbmVlZCB0byBmbGlwICcuLicuCiAJICovCiAJaWYgKG5ld19kaXIgIT0gb2xkX2Rpcikgewot CQllcnJvciA9IGlub2RlX3Blcm1pc3Npb24ob2xkX2RlbnRyeS0+ZF9pbm9kZSwgTUFZX1dSSVRF KTsKKwkJZXJyb3IgPSBpbm9kZV9wZXJtaXNzaW9uKG9sZF9kZW50cnksIG9sZF9kZW50cnktPmRf aW5vZGUsIE1BWV9XUklURSk7CiAJCWlmIChlcnJvcikKIAkJCXJldHVybiBlcnJvcjsKIAl9CmRp ZmYgLS1naXQgYS9mcy9uY3Bmcy9pb2N0bC5jIGIvZnMvbmNwZnMvaW9jdGwuYwppbmRleCA2MDQy NmNjYjNiNjUuLjEyOTRlYmI1YjRjZSAxMDA2NDQKLS0tIGEvZnMvbmNwZnMvaW9jdGwuYworKysg Yi9mcy9uY3Bmcy9pb2N0bC5jCkBAIC04NzIsNyArODcyLDggQEAgbG9uZyBuY3BfaW9jdGwoc3Ry dWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQogCQkJ aWYgKHJldCkKIAkJCQlnb3RvIG91dDsKIAkJCW5lZWRfZHJvcF93cml0ZSA9IDE7Ci0JCQlyZXQg PSBpbm9kZV9wZXJtaXNzaW9uKGlub2RlLCBNQVlfV1JJVEUpOworCQkJLy8gV2h5IG5vdCBqdXN0 IGNoZWNrIGZfbW9kZSAmIEZNT0RFX1dSSVRFPworCQkJcmV0ID0gaW5vZGVfcGVybWlzc2lvbihm aWxwLT5mX3BhdGguZGVudHJ5LCBpbm9kZSwgTUFZX1dSSVRFKTsKIAkJCWlmIChyZXQpCiAJCQkJ Z290byBvdXREcm9wV3JpdGU7CiAJCQlicmVhazsKQEAgLTg4NCw3ICs4ODUsOCBAQCBsb25nIG5j cF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9u ZyBhcmcpCiAJCWNhc2UgTkNQX0lPQ19HRVRNT1VOVFVJRDY0OgogCQljYXNlIE5DUF9JT0NfR0VU Uk9PVDoKIAkJY2FzZSBOQ1BfSU9DX1NJR05fV0FOVEVEOgotCQkJcmV0ID0gaW5vZGVfcGVybWlz c2lvbihpbm9kZSwgTUFZX1JFQUQpOworCQkJLy8gV2h5IG5vdCBqdXN0IGNoZWNrIGZfbW9kZSAm IEZNT0RFX1JFQUQ/CisJCQlyZXQgPSBpbm9kZV9wZXJtaXNzaW9uKGZpbHAtPmZfcGF0aC5kZW50 cnksIGlub2RlLCBNQVlfUkVBRCk7CiAJCQlpZiAocmV0KQogCQkJCWdvdG8gb3V0OwogCQkJYnJl YWs7CmRpZmYgLS1naXQgYS9mcy9uZnMvZGlyLmMgYi9mcy9uZnMvZGlyLmMKaW5kZXggYmUzOGI1 NzM0OTVhLi5kMTMyMTY2OTNkMWEgMTAwNjQ0Ci0tLSBhL2ZzL25mcy9kaXIuYworKysgYi9mcy9u ZnMvZGlyLmMKQEAgLTIyNjksNyArMjI2OSw3IEBAIGludCBuZnNfbWF5X29wZW4oc3RydWN0IGlu b2RlICppbm9kZSwgc3RydWN0IHJwY19jcmVkICpjcmVkLCBpbnQgb3BlbmZsYWdzKQogfQogRVhQ T1JUX1NZTUJPTF9HUEwobmZzX21heV9vcGVuKTsKIAotaW50IG5mc19wZXJtaXNzaW9uKHN0cnVj dCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKQoraW50IG5mc19wZXJtaXNzaW9uKHN0cnVjdCBkZW50 cnkgKmRlbnRyeSwgc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2spCiB7CiAJc3RydWN0IHJw Y19jcmVkICpjcmVkOwogCWludCByZXMgPSAwOwpkaWZmIC0tZ2l0IGEvZnMvbmZzZC9uZnNmaC5j IGIvZnMvbmZzZC9uZnNmaC5jCmluZGV4IDNjMzdiMTYwZGNhZC4uOTc5YmUxOTAwODBmIDEwMDY0 NAotLS0gYS9mcy9uZnNkL25mc2ZoLmMKKysrIGIvZnMvbmZzZC9uZnNmaC5jCkBAIC0zOCw3ICsz OCw3IEBAIHN0YXRpYyBpbnQgbmZzZF9hY2NlcHRhYmxlKHZvaWQgKmV4cHYsIHN0cnVjdCBkZW50 cnkgKmRlbnRyeSkKIAkJLyogbWFrZSBzdXJlIHBhcmVudHMgZ2l2ZSB4IHBlcm1pc3Npb24gdG8g dXNlciAqLwogCQlpbnQgZXJyOwogCQlwYXJlbnQgPSBkZ2V0X3BhcmVudCh0ZGVudHJ5KTsKLQkJ ZXJyID0gaW5vZGVfcGVybWlzc2lvbihwYXJlbnQtPmRfaW5vZGUsIE1BWV9FWEVDKTsKKwkJZXJy ID0gaW5vZGVfcGVybWlzc2lvbihwYXJlbnQsIHBhcmVudC0+ZF9pbm9kZSwgTUFZX0VYRUMpOwog CQlpZiAoZXJyIDwgMCkgewogCQkJZHB1dChwYXJlbnQpOwogCQkJYnJlYWs7CmRpZmYgLS1naXQg YS9mcy9uZnNkL3Zmcy5jIGIvZnMvbmZzZC92ZnMuYwppbmRleCA2ZmFlZjBlNWU0M2IuLmYwNDVj NDM1ZDQ5YSAxMDA2NDQKLS0tIGEvZnMvbmZzZC92ZnMuYworKysgYi9mcy9uZnNkL3Zmcy5jCkBA IC0yMDI4LDEzICsyMDI4LDEzIEBAIG5mc2RfcGVybWlzc2lvbihzdHJ1Y3Qgc3ZjX3Jxc3QgKnJx c3RwLCBzdHJ1Y3Qgc3ZjX2V4cG9ydCAqZXhwLAogCQlyZXR1cm4gMDsKIAogCS8qIFRoaXMgYXNz dW1lcyAgTkZTRF9NQVlfe1JFQUQsV1JJVEUsRVhFQ30gPT0gTUFZX3tSRUFELFdSSVRFLEVYRUN9 ICovCi0JZXJyID0gaW5vZGVfcGVybWlzc2lvbihpbm9kZSwgYWNjICYgKE1BWV9SRUFEfE1BWV9X UklURXxNQVlfRVhFQykpOworCWVyciA9IGlub2RlX3Blcm1pc3Npb24oZGVudHJ5LCBpbm9kZSwg YWNjICYgKE1BWV9SRUFEfE1BWV9XUklURXxNQVlfRVhFQykpOwogCiAJLyogQWxsb3cgcmVhZCBh Y2Nlc3MgdG8gYmluYXJpZXMgZXZlbiB3aGVuIG1vZGUgMTExICovCiAJaWYgKGVyciA9PSAtRUFD Q0VTICYmIFNfSVNSRUcoaW5vZGUtPmlfbW9kZSkgJiYKIAkgICAgIChhY2MgPT0gKE5GU0RfTUFZ X1JFQUQgfCBORlNEX01BWV9PV05FUl9PVkVSUklERSkgfHwKIAkgICAgICBhY2MgPT0gKE5GU0Rf TUFZX1JFQUQgfCBORlNEX01BWV9SRUFEX0lGX0VYRUMpKSkKLQkJZXJyID0gaW5vZGVfcGVybWlz c2lvbihpbm9kZSwgTUFZX0VYRUMpOworCQllcnIgPSBpbm9kZV9wZXJtaXNzaW9uKGRlbnRyeSwg aW5vZGUsIE1BWV9FWEVDKTsKIAogCXJldHVybiBlcnI/IG5mc2Vycm5vKGVycikgOiAwOwogfQpk aWZmIC0tZ2l0IGEvZnMvbmlsZnMyL2lub2RlLmMgYi9mcy9uaWxmczIvaW5vZGUuYwppbmRleCA3 ZTM1MGM1NjJlMGUuLjUzNDhiMmYxNDM5NSAxMDA2NDQKLS0tIGEvZnMvbmlsZnMyL2lub2RlLmMK KysrIGIvZnMvbmlsZnMyL2lub2RlLmMKQEAgLTg1MCw3ICs4NTAsNyBAQCBvdXRfZXJyOgogCXJl dHVybiBlcnI7CiB9CiAKLWludCBuaWxmc19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUs IGludCBtYXNrKQoraW50IG5pbGZzX3Blcm1pc3Npb24oc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBz dHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzaykKIHsKIAlzdHJ1Y3QgbmlsZnNfcm9vdCAqcm9v dCA9IE5JTEZTX0koaW5vZGUpLT5pX3Jvb3Q7CiAJaWYgKChtYXNrICYgTUFZX1dSSVRFKSAmJiBy b290ICYmCmRpZmYgLS1naXQgYS9mcy9uaWxmczIvbmlsZnMuaCBiL2ZzL25pbGZzMi9uaWxmcy5o CmluZGV4IDliYzcyZGVjM2ZhNi4uM2Q1YWJkMjI4YjhjIDEwMDY0NAotLS0gYS9mcy9uaWxmczIv bmlsZnMuaAorKysgYi9mcy9uaWxmczIvbmlsZnMuaApAQCAtMjc4LDcgKzI3OCw3IEBAIGV4dGVy biB2b2lkIG5pbGZzX3RydW5jYXRlKHN0cnVjdCBpbm9kZSAqKTsKIGV4dGVybiB2b2lkIG5pbGZz X2V2aWN0X2lub2RlKHN0cnVjdCBpbm9kZSAqKTsKIGV4dGVybiBpbnQgbmlsZnNfc2V0YXR0cihz dHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpYXR0ciAqKTsKIGV4dGVybiB2b2lkIG5pbGZzX3dyaXRl X2ZhaWxlZChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgbG9mZl90IHRvKTsKLWludCBu aWxmc19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKTsKK2ludCBuaWxm c19wZXJtaXNzaW9uKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlub2RlICppbm9kZSwg aW50IG1hc2spOwogaW50IG5pbGZzX2xvYWRfaW5vZGVfYmxvY2soc3RydWN0IGlub2RlICppbm9k ZSwgc3RydWN0IGJ1ZmZlcl9oZWFkICoqcGJoKTsKIGV4dGVybiBpbnQgbmlsZnNfaW5vZGVfZGly dHkoc3RydWN0IGlub2RlICopOwogaW50IG5pbGZzX3NldF9maWxlX2RpcnR5KHN0cnVjdCBpbm9k ZSAqaW5vZGUsIHVuc2lnbmVkIG5yX2RpcnR5KTsKZGlmZiAtLWdpdCBhL2ZzL25vdGlmeS9mYW5v dGlmeS9mYW5vdGlmeV91c2VyLmMgYi9mcy9ub3RpZnkvZmFub3RpZnkvZmFub3RpZnlfdXNlci5j CmluZGV4IGI2MTc1ZmExMWJmOC4uNWYxNTFkNzg4NzMzIDEwMDY0NAotLS0gYS9mcy9ub3RpZnkv ZmFub3RpZnkvZmFub3RpZnlfdXNlci5jCisrKyBiL2ZzL25vdGlmeS9mYW5vdGlmeS9mYW5vdGlm eV91c2VyLmMKQEAgLTQ5MCw3ICs0OTAsNyBAQCBzdGF0aWMgaW50IGZhbm90aWZ5X2ZpbmRfcGF0 aChpbnQgZGZkLCBjb25zdCBjaGFyIF9fdXNlciAqZmlsZW5hbWUsCiAJfQogCiAJLyogeW91IGNh biBvbmx5IHdhdGNoIGFuIGlub2RlIGlmIHlvdSBoYXZlIHJlYWQgcGVybWlzc2lvbnMgb24gaXQg Ki8KLQlyZXQgPSBpbm9kZV9wZXJtaXNzaW9uKHBhdGgtPmRlbnRyeS0+ZF9pbm9kZSwgTUFZX1JF QUQpOworCXJldCA9IGlub2RlX3Blcm1pc3Npb24ocGF0aC0+ZGVudHJ5LCBwYXRoLT5kZW50cnkt PmRfaW5vZGUsIE1BWV9SRUFEKTsKIAlpZiAocmV0KQogCQlwYXRoX3B1dChwYXRoKTsKIG91dDoK ZGlmZiAtLWdpdCBhL2ZzL25vdGlmeS9pbm90aWZ5L2lub3RpZnlfdXNlci5jIGIvZnMvbm90aWZ5 L2lub3RpZnkvaW5vdGlmeV91c2VyLmMKaW5kZXggNDk3Mzk1YzgyNzRiLi40YzAyMmViMjY2Yzcg MTAwNjQ0Ci0tLSBhL2ZzL25vdGlmeS9pbm90aWZ5L2lub3RpZnlfdXNlci5jCisrKyBiL2ZzL25v dGlmeS9pbm90aWZ5L2lub3RpZnlfdXNlci5jCkBAIC0zMzgsNyArMzM4LDcgQEAgc3RhdGljIGlu dCBpbm90aWZ5X2ZpbmRfaW5vZGUoY29uc3QgY2hhciBfX3VzZXIgKmRpcm5hbWUsIHN0cnVjdCBw YXRoICpwYXRoLCB1bnMKIAlpZiAoZXJyb3IpCiAJCXJldHVybiBlcnJvcjsKIAkvKiB5b3UgY2Fu IG9ubHkgd2F0Y2ggYW4gaW5vZGUgaWYgeW91IGhhdmUgcmVhZCBwZXJtaXNzaW9ucyBvbiBpdCAq LwotCWVycm9yID0gaW5vZGVfcGVybWlzc2lvbihwYXRoLT5kZW50cnktPmRfaW5vZGUsIE1BWV9S RUFEKTsKKwllcnJvciA9IGlub2RlX3Blcm1pc3Npb24ocGF0aC0+ZGVudHJ5LCBwYXRoLT5kZW50 cnktPmRfaW5vZGUsIE1BWV9SRUFEKTsKIAlpZiAoZXJyb3IpCiAJCXBhdGhfcHV0KHBhdGgpOwog CXJldHVybiBlcnJvcjsKZGlmZiAtLWdpdCBhL2ZzL29jZnMyL2ZpbGUuYyBiL2ZzL29jZnMyL2Zp bGUuYwppbmRleCBkNzdkNzFlYWQ4ZDEuLjU2MmQ5ZDczNDMzZCAxMDA2NDQKLS0tIGEvZnMvb2Nm czIvZmlsZS5jCisrKyBiL2ZzL29jZnMyL2ZpbGUuYwpAQCAtMTI2OSw3ICsxMjY5LDcgQEAgYmFp bDoKIAlyZXR1cm4gZXJyOwogfQogCi1pbnQgb2NmczJfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUg Kmlub2RlLCBpbnQgbWFzaykKK2ludCBvY2ZzMl9wZXJtaXNzaW9uKHN0cnVjdCBkZW50cnkgKmRl bnRyeSwgc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2spCiB7CiAJaW50IHJldDsKIApkaWZm IC0tZ2l0IGEvZnMvb2NmczIvZmlsZS5oIGIvZnMvb2NmczIvZmlsZS5oCmluZGV4IDk3YmY3NjFj OWU3Yy4uZTJiZGJjYWRkNmY0IDEwMDY0NAotLS0gYS9mcy9vY2ZzMi9maWxlLmgKKysrIGIvZnMv b2NmczIvZmlsZS5oCkBAIC02MSw3ICs2MSw3IEBAIGludCBvY2ZzMl96ZXJvX2V4dGVuZChzdHJ1 Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmRpX2JoLAogaW50IG9jZnMyX3Nl dGF0dHIoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaWF0dHIgKmF0dHIpOwogaW50IG9j ZnMyX2dldGF0dHIoc3RydWN0IHZmc21vdW50ICptbnQsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwK IAkJICBzdHJ1Y3Qga3N0YXQgKnN0YXQpOwotaW50IG9jZnMyX3Blcm1pc3Npb24oc3RydWN0IGlu b2RlICppbm9kZSwgaW50IG1hc2spOworaW50IG9jZnMyX3Blcm1pc3Npb24oc3RydWN0IGRlbnRy eSAqZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzayk7CiAKIGludCBvY2ZzMl9z aG91bGRfdXBkYXRlX2F0aW1lKHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJCQkgICAgICBzdHJ1Y3Qg dmZzbW91bnQgKnZmc21udCk7CmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9yZWZjb3VudHRyZWUuYyBi L2ZzL29jZnMyL3JlZmNvdW50dHJlZS5jCmluZGV4IDZiYTRiY2JjNDc5Ni4uYTVkNDI5YjY1YmVm IDEwMDY0NAotLS0gYS9mcy9vY2ZzMi9yZWZjb3VudHRyZWUuYworKysgYi9mcy9vY2ZzMi9yZWZj b3VudHRyZWUuYwpAQCAtNDM1MCwxMyArNDM1MCwxNSBAQCBvdXQ6CiAgKi8KIAogLyogY29waWVk IGZyb20gbWF5X2NyZWF0ZSBpbiBWRlMuICovCi1zdGF0aWMgaW5saW5lIGludCBvY2ZzMl9tYXlf Y3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpjaGlsZCkKK3N0YXRpYyBp bmxpbmUgaW50IG9jZnMyX21heV9jcmVhdGUoc3RydWN0IGRlbnRyeSAqcGFyZW50LCBzdHJ1Y3Qg ZGVudHJ5ICpjaGlsZCkKIHsKKwlzdHJ1Y3QgaW5vZGUgKmRpciA9IHBhcmVudC0+ZF9pbm9kZTsK KwogCWlmIChjaGlsZC0+ZF9pbm9kZSkKIAkJcmV0dXJuIC1FRVhJU1Q7CiAJaWYgKElTX0RFQURE SVIoZGlyKSkKIAkJcmV0dXJuIC1FTk9FTlQ7Ci0JcmV0dXJuIGlub2RlX3Blcm1pc3Npb24oZGly LCBNQVlfV1JJVEUgfCBNQVlfRVhFQyk7CisJcmV0dXJuIGlub2RlX3Blcm1pc3Npb24ocGFyZW50 LCBkaXIsIE1BWV9XUklURSB8IE1BWV9FWEVDKTsKIH0KIAogLyoqCkBAIC00MzY3LDE2ICs0MzY5 LDE3IEBAIHN0YXRpYyBpbmxpbmUgaW50IG9jZnMyX21heV9jcmVhdGUoc3RydWN0IGlub2RlICpk aXIsIHN0cnVjdCBkZW50cnkgKmNoaWxkKQogICogQG5ld19kZW50cnk6ICAgICAgICB0YXJnZXQg ZGVudHJ5CiAgKiBAcHJlc2VydmU6ICBpZiB0cnVlLCBwcmVzZXJ2ZSBhbGwgZmlsZSBhdHRyaWJ1 dGVzCiAgKi8KLXN0YXRpYyBpbnQgb2NmczJfdmZzX3JlZmxpbmsoc3RydWN0IGRlbnRyeSAqb2xk X2RlbnRyeSwgc3RydWN0IGlub2RlICpkaXIsCitzdGF0aWMgaW50IG9jZnMyX3Zmc19yZWZsaW5r KHN0cnVjdCBkZW50cnkgKm9sZF9kZW50cnksIHN0cnVjdCBkZW50cnkgKm5ld19wYXJlbnQsCiAJ CQkgICAgIHN0cnVjdCBkZW50cnkgKm5ld19kZW50cnksIGJvb2wgcHJlc2VydmUpCiB7CisJc3Ry dWN0IGlub2RlICpkaXIgPSBuZXdfcGFyZW50LT5kX2lub2RlOwogCXN0cnVjdCBpbm9kZSAqaW5v ZGUgPSBvbGRfZGVudHJ5LT5kX2lub2RlOwogCWludCBlcnJvcjsKIAogCWlmICghaW5vZGUpCiAJ CXJldHVybiAtRU5PRU5UOwogCi0JZXJyb3IgPSBvY2ZzMl9tYXlfY3JlYXRlKGRpciwgbmV3X2Rl bnRyeSk7CisJZXJyb3IgPSBvY2ZzMl9tYXlfY3JlYXRlKG5ld19wYXJlbnQsIG5ld19kZW50cnkp OwogCWlmIChlcnJvcikKIAkJcmV0dXJuIGVycm9yOwogCkBAIC00NDEwLDcgKzQ0MTMsNyBAQCBz dGF0aWMgaW50IG9jZnMyX3Zmc19yZWZsaW5rKHN0cnVjdCBkZW50cnkgKm9sZF9kZW50cnksIHN0 cnVjdCBpbm9kZSAqZGlyLAogCSAqIGZpbGUuCiAJICovCiAJaWYgKCFwcmVzZXJ2ZSkgewotCQll cnJvciA9IGlub2RlX3Blcm1pc3Npb24oaW5vZGUsIE1BWV9SRUFEKTsKKwkJZXJyb3IgPSBpbm9k ZV9wZXJtaXNzaW9uKG9sZF9kZW50cnksIGlub2RlLCBNQVlfUkVBRCk7CiAJCWlmIChlcnJvcikK IAkJCXJldHVybiBlcnJvcjsKIAl9CkBAIC00NDU4LDcgKzQ0NjEsNyBAQCBpbnQgb2NmczJfcmVm bGlua19pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCX0KIAogCWVycm9yID0gb2NmczJfdmZz X3JlZmxpbmsob2xkX3BhdGguZGVudHJ5LAotCQkJCSAgbmV3X3BhdGguZGVudHJ5LT5kX2lub2Rl LAorCQkJCSAgbmV3X3BhdGguZGVudHJ5LAogCQkJCSAgbmV3X2RlbnRyeSwgcHJlc2VydmUpOwog b3V0X2RwdXQ6CiAJZG9uZV9wYXRoX2NyZWF0ZSgmbmV3X3BhdGgsIG5ld19kZW50cnkpOwpkaWZm IC0tZ2l0IGEvZnMvb3Blbi5jIGIvZnMvb3Blbi5jCmluZGV4IDRiM2UxZWRmMmZlNC4uNzg4YmU0 ZmI4N2YzIDEwMDY0NAotLS0gYS9mcy9vcGVuLmMKKysrIGIvZnMvb3Blbi5jCkBAIC02NSwxMCAr NjUsMTIgQEAgaW50IGRvX3RydW5jYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgbG9mZl90IGxl bmd0aCwgdW5zaWduZWQgaW50IHRpbWVfYXR0cnMsCiAKIGxvbmcgdmZzX3RydW5jYXRlKHN0cnVj dCBwYXRoICpwYXRoLCBsb2ZmX3QgbGVuZ3RoKQogeworCXN0cnVjdCBkZW50cnkgKmRlbnRyeTsK IAlzdHJ1Y3QgaW5vZGUgKmlub2RlOwogCWxvbmcgZXJyb3I7CiAKLQlpbm9kZSA9IHBhdGgtPmRl bnRyeS0+ZF9pbm9kZTsKKwlkZW50cnkgPSBwYXRoLT5kZW50cnk7CisJaW5vZGUgPSBkZW50cnkt PmRfaW5vZGU7CiAKIAkvKiBGb3IgZGlyZWN0b3JpZXMgaXQncyAtRUlTRElSLCBmb3Igb3RoZXIg bm9uLXJlZ3VsYXJzIC0gLUVJTlZBTCAqLwogCWlmIChTX0lTRElSKGlub2RlLT5pX21vZGUpKQpA QCAtODAsNyArODIsNyBAQCBsb25nIHZmc190cnVuY2F0ZShzdHJ1Y3QgcGF0aCAqcGF0aCwgbG9m Zl90IGxlbmd0aCkKIAlpZiAoZXJyb3IpCiAJCWdvdG8gb3V0OwogCi0JZXJyb3IgPSBpbm9kZV9w ZXJtaXNzaW9uKGlub2RlLCBNQVlfV1JJVEUpOworCWVycm9yID0gaW5vZGVfcGVybWlzc2lvbihk ZW50cnksIGlub2RlLCBNQVlfV1JJVEUpOwogCWlmIChlcnJvcikKIAkJZ290byBtbnRfZHJvcF93 cml0ZV9hbmRfb3V0OwogCkBAIC0zNDQsNyArMzQ2LDcgQEAgcmV0cnk6CiAJCQlnb3RvIG91dF9w YXRoX3JlbGVhc2U7CiAJfQogCi0JcmVzID0gaW5vZGVfcGVybWlzc2lvbihpbm9kZSwgbW9kZSB8 IE1BWV9BQ0NFU1MpOworCXJlcyA9IGlub2RlX3Blcm1pc3Npb24ocGF0aC5kZW50cnksIGlub2Rl LCBtb2RlIHwgTUFZX0FDQ0VTUyk7CiAJLyogU3VTIHYyIHJlcXVpcmVzIHdlIHJlcG9ydCBhIHJl YWQgb25seSBmcyB0b28gKi8KIAlpZiAocmVzIHx8ICEobW9kZSAmIFNfSVdPVEgpIHx8IHNwZWNp YWxfZmlsZShpbm9kZS0+aV9tb2RlKSkKIAkJZ290byBvdXRfcGF0aF9yZWxlYXNlOwpAQCAtMzg4 LDcgKzM5MCw3IEBAIHJldHJ5OgogCWlmIChlcnJvcikKIAkJZ290byBvdXQ7CiAKLQllcnJvciA9 IGlub2RlX3Blcm1pc3Npb24ocGF0aC5kZW50cnktPmRfaW5vZGUsIE1BWV9FWEVDIHwgTUFZX0NI RElSKTsKKwllcnJvciA9IGlub2RlX3Blcm1pc3Npb24ocGF0aC5kZW50cnksIHBhdGguZGVudHJ5 LT5kX2lub2RlLCBNQVlfRVhFQyB8IE1BWV9DSERJUik7CiAJaWYgKGVycm9yKQogCQlnb3RvIGRw dXRfYW5kX291dDsKIApAQCAtNDIwLDcgKzQyMiw3IEBAIFNZU0NBTExfREVGSU5FMShmY2hkaXIs IHVuc2lnbmVkIGludCwgZmQpCiAJaWYgKCFTX0lTRElSKGlub2RlLT5pX21vZGUpKQogCQlnb3Rv IG91dF9wdXRmOwogCi0JZXJyb3IgPSBpbm9kZV9wZXJtaXNzaW9uKGlub2RlLCBNQVlfRVhFQyB8 IE1BWV9DSERJUik7CisJZXJyb3IgPSBpbm9kZV9wZXJtaXNzaW9uKGYuZmlsZS0+Zl9wYXRoLmRl bnRyeSwgaW5vZGUsIE1BWV9FWEVDIHwgTUFZX0NIRElSKTsKIAlpZiAoIWVycm9yKQogCQlzZXRf ZnNfcHdkKGN1cnJlbnQtPmZzLCAmZi5maWxlLT5mX3BhdGgpOwogb3V0X3B1dGY6CkBAIC00Mzks NyArNDQxLDcgQEAgcmV0cnk6CiAJaWYgKGVycm9yKQogCQlnb3RvIG91dDsKIAotCWVycm9yID0g aW5vZGVfcGVybWlzc2lvbihwYXRoLmRlbnRyeS0+ZF9pbm9kZSwgTUFZX0VYRUMgfCBNQVlfQ0hE SVIpOworCWVycm9yID0gaW5vZGVfcGVybWlzc2lvbihwYXRoLmRlbnRyeSwgcGF0aC5kZW50cnkt PmRfaW5vZGUsIE1BWV9FWEVDIHwgTUFZX0NIRElSKTsKIAlpZiAoZXJyb3IpCiAJCWdvdG8gZHB1 dF9hbmRfb3V0OwogCmRpZmYgLS1naXQgYS9mcy9wcm9jL2Jhc2UuYyBiL2ZzL3Byb2MvYmFzZS5j CmluZGV4IDUxNTA3MDY1MjYzYi4uZWI0NzUyODYzNDQyIDEwMDY0NAotLS0gYS9mcy9wcm9jL2Jh c2UuYworKysgYi9mcy9wcm9jL2Jhc2UuYwpAQCAtNTk2LDcgKzU5Niw3IEBAIHN0YXRpYyBib29s IGhhc19waWRfcGVybWlzc2lvbnMoc3RydWN0IHBpZF9uYW1lc3BhY2UgKnBpZCwKIH0KIAogCi1z dGF0aWMgaW50IHByb2NfcGlkX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1h c2spCitzdGF0aWMgaW50IHByb2NfcGlkX3Blcm1pc3Npb24oc3RydWN0IGRlbnRyeSAqZGVudHJ5 LCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzaykKIHsKIAlzdHJ1Y3QgcGlkX25hbWVzcGFj ZSAqcGlkID0gaW5vZGUtPmlfc2ItPnNfZnNfaW5mbzsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRh c2s7CmRpZmYgLS1naXQgYS9mcy9wcm9jL2ZkLmMgYi9mcy9wcm9jL2ZkLmMKaW5kZXggOTg1ZWE4 ODFiNWJjLi4wMjY1OTRkNWM4MjAgMTAwNjQ0Ci0tLSBhL2ZzL3Byb2MvZmQuYworKysgYi9mcy9w cm9jL2ZkLmMKQEAgLTI4MSw3ICsyODEsNyBAQCBzdGF0aWMgc3RydWN0IGRlbnRyeSAqcHJvY19s b29rdXBmZChzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAogICogL3By b2MvcGlkL2ZkIG5lZWRzIGEgc3BlY2lhbCBwZXJtaXNzaW9uIGhhbmRsZXIgc28gdGhhdCBhIHBy b2Nlc3MgY2FuIHN0aWxsCiAgKiBhY2Nlc3MgL3Byb2Mvc2VsZi9mZCBhZnRlciBpdCBoYXMgZXhl Y3V0ZWQgYSBzZXR1aWQoKS4KICAqLwotaW50IHByb2NfZmRfcGVybWlzc2lvbihzdHJ1Y3QgaW5v ZGUgKmlub2RlLCBpbnQgbWFzaykKK2ludCBwcm9jX2ZkX3Blcm1pc3Npb24oc3RydWN0IGRlbnRy eSAqZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzaykKIHsKIAlpbnQgcnYgPSBn ZW5lcmljX3Blcm1pc3Npb24oaW5vZGUsIG1hc2spOwogCWlmIChydiA9PSAwKQpkaWZmIC0tZ2l0 IGEvZnMvcHJvYy9mZC5oIGIvZnMvcHJvYy9mZC5oCmluZGV4IDdjMDQ3ZjI1NmFlMi4uMjlhNzBj MTZmZDY3IDEwMDY0NAotLS0gYS9mcy9wcm9jL2ZkLmgKKysrIGIvZnMvcHJvYy9mZC5oCkBAIC05 LDcgKzksNyBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGlub2RlX29wZXJhdGlvbnMgcHJvY19mZF9p bm9kZV9vcGVyYXRpb25zOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcHJv Y19mZGluZm9fb3BlcmF0aW9uczsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9u cyBwcm9jX2ZkaW5mb19pbm9kZV9vcGVyYXRpb25zOwogCi1leHRlcm4gaW50IHByb2NfZmRfcGVy bWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzayk7CitleHRlcm4gaW50IHByb2Nf ZmRfcGVybWlzc2lvbihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpbm9kZSAqaW5vZGUs IGludCBtYXNrKTsKIAogc3RhdGljIGlubGluZSBpbnQgcHJvY19mZChzdHJ1Y3QgaW5vZGUgKmlu b2RlKQogewpkaWZmIC0tZ2l0IGEvZnMvcHJvYy9wcm9jX3N5c2N0bC5jIGIvZnMvcHJvYy9wcm9j X3N5c2N0bC5jCmluZGV4IDcxMjkwNDYzYTFkMy4uYWZjZjFlODBhYjk3IDEwMDY0NAotLS0gYS9m cy9wcm9jL3Byb2Nfc3lzY3RsLmMKKysrIGIvZnMvcHJvYy9wcm9jX3N5c2N0bC5jCkBAIC02ODAs NyArNjgwLDcgQEAgc3RhdGljIGludCBwcm9jX3N5c19yZWFkZGlyKHN0cnVjdCBmaWxlICpmaWxl LCBzdHJ1Y3QgZGlyX2NvbnRleHQgKmN0eCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBw cm9jX3N5c19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKQorc3RhdGlj IGludCBwcm9jX3N5c19wZXJtaXNzaW9uKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlu b2RlICppbm9kZSwgaW50IG1hc2spCiB7CiAJLyoKIAkgKiBzeXNjdGwgZW50cmllcyB0aGF0IGFy ZSBub3Qgd3JpdGVhYmxlLApkaWZmIC0tZ2l0IGEvZnMvcmVpc2VyZnMveGF0dHIuYyBiL2ZzL3Jl aXNlcmZzL3hhdHRyLmMKaW5kZXggNWNkZmJkNjM4YjVjLi5mYmZlZDMyY2IyZDcgMTAwNjQ0Ci0t LSBhL2ZzL3JlaXNlcmZzL3hhdHRyLmMKKysrIGIvZnMvcmVpc2VyZnMveGF0dHIuYwpAQCAtOTMw LDcgKzkzMCw3IEBAIHN0YXRpYyBpbnQgeGF0dHJfbW91bnRfY2hlY2soc3RydWN0IHN1cGVyX2Js b2NrICpzKQogCXJldHVybiAwOwogfQogCi1pbnQgcmVpc2VyZnNfcGVybWlzc2lvbihzdHJ1Y3Qg aW5vZGUgKmlub2RlLCBpbnQgbWFzaykKK2ludCByZWlzZXJmc19wZXJtaXNzaW9uKHN0cnVjdCBk ZW50cnkgKmRlbnRyeSwgc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2spCiB7CiAJLyoKIAkg KiBXZSBkb24ndCBkbyBwZXJtaXNzaW9uIGNoZWNrcyBvbiB0aGUgaW50ZXJuYWwgb2JqZWN0cy4K ZGlmZiAtLWdpdCBhL2ZzL3JlaXNlcmZzL3hhdHRyLmggYi9mcy9yZWlzZXJmcy94YXR0ci5oCmlu ZGV4IGY1OTYyNmM1ZDMzYi4uOGQyOWVkOWExOWQ0IDEwMDY0NAotLS0gYS9mcy9yZWlzZXJmcy94 YXR0ci5oCisrKyBiL2ZzL3JlaXNlcmZzL3hhdHRyLmgKQEAgLTE1LDcgKzE1LDcgQEAgaW50IHJl aXNlcmZzX3hhdHRyX2luaXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IG1vdW50X2ZsYWdz KTsKIGludCByZWlzZXJmc19sb29rdXBfcHJpdnJvb3Qoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7 CiBpbnQgcmVpc2VyZnNfZGVsZXRlX3hhdHRycyhzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKIGludCBy ZWlzZXJmc19jaG93bl94YXR0cnMoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGlhdHRyICph dHRycyk7Ci1pbnQgcmVpc2VyZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQg bWFzayk7CitpbnQgcmVpc2VyZnNfcGVybWlzc2lvbihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0 cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKTsKIAogI2lmZGVmIENPTkZJR19SRUlTRVJGU19G U19YQVRUUgogI2RlZmluZSBoYXNfeGF0dHJfZGlyKGlub2RlKSAoUkVJU0VSRlNfSShpbm9kZSkt PmlfZmxhZ3MgJiBpX2hhc194YXR0cl9kaXIpCmRpZmYgLS1naXQgYS9mcy91ZGYvZmlsZS5jIGIv ZnMvdWRmL2ZpbGUuYwppbmRleCBjMDJhMjdhMTljNmQuLjBkYTRhYWJlMjVkNiAxMDA2NDQKLS0t IGEvZnMvdWRmL2ZpbGUuYworKysgYi9mcy91ZGYvZmlsZS5jCkBAIC0xODIsNyArMTgyLDcgQEAg bG9uZyB1ZGZfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsIHVuc2ln bmVkIGxvbmcgYXJnKQogCWxvbmcgb2xkX2Jsb2NrLCBuZXdfYmxvY2s7CiAJaW50IHJlc3VsdCA9 IC1FSU5WQUw7CiAKLQlpZiAoaW5vZGVfcGVybWlzc2lvbihpbm9kZSwgTUFZX1JFQUQpICE9IDAp IHsKKwlpZiAoaW5vZGVfcGVybWlzc2lvbihmaWxwLT5mX3BhdGguZGVudHJ5LCBpbm9kZSwgTUFZ X1JFQUQpICE9IDApIHsKIAkJdWRmX2RlYnVnKCJubyBwZXJtaXNzaW9uIHRvIGFjY2VzcyBpbm9k ZSAlbHVcbiIsIGlub2RlLT5pX2lubyk7CiAJCXJlc3VsdCA9IC1FUEVSTTsKIAkJZ290byBvdXQ7 CmRpZmYgLS1naXQgYS9mcy91dGltZXMuYyBiL2ZzL3V0aW1lcy5jCmluZGV4IGFhMTM4ZDY0NTYw YS4uYjdmMTdkYjRmMDhjIDEwMDY0NAotLS0gYS9mcy91dGltZXMuYworKysgYi9mcy91dGltZXMu YwpAQCAtOTcsNyArOTcsNyBAQCBzdGF0aWMgaW50IHV0aW1lc19jb21tb24oc3RydWN0IHBhdGgg KnBhdGgsIHN0cnVjdCB0aW1lc3BlYyAqdGltZXMpCiAJCQlnb3RvIG1udF9kcm9wX3dyaXRlX2Fu ZF9vdXQ7CiAKIAkJaWYgKCFpbm9kZV9vd25lcl9vcl9jYXBhYmxlKGlub2RlKSkgewotCQkJZXJy b3IgPSBpbm9kZV9wZXJtaXNzaW9uKGlub2RlLCBNQVlfV1JJVEUpOworCQkJZXJyb3IgPSBpbm9k ZV9wZXJtaXNzaW9uKHBhdGgtPmRlbnRyeSwgaW5vZGUsIE1BWV9XUklURSk7CiAJCQlpZiAoZXJy b3IpCiAJCQkJZ290byBtbnRfZHJvcF93cml0ZV9hbmRfb3V0OwogCQl9CmRpZmYgLS1naXQgYS9m cy94YXR0ci5jIGIvZnMveGF0dHIuYwppbmRleCAzMzc3ZGZmMTg0MDQuLjAwNTc1ZTAzMzU0OSAx MDA2NDQKLS0tIGEvZnMveGF0dHIuYworKysgYi9mcy94YXR0ci5jCkBAIC0yOSw3ICsyOSw3IEBA CiAgKiBiZWNhdXNlIGRpZmZlcmVudCBuYW1lc3BhY2VzIGhhdmUgdmVyeSBkaWZmZXJlbnQgcnVs ZXMuCiAgKi8KIHN0YXRpYyBpbnQKLXhhdHRyX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9k ZSwgY29uc3QgY2hhciAqbmFtZSwgaW50IG1hc2spCit4YXR0cl9wZXJtaXNzaW9uKHN0cnVjdCBk ZW50cnkgKmRlbnRyeSwgc3RydWN0IGlub2RlICppbm9kZSwgY29uc3QgY2hhciAqbmFtZSwgaW50 IG1hc2spCiB7CiAJLyoKIAkgKiBXZSBjYW4gbmV2ZXIgc2V0IG9yIHJlbW92ZSBhbiBleHRlbmRl ZCBhdHRyaWJ1dGUgb24gYSByZWFkLW9ubHkKQEAgLTcwLDcgKzcwLDcgQEAgeGF0dHJfcGVybWlz c2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBjaGFyICpuYW1lLCBpbnQgbWFzaykKIAkJ CXJldHVybiAtRVBFUk07CiAJfQogCi0JcmV0dXJuIGlub2RlX3Blcm1pc3Npb24oaW5vZGUsIG1h c2spOworCXJldHVybiBpbm9kZV9wZXJtaXNzaW9uKGRlbnRyeSwgaW5vZGUsIG1hc2spOwogfQog CiAvKioKQEAgLTEyNSw3ICsxMjUsNyBAQCB2ZnNfc2V0eGF0dHIoc3RydWN0IGRlbnRyeSAqZGVu dHJ5LCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCB2b2lkICp2YWx1ZSwKIAlzdHJ1Y3QgaW5vZGUg Kmlub2RlID0gZGVudHJ5LT5kX2lub2RlOwogCWludCBlcnJvcjsKIAotCWVycm9yID0geGF0dHJf cGVybWlzc2lvbihpbm9kZSwgbmFtZSwgTUFZX1dSSVRFKTsKKwllcnJvciA9IHhhdHRyX3Blcm1p c3Npb24oZGVudHJ5LCBpbm9kZSwgbmFtZSwgTUFZX1dSSVRFKTsKIAlpZiAoZXJyb3IpCiAJCXJl dHVybiBlcnJvcjsKIApAQCAtMTg1LDcgKzE4NSw3IEBAIHZmc19nZXR4YXR0cl9hbGxvYyhzdHJ1 Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0IGNoYXIgKm5hbWUsIGNoYXIgKip4YXR0cl92YWx1ZSwK IAljaGFyICp2YWx1ZSA9ICp4YXR0cl92YWx1ZTsKIAlpbnQgZXJyb3I7CiAKLQllcnJvciA9IHhh dHRyX3Blcm1pc3Npb24oaW5vZGUsIG5hbWUsIE1BWV9SRUFEKTsKKwllcnJvciA9IHhhdHRyX3Bl cm1pc3Npb24oZGVudHJ5LCBpbm9kZSwgbmFtZSwgTUFZX1JFQUQpOwogCWlmIChlcnJvcikKIAkJ cmV0dXJuIGVycm9yOwogCkBAIC0yMzMsNyArMjMzLDcgQEAgdmZzX2dldHhhdHRyKHN0cnVjdCBk ZW50cnkgKmRlbnRyeSwgY29uc3QgY2hhciAqbmFtZSwgdm9pZCAqdmFsdWUsIHNpemVfdCBzaXpl KQogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBkZW50cnktPmRfaW5vZGU7CiAJaW50IGVycm9yOwog Ci0JZXJyb3IgPSB4YXR0cl9wZXJtaXNzaW9uKGlub2RlLCBuYW1lLCBNQVlfUkVBRCk7CisJZXJy b3IgPSB4YXR0cl9wZXJtaXNzaW9uKGRlbnRyeSwgaW5vZGUsIG5hbWUsIE1BWV9SRUFEKTsKIAlp ZiAoZXJyb3IpCiAJCXJldHVybiBlcnJvcjsKIApAQCAtMjkyLDcgKzI5Miw3IEBAIHZmc19yZW1v dmV4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0IGNoYXIgKm5hbWUpCiAJaWYgKCFp bm9kZS0+aV9vcC0+cmVtb3ZleGF0dHIpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAotCWVycm9y ID0geGF0dHJfcGVybWlzc2lvbihpbm9kZSwgbmFtZSwgTUFZX1dSSVRFKTsKKwllcnJvciA9IHhh dHRyX3Blcm1pc3Npb24oZGVudHJ5LCBpbm9kZSwgbmFtZSwgTUFZX1dSSVRFKTsKIAlpZiAoZXJy b3IpCiAJCXJldHVybiBlcnJvcjsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9mcy5oIGIv aW5jbHVkZS9saW51eC9mcy5oCmluZGV4IGM5ZmQ4ZmIyOGM5Mi4uMjM1MGQ4YjEwYzE4IDEwMDY0 NAotLS0gYS9pbmNsdWRlL2xpbnV4L2ZzLmgKKysrIGIvaW5jbHVkZS9saW51eC9mcy5oCkBAIC0x NTUyLDcgKzE1NTIsNyBAQCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHsKIHN0cnVjdCBpbm9kZV9v cGVyYXRpb25zIHsKIAlzdHJ1Y3QgZGVudHJ5ICogKCpsb29rdXApIChzdHJ1Y3QgaW5vZGUgKixz dHJ1Y3QgZGVudHJ5ICosIHVuc2lnbmVkIGludCk7CiAJdm9pZCAqICgqZm9sbG93X2xpbmspIChz dHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBuYW1laWRhdGEgKik7Ci0JaW50ICgqcGVybWlzc2lvbikg KHN0cnVjdCBpbm9kZSAqLCBpbnQpOworCWludCAoKnBlcm1pc3Npb24pIChzdHJ1Y3QgZGVudHJ5 ICosIHN0cnVjdCBpbm9kZSAqLCBpbnQpOwogCXN0cnVjdCBwb3NpeF9hY2wgKiAoKmdldF9hY2wp KHN0cnVjdCBpbm9kZSAqLCBpbnQpOwogCiAJaW50ICgqcmVhZGxpbmspIChzdHJ1Y3QgZGVudHJ5 ICosIGNoYXIgX191c2VyICosaW50KTsKQEAgLTIyODAsNyArMjI4MCw3IEBAIGV4dGVybiB2b2lk IGVtZXJnZW5jeV9yZW1vdW50KHZvaWQpOwogZXh0ZXJuIHNlY3Rvcl90IGJtYXAoc3RydWN0IGlu b2RlICosIHNlY3Rvcl90KTsKICNlbmRpZgogZXh0ZXJuIGludCBub3RpZnlfY2hhbmdlKHN0cnVj dCBkZW50cnkgKiwgc3RydWN0IGlhdHRyICosIHN0cnVjdCBpbm9kZSAqKik7Ci1leHRlcm4gaW50 IGlub2RlX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICosIGludCk7CitleHRlcm4gaW50IGlub2Rl X3Blcm1pc3Npb24oc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKiwgaW50KTsKIGV4dGVy biBpbnQgZ2VuZXJpY19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqLCBpbnQpOwogCiBzdGF0aWMg aW5saW5lIGJvb2wgZXhlY3V0ZV9vayhzdHJ1Y3QgaW5vZGUgKmlub2RlKQpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9saW51eC9uZnNfZnMuaCBiL2luY2x1ZGUvbGludXgvbmZzX2ZzLmgKaW5kZXggMGFl NTgwNzQ4MGY0Li5mMGUwNTZjYmUxOWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbmZzX2Zz LmgKKysrIGIvaW5jbHVkZS9saW51eC9uZnNfZnMuaApAQCAtMzQ1LDcgKzM0NSw3IEBAIGV4dGVy biBpbnQgbmZzX3Bvc3Rfb3BfdXBkYXRlX2lub2RlX2ZvcmNlX3djYyhzdHJ1Y3QgaW5vZGUgKmlu b2RlLCBzdHJ1Y3QgbmZzX2ZhCiBleHRlcm4gaW50IG5mc19nZXRhdHRyKHN0cnVjdCB2ZnNtb3Vu dCAqLCBzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBrc3RhdCAqKTsKIGV4dGVybiB2b2lkIG5mc19h Y2Nlc3NfYWRkX2NhY2hlKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgbmZzX2FjY2Vzc19lbnRyeSAq KTsKIGV4dGVybiB2b2lkIG5mc19hY2Nlc3Nfc2V0X21hc2soc3RydWN0IG5mc19hY2Nlc3NfZW50 cnkgKiwgdTMyKTsKLWV4dGVybiBpbnQgbmZzX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICosIGlu dCk7CitleHRlcm4gaW50IG5mc19wZXJtaXNzaW9uKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlu b2RlICosIGludCk7CiBleHRlcm4gaW50IG5mc19vcGVuKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3Qg ZmlsZSAqKTsKIGV4dGVybiBpbnQgbmZzX3JlbGVhc2Uoc3RydWN0IGlub2RlICosIHN0cnVjdCBm aWxlICopOwogZXh0ZXJuIGludCBuZnNfYXR0cmlidXRlX3RpbWVvdXQoc3RydWN0IGlub2RlICpp bm9kZSk7CmRpZmYgLS1naXQgYS9pcGMvbXF1ZXVlLmMgYi9pcGMvbXF1ZXVlLmMKaW5kZXggOWMy NTRkMWUwNzdmLi5hMWM3NTFiNTg1OGUgMTAwNjQ0Ci0tLSBhL2lwYy9tcXVldWUuYworKysgYi9p cGMvbXF1ZXVlLmMKQEAgLTc3MCw3ICs3NzAsNyBAQCBzdGF0aWMgc3RydWN0IGZpbGUgKmRvX29w ZW4oc3RydWN0IHBhdGggKnBhdGgsIGludCBvZmxhZykKIAlpZiAoKG9mbGFnICYgT19BQ0NNT0RF KSA9PSAoT19SRFdSIHwgT19XUk9OTFkpKQogCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKIAlh Y2MgPSBvZmxhZzJhY2Nbb2ZsYWcgJiBPX0FDQ01PREVdOwotCWlmIChpbm9kZV9wZXJtaXNzaW9u KHBhdGgtPmRlbnRyeS0+ZF9pbm9kZSwgYWNjKSkKKwlpZiAoaW5vZGVfcGVybWlzc2lvbihwYXRo LT5kZW50cnksIHBhdGgtPmRlbnRyeS0+ZF9pbm9kZSwgYWNjKSkKIAkJcmV0dXJuIEVSUl9QVFIo LUVBQ0NFUyk7CiAJcmV0dXJuIGRlbnRyeV9vcGVuKHBhdGgsIG9mbGFnLCBjdXJyZW50X2NyZWQo KSk7CiB9CmRpZmYgLS1naXQgYS9rZXJuZWwvc3lzLmMgYi9rZXJuZWwvc3lzLmMKaW5kZXggYzBh NThiZTc4MGE0Li43MzQ2ZjkyNDA1NzEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zeXMuYworKysgYi9r ZXJuZWwvc3lzLmMKQEAgLTE2NTAsNyArMTY1MCw3IEBAIHN0YXRpYyBpbnQgcHJjdGxfc2V0X21t X2V4ZV9maWxlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBpbnQgZmQpCiAJICAgIGV4 ZS5maWxlLT5mX3BhdGgubW50LT5tbnRfZmxhZ3MgJiBNTlRfTk9FWEVDKQogCQlnb3RvIGV4aXQ7 CiAKLQllcnIgPSBpbm9kZV9wZXJtaXNzaW9uKGlub2RlLCBNQVlfRVhFQyk7CisJZXJyID0gaW5v ZGVfcGVybWlzc2lvbihleGUuZmlsZS0+Zl9wYXRoLmRlbnRyeSwgaW5vZGUsIE1BWV9FWEVDKTsK IAlpZiAoZXJyKQogCQlnb3RvIGV4aXQ7CiAKZGlmZiAtLWdpdCBhL21tL21lbWNvbnRyb2wuYyBi L21tL21lbWNvbnRyb2wuYwppbmRleCA1MzM4NWNkNGU2ZjAuLjU5NzY0ODE2MGQ3MyAxMDA2NDQK LS0tIGEvbW0vbWVtY29udHJvbC5jCisrKyBiL21tL21lbWNvbnRyb2wuYwpAQCAtNjE0Nyw3ICs2 MTQ3LDcgQEAgc3RhdGljIGludCBtZW1jZ193cml0ZV9ldmVudF9jb250cm9sKHN0cnVjdCBjZ3Jv dXBfc3Vic3lzX3N0YXRlICpjc3MsCiAKIAkvKiB0aGUgcHJvY2VzcyBuZWVkIHJlYWQgcGVybWlz c2lvbiBvbiBjb250cm9sIGZpbGUgKi8KIAkvKiBBVjogc2hvdWxkbid0IHdlIGNoZWNrIHRoYXQg aXQncyBiZWVuIG9wZW5lZCBmb3IgcmVhZCBpbnN0ZWFkPyAqLwotCXJldCA9IGlub2RlX3Blcm1p c3Npb24oZmlsZV9pbm9kZShjZmlsZS5maWxlKSwgTUFZX1JFQUQpOworCXJldCA9IGlub2RlX3Bl cm1pc3Npb24oY2ZpbGUuZmlsZS0+Zl9wYXRoLmRlbnRyeSwgZmlsZV9pbm9kZShjZmlsZS5maWxl KSwgTUFZX1JFQUQpOwogCWlmIChyZXQgPCAwKQogCQlnb3RvIG91dF9wdXRfY2ZpbGU7CiAKZGlm ZiAtLWdpdCBhL25ldC91bml4L2FmX3VuaXguYyBiL25ldC91bml4L2FmX3VuaXguYwppbmRleCA5 MzM3MWY3YjlmODYuLjk1MDlmYmYxZDNkZiAxMDA2NDQKLS0tIGEvbmV0L3VuaXgvYWZfdW5peC5j CisrKyBiL25ldC91bml4L2FmX3VuaXguYwpAQCAtNzg1LDcgKzc4NSw3IEBAIHN0YXRpYyBzdHJ1 Y3Qgc29jayAqdW5peF9maW5kX290aGVyKHN0cnVjdCBuZXQgKm5ldCwKIAkJaWYgKGVycikKIAkJ CWdvdG8gZmFpbDsKIAkJaW5vZGUgPSBwYXRoLmRlbnRyeS0+ZF9pbm9kZTsKLQkJZXJyID0gaW5v ZGVfcGVybWlzc2lvbihpbm9kZSwgTUFZX1dSSVRFKTsKKwkJZXJyID0gaW5vZGVfcGVybWlzc2lv bihwYXRoLmRlbnRyeSwgaW5vZGUsIE1BWV9XUklURSk7CiAJCWlmIChlcnIpCiAJCQlnb3RvIHB1 dF9mYWlsOwogCmRpZmYgLS1naXQgYS92aXJ0L2t2bS9hc3NpZ25lZC1kZXYuYyBiL3ZpcnQva3Zt L2Fzc2lnbmVkLWRldi5jCmluZGV4IDhkYjQzNzAxMDE2Zi4uYzEyMDI0NjkyYzBkIDEwMDY0NAot LS0gYS92aXJ0L2t2bS9hc3NpZ25lZC1kZXYuYworKysgYi92aXJ0L2t2bS9hc3NpZ25lZC1kZXYu YwpAQCAtNjM5LDcgKzYzOSw3IEBAIHN0YXRpYyBpbnQgcHJvYmVfc3lzZnNfcGVybWlzc2lvbnMo c3RydWN0IHBjaV9kZXYgKmRldikKIAogCQlpbm9kZSA9IHBhdGguZGVudHJ5LT5kX2lub2RlOwog Ci0JCXIgPSBpbm9kZV9wZXJtaXNzaW9uKGlub2RlLCBNQVlfUkVBRCB8IE1BWV9XUklURSB8IE1B WV9BQ0NFU1MpOworCQlyID0gaW5vZGVfcGVybWlzc2lvbihwYXRoLmRlbnRyeSwgaW5vZGUsIE1B WV9SRUFEIHwgTUFZX1dSSVRFIHwgTUFZX0FDQ0VTUyk7CiAJCXBhdGhfcHV0KCZwYXRoKTsKIAkJ aWYgKHIpCiAJCQlyZXR1cm4gcjsK --bcaec547c9cfb9e59804f187a280-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/