Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761945AbYBSCZy (ORCPT ); Mon, 18 Feb 2008 21:25:54 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1757690AbYBSCZn (ORCPT ); Mon, 18 Feb 2008 21:25:43 -0500 Received: from twinlark.arctic.org ([208.69.40.136]:53808 "EHLO twinlark.arctic.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757832AbYBSCZl (ORCPT ); Mon, 18 Feb 2008 21:25:41 -0500 Message-ID: <47BA3E21.2020303@kernel.org> Date: Mon, 18 Feb 2008 18:25: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 , lkml , "Serge E. Hallyn" , James Morris Subject: [PATCH] capabilities: implement per-process securebits X-Enigmail-Version: 0.95.6 Content-Type: multipart/mixed; boundary="------------050808060906080203020000" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 27442 Lines: 402 This is a multi-part message in MIME format. --------------050808060906080203020000 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Andrew Here is the patch to add per-process securebits again. This version includes Serge's argument type fix (thanks), but is otherwise unchanged from the one posted a couple of weeks back. It is against Linus' tree as of a the 15th. This change is 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). As indicated in the last round, this patch has been Acked by Serge and Reviewed by James (Cc:d). Thanks Andrew -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.6 (GNU/Linux) iD8DBQFHuj4g+bHCR3gb8jsRAjBqAKCuMrlQqIOTY+5Tba6aM5HHcy3cWQCgvA2p v+MAuce9OULRL9vOKdivq8Q= =L/XN -----END PGP SIGNATURE----- --------------050808060906080203020000 Content-Type: text/plain; name="0001-Implement-per-process-securebits.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="0001-Implement-per-process-securebits.patch" RnJvbSAwMDZkZGY2OTAzOTgzZGQ1OTZlMzYwYWIxYWI4ZTUzN2IyOWZhYjQ2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgRy4gTW9yZ2FuIDxtb3JnYW5Aa2VybmVs Lm9yZz4KRGF0ZTogTW9uLCAxOCBGZWIgMjAwOCAxNToyMzoyOCAtMDgwMApTdWJqZWN0OiBb 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 UkVCSVRTLCAweDJmKTsKClsyMDA4LzAyLzE4OiBUaGlzIHZlcnNpb24gaW5jbHVkZXMgYW4g aW50IC0+IGxvbmcgYXJndW1lbnQgZml4IGZyb20gU2VyZ2UuXQoKU2lnbmVkLW9mZi1ieTog QW5kcmV3IEcuIE1vcmdhbiA8bW9yZ2FuQGtlcm5lbC5vcmc+CkFja2VkLWJ5OiBTZXJnZSBI YWxseW4gPHNlcnVlQHVzLmlibS5jb20+ClJldmlld2VkLWJ5OiBKYW1lcyBNb3JyaXMgPGpt b3JyaXNAbmFtZWkub3JnPgotLS0KIGluY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oIHwgICAg MyArLQogaW5jbHVkZS9saW51eC9pbml0X3Rhc2suaCAgfCAgICAzICstCiBpbmNsdWRlL2xp bnV4L3ByY3RsLmggICAgICB8ICAgIDkgKysrLQogaW5jbHVkZS9saW51eC9zY2hlZC5oICAg ICAgfCAgICAzICstCiBpbmNsdWRlL2xpbnV4L3NlY3VyZWJpdHMuaCB8ICAgMjUgKysrKysr KystLS0KIGluY2x1ZGUvbGludXgvc2VjdXJpdHkuaCAgIHwgICAxNCArKystLS0KIGtlcm5l bC9zeXMuYyAgICAgICAgICAgICAgIHwgICAyNSArLS0tLS0tLS0tLQogc2VjdXJpdHkvY2Fw YWJpbGl0eS5jICAgICAgfCAgICAxICsKIHNlY3VyaXR5L2NvbW1vbmNhcC5jICAgICAgIHwg IDEwMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQogc2Vj dXJpdHkvZHVtbXkuYyAgICAgICAgICAgfCAgICAyICstCiBzZWN1cml0eS9zZWN1cml0eS5j ICAgICAgICB8ICAgIDQgKy0KIHNlY3VyaXR5L3NlbGludXgvaG9va3MuYyAgIHwgICAgNSAr LQogMTIgZmlsZXMgY2hhbmdlZCwgMTM5IGluc2VydGlvbnMoKyksIDU4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oIGIvaW5jbHVkZS9s aW51eC9jYXBhYmlsaXR5LmgKaW5kZXggN2Q1MGZmNi4uZWFhYjc1OSAxMDA2NDQKLS0tIGEv aW5jbHVkZS9saW51eC9jYXBhYmlsaXR5LmgKKysrIGIvaW5jbHVkZS9saW51eC9jYXBhYmls aXR5LmgKQEAgLTE1NSw2ICsxNTUsNyBAQCB0eXBlZGVmIHN0cnVjdCBrZXJuZWxfY2FwX3N0 cnVjdCB7CiAgKiAgIEFkZCBhbnkgY2FwYWJpbGl0eSBmcm9tIGN1cnJlbnQncyBjYXBhYmls aXR5IGJvdW5kaW5nIHNldAogICogICAgICAgdG8gdGhlIGN1cnJlbnQgcHJvY2VzcycgaW5o ZXJpdGFibGUgc2V0CiAgKiAgIEFsbG93IHRha2luZyBiaXRzIG91dCBvZiBjYXBhYmlsaXR5 IGJvdW5kaW5nIHNldAorICogICBBbGxvdyBtb2RpZmljYXRpb24gb2YgdGhlIHNlY3VyZWJp dHMgZm9yIGEgcHJvY2VzcwogICovCiAKICNkZWZpbmUgQ0FQX1NFVFBDQVAgICAgICAgICAg OApAQCAtNDkwLDggKzQ5MSw2IEBAIGV4dGVybiBjb25zdCBrZXJuZWxfY2FwX3QgX19jYXBf aW5pdF9lZmZfc2V0OwogaW50IGNhcGFibGUoaW50IGNhcCk7CiBpbnQgX19jYXBhYmxlKHN0 cnVjdCB0YXNrX3N0cnVjdCAqdCwgaW50IGNhcCk7CiAKLWV4dGVybiBsb25nIGNhcF9wcmN0 bF9kcm9wKHVuc2lnbmVkIGxvbmcgY2FwKTsKLQogI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8K IAogI2VuZGlmIC8qICFfTElOVVhfQ0FQQUJJTElUWV9IICovCmRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L2luaXRfdGFzay5oIGIvaW5jbHVkZS9saW51eC9pbml0X3Rhc2suaAppbmRl eCAxZjc0ZTFkLi5lOGE4OTRhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2luaXRfdGFz ay5oCisrKyBiL2luY2x1ZGUvbGludXgvaW5pdF90YXNrLmgKQEAgLTksNiArOSw3IEBACiAj aW5jbHVkZSA8bGludXgvaXBjLmg+CiAjaW5jbHVkZSA8bGludXgvcGlkX25hbWVzcGFjZS5o PgogI2luY2x1ZGUgPGxpbnV4L3VzZXJfbmFtZXNwYWNlLmg+CisjaW5jbHVkZSA8bGludXgv c2VjdXJlYml0cy5oPgogI2luY2x1ZGUgPG5ldC9uZXRfbmFtZXNwYWNlLmg+CiAKICNkZWZp bmUgSU5JVF9GRFRBQkxFIFwKQEAgLTE2OSw3ICsxNzAsNyBAQCBleHRlcm4gc3RydWN0IGdy b3VwX2luZm8gaW5pdF9ncm91cHM7CiAJLmNhcF9pbmhlcml0YWJsZSA9IENBUF9JTklUX0lO SF9TRVQsCQkJCVwKIAkuY2FwX3Blcm1pdHRlZAk9IENBUF9GVUxMX1NFVCwJCQkJCVwKIAku Y2FwX2JzZXQgCT0gQ0FQX0lOSVRfQlNFVCwJCQkJXAotCS5rZWVwX2NhcGFiaWxpdGllcyA9 IDAsCQkJCQkJXAorCS5zZWN1cmViaXRzICAgICA9IFNFQ1VSRUJJVFNfREVGQVVMVCwJCQkJ XAogCS51c2VyCQk9IElOSVRfVVNFUiwJCQkJCVwKIAkuY29tbQkJPSAic3dhcHBlciIsCQkJ CQlcCiAJLnRocmVhZAkJPSBJTklUX1RIUkVBRCwJCQkJCVwKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbGludXgvcHJjdGwuaCBiL2luY2x1ZGUvbGludXgvcHJjdGwuaAppbmRleCAzODAwNjM5 Li5iNmMxNWNjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3ByY3RsLmgKKysrIGIvaW5j bHVkZS9saW51eC9wcmN0bC5oCkBAIC0xNiw3ICsxNiw4IEBACiAjIGRlZmluZSBQUl9VTkFM SUdOX05PUFJJTlQJMQkvKiBzaWxlbnRseSBmaXggdXAgdW5hbGlnbmVkIHVzZXIgYWNjZXNz ZXMgKi8KICMgZGVmaW5lIFBSX1VOQUxJR05fU0lHQlVTCTIJLyogZ2VuZXJhdGUgU0lHQlVT IG9uIHVuYWxpZ25lZCB1c2VyIGFjY2VzcyAqLwogCi0vKiBHZXQvc2V0IHdoZXRoZXIgb3Ig bm90IHRvIGRyb3AgY2FwYWJpbGl0aWVzIG9uIHNldHVpZCgpIGF3YXkgZnJvbSB1aWQgMCAq LworLyogR2V0L3NldCB3aGV0aGVyIG9yIG5vdCB0byBkcm9wIGNhcGFiaWxpdGllcyBvbiBz ZXR1aWQoKSBhd2F5IGZyb20KKyAqIHVpZCAwIChhcyBwZXIgc2VjdXJpdHkvY29tbW9uY2Fw LmMpICovCiAjZGVmaW5lIFBSX0dFVF9LRUVQQ0FQUyAgIDcKICNkZWZpbmUgUFJfU0VUX0tF RVBDQVBTICAgOAogCkBAIC02Myw4ICs2NCwxMiBAQAogI2RlZmluZSBQUl9HRVRfU0VDQ09N UAkyMQogI2RlZmluZSBQUl9TRVRfU0VDQ09NUAkyMgogCi0vKiBHZXQvc2V0IHRoZSBjYXBh YmlsaXR5IGJvdW5kaW5nIHNldCAqLworLyogR2V0L3NldCB0aGUgY2FwYWJpbGl0eSBib3Vu ZGluZyBzZXQgKGFzIHBlciBzZWN1cml0eS9jb21tb25jYXAuYykgKi8KICNkZWZpbmUgUFJf Q0FQQlNFVF9SRUFEIDIzCiAjZGVmaW5lIFBSX0NBUEJTRVRfRFJPUCAyNAogCisvKiBHZXQv c2V0IHNlY3VyZWJpdHMgKGFzIHBlciBzZWN1cml0eS9jb21tb25jYXAuYykgKi8KKyNkZWZp bmUgUFJfR0VUX1NFQ1VSRUJJVFMgMjUKKyNkZWZpbmUgUFJfU0VUX1NFQ1VSRUJJVFMgMjYK KwogI2VuZGlmIC8qIF9MSU5VWF9QUkNUTF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xp bnV4L3NjaGVkLmggYi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgKaW5kZXggZTIxN2QxOC4uN2Vh NjkwMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zY2hlZC5oCisrKyBiL2luY2x1ZGUv bGludXgvc2NoZWQuaApAQCAtNjksNyArNjksNiBAQCBzdHJ1Y3Qgc2NoZWRfcGFyYW0gewog I2luY2x1ZGUgPGxpbnV4L3NtcC5oPgogI2luY2x1ZGUgPGxpbnV4L3NlbS5oPgogI2luY2x1 ZGUgPGxpbnV4L3NpZ25hbC5oPgotI2luY2x1ZGUgPGxpbnV4L3NlY3VyZWJpdHMuaD4KICNp bmNsdWRlIDxsaW51eC9mc19zdHJ1Y3QuaD4KICNpbmNsdWRlIDxsaW51eC9jb21waWxlci5o PgogI2luY2x1ZGUgPGxpbnV4L2NvbXBsZXRpb24uaD4KQEAgLTExMDAsNyArMTA5OSw3IEBA IHN0cnVjdCB0YXNrX3N0cnVjdCB7CiAJZ2lkX3QgZ2lkLGVnaWQsc2dpZCxmc2dpZDsKIAlz dHJ1Y3QgZ3JvdXBfaW5mbyAqZ3JvdXBfaW5mbzsKIAlrZXJuZWxfY2FwX3QgICBjYXBfZWZm ZWN0aXZlLCBjYXBfaW5oZXJpdGFibGUsIGNhcF9wZXJtaXR0ZWQsIGNhcF9ic2V0OwotCXVu c2lnbmVkIGtlZXBfY2FwYWJpbGl0aWVzOjE7CisJdW5zaWduZWQgc2VjdXJlYml0czsKIAlz dHJ1Y3QgdXNlcl9zdHJ1Y3QgKnVzZXI7CiAjaWZkZWYgQ09ORklHX0tFWVMKIAlzdHJ1Y3Qg a2V5ICpyZXF1ZXN0X2tleV9hdXRoOwkvKiBhc3N1bWVkIHJlcXVlc3Rfa2V5IGF1dGhvcml0 eSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zZWN1cmViaXRzLmggYi9pbmNsdWRl L2xpbnV4L3NlY3VyZWJpdHMuaAppbmRleCA1YjA2MTc4Li5jMWYxOWRiIDEwMDY0NAotLS0g YS9pbmNsdWRlL2xpbnV4L3NlY3VyZWJpdHMuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NlY3Vy ZWJpdHMuaApAQCAtMywyOCArMywzOSBAQAogCiAjZGVmaW5lIFNFQ1VSRUJJVFNfREVGQVVM VCAweDAwMDAwMDAwCiAKLWV4dGVybiB1bnNpZ25lZCBzZWN1cmViaXRzOwotCiAvKiBXaGVu IHNldCBVSUQgMCBoYXMgbm8gc3BlY2lhbCBwcml2aWxlZ2VzLiBXaGVuIHVuc2V0LCB3ZSBz dXBwb3J0CiAgICBpbmhlcml0YW5jZSBvZiByb290LXBlcm1pc3Npb25zIGFuZCBzdWlkLXJv b3QgZXhlY3V0YWJsZSB1bmRlcgogICAgY29tcGF0aWJpbGl0eSBtb2RlLiBXZSByYWlzZSB0 aGUgZWZmZWN0aXZlIGFuZCBpbmhlcml0YWJsZSBiaXRtYXNrcwogICAgKm9mIHRoZSBleGVj dXRhYmxlIGZpbGUqIGlmIHRoZSBlZmZlY3RpdmUgdWlkIG9mIHRoZSBuZXcgcHJvY2VzcyBp cwogICAgMC4gSWYgdGhlIHJlYWwgdWlkIGlzIDAsIHdlIHJhaXNlIHRoZSBpbmhlcml0YWJs ZSBiaXRtYXNrIG9mIHRoZQogICAgZXhlY3V0YWJsZSBmaWxlLiAqLwotI2RlZmluZSBTRUNV UkVfTk9ST09UICAgICAgICAgICAgMAorI2RlZmluZSBTRUNVUkVfTk9ST09UCQkJMAorI2Rl ZmluZSBTRUNVUkVfTk9ST09UX0xPQ0tFRAkJMSAgLyogbWFrZSBiaXQtMCBpbW11dGFibGUg Ki8KIAogLyogV2hlbiBzZXQsIHNldHVpZCB0by9mcm9tIHVpZCAwIGRvZXMgbm90IHRyaWdn ZXIgY2FwYWJpbGl0eS0iZml4ZXMiCiAgICB0byBiZSBjb21wYXRpYmxlIHdpdGggb2xkIHBy b2dyYW1zIHJlbHlpbmcgb24gc2V0KnVpZCB0byBsb29zZQogICAgcHJpdmlsZWdlcy4gV2hl biB1bnNldCwgc2V0dWlkIGRvZXNuJ3QgY2hhbmdlIHByaXZpbGVnZXMuICovCi0jZGVmaW5l IFNFQ1VSRV9OT19TRVRVSURfRklYVVAgICAyCisjZGVmaW5lIFNFQ1VSRV9OT19TRVRVSURf RklYVVAJCTIKKyNkZWZpbmUgU0VDVVJFX05PX1NFVFVJRF9GSVhVUF9MT0NLRUQJMyAgLyog bWFrZSBiaXQtMiBpbW11dGFibGUgKi8KKworLyogV2hlbiBzZXQsIGEgcHJvY2VzcyBjYW4g cmV0YWluIGl0cyBjYXBhYmlsaXRpZXMgZXZlbiBhZnRlcgorICAgdHJhbnNpdGlvbmluZyB0 byBhIG5vbi1yb290IHVzZXIgKHRoZSBzZXQtdWlkIGZpeHVwIHN1cHByZXNzZWQgYnkKKyAg IGJpdCAyKS4gQml0LTQgaXMgY2xlYXJlZCB3aGVuIGEgcHJvY2VzcyBjYWxscyBleGVjKCk7 IHNldHRpbmcgYm90aAorICAgYml0IDQgYW5kIDUgd2lsbCBjcmVhdGUgYSBiYXJyaWVyIHRo cm91Z2ggZXhlYyB0aGF0IG5vIGV4ZWMoKSdkCisgICBjaGlsZCBjYW4gdXNlIHRoaXMgZmVh dHVyZSBhZ2Fpbi4gKi8KKyNkZWZpbmUgU0VDVVJFX0tFRVBfQ0FQUwkJNAorI2RlZmluZSBT RUNVUkVfS0VFUF9DQVBTX0xPQ0tFRAkJNSAgLyogbWFrZSBiaXQtNCBpbW11dGFibGUgKi8K IAogLyogRWFjaCBzZWN1cmVzZXR0aW5nIGlzIGltcGxlbWVudGVkIHVzaW5nIHR3byBiaXRz LiBPbmUgYml0IHNwZWNpZnkKICAgIHdoZXRoZXIgdGhlIHNldHRpbmcgaXMgb24gb3Igb2Zm LiBUaGUgb3RoZXIgYml0IHNwZWNpZnkgd2hldGhlciB0aGUKICAgIHNldHRpbmcgaXMgZml4 ZWQgb3Igbm90LiBBIHNldHRpbmcgd2hpY2ggaXMgZml4ZWQgY2Fubm90IGJlIGNoYW5nZWQK ICAgIGZyb20gdXNlci1sZXZlbC4gKi8KKyNkZWZpbmUgaXNzZWN1cmVfbWFzayhYKQkoMSA8 PCAoWCkpCisjZGVmaW5lIGlzc2VjdXJlKFgpCQkoaXNzZWN1cmVfbWFzayhYKSAmIGN1cnJl bnQtPnNlY3VyZWJpdHMpCiAKLSNkZWZpbmUgaXNzZWN1cmUoWCkgKCAoMSA8PCAoWCsxKSkg JiBTRUNVUkVCSVRTX0RFRkFVTFQgPyAJXAotCQkgICAgICAoMSA8PCAoWCkpICYgU0VDVVJF QklUU19ERUZBVUxUIDoJCVwKLQkJICAgICAgKDEgPDwgKFgpKSAmIHNlY3VyZWJpdHMgKQor I2RlZmluZSBTRUNVUkVfQUxMX0JJVFMJCShpc3NlY3VyZV9tYXNrKFNFQ1VSRV9OT1JPT1Qp IHwgXAorCQkJCSBpc3NlY3VyZV9tYXNrKFNFQ1VSRV9OT19TRVRVSURfRklYVVApIHwgXAor CQkJCSBpc3NlY3VyZV9tYXNrKFNFQ1VSRV9LRUVQX0NBUFMpKQorI2RlZmluZSBTRUNVUkVf QUxMX0xPQ0tTCShTRUNVUkVfQUxMX0JJVFMgPDwgMSkKIAogI2VuZGlmIC8qICFfTElOVVhf U0VDVVJFQklUU19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NlY3VyaXR5Lmgg Yi9pbmNsdWRlL2xpbnV4L3NlY3VyaXR5LmgKaW5kZXggZmU1MmNkZS4uMzIwZjJjMyAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zZWN1cml0eS5oCisrKyBiL2luY2x1ZGUvbGludXgv c2VjdXJpdHkuaApAQCAtNDAsOCArNDAsNiBAQAogI2RlZmluZSBST09UQ09OVEVYVF9NTlQJ CTB4MDQKICNkZWZpbmUgREVGQ09OVEVYVF9NTlQJCTB4MDgKIAotZXh0ZXJuIHVuc2lnbmVk IHNlY3VyZWJpdHM7Ci0KIHN0cnVjdCBjdGxfdGFibGU7CiAKIC8qCkBAIC02NCw2ICs2Miw4 IEBAIGV4dGVybiBpbnQgY2FwX2lub2RlX2tpbGxwcml2KHN0cnVjdCBkZW50cnkgKmRlbnRy eSk7CiBleHRlcm4gaW50IGNhcF90YXNrX3Bvc3Rfc2V0dWlkICh1aWRfdCBvbGRfcnVpZCwg dWlkX3Qgb2xkX2V1aWQsIHVpZF90IG9sZF9zdWlkLCBpbnQgZmxhZ3MpOwogZXh0ZXJuIHZv aWQgY2FwX3Rhc2tfcmVwYXJlbnRfdG9faW5pdCAoc3RydWN0IHRhc2tfc3RydWN0ICpwKTsK IGV4dGVybiBpbnQgY2FwX3Rhc2tfa2lsbChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHN0cnVj dCBzaWdpbmZvICppbmZvLCBpbnQgc2lnLCB1MzIgc2VjaWQpOworZXh0ZXJuIGludCBjYXBf dGFza19wcmN0bChpbnQgb3B0aW9uLCB1bnNpZ25lZCBsb25nIGFyZzIsIHVuc2lnbmVkIGxv bmcgYXJnMywKKwkJCSAgdW5zaWduZWQgbG9uZyBhcmc0LCB1bnNpZ25lZCBsb25nIGFyZzUs IGxvbmcgKnJjX3ApOwogZXh0ZXJuIGludCBjYXBfdGFza19zZXRzY2hlZHVsZXIgKHN0cnVj dCB0YXNrX3N0cnVjdCAqcCwgaW50IHBvbGljeSwgc3RydWN0IHNjaGVkX3BhcmFtICpscCk7 CiBleHRlcm4gaW50IGNhcF90YXNrX3NldGlvcHJpbyAoc3RydWN0IHRhc2tfc3RydWN0ICpw LCBpbnQgaW9wcmlvKTsKIGV4dGVybiBpbnQgY2FwX3Rhc2tfc2V0bmljZSAoc3RydWN0IHRh c2tfc3RydWN0ICpwLCBpbnQgbmljZSk7CkBAIC02ODQsNyArNjg0LDkgQEAgc3RydWN0IHJl cXVlc3Rfc29jazsKICAqCUBhcmczIGNvbnRhaW5zIGEgYXJndW1lbnQuCiAgKglAYXJnNCBj b250YWlucyBhIGFyZ3VtZW50LgogICoJQGFyZzUgY29udGFpbnMgYSBhcmd1bWVudC4KLSAq CVJldHVybiAwIGlmIHBlcm1pc3Npb24gaXMgZ3JhbnRlZC4KKyAqICAgICAgQHJjX3AgY29u dGFpbnMgYSBwb2ludGVyIHRvIGNvbW11bmljYXRlIGJhY2sgdGhlIGZvcmNlZCByZXR1cm4g Y29kZQorICoJUmV0dXJuIDAgaWYgcGVybWlzc2lvbiBpcyBncmFudGVkLCBhbmQgbm9uLXpl cm8gaWYgdGhlIHNlY3VyaXR5IG1vZHVsZQorICogICAgICBoYXMgdGFrZW4gcmVzcG9uc2li aWxpdHkgKHNldHRpbmcgKnJjX3ApIGZvciB0aGUgcHJjdGwgY2FsbC4KICAqIEB0YXNrX3Jl cGFyZW50X3RvX2luaXQ6CiAgKiAJU2V0IHRoZSBzZWN1cml0eSBhdHRyaWJ1dGVzIGluIEBw LT5zZWN1cml0eSBmb3IgYSBrZXJuZWwgdGhyZWFkIHRoYXQKICAqIAlpcyBiZWluZyByZXBh cmVudGVkIHRvIHRoZSBpbml0IHRhc2suCkBAIC0xMzQ2LDcgKzEzNDgsNyBAQCBzdHJ1Y3Qg c2VjdXJpdHlfb3BlcmF0aW9ucyB7CiAJaW50ICgqdGFza193YWl0KSAoc3RydWN0IHRhc2tf c3RydWN0ICogcCk7CiAJaW50ICgqdGFza19wcmN0bCkgKGludCBvcHRpb24sIHVuc2lnbmVk IGxvbmcgYXJnMiwKIAkJCSAgIHVuc2lnbmVkIGxvbmcgYXJnMywgdW5zaWduZWQgbG9uZyBh cmc0LAotCQkJICAgdW5zaWduZWQgbG9uZyBhcmc1KTsKKwkJCSAgIHVuc2lnbmVkIGxvbmcg YXJnNSwgbG9uZyAqcmNfcCk7CiAJdm9pZCAoKnRhc2tfcmVwYXJlbnRfdG9faW5pdCkgKHN0 cnVjdCB0YXNrX3N0cnVjdCAqIHApOwogCXZvaWQgKCp0YXNrX3RvX2lub2RlKShzdHJ1Y3Qg dGFza19zdHJ1Y3QgKnAsIHN0cnVjdCBpbm9kZSAqaW5vZGUpOwogCkBAIC0xNjAwLDcgKzE2 MDIsNyBAQCBpbnQgc2VjdXJpdHlfdGFza19raWxsKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwg c3RydWN0IHNpZ2luZm8gKmluZm8sCiAJCQlpbnQgc2lnLCB1MzIgc2VjaWQpOwogaW50IHNl Y3VyaXR5X3Rhc2tfd2FpdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApOwogaW50IHNlY3VyaXR5 X3Rhc2tfcHJjdGwoaW50IG9wdGlvbiwgdW5zaWduZWQgbG9uZyBhcmcyLCB1bnNpZ25lZCBs b25nIGFyZzMsCi0JCQkgdW5zaWduZWQgbG9uZyBhcmc0LCB1bnNpZ25lZCBsb25nIGFyZzUp OworCQkJIHVuc2lnbmVkIGxvbmcgYXJnNCwgdW5zaWduZWQgbG9uZyBhcmc1LCBsb25nICpy Y19wKTsKIHZvaWQgc2VjdXJpdHlfdGFza19yZXBhcmVudF90b19pbml0KHN0cnVjdCB0YXNr X3N0cnVjdCAqcCk7CiB2b2lkIHNlY3VyaXR5X3Rhc2tfdG9faW5vZGUoc3RydWN0IHRhc2tf c3RydWN0ICpwLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKIGludCBzZWN1cml0eV9pcGNfcGVy bWlzc2lvbihzdHJ1Y3Qga2Vybl9pcGNfcGVybSAqaXBjcCwgc2hvcnQgZmxhZyk7CkBAIC0y MTQ5LDcgKzIxNTEsNyBAQCBzdGF0aWMgaW5saW5lIGludCBzZWN1cml0eV90YXNrX3dhaXQg KHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKIHN0YXRpYyBpbmxpbmUgaW50IHNlY3VyaXR5X3Rh c2tfcHJjdGwgKGludCBvcHRpb24sIHVuc2lnbmVkIGxvbmcgYXJnMiwKIAkJCQkgICAgICAg dW5zaWduZWQgbG9uZyBhcmczLAogCQkJCSAgICAgICB1bnNpZ25lZCBsb25nIGFyZzQsCi0J CQkJICAgICAgIHVuc2lnbmVkIGxvbmcgYXJnNSkKKwkJCQkgICAgICAgdW5zaWduZWQgbG9u ZyBhcmc1LCBsb25nICpyY19wKQogewogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEva2Vy bmVsL3N5cy5jIGIva2VybmVsL3N5cy5jCmluZGV4IGE2MjYxMTYuLmJkMzdmYmYgMTAwNjQ0 Ci0tLSBhL2tlcm5lbC9zeXMuYworKysgYi9rZXJuZWwvc3lzLmMKQEAgLTE2MjgsOCArMTYy OCw3IEBAIGFzbWxpbmthZ2UgbG9uZyBzeXNfcHJjdGwoaW50IG9wdGlvbiwgdW5zaWduZWQg bG9uZyBhcmcyLCB1bnNpZ25lZCBsb25nIGFyZzMsCiB7CiAJbG9uZyBlcnJvcjsKIAotCWVy cm9yID0gc2VjdXJpdHlfdGFza19wcmN0bChvcHRpb24sIGFyZzIsIGFyZzMsIGFyZzQsIGFy ZzUpOwotCWlmIChlcnJvcikKKwlpZiAoc2VjdXJpdHlfdGFza19wcmN0bChvcHRpb24sIGFy ZzIsIGFyZzMsIGFyZzQsIGFyZzUsICZlcnJvcikpCiAJCXJldHVybiBlcnJvcjsKIAogCXN3 aXRjaCAob3B0aW9uKSB7CkBAIC0xNjgyLDE3ICsxNjgxLDYgQEAgYXNtbGlua2FnZSBsb25n IHN5c19wcmN0bChpbnQgb3B0aW9uLCB1bnNpZ25lZCBsb25nIGFyZzIsIHVuc2lnbmVkIGxv bmcgYXJnMywKIAkJCQllcnJvciA9IC1FSU5WQUw7CiAJCQlicmVhazsKIAotCQljYXNlIFBS X0dFVF9LRUVQQ0FQUzoKLQkJCWlmIChjdXJyZW50LT5rZWVwX2NhcGFiaWxpdGllcykKLQkJ CQllcnJvciA9IDE7Ci0JCQlicmVhazsKLQkJY2FzZSBQUl9TRVRfS0VFUENBUFM6Ci0JCQlp ZiAoYXJnMiAhPSAwICYmIGFyZzIgIT0gMSkgewotCQkJCWVycm9yID0gLUVJTlZBTDsKLQkJ CQlicmVhazsKLQkJCX0KLQkJCWN1cnJlbnQtPmtlZXBfY2FwYWJpbGl0aWVzID0gYXJnMjsK LQkJCWJyZWFrOwogCQljYXNlIFBSX1NFVF9OQU1FOiB7CiAJCQlzdHJ1Y3QgdGFza19zdHJ1 Y3QgKm1lID0gY3VycmVudDsKIAkJCXVuc2lnbmVkIGNoYXIgbmNvbW1bc2l6ZW9mKG1lLT5j b21tKV07CkBAIC0xNzI3LDE3ICsxNzE1LDYgQEAgYXNtbGlua2FnZSBsb25nIHN5c19wcmN0 bChpbnQgb3B0aW9uLCB1bnNpZ25lZCBsb25nIGFyZzIsIHVuc2lnbmVkIGxvbmcgYXJnMywK IAkJCWVycm9yID0gcHJjdGxfc2V0X3NlY2NvbXAoYXJnMik7CiAJCQlicmVhazsKIAotCQlj YXNlIFBSX0NBUEJTRVRfUkVBRDoKLQkJCWlmICghY2FwX3ZhbGlkKGFyZzIpKQotCQkJCXJl dHVybiAtRUlOVkFMOwotCQkJcmV0dXJuICEhY2FwX3JhaXNlZChjdXJyZW50LT5jYXBfYnNl dCwgYXJnMik7Ci0JCWNhc2UgUFJfQ0FQQlNFVF9EUk9QOgotI2lmZGVmIENPTkZJR19TRUNV UklUWV9GSUxFX0NBUEFCSUxJVElFUwotCQkJcmV0dXJuIGNhcF9wcmN0bF9kcm9wKGFyZzIp OwotI2Vsc2UKLQkJCXJldHVybiAtRUlOVkFMOwotI2VuZGlmCi0KIAkJZGVmYXVsdDoKIAkJ CWVycm9yID0gLUVJTlZBTDsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvY2Fw YWJpbGl0eS5jIGIvc2VjdXJpdHkvY2FwYWJpbGl0eS5jCmluZGV4IDllOTlmMzYuLjgzNDA2 NTUgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2NhcGFiaWxpdHkuYworKysgYi9zZWN1cml0eS9j YXBhYmlsaXR5LmMKQEAgLTQ1LDYgKzQ1LDcgQEAgc3RhdGljIHN0cnVjdCBzZWN1cml0eV9v cGVyYXRpb25zIGNhcGFiaWxpdHlfb3BzID0gewogCS50YXNrX3NldGlvcHJpbyA9CQljYXBf dGFza19zZXRpb3ByaW8sCiAJLnRhc2tfc2V0bmljZSA9CQkJY2FwX3Rhc2tfc2V0bmljZSwK IAkudGFza19wb3N0X3NldHVpZCA9CQljYXBfdGFza19wb3N0X3NldHVpZCwKKwkudGFza19w cmN0bCA9ICAgICAgICAgICAgICAgICAgIGNhcF90YXNrX3ByY3RsLAogCS50YXNrX3JlcGFy ZW50X3RvX2luaXQgPQljYXBfdGFza19yZXBhcmVudF90b19pbml0LAogCiAJLnN5c2xvZyA9 ICAgICAgICAgICAgICAgICAgICAgICBjYXBfc3lzbG9nLApkaWZmIC0tZ2l0IGEvc2VjdXJp dHkvY29tbW9uY2FwLmMgYi9zZWN1cml0eS9jb21tb25jYXAuYwppbmRleCA1YWJhODI2Li44 NTgzODdhIDEwMDY0NAotLS0gYS9zZWN1cml0eS9jb21tb25jYXAuYworKysgYi9zZWN1cml0 eS9jb21tb25jYXAuYwpAQCAtMjQsMTEgKzI0LDggQEAKICNpbmNsdWRlIDxsaW51eC9odWdl dGxiLmg+CiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hl ZC5oPgotCi0vKiBHbG9iYWwgc2VjdXJpdHkgc3RhdGUgKi8KLQotdW5zaWduZWQgc2VjdXJl Yml0cyA9IFNFQ1VSRUJJVFNfREVGQVVMVDsgLyogc3lzdGVtd2lkZSBzZWN1cml0eSBzZXR0 aW5ncyAqLwotRVhQT1JUX1NZTUJPTChzZWN1cmViaXRzKTsKKyNpbmNsdWRlIDxsaW51eC9w cmN0bC5oPgorI2luY2x1ZGUgPGxpbnV4L3NlY3VyZWJpdHMuaD4KIAogaW50IGNhcF9uZXRs aW5rX3NlbmQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewpAQCAt MzY4LDcgKzM2NSw3IEBAIHZvaWQgY2FwX2Jwcm1fYXBwbHlfY3JlZHMgKHN0cnVjdCBsaW51 eF9iaW5wcm0gKmJwcm0sIGludCB1bnNhZmUpCiAKIAkvKiBBVUQ6IEF1ZGl0IGNhbmRpZGF0 ZSBpZiBjdXJyZW50LT5jYXBfZWZmZWN0aXZlIGlzIHNldCAqLwogCi0JY3VycmVudC0+a2Vl cF9jYXBhYmlsaXRpZXMgPSAwOworCWN1cnJlbnQtPnNlY3VyZWJpdHMgJj0gfmlzc2VjdXJl X21hc2soU0VDVVJFX0tFRVBfQ0FQUyk7CiB9CiAKIGludCBjYXBfYnBybV9zZWN1cmVleGVj IChzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKQpAQCAtNDQ4LDcgKzQ0NSw3IEBAIHN0YXRp YyBpbmxpbmUgdm9pZCBjYXBfZW11bGF0ZV9zZXR4dWlkIChpbnQgb2xkX3J1aWQsIGludCBv bGRfZXVpZCwKIHsKIAlpZiAoKG9sZF9ydWlkID09IDAgfHwgb2xkX2V1aWQgPT0gMCB8fCBv bGRfc3VpZCA9PSAwKSAmJgogCSAgICAoY3VycmVudC0+dWlkICE9IDAgJiYgY3VycmVudC0+ ZXVpZCAhPSAwICYmIGN1cnJlbnQtPnN1aWQgIT0gMCkgJiYKLQkgICAgIWN1cnJlbnQtPmtl ZXBfY2FwYWJpbGl0aWVzKSB7CisJICAgICFpc3NlY3VyZShTRUNVUkVfS0VFUF9DQVBTKSkg ewogCQljYXBfY2xlYXIgKGN1cnJlbnQtPmNhcF9wZXJtaXR0ZWQpOwogCQljYXBfY2xlYXIg KGN1cnJlbnQtPmNhcF9lZmZlY3RpdmUpOwogCX0KQEAgLTU4Miw3ICs1NzksNyBAQCBpbnQg Y2FwX3Rhc2tfa2lsbChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHN0cnVjdCBzaWdpbmZvICpp bmZvLAogICogdGhpcyB0YXNrIGNvdWxkIGdldCBpbmNvbnNpc3RlbnQgaW5mby4gIFRoZXJl IGNhbiBiZSBubwogICogcmFjaW5nIHdyaXRlciBiYyBhIHRhc2sgY2FuIG9ubHkgY2hhbmdl IGl0cyBvd24gY2Fwcy4KICAqLwotbG9uZyBjYXBfcHJjdGxfZHJvcCh1bnNpZ25lZCBsb25n IGNhcCkKK3N0YXRpYyBsb25nIGNhcF9wcmN0bF9kcm9wKHVuc2lnbmVkIGxvbmcgY2FwKQog ewogCWlmICghY2FwYWJsZShDQVBfU0VUUENBUCkpCiAJCXJldHVybiAtRVBFUk07CkBAIC01 OTEsNiArNTg4LDcgQEAgbG9uZyBjYXBfcHJjdGxfZHJvcCh1bnNpZ25lZCBsb25nIGNhcCkK IAljYXBfbG93ZXIoY3VycmVudC0+Y2FwX2JzZXQsIGNhcCk7CiAJcmV0dXJuIDA7CiB9CisK ICNlbHNlCiBpbnQgY2FwX3Rhc2tfc2V0c2NoZWR1bGVyIChzdHJ1Y3QgdGFza19zdHJ1Y3Qg KnAsIGludCBwb2xpY3ksCiAJCQkgICBzdHJ1Y3Qgc2NoZWRfcGFyYW0gKmxwKQpAQCAtNjEy LDEyICs2MTAsOTkgQEAgaW50IGNhcF90YXNrX2tpbGwoc3RydWN0IHRhc2tfc3RydWN0ICpw LCBzdHJ1Y3Qgc2lnaW5mbyAqaW5mbywKIH0KICNlbmRpZgogCitpbnQgY2FwX3Rhc2tfcHJj dGwoaW50IG9wdGlvbiwgdW5zaWduZWQgbG9uZyBhcmcyLCB1bnNpZ25lZCBsb25nIGFyZzMs CisJCSAgIHVuc2lnbmVkIGxvbmcgYXJnNCwgdW5zaWduZWQgbG9uZyBhcmc1LCBsb25nICpy Y19wKQoreworCWxvbmcgZXJyb3IgPSAwOworCisJc3dpdGNoIChvcHRpb24pIHsKKwljYXNl IFBSX0NBUEJTRVRfUkVBRDoKKwkJaWYgKCFjYXBfdmFsaWQoYXJnMikpCisJCQllcnJvciA9 IC1FSU5WQUw7CisJCWVsc2UKKwkJCWVycm9yID0gISFjYXBfcmFpc2VkKGN1cnJlbnQtPmNh cF9ic2V0LCBhcmcyKTsKKwkJYnJlYWs7CisjaWZkZWYgQ09ORklHX1NFQ1VSSVRZX0ZJTEVf Q0FQQUJJTElUSUVTCisJY2FzZSBQUl9DQVBCU0VUX0RST1A6CisJCWVycm9yID0gY2FwX3By Y3RsX2Ryb3AoYXJnMik7CisJCWJyZWFrOworCisJLyoKKwkgKiBUaGUgbmV4dCBmb3VyIHBy Y3RsJ3MgcmVtYWluIHRvIGFzc2lzdCB3aXRoIHRyYW5zaXRpb25pbmcgYQorCSAqIHN5c3Rl bSBmcm9tIGxlZ2FjeSBVSUQ9MCBiYXNlZCBwcml2aWxlZ2UgKHdoZW4gZmlsZXN5c3RlbQor CSAqIGNhcGFiaWxpdGllcyBhcmUgbm90IGluIHVzZSkgdG8gYSBzeXN0ZW0gdXNpbmcgZmls ZXN5c3RlbQorCSAqIGNhcGFiaWxpdGllcyBvbmx5IC0gYXMgdGhlIFBPU0lYLjFlIGRyYWZ0 IGludGVuZGVkLgorCSAqCisJICogTm90ZToKKwkgKgorCSAqICBQUl9TRVRfU0VDVVJFQklU UyA9CisJICogICAgICBpc3NlY3VyZV9tYXNrKFNFQ1VSRV9LRUVQX0NBUFNfTE9DS0VEKQor CSAqICAgIHwgaXNzZWN1cmVfbWFzayhTRUNVUkVfTk9ST09UKQorCSAqICAgIHwgaXNzZWN1 cmVfbWFzayhTRUNVUkVfTk9ST09UX0xPQ0tFRCkKKwkgKiAgICB8IGlzc2VjdXJlX21hc2so U0VDVVJFX05PX1NFVFVJRF9GSVhVUCkKKwkgKiAgICB8IGlzc2VjdXJlX21hc2soU0VDVVJF X05PX1NFVFVJRF9GSVhVUF9MT0NLRUQpCisJICoKKwkgKiB3aWxsIGVuc3VyZSB0aGF0IHRo ZSBjdXJyZW50IHByb2Nlc3MgYW5kIGFsbCBvZiBpdHMKKwkgKiBjaGlsZHJlbiB3aWxsIGJl IGxvY2tlZCBpbnRvIGEgcHVyZQorCSAqIGNhcGFiaWxpdHktYmFzZWQtcHJpdmlsZWdlIGVu dmlyb25tZW50LgorCSAqLworCWNhc2UgUFJfU0VUX1NFQ1VSRUJJVFM6CisJCWlmICgoKChj dXJyZW50LT5zZWN1cmViaXRzICYgU0VDVVJFX0FMTF9MT0NLUykgPj4gMSkKKwkJICAgICAm IChjdXJyZW50LT5zZWN1cmViaXRzIF4gYXJnMikpICAgICAgICAgICAgICAgICAgLypbMV0q LworCQkgICAgfHwgKChjdXJyZW50LT5zZWN1cmViaXRzICYgU0VDVVJFX0FMTF9MT0NLUwor CQkJICYgfmFyZzIpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qWzJd Ki8KKwkJICAgIHx8IChhcmcyICYgfihTRUNVUkVfQUxMX0xPQ0tTIHwgU0VDVVJFX0FMTF9C SVRTKSkgLypbM10qLworCQkgICAgfHwgKGNhcF9jYXBhYmxlKGN1cnJlbnQsIENBUF9TRVRQ Q0FQKSAhPSAwKSkgeyAgICAvKls0XSovCisJCQkvKgorCQkJICogWzFdIG5vIGNoYW5naW5n IG9mIGJpdHMgdGhhdCBhcmUgbG9ja2VkCisJCQkgKiBbMl0gbm8gdW5sb2NraW5nIG9mIGxv Y2tzCisJCQkgKiBbM10gbm8gc2V0dGluZyBvZiB1bnN1cHBvcnRlZCBiaXRzCisJCQkgKiBb NF0gZG9pbmcgYW55dGhpbmcgcmVxdWlyZXMgcHJpdmlsZWdlIChnbyByZWFkIGFib3V0CisJ CQkgKiAgICAgdGhlICJzZW5kbWFpbCBjYXBhYmlsaXRpZXMgYnVnIikKKwkJCSAqLworCQkJ ZXJyb3IgPSAtRVBFUk07ICAvKiBjYW5ub3QgY2hhbmdlIGEgbG9ja2VkIGJpdCAqLworCQl9 IGVsc2UgeworCQkJY3VycmVudC0+c2VjdXJlYml0cyA9IGFyZzI7CisJCX0KKwkJYnJlYWs7 CisJY2FzZSBQUl9HRVRfU0VDVVJFQklUUzoKKwkJZXJyb3IgPSBjdXJyZW50LT5zZWN1cmVi aXRzOworCQlicmVhazsKKworI2VuZGlmIC8qIGRlZiBDT05GSUdfU0VDVVJJVFlfRklMRV9D QVBBQklMSVRJRVMgKi8KKworCWNhc2UgUFJfR0VUX0tFRVBDQVBTOgorCQlpZiAoaXNzZWN1 cmUoU0VDVVJFX0tFRVBfQ0FQUykpCisJCQllcnJvciA9IDE7CisJCWJyZWFrOworCWNhc2Ug UFJfU0VUX0tFRVBDQVBTOgorCQlpZiAoYXJnMiA+IDEpIC8qIE5vdGUsIHdlIHJlbHkgb24g YXJnMiBiZWluZyB1bnNpZ25lZCBoZXJlICovCisJCQllcnJvciA9IC1FSU5WQUw7CisJCWVs c2UgaWYgKGlzc2VjdXJlKFNFQ1VSRV9LRUVQX0NBUFNfTE9DS0VEKSkKKwkJCWVycm9yID0g LUVQRVJNOworCQllbHNlIGlmIChhcmcyKQorCQkJY3VycmVudC0+c2VjdXJlYml0cyB8PSBp c3NlY3VyZV9tYXNrKFNFQ1VSRV9LRUVQX0NBUFMpOworCQllbHNlCisJCQljdXJyZW50LT5z ZWN1cmViaXRzICY9CisJCQkJfmlzc2VjdXJlX21hc2soU0VDVVJFX0tFRVBfQ0FQUyk7CisJ CWJyZWFrOworCisJZGVmYXVsdDoKKwkJLyogTm8gZnVuY3Rpb25hbGl0eSBhdmFpbGFibGUg LSBjb250aW51ZSB3aXRoIGRlZmF1bHQgKi8KKwkJcmV0dXJuIDA7CisJfQorCisJLyogRnVu Y3Rpb25hbGl0eSBwcm92aWRlZCAqLworCSpyY19wID0gZXJyb3I7CisJcmV0dXJuIDE7Cit9 CisKIHZvaWQgY2FwX3Rhc2tfcmVwYXJlbnRfdG9faW5pdCAoc3RydWN0IHRhc2tfc3RydWN0 ICpwKQogewogCWNhcF9zZXRfaW5pdF9lZmYocC0+Y2FwX2VmZmVjdGl2ZSk7CiAJY2FwX2Ns ZWFyKHAtPmNhcF9pbmhlcml0YWJsZSk7CiAJY2FwX3NldF9mdWxsKHAtPmNhcF9wZXJtaXR0 ZWQpOwotCXAtPmtlZXBfY2FwYWJpbGl0aWVzID0gMDsKKwlwLT5zZWN1cmViaXRzID0gU0VD VVJFQklUU19ERUZBVUxUOwogCXJldHVybjsKIH0KIApkaWZmIC0tZ2l0IGEvc2VjdXJpdHkv ZHVtbXkuYyBiL3NlY3VyaXR5L2R1bW15LmMKaW5kZXggNjQ5MzI2Yi4uZTc5Zjk4OCAxMDA2 NDQKLS0tIGEvc2VjdXJpdHkvZHVtbXkuYworKysgYi9zZWN1cml0eS9kdW1teS5jCkBAIC01 OTUsNyArNTk1LDcgQEAgc3RhdGljIGludCBkdW1teV90YXNrX2tpbGwgKHN0cnVjdCB0YXNr X3N0cnVjdCAqcCwgc3RydWN0IHNpZ2luZm8gKmluZm8sCiB9CiAKIHN0YXRpYyBpbnQgZHVt bXlfdGFza19wcmN0bCAoaW50IG9wdGlvbiwgdW5zaWduZWQgbG9uZyBhcmcyLCB1bnNpZ25l ZCBsb25nIGFyZzMsCi0JCQkgICAgIHVuc2lnbmVkIGxvbmcgYXJnNCwgdW5zaWduZWQgbG9u ZyBhcmc1KQorCQkJICAgICB1bnNpZ25lZCBsb25nIGFyZzQsIHVuc2lnbmVkIGxvbmcgYXJn NSwgbG9uZyAqcmNfcCkKIHsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3NlY3VyaXR5 L3NlY3VyaXR5LmMgYi9zZWN1cml0eS9zZWN1cml0eS5jCmluZGV4IGQxNWU1NmMuLjc0NGNh MzMgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlY3VyaXR5LmMKKysrIGIvc2VjdXJpdHkvc2Vj dXJpdHkuYwpAQCAtNjg1LDkgKzY4NSw5IEBAIGludCBzZWN1cml0eV90YXNrX3dhaXQoc3Ry dWN0IHRhc2tfc3RydWN0ICpwKQogfQogCiBpbnQgc2VjdXJpdHlfdGFza19wcmN0bChpbnQg b3B0aW9uLCB1bnNpZ25lZCBsb25nIGFyZzIsIHVuc2lnbmVkIGxvbmcgYXJnMywKLQkJCSB1 bnNpZ25lZCBsb25nIGFyZzQsIHVuc2lnbmVkIGxvbmcgYXJnNSkKKwkJCSB1bnNpZ25lZCBs b25nIGFyZzQsIHVuc2lnbmVkIGxvbmcgYXJnNSwgbG9uZyAqcmNfcCkKIHsKLQlyZXR1cm4g c2VjdXJpdHlfb3BzLT50YXNrX3ByY3RsKG9wdGlvbiwgYXJnMiwgYXJnMywgYXJnNCwgYXJn NSk7CisJcmV0dXJuIHNlY3VyaXR5X29wcy0+dGFza19wcmN0bChvcHRpb24sIGFyZzIsIGFy ZzMsIGFyZzQsIGFyZzUsIHJjX3ApOwogfQogCiB2b2lkIHNlY3VyaXR5X3Rhc2tfcmVwYXJl bnRfdG9faW5pdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCmRpZmYgLS1naXQgYS9zZWN1cml0 eS9zZWxpbnV4L2hvb2tzLmMgYi9zZWN1cml0eS9zZWxpbnV4L2hvb2tzLmMKaW5kZXggNzVj MmU5OS4uNWNjNzU0MiAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9ob29rcy5jCisr KyBiL3NlY3VyaXR5L3NlbGludXgvaG9va3MuYwpAQCAtMzIyNiwxMiArMzIyNiwxMyBAQCBz dGF0aWMgaW50IHNlbGludXhfdGFza19wcmN0bChpbnQgb3B0aW9uLAogCQkJICAgICAgdW5z aWduZWQgbG9uZyBhcmcyLAogCQkJICAgICAgdW5zaWduZWQgbG9uZyBhcmczLAogCQkJICAg ICAgdW5zaWduZWQgbG9uZyBhcmc0LAotCQkJICAgICAgdW5zaWduZWQgbG9uZyBhcmc1KQor CQkJICAgICAgdW5zaWduZWQgbG9uZyBhcmc1LAorCQkJICAgICAgbG9uZyAqcmNfcCkKIHsK IAkvKiBUaGUgY3VycmVudCBwcmN0bCBvcGVyYXRpb25zIGRvIG5vdCBhcHBlYXIgdG8gcmVx dWlyZQogCSAgIGFueSBTRUxpbnV4IGNvbnRyb2xzIHNpbmNlIHRoZXkgbWVyZWx5IG9ic2Vy dmUgb3IgbW9kaWZ5CiAJICAgdGhlIHN0YXRlIG9mIHRoZSBjdXJyZW50IHByb2Nlc3MuICov Ci0JcmV0dXJuIDA7CisJcmV0dXJuIHNlY29uZGFyeV9vcHMtPnRhc2tfcHJjdGwob3B0aW9u LCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1LCByY19wKTsKIH0KIAogc3RhdGljIGludCBzZWxp bnV4X3Rhc2tfd2FpdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCi0tIAoxLjUuMy43Cgo= --------------050808060906080203020000-- -- 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/