From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH for-4.12 v2 16/17] xen/arm: Implement Set/Way operations Date: Tue, 4 Dec 2018 20:26:50 +0000 Message-ID: <20181204202651.8836-17-julien.grall@arm.com> References: <20181204202651.8836-1-julien.grall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gUHI7-0008Gl-R7 for xen-devel@lists.xenproject.org; Tue, 04 Dec 2018 20:27:35 +0000 In-Reply-To: <20181204202651.8836-1-julien.grall@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Julien Grall , sstabellini@kernel.org List-Id: xen-devel@lists.xenproject.org U2V0L1dheSBvcGVyYXRpb25zIGFyZSB1c2VkIHRvIHBlcmZvcm0gbWFpbnRlbmFuY2Ugb24gYSBn aXZlbiBjYWNoZS4KQXQgdGhlIG1vbWVudCwgU2V0L1dheSBvcGVyYXRpb25zIGFyZSBub3QgdHJh cHBlZCBhbmQgdGhlcmVmb3JlIGEgZ3Vlc3QKT1Mgd2lsbCBkaXJlY3RseSBhY3Qgb24gdGhlIGxv Y2FsIGNhY2hlLiBIb3dldmVyLCBhIHZDUFUgbWF5IG1pZ3JhdGUgdG8KYW5vdGhlciBwQ1BVIGlu IHRoZSBtaWRkbGUgb2YgdGhlIHByb2Nlc3Nvci4gVGhpcyB3aWxsIHJlc3VsdCB0byBoYXZlCmNh Y2hlIHdpdGggc3RhbGwgZGF0YSAoU2V0L1dheSBhcmUgbm90IHByb3BhZ2F0ZWQpIHBvdGVudGlh bGx5IGNhdXNpbmcKY3Jhc2guIFRoaXMgbWF5IGJlIHRoZSBjYXVzZSBvZiBoZWlzZW5idWcgbm90 aWNlZCBpbiBPc3N0ZXN0IFsxXS4KCkZ1cnRoZXJtb3JlLCBTZXQvV2F5IG9wZXJhdGlvbnMgYXJl IG5vdCBhdmFpbGFibGUgb24gc3lzdGVtIGNhY2hlLiBUaGlzCm1lYW5zIHRoYXQgT1MsIHN1Y2gg YXMgTGludXggMzItYml0LCByZWx5aW5nIG9uIHRob3NlIG9wZXJhdGlvbnMgdG8KZnVsbHkgY2xl YW4gdGhlIGNhY2hlIGJlZm9yZSBkaXNhYmxpbmcgTU1VIG1heSBicmVhayBiZWNhdXNlIGRhdGEg bWF5CnNpdHMgaW4gc3lzdGVtIGNhY2hlcyBhbmQgbm90IGluIFJBTS4KCkZvciBtb3JlIGRldGFp bHMgYWJvdXQgU2V0L1dheSwgc2VlIHRoZSB0YWxrICJUaGUgQXJ0IG9mIFZpcnR1YWxpemluZwpD YWNoZSBNYWludGVuYW5jZSIgZ2l2ZW4gYXQgWGVuIFN1bW1pdCAyMDE4IFsyXS4KCkluIHRoZSBj b250ZXh0IG9mIFhlbiwgd2UgbmVlZCB0byB0cmFwIFNldC9XYXkgb3BlcmF0aW9ucyBhbmQgZW11 bGF0ZQp0aGVtLiBGcm9tIHRoZSBBcm0gQXJtIChCMS4xNC40IGluIERESSAwNDZDLmMpLCBTZXQv V2F5IG9wZXJhdGlvbnMgYXJlCmRpZmZpY3VsdCB0byB2aXJ0dWFsaXplZC4gU28gd2UgY2FuIGFz c3VtZSB0aGF0IGEgZ3Vlc3QgT1MgdXNpbmcgdGhlbSB3aWxsCnN1ZmZlciB0aGUgY29uc2VxdWVu Y2UgKGkuZSBzbG93bmVzcykgdW50aWwgZGV2ZWxvcGVyIHJlbW92ZXMgYWxsIHRoZSB1c2FnZQpv ZiBTZXQvV2F5LgoKQXMgdGhlIHNvZnR3YXJlIGlzIG5vdCBhbGxvd2VkIHRvIGluZmVyIHRoZSBT ZXQvV2F5IHRvIFBoeXNpY2FsIEFkZHJlc3MKbWFwcGluZywgWGVuIHdpbGwgbmVlZCB0byBnbyB0 aHJvdWdoIHRoZSBndWVzdCBQMk0gYW5kIGNsZWFuICYKaW52YWxpZGF0ZSBhbGwgdGhlIGVudHJp ZXMgbWFwcGVkLgoKQmVjYXVzZSBTZXQvV2F5IGhhcHBlbiBpbiBiYXRjaCAoYSBsb29wIG9uIGFs bCBTZXQvV2F5IG9mIGEgY2FjaGUpLCBYZW4Kd291bGQgbmVlZCB0byBnbyB0aHJvdWdoIHRoZSBQ Mk0gZm9yIGV2ZXJ5IGluc3RydWN0aW9ucy4gVGhpcyBpcyBxdWl0ZQpleHBlbnNpdmUgYW5kIHdv dWxkIHNldmVyZWx5IGltcGFjdCB0aGUgZ3Vlc3QgT1MuIFRoZSBpbXBsZW1lbnRhdGlvbiBpcwpy ZS11c2luZyB0aGUgS1ZNIHBvbGljeSB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIGZsdXNoOgogICAg LSBJZiB3ZSB0cmFwIGEgU2V0L1dheSBvcGVyYXRpb25zLCB3ZSBlbmFibGUgVk0gdHJhcHBpbmcg KGkuZQogICAgICBIVkNfRUwyLlRWTSkgdG8gZGV0ZWN0IGNhY2hlIGJlaW5nIHR1cm5lZCBvbi9v ZmYsIGFuZCBkbyBhIGZ1bGwKICAgIGNsZWFuLgogICAgLSBXZSBjbGVhbiB0aGUgY2FjaGVzIHdo ZW4gdHVybmluZyBvbiBhbmQgb2ZmCiAgICAtIE9uY2UgdGhlIGNhY2hlcyBhcmUgZW5hYmxlZCwg d2Ugc3RvcCB0cmFwcGluZyBWTSBpbnN0cnVjdGlvbnMKClsxXSBodHRwczovL2xpc3RzLnhlbnBy b2plY3Qub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTctMDkvbXNnMDMxOTEuaHRtbApb Ml0gaHR0cHM6Ly9mci5zbGlkZXNoYXJlLm5ldC94ZW5fY29tX21nci92aXJ0dWFsaXppbmctY2Fj aGUKClNpZ25lZC1vZmYtYnk6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+Cgot LS0KICAgIENoYW5nZXMgaW4gdjI6CiAgICAgICAgLSBGaXggZW11bGF0aW9uIGZvciBTZXQvV2F5 IGNhY2hlIGZsdXNoIGFybTY0IHN5c3JlZwogICAgICAgIC0gQWRkIHN1cHBvcnQgZm9yIHByZWVt cHRpb24KICAgICAgICAtIENoZWNrIGNhY2hlIHN0YXR1cyBvbiBldmVyeSBWTSB0cmFwcyBpbiBB cm02NAogICAgICAgIC0gUmVtb3ZlIHNwdXJpb3VzIGNoYW5nZQotLS0KIHhlbi9hcmNoL2FybS9h cm02NC92c3lzcmVnLmMgfCAxNyArKysrKysrKwogeGVuL2FyY2gvYXJtL3AybS5jICAgICAgICAg ICB8IDkyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4v YXJjaC9hcm0vdHJhcHMuYyAgICAgICAgIHwgMjUgKysrKysrKysrKystCiB4ZW4vYXJjaC9hcm0v dmNwcmVnLmMgICAgICAgIHwgMjIgKysrKysrKysrKysKIHhlbi9pbmNsdWRlL2FzbS1hcm0vZG9t YWluLmggfCAgOCArKysrCiB4ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oICAgIHwgMjAgKysrKysr KysrKwogNiBmaWxlcyBjaGFuZ2VkLCAxODMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9hcm02NC92c3lzcmVnLmMgYi94ZW4vYXJjaC9hcm0v YXJtNjQvdnN5c3JlZy5jCmluZGV4IDE2YWM5YzM0NGEuLjhhODU1MDdkOWQgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL2FybS9hcm02NC92c3lzcmVnLmMKKysrIGIveGVuL2FyY2gvYXJtL2FybTY0L3Zz eXNyZWcuYwpAQCAtMzQsOSArMzQsMTQgQEAKIHN0YXRpYyBib29sIHZyZWdfZW11bGF0ZV8jI3Jl ZyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgICAgICAgICAgXAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVpbnQ2NF90ICpyLCBib29sIHJlYWQpICAgICAgICAgICAgICBcCiB7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGJvb2wgY2FjaGVfZW5hYmxlZCA9IHZjcHVf aGFzX2NhY2hlX2VuYWJsZWQodik7ICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg ICBHVUVTVF9CVUdfT04ocmVhZCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAogICAgIFdSSVRFX1NZU1JFRzY0KCpyLCByZWcpOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBwMm1fdG9nZ2xlX2Nh Y2hlKHYsIGNhY2hlX2VuYWJsZWQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCiAgICAgcmV0dXJuIHRydWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKIH0KIApAQCAtODUsNiArOTAsMTggQEAgdm9pZCBkb19z eXNyZWcoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsCiAgICAgICAgIGJyZWFrOwogCiAgICAg LyoKKyAgICAgKiBIQ1JfRUwyLlRTVworICAgICAqCisgICAgICogQVJNdjggKERESSAwNDg3Qi5i KTogVGFibGUgRDEtNDIKKyAgICAgKi8KKyAgICBjYXNlIEhTUl9TWVNSRUdfRENJU1c6CisgICAg Y2FzZSBIU1JfU1lTUkVHX0RDQ1NXOgorICAgIGNhc2UgSFNSX1NZU1JFR19EQ0NJU1c6CisgICAg ICAgIGlmICggIWhzci5zeXNyZWcucmVhZCApCisgICAgICAgICAgICBwMm1fc2V0X3dheV9mbHVz aChjdXJyZW50KTsKKyAgICAgICAgYnJlYWs7CisKKyAgICAvKgogICAgICAqIEhDUl9FTDIuVFZN CiAgICAgICoKICAgICAgKiBBUk12OCAoRERJIDA0ODdELmEpOiBUYWJsZSBEMS0zOApkaWZmIC0t Z2l0IGEveGVuL2FyY2gvYXJtL3AybS5jIGIveGVuL2FyY2gvYXJtL3AybS5jCmluZGV4IGNhOWYw ZDllYmUuLjhlZTZmZjdiZDcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9wMm0uYworKysgYi94 ZW4vYXJjaC9hcm0vcDJtLmMKQEAgLTMsNiArMyw3IEBACiAjaW5jbHVkZSA8eGVuL2lvY2FwLmg+ CiAjaW5jbHVkZSA8eGVuL2xpYi5oPgogI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgorI2luY2x1ZGUg PHhlbi9zb2Z0aXJxLmg+CiAKICNpbmNsdWRlIDxhc20vZXZlbnQuaD4KICNpbmNsdWRlIDxhc20v Zmx1c2h0bGIuaD4KQEAgLTE2MjAsNiArMTYyMSw5NyBAQCBpbnQgcDJtX2NhY2hlX2ZsdXNoX3Jh bmdlKHN0cnVjdCBkb21haW4gKmQsIGdmbl90ICpwc3RhcnQsIGdmbl90IGVuZCkKICAgICByZXR1 cm4gcmM7CiB9CiAKKy8qCisgKiBDbGVhbiAmIGludmFsaWRhdGUgUkFNIGFzc29jaWF0ZWQgdG8g dGhlIGd1ZXN0IHZDUFUuCisgKgorICogVGhlIGZ1bmN0aW9uIGNhbiBvbmx5IHdvcmsgd2l0aCB0 aGUgY3VycmVudCB2Q1BVIGFuZCBzaG91bGQgYmUgY2FsbGVkCisgKiB3aXRoIElSUSBlbmFibGVk IGFzIHRoZSB2Q1BVIGNvdWxkIGdldCBwcmVlbXB0ZWQuCisgKi8KK3ZvaWQgcDJtX2ZsdXNoX3Zt KHN0cnVjdCB2Y3B1ICp2KQoreworICAgIGludCByYzsKKyAgICBnZm5fdCBzdGFydCA9IF9nZm4o MCk7CisKKyAgICBBU1NFUlQodiA9PSBjdXJyZW50KTsKKyAgICBBU1NFUlQobG9jYWxfaXJxX2lz X2VuYWJsZWQoKSk7CisgICAgQVNTRVJUKHYtPmFyY2gubmVlZF9mbHVzaF90b19yYW0pOworCisg ICAgZG8KKyAgICB7CisgICAgICAgIHJjID0gcDJtX2NhY2hlX2ZsdXNoX3JhbmdlKHYtPmRvbWFp biwgJnN0YXJ0LCBfZ2ZuKFVMT05HX01BWCkpOworICAgICAgICBpZiAoIHJjID09IC1FUkVTVEFS VCApCisgICAgICAgICAgICBkb19zb2Z0aXJxKCk7CisgICAgfSB3aGlsZSAoIHJjID09IC1FUkVT VEFSVCApOworCisgICAgaWYgKCByYyAhPSAwICkKKyAgICAgICAgZ3ByaW50ayhYRU5MT0dfV0FS TklORywKKyAgICAgICAgICAgICAgICAiUDJNIGhhcyBub3QgYmVlbiBjb3JyZWN0bHkgY2xlYW5l ZCAocmMgPSAlZClcbiIsCisgICAgICAgICAgICAgICAgcmMpOworCisgICAgdi0+YXJjaC5uZWVk X2ZsdXNoX3RvX3JhbSA9IGZhbHNlOworfQorCisvKgorICogU2VlIG5vdGUgYXQgQVJNdjcgQVJN IEIxLjE0LjQgKERESSAwNDA2Qy5jKSAoVEw7RFI6IFMvVyBvcHMgYXJlIG5vdAorICogZWFzaWx5 IHZpcnR1YWxpemVkKS4KKyAqCisgKiBNYWluIHByb2JsZW1zOgorICogIC0gUy9XIG9wcyBhcmUg bG9jYWwgdG8gYSBDUFUgKG5vdCBicm9hZGNhc3QpCisgKiAgLSBXZSBoYXZlIGxpbmUgbWlncmF0 aW9uIGJlaGluZCBvdXIgYmFjayAoc3BlY3VsYXRpb24pCisgKiAgLSBTeXN0ZW0gY2FjaGVzIGRv bid0IHN1cHBvcnQgUy9XIGF0IGFsbCAoZGFtbiEpCisgKgorICogSW4gdGhlIGZhY2Ugb2YgdGhl IGFib3ZlLCB0aGUgYmVzdCB3ZSBjYW4gZG8gaXMgdG8gdHJ5IGFuZCBjb252ZXJ0CisgKiBTL1cg b3BzIHRvIFZBIG9wcy4gQmVjYXVzZSB0aGUgZ3Vlc3QgaXMgbm90IGFsbG93ZWQgdG8gaW5mZXIg dGhlIFMvVworICogdG8gUEEgbWFwcGluZywgaXQgY2FuIG9ubHkgdXNlIFMvVyB0byBudWtlIHRo ZSB3aG9sZSBjYWNoZSwgd2hpY2ggaXMKKyAqIHJhdGhlciBhIGdvb2QgdGhpbmcgZm9yIHVzLgor ICoKKyAqIEFsc28sIGl0IGlzIG9ubHkgdXNlZCB3aGVuIHR1cm5pbmcgY2FjaGVzIG9uL29mZiAo IlRoZSBleHBlY3RlZAorICogdXNhZ2Ugb2YgdGhlIGNhY2hlIG1haW50ZW5hbmNlIGluc3RydWN0 aW9ucyB0aGF0IG9wZXJhdGUgYnkgc2V0L3dheQorICogaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBw b3dlcmRvd24gYW5kIHBvd2VydXAgb2YgY2FjaGVzLCBpZiB0aGlzIGlzCisgKiByZXF1aXJlZCBi eSB0aGUgaW1wbGVtZW50YXRpb24uIikuCisgKgorICogV2UgdXNlIHRoZSBmb2xsb3dpbmcgcG9s aWN5OgorICogIC0gSWYgd2UgdHJhcCBhIFMvVyBvcGVyYXRpb24sIHdlIGVuYWJsZWQgVk0gdHJh cHBpbmcgdG8gZGV0ZWN0CisgKiAgY2FjaGVzIGJlaW5nIHR1cm5lZCBvbi9vZmYsIGFuZCBkbyBh IGZ1bGwgY2xlYW4uCisgKgorICogIC0gV2UgZmx1c2ggdGhlIGNhY2hlcyBvbiBib3RoIGNhY2hl cyBiZWluZyB0dXJuZWQgb24gYW5kIG9mZi4KKyAqCisgKiAgLSBPbmNlIHRoZSBjYWNoZXMgYXJl IGVuYWJsZWQsIHdlIHN0b3AgdHJhcHBpbmcgVk0gb3BzLgorICovCit2b2lkIHAybV9zZXRfd2F5 X2ZsdXNoKHN0cnVjdCB2Y3B1ICp2KQoreworICAgIC8qIFRoaXMgZnVuY3Rpb24gY2FuIG9ubHkg d29yayB3aXRoIHRoZSBjdXJyZW50IHZDUFUuICovCisgICAgQVNTRVJUKHYgPT0gY3VycmVudCk7 CisKKyAgICBpZiAoICEodi0+YXJjaC5oY3JfZWwyICYgSENSX1RWTSkgKQorICAgIHsKKyAgICAg ICAgdi0+YXJjaC5uZWVkX2ZsdXNoX3RvX3JhbSA9IHRydWU7CisgICAgICAgIHZjcHVfaGNyX3Nl dF9mbGFncyh2LCBIQ1JfVFZNKTsKKyAgICB9Cit9CisKK3ZvaWQgcDJtX3RvZ2dsZV9jYWNoZShz dHJ1Y3QgdmNwdSAqdiwgYm9vbCB3YXNfZW5hYmxlZCkKK3sKKyAgICBib29sIG5vd19lbmFibGVk ID0gdmNwdV9oYXNfY2FjaGVfZW5hYmxlZCh2KTsKKworICAgIC8qIFRoaXMgZnVuY3Rpb24gY2Fu IG9ubHkgd29yayB3aXRoIHRoZSBjdXJyZW50IHZDUFUuICovCisgICAgQVNTRVJUKHYgPT0gY3Vy cmVudCk7CisKKyAgICAvKgorICAgICAqIElmIHN3aXRjaGluZyB0aGUgTU1VK2NhY2hlcyBvbiwg bmVlZCB0byBpbnZhbGlkYXRlIHRoZSBjYWNoZXMuCisgICAgICogSWYgc3dpdGNoaW5nIGl0IG9m ZiwgbmVlZCB0byBjbGVhbiB0aGUgY2FjaGVzLgorICAgICAqIENsZWFuICsgaW52YWxpZGF0ZSBk b2VzIHRoZSB0cmljayBhbHdheXMuCisgICAgICovCisgICAgaWYgKCB3YXNfZW5hYmxlZCAhPSBu b3dfZW5hYmxlZCApCisgICAgeworICAgICAgICB2LT5hcmNoLm5lZWRfZmx1c2hfdG9fcmFtID0g dHJ1ZTsKKyAgICB9CisKKyAgICAvKiBDYWNoZXMgYXJlIG5vdyBvbiwgc3RvcCB0cmFwcGluZyBW TSBvcHMgKHVudGlsIGEgUy9XIG9wKSAqLworICAgIGlmICggbm93X2VuYWJsZWQgKQorICAgICAg ICB2Y3B1X2hjcl9jbGVhcl9mbGFncyh2LCBIQ1JfVFZNKTsKK30KKwogbWZuX3QgZ2ZuX3RvX21m bihzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4pCiB7CiAgICAgcmV0dXJuIHAybV9sb29rdXAo ZCwgZ2ZuLCBOVUxMKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90cmFwcy5jIGIveGVuL2Fy Y2gvYXJtL3RyYXBzLmMKaW5kZXggMDI2NjVjYzdiNC4uMjIxYzc2MmFkYSAxMDA2NDQKLS0tIGEv eGVuL2FyY2gvYXJtL3RyYXBzLmMKKysrIGIveGVuL2FyY2gvYXJtL3RyYXBzLmMKQEAgLTk3LDcg Kzk3LDcgQEAgcmVnaXN0ZXJfdCBnZXRfZGVmYXVsdF9oY3JfZmxhZ3Modm9pZCkKIHsKICAgICBy ZXR1cm4gIChIQ1JfUFRXfEhDUl9CU1VfSU5ORVJ8SENSX0FNT3xIQ1JfSU1PfEhDUl9GTU98SENS X1ZNfAogICAgICAgICAgICAgICh2d2ZpICE9IE5BVElWRSA/IChIQ1JfVFdJfEhDUl9UV0UpIDog MCkgfAotICAgICAgICAgICAgIEhDUl9UU0N8SENSX1RBQ3xIQ1JfU1dJT3xIQ1JfVElEQ1B8SENS X0ZCKTsKKyAgICAgICAgICAgICBIQ1JfVFNDfEhDUl9UQUN8SENSX1NXSU98SENSX1RJRENQfEhD Ul9GQnxIQ1JfVFNXKTsKIH0KIAogc3RhdGljIGVudW0gewpAQCAtMjI1OCwxMCArMjI1OCwzMyBA QCBzdGF0aWMgdm9pZCBjaGVja19mb3JfcGNwdV93b3JrKHZvaWQpCiAgICAgfQogfQogCisvKgor ICogUHJvY2VzcyBwZW5kaW5nIHdvcmsgZm9yIHRoZSB2Q1BVLiBBbnkgY2FsbCBzaG91bGQgYmUg ZmFzdCBvcgorICogaW1wbGVtZW50IHByZWVtcHRpb24uCisgKi8KK3N0YXRpYyB2b2lkIGNoZWNr X2Zvcl92Y3B1X3dvcmsodm9pZCkKK3sKKyAgICBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7CisK KyAgICBpZiAoIGxpa2VseSghdi0+YXJjaC5uZWVkX2ZsdXNoX3RvX3JhbSkgKQorICAgICAgICBy ZXR1cm47CisKKyAgICAvKgorICAgICAqIEdpdmUgYSBjaGFuY2UgZm9yIHRoZSBwQ1BVIHRvIHBy b2Nlc3Mgd29yayBiZWZvcmUgaGFuZGxpbmcgdGhlIHZDUFUKKyAgICAgKiBwZW5kaW5nIHdvcmsu CisgICAgICovCisgICAgY2hlY2tfZm9yX3BjcHVfd29yaygpOworCisgICAgbG9jYWxfaXJxX2Vu YWJsZSgpOworICAgIHAybV9mbHVzaF92bSh2KTsKKyAgICBsb2NhbF9pcnFfZGlzYWJsZSgpOwor fQorCiB2b2lkIGxlYXZlX2h5cGVydmlzb3JfdGFpbCh2b2lkKQogewogICAgIGxvY2FsX2lycV9k aXNhYmxlKCk7CiAKKyAgICBjaGVja19mb3JfdmNwdV93b3JrKCk7CiAgICAgY2hlY2tfZm9yX3Bj cHVfd29yaygpOwogCiAgICAgdmdpY19zeW5jX3RvX2xycygpOwpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gvYXJtL3ZjcHJlZy5jIGIveGVuL2FyY2gvYXJtL3ZjcHJlZy5jCmluZGV4IDU1MGMyNWVjM2Yu LmNkYzkxY2RmNWIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS92Y3ByZWcuYworKysgYi94ZW4v YXJjaC9hcm0vdmNwcmVnLmMKQEAgLTUxLDkgKzUxLDE0IEBACiAjZGVmaW5lIFRWTV9SRUcoc3os IGZ1bmMsIHJlZy4uLikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAogc3RhdGljIGJvb2wgZnVuYyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgdWludCMjc3oj I190ICpyLCBib29sIHJlYWQpICAgIFwKIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc3RydWN0 IHZjcHUgKnYgPSBjdXJyZW50OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorICAgIGJvb2wgY2FjaGVfZW5hYmxlZCA9IHZjcHVfaGFzX2NhY2hlX2VuYWJs ZWQodik7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg ICAgR1VFU1RfQlVHX09OKHJlYWQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAogICAgIFdSSVRFX1NZU1JFRyMjc3ooKnIsIHJlZyk7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgcDJtX3RvZ2dsZV9jYWNoZSh2LCBjYWNoZV9lbmFibGVkKTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBy ZXR1cm4gdHJ1ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCiB9CiAKQEAgLTcxLDYgKzc2LDggQEAgc3RhdGljIGJvb2wgZnVuYyhz dHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgdWludCMjc3ojI190ICpyLCBib29sIHJlYWQpICAg IFwKIHN0YXRpYyBib29sIHZyZWdfZW11bGF0ZV8jI3hyZWcoc3RydWN0IGNwdV91c2VyX3JlZ3Mg KnJlZ3MsIHVpbnQzMl90ICpyLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJvb2wgcmVhZCwgYm9vbCBoaSkgICAgICAgICAgICAgICAgICAgICAgICAgXAogeyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgYm9vbCBjYWNoZV9lbmFibGVk ID0gdmNwdV9oYXNfY2FjaGVfZW5hYmxlZCh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgXAog ICAgIHJlZ2lzdGVyX3QgcmVnID0gUkVBRF9TWVNSRUcoeHJlZyk7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgR1VFU1RfQlVH X09OKHJlYWQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXApAQCAtODYsNiArOTMsOCBAQCBzdGF0aWMgYm9vbCB2cmVnX2VtdWxhdGVfIyN4cmVn KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLCB1aW50MzJfdCAqciwgICAgXAogICAgIH0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKICAgICBXUklURV9TWVNSRUcocmVnLCB4cmVnKTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgIHAybV90b2dnbGVfY2FjaGUodiwgY2FjaGVfZW5hYmxlZCk7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgcmV0dXJuIHRy dWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0x ODYsNiArMTk1LDE5IEBAIHZvaWQgZG9fY3AxNV8zMihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVn cywgY29uc3QgdW5pb24gaHNyIGhzcikKICAgICAgICAgYnJlYWs7CiAKICAgICAvKgorICAgICAq IEhDUl9FTDIuVFNXCisgICAgICoKKyAgICAgKiBBUk12NyAoRERJIDA0MDZDLmIpOiBCMS4xNC42 CisgICAgICogQVJNdjggKERESSAwNDg3Qi5iKTogVGFibGUgRDEtNDIKKyAgICAgKi8KKyAgICBj YXNlIEhTUl9DUFJFRzMyKERDSVNXKToKKyAgICBjYXNlIEhTUl9DUFJFRzMyKERDQ1NXKToKKyAg ICBjYXNlIEhTUl9DUFJFRzMyKERDQ0lTVyk6CisgICAgICAgIGlmICggIWNwMzIucmVhZCApCisg ICAgICAgICAgICBwMm1fc2V0X3dheV9mbHVzaChjdXJyZW50KTsKKyAgICAgICAgYnJlYWs7CisK KyAgICAvKgogICAgICAqIEhDUl9FTDIuVFZNCiAgICAgICoKICAgICAgKiBBUk12OCAoRERJIDA0 ODdELmEpOiBUYWJsZSBEMS0zOApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9kb21h aW4uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZG9tYWluLmgKaW5kZXggMTc1ZGU0NDkyNy4uZjE2 Yjk3M2UwZCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaAorKysgYi94 ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oCkBAIC0yMDIsNiArMjAyLDE0IEBAIHN0cnVjdCBh cmNoX3ZjcHUKICAgICBzdHJ1Y3QgdnRpbWVyIHBoeXNfdGltZXI7CiAgICAgc3RydWN0IHZ0aW1l ciB2aXJ0X3RpbWVyOwogICAgIGJvb2wgICB2dGltZXJfaW5pdGlhbGl6ZWQ7CisKKyAgICAvKgor ICAgICAqIFRoZSBmdWxsIFAyTSBtYXkgcmVxdWlyZSBzb21lIGNsZWFuaW5nIChlLmcgd2hlbiBl bXVsYXRpb24KKyAgICAgKiBzZXQvd2F5KS4gQXMgdGhlIGFjdGlvbiBjYW4gdGFrZSBhIGxvbmcg dGltZSwgaXQgcmVxdWlyZXMKKyAgICAgKiBwcmVlbXB0aW9uLiBTbyB0aGlzIGlzIGRlZmVycmVk IHVudGlsIHdlIHJldHVybiB0byB0aGUgZ3Vlc3QuCisgICAgICovCisgICAgYm9vbCBuZWVkX2Zs dXNoX3RvX3JhbTsKKwogfSAgX19jYWNoZWxpbmVfYWxpZ25lZDsKIAogdm9pZCB2Y3B1X3Nob3df ZXhlY3V0aW9uX3N0YXRlKHN0cnVjdCB2Y3B1ICopOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv YXNtLWFybS9wMm0uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmgKaW5kZXggYTYzM2UyN2Nj OS4uNzlhYmNiNWE2MyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaAorKysg Yi94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCkBAIC02LDYgKzYsOCBAQAogI2luY2x1ZGUgPHhl bi9yd2xvY2suaD4KICNpbmNsdWRlIDx4ZW4vbWVtX2FjY2Vzcy5oPgogCisjaW5jbHVkZSA8YXNt L2N1cnJlbnQuaD4KKwogI2RlZmluZSBwYWRkcl9iaXRzIFBBRERSX0JJVFMKIAogLyogSG9sZHMg dGhlIGJpdCBzaXplIG9mIElQQXMgaW4gcDJtIHRhYmxlcy4gICovCkBAIC0yMzcsNiArMjM5LDEy IEBAIGJvb2wgcDJtX3Jlc29sdmVfdHJhbnNsYXRpb25fZmF1bHQoc3RydWN0IGRvbWFpbiAqZCwg Z2ZuX3QgZ2ZuKTsKICAqLwogaW50IHAybV9jYWNoZV9mbHVzaF9yYW5nZShzdHJ1Y3QgZG9tYWlu ICpkLCBnZm5fdCAqcHN0YXJ0LCBnZm5fdCBlbmQpOwogCit2b2lkIHAybV9zZXRfd2F5X2ZsdXNo KHN0cnVjdCB2Y3B1ICp2KTsKKwordm9pZCBwMm1fdG9nZ2xlX2NhY2hlKHN0cnVjdCB2Y3B1ICp2 LCBib29sIHdhc19lbmFibGVkKTsKKwordm9pZCBwMm1fZmx1c2hfdm0oc3RydWN0IHZjcHUgKnYp OworCiAvKgogICogTWFwIGEgcmVnaW9uIGluIHRoZSBndWVzdCBwMm0gd2l0aCBhIHNwZWNpZmlj IHAybSB0eXBlLgogICogVGhlIG1lbW9yeSBhdHRyaWJ1dGVzIHdpbGwgYmUgZGVyaXZlZCBmcm9t IHRoZSBwMm0gdHlwZS4KQEAgLTM2NCw2ICszNzIsMTggQEAgc3RhdGljIGlubGluZSBpbnQgc2V0 X2ZvcmVpZ25fcDJtX2VudHJ5KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAog ICAgIHJldHVybiAtRU9QTk9UU1VQUDsKIH0KIAorLyoKKyAqIEEgdkNQVSBoYXMgY2FjaGUgZW5h YmxlZCBvbmx5IHdoZW4gdGhlIE1NVSBpcyBlbmFibGVkIGFuZCBkYXRhIGNhY2hlCisgKiBpcyBl bmFibGVkLgorICovCitzdGF0aWMgaW5saW5lIGJvb2wgdmNwdV9oYXNfY2FjaGVfZW5hYmxlZChz dHJ1Y3QgdmNwdSAqdikKK3sKKyAgICAvKiBPbmx5IHdvcmtzIHdpdGggdGhlIGN1cnJlbnQgdkNQ VSAqLworICAgIEFTU0VSVChjdXJyZW50ID09IHYpOworCisgICAgcmV0dXJuIChSRUFEX1NZU1JF RzMyKFNDVExSX0VMMSkgJiAoU0NUTFJfQ3xTQ1RMUl9NKSkgPT0gKFNDVExSX0N8U0NUTFJfTSk7 Cit9CisKICNlbmRpZiAvKiBfWEVOX1AyTV9IICovCiAKIC8qCi0tIAoyLjExLjAKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnBy b2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs