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=-6.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS 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 2E296C49ED6 for ; Wed, 11 Sep 2019 16:16:08 +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 E53F32075C for ; Wed, 11 Sep 2019 16:16:07 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="Vrvleouy" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E53F32075C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=citrix.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 1i85HR-0008F8-Bd; Wed, 11 Sep 2019 16:15:41 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i85HQ-0008F3-8c for xen-devel@lists.xenproject.org; Wed, 11 Sep 2019 16:15:40 +0000 X-Inumbo-ID: 64acfa70-d4af-11e9-978d-bc764e2007e4 Received: from esa2.hc3370-68.iphmx.com (unknown [216.71.145.153]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 64acfa70-d4af-11e9-978d-bc764e2007e4; Wed, 11 Sep 2019 16:15:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1568218539; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=KBCbseHXGl9x2qnrWiLzBky7MDY+S7D9+BO3P/CT/N8=; b=VrvleouyeDgnkcMZcs0S8KB8vAxuHvDNVKkzEb1qsqLRVxVV1CpUDnSd +3I4TsgipeZKuHHs1UplW+lbmMBq8XwWiPxjSVZaorJ8zRjjAXhGiz6nT JAR9Z1vyXBZ4qQNwJ6oj2arYvx5UH7aInfYnVxitDBXFRJPXGW/7N+OYr Q=; Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=Paul.Durrant@citrix.com; spf=Pass smtp.mailfrom=Paul.Durrant@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa2.hc3370-68.iphmx.com: no sender authenticity information available from domain of Paul.Durrant@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa2.hc3370-68.iphmx.com; envelope-from="Paul.Durrant@citrix.com"; x-sender="Paul.Durrant@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa2.hc3370-68.iphmx.com: domain of Paul.Durrant@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa2.hc3370-68.iphmx.com; envelope-from="Paul.Durrant@citrix.com"; x-sender="Paul.Durrant@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa2.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa2.hc3370-68.iphmx.com; envelope-from="Paul.Durrant@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: ULHa7o3LECx1Rm1bcoVlO2MzsOmHAtjp9eVgW7JLKB6oWv4Q/vP9nJUvoSiyPnMahukh9nnH2b 01i7wIJk7WI3A4D/dwkO+Xmkz21I1j86tirqrQs01i1omTysyAkA1EVImlkNa4E5BBnAxZ8Wlf E1Oz1zI790bFOnWznoitUY2eJaNZcNnA374P3pCCKIf2VFFPXNKolWjfSUW8Mqdc4wzNe0Gn8b CdPsfp+GajevoQstYFMdxaaUqMuYmJ4hkbnhTRx9W1Fc3+1uuB7wzqJy4QelnPEh7BYFiruTdH o6s= X-SBRS: 2.7 X-MesageID: 5440600 X-Ironport-Server: esa2.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,494,1559534400"; d="scan'208";a="5440600" From: Paul Durrant To: Paul Durrant , "qemu-devel@nongnu.org" , "xen-devel@lists.xenproject.org" Thread-Topic: [PATCH 3/3] xen: perform XenDevice clean-up in XenBus watch handler Thread-Index: AQHVaK5L2oOauKnz0Ua8akuNXe6iDqcmpqNQ Date: Wed, 11 Sep 2019 16:15:34 +0000 Message-ID: <91a39e7bc56c4916b956b0752e0aa9dd@AMSPEX02CL03.citrite.net> References: <20190911143618.23477-1-paul.durrant@citrix.com> <20190911143618.23477-4-paul.durrant@citrix.com> In-Reply-To: <20190911143618.23477-4-paul.durrant@citrix.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted MIME-Version: 1.0 Subject: Re: [Xen-devel] [PATCH 3/3] xen: perform XenDevice clean-up in XenBus watch handler 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: Anthony Perard , Stefano Stabellini Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IFBhdWwgRHVycmFudCA8cGF1bC5k dXJyYW50QGNpdHJpeC5jb20+Cj4gU2VudDogMTEgU2VwdGVtYmVyIDIwMTkgMTU6MzYKPiBUbzog cWVtdS1kZXZlbEBub25nbnUub3JnOyB4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiBD YzogUGF1bCBEdXJyYW50IDxQYXVsLkR1cnJhbnRAY2l0cml4LmNvbT47IFN0ZWZhbm8gU3RhYmVs bGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47IEFudGhvbnkKPiBQZXJhcmQgPGFudGhvbnku cGVyYXJkQGNpdHJpeC5jb20+Cj4gU3ViamVjdDogW1BBVENIIDMvM10geGVuOiBwZXJmb3JtIFhl bkRldmljZSBjbGVhbi11cCBpbiBYZW5CdXMgd2F0Y2ggaGFuZGxlcgo+IAo+IENsZWFuaW5nIHVw IG9mZmluZSBYZW5EZXZpY2Ugb2JqZWN0cyBkaXJlY3RseSBpbgo+IHhlbl9kZXZpY2VfYmFja2Vu ZF9jaGFuZ2VkKCkgaXMgZGFuZ2Vyb3VzIGFzIHhlbl9kZXZpY2VfdW5yZWFsaXplKCkgd2lsbAo+ IG1vZGlmeSB0aGUgd2F0Y2ggbGlzdCB0aGF0IGlzIGJlaW5nIHdhbGtlZC4gRXZlbiB0aGUgUUxJ U1RfRk9SRUFDSF9TQUZFKCkKPiB1c2VkIGluIG5vdGlmaWVyX2xpc3Rfbm90aWZ5KCkgaXMgaW5z dWZmaWNpZW50IGFzICp0d28qIG5vdGlmaWVycyAoZm9yCj4gdGhlIGZyb250ZW5kIGFuZCBiYWNr ZW5kIHdhdGNoZXMpIGFyZSByZW1vdmVkLCB0aHVzIHBvdGVudGlhbGx5IHJlbmRlcmluZwo+IHRo ZSAnbmV4dCcgcG9pbnRlciB1bnNhZmUuCj4gCj4gVGhlIHNvbHV0aW9uIGlzIHRvIHVzZSB0aGUg WGVuQnVzIGJhY2tlbmRfd2F0Y2ggaGFuZGxlciB0byBkbyB0aGUgY2xlYW4tdXAKPiBpbnN0ZWFk LCBhcyBpdCBpcyBpbnZva2VkIHdoaWxzdCB3YWxraW5nIGEgc2VwYXJhdGUgd2F0Y2ggbGlzdC4K PiAKPiBUaGlzIHBhdGNoIHRoZXJlZm9yZSBhZGRzIGEgbmV3ICdvZmZsaW5lX2RldmljZXMnIGxp c3QgdG8gWGVuQnVzLCB0byB3aGljaAo+IG9mZmxpbmUgZGV2aWNlcyBhcmUgYWRkZWQgYnkgeGVu X2RldmljZV9iYWNrZW5kX2NoYW5nZWQoKS4gVGhlIFhlbkJ1cwo+IGJhY2tlbmRfd2F0Y2ggcmVn aXN0cmF0aW9uIGlzIGFsc28gY2hhbmdlZCB0byBub3Qgb25seSBpbnZva2UKPiB4ZW5fYnVzX2Vu dW1lcmF0ZSgpIGJ1dCBhbHNvIGEgbmV3IHhlbl9idXNfY2xlYW51cCgpIGZ1bmN0aW9uLCB3aGlj aCB3aWxsCj4gd2FsayAnb2ZmbGluZV9kZXZpY2VzJyBhbmQgcGVyZm9ybSB0aGUgbmVjZXNzYXJ5 IGFjdGlvbnMuCj4gRm9yIHNhZmV0eSBhIGFuIGV4dHJhICdvbmxpbmUnIGNoZWNrIGlzIGFsc28g YWRkZWQgdG8KPiB4ZW5fYnVzX3R5cGVfZW51bWVyYXRlKCkgdG8gbWFrZSBzdXJlIHRoYXQgbm8g YXR0ZW1wdCBpcyBtYWRlIHRvIGNyZWF0ZSBhCj4gbmV3IFhlbkRldmljZSBvYmplY3QgZm9yIGEg YmFja2VuZCB0aGF0IGlzIG9mZmxpbmUuCj4gCj4gTk9URTogVGhpcyBwYXRjaCBhbHNvIGluY2x1 ZGUgc29tZSBjb3NtZXRpYyBjaGFuZ2VzOgo+ICAgICAgIC0gc3Vic3RpdHV0ZSB0aGUgbG9jYWwg dmFyaWFibGUgbmFtZSAnYmFja2VuZF9zdGF0ZScKPiAgICAgICAgIGluIHhlbl9idXNfdHlwZV9l bnVtZXJhdGUoKSB3aXRoICdzdGF0ZScsIHNpbmNlIHRoZXJlCj4gICAgICAgICBpcyBubyBhbWJp Z3VpdHkgd2l0aCBhbnkgb3RoZXIgc3RhdGUgaW4gdGhhdCBjb250ZXh0Lgo+ICAgICAgIC0gY2hh bmdlIHhlbl9kZXZpY2Vfc3RhdGVfaXNfYWN0aXZlKCkgdG8KPiAgICAgICAgIHhlbl9kZXZpY2Vf ZnJvbnRlbmRfaXNfYWN0aXZlKCkgKGFuZCBwYXNzIGEgWGVuRGV2aWNlIGRpcmVjdGx5KQo+ICAg ICAgICAgc2luY2UgdGhlIHN0YXRlIHRlc3RzIGNvbnRhaW5lZCB0aGVyZWluIG9ubHkgYXBwbHkg dG8gYSBmcm9udGVuZC4KPiAgICAgICAtIHVzZSAnc3RhdGUnIHJhdGhlciB0aGVuICd4ZW5kZXYt PmJhY2tlbmRfc3RhdGUnIGluCj4gICAgICAgICB4ZW5fZGV2aWNlX2JhY2tlbmRfY2hhbmdlZCgp IHRvIHNob3J0ZW4gdGhlIGNvZGUuCj4gCj4gU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxw YXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KPiAtLS0KPiBDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxz c3RhYmVsbGluaUBrZXJuZWwub3JnPgo+IENjOiBBbnRob255IFBlcmFyZCA8YW50aG9ueS5wZXJh cmRAY2l0cml4LmNvbT4KPiAtLS0KPiAgaHcveGVuL3RyYWNlLWV2ZW50cyAgICAgIHwgIDIgKwo+ ICBody94ZW4veGVuLWJ1cy5jICAgICAgICAgfCA5MSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tCj4gIGluY2x1ZGUvaHcveGVuL3hlbi1idXMuaCB8ICAyICsKPiAgMyBm aWxlcyBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKPiAKPiBkaWZm IC0tZ2l0IGEvaHcveGVuL3RyYWNlLWV2ZW50cyBiL2h3L3hlbi90cmFjZS1ldmVudHMKPiBpbmRl eCA4MGNlM2RhZmFkLi5lNjg4NWJjNzUxIDEwMDY0NAo+IC0tLSBhL2h3L3hlbi90cmFjZS1ldmVu dHMKPiArKysgYi9ody94ZW4vdHJhY2UtZXZlbnRzCj4gQEAgLTE3LDggKzE3LDEwIEBAIHhlbl9k b21pZF9yZXN0cmljdChpbnQgZXJyKSAiZXJyOiAldSIKPiAgeGVuX2J1c19yZWFsaXplKHZvaWQp ICIiCj4gIHhlbl9idXNfdW5yZWFsaXplKHZvaWQpICIiCj4gIHhlbl9idXNfZW51bWVyYXRlKHZv aWQpICIiCj4gK3hlbl9idXNfY2xlYW51cCh2b2lkKSAiIgo+ICB4ZW5fYnVzX3R5cGVfZW51bWVy YXRlKGNvbnN0IGNoYXIgKnR5cGUpICJ0eXBlOiAlcyIKPiAgeGVuX2J1c19iYWNrZW5kX2NyZWF0 ZShjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpwYXRoKSAidHlwZTogJXMgcGF0aDogJXMi Cj4gK3hlbl9idXNfZGV2aWNlX2NsZWFudXAoY29uc3QgY2hhciAqdHlwZSwgY2hhciAqbmFtZSkg InR5cGU6ICVzIG5hbWU6ICVzIgo+ICB4ZW5fYnVzX2FkZF93YXRjaChjb25zdCBjaGFyICpub2Rl LCBjb25zdCBjaGFyICprZXkpICJub2RlOiAlcyBrZXk6ICVzIgo+ICB4ZW5fYnVzX3JlbW92ZV93 YXRjaChjb25zdCBjaGFyICpub2RlLCBjb25zdCBjaGFyICprZXkpICJub2RlOiAlcyBrZXk6ICVz Igo+ICB4ZW5fZGV2aWNlX3JlYWxpemUoY29uc3QgY2hhciAqdHlwZSwgY2hhciAqbmFtZSkgInR5 cGU6ICVzIG5hbWU6ICVzIgo+IGRpZmYgLS1naXQgYS9ody94ZW4veGVuLWJ1cy5jIGIvaHcveGVu L3hlbi1idXMuYwo+IGluZGV4IDgxMGE0ZTJkZjMuLjA1NWJlYjcyNjAgMTAwNjQ0Cj4gLS0tIGEv aHcveGVuL3hlbi1idXMuYwo+ICsrKyBiL2h3L3hlbi94ZW4tYnVzLmMKPiBAQCAtMzQwLDEzICsz NDAsMTggQEAgc3RhdGljIHZvaWQgeGVuX2J1c190eXBlX2VudW1lcmF0ZShYZW5CdXMgKnhlbmJ1 cywgY29uc3QgY2hhciAqdHlwZSkKPiAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKPiAg ICAgICAgICBjaGFyICpiYWNrZW5kX3BhdGggPSBnX3N0cmR1cF9wcmludGYoIiVzLyVzIiwgZG9t YWluX3BhdGgsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJhY2tlbmRbaV0pOwo+IC0gICAgICAgIGVudW0geGVuYnVzX3N0YXRlIGJhY2tlbmRfc3RhdGU7 Cj4gKyAgICAgICAgZW51bSB4ZW5idXNfc3RhdGUgc3RhdGU7Cj4gKyAgICAgICAgdW5zaWduZWQg aW50IG9ubGluZTsKPiAKPiAgICAgICAgICBpZiAoeHNfbm9kZV9zY2FuZih4ZW5idXMtPnhzaCwg WEJUX05VTEwsIGJhY2tlbmRfcGF0aCwgInN0YXRlIiwKPiAtICAgICAgICAgICAgICAgICAgICAg ICAgICBOVUxMLCAiJXUiLCAmYmFja2VuZF9zdGF0ZSkgIT0gMSkKPiAtICAgICAgICAgICAgYmFj a2VuZF9zdGF0ZSA9IFhlbmJ1c1N0YXRlVW5rbm93bjsKPiArICAgICAgICAgICAgICAgICAgICAg ICAgICBOVUxMLCAiJXUiLCAmc3RhdGUpICE9IDEpCj4gKyAgICAgICAgICAgIHN0YXRlID0gWGVu YnVzU3RhdGVVbmtub3duOwo+IAo+IC0gICAgICAgIGlmIChiYWNrZW5kX3N0YXRlID09IFhlbmJ1 c1N0YXRlSW5pdGlhbGlzaW5nKSB7Cj4gKyAgICAgICAgaWYgKHhzX25vZGVfc2NhbmYoeGVuYnVz LT54c2gsIFhCVF9OVUxMLCBiYWNrZW5kX3BhdGgsICJvbmxpbmUiLAo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsICIldSIsICZvbmxpbmUpICE9IDEpCj4gKyAgICAgICAgICAgIG9u bGluZSA9IDA7Cj4gKwo+ICsgICAgICAgIGlmIChvbmxpbmUgJiYgc3RhdGUgPT0gWGVuYnVzU3Rh dGVJbml0aWFsaXNpbmcpIHsKPiAgICAgICAgICAgICAgRXJyb3IgKmxvY2FsX2VyciA9IE5VTEw7 Cj4gCj4gICAgICAgICAgICAgIHhlbl9idXNfYmFja2VuZF9jcmVhdGUoeGVuYnVzLCB0eXBlLCBi YWNrZW5kW2ldLCBiYWNrZW5kX3BhdGgsCj4gQEAgLTM2NSw5ICszNzAsOCBAQCBvdXQ6Cj4gICAg ICBnX2ZyZWUoZG9tYWluX3BhdGgpOwo+ICB9Cj4gCj4gLXN0YXRpYyB2b2lkIHhlbl9idXNfZW51 bWVyYXRlKHZvaWQgKm9wYXF1ZSkKPiArc3RhdGljIHZvaWQgeGVuX2J1c19lbnVtZXJhdGUoWGVu QnVzICp4ZW5idXMpCj4gIHsKPiAtICAgIFhlbkJ1cyAqeGVuYnVzID0gb3BhcXVlOwo+ICAgICAg Y2hhciAqKnR5cGU7Cj4gICAgICB1bnNpZ25lZCBpbnQgaSwgbjsKPiAKPiBAQCAtMzg1LDYgKzM4 OSw0NCBAQCBzdGF0aWMgdm9pZCB4ZW5fYnVzX2VudW1lcmF0ZSh2b2lkICpvcGFxdWUpCj4gICAg ICBmcmVlKHR5cGUpOwo+ICB9Cj4gCj4gK3N0YXRpYyB2b2lkIHhlbl9idXNfZGV2aWNlX2NsZWFu dXAoWGVuRGV2aWNlICp4ZW5kZXYpCj4gK3sKPiArICAgIGNvbnN0IGNoYXIgKnR5cGUgPSBvYmpl Y3RfZ2V0X3R5cGVuYW1lKE9CSkVDVCh4ZW5kZXYpKTsKPiArICAgIEVycm9yICpsb2NhbF9lcnIg PSBOVUxMOwo+ICsKPiArICAgIHRyYWNlX3hlbl9idXNfZGV2aWNlX2NsZWFudXAodHlwZSwgeGVu ZGV2LT5uYW1lKTsKPiArCj4gKyAgICBnX2Fzc2VydCgheGVuZGV2LT5iYWNrZW5kX29ubGluZSk7 Cj4gKwo+ICsgICAgaWYgKCF4ZW5fYmFja2VuZF90cnlfZGV2aWNlX2Rlc3Ryb3koeGVuZGV2LCAm bG9jYWxfZXJyKSkgewo+ICsgICAgICAgIG9iamVjdF91bnBhcmVudChPQkpFQ1QoeGVuZGV2KSk7 Cj4gKyAgICB9Cj4gKwo+ICsgICAgaWYgKGxvY2FsX2Vycikgewo+ICsgICAgICAgIGVycm9yX3Jl cG9ydF9lcnIobG9jYWxfZXJyKTsKPiArICAgIH0KPiArfQo+ICsKPiArc3RhdGljIHZvaWQgeGVu X2J1c19jbGVhbnVwKFhlbkJ1cyAqeGVuYnVzKQo+ICt7Cj4gKyAgICBYZW5EZXZpY2UgKnhlbmRl diwgKm5leHQ7Cj4gKwo+ICsgICAgdHJhY2VfeGVuX2J1c19jbGVhbnVwKCk7Cj4gKwo+ICsgICAg UUxJU1RfRk9SRUFDSF9TQUZFKHhlbmRldiwgJnhlbmJ1cy0+b2ZmbGluZV9kZXZpY2VzLCBsaXN0 LCBuZXh0KSB7Cj4gKyAgICAgICAgUUxJU1RfUkVNT1ZFKHhlbmRldiwgbGlzdCk7Cj4gKyAgICAg ICAgeGVuX2J1c19kZXZpY2VfY2xlYW51cCh4ZW5kZXYpOwo+ICsgICAgfQo+ICt9Cj4gKwo+ICtz dGF0aWMgdm9pZCB4ZW5fYnVzX2JhY2tlbmRfY2hhbmdlZCh2b2lkICpvcGFxdWUpCj4gK3sKPiAr ICAgIFhlbkJ1cyAqeGVuYnVzID0gb3BhcXVlOwo+ICsKPiArICAgIHhlbl9idXNfZW51bWVyYXRl KHhlbmJ1cyk7Cj4gKyAgICB4ZW5fYnVzX2NsZWFudXAoeGVuYnVzKTsKPiArfQo+ICsKPiAgc3Rh dGljIHZvaWQgeGVuX2J1c191bnJlYWxpemUoQnVzU3RhdGUgKmJ1cywgRXJyb3IgKiplcnJwKQo+ ICB7Cj4gICAgICBYZW5CdXMgKnhlbmJ1cyA9IFhFTl9CVVMoYnVzKTsKPiBAQCAtNDMzLDcgKzQ3 NSw3IEBAIHN0YXRpYyB2b2lkIHhlbl9idXNfcmVhbGl6ZShCdXNTdGF0ZSAqYnVzLCBFcnJvciAq KmVycnApCj4gCj4gICAgICB4ZW5idXMtPmJhY2tlbmRfd2F0Y2ggPQo+ICAgICAgICAgIHhlbl9i dXNfYWRkX3dhdGNoKHhlbmJ1cywgIiIsIC8qIGRvbWFpbiByb290IG5vZGUgKi8KPiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAiYmFja2VuZCIsIHhlbl9idXNfZW51bWVyYXRlLCAmbG9jYWxf ZXJyKTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAiYmFja2VuZCIsIHhlbl9idXNfYmFj a2VuZF9jaGFuZ2VkLCAmbG9jYWxfZXJyKTsKPiAgICAgIGlmIChsb2NhbF9lcnIpIHsKPiAgICAg ICAgICAvKiBUaGlzIG5lZWQgbm90IGJlIHRyZWF0ZWQgYXMgYSBoYXJkIGVycm9yIHNvIGRvbid0 IHByb3BhZ2F0ZSAqLwo+ICAgICAgICAgIGVycm9yX3JlcG9ydGZfZXJyKGxvY2FsX2VyciwKPiBA QCAtNTU1LDkgKzU5Nyw5IEBAIHN0YXRpYyB2b2lkIHhlbl9kZXZpY2VfYmFja2VuZF9zZXRfb25s aW5lKFhlbkRldmljZSAqeGVuZGV2LCBib29sIG9ubGluZSkKPiAgICogVGVsbCBmcm9tIHRoZSBz dGF0ZSB3aGV0aGVyIHRoZSBmcm9udGVuZCBpcyBsaWtlbHkgYWxpdmUsCj4gICAqIGkuZS4gaXQg d2lsbCByZWFjdCB0byBhIGNoYW5nZSBvZiBzdGF0ZSBvZiB0aGUgYmFja2VuZC4KPiAgICovCj4g LXN0YXRpYyBib29sIHhlbl9kZXZpY2Vfc3RhdGVfaXNfYWN0aXZlKGVudW0geGVuYnVzX3N0YXRl IHN0YXRlKQo+ICtzdGF0aWMgYm9vbCB4ZW5fZGV2aWNlX2Zyb250ZW5kX2lzX2FjdGl2ZShYZW5E ZXZpY2UgKnhlbmRldikKPiAgewo+IC0gICAgc3dpdGNoIChzdGF0ZSkgewo+ICsgICAgc3dpdGNo ICh4ZW5kZXYtPmZyb250ZW5kX3N0YXRlKSB7Cj4gICAgICBjYXNlIFhlbmJ1c1N0YXRlSW5pdFdh aXQ6Cj4gICAgICBjYXNlIFhlbmJ1c1N0YXRlSW5pdGlhbGlzZWQ6Cj4gICAgICBjYXNlIFhlbmJ1 c1N0YXRlQ29ubmVjdGVkOgo+IEBAIC01OTQsMzAgKzYzNiwyOSBAQCBzdGF0aWMgdm9pZCB4ZW5f ZGV2aWNlX2JhY2tlbmRfY2hhbmdlZCh2b2lkICpvcGFxdWUpCj4gICAgICAgKiBzdGF0ZSB0byBD bG9zaW5nLCBidXQgdGhlcmUgaXMgbm8gYWN0aXZlIGZyb250ZW5kIHRoZW4gc2V0IHRoZQo+ICAg ICAgICogYmFja2VuZCBzdGF0ZSB0byBDbG9zZWQuCj4gICAgICAgKi8KPiAtICAgIGlmICh4ZW5k ZXYtPmJhY2tlbmRfc3RhdGUgPT0gWGVuYnVzU3RhdGVDbG9zaW5nICYmCj4gLSAgICAgICAgIXhl bl9kZXZpY2Vfc3RhdGVfaXNfYWN0aXZlKHhlbmRldi0+ZnJvbnRlbmRfc3RhdGUpKSB7Cj4gKyAg ICBpZiAoc3RhdGUgPT0gWGVuYnVzU3RhdGVDbG9zaW5nICYmCj4gKyAgICAgICAgIXhlbl9kZXZp Y2VfZnJvbnRlbmRfaXNfYWN0aXZlKHhlbmRldikpIHsKPiAgICAgICAgICB4ZW5fZGV2aWNlX2Jh Y2tlbmRfc2V0X3N0YXRlKHhlbmRldiwgWGVuYnVzU3RhdGVDbG9zZWQpOwo+ICAgICAgfQo+IAo+ ICAgICAgLyoKPiAgICAgICAqIElmIGEgYmFja2VuZCBpcyBzdGlsbCAnb25saW5lJyB0aGVuIHdl IHNob3VsZCBsZWF2ZSBpdCBhbG9uZSBidXQsCj4gLSAgICAgKiBpZiBhIGJhY2tlbmQgaXMgbm90 ICdvbmxpbmUnLCB0aGVuIHRoZSBkZXZpY2Ugc2hvdWxkIGJlIGRlc3Ryb3llZAo+IC0gICAgICog b25jZSB0aGUgc3RhdGUgaXMgQ2xvc2VkLgo+ICsgICAgICogaWYgYSBiYWNrZW5kIGlzIG5vdCAn b25saW5lJywgdGhlbiB0aGUgZGV2aWNlIGlzIGEgY2FuZGlkYXRlCj4gKyAgICAgKiBmb3IgZGVz dHJ1Y3Rpb24uIEhlbmNlIGFkZCBpdCB0byB0aGUgJ29mZmxpbmUnIGxpc3QgdG8gYmUgY2xlYW5l ZAo+ICsgICAgICogYnkgeGVuX2J1c19jbGVhbnVwKCkuCj4gICAgICAgKi8KPiAtICAgIGlmICgh eGVuZGV2LT5iYWNrZW5kX29ubGluZSAmJgo+IC0gICAgICAgICh4ZW5kZXYtPmJhY2tlbmRfc3Rh dGUgPT0gWGVuYnVzU3RhdGVDbG9zZWQgfHwKPiAtICAgICAgICAgeGVuZGV2LT5iYWNrZW5kX3N0 YXRlID09IFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nIHx8Cj4gLSAgICAgICAgIHhlbmRldi0+YmFj a2VuZF9zdGF0ZSA9PSBYZW5idXNTdGF0ZUluaXRXYWl0IHx8Cj4gLSAgICAgICAgIHhlbmRldi0+ YmFja2VuZF9zdGF0ZSA9PSBYZW5idXNTdGF0ZVVua25vd24pKSB7Cj4gLSAgICAgICAgRXJyb3Ig KmxvY2FsX2VyciA9IE5VTEw7Cj4gKyAgICBpZiAoIW9ubGluZSAmJgo+ICsgICAgICAgIChzdGF0 ZSA9PSBYZW5idXNTdGF0ZUNsb3NlZCB8fCAgc3RhdGUgPT0gWGVuYnVzU3RhdGVJbml0aWFsaXNp bmcgfHwKPiArICAgICAgICAgc3RhdGUgPT0gWGVuYnVzU3RhdGVJbml0V2FpdCB8fCBzdGF0ZSA9 PSBYZW5idXNTdGF0ZVVua25vd24pKSB7Cj4gKyAgICAgICAgWGVuQnVzICp4ZW5idXMgPSBYRU5f QlVTKHFkZXZfZ2V0X3BhcmVudF9idXMoREVWSUNFKHhlbmRldikpKTsKPiAKPiAtICAgICAgICBp ZiAoIXhlbl9iYWNrZW5kX3RyeV9kZXZpY2VfZGVzdHJveSh4ZW5kZXYsICZsb2NhbF9lcnIpKSB7 Cj4gLSAgICAgICAgICAgIG9iamVjdF91bnBhcmVudChPQkpFQ1QoeGVuZGV2KSk7Cj4gLSAgICAg ICAgfQo+ICsgICAgICAgIFFMSVNUX0lOU0VSVF9IRUFEKCZ4ZW5idXMtPm9mZmxpbmVfZGV2aWNl cywgeGVuZGV2LCBsaXN0KTsKCkkgcmVhbGl6ZSBub3cgdGhhdCBJIHNob3VsZCBoYXZlIGEgY2hl Y2sgaGVyZSB0byBtYWtlIHN1cmUgdGhlIGFib3ZlIGRvZXMgbm90IGhhcHBlbiB0d2ljZS4gSSds bCBzZW5kIGEgdjIuCgogIFBhdWwKCj4gCj4gLSAgICAgICAgaWYgKGxvY2FsX2Vycikgewo+IC0g ICAgICAgICAgICBlcnJvcl9yZXBvcnRfZXJyKGxvY2FsX2Vycik7Cj4gLSAgICAgICAgfQo+ICsg ICAgICAgIC8qCj4gKyAgICAgICAgICogUmUtd3JpdGUgdGhlIHN0YXRlIHRvIGNhdXNlIGEgWGVu QnVzIGJhY2tlbmRfd2F0Y2ggbm90aWZpY2F0aW9uLAo+ICsgICAgICAgICAqIHJlc3VsdGluZyBp biBhIGNhbGwgdG8geGVuX2J1c19jbGVhbnVwKCkuCj4gKyAgICAgICAgICovCj4gKyAgICAgICAg eGVuX2RldmljZV9iYWNrZW5kX3ByaW50Zih4ZW5kZXYsICJzdGF0ZSIsICIldSIsIHN0YXRlKTsK PiAgICAgIH0KPiAgfQo+IAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2h3L3hlbi94ZW4tYnVzLmgg Yi9pbmNsdWRlL2h3L3hlbi94ZW4tYnVzLmgKPiBpbmRleCAwZDE5ODE0OGY2Li4xNWQ3MWFmZjcw IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvaHcveGVuL3hlbi1idXMuaAo+ICsrKyBiL2luY2x1ZGUv aHcveGVuL3hlbi1idXMuaAo+IEBAIC0zMyw2ICszMyw3IEBAIHR5cGVkZWYgc3RydWN0IFhlbkRl dmljZSB7Cj4gICAgICB4ZW5nbnR0YWJfaGFuZGxlICp4Z3RoOwo+ICAgICAgYm9vbCBmZWF0dXJl X2dyYW50X2NvcHk7Cj4gICAgICBRTElTVF9IRUFEKCwgWGVuRXZlbnRDaGFubmVsKSBldmVudF9j aGFubmVsczsKPiArICAgIFFMSVNUX0VOVFJZKFhlbkRldmljZSkgbGlzdDsKPiAgfSBYZW5EZXZp Y2U7Cj4gCj4gIHR5cGVkZWYgY2hhciAqKCpYZW5EZXZpY2VHZXROYW1lKShYZW5EZXZpY2UgKnhl bmRldiwgRXJyb3IgKiplcnJwKTsKPiBAQCAtNjgsNiArNjksNyBAQCB0eXBlZGVmIHN0cnVjdCBY ZW5CdXMgewo+ICAgICAgc3RydWN0IHhzX2hhbmRsZSAqeHNoOwo+ICAgICAgWGVuV2F0Y2hMaXN0 ICp3YXRjaF9saXN0Owo+ICAgICAgWGVuV2F0Y2ggKmJhY2tlbmRfd2F0Y2g7Cj4gKyAgICBRTElT VF9IRUFEKCwgWGVuRGV2aWNlKSBvZmZsaW5lX2RldmljZXM7Cj4gIH0gWGVuQnVzOwo+IAo+ICB0 eXBlZGVmIHN0cnVjdCBYZW5CdXNDbGFzcyB7Cj4gLS0KPiAyLjIwLjEuMi5nYjIxZWJiNgoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMu eGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=