From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: Re: [PATCH v1b 1/9] x86/IRQ: deal with move-in-progress state in fixup_irqs() Date: Fri, 03 May 2019 08:10:37 -0600 Message-ID: <5CCC4BDD020000780022BA05@prv1-mh.provo.novell.com> References: <5CC6DD090200007800229E80@prv1-mh.provo.novell.com> <5CC71ADE020000780022A1B7@prv1-mh.provo.novell.com> <20190503091905.2levs75dxln4rhiw@Air-de-Roger> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hMYtb-0004k7-Jh for xen-devel@lists.xenproject.org; Fri, 03 May 2019 14:10:39 +0000 In-Reply-To: <20190503091905.2levs75dxln4rhiw@Air-de-Roger> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Roger Pau Monne Cc: Andrew Cooper , Wei Liu , xen-devel , Igor Druzhinin List-Id: xen-devel@lists.xenproject.org Pj4+IE9uIDAzLjA1LjE5IGF0IDExOjE5LCA8cm9nZXIucGF1QGNpdHJpeC5jb20+IHdyb3RlOgo+ IE9uIE1vbiwgQXByIDI5LCAyMDE5IGF0IDA5OjQwOjE0QU0gLTA2MDAsIEphbiBCZXVsaWNoIHdy b3RlOgo+PiAtLS0gdW5zdGFibGUub3JpZy94ZW4vYXJjaC94ODYvaXJxLmMJCj4+ICsrKyB1bnN0 YWJsZS94ZW4vYXJjaC94ODYvaXJxLmMKPj4gQEAgLTI0Miw2ICsyNDIsMjAgQEAgdm9pZCBkZXN0 cm95X2lycSh1bnNpZ25lZCBpbnQgaXJxKQo+PiAgICAgIHhmcmVlKGFjdGlvbik7Cj4+ICB9Cj4+ ICAKPj4gK3N0YXRpYyB2b2lkIHJlbGVhc2Vfb2xkX3ZlYyhzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2Mp Cj4+ICt7Cj4+ICsgICAgdW5zaWduZWQgaW50IHZlY3RvciA9IGRlc2MtPmFyY2gub2xkX3ZlY3Rv cjsKPj4gKwo+PiArICAgIGRlc2MtPmFyY2gub2xkX3ZlY3RvciA9IElSUV9WRUNUT1JfVU5BU1NJ R05FRDsKPj4gKyAgICBjcHVtYXNrX2NsZWFyKGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrKTsKPj4g Kwo+PiArICAgIGlmICggZGVzYy0+YXJjaC51c2VkX3ZlY3RvcnMgKQo+IAo+IFdvdWxkbid0IGl0 IGJlIGJldHRlciB0byBjbGVhbiB0aGUgYml0bWFwIHdoZW4gdmVjdG9yICE9Cj4gSVJRX1ZFQ1RP Ul9VTkFTU0lHTkVEPwoKTm8gY29kZSBwYXRoIGRvZXMgLyBzaG91bGQgY2FsbCBpbnRvIGhlcmUg d2l0aG91dCB0aGUgbmVlZCB0bwphY3R1YWxseSByZWxlYXNlIHRoZSBwcmV2aW91cyB2ZWN0b3Iu Cgo+IEkgaGF2ZW4ndCBjaGVja2VkIGFsbCB0aGUgY2FsbGVycywgYnV0IEkgZG9uJ3QgdGhpbmsg aXQncyB2YWxpZCB0bwo+IGNhbGwgcmVsZWFzZV9vbGRfdmVjIHdpdGggZGVzYy0+YXJjaC5vbGRf dmVjdG9yID09Cj4gSVJRX1ZFQ1RPUl9VTkFTU0lHTkVELCBpbiB3aGljaCBjYXNlIEkgd291bGQg YWRkIGFuIEFTU0VSVC4KCldlbGwsIHllcywgSSBwcm9iYWJseSBjb3VsZC4gSG93ZXZlciwgYXMg bXVjaCBhcyBJJ20gaW4KZmF2b3Igb2YgQVNTRVJUKClzLCBJIGRvbid0IHRoaW5rIGl0IG1ha2Vz IHNlbnNlIHRvIEFTU0VSVCgpCmJhc2ljYWxseSBldmVyeSBiaXQgb2YgZXhwZWN0ZWQgc3RhdGUu IEluIHRoZSBlbmQgdGhlcmUgd291bGQKb3RoZXJ3aXNlIGJlIG1vcmUgQVNTRVJUKClzIHRoYW4g YWN0dWFsIGNvZGUuCgo+PiArICAgIHsKPj4gKyAgICAgICAgQVNTRVJUKHRlc3RfYml0KHZlY3Rv ciwgZGVzYy0+YXJjaC51c2VkX3ZlY3RvcnMpKTsKPj4gKyAgICAgICAgY2xlYXJfYml0KHZlY3Rv ciwgZGVzYy0+YXJjaC51c2VkX3ZlY3RvcnMpOwo+PiArICAgIH0KPj4gK30KPj4gKwo+PiAgc3Rh dGljIHZvaWQgX19jbGVhcl9pcnFfdmVjdG9yKGludCBpcnEpCj4+ICB7Cj4+ICAgICAgaW50IGNw dSwgdmVjdG9yLCBvbGRfdmVjdG9yOwo+PiBAQCAtMjg1LDE0ICsyOTksNyBAQCBzdGF0aWMgdm9p ZCBfX2NsZWFyX2lycV92ZWN0b3IoaW50IGlycSkKPiAKPiBLaW5kIG9mIHVucmVsYXRlZCwgYnV0 IEkgdGhpbmsgdGhlIGNoZWNrIGF0IHRoZSB0b3Agb2YKPiBfX2NsZWFyX2lycV92ZWN0b3Igc2hv dWxkIGJlOgo+IAo+IEJVR19PTihkZXNjLT5hcmNoLnZlY3RvciA9PSBJUlFfVkVDVE9SX1VOQVNT SUdORUQpOwo+IAo+IFJhdGhlciB0aGFuIHRoZSBjdXJyZW50Ogo+IAo+IEJVR19PTighZGVzYy0+ YXJjaC52ZWN0b3IpOwo+IAo+IFRoZXJlJ3MgYSBsb3Qgb2YgbG9naWMgdGhhdCB3b3VsZCBnbyBl eHRyZW1lbHkgd3JvbmcgaWYgdmVjdG9yIGlzIC0xLgoKWWVzIGluZGVlZC4gRG8geW91IHdhbnQg dG8gc2VuZCBhIHBhdGNoLCBvciBzaG91bGQgSSBhZGQKb25lIGF0IHRoZSBlbmQgb2YgdGhpcyBz ZXJpZXM/Cgo+PiAgICAgICAgICBwZXJfY3B1KHZlY3Rvcl9pcnEsIGNwdSlbb2xkX3ZlY3Rvcl0g PSB+aXJxOwo+PiAgICAgIH0KPj4gIAo+PiAtICAgIGRlc2MtPmFyY2gub2xkX3ZlY3RvciA9IElS UV9WRUNUT1JfVU5BU1NJR05FRDsKPj4gLSAgICBjcHVtYXNrX2NsZWFyKGRlc2MtPmFyY2gub2xk X2NwdV9tYXNrKTsKPj4gLQo+PiAtICAgIGlmICggZGVzYy0+YXJjaC51c2VkX3ZlY3RvcnMgKQo+ PiAtICAgIHsKPj4gLSAgICAgICAgQVNTRVJUKHRlc3RfYml0KG9sZF92ZWN0b3IsIGRlc2MtPmFy Y2gudXNlZF92ZWN0b3JzKSk7Cj4+IC0gICAgICAgIGNsZWFyX2JpdChvbGRfdmVjdG9yLCBkZXNj LT5hcmNoLnVzZWRfdmVjdG9ycyk7Cj4+IC0gICAgfQo+PiArICAgIHJlbGVhc2Vfb2xkX3ZlYyhk ZXNjKTsKPj4gIAo+PiAgICAgIGRlc2MtPmFyY2gubW92ZV9pbl9wcm9ncmVzcyA9IDA7Cj4gCj4g V2hpbGUgdGhlcmUgaXQgbWlnaHQgYmUgbmljZSB0byBjb252ZXJ0IG1vdmVfaW5fcHJvZ3Jlc3Mg dG8gYSBib29sZWFuLgoKVGhpcyB3b3VsZCBncm93IHRoZSBwYXRjaCBxdWl0ZSBhIGJpdCBJIHRo aW5rLCBzbyBJIHByZWZlciBubyB0by4KCj4+IEBAIC0yNDA5LDE1ICsyNDQ2LDE4IEBAIHZvaWQg Zml4dXBfaXJxcyhjb25zdCBjcHVtYXNrX3QgKm1hc2ssIGIKPj4gICAgICAgICAgaWYgKCBkZXNj LT5oYW5kbGVyLT5lbmFibGUgKQo+PiAgICAgICAgICAgICAgZGVzYy0+aGFuZGxlci0+ZW5hYmxl KGRlc2MpOwo+PiAgCj4+ICsgICAgICAgIGNwdW1hc2tfY29weSgmYWZmaW5pdHksIGRlc2MtPmFm ZmluaXR5KTsKPj4gKwo+PiAgICAgICAgICBzcGluX3VubG9jaygmZGVzYy0+bG9jayk7Cj4+ICAK Pj4gICAgICAgICAgaWYgKCAhdmVyYm9zZSApCj4+ICAgICAgICAgICAgICBjb250aW51ZTsKPj4g IAo+PiAtICAgICAgICBpZiAoIGJyZWFrX2FmZmluaXR5ICYmIHNldF9hZmZpbml0eSApCj4+IC0g ICAgICAgICAgICBwcmludGsoIkJyb2tlIGFmZmluaXR5IGZvciBpcnEgJWlcbiIsIGlycSk7Cj4+ IC0gICAgICAgIGVsc2UgaWYgKCAhc2V0X2FmZmluaXR5ICkKPj4gLSAgICAgICAgICAgIHByaW50 aygiQ2Fubm90IHNldCBhZmZpbml0eSBmb3IgaXJxICVpXG4iLCBpcnEpOwo+PiArICAgICAgICBp ZiAoICFzZXRfYWZmaW5pdHkgKQo+PiArICAgICAgICAgICAgcHJpbnRrKCJDYW5ub3Qgc2V0IGFm ZmluaXR5IGZvciBJUlEldVxuIiwgaXJxKTsKPj4gKyAgICAgICAgZWxzZSBpZiAoIGJyZWFrX2Fm ZmluaXR5ICkKPj4gKyAgICAgICAgICAgIHByaW50aygiQnJva2UgYWZmaW5pdHkgZm9yIElSUSV1 LCBuZXc6ICUqcGJcbiIsCj4+ICsgICAgICAgICAgICAgICAgICAgaXJxLCBucl9jcHVfaWRzLCAm YWZmaW5pdHkpOwo+IAo+IEkgZ3Vlc3MgaXQncyBmaW5lIHRvIGhhdmUgdGhvc2Ugd2l0aG91dCBy YXRlLWxpbWl0aW5nIGJlY2F1c2UKPiBmaXh1cF9pcnFzIGlzIG9ubHkgY2FsbGVkIGZvciBhZG1p bi10cmlnZ2VyZWQgYWN0aW9ucywgc28gdGhlcmUncyBubwo+IHJpc2sgb2YgY29uc29sZSBmbG9v ZGluZy4KClJpZ2h0LCBwbHVzIEknZCByYXRoZXIgbm90IGhpZGUgYW55IG9mIHRoZXNlIG1lc3Nh Z2VzOiBUaGVtCmJlaW5nIHRoZXJlIHdhcyBhbHJlYWR5IGEgZ29vZCBpbmRpY2F0aW9uIHRoYXQg c29tZXRoaW5nCl9taWdodF8gYmUgZ29pbmcgd3JvbmcuIElmIHdlIGdvdCB0byB0aGUgcG9pbnQg d2hlcmUgd2UncmUKZnVsbHkgY29uZmlkZW50IGluIHRoZSBjb2RlLCB0aGVuIHdlIGNvdWxkIHRo aW5rIGFib3V0IGxvd2VyaW5nCnRoZWlyIGxvZyBsZXZlbCwgb3IgcmF0ZSBsaW1pdGluZyB0aGVt LgoKSmFuCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0 dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 55D07C43219 for ; Fri, 3 May 2019 14:10:59 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2D3062075E for ; Fri, 3 May 2019 14:10:59 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2D3062075E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hMYtc-0004kC-NC; Fri, 03 May 2019 14:10:40 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hMYtb-0004k7-Jh for xen-devel@lists.xenproject.org; Fri, 03 May 2019 14:10:39 +0000 X-Inumbo-ID: 39e3926c-6dad-11e9-843c-bc764e045a96 Received: from prv1-mh.provo.novell.com (unknown [137.65.248.33]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 39e3926c-6dad-11e9-843c-bc764e045a96; Fri, 03 May 2019 14:10:38 +0000 (UTC) Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Fri, 03 May 2019 08:10:37 -0600 Message-Id: <5CCC4BDD020000780022BA05@prv1-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 18.1.0 Date: Fri, 03 May 2019 08:10:37 -0600 From: "Jan Beulich" To: "Roger Pau Monne" References: <5CC6DD090200007800229E80@prv1-mh.provo.novell.com> <5CC71ADE020000780022A1B7@prv1-mh.provo.novell.com> <20190503091905.2levs75dxln4rhiw@Air-de-Roger> In-Reply-To: <20190503091905.2levs75dxln4rhiw@Air-de-Roger> Mime-Version: 1.0 Content-Disposition: inline Subject: Re: [Xen-devel] [PATCH v1b 1/9] x86/IRQ: deal with move-in-progress state in fixup_irqs() X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Andrew Cooper , Wei Liu , xen-devel , Igor Druzhinin Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190503141037.MVshWHlow74KN__nxo3OHnlyLhUVfg8eRjWOWOSZK_4@z> Pj4+IE9uIDAzLjA1LjE5IGF0IDExOjE5LCA8cm9nZXIucGF1QGNpdHJpeC5jb20+IHdyb3RlOgo+ IE9uIE1vbiwgQXByIDI5LCAyMDE5IGF0IDA5OjQwOjE0QU0gLTA2MDAsIEphbiBCZXVsaWNoIHdy b3RlOgo+PiAtLS0gdW5zdGFibGUub3JpZy94ZW4vYXJjaC94ODYvaXJxLmMJCj4+ICsrKyB1bnN0 YWJsZS94ZW4vYXJjaC94ODYvaXJxLmMKPj4gQEAgLTI0Miw2ICsyNDIsMjAgQEAgdm9pZCBkZXN0 cm95X2lycSh1bnNpZ25lZCBpbnQgaXJxKQo+PiAgICAgIHhmcmVlKGFjdGlvbik7Cj4+ICB9Cj4+ ICAKPj4gK3N0YXRpYyB2b2lkIHJlbGVhc2Vfb2xkX3ZlYyhzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2Mp Cj4+ICt7Cj4+ICsgICAgdW5zaWduZWQgaW50IHZlY3RvciA9IGRlc2MtPmFyY2gub2xkX3ZlY3Rv cjsKPj4gKwo+PiArICAgIGRlc2MtPmFyY2gub2xkX3ZlY3RvciA9IElSUV9WRUNUT1JfVU5BU1NJ R05FRDsKPj4gKyAgICBjcHVtYXNrX2NsZWFyKGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrKTsKPj4g Kwo+PiArICAgIGlmICggZGVzYy0+YXJjaC51c2VkX3ZlY3RvcnMgKQo+IAo+IFdvdWxkbid0IGl0 IGJlIGJldHRlciB0byBjbGVhbiB0aGUgYml0bWFwIHdoZW4gdmVjdG9yICE9Cj4gSVJRX1ZFQ1RP Ul9VTkFTU0lHTkVEPwoKTm8gY29kZSBwYXRoIGRvZXMgLyBzaG91bGQgY2FsbCBpbnRvIGhlcmUg d2l0aG91dCB0aGUgbmVlZCB0bwphY3R1YWxseSByZWxlYXNlIHRoZSBwcmV2aW91cyB2ZWN0b3Iu Cgo+IEkgaGF2ZW4ndCBjaGVja2VkIGFsbCB0aGUgY2FsbGVycywgYnV0IEkgZG9uJ3QgdGhpbmsg aXQncyB2YWxpZCB0bwo+IGNhbGwgcmVsZWFzZV9vbGRfdmVjIHdpdGggZGVzYy0+YXJjaC5vbGRf dmVjdG9yID09Cj4gSVJRX1ZFQ1RPUl9VTkFTU0lHTkVELCBpbiB3aGljaCBjYXNlIEkgd291bGQg YWRkIGFuIEFTU0VSVC4KCldlbGwsIHllcywgSSBwcm9iYWJseSBjb3VsZC4gSG93ZXZlciwgYXMg bXVjaCBhcyBJJ20gaW4KZmF2b3Igb2YgQVNTRVJUKClzLCBJIGRvbid0IHRoaW5rIGl0IG1ha2Vz IHNlbnNlIHRvIEFTU0VSVCgpCmJhc2ljYWxseSBldmVyeSBiaXQgb2YgZXhwZWN0ZWQgc3RhdGUu IEluIHRoZSBlbmQgdGhlcmUgd291bGQKb3RoZXJ3aXNlIGJlIG1vcmUgQVNTRVJUKClzIHRoYW4g YWN0dWFsIGNvZGUuCgo+PiArICAgIHsKPj4gKyAgICAgICAgQVNTRVJUKHRlc3RfYml0KHZlY3Rv ciwgZGVzYy0+YXJjaC51c2VkX3ZlY3RvcnMpKTsKPj4gKyAgICAgICAgY2xlYXJfYml0KHZlY3Rv ciwgZGVzYy0+YXJjaC51c2VkX3ZlY3RvcnMpOwo+PiArICAgIH0KPj4gK30KPj4gKwo+PiAgc3Rh dGljIHZvaWQgX19jbGVhcl9pcnFfdmVjdG9yKGludCBpcnEpCj4+ICB7Cj4+ICAgICAgaW50IGNw dSwgdmVjdG9yLCBvbGRfdmVjdG9yOwo+PiBAQCAtMjg1LDE0ICsyOTksNyBAQCBzdGF0aWMgdm9p ZCBfX2NsZWFyX2lycV92ZWN0b3IoaW50IGlycSkKPiAKPiBLaW5kIG9mIHVucmVsYXRlZCwgYnV0 IEkgdGhpbmsgdGhlIGNoZWNrIGF0IHRoZSB0b3Agb2YKPiBfX2NsZWFyX2lycV92ZWN0b3Igc2hv dWxkIGJlOgo+IAo+IEJVR19PTihkZXNjLT5hcmNoLnZlY3RvciA9PSBJUlFfVkVDVE9SX1VOQVNT SUdORUQpOwo+IAo+IFJhdGhlciB0aGFuIHRoZSBjdXJyZW50Ogo+IAo+IEJVR19PTighZGVzYy0+ YXJjaC52ZWN0b3IpOwo+IAo+IFRoZXJlJ3MgYSBsb3Qgb2YgbG9naWMgdGhhdCB3b3VsZCBnbyBl eHRyZW1lbHkgd3JvbmcgaWYgdmVjdG9yIGlzIC0xLgoKWWVzIGluZGVlZC4gRG8geW91IHdhbnQg dG8gc2VuZCBhIHBhdGNoLCBvciBzaG91bGQgSSBhZGQKb25lIGF0IHRoZSBlbmQgb2YgdGhpcyBz ZXJpZXM/Cgo+PiAgICAgICAgICBwZXJfY3B1KHZlY3Rvcl9pcnEsIGNwdSlbb2xkX3ZlY3Rvcl0g PSB+aXJxOwo+PiAgICAgIH0KPj4gIAo+PiAtICAgIGRlc2MtPmFyY2gub2xkX3ZlY3RvciA9IElS UV9WRUNUT1JfVU5BU1NJR05FRDsKPj4gLSAgICBjcHVtYXNrX2NsZWFyKGRlc2MtPmFyY2gub2xk X2NwdV9tYXNrKTsKPj4gLQo+PiAtICAgIGlmICggZGVzYy0+YXJjaC51c2VkX3ZlY3RvcnMgKQo+ PiAtICAgIHsKPj4gLSAgICAgICAgQVNTRVJUKHRlc3RfYml0KG9sZF92ZWN0b3IsIGRlc2MtPmFy Y2gudXNlZF92ZWN0b3JzKSk7Cj4+IC0gICAgICAgIGNsZWFyX2JpdChvbGRfdmVjdG9yLCBkZXNj LT5hcmNoLnVzZWRfdmVjdG9ycyk7Cj4+IC0gICAgfQo+PiArICAgIHJlbGVhc2Vfb2xkX3ZlYyhk ZXNjKTsKPj4gIAo+PiAgICAgIGRlc2MtPmFyY2gubW92ZV9pbl9wcm9ncmVzcyA9IDA7Cj4gCj4g V2hpbGUgdGhlcmUgaXQgbWlnaHQgYmUgbmljZSB0byBjb252ZXJ0IG1vdmVfaW5fcHJvZ3Jlc3Mg dG8gYSBib29sZWFuLgoKVGhpcyB3b3VsZCBncm93IHRoZSBwYXRjaCBxdWl0ZSBhIGJpdCBJIHRo aW5rLCBzbyBJIHByZWZlciBubyB0by4KCj4+IEBAIC0yNDA5LDE1ICsyNDQ2LDE4IEBAIHZvaWQg Zml4dXBfaXJxcyhjb25zdCBjcHVtYXNrX3QgKm1hc2ssIGIKPj4gICAgICAgICAgaWYgKCBkZXNj LT5oYW5kbGVyLT5lbmFibGUgKQo+PiAgICAgICAgICAgICAgZGVzYy0+aGFuZGxlci0+ZW5hYmxl KGRlc2MpOwo+PiAgCj4+ICsgICAgICAgIGNwdW1hc2tfY29weSgmYWZmaW5pdHksIGRlc2MtPmFm ZmluaXR5KTsKPj4gKwo+PiAgICAgICAgICBzcGluX3VubG9jaygmZGVzYy0+bG9jayk7Cj4+ICAK Pj4gICAgICAgICAgaWYgKCAhdmVyYm9zZSApCj4+ICAgICAgICAgICAgICBjb250aW51ZTsKPj4g IAo+PiAtICAgICAgICBpZiAoIGJyZWFrX2FmZmluaXR5ICYmIHNldF9hZmZpbml0eSApCj4+IC0g ICAgICAgICAgICBwcmludGsoIkJyb2tlIGFmZmluaXR5IGZvciBpcnEgJWlcbiIsIGlycSk7Cj4+ IC0gICAgICAgIGVsc2UgaWYgKCAhc2V0X2FmZmluaXR5ICkKPj4gLSAgICAgICAgICAgIHByaW50 aygiQ2Fubm90IHNldCBhZmZpbml0eSBmb3IgaXJxICVpXG4iLCBpcnEpOwo+PiArICAgICAgICBp ZiAoICFzZXRfYWZmaW5pdHkgKQo+PiArICAgICAgICAgICAgcHJpbnRrKCJDYW5ub3Qgc2V0IGFm ZmluaXR5IGZvciBJUlEldVxuIiwgaXJxKTsKPj4gKyAgICAgICAgZWxzZSBpZiAoIGJyZWFrX2Fm ZmluaXR5ICkKPj4gKyAgICAgICAgICAgIHByaW50aygiQnJva2UgYWZmaW5pdHkgZm9yIElSUSV1 LCBuZXc6ICUqcGJcbiIsCj4+ICsgICAgICAgICAgICAgICAgICAgaXJxLCBucl9jcHVfaWRzLCAm YWZmaW5pdHkpOwo+IAo+IEkgZ3Vlc3MgaXQncyBmaW5lIHRvIGhhdmUgdGhvc2Ugd2l0aG91dCBy YXRlLWxpbWl0aW5nIGJlY2F1c2UKPiBmaXh1cF9pcnFzIGlzIG9ubHkgY2FsbGVkIGZvciBhZG1p bi10cmlnZ2VyZWQgYWN0aW9ucywgc28gdGhlcmUncyBubwo+IHJpc2sgb2YgY29uc29sZSBmbG9v ZGluZy4KClJpZ2h0LCBwbHVzIEknZCByYXRoZXIgbm90IGhpZGUgYW55IG9mIHRoZXNlIG1lc3Nh Z2VzOiBUaGVtCmJlaW5nIHRoZXJlIHdhcyBhbHJlYWR5IGEgZ29vZCBpbmRpY2F0aW9uIHRoYXQg c29tZXRoaW5nCl9taWdodF8gYmUgZ29pbmcgd3JvbmcuIElmIHdlIGdvdCB0byB0aGUgcG9pbnQg d2hlcmUgd2UncmUKZnVsbHkgY29uZmlkZW50IGluIHRoZSBjb2RlLCB0aGVuIHdlIGNvdWxkIHRo aW5rIGFib3V0IGxvd2VyaW5nCnRoZWlyIGxvZyBsZXZlbCwgb3IgcmF0ZSBsaW1pdGluZyB0aGVt LgoKSmFuCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0 dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=