From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH 04/18] arm/altp2m: Add altp2m init/teardown routines. Date: Mon, 4 Jul 2016 16:17:17 +0100 Message-ID: <577A7DFD.2070600@arm.com> References: <20160704114605.10086-1-proskurin@sec.in.tum.de> <20160704114605.10086-5-proskurin@sec.in.tum.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bK5cg-0001xN-VI for xen-devel@lists.xenproject.org; Mon, 04 Jul 2016 15:17:23 +0000 In-Reply-To: <20160704114605.10086-5-proskurin@sec.in.tum.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Sergej Proskurin , xen-devel@lists.xenproject.org Cc: Stefano Stabellini List-Id: xen-devel@lists.xenproject.org SGVsbG8gU2VyZ2VqLAoKT24gMDQvMDcvMTYgMTI6NDUsIFNlcmdlaiBQcm9za3VyaW4gd3JvdGU6 Cj4gVGhlIHAybSBpbnRpYWxpemF0aW9uIG5vdyBpbnZva2VzIGludGlhbGl6YXRpb24gcm91dGlu ZXMgcmVzcG9uc2libGUgZm9yCgpzL2ludGlhbGl6YXRpb24vaW5pdGlhbGl6YXRpb24vCgo+IHRo ZSBhbGxvY2F0aW9uIGFuZCBpbnRpdGlhbGl6YXRpb24gb2YgYWx0cDJtIHN0cnVjdHVyZXMuIFRo ZSBzYW1lCgpEaXR0bwoKPiBhcHBsaWVzIHRvIHRlYXJkb3duIHJvdXRpbmVzLiBUaGUgZnVuY3Rp b25hbGl0eSBoYXMgYmVlbiBhZG9wdGVkIGZyb20KPiB0aGUgeDg2IGFsdHAybSBpbXBsZW1lbnRh dGlvbi4KClRoaXMgcGF0Y2ggd291bGQgYmVuZWZpdCB0byBiZSBzcGxpdCBpbiAyOgogICAgMSkg TW92aW5nIHAybSBpbml0L3RlYXJkb3duIGluIGEgc2VwYXJhdGUgZnVuY3Rpb24KICAgIDIpIElu dHJvZHVjaW5nIGFsdHAybSBpbml0L3RlYXJkb3duCgpJdCB3aWxsIGVhc2UgdGhlIHJldmlldy4K Cj4gU2lnbmVkLW9mZi1ieTogU2VyZ2VqIFByb3NrdXJpbiA8cHJvc2t1cmluQHNlYy5pbi50dW0u ZGU+Cj4gLS0tCj4gQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9y Zz4KPiBDYzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KPiAtLS0KPiAgIHhl bi9hcmNoL2FybS9wMm0uYyAgICAgICAgICAgIHwgMTY2ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLQo+ICAgeGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaCAgfCAg IDYgKysKPiAgIHhlbi9pbmNsdWRlL2FzbS1hcm0vaHZtL2h2bS5oIHwgIDEyICsrKwo+ICAgeGVu L2luY2x1ZGUvYXNtLWFybS9wMm0uaCAgICAgfCAgMjAgKysrKysKPiAgIDQgZmlsZXMgY2hhbmdl ZCwgMTk4IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEveGVu L2FyY2gvYXJtL3AybS5jIGIveGVuL2FyY2gvYXJtL3AybS5jCj4gaW5kZXggYWE0ZTc3NC4uZTcy Y2E3YSAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC9hcm0vcDJtLmMKPiArKysgYi94ZW4vYXJjaC9h cm0vcDJtLmMKPiBAQCAtMTQwMCwxOSArMTQwMCwxMDMgQEAgc3RhdGljIHZvaWQgcDJtX2ZyZWVf dm1pZChzdHJ1Y3QgZG9tYWluICpkKQo+ICAgICAgIHNwaW5fdW5sb2NrKCZ2bWlkX2FsbG9jX2xv Y2spOwo+ICAgfQo+Cj4gLXZvaWQgcDJtX3RlYXJkb3duKHN0cnVjdCBkb21haW4gKmQpCj4gK3N0 YXRpYyBpbnQgcDJtX2luaXRpYWxpc2Uoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHAybV9kb21h aW4gKnAybSkKCkFGQUlDVCwgdGhpcyBmdW5jdGlvbiBpcyBvbmx5IHVzZWQgYnkgcDJtX2luaXRp YWxpc2Vfb25lLiBTbyBJIHdvdWxkIApwcmVmZXIgaWYgeW91IGZvbGQgdGhlIGNvZGUgaW4gdGhl IGxhdHRlci4KCj4gICB7Cj4gLSAgICBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtID0gJmQtPmFyY2gu cDJtOwo+ICsgICAgaW50IHJldCA9IDA7Cj4gKwo+ICsgICAgc3Bpbl9sb2NrX2luaXQoJnAybS0+ bG9jayk7Cj4gKyAgICBJTklUX1BBR0VfTElTVF9IRUFEKCZwMm0tPnBhZ2VzKTsKPiArCj4gKyAg ICBzcGluX2xvY2soJnAybS0+bG9jayk7Cj4gKwo+ICsgICAgcDJtLT5kb21haW4gPSBkOwo+ICsg ICAgcDJtLT5hY2Nlc3NfcmVxdWlyZWQgPSBmYWxzZTsKPiArICAgIHAybS0+bWVtX2FjY2Vzc19l bmFibGVkID0gZmFsc2U7Cj4gKyAgICBwMm0tPmRlZmF1bHRfYWNjZXNzID0gcDJtX2FjY2Vzc19y d3g7Cj4gKyAgICBwMm0tPnAybV9jbGFzcyA9IHAybV9ob3N0Owo+ICsgICAgcDJtLT5yb290ID0g TlVMTDsKPiArCj4gKyAgICAvKiBBZG9wdCBWTUlEIG9mIHRoZSBhc3NvY2lhdGVkIGRvbWFpbiAq Lwo+ICsgICAgcDJtLT52bWlkID0gZC0+YXJjaC5wMm0udm1pZDsKCkl0IGxvb2tzIGxpa2UgdG8g bWUgdGhhdCByZS11c2luZyB0aGUgc2FtZSBWTUlEIHdpbGwgcmVxdWlyZSBtb3JlIFRMQiAKZmx1 c2ggKHN1Y2ggYXMgd2hlbiBhIFZDUFUgaXMgbWlncmF0ZWQgdG8gYW5vdGhlciBwaHlzaWNhbCBD UFUpLiBTbyAKY291bGQgeW91IGV4cGxhaW4gd2h5IHlvdSBkZWNpZGVkIHRvIHJlLXVzZSB0aGUg c2FtZSBWTUlEPwoKPiArICAgIHAybS0+dnR0YnIudnR0YnIgPSAwOwo+ICsgICAgcDJtLT52dHRi ci52dHRicl92bWlkID0gcDJtLT52bWlkOwo+ICsKPiArICAgIHAybS0+bWF4X21hcHBlZF9nZm4g PSAwOwo+ICsgICAgcDJtLT5sb3dlc3RfbWFwcGVkX2dmbiA9IFVMT05HX01BWDsKPiArICAgIHJh ZGl4X3RyZWVfaW5pdCgmcDJtLT5tZW1fYWNjZXNzX3NldHRpbmdzKTsKPiArCj4gKyAgICBzcGlu X3VubG9jaygmcDJtLT5sb2NrKTsKPiArCj4gKyAgICByZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtz dGF0aWMgdm9pZCBwMm1fZnJlZV9vbmUoc3RydWN0IHAybV9kb21haW4gKnAybSkKPiArewo+ICsg ICAgbWZuX3QgbWZuOwo+ICsgICAgdW5zaWduZWQgaW50IGk7Cj4gICAgICAgc3RydWN0IHBhZ2Vf aW5mbyAqcGc7Cj4KPiAgICAgICBzcGluX2xvY2soJnAybS0+bG9jayk7Cj4KPiAgICAgICB3aGls ZSAoIChwZyA9IHBhZ2VfbGlzdF9yZW1vdmVfaGVhZCgmcDJtLT5wYWdlcykpICkKPiAtICAgICAg ICBmcmVlX2RvbWhlYXBfcGFnZShwZyk7Cj4gKyAgICAgICAgaWYgKCBwZyAhPSBwMm0tPnJvb3Qg KQo+ICsgICAgICAgICAgICBmcmVlX2RvbWhlYXBfcGFnZShwZyk7Cj4gKwo+ICsgICAgZm9yICgg aSA9IDA7IGkgPCBQMk1fUk9PVF9QQUdFUzsgaSsrICkKPiArICAgIHsKPiArICAgICAgICBtZm4g PSBfbWZuKHBhZ2VfdG9fbWZuKHAybS0+cm9vdCkgKyBpKTsKPiArICAgICAgICBjbGVhcl9kb21h aW5fcGFnZShtZm4pOwo+ICsgICAgfQo+ICsgICAgZnJlZV9kb21oZWFwX3BhZ2VzKHAybS0+cm9v dCwgUDJNX1JPT1RfT1JERVIpOwo+ICsgICAgcDJtLT5yb290ID0gTlVMTDsKPiArCj4gKyAgICBy YWRpeF90cmVlX2Rlc3Ryb3koJnAybS0+bWVtX2FjY2Vzc19zZXR0aW5ncywgTlVMTCk7Cj4gKwo+ ICsgICAgc3Bpbl91bmxvY2soJnAybS0+bG9jayk7Cj4gKwo+ICsgICAgeGZyZWUocDJtKTsKPiAr fQo+ICsKPiArc3RhdGljIHN0cnVjdCBwMm1fZG9tYWluICpwMm1faW5pdF9vbmUoc3RydWN0IGRv bWFpbiAqZCkKPiArewo+ICsgICAgc3RydWN0IHAybV9kb21haW4gKnAybSA9IHh6YWxsb2Moc3Ry dWN0IHAybV9kb21haW4pOwo+ICsKPiArICAgIGlmICggIXAybSApCj4gKyAgICAgICAgcmV0dXJu IE5VTEw7Cj4gKwo+ICsgICAgaWYgKCBwMm1faW5pdGlhbGlzZShkLCBwMm0pICkKPiArICAgICAg ICBnb3RvIGZyZWVfcDJtOwo+ICsKPiArICAgIHJldHVybiBwMm07Cj4gKwo+ICtmcmVlX3AybToK PiArICAgIHhmcmVlKHAybSk7Cj4gKyAgICByZXR1cm4gTlVMTDsKPiArfQo+ICsKPiArc3RhdGlj IHZvaWQgcDJtX3RlYXJkb3duX2hvc3RwMm0oc3RydWN0IGRvbWFpbiAqZCkKCldoeSBkb2VzIHAy bV90ZWFyZG93bl9ob3N0cDJtIG5vdCB1c2UgcDJtX3RlYXJkb3duX29uZSB0byB0ZWFyZG93biB0 aGUgCnAybT8gQXNzdW1pbmcgeGZyZWUocDJtKSBpcyBtb3ZlIG91dCBvZiB0aGUgZnVuY3Rpb24u Cgo+ICt7Cj4gKyAgICBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtID0gcDJtX2dldF9ob3N0cDJtKGQp Owo+ICsgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGcgPSBOVUxMOwo+ICsgICAgbWZuX3QgbWZuOwo+ ICsgICAgdW5zaWduZWQgaW50IGk7Cj4gKwo+ICsgICAgc3Bpbl9sb2NrKCZwMm0tPmxvY2spOwo+ Cj4gLSAgICBpZiAoIHAybS0+cm9vdCApCgpXaHkgZGlkIHlvdSByZW1vdmUgdGhpcyBjaGVjaz8g VGhlIHAybS0+cm9vdCBjb3VsZCBiZSBOVUxMIGlmIHRoZSBhbiAKZXJyb3Igb2NjdXJyZWQgYmVm b3JlIGNyZWF0ZSB0aGUgcm9vdCBwYWdlIHRhYmxlLgoKPiAtICAgICAgICBmcmVlX2RvbWhlYXBf cGFnZXMocDJtLT5yb290LCBQMk1fUk9PVF9PUkRFUik7Cj4gKyAgICB3aGlsZSAoIChwZyA9IHBh Z2VfbGlzdF9yZW1vdmVfaGVhZCgmcDJtLT5wYWdlcykpICkKPiArICAgICAgICBpZiAoIHBnICE9 IHAybS0+cm9vdCApCgpXaHkgdGhpcyBjaGVjaz8gcDJtLT5yb290IHdpbGwgbmV2ZXIgYmUgcGFy dCBvZiBwMm0tPnBhZ2VzLgoKPiArICAgICAgICB7Cj4gKyAgICAgICAgICAgIG1mbiA9IF9tZm4o cGFnZV90b19tZm4ocGcpKTsKPiArICAgICAgICAgICAgY2xlYXJfZG9tYWluX3BhZ2UobWZuKTsK PiArICAgICAgICAgICAgZnJlZV9kb21oZWFwX3BhZ2UocGcpOwo+ICsgICAgICAgIH0KPgo+ICsg ICAgZm9yICggaSA9IDA7IGkgPCBQMk1fUk9PVF9QQUdFUzsgaSsrICkKPiArICAgIHsKPiArICAg ICAgICBtZm4gPSBfbWZuKHBhZ2VfdG9fbWZuKHAybS0+cm9vdCkgKyBpKTsKPiArICAgICAgICBj bGVhcl9kb21haW5fcGFnZShtZm4pOwo+ICsgICAgfQo+ICsgICAgZnJlZV9kb21oZWFwX3BhZ2Vz KHAybS0+cm9vdCwgUDJNX1JPT1RfT1JERVIpOwo+ICAgICAgIHAybS0+cm9vdCA9IE5VTEw7Cj4K PiAgICAgICBwMm1fZnJlZV92bWlkKGQpOwo+IEBAIC0xNDIyLDcgKzE1MDYsNyBAQCB2b2lkIHAy bV90ZWFyZG93bihzdHJ1Y3QgZG9tYWluICpkKQo+ICAgICAgIHNwaW5fdW5sb2NrKCZwMm0tPmxv Y2spOwo+ICAgfQo+Cj4gLWludCBwMm1faW5pdChzdHJ1Y3QgZG9tYWluICpkKQo+ICtzdGF0aWMg aW50IHAybV9pbml0X2hvc3RwMm0oc3RydWN0IGRvbWFpbiAqZCkKCldoeSBkb2VzIHAybV9pbml0 X2hvc3RwMm0gbm90IHVzZSBwMm1faW5pdF9vbmUgdG8gaW5pdGlhbGl6ZSB0aGUgcDJtPwoKPiAg IHsKPiAgICAgICBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtID0gJmQtPmFyY2gucDJtOwo+ICAgICAg IGludCByYyA9IDA7Cj4gQEAgLTE0MzcsNiArMTUyMSw4IEBAIGludCBwMm1faW5pdChzdHJ1Y3Qg ZG9tYWluICpkKQo+ICAgICAgIGlmICggcmMgIT0gMCApCj4gICAgICAgICAgIGdvdG8gZXJyOwo+ Cj4gKyAgICBwMm0tPnZ0dGJyLnZ0dGJyX3ZtaWQgPSBwMm0tPnZtaWQ7Cj4gKwo+ICAgICAgIGQt PmFyY2gudnR0YnIgPSAwOwo+Cj4gICAgICAgcDJtLT5yb290ID0gTlVMTDsKPiBAQCAtMTQ1NCw2 ICsxNTQwLDc0IEBAIGVycjoKPiAgICAgICByZXR1cm4gcmM7Cj4gICB9Cj4KPiArc3RhdGljIHZv aWQgcDJtX3RlYXJkb3duX2FsdHAybShzdHJ1Y3QgZG9tYWluICpkKQo+ICt7Cj4gKyAgICB1bnNp Z25lZCBpbnQgaTsKPiArICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm07Cj4gKwo+ICsgICAgZm9y ICggaSA9IDA7IGkgPCBNQVhfQUxUUDJNOyBpKysgKQo+ICsgICAgewo+ICsgICAgICAgIGlmICgg IWQtPmFyY2guYWx0cDJtX3AybVtpXSApCj4gKyAgICAgICAgICAgIGNvbnRpbnVlOwo+ICsKPiAr ICAgICAgICBwMm0gPSBkLT5hcmNoLmFsdHAybV9wMm1baV07Cj4gKyAgICAgICAgcDJtX2ZyZWVf b25lKHAybSk7Cj4gKyAgICAgICAgZC0+YXJjaC5hbHRwMm1fdnR0YnJbaV0gPSBJTlZBTElEX01G TjsKPiArICAgICAgICBkLT5hcmNoLmFsdHAybV9wMm1baV0gPSBOVUxMOwoKVGhlc2UgMiBsaW5l cyBhcmUgbm90IG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBkb21haW4gaXMgZGVzdHJveWVkIGFuZCB0 aGUgCm1lbW9yeSBhc3NvY2lhdGVkIHdpbGwgYmUgZnJlZSB2ZXJ5IHNvb24uCgo+ICsgICAgfQo+ ICsKPiArICAgIGQtPmFyY2guYWx0cDJtX2FjdGl2ZSA9IGZhbHNlOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgaW50IHAybV9pbml0X2FsdHAybShzdHJ1Y3QgZG9tYWluICpkKQo+ICt7Cj4gKyAgICB1bnNp Z25lZCBpbnQgaTsKPiArICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm07Cj4gKwo+ICsgICAgc3Bp bl9sb2NrX2luaXQoJmQtPmFyY2guYWx0cDJtX2xvY2spOwo+ICsgICAgZm9yICggaSA9IDA7IGkg PCBNQVhfQUxUUDJNOyBpKysgKQo+ICsgICAgewo+ICsgICAgICAgIGQtPmFyY2guYWx0cDJtX3Z0 dGJyW2ldID0gSU5WQUxJRF9NRk47CgpUaGUgVlRUQlIgd2lsbCBiZSBzdG9yZWQgaW4gYWx0cDJt X3AybVtpXS52dHRici4gU28gd2h5IGRvIHlvdSBuZWVkIHRvIApzdG9yZSBpbiBhIGRpZmZlcmVu dCB3YXk/CgpBbHNvLCBwbGVhc2UgZG9uJ3QgbWl4IHZhbHVlIHRoYXQgaGF2ZSBkaWZmZXJlbnQg bWVhbmluZy4gTUZOX0lOVkFMSUQgCmluZGljYXRlcyB0aGF0IGEgTUZOIGlzIGludmFsaWQgbm90 IHRoZSBWVFRCUi4KCj4gKyAgICAgICAgZC0+YXJjaC5hbHRwMm1fcDJtW2ldID0gcDJtID0gcDJt X2luaXRfb25lKGQpOwo+ICsgICAgICAgIGlmICggcDJtID09IE5VTEwgKQo+ICsgICAgICAgIHsK PiArICAgICAgICAgICAgcDJtX3RlYXJkb3duX2FsdHAybShkKTsKClRoaXMgY2FsbCBpcyBub3Qg bmVjZXNzYXJ5LiBwMm1fdGVhcmRvd25fYWx0cDJtIHdpbGwgYmUgY2FsbGVkIGJ5IApwMm1fdGVh cmRvd24gYXMgcGFydCBvZiBhcmNoX2RvbWFpbl9kZXN0cm95LgoKPiArICAgICAgICAgICAgcmV0 dXJuIC1FTk9NRU07Cj4gKyAgICAgICAgfQo+ICsgICAgICAgIHAybS0+cDJtX2NsYXNzID0gcDJt X2FsdGVybmF0ZTsKPiArICAgICAgICBwMm0tPmFjY2Vzc19yZXF1aXJlZCA9IDE7Cj4gKyAgICAg ICAgX2F0b21pY19zZXQoJnAybS0+YWN0aXZlX3ZjcHVzLCAwKTsKPiArICAgIH0KPiArCj4gKyAg ICByZXR1cm4gMDsKPiArfQo+ICsKPiArdm9pZCBwMm1fdGVhcmRvd24oc3RydWN0IGRvbWFpbiAq ZCkKPiArewo+ICsgICAgLyoKPiArICAgICAqIFdlIG11c3QgdGVhcmRvd24gYWx0cDJtIHVuY29u ZGl0aW9uYWxseSBiZWNhdXNlCj4gKyAgICAgKiB3ZSBpbml0aWFsaXNlIGl0IHVuY29uZGl0aW9u YWxseS4KCldoeSBkbyB3ZSBuZWVkIHRvIGluaXRpYWxpemUgYWx0cDJtIHVuY29uZGl0aW9uYWxs eT8gV2hlbiBhbHRwMm0gaXMgbm90IAp1c2VkIHdlIHdpbGwgYWxsb2NhdGUgbWVtb3J5IHRoYXQg aXMgbmV2ZXIgdXNlZC4KCkkgd291bGQgcHJlZmVyIHRvIHNlZSB0aGUgYWxsb2NhdGlvbiBvZiB0 aGUgbWVtb3J5IG9ubHkgaWYgdGhlIGRvbWFpbiAKd2lsbCBtYWtlIHVzZSBvZiBhbHRwMm0uCgo+ ICsgICAgICovCj4gKyAgICBwMm1fdGVhcmRvd25fYWx0cDJtKGQpOwo+ICsKPiArICAgIHAybV90 ZWFyZG93bl9ob3N0cDJtKGQpOwo+ICt9Cj4gKwo+ICtpbnQgcDJtX2luaXQoc3RydWN0IGRvbWFp biAqZCkKPiArewo+ICsgICAgaW50IHJjID0gMDsKPiArCj4gKyAgICByYyA9IHAybV9pbml0X2hv c3RwMm0oZCk7Cj4gKyAgICBpZiAoIHJjICkKPiArICAgICAgICByZXR1cm4gcmM7Cj4gKwo+ICsg ICAgcmMgPSBwMm1faW5pdF9hbHRwMm0oZCk7Cj4gKyAgICBpZiAoIHJjICkKPiArICAgICAgICBw Mm1fdGVhcmRvd25faG9zdHAybShkKTsKClRoaXMgY2FsbCBpcyBub3QgbmVjZXNzYXJ5LgoKPiAr Cj4gKyAgICByZXR1cm4gcmM7Cj4gK30KPiArCj4gICBpbnQgcmVsaW5xdWlzaF9wMm1fbWFwcGlu ZyhzdHJ1Y3QgZG9tYWluICpkKQo+ICAgewo+ICAgICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0g PSAmZC0+YXJjaC5wMm07Cj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZG9tYWlu LmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oCj4gaW5kZXggMjAzOWYxNi4uNmI5Nzcw ZiAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oCj4gKysrIGIveGVu L2luY2x1ZGUvYXNtLWFybS9kb21haW4uaAo+IEBAIC0yOSw2ICsyOSw5IEBAIGVudW0gZG9tYWlu X3R5cGUgewo+ICAgI2RlZmluZSBpc182NGJpdF9kb21haW4oZCkgKDApCj4gICAjZW5kaWYKPgo+ ICsjZGVmaW5lIE1BWF9BTFRQMk0gICAgICAxMCAvKiBhcmJpdHJhcnkgKi8KPiArI2RlZmluZSBJ TlZBTElEX0FMVFAyTSAgMHhmZmZmCgpJTUhPLCB0aGlzIHNob3VsZCBlaXRoZXIgYmUgcGFydCBv ZiBwMm0uaCBvciBhbHRwMm0uaAoKPiArCj4gICBleHRlcm4gaW50IGRvbTBfMTFfbWFwcGluZzsK PiAgICNkZWZpbmUgaXNfZG9tYWluX2RpcmVjdF9tYXBwZWQoZCkgKChkKSA9PSBoYXJkd2FyZV9k b21haW4gJiYgZG9tMF8xMV9tYXBwaW5nKQo+Cj4gQEAgLTEzMCw2ICsxMzMsOSBAQCBzdHJ1Y3Qg YXJjaF9kb21haW4KPgo+ICAgICAgIC8qIGFsdHAybTogYWxsb3cgbXVsdGlwbGUgY29waWVzIG9m IGhvc3QgcDJtICovCj4gICAgICAgYm9vbF90IGFsdHAybV9hY3RpdmU7Cj4gKyAgICBzdHJ1Y3Qg cDJtX2RvbWFpbiAqYWx0cDJtX3AybVtNQVhfQUxUUDJNXTsKPiArICAgIHNwaW5sb2NrX3QgYWx0 cDJtX2xvY2s7CgpQbGVhc2UgZG9jdW1lbnQgd2FzIHRoZSBsb2NrIGlzIHByb3RlY3RpbmcuCgo+ ICsgICAgdWludDY0X3QgYWx0cDJtX3Z0dGJyW01BWF9BTFRQMk1dOwo+ICAgfSAgX19jYWNoZWxp bmVfYWxpZ25lZDsKPgo+ICAgc3RydWN0IGFyY2hfdmNwdQo+IGRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20tYXJtL2h2bS9odm0uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vaHZtL2h2bS5oCj4g aW5kZXggOTZjNDU1Yy4uMjhkNTI5OCAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJt L2h2bS9odm0uaAo+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vaHZtL2h2bS5oCj4gQEAgLTE5 LDYgKzE5LDE4IEBACj4gICAjaWZuZGVmIF9fQVNNX0FSTV9IVk1fSFZNX0hfXwo+ICAgI2RlZmlu ZSBfX0FTTV9BUk1fSFZNX0hWTV9IX18KPgo+ICtzdHJ1Y3QgdnR0YnJfZGF0YSB7CgpUaGlzIHN0 cnVjdHVyZSBzaG91bGQgbm90IGJlIHBhcnQgb2YgaHZtLmggYnV0IHByb2Nlc3Nvci5oLiBBbHNv LCBJIAp3b3VsZCByZW5hbWUgaXQgdG8gc2ltcGx5IHZ0dGJyLgoKPiArICAgIHVuaW9uIHsKPiAr ICAgICAgICBzdHJ1Y3Qgewo+ICsgICAgICAgICAgICB1NjQgdnR0YnJfYmFkZHIgOjQwLCAvKiB2 YXJpYWJsZSByZXMwOiBmcm9tIDAtKHgtMSkgYml0ICovCgpQbGVhc2UgZHJvcCB2dHRicl8uIEFs c28sIHRoaXMgZmllbGQgaXMgNDggYml0cyBmb3IgQVJNdjggKHNlZSBBUk0gCkQ3LjIuMTAyIGlu IERESSAwNDg3QS5qKS4KCj4gKyAgICAgICAgICAgICAgICByZXMxICAgICAgICA6OCwKPiArICAg ICAgICAgICAgICAgIHZ0dGJyX3ZtaWQgIDo4LAoKUGxlYXNlIGRyb3AgdnR0YnJfLgoKPiArICAg ICAgICAgICAgICAgIHJlczIgICAgICAgIDo4Owo+ICsgICAgICAgIH07Cj4gKyAgICAgICAgdTY0 IHZ0dGJyOwo+ICsgICAgfTsKPiArfTsKPiArCj4gICBzdHJ1Y3QgaHZtX2Z1bmN0aW9uX3RhYmxl IHsKPiAgICAgICBjaGFyICpuYW1lOwo+Cj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1h cm0vcDJtLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCj4gaW5kZXggMGQxZTYxZS4uYTc4 ZDU0NyAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCj4gKysrIGIveGVu L2luY2x1ZGUvYXNtLWFybS9wMm0uaAo+IEBAIC04LDYgKzgsOSBAQAo+ICAgI2luY2x1ZGUgPHhl bi9wMm0tY29tbW9uLmg+Cj4gICAjaW5jbHVkZSA8cHVibGljL21lbW9yeS5oPgo+Cj4gKyNpbmNs dWRlIDxhc20vYXRvbWljLmg+Cj4gKyNpbmNsdWRlIDxhc20vaHZtL2h2bS5oPgoKQVJNIGhhcyBu b3QgY29uY2VwdCBvZiBIVk0gbm9yIFBWLiBTbyBJIHdvdWxkIHByZWZlciB0byBzZWUgYSB2ZXJ5 IApsaW1pdGVkIHVzYWdlIG9mIGh2bS5oCgo+ICsKPiAgICNkZWZpbmUgcGFkZHJfYml0cyBQQURE Ul9CSVRTCj4KPiAgIC8qIEhvbGRzIHRoZSBiaXQgc2l6ZSBvZiBJUEFzIGluIHAybSB0YWJsZXMu ICAqLwo+IEBAIC0xNyw2ICsyMCwxMSBAQCBzdHJ1Y3QgZG9tYWluOwo+Cj4gICBleHRlcm4gdm9p ZCBtZW1vcnlfdHlwZV9jaGFuZ2VkKHN0cnVjdCBkb21haW4gKik7Cj4KPiArdHlwZWRlZiBlbnVt IHsKPiArICAgIHAybV9ob3N0LAo+ICsgICAgcDJtX2FsdGVybmF0ZSwKPiArfSBwMm1fY2xhc3Nf dDsKPiArCj4gICAvKiBQZXItcDJtLXRhYmxlIHN0YXRlICovCj4gICBzdHJ1Y3QgcDJtX2RvbWFp biB7Cj4gICAgICAgLyogTG9jayB0aGF0IHByb3RlY3RzIHVwZGF0ZXMgdG8gdGhlIHAybSAqLwo+ IEBAIC02Niw2ICs3NCwxOCBAQCBzdHJ1Y3QgcDJtX2RvbWFpbiB7Cj4gICAgICAgLyogUmFkaXgg dHJlZSB0byBzdG9yZSB0aGUgcDJtX2FjY2Vzc190IHNldHRpbmdzIGFzIHRoZSBwdGUncyBkb24n dCBoYXZlCj4gICAgICAgICogZW5vdWdoIGF2YWlsYWJsZSBiaXRzIHRvIHN0b3JlIHRoaXMgaW5m b3JtYXRpb24uICovCj4gICAgICAgc3RydWN0IHJhZGl4X3RyZWVfcm9vdCBtZW1fYWNjZXNzX3Nl dHRpbmdzOwo+ICsKPiArICAgIC8qIEFsdGVybmF0ZSBwMm06IGNvdW50IG9mIHZjcHUncyBjdXJy ZW50bHkgdXNpbmcgdGhpcyBwMm0uICovCj4gKyAgICBhdG9taWNfdCBhY3RpdmVfdmNwdXM7Cj4g Kwo+ICsgICAgLyogQ2hvb3NlIGJldHdlZW46IGhvc3QvYWx0ZXJuYXRlICovCj4gKyAgICBwMm1f Y2xhc3NfdCBwMm1fY2xhc3M7CgpJcyB0aGVyZSBhbnkgcmVhc29uIHRvIGhhdmUgdGhpcyBmaWVs ZD8gSXQgaXMgc2V0IGJ1dCBuZXZlciB1c2VkLgoKPiArCj4gKyAgICAvKiBCYWNrIHBvaW50ZXIg dG8gZG9tYWluICovCj4gKyAgICBzdHJ1Y3QgZG9tYWluICpkb21haW47CgpBRkFJQ1QsIHRoZSBv bmx5IHVzYWdlIG9mIHRoaXMgZmllbGQgaXMgaW4gcDJtX2FsdHAybV9sYXp5X2NvcHkgd2hlcmUg CnlvdSBoYXZlIGRpcmVjdCBhY2Nlc3MgdG8gdGhlIGRvbWFpbi4gU28gdGhpcyBjb3VsZCBiZSBk cm9wcGVkLgoKPiArCj4gKyAgICAvKiBWVFRCUiBpbmZvcm1hdGlvbiAqLwo+ICsgICAgc3RydWN0 IHZ0dGJyX2RhdGEgdnR0YnI7Cj4gICB9Owo+Cj4gICAvKiBMaXN0IG9mIHBvc3NpYmxlIHR5cGUg Zm9yIGVhY2ggcGFnZSBpbiB0aGUgcDJtIGVudHJ5Lgo+CgpSZWdhcmRzLAoKLS0gCkp1bGllbiBH cmFsbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==