From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [RFC PATCH 06/10] ARM: vGIC: move config from irq_rank to struct pending_irq Date: Thu, 4 May 2017 17:55:37 +0100 Message-ID: <23a47d67-7cee-8557-f10c-7ef52ad34fe8@arm.com> References: <20170504153123.1204-1-andre.przywara@arm.com> <20170504153123.1204-7-andre.przywara@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d6K2Y-0005cQ-Bb for xen-devel@lists.xenproject.org; Thu, 04 May 2017 16:55:42 +0000 In-Reply-To: <20170504153123.1204-7-andre.przywara@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Andre Przywara , Stefano Stabellini Cc: xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org SGkgQW5kcmUsCgpPbiAwNC8wNS8xNyAxNjozMSwgQW5kcmUgUHJ6eXdhcmEgd3JvdGU6Cj4gQ3Vy cmVudGx5IHdlIHN0b3JlIHRoZSBpbnRlcnJ1cHQgdHlwZSBjb25maWd1cmF0aW9uIChsZXZlbCBv ciBlZGdlCj4gdHJpZ2dlcmVkKSBpbiB0aGUgcmFuayBzdHJ1Y3R1cmUuIE1vdmUgdGhpcyB2YWx1 ZSBpbnRvIHN0cnVjdCBwZW5kaW5nX2lycS4KPiBXZSBqdXN0IG5lZWQgb25lIGJpdCAoZWRnZSBv ciBsZXZlbCksIHNvIHVzZSBvbmUgb2YgdGhlIHN0YXR1cyBiaXRzLgo+Cj4gU2lnbmVkLW9mZi1i eTogQW5kcmUgUHJ6eXdhcmEgPGFuZHJlLnByenl3YXJhQGFybS5jb20+Cj4gLS0tCj4gIHhlbi9h cmNoL2FybS92Z2ljLXYyLmMgICAgIHwgMjkgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0K PiAgeGVuL2FyY2gvYXJtL3ZnaWMtdjMuYyAgICAgfCAzMSArKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tCj4gIHhlbi9hcmNoL2FybS92Z2ljLmMgICAgICAgIHwgMzkgKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCj4gIHhlbi9pbmNsdWRlL2FzbS1hcm0vdmdpYy5o IHwgIDcgKysrKysrLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDU4IGRl bGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljLXYyLmMgYi94ZW4v YXJjaC9hcm0vdmdpYy12Mi5jCj4gaW5kZXggNWM1OWZiNC4uNzk1MTczYyAxMDA2NDQKPiAtLS0g YS94ZW4vYXJjaC9hcm0vdmdpYy12Mi5jCj4gKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjIuYwo+ IEBAIC0yNzgsMjAgKzI3OCwxMCBAQCBzdGF0aWMgaW50IHZnaWNfdjJfZGlzdHJfbW1pb19yZWFk KHN0cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywKPiAgICAgICAgICBnb3RvIHJlYWRf cmVzZXJ2ZWQ7Cj4KPiAgICAgIGNhc2UgVlJBTkdFMzIoR0lDRF9JQ0ZHUiwgR0lDRF9JQ0ZHUk4p Ogo+IC0gICAgewo+IC0gICAgICAgIHVpbnQzMl90IGljZmdyOwo+IC0KPiAgICAgICAgICBpZiAo IGRhYnQuc2l6ZSAhPSBEQUJUX1dPUkQgKSBnb3RvIGJhZF93aWR0aDsKPiAtICAgICAgICByYW5r ID0gdmdpY19yYW5rX29mZnNldCh2LCAyLCBnaWNkX3JlZyAtIEdJQ0RfSUNGR1IsIERBQlRfV09S RCk7Cj4gLSAgICAgICAgaWYgKCByYW5rID09IE5VTEwpIGdvdG8gcmVhZF9hc196ZXJvOwo+IC0g ICAgICAgIHZnaWNfbG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsKPiAtICAgICAgICBpY2ZnciA9 IHJhbmstPmljZmdbUkVHX1JBTktfSU5ERVgoMiwgZ2ljZF9yZWcgLSBHSUNEX0lDRkdSLCBEQUJU X1dPUkQpXTsKPiAtICAgICAgICB2Z2ljX3VubG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsKPiAt Cj4gLSAgICAgICAgKnIgPSB2Z2ljX3JlZzMyX2V4dHJhY3QoaWNmZ3IsIGluZm8pOwo+IC0KPiAr ICAgICAgICBpcnEgPSAoZ2ljZF9yZWcgLSBHSUNEX0lDRkdSKSAqIDQ7CgpUaGlzIHdvdWxkIGJl IG5pY2VyIHRvIGhhdmUgdGhhdCBoYW5kbGUgZGlyZWN0bHkgaW4gCmdhdGhlcl9pcnFfaW5mb19j b25maWcgcmF0aGVyIHRoYW4gb3Blbi1jb2RpbmcgZXZlcnl3aGVyZS4gQWxzbyBpdCAKYXZvaWRz IHRoaXMgY29uZnVzaW9uIG9mIHdoYXQgaXJxIGFjdHVhbGx5IG1lYW5pbmcgaW4gdGhpcyBjb250 ZXh0LgoKSSB3YXMgYWxzbyBleHBlY3Rpbmcgc29tZSBjaGVjayBvbiB3aGV0aGVyIHRoZSBpbnRl cnJ1cHRzIGlzIHZhbGlkIGZvciAKdGhlIHZHSUMuCgoKPiArICAgICAgICAqciA9IHZnaWNfcmVn MzJfZXh0cmFjdChnYXRoZXJfaXJxX2luZm9fY29uZmlnKHYsIGlycSksIGluZm8pOwo+ICAgICAg ICAgIHJldHVybiAxOwo+IC0gICAgfQo+Cj4gICAgICBjYXNlIFZSQU5HRTMyKDB4RDAwLCAweERG Qyk6Cj4gICAgICAgICAgZ290byByZWFkX2ltcGxfZGVmaW5lZDsKPiBAQCAtNTM0LDE1ICs1MjQs MTYgQEAgc3RhdGljIGludCB2Z2ljX3YyX2Rpc3RyX21taW9fd3JpdGUoc3RydWN0IHZjcHUgKnYs IG1taW9faW5mb190ICppbmZvLAo+ICAgICAgICAgIGdvdG8gd3JpdGVfaWdub3JlXzMyOwo+Cj4g ICAgICBjYXNlIFZSQU5HRTMyKEdJQ0RfSUNGR1IyLCBHSUNEX0lDRkdSTik6IC8qIFNQSXMgKi8K PiArICAgIHsKPiArICAgICAgICB1aW50MzJfdCBpY2ZncjsKPiArCj4gICAgICAgICAgaWYgKCBk YWJ0LnNpemUgIT0gREFCVF9XT1JEICkgZ290byBiYWRfd2lkdGg7Cj4gLSAgICAgICAgcmFuayA9 IHZnaWNfcmFua19vZmZzZXQodiwgMiwgZ2ljZF9yZWcgLSBHSUNEX0lDRkdSLCBEQUJUX1dPUkQp Owo+IC0gICAgICAgIGlmICggcmFuayA9PSBOVUxMKSBnb3RvIHdyaXRlX2lnbm9yZTsKPiAtICAg ICAgICB2Z2ljX2xvY2tfcmFuayh2LCByYW5rLCBmbGFncyk7Cj4gLSAgICAgICAgdmdpY19yZWcz Ml91cGRhdGUoJnJhbmstPmljZmdbUkVHX1JBTktfSU5ERVgoMiwgZ2ljZF9yZWcgLSBHSUNEX0lD RkdSLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIERBQlRfV09SRCldLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgIHIsIGluZm8pOwo+ IC0gICAgICAgIHZnaWNfdW5sb2NrX3JhbmsodiwgcmFuaywgZmxhZ3MpOwo+ICsgICAgICAgIGly cSA9IChnaWNkX3JlZyAtIEdJQ0RfSUNGR1IpICogNDsKCkRpdHRvIGZvciB0aGUgaXJxIGFuZCB0 aGUgY2hlY2suCgo+ICsgICAgICAgIGljZmdyID0gZ2F0aGVyX2lycV9pbmZvX2NvbmZpZyh2LCBp cnEpOwo+ICsgICAgICAgIHZnaWNfcmVnMzJfdXBkYXRlKCZpY2ZnciwgciwgaW5mbyk7Cj4gKyAg ICAgICAgc2NhdHRlcl9pcnFfaW5mb19jb25maWcodiwgaXJxLCBpY2Zncik7Cj4gICAgICAgICAg cmV0dXJuIDE7Cj4gKyAgICB9Cj4KPiAgICAgIGNhc2UgVlJBTkdFMzIoMHhEMDAsIDB4REZDKToK PiAgICAgICAgICBnb3RvIHdyaXRlX2ltcGxfZGVmaW5lZDsKPiBkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gvYXJtL3ZnaWMtdjMuYyBiL3hlbi9hcmNoL2FybS92Z2ljLXYzLmMKPiBpbmRleCAxMGRiOTM5 Li43OTg5OTg5IDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL2FybS92Z2ljLXYzLmMKPiArKysgYi94 ZW4vYXJjaC9hcm0vdmdpYy12My5jCj4gQEAgLTUyMSwyMCArNTIxLDExIEBAIHN0YXRpYyBpbnQg X192Z2ljX3YzX2Rpc3RyX2NvbW1vbl9tbWlvX3JlYWQoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0 IHZjcHUgKnYsCj4gICAgICAgICAgcmV0dXJuIDE7Cj4KPiAgICAgIGNhc2UgVlJBTkdFMzIoR0lD RF9JQ0ZHUiwgR0lDRF9JQ0ZHUk4pOgo+IC0gICAgewo+IC0gICAgICAgIHVpbnQzMl90IGljZmdy Owo+IC0KPiAgICAgICAgICBpZiAoIGRhYnQuc2l6ZSAhPSBEQUJUX1dPUkQgKSBnb3RvIGJhZF93 aWR0aDsKPiAtICAgICAgICByYW5rID0gdmdpY19yYW5rX29mZnNldCh2LCAyLCByZWcgLSBHSUNE X0lDRkdSLCBEQUJUX1dPUkQpOwo+IC0gICAgICAgIGlmICggcmFuayA9PSBOVUxMICkgZ290byBy ZWFkX2FzX3plcm87Cj4gLSAgICAgICAgdmdpY19sb2NrX3JhbmsodiwgcmFuaywgZmxhZ3MpOwo+ IC0gICAgICAgIGljZmdyID0gcmFuay0+aWNmZ1tSRUdfUkFOS19JTkRFWCgyLCByZWcgLSBHSUNE X0lDRkdSLCBEQUJUX1dPUkQpXTsKPiAtICAgICAgICB2Z2ljX3VubG9ja19yYW5rKHYsIHJhbmss IGZsYWdzKTsKPiAtCj4gLSAgICAgICAgKnIgPSB2Z2ljX3JlZzMyX2V4dHJhY3QoaWNmZ3IsIGlu Zm8pOwo+IC0KPiArICAgICAgICBpcnEgPSAocmVnIC0gR0lDRF9JUFJJT1JJVFlSKSAqIDQ7Cj4g KyAgICAgICAgaWYgKCBpcnEgPj0gdi0+ZG9tYWluLT5hcmNoLnZnaWMubnJfc3BpcyArIDMyICkg Z290byByZWFkX2FzX3plcm87CgpUaGlzIHNob3VsZCByZWFsbHkgYmUgYW4gaGVscGVyLgoKPiAr ICAgICAgICAqciA9IHZnaWNfcmVnMzJfZXh0cmFjdChnYXRoZXJfaXJxX2luZm9fY29uZmlnKHYs IGlycSksIGluZm8pOwo+ICAgICAgICAgIHJldHVybiAxOwo+IC0gICAgfQo+Cj4gICAgICBkZWZh dWx0Ogo+ICAgICAgICAgIHByaW50ayhYRU5MT0dfR19FUlIKPiBAQCAtNjM2LDE3ICs2MjcsMTkg QEAgc3RhdGljIGludCBfX3ZnaWNfdjNfZGlzdHJfY29tbW9uX21taW9fd3JpdGUoY29uc3QgY2hh ciAqbmFtZSwgc3RydWN0IHZjcHUgKnYsCj4gICAgICAgICAgZ290byB3cml0ZV9pZ25vcmVfMzI7 Cj4KPiAgICAgIGNhc2UgVlJBTkdFMzIoR0lDRF9JQ0ZHUiArIDQsIEdJQ0RfSUNGR1JOKTogLyog UFBJICsgU1BJcyAqLwo+ICsgICAgewo+ICsgICAgICAgIHVpbnQzMl90IGljZmdyOwo+ICsKPiAg ICAgICAgICAvKiBJQ0ZHUjEgZm9yIFBQSSdzLCB3aGljaCBpcyBpbXBsZW1lbnRhdGlvbiBkZWZp bmVkCj4gICAgICAgICAgICAgaWYgSUNGR1IxIGlzIHByb2dyYW1tYWJsZSBvciBub3QuIFdlIGNo b3NlIHRvIHByb2dyYW0gKi8KPiAgICAgICAgICBpZiAoIGRhYnQuc2l6ZSAhPSBEQUJUX1dPUkQg KSBnb3RvIGJhZF93aWR0aDsKPiAtICAgICAgICByYW5rID0gdmdpY19yYW5rX29mZnNldCh2LCAy LCByZWcgLSBHSUNEX0lDRkdSLCBEQUJUX1dPUkQpOwo+IC0gICAgICAgIGlmICggcmFuayA9PSBO VUxMICkgZ290byB3cml0ZV9pZ25vcmU7Cj4gLSAgICAgICAgdmdpY19sb2NrX3JhbmsodiwgcmFu aywgZmxhZ3MpOwo+IC0gICAgICAgIHZnaWNfcmVnMzJfdXBkYXRlKCZyYW5rLT5pY2ZnW1JFR19S QU5LX0lOREVYKDIsIHJlZyAtIEdJQ0RfSUNGR1IsCj4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREFCVF9XT1JEKV0sCj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgciwgaW5mbyk7Cj4gLSAgICAgICAgdmdpY191bmxvY2tfcmFuayh2LCBy YW5rLCBmbGFncyk7Cj4gKyAgICAgICAgaXJxID0gKHJlZyAtIEdJQ0RfSUNGR1IpICogNDsKPiAr ICAgICAgICBpZiAoIGlycSA+PSB2LT5kb21haW4tPmFyY2gudmdpYy5ucl9zcGlzICsgMzIgKSBn b3RvIHdyaXRlX2lnbm9yZTsKPiArICAgICAgICBpY2ZnciA9IGdhdGhlcl9pcnFfaW5mb19jb25m aWcodiwgaXJxKTsKPiArICAgICAgICB2Z2ljX3JlZzMyX3VwZGF0ZSgmaWNmZ3IsIHIsIGluZm8p Owo+ICsgICAgICAgIHNjYXR0ZXJfaXJxX2luZm9fY29uZmlnKHYsIGlycSwgaWNmZ3IpOwo+ICAg ICAgICAgIHJldHVybiAxOwo+ICsgICAgfQo+Cj4gICAgICBkZWZhdWx0Ogo+ICAgICAgICAgIHBy aW50ayhYRU5MT0dfR19FUlIKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZnaWMuYyBiL3hl bi9hcmNoL2FybS92Z2ljLmMKPiBpbmRleCA2OGVlZjQ3Li4wMmMxZDEyIDEwMDY0NAo+IC0tLSBh L3hlbi9hcmNoL2FybS92Z2ljLmMKPiArKysgYi94ZW4vYXJjaC9hcm0vdmdpYy5jCj4gQEAgLTIz NSw2ICsyMzUsMTkgQEAgc3RhdGljIHZvaWQgc2V0X3ByaW9yaXR5KHN0cnVjdCBwZW5kaW5nX2ly cSAqcCwgdWludDhfdCBwcmlvKQo+ICAgICAgcC0+bmV3X3ByaW9yaXR5ID0gcHJpbzsKPiAgfQo+ Cj4gK3Vuc2lnbmVkIGludCBleHRyYWN0X2NvbmZpZyhzdHJ1Y3QgcGVuZGluZ19pcnEgKnApCgpX aHkgdGhpcyBpcyBleHBvcnRlZD8gQWxzbyBuYW1pbmcuCgo+ICt7Cj4gKyAgICByZXR1cm4gdGVz dF9iaXQoR0lDX0lSUV9HVUVTVF9FREdFLCAmcC0+c3RhdHVzKSA/IDIgOiAwOwoKUGxlYXNlIGRv Y3VtZW50IDAsIDIuIExpa2VseSB3aXRoIGEgc29tZSBkZWZpbmUuCgo+ICt9Cj4gKwo+ICtzdGF0 aWMgdm9pZCBzZXRfY29uZmlnKHN0cnVjdCBwZW5kaW5nX2lycSAqcCwgdW5zaWduZWQgaW50IGNv bmZpZykKCk5hbWluZy4KCj4gK3sKPiArICAgIGlmICggY29uZmlnIDwgMiApCgpEaXR0by4KCj4g KyAgICAgICAgY2xlYXJfYml0KEdJQ19JUlFfR1VFU1RfRURHRSwgJnAtPnN0YXR1cyk7Cj4gKyAg ICBlbHNlCj4gKyAgICAgICAgc2V0X2JpdChHSUNfSVJRX0dVRVNUX0VER0UsICZwLT5zdGF0dXMp Owo+ICt9Cj4gKwo+Cj4gICNkZWZpbmUgREVGSU5FX0dBVEhFUl9JUlFfSU5GTyhuYW1lLCBnZXRf dmFsLCBzaGlmdCkgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICB1aW50MzJfdCBnYXRoZXJf aXJxX2luZm9fIyNuYW1lKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgaXJxKSAgICAgICAg ICAgIFwKPiBAQCAtMjY3LDYgKzI4MCw4IEBAIHZvaWQgc2NhdHRlcl9pcnFfaW5mb18jI25hbWUo c3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBpcnEsICAgICAgICAgICAgICAgXAo+ICAvKiBn cmVwIGZvZGRlcjogZ2F0aGVyX2lycV9pbmZvX3ByaW9yaXR5LCBzY2F0dGVyX2lycV9pbmZvX3By aW9yaXR5IGJlbG93ICovCj4gIERFRklORV9HQVRIRVJfSVJRX0lORk8ocHJpb3JpdHksIGV4dHJh Y3RfcHJpb3JpdHksIDgpCj4gIERFRklORV9TQ0FUVEVSX0lSUV9JTkZPKHByaW9yaXR5LCBzZXRf cHJpb3JpdHksIDgpCj4gK0RFRklORV9HQVRIRVJfSVJRX0lORk8oY29uZmlnLCBleHRyYWN0X2Nv bmZpZywgMikKPiArREVGSU5FX1NDQVRURVJfSVJRX0lORk8oY29uZmlnLCBzZXRfY29uZmlnLCAy KQo+Cj4gIGJvb2wgdmdpY19taWdyYXRlX2lycShzdHJ1Y3QgdmNwdSAqb2xkLCBzdHJ1Y3QgdmNw dSAqbmV3LCB1bnNpZ25lZCBpbnQgaXJxKQo+ICB7Cj4gQEAgLTM1NywyNyArMzcyLDExIEBAIHZv aWQgdmdpY19kaXNhYmxlX2lycXMoc3RydWN0IHZjcHUgKnYsIHVpbnQzMl90IHIsIGludCBuKQo+ ICAgICAgfQo+ICB9Cj4KPiAtI2RlZmluZSBWR0lDX0lDRkdfTUFTSyhpbnRyKSAoMSA8PCAoKDIg KiAoKGludHIpICUgMTYpKSArIDEpKQo+IC0KPiAtLyogVGhlIGZ1bmN0aW9uIHNob3VsZCBiZSBj YWxsZWQgd2l0aCB0aGUgcmFuayBsb2NrIHRha2VuICovCj4gLXN0YXRpYyBpbmxpbmUgdW5zaWdu ZWQgaW50IHZnaWNfZ2V0X3ZpcnFfdHlwZShzdHJ1Y3QgdmNwdSAqdiwgaW50IG4sIGludCBpbmRl eCkKPiAtewo+IC0gICAgc3RydWN0IHZnaWNfaXJxX3JhbmsgKnIgPSB2Z2ljX2dldF9yYW5rKHYs IG4pOwo+IC0gICAgdWludDMyX3QgdHIgPSByLT5pY2ZnW2luZGV4ID4+IDRdOwo+IC0KPiAtICAg IEFTU0VSVChzcGluX2lzX2xvY2tlZCgmci0+bG9jaykpOwo+IC0KPiAtICAgIGlmICggdHIgJiBW R0lDX0lDRkdfTUFTSyhpbmRleCkgKQo+IC0gICAgICAgIHJldHVybiBJUlFfVFlQRV9FREdFX1JJ U0lORzsKPiAtICAgIGVsc2UKPiAtICAgICAgICByZXR1cm4gSVJRX1RZUEVfTEVWRUxfSElHSDsK PiAtfQo+IC0KPiAgdm9pZCB2Z2ljX2VuYWJsZV9pcnFzKHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJf dCByLCBpbnQgbikKPiAgewo+ICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBtYXNrID0gcjsKPiAg ICAgIHN0cnVjdCBwZW5kaW5nX2lycSAqcDsKPiAtICAgIHVuc2lnbmVkIGludCBpcnE7Cj4gKyAg ICB1bnNpZ25lZCBpbnQgaXJxLCBpbnRfdHlwZTsKPiAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7 Cj4gICAgICBpbnQgaSA9IDA7Cj4gICAgICBzdHJ1Y3QgdmNwdSAqdl90YXJnZXQ7Cj4gQEAgLTM5 Miw2ICszOTEsOCBAQCB2b2lkIHZnaWNfZW5hYmxlX2lycXMoc3RydWN0IHZjcHUgKnYsIHVpbnQz Ml90IHIsIGludCBuKQo+ICAgICAgICAgIHNwaW5fbG9jaygmcC0+bG9jayk7Cj4KPiAgICAgICAg ICBzZXRfYml0KEdJQ19JUlFfR1VFU1RfRU5BQkxFRCwgJnAtPnN0YXR1cyk7Cj4gKyAgICAgICAg aW50X3R5cGUgPSB0ZXN0X2JpdChHSUNfSVJRX0dVRVNUX0VER0UsICZwLT5zdGF0dXMpID8KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSUV9UWVBFX0VER0VfUklTSU5HIDogSVJRX1RZ UEVfTEVWRUxfSElHSDsKPgo+ICAgICAgICAgIGlmICggIWxpc3RfZW1wdHkoJnAtPmluZmxpZ2h0 KSAmJiAhdGVzdF9iaXQoR0lDX0lSUV9HVUVTVF9WSVNJQkxFLCAmcC0+c3RhdHVzKSApCj4gICAg ICAgICAgICAgIGdpY19yYWlzZV9ndWVzdF9pcnEodl90YXJnZXQsIHApOwo+IEBAIC0zOTksMTUg KzQwMCwxNSBAQCB2b2lkIHZnaWNfZW5hYmxlX2lycXMoc3RydWN0IHZjcHUgKnYsIHVpbnQzMl90 IHIsIGludCBuKQo+ICAgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZfdGFyZ2V0LT5h cmNoLnZnaWMubG9jaywgZmxhZ3MpOwo+ICAgICAgICAgIGlmICggcC0+ZGVzYyAhPSBOVUxMICkK PiAgICAgICAgICB7Cj4gLSAgICAgICAgICAgIGlycV9zZXRfYWZmaW5pdHkocC0+ZGVzYywgY3B1 bWFza19vZih2X3RhcmdldC0+cHJvY2Vzc29yKSk7Cj4gICAgICAgICAgICAgIHNwaW5fbG9ja19p cnFzYXZlKCZwLT5kZXNjLT5sb2NrLCBmbGFncyk7Cj4gKyAgICAgICAgICAgIGlycV9zZXRfYWZm aW5pdHkocC0+ZGVzYywgY3B1bWFza19vZih2X3RhcmdldC0+cHJvY2Vzc29yKSk7Cj4gICAgICAg ICAgICAgIC8qCj4gICAgICAgICAgICAgICAqIFRoZSBpcnEgY2Fubm90IGJlIGEgUFBJLCB3ZSBv bmx5IHN1cHBvcnQgZGVsaXZlcnkgb2YgU1BJcwo+ICAgICAgICAgICAgICAgKiB0byBndWVzdHMu Cj4gICAgICAgICAgICAgICAqLwo+ICAgICAgICAgICAgICBBU1NFUlQoaXJxID49IDMyKTsKPiAg ICAgICAgICAgICAgaWYgKCBpcnFfdHlwZV9zZXRfYnlfZG9tYWluKGQpICkKPiAtICAgICAgICAg ICAgICAgIGdpY19zZXRfaXJxX3R5cGUocC0+ZGVzYywgdmdpY19nZXRfdmlycV90eXBlKHYsIG4s IGkpKTsKPiArICAgICAgICAgICAgICAgIGdpY19zZXRfaXJxX3R5cGUocC0+ZGVzYywgaW50X3R5 cGUpOwo+ICAgICAgICAgICAgICBwLT5kZXNjLT5oYW5kbGVyLT5lbmFibGUocC0+ZGVzYyk7Cj4g ICAgICAgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnAtPmRlc2MtPmxvY2ssIGZsYWdz KTsKPiAgICAgICAgICB9Cj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vdmdpYy5o IGIveGVuL2luY2x1ZGUvYXNtLWFybS92Z2ljLmgKPiBpbmRleCAzOGE1ZTc2Li45MzFhNjcyIDEw MDY0NAo+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vdmdpYy5oCj4gKysrIGIveGVuL2luY2x1 ZGUvYXNtLWFybS92Z2ljLmgKPiBAQCAtNjAsMTIgKzYwLDE1IEBAIHN0cnVjdCBwZW5kaW5nX2ly cQo+ICAgICAgICogdmNwdSB3aGlsZSBpdCBpcyBzdGlsbCBpbmZsaWdodCBhbmQgb24gYW4gR0lD SF9MUiByZWdpc3RlciBvbiB0aGUKPiAgICAgICAqIG9sZCB2Y3B1Lgo+ICAgICAgICoKPiArICAg ICAqIEdJQ19JUlFfR1VFU1RfRURHRTogdGhlIElSUSBpcyBhbiBlZGdlIHRyaWdnZXJlZCBpbnRl cnJ1cHQuCgpBbHNvLCBleHBsYWluIHRoYXQgYnkgZGVmYXVsdCB0aGUgaW50ZXJydXB0IHdpbGwg YmUgbGV2ZWwuCgo+ICsgICAgICoKPiAgICAgICAqLwo+ICAjZGVmaW5lIEdJQ19JUlFfR1VFU1Rf UVVFVUVEICAgMAo+ICAjZGVmaW5lIEdJQ19JUlFfR1VFU1RfQUNUSVZFICAgMQo+ICAjZGVmaW5l IEdJQ19JUlFfR1VFU1RfVklTSUJMRSAgMgo+ICAjZGVmaW5lIEdJQ19JUlFfR1VFU1RfRU5BQkxF RCAgMwo+ICAjZGVmaW5lIEdJQ19JUlFfR1VFU1RfTUlHUkFUSU5HICAgNAo+ICsjZGVmaW5lIEdJ Q19JUlFfR1VFU1RfRURHRSAgICAgNQo+ICAgICAgdW5zaWduZWQgbG9uZyBzdGF0dXM7Cj4gICAg ICBzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2M7IC8qIG9ubHkgc2V0IGl0IHRoZSBpcnEgY29ycmVzcG9u ZHMgdG8gYSBwaHlzaWNhbCBpcnEgKi8KPiAgICAgIHVuc2lnbmVkIGludCBpcnE7Cj4gQEAgLTEw Miw3ICsxMDUsNiBAQCBzdHJ1Y3QgdmdpY19pcnFfcmFuayB7Cj4gICAgICB1aW50OF90IGluZGV4 Owo+Cj4gICAgICB1aW50MzJfdCBpZW5hYmxlOwo+IC0gICAgdWludDMyX3QgaWNmZ1syXTsKPgo+ ICAgICAgLyoKPiAgICAgICAqIEl0J3MgbW9yZSBjb252ZW5pZW50IHRvIHN0b3JlIGEgdGFyZ2V0 IFZDUFUgcGVyIHZJUlEKPiBAQCAtMTczLDYgKzE3NSw5IEBAIHN0YXRpYyBpbmxpbmUgaW50IFJF R19SQU5LX05SKGludCBiLCB1aW50MzJfdCBuKQo+ICB1aW50MzJfdCBnYXRoZXJfaXJxX2luZm9f cHJpb3JpdHkoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBpcnEpOwo+ICB2b2lkIHNjYXR0 ZXJfaXJxX2luZm9fcHJpb3JpdHkoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBpcnEsCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdmFsdWUpOwo+ICt1 aW50MzJfdCBnYXRoZXJfaXJxX2luZm9fY29uZmlnKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBp bnQgaXJxKTsKPiArdm9pZCBzY2F0dGVyX2lycV9pbmZvX2NvbmZpZyhzdHJ1Y3QgdmNwdSAqdiwg dW5zaWduZWQgaW50IGlycSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgdmFsdWUpOwo+Cj4gICNkZWZpbmUgVkdJQ19SRUdfTUFTSyhzaXplKSAoKH4wVUwpID4+ IChCSVRTX1BFUl9MT05HIC0gKCgxIDw8IChzaXplKSkgKiA4KSkpCj4KPgoKQ2hlZXJzLAoKLS0g Ckp1bGllbiBHcmFsbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw czovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==