Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752413AbYBAIL4 (ORCPT ); Fri, 1 Feb 2008 03:11:56 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755050AbYBAILn (ORCPT ); Fri, 1 Feb 2008 03:11:43 -0500 Received: from twinlark.arctic.org ([208.69.40.136]:47121 "EHLO twinlark.arctic.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754999AbYBAILj (ORCPT ); Fri, 1 Feb 2008 03:11:39 -0500 Message-ID: <47A2D439.9050704@kernel.org> Date: Fri, 01 Feb 2008 00:11:37 -0800 From: "Andrew G. Morgan" User-Agent: Thunderbird 2.0.0.9 (X11/20071031) MIME-Version: 1.0 To: Andrew Morton CC: Linux Security Modules List , linux-kernel@vger.kernel.org, "Serge E. Hallyn" Subject: [PATCH] per-process securebits X-Enigmail-Version: 0.95.6 Content-Type: multipart/mixed; boundary="------------030705030201070408040209" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 27358 Lines: 399 This is a multi-part message in MIME format. --------------030705030201070408040209 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Here is the patch to add per-process securebits. Its all code that lives inside the capability LSM and the new securebits implementation is only active if CONFIG_SECURITY_FILE_CAPABILITIES is enabled (it doesn't make much sense to support this feature without filesystem capabilities). The patch assumes the CAP_SETPCAP fix of last week, but is otherwise on top of 2.6.24-rc8-mm1. Cheers Andrew -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.6 (GNU/Linux) iD8DBQFHotQ5+bHCR3gb8jsRAhP5AKDOxsINGzO0aZcYmAH1aqrNOHn03ACghrbJ Acea1sqU0nslENR7Nz+QIf4= =0EgW -----END PGP SIGNATURE----- --------------030705030201070408040209 Content-Type: text/plain; name="implement-per-process-securebits.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="implement-per-process-securebits.patch" RnJvbSAwZTlkMjUzMWYzZTZiNmQ5ZjRiZjdiNzFmNjY2MTg0NGE1MWViNjYxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgRy4gTW9yZ2FuIDxtb3JnYW5Aa2VybmVs Lm9yZz4KRGF0ZTogVGh1LCAzMSBKYW4gMjAwOCAyMzowODo1MyAtMDgwMApTdWJqZWN0OiBb UEFUQ0hdIEltcGxlbWVudCBwZXItcHJvY2VzcyBzZWN1cmViaXRzCgpbVGhpcyBwYXRjaCBy ZXByZXNlbnRzIGEgbm8tb3AgdW5sZXNzIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJ VElFUwogaXMgZW5hYmxlZCBhdCBjb25maWd1cmUgdGltZS5dCgpGaWxlc3lzdGVtIGNhcGFi aWxpdHkgc3VwcG9ydCBtYWtlcyBpdCBwb3NzaWJsZSB0byBkbyBhd2F5IHdpdGgKKHNldCl1 aWQtMCBiYXNlZCBwcml2aWxlZ2UgYW5kIHVzZSBjYXBhYmlsaXRpZXMgaW5zdGVhZC4gVGhh dCBpcywgd2l0aApmaWxlc3lzdGVtIHN1cHBvcnQgZm9yIGNhcGFiaWxpdGllcyBidXQgd2l0 aG91dCB0aGlzIHByZXNlbnQgcGF0Y2gsCml0IGlzIChjb25jZXB0dWFsbHkpIHBvc3NpYmxl IHRvIG1hbmFnZSBhIHN5c3RlbSB3aXRoIGNhcGFiaWxpdGllcwphbG9uZSBhbmQgbmV2ZXIg bmVlZCB0byBvYnRhaW4gcHJpdmlsZWdlIHZpYSAoc2V0KXVpZC0wLgoKT2YgY291cnNlLCBj b25jZXB0dWFsbHkgaXNuJ3QgcXVpdGUgdGhlIHNhbWUgYXMgY3VycmVudGx5IHBvc3NpYmxl CnNpbmNlIGZldyB1c2VyIGFwcGxpY2F0aW9ucywgY2VydGFpbmx5IG5vdCBlbm91Z2ggdG8g cnVuIGEgdmlhYmxlCnN5c3RlbSwgYXJlIGN1cnJlbnRseSBwcmVwYXJlZCB0byBsZXZlcmFn ZSBjYXBhYmlsaXRpZXMgdG8gZXhlcmNpc2UKcHJpdmlsZWdlLiBGdXJ0aGVyLCBtYW55IGFw cGxpY2F0aW9ucyBleGlzdCB0aGF0IG1heSBuZXZlciBnZXQKdXBncmFkZWQgaW4gdGhpcyB3 YXksIGFuZCB0aGUga2VybmVsIHdpbGwgY29udGludWUgdG8gd2FudCB0byBzdXBwb3J0CnRo ZWlyIHNldHVpZC0wIGJhc2UgcHJpdmlsZWdlIG5lZWRzLgoKV2hlcmUgcHVyZS1jYXBhYmls aXR5IGFwcGxpY2F0aW9ucyBldm9sdmUgYW5kIHJlcGxhY2Ugc2V0dWlkLTAKYmluYXJpZXMs IGl0IGlzIGRlc2lyYWJsZSB0aGF0IHRoZXJlIGJlIGEgbWVjaGFuaXNtcyBieSB3aGljaCB0 aGV5CmNhbiBjb250YWluIHRoZWlyIHByaXZpbGVnZS4gSW4gYWRkaXRpb24gdG8gbGV2ZXJh Z2luZyB0aGUgcGVyLXByb2Nlc3MKYm91bmRpbmcgYW5kIGluaGVyaXRhYmxlIHNldHMsIHRo aXMgc2hvdWxkIGluY2x1ZGUgc3VwcHJlc3NpbmcgdGhlCnByaXZpbGVnZSBvZiB0aGUgdWlk LTAgc3VwZXJ1c2VyIGZyb20gdGhlIHByb2Nlc3MnIHRyZWUgb2YgY2hpbGRyZW4uCgpUaGUg ZmVhdHVyZSBhZGRlZCBieSB0aGlzIHBhdGNoIGNhbiBiZSBsZXZlcmFnZWQgdG8gc3VwcHJl c3MgdGhlCnByaXZpbGVnZSBhc3NvY2lhdGVkIHdpdGggKHNldCl1aWQtMC4gVGhpcyBzdXBw cmVzc2lvbiByZXF1aXJlcwpDQVBfU0VUUENBUCB0byBpbml0aWF0ZSwgYW5kIG9ubHkgaW1t ZWRpYXRlbHkgYWZmZWN0cyB0aGUgJ2N1cnJlbnQnCnByb2Nlc3MgKGl0IGlzIGluaGVyaXRl ZCB0aHJvdWdoIGZvcmsoKS9leGVjKCkpLiBUaGlzCnJlaW1wbGVtZW50YXRpb24gZGlmZmVy cyBzaWduaWZpY2FudGx5IGZyb20gdGhlIGhpc3RvcmljYWwgc3VwcG9ydCBmb3IKc2VjdXJl Yml0cyB3aGljaCB3YXMgc3lzdGVtLXdpZGUsIHVud2llbGR5IGFuZCB3aGljaCBoYXMgdWx0 aW1hdGVseQp3aXRoZXJlZCB0byBhIGRlYWQgcmVsaWMgaW4gdGhlIHNvdXJjZSBvZiB0aGUg bW9kZXJuIGtlcm5lbC4KCldpdGggdGhpcyBwYXRjaCBhcHBsaWVkIGEgcHJvY2VzcywgdGhh dCBpcyBjYXBhYmxlKENBUF9TRVRQQ0FQKSwgY2FuCm5vdyBkcm9wIGFsbCBsZWdhY3kgcHJp dmlsZWdlICh0aHJvdWdoIHVpZD0wKSBmb3IgaXRzZWxmIGFuZCBhbGwKc3Vic2VxdWVudGx5 IGZvcmsoKSdkL2V4ZWMoKSdkIGNoaWxkcmVuIHdpdGg6CgogIHByY3RsKFBSX1NFVF9TRUNV UkVCSVRTLCAweDJmKTsKCkFwcGx5aW5nIHRoZSBmb2xsb3dpbmcgcGF0Y2ggdG8gcHJvZ3Mv Y2Fwc2guYyBmcm9tIGxpYmNhcC0yLjA1CmFkZHMgc3VwcG9ydCBmb3IgdGhpcyBuZXcgcHJj dGwgaW50ZXJmYWNlIHRvIGNhcHNoLmM6CgpodHRwOi8vd3d3Lmtlcm5lbC5vcmcvcHViL2xp bnV4L2xpYnMvc2VjdXJpdHkvbGludXgtcHJpdnMvbGliY2FwMi9zdXBwb3J0LWZvci1wcmN0 bC1iYXNlZC1zZWN1cmViaXRzLnBhdGNoCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgRy4gTW9y Z2FuIDxtb3JnYW5Aa2VybmVsLm9yZz4KQWNrZWQtYnk6IFNlcmdlIEhhbGx5biA8c2VydWVA dXMuaWJtLmNvbT4KLS0tCiBpbmNsdWRlL2xpbnV4L2NhcGFiaWxpdHkuaCB8ICAgIDMgKy0K IGluY2x1ZGUvbGludXgvaW5pdF90YXNrLmggIHwgICAgMyArLQogaW5jbHVkZS9saW51eC9w cmN0bC5oICAgICAgfCAgICA5ICsrKy0KIGluY2x1ZGUvbGludXgvc2NoZWQuaCAgICAgIHwg ICAgMyArLQogaW5jbHVkZS9saW51eC9zZWN1cmViaXRzLmggfCAgIDI1ICsrKysrKysrLS0t CiBpbmNsdWRlL2xpbnV4L3NlY3VyaXR5LmggICB8ICAgMTQgKysrLS0tCiBrZXJuZWwvc3lz LmMgICAgICAgICAgICAgICB8ICAgMjUgKy0tLS0tLS0tLS0KIHNlY3VyaXR5L2NhcGFiaWxp dHkuYyAgICAgIHwgICAgMSArCiBzZWN1cml0eS9jb21tb25jYXAuYyAgICAgICB8ICAxMDMg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIHNlY3VyaXR5 L2R1bW15LmMgICAgICAgICAgIHwgICAgMiArLQogc2VjdXJpdHkvc2VjdXJpdHkuYyAgICAg ICAgfCAgICA0ICstCiBzZWN1cml0eS9zZWxpbnV4L2hvb2tzLmMgICB8ICAgIDUgKy0KIDEy IGZpbGVzIGNoYW5nZWQsIDEzOSBpbnNlcnRpb25zKCspLCA1OCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2NhcGFiaWxpdHkuaCBiL2luY2x1ZGUvbGludXgv Y2FwYWJpbGl0eS5oCmluZGV4IDdkNTBmZjYuLmVhYWI3NTkgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvbGludXgvY2FwYWJpbGl0eS5oCisrKyBiL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5o CkBAIC0xNTUsNiArMTU1LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qga2VybmVsX2NhcF9zdHJ1Y3Qg ewogICogICBBZGQgYW55IGNhcGFiaWxpdHkgZnJvbSBjdXJyZW50J3MgY2FwYWJpbGl0eSBi b3VuZGluZyBzZXQKICAqICAgICAgIHRvIHRoZSBjdXJyZW50IHByb2Nlc3MnIGluaGVyaXRh YmxlIHNldAogICogICBBbGxvdyB0YWtpbmcgYml0cyBvdXQgb2YgY2FwYWJpbGl0eSBib3Vu ZGluZyBzZXQKKyAqICAgQWxsb3cgbW9kaWZpY2F0aW9uIG9mIHRoZSBzZWN1cmViaXRzIGZv ciBhIHByb2Nlc3MKICAqLwogCiAjZGVmaW5lIENBUF9TRVRQQ0FQICAgICAgICAgIDgKQEAg LTQ5MCw4ICs0OTEsNiBAQCBleHRlcm4gY29uc3Qga2VybmVsX2NhcF90IF9fY2FwX2luaXRf ZWZmX3NldDsKIGludCBjYXBhYmxlKGludCBjYXApOwogaW50IF9fY2FwYWJsZShzdHJ1Y3Qg dGFza19zdHJ1Y3QgKnQsIGludCBjYXApOwogCi1leHRlcm4gbG9uZyBjYXBfcHJjdGxfZHJv cCh1bnNpZ25lZCBsb25nIGNhcCk7Ci0KICNlbmRpZiAvKiBfX0tFUk5FTF9fICovCiAKICNl bmRpZiAvKiAhX0xJTlVYX0NBUEFCSUxJVFlfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9pbml0X3Rhc2suaCBiL2luY2x1ZGUvbGludXgvaW5pdF90YXNrLmgKaW5kZXggYjBm YTBmMi4uODFmNTU4MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pbml0X3Rhc2suaAor KysgYi9pbmNsdWRlL2xpbnV4L2luaXRfdGFzay5oCkBAIC05LDYgKzksNyBAQAogI2luY2x1 ZGUgPGxpbnV4L2lwYy5oPgogI2luY2x1ZGUgPGxpbnV4L3BpZF9uYW1lc3BhY2UuaD4KICNp bmNsdWRlIDxsaW51eC91c2VyX25hbWVzcGFjZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NlY3Vy ZWJpdHMuaD4KICNpbmNsdWRlIDxuZXQvbmV0X25hbWVzcGFjZS5oPgogCiAjZGVmaW5lIElO SVRfRkRUQUJMRSBcCkBAIC0xNzAsNyArMTcxLDcgQEAgZXh0ZXJuIHN0cnVjdCBncm91cF9p bmZvIGluaXRfZ3JvdXBzOwogCS5jYXBfaW5oZXJpdGFibGUgPSBDQVBfSU5JVF9JTkhfU0VU LAkJCQlcCiAJLmNhcF9wZXJtaXR0ZWQJPSBDQVBfRlVMTF9TRVQsCQkJCQlcCiAJLmNhcF9i c2V0IAk9IENBUF9JTklUX0JTRVQsCQkJCVwKLQkua2VlcF9jYXBhYmlsaXRpZXMgPSAwLAkJ CQkJCVwKKwkuc2VjdXJlYml0cyAgICAgPSBTRUNVUkVCSVRTX0RFRkFVTFQsCQkJCVwKIAku dXNlcgkJPSBJTklUX1VTRVIsCQkJCQlcCiAJLmNvbW0JCT0gInN3YXBwZXIiLAkJCQkJXAog CS50aHJlYWQJCT0gSU5JVF9USFJFQUQsCQkJCQlcCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xp bnV4L3ByY3RsLmggYi9pbmNsdWRlL2xpbnV4L3ByY3RsLmgKaW5kZXggMzgwMDYzOS4uYjZj MTVjYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9wcmN0bC5oCisrKyBiL2luY2x1ZGUv bGludXgvcHJjdGwuaApAQCAtMTYsNyArMTYsOCBAQAogIyBkZWZpbmUgUFJfVU5BTElHTl9O T1BSSU5UCTEJLyogc2lsZW50bHkgZml4IHVwIHVuYWxpZ25lZCB1c2VyIGFjY2Vzc2VzICov CiAjIGRlZmluZSBQUl9VTkFMSUdOX1NJR0JVUwkyCS8qIGdlbmVyYXRlIFNJR0JVUyBvbiB1 bmFsaWduZWQgdXNlciBhY2Nlc3MgKi8KIAotLyogR2V0L3NldCB3aGV0aGVyIG9yIG5vdCB0 byBkcm9wIGNhcGFiaWxpdGllcyBvbiBzZXR1aWQoKSBhd2F5IGZyb20gdWlkIDAgKi8KKy8q IEdldC9zZXQgd2hldGhlciBvciBub3QgdG8gZHJvcCBjYXBhYmlsaXRpZXMgb24gc2V0dWlk KCkgYXdheSBmcm9tCisgKiB1aWQgMCAoYXMgcGVyIHNlY3VyaXR5L2NvbW1vbmNhcC5jKSAq LwogI2RlZmluZSBQUl9HRVRfS0VFUENBUFMgICA3CiAjZGVmaW5lIFBSX1NFVF9LRUVQQ0FQ UyAgIDgKIApAQCAtNjMsOCArNjQsMTIgQEAKICNkZWZpbmUgUFJfR0VUX1NFQ0NPTVAJMjEK ICNkZWZpbmUgUFJfU0VUX1NFQ0NPTVAJMjIKIAotLyogR2V0L3NldCB0aGUgY2FwYWJpbGl0 eSBib3VuZGluZyBzZXQgKi8KKy8qIEdldC9zZXQgdGhlIGNhcGFiaWxpdHkgYm91bmRpbmcg c2V0IChhcyBwZXIgc2VjdXJpdHkvY29tbW9uY2FwLmMpICovCiAjZGVmaW5lIFBSX0NBUEJT RVRfUkVBRCAyMwogI2RlZmluZSBQUl9DQVBCU0VUX0RST1AgMjQKIAorLyogR2V0L3NldCBz ZWN1cmViaXRzIChhcyBwZXIgc2VjdXJpdHkvY29tbW9uY2FwLmMpICovCisjZGVmaW5lIFBS X0dFVF9TRUNVUkVCSVRTIDI1CisjZGVmaW5lIFBSX1NFVF9TRUNVUkVCSVRTIDI2CisKICNl bmRpZiAvKiBfTElOVVhfUFJDVExfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9z Y2hlZC5oIGIvaW5jbHVkZS9saW51eC9zY2hlZC5oCmluZGV4IDE5ODY1OWIuLjA2M2Y1NzUg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc2NoZWQuaAorKysgYi9pbmNsdWRlL2xpbnV4 L3NjaGVkLmgKQEAgLTY4LDcgKzY4LDYgQEAgc3RydWN0IHNjaGVkX3BhcmFtIHsKICNpbmNs dWRlIDxsaW51eC9zbXAuaD4KICNpbmNsdWRlIDxsaW51eC9zZW0uaD4KICNpbmNsdWRlIDxs aW51eC9zaWduYWwuaD4KLSNpbmNsdWRlIDxsaW51eC9zZWN1cmViaXRzLmg+CiAjaW5jbHVk ZSA8bGludXgvZnNfc3RydWN0Lmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KICNp bmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+CkBAIC0xMDk1LDcgKzEwOTQsNyBAQCBzdHJ1 Y3QgdGFza19zdHJ1Y3QgewogCWdpZF90IGdpZCxlZ2lkLHNnaWQsZnNnaWQ7CiAJc3RydWN0 IGdyb3VwX2luZm8gKmdyb3VwX2luZm87CiAJa2VybmVsX2NhcF90ICAgY2FwX2VmZmVjdGl2 ZSwgY2FwX2luaGVyaXRhYmxlLCBjYXBfcGVybWl0dGVkLCBjYXBfYnNldDsKLQl1bnNpZ25l ZCBrZWVwX2NhcGFiaWxpdGllczoxOworCXVuc2lnbmVkIHNlY3VyZWJpdHM7CiAJc3RydWN0 IHVzZXJfc3RydWN0ICp1c2VyOwogI2lmZGVmIENPTkZJR19LRVlTCiAJc3RydWN0IGtleSAq cmVxdWVzdF9rZXlfYXV0aDsJLyogYXNzdW1lZCByZXF1ZXN0X2tleSBhdXRob3JpdHkgKi8K ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2VjdXJlYml0cy5oIGIvaW5jbHVkZS9saW51 eC9zZWN1cmViaXRzLmgKaW5kZXggNWIwNjE3OC4uYzFmMTlkYiAxMDA2NDQKLS0tIGEvaW5j bHVkZS9saW51eC9zZWN1cmViaXRzLmgKKysrIGIvaW5jbHVkZS9saW51eC9zZWN1cmViaXRz LmgKQEAgLTMsMjggKzMsMzkgQEAKIAogI2RlZmluZSBTRUNVUkVCSVRTX0RFRkFVTFQgMHgw MDAwMDAwMAogCi1leHRlcm4gdW5zaWduZWQgc2VjdXJlYml0czsKLQogLyogV2hlbiBzZXQg VUlEIDAgaGFzIG5vIHNwZWNpYWwgcHJpdmlsZWdlcy4gV2hlbiB1bnNldCwgd2Ugc3VwcG9y dAogICAgaW5oZXJpdGFuY2Ugb2Ygcm9vdC1wZXJtaXNzaW9ucyBhbmQgc3VpZC1yb290IGV4 ZWN1dGFibGUgdW5kZXIKICAgIGNvbXBhdGliaWxpdHkgbW9kZS4gV2UgcmFpc2UgdGhlIGVm ZmVjdGl2ZSBhbmQgaW5oZXJpdGFibGUgYml0bWFza3MKICAgICpvZiB0aGUgZXhlY3V0YWJs ZSBmaWxlKiBpZiB0aGUgZWZmZWN0aXZlIHVpZCBvZiB0aGUgbmV3IHByb2Nlc3MgaXMKICAg IDAuIElmIHRoZSByZWFsIHVpZCBpcyAwLCB3ZSByYWlzZSB0aGUgaW5oZXJpdGFibGUgYml0 bWFzayBvZiB0aGUKICAgIGV4ZWN1dGFibGUgZmlsZS4gKi8KLSNkZWZpbmUgU0VDVVJFX05P Uk9PVCAgICAgICAgICAgIDAKKyNkZWZpbmUgU0VDVVJFX05PUk9PVAkJCTAKKyNkZWZpbmUg U0VDVVJFX05PUk9PVF9MT0NLRUQJCTEgIC8qIG1ha2UgYml0LTAgaW1tdXRhYmxlICovCiAK IC8qIFdoZW4gc2V0LCBzZXR1aWQgdG8vZnJvbSB1aWQgMCBkb2VzIG5vdCB0cmlnZ2VyIGNh cGFiaWxpdHktImZpeGVzIgogICAgdG8gYmUgY29tcGF0aWJsZSB3aXRoIG9sZCBwcm9ncmFt cyByZWx5aW5nIG9uIHNldCp1aWQgdG8gbG9vc2UKICAgIHByaXZpbGVnZXMuIFdoZW4gdW5z ZXQsIHNldHVpZCBkb2Vzbid0IGNoYW5nZSBwcml2aWxlZ2VzLiAqLwotI2RlZmluZSBTRUNV UkVfTk9fU0VUVUlEX0ZJWFVQICAgMgorI2RlZmluZSBTRUNVUkVfTk9fU0VUVUlEX0ZJWFVQ CQkyCisjZGVmaW5lIFNFQ1VSRV9OT19TRVRVSURfRklYVVBfTE9DS0VECTMgIC8qIG1ha2Ug Yml0LTIgaW1tdXRhYmxlICovCisKKy8qIFdoZW4gc2V0LCBhIHByb2Nlc3MgY2FuIHJldGFp biBpdHMgY2FwYWJpbGl0aWVzIGV2ZW4gYWZ0ZXIKKyAgIHRyYW5zaXRpb25pbmcgdG8gYSBu b24tcm9vdCB1c2VyICh0aGUgc2V0LXVpZCBmaXh1cCBzdXBwcmVzc2VkIGJ5CisgICBiaXQg MikuIEJpdC00IGlzIGNsZWFyZWQgd2hlbiBhIHByb2Nlc3MgY2FsbHMgZXhlYygpOyBzZXR0 aW5nIGJvdGgKKyAgIGJpdCA0IGFuZCA1IHdpbGwgY3JlYXRlIGEgYmFycmllciB0aHJvdWdo IGV4ZWMgdGhhdCBubyBleGVjKCknZAorICAgY2hpbGQgY2FuIHVzZSB0aGlzIGZlYXR1cmUg YWdhaW4uICovCisjZGVmaW5lIFNFQ1VSRV9LRUVQX0NBUFMJCTQKKyNkZWZpbmUgU0VDVVJF X0tFRVBfQ0FQU19MT0NLRUQJCTUgIC8qIG1ha2UgYml0LTQgaW1tdXRhYmxlICovCiAKIC8q IEVhY2ggc2VjdXJlc2V0dGluZyBpcyBpbXBsZW1lbnRlZCB1c2luZyB0d28gYml0cy4gT25l IGJpdCBzcGVjaWZ5CiAgICB3aGV0aGVyIHRoZSBzZXR0aW5nIGlzIG9uIG9yIG9mZi4gVGhl IG90aGVyIGJpdCBzcGVjaWZ5IHdoZXRoZXIgdGhlCiAgICBzZXR0aW5nIGlzIGZpeGVkIG9y IG5vdC4gQSBzZXR0aW5nIHdoaWNoIGlzIGZpeGVkIGNhbm5vdCBiZSBjaGFuZ2VkCiAgICBm cm9tIHVzZXItbGV2ZWwuICovCisjZGVmaW5lIGlzc2VjdXJlX21hc2soWCkJKDEgPDwgKFgp KQorI2RlZmluZSBpc3NlY3VyZShYKQkJKGlzc2VjdXJlX21hc2soWCkgJiBjdXJyZW50LT5z ZWN1cmViaXRzKQogCi0jZGVmaW5lIGlzc2VjdXJlKFgpICggKDEgPDwgKFgrMSkpICYgU0VD VVJFQklUU19ERUZBVUxUID8gCVwKLQkJICAgICAgKDEgPDwgKFgpKSAmIFNFQ1VSRUJJVFNf REVGQVVMVCA6CQlcCi0JCSAgICAgICgxIDw8IChYKSkgJiBzZWN1cmViaXRzICkKKyNkZWZp bmUgU0VDVVJFX0FMTF9CSVRTCQkoaXNzZWN1cmVfbWFzayhTRUNVUkVfTk9ST09UKSB8IFwK KwkJCQkgaXNzZWN1cmVfbWFzayhTRUNVUkVfTk9fU0VUVUlEX0ZJWFVQKSB8IFwKKwkJCQkg aXNzZWN1cmVfbWFzayhTRUNVUkVfS0VFUF9DQVBTKSkKKyNkZWZpbmUgU0VDVVJFX0FMTF9M T0NLUwkoU0VDVVJFX0FMTF9CSVRTIDw8IDEpCiAKICNlbmRpZiAvKiAhX0xJTlVYX1NFQ1VS RUJJVFNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zZWN1cml0eS5oIGIvaW5j bHVkZS9saW51eC9zZWN1cml0eS5oCmluZGV4IDdiM2UyYjYuLmM1NTAwNzkgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvbGludXgvc2VjdXJpdHkuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NlY3Vy aXR5LmgKQEAgLTQwLDggKzQwLDYgQEAKICNkZWZpbmUgUk9PVENPTlRFWFRfTU5UCQkweDA0 CiAjZGVmaW5lIERFRkNPTlRFWFRfTU5UCQkweDA4CiAKLWV4dGVybiB1bnNpZ25lZCBzZWN1 cmViaXRzOwotCiBzdHJ1Y3QgY3RsX3RhYmxlOwogCiAvKgpAQCAtNjQsNiArNjIsOCBAQCBl eHRlcm4gaW50IGNhcF9pbm9kZV9raWxscHJpdihzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwog ZXh0ZXJuIGludCBjYXBfdGFza19wb3N0X3NldHVpZCAodWlkX3Qgb2xkX3J1aWQsIHVpZF90 IG9sZF9ldWlkLCB1aWRfdCBvbGRfc3VpZCwgaW50IGZsYWdzKTsKIGV4dGVybiB2b2lkIGNh cF90YXNrX3JlcGFyZW50X3RvX2luaXQgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCk7CiBleHRl cm4gaW50IGNhcF90YXNrX2tpbGwoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBzdHJ1Y3Qgc2ln aW5mbyAqaW5mbywgaW50IHNpZywgdTMyIHNlY2lkKTsKK2V4dGVybiBpbnQgY2FwX3Rhc2tf cHJjdGwoaW50IG9wdGlvbiwgdW5zaWduZWQgbG9uZyBhcmcyLCB1bnNpZ25lZCBsb25nIGFy ZzMsCisJCQkgIHVuc2lnbmVkIGxvbmcgYXJnNCwgdW5zaWduZWQgbG9uZyBhcmc1LCBpbnQg KnJjX3ApOwogZXh0ZXJuIGludCBjYXBfdGFza19zZXRzY2hlZHVsZXIgKHN0cnVjdCB0YXNr X3N0cnVjdCAqcCwgaW50IHBvbGljeSwgc3RydWN0IHNjaGVkX3BhcmFtICpscCk7CiBleHRl cm4gaW50IGNhcF90YXNrX3NldGlvcHJpbyAoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBpbnQg aW9wcmlvKTsKIGV4dGVybiBpbnQgY2FwX3Rhc2tfc2V0bmljZSAoc3RydWN0IHRhc2tfc3Ry dWN0ICpwLCBpbnQgbmljZSk7CkBAIC02ODQsNyArNjg0LDkgQEAgc3RydWN0IHJlcXVlc3Rf c29jazsKICAqCUBhcmczIGNvbnRhaW5zIGEgYXJndW1lbnQuCiAgKglAYXJnNCBjb250YWlu cyBhIGFyZ3VtZW50LgogICoJQGFyZzUgY29udGFpbnMgYSBhcmd1bWVudC4KLSAqCVJldHVy biAwIGlmIHBlcm1pc3Npb24gaXMgZ3JhbnRlZC4KKyAqICAgICAgQHJjX3AgY29udGFpbnMg YSBwb2ludGVyIHRvIGNvbW11bmljYXRlIGJhY2sgdGhlIGZvcmNlZCByZXR1cm4gY29kZQor ICoJUmV0dXJuIDAgaWYgcGVybWlzc2lvbiBpcyBncmFudGVkLCBhbmQgbm9uLXplcm8gaWYg dGhlIHNlY3VyaXR5IG1vZHVsZQorICogICAgICBoYXMgdGFrZW4gcmVzcG9uc2liaWxpdHkg KHNldHRpbmcgKnJjX3ApIGZvciB0aGUgcHJjdGwgY2FsbC4KICAqIEB0YXNrX3JlcGFyZW50 X3RvX2luaXQ6CiAgKiAJU2V0IHRoZSBzZWN1cml0eSBhdHRyaWJ1dGVzIGluIEBwLT5zZWN1 cml0eSBmb3IgYSBrZXJuZWwgdGhyZWFkIHRoYXQKICAqIAlpcyBiZWluZyByZXBhcmVudGVk IHRvIHRoZSBpbml0IHRhc2suCkBAIC0xMzQ2LDcgKzEzNDgsNyBAQCBzdHJ1Y3Qgc2VjdXJp dHlfb3BlcmF0aW9ucyB7CiAJaW50ICgqdGFza193YWl0KSAoc3RydWN0IHRhc2tfc3RydWN0 ICogcCk7CiAJaW50ICgqdGFza19wcmN0bCkgKGludCBvcHRpb24sIHVuc2lnbmVkIGxvbmcg YXJnMiwKIAkJCSAgIHVuc2lnbmVkIGxvbmcgYXJnMywgdW5zaWduZWQgbG9uZyBhcmc0LAot CQkJICAgdW5zaWduZWQgbG9uZyBhcmc1KTsKKwkJCSAgIHVuc2lnbmVkIGxvbmcgYXJnNSwg aW50ICpyY19wKTsKIAl2b2lkICgqdGFza19yZXBhcmVudF90b19pbml0KSAoc3RydWN0IHRh c2tfc3RydWN0ICogcCk7CiAJdm9pZCAoKnRhc2tfdG9faW5vZGUpKHN0cnVjdCB0YXNrX3N0 cnVjdCAqcCwgc3RydWN0IGlub2RlICppbm9kZSk7CiAKQEAgLTE2MDAsNyArMTYwMiw3IEBA IGludCBzZWN1cml0eV90YXNrX2tpbGwoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBzdHJ1Y3Qg c2lnaW5mbyAqaW5mbywKIAkJCWludCBzaWcsIHUzMiBzZWNpZCk7CiBpbnQgc2VjdXJpdHlf dGFza193YWl0KHN0cnVjdCB0YXNrX3N0cnVjdCAqcCk7CiBpbnQgc2VjdXJpdHlfdGFza19w cmN0bChpbnQgb3B0aW9uLCB1bnNpZ25lZCBsb25nIGFyZzIsIHVuc2lnbmVkIGxvbmcgYXJn MywKLQkJCSB1bnNpZ25lZCBsb25nIGFyZzQsIHVuc2lnbmVkIGxvbmcgYXJnNSk7CisJCQkg dW5zaWduZWQgbG9uZyBhcmc0LCB1bnNpZ25lZCBsb25nIGFyZzUsIGludCAqcmNfcCk7CiB2 b2lkIHNlY3VyaXR5X3Rhc2tfcmVwYXJlbnRfdG9faW5pdChzdHJ1Y3QgdGFza19zdHJ1Y3Qg KnApOwogdm9pZCBzZWN1cml0eV90YXNrX3RvX2lub2RlKHN0cnVjdCB0YXNrX3N0cnVjdCAq cCwgc3RydWN0IGlub2RlICppbm9kZSk7CiBpbnQgc2VjdXJpdHlfaXBjX3Blcm1pc3Npb24o c3RydWN0IGtlcm5faXBjX3Blcm0gKmlwY3AsIHNob3J0IGZsYWcpOwpAQCAtMjE0OSw3ICsy MTUxLDcgQEAgc3RhdGljIGlubGluZSBpbnQgc2VjdXJpdHlfdGFza193YWl0IChzdHJ1Y3Qg dGFza19zdHJ1Y3QgKnApCiBzdGF0aWMgaW5saW5lIGludCBzZWN1cml0eV90YXNrX3ByY3Rs IChpbnQgb3B0aW9uLCB1bnNpZ25lZCBsb25nIGFyZzIsCiAJCQkJICAgICAgIHVuc2lnbmVk IGxvbmcgYXJnMywKIAkJCQkgICAgICAgdW5zaWduZWQgbG9uZyBhcmc0LAotCQkJCSAgICAg ICB1bnNpZ25lZCBsb25nIGFyZzUpCisJCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgYXJnNSwg aW50ICpyY19wKQogewogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEva2VybmVsL3N5cy5j IGIva2VybmVsL3N5cy5jCmluZGV4IDVhNjFmODAuLmQzNTBkMDkgMTAwNjQ0Ci0tLSBhL2tl cm5lbC9zeXMuYworKysgYi9rZXJuZWwvc3lzLmMKQEAgLTE2MzEsOCArMTYzMSw3IEBAIGFz bWxpbmthZ2UgbG9uZyBzeXNfcHJjdGwoaW50IG9wdGlvbiwgdW5zaWduZWQgbG9uZyBhcmcy LCB1bnNpZ25lZCBsb25nIGFyZzMsCiB7CiAJbG9uZyBlcnJvcjsKIAotCWVycm9yID0gc2Vj dXJpdHlfdGFza19wcmN0bChvcHRpb24sIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUpOwotCWlm IChlcnJvcikKKwlpZiAoc2VjdXJpdHlfdGFza19wcmN0bChvcHRpb24sIGFyZzIsIGFyZzMs IGFyZzQsIGFyZzUsICZlcnJvcikpCiAJCXJldHVybiBlcnJvcjsKIAogCXN3aXRjaCAob3B0 aW9uKSB7CkBAIC0xNjg1LDE3ICsxNjg0LDYgQEAgYXNtbGlua2FnZSBsb25nIHN5c19wcmN0 bChpbnQgb3B0aW9uLCB1bnNpZ25lZCBsb25nIGFyZzIsIHVuc2lnbmVkIGxvbmcgYXJnMywK IAkJCQllcnJvciA9IC1FSU5WQUw7CiAJCQlicmVhazsKIAotCQljYXNlIFBSX0dFVF9LRUVQ Q0FQUzoKLQkJCWlmIChjdXJyZW50LT5rZWVwX2NhcGFiaWxpdGllcykKLQkJCQllcnJvciA9 IDE7Ci0JCQlicmVhazsKLQkJY2FzZSBQUl9TRVRfS0VFUENBUFM6Ci0JCQlpZiAoYXJnMiAh PSAwICYmIGFyZzIgIT0gMSkgewotCQkJCWVycm9yID0gLUVJTlZBTDsKLQkJCQlicmVhazsK LQkJCX0KLQkJCWN1cnJlbnQtPmtlZXBfY2FwYWJpbGl0aWVzID0gYXJnMjsKLQkJCWJyZWFr OwogCQljYXNlIFBSX1NFVF9OQU1FOiB7CiAJCQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKm1lID0g Y3VycmVudDsKIAkJCXVuc2lnbmVkIGNoYXIgbmNvbW1bc2l6ZW9mKG1lLT5jb21tKV07CkBA IC0xNzMwLDE3ICsxNzE4LDYgQEAgYXNtbGlua2FnZSBsb25nIHN5c19wcmN0bChpbnQgb3B0 aW9uLCB1bnNpZ25lZCBsb25nIGFyZzIsIHVuc2lnbmVkIGxvbmcgYXJnMywKIAkJCWVycm9y ID0gcHJjdGxfc2V0X3NlY2NvbXAoYXJnMik7CiAJCQlicmVhazsKIAotCQljYXNlIFBSX0NB UEJTRVRfUkVBRDoKLQkJCWlmICghY2FwX3ZhbGlkKGFyZzIpKQotCQkJCXJldHVybiAtRUlO VkFMOwotCQkJcmV0dXJuICEhY2FwX3JhaXNlZChjdXJyZW50LT5jYXBfYnNldCwgYXJnMik7 Ci0JCWNhc2UgUFJfQ0FQQlNFVF9EUk9QOgotI2lmZGVmIENPTkZJR19TRUNVUklUWV9GSUxF X0NBUEFCSUxJVElFUwotCQkJcmV0dXJuIGNhcF9wcmN0bF9kcm9wKGFyZzIpOwotI2Vsc2UK LQkJCXJldHVybiAtRUlOVkFMOwotI2VuZGlmCi0KIAkJZGVmYXVsdDoKIAkJCWVycm9yID0g LUVJTlZBTDsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvY2FwYWJpbGl0eS5j IGIvc2VjdXJpdHkvY2FwYWJpbGl0eS5jCmluZGV4IDllOTlmMzYuLjgzNDA2NTUgMTAwNjQ0 Ci0tLSBhL3NlY3VyaXR5L2NhcGFiaWxpdHkuYworKysgYi9zZWN1cml0eS9jYXBhYmlsaXR5 LmMKQEAgLTQ1LDYgKzQ1LDcgQEAgc3RhdGljIHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25z IGNhcGFiaWxpdHlfb3BzID0gewogCS50YXNrX3NldGlvcHJpbyA9CQljYXBfdGFza19zZXRp b3ByaW8sCiAJLnRhc2tfc2V0bmljZSA9CQkJY2FwX3Rhc2tfc2V0bmljZSwKIAkudGFza19w b3N0X3NldHVpZCA9CQljYXBfdGFza19wb3N0X3NldHVpZCwKKwkudGFza19wcmN0bCA9ICAg ICAgICAgICAgICAgICAgIGNhcF90YXNrX3ByY3RsLAogCS50YXNrX3JlcGFyZW50X3RvX2lu aXQgPQljYXBfdGFza19yZXBhcmVudF90b19pbml0LAogCiAJLnN5c2xvZyA9ICAgICAgICAg ICAgICAgICAgICAgICBjYXBfc3lzbG9nLApkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvY29tbW9u Y2FwLmMgYi9zZWN1cml0eS9jb21tb25jYXAuYwppbmRleCA1YWJhODI2Li45Yjg3MTgyIDEw MDY0NAotLS0gYS9zZWN1cml0eS9jb21tb25jYXAuYworKysgYi9zZWN1cml0eS9jb21tb25j YXAuYwpAQCAtMjQsMTEgKzI0LDggQEAKICNpbmNsdWRlIDxsaW51eC9odWdldGxiLmg+CiAj aW5jbHVkZSA8bGludXgvbW91bnQuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgotCi0v KiBHbG9iYWwgc2VjdXJpdHkgc3RhdGUgKi8KLQotdW5zaWduZWQgc2VjdXJlYml0cyA9IFNF Q1VSRUJJVFNfREVGQVVMVDsgLyogc3lzdGVtd2lkZSBzZWN1cml0eSBzZXR0aW5ncyAqLwot RVhQT1JUX1NZTUJPTChzZWN1cmViaXRzKTsKKyNpbmNsdWRlIDxsaW51eC9wcmN0bC5oPgor I2luY2x1ZGUgPGxpbnV4L3NlY3VyZWJpdHMuaD4KIAogaW50IGNhcF9uZXRsaW5rX3NlbmQo c3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewpAQCAtMzY4LDcgKzM2 NSw3IEBAIHZvaWQgY2FwX2Jwcm1fYXBwbHlfY3JlZHMgKHN0cnVjdCBsaW51eF9iaW5wcm0g KmJwcm0sIGludCB1bnNhZmUpCiAKIAkvKiBBVUQ6IEF1ZGl0IGNhbmRpZGF0ZSBpZiBjdXJy ZW50LT5jYXBfZWZmZWN0aXZlIGlzIHNldCAqLwogCi0JY3VycmVudC0+a2VlcF9jYXBhYmls aXRpZXMgPSAwOworCWN1cnJlbnQtPnNlY3VyZWJpdHMgJj0gfmlzc2VjdXJlX21hc2soU0VD VVJFX0tFRVBfQ0FQUyk7CiB9CiAKIGludCBjYXBfYnBybV9zZWN1cmVleGVjIChzdHJ1Y3Qg bGludXhfYmlucHJtICpicHJtKQpAQCAtNDQ4LDcgKzQ0NSw3IEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBjYXBfZW11bGF0ZV9zZXR4dWlkIChpbnQgb2xkX3J1aWQsIGludCBvbGRfZXVpZCwK IHsKIAlpZiAoKG9sZF9ydWlkID09IDAgfHwgb2xkX2V1aWQgPT0gMCB8fCBvbGRfc3VpZCA9 PSAwKSAmJgogCSAgICAoY3VycmVudC0+dWlkICE9IDAgJiYgY3VycmVudC0+ZXVpZCAhPSAw ICYmIGN1cnJlbnQtPnN1aWQgIT0gMCkgJiYKLQkgICAgIWN1cnJlbnQtPmtlZXBfY2FwYWJp bGl0aWVzKSB7CisJICAgICFpc3NlY3VyZShTRUNVUkVfS0VFUF9DQVBTKSkgewogCQljYXBf Y2xlYXIgKGN1cnJlbnQtPmNhcF9wZXJtaXR0ZWQpOwogCQljYXBfY2xlYXIgKGN1cnJlbnQt PmNhcF9lZmZlY3RpdmUpOwogCX0KQEAgLTU4Miw3ICs1NzksNyBAQCBpbnQgY2FwX3Rhc2tf a2lsbChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHN0cnVjdCBzaWdpbmZvICppbmZvLAogICog dGhpcyB0YXNrIGNvdWxkIGdldCBpbmNvbnNpc3RlbnQgaW5mby4gIFRoZXJlIGNhbiBiZSBu bwogICogcmFjaW5nIHdyaXRlciBiYyBhIHRhc2sgY2FuIG9ubHkgY2hhbmdlIGl0cyBvd24g Y2Fwcy4KICAqLwotbG9uZyBjYXBfcHJjdGxfZHJvcCh1bnNpZ25lZCBsb25nIGNhcCkKK3N0 YXRpYyBsb25nIGNhcF9wcmN0bF9kcm9wKHVuc2lnbmVkIGxvbmcgY2FwKQogewogCWlmICgh Y2FwYWJsZShDQVBfU0VUUENBUCkpCiAJCXJldHVybiAtRVBFUk07CkBAIC01OTEsNiArNTg4 LDcgQEAgbG9uZyBjYXBfcHJjdGxfZHJvcCh1bnNpZ25lZCBsb25nIGNhcCkKIAljYXBfbG93 ZXIoY3VycmVudC0+Y2FwX2JzZXQsIGNhcCk7CiAJcmV0dXJuIDA7CiB9CisKICNlbHNlCiBp bnQgY2FwX3Rhc2tfc2V0c2NoZWR1bGVyIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBw b2xpY3ksCiAJCQkgICBzdHJ1Y3Qgc2NoZWRfcGFyYW0gKmxwKQpAQCAtNjEyLDEyICs2MTAs OTkgQEAgaW50IGNhcF90YXNrX2tpbGwoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBzdHJ1Y3Qg c2lnaW5mbyAqaW5mbywKIH0KICNlbmRpZgogCitpbnQgY2FwX3Rhc2tfcHJjdGwoaW50IG9w dGlvbiwgdW5zaWduZWQgbG9uZyBhcmcyLCB1bnNpZ25lZCBsb25nIGFyZzMsCisJCSAgIHVu c2lnbmVkIGxvbmcgYXJnNCwgdW5zaWduZWQgbG9uZyBhcmc1LCBpbnQgKnJjX3ApCit7CisJ aW50IGVycm9yID0gMDsKKworCXN3aXRjaCAob3B0aW9uKSB7CisJY2FzZSBQUl9DQVBCU0VU X1JFQUQ6CisJCWlmICghY2FwX3ZhbGlkKGFyZzIpKQorCQkJZXJyb3IgPSAtRUlOVkFMOwor CQllbHNlCisJCQllcnJvciA9ICEhY2FwX3JhaXNlZChjdXJyZW50LT5jYXBfYnNldCwgYXJn Mik7CisJCWJyZWFrOworI2lmZGVmIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElF UworCWNhc2UgUFJfQ0FQQlNFVF9EUk9QOgorCQllcnJvciA9IGNhcF9wcmN0bF9kcm9wKGFy ZzIpOworCQlicmVhazsKKworCS8qCisJICogVGhlIG5leHQgZm91ciBwcmN0bCdzIHJlbWFp biB0byBhc3Npc3Qgd2l0aCB0cmFuc2l0aW9uaW5nIGEKKwkgKiBzeXN0ZW0gZnJvbSBsZWdh Y3kgVUlEPTAgYmFzZWQgcHJpdmlsZWdlICh3aGVuIGZpbGVzeXN0ZW0KKwkgKiBjYXBhYmls aXRpZXMgYXJlIG5vdCBpbiB1c2UpIHRvIGEgc3lzdGVtIHVzaW5nIGZpbGVzeXN0ZW0KKwkg KiBjYXBhYmlsaXRpZXMgb25seSAtIGFzIHRoZSBQT1NJWC4xZSBkcmFmdCBpbnRlbmRlZC4K KwkgKgorCSAqIE5vdGU6CisJICoKKwkgKiAgUFJfU0VUX1NFQ1VSRUJJVFMgPQorCSAqICAg ICAgaXNzZWN1cmVfbWFzayhTRUNVUkVfS0VFUF9DQVBTX0xPQ0tFRCkKKwkgKiAgICB8IGlz c2VjdXJlX21hc2soU0VDVVJFX05PUk9PVCkKKwkgKiAgICB8IGlzc2VjdXJlX21hc2soU0VD VVJFX05PUk9PVF9MT0NLRUQpCisJICogICAgfCBpc3NlY3VyZV9tYXNrKFNFQ1VSRV9OT19T RVRVSURfRklYVVApCisJICogICAgfCBpc3NlY3VyZV9tYXNrKFNFQ1VSRV9OT19TRVRVSURf RklYVVBfTE9DS0VEKQorCSAqCisJICogd2lsbCBlbnN1cmUgdGhhdCB0aGUgY3VycmVudCBw cm9jZXNzIGFuZCBhbGwgb2YgaXRzCisJICogY2hpbGRyZW4gd2lsbCBiZSBsb2NrZWQgaW50 byBhIHB1cmUKKwkgKiBjYXBhYmlsaXR5LWJhc2VkLXByaXZpbGVnZSBlbnZpcm9ubWVudC4K KwkgKi8KKwljYXNlIFBSX1NFVF9TRUNVUkVCSVRTOgorCQlpZiAoKCgoY3VycmVudC0+c2Vj dXJlYml0cyAmIFNFQ1VSRV9BTExfTE9DS1MpID4+IDEpCisJCSAgICAgJiAoY3VycmVudC0+ c2VjdXJlYml0cyBeIGFyZzIpKSAgICAgICAgICAgICAgICAgIC8qWzFdKi8KKwkJICAgIHx8 ICgoY3VycmVudC0+c2VjdXJlYml0cyAmIFNFQ1VSRV9BTExfTE9DS1MKKwkJCSAmIH5hcmcy KSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKlsyXSovCisJCSAgICB8 fCAoYXJnMiAmIH4oU0VDVVJFX0FMTF9MT0NLUyB8IFNFQ1VSRV9BTExfQklUUykpIC8qWzNd Ki8KKwkJICAgIHx8IChjYXBfY2FwYWJsZShjdXJyZW50LCBDQVBfU0VUUENBUCkgIT0gMCkp IHsgICAgLypbNF0qLworCQkJLyoKKwkJCSAqIFsxXSBubyBjaGFuZ2luZyBvZiBiaXRzIHRo YXQgYXJlIGxvY2tlZAorCQkJICogWzJdIG5vIHVubG9ja2luZyBvZiBsb2NrcworCQkJICog WzNdIG5vIHNldHRpbmcgb2YgdW5zdXBwb3J0ZWQgYml0cworCQkJICogWzRdIGRvaW5nIGFu eXRoaW5nIHJlcXVpcmVzIHByaXZpbGVnZSAoZ28gcmVhZCBhYm91dAorCQkJICogICAgIHRo ZSAic2VuZG1haWwgY2FwYWJpbGl0aWVzIGJ1ZyIpCisJCQkgKi8KKwkJCWVycm9yID0gLUVQ RVJNOyAgLyogY2Fubm90IGNoYW5nZSBhIGxvY2tlZCBiaXQgKi8KKwkJfSBlbHNlIHsKKwkJ CWN1cnJlbnQtPnNlY3VyZWJpdHMgPSBhcmcyOworCQl9CisJCWJyZWFrOworCWNhc2UgUFJf R0VUX1NFQ1VSRUJJVFM6CisJCWVycm9yID0gY3VycmVudC0+c2VjdXJlYml0czsKKwkJYnJl YWs7CisKKyNlbmRpZiAvKiBkZWYgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVT ICovCisKKwljYXNlIFBSX0dFVF9LRUVQQ0FQUzoKKwkJaWYgKGlzc2VjdXJlKFNFQ1VSRV9L RUVQX0NBUFMpKQorCQkJZXJyb3IgPSAxOworCQlicmVhazsKKwljYXNlIFBSX1NFVF9LRUVQ Q0FQUzoKKwkJaWYgKGFyZzIgPiAxKSAvKiBOb3RlLCB3ZSByZWx5IG9uIGFyZzIgYmVpbmcg dW5zaWduZWQgaGVyZSAqLworCQkJZXJyb3IgPSAtRUlOVkFMOworCQllbHNlIGlmIChpc3Nl Y3VyZShTRUNVUkVfS0VFUF9DQVBTX0xPQ0tFRCkpCisJCQllcnJvciA9IC1FUEVSTTsKKwkJ ZWxzZSBpZiAoYXJnMikKKwkJCWN1cnJlbnQtPnNlY3VyZWJpdHMgfD0gaXNzZWN1cmVfbWFz ayhTRUNVUkVfS0VFUF9DQVBTKTsKKwkJZWxzZQorCQkJY3VycmVudC0+c2VjdXJlYml0cyAm PQorCQkJCX5pc3NlY3VyZV9tYXNrKFNFQ1VSRV9LRUVQX0NBUFMpOworCQlicmVhazsKKwor CWRlZmF1bHQ6CisJCS8qIE5vIGZ1bmN0aW9uYWxpdHkgYXZhaWxhYmxlIC0gY29udGludWUg d2l0aCBkZWZhdWx0ICovCisJCXJldHVybiAwOworCX0KKworCS8qIEZ1bmN0aW9uYWxpdHkg cHJvdmlkZWQgKi8KKwkqcmNfcCA9IGVycm9yOworCXJldHVybiAxOworfQorCiB2b2lkIGNh cF90YXNrX3JlcGFyZW50X3RvX2luaXQgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKIHsKIAlj YXBfc2V0X2luaXRfZWZmKHAtPmNhcF9lZmZlY3RpdmUpOwogCWNhcF9jbGVhcihwLT5jYXBf aW5oZXJpdGFibGUpOwogCWNhcF9zZXRfZnVsbChwLT5jYXBfcGVybWl0dGVkKTsKLQlwLT5r ZWVwX2NhcGFiaWxpdGllcyA9IDA7CisJcC0+c2VjdXJlYml0cyA9IFNFQ1VSRUJJVFNfREVG QVVMVDsKIAlyZXR1cm47CiB9CiAKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2R1bW15LmMgYi9z ZWN1cml0eS9kdW1teS5jCmluZGV4IDY0OTMyNmIuLmM5ZTZkOWYgMTAwNjQ0Ci0tLSBhL3Nl Y3VyaXR5L2R1bW15LmMKKysrIGIvc2VjdXJpdHkvZHVtbXkuYwpAQCAtNTk1LDcgKzU5NSw3 IEBAIHN0YXRpYyBpbnQgZHVtbXlfdGFza19raWxsIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAs IHN0cnVjdCBzaWdpbmZvICppbmZvLAogfQogCiBzdGF0aWMgaW50IGR1bW15X3Rhc2tfcHJj dGwgKGludCBvcHRpb24sIHVuc2lnbmVkIGxvbmcgYXJnMiwgdW5zaWduZWQgbG9uZyBhcmcz LAotCQkJICAgICB1bnNpZ25lZCBsb25nIGFyZzQsIHVuc2lnbmVkIGxvbmcgYXJnNSkKKwkJ CSAgICAgdW5zaWduZWQgbG9uZyBhcmc0LCB1bnNpZ25lZCBsb25nIGFyZzUsIGludCAqcmNf cCkKIHsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlY3VyaXR5LmMg Yi9zZWN1cml0eS9zZWN1cml0eS5jCmluZGV4IGI2YzU3YTYuLmMzY2MxNGUgMTAwNjQ0Ci0t LSBhL3NlY3VyaXR5L3NlY3VyaXR5LmMKKysrIGIvc2VjdXJpdHkvc2VjdXJpdHkuYwpAQCAt NjgzLDkgKzY4Myw5IEBAIGludCBzZWN1cml0eV90YXNrX3dhaXQoc3RydWN0IHRhc2tfc3Ry dWN0ICpwKQogfQogCiBpbnQgc2VjdXJpdHlfdGFza19wcmN0bChpbnQgb3B0aW9uLCB1bnNp Z25lZCBsb25nIGFyZzIsIHVuc2lnbmVkIGxvbmcgYXJnMywKLQkJCSB1bnNpZ25lZCBsb25n IGFyZzQsIHVuc2lnbmVkIGxvbmcgYXJnNSkKKwkJCSB1bnNpZ25lZCBsb25nIGFyZzQsIHVu c2lnbmVkIGxvbmcgYXJnNSwgaW50ICpyY19wKQogewotCXJldHVybiBzZWN1cml0eV9vcHMt PnRhc2tfcHJjdGwob3B0aW9uLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1KTsKKwlyZXR1cm4g c2VjdXJpdHlfb3BzLT50YXNrX3ByY3RsKG9wdGlvbiwgYXJnMiwgYXJnMywgYXJnNCwgYXJn NSwgcmNfcCk7CiB9CiAKIHZvaWQgc2VjdXJpdHlfdGFza19yZXBhcmVudF90b19pbml0KHN0 cnVjdCB0YXNrX3N0cnVjdCAqcCkKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvaG9v a3MuYyBiL3NlY3VyaXR5L3NlbGludXgvaG9va3MuYwppbmRleCBmMWUzMjgxLi4zYzg4ODU4 IDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L2hvb2tzLmMKKysrIGIvc2VjdXJpdHkv c2VsaW51eC9ob29rcy5jCkBAIC0zMjA5LDEyICszMjA5LDEzIEBAIHN0YXRpYyBpbnQgc2Vs aW51eF90YXNrX3ByY3RsKGludCBvcHRpb24sCiAJCQkgICAgICB1bnNpZ25lZCBsb25nIGFy ZzIsCiAJCQkgICAgICB1bnNpZ25lZCBsb25nIGFyZzMsCiAJCQkgICAgICB1bnNpZ25lZCBs b25nIGFyZzQsCi0JCQkgICAgICB1bnNpZ25lZCBsb25nIGFyZzUpCisJCQkgICAgICB1bnNp Z25lZCBsb25nIGFyZzUsCisJCQkgICAgICBpbnQgKnJjX3ApCiB7CiAJLyogVGhlIGN1cnJl bnQgcHJjdGwgb3BlcmF0aW9ucyBkbyBub3QgYXBwZWFyIHRvIHJlcXVpcmUKIAkgICBhbnkg U0VMaW51eCBjb250cm9scyBzaW5jZSB0aGV5IG1lcmVseSBvYnNlcnZlIG9yIG1vZGlmeQog CSAgIHRoZSBzdGF0ZSBvZiB0aGUgY3VycmVudCBwcm9jZXNzLiAqLwotCXJldHVybiAwOwor CXJldHVybiBzZWNvbmRhcnlfb3BzLT50YXNrX3ByY3RsKG9wdGlvbiwgYXJnMiwgYXJnMywg YXJnNCwgYXJnNSwgcmNfcCk7CiB9CiAKIHN0YXRpYyBpbnQgc2VsaW51eF90YXNrX3dhaXQo c3RydWN0IHRhc2tfc3RydWN0ICpwKQotLSAKMS41LjMuNwoK --------------030705030201070408040209-- -- 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/