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.5 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,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 B3A48C35254 for ; Mon, 17 Feb 2020 10:06:05 +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 736B6206F4 for ; Mon, 17 Feb 2020 10:06:05 +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="gaJjrAWO" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 736B6206F4 Authentication-Results: mail.kernel.org; dmarc=fail (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 1j3dHO-0000sn-0h; Mon, 17 Feb 2020 10:05:30 +0000 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 1j3dHM-0000sh-Uv for xen-devel@lists.xenproject.org; Mon, 17 Feb 2020 10:05:29 +0000 X-Inumbo-ID: 057cdea4-516d-11ea-bfc5-12813bfff9fa Received: from esa4.hc3370-68.iphmx.com (unknown [216.71.155.144]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 057cdea4-516d-11ea-bfc5-12813bfff9fa; Mon, 17 Feb 2020 10:05:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1581933927; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=2gB/QZ7u4q45t/yp2TSnLERU6K4lxysDb+964WivSl4=; b=gaJjrAWOl9gH9G9o5vGnVq9seJSv+TnRNG4cNcC0DrwISClwnru+p0eh AubGmzsaBfIqsxYdvZo2IB+/Q1fzZS5ZqezLt1HbUPPquz+wzfTlhl8j1 nkoV4gzr3+TSwo/VkgHiKfqrKBHv5Jha2XJ4FW09gEIzJBJWbvdPjN7R0 0=; Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=roger.pau@citrix.com; spf=Pass smtp.mailfrom=roger.pau@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa4.hc3370-68.iphmx.com: no sender authenticity information available from domain of roger.pau@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa4.hc3370-68.iphmx.com: domain of roger.pau@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@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 ip4:168.245.78.127 ~all" Received-SPF: None (esa4.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=esa4.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: 2b092rFWJXgE74OPGqqRjNgmQSjSJodO8MuU0fMmusZ8vT5zX3uBpug0UoVBfJdPO1oATdAEU9 O+F05nELxG/as+2DHKBP5vJA7MCOMOBce127FfljLI+GeJi3m5rRwbLiBqpYrAMWfXB9bFzcfd quKX7bT7fDofLxaD1cSTHh7deVSnfwxDHDE4ozjmEk6bDse/8GdboK8xdvkMRazujeDUsJegpm G0fuzH/E2uDSb/INDIVGdSENM1uNKmBlyq+53vyYhflSU9u1FNGTYSoFUdg5dDdJ6SLslq/bI8 wsI= X-SBRS: 2.7 X-MesageID: 13179199 X-Ironport-Server: esa4.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.70,452,1574139600"; d="scan'208";a="13179199" Date: Mon, 17 Feb 2020 11:05:09 +0100 From: Roger Pau =?utf-8?B?TW9ubsOp?= To: Anchal Agarwal Message-ID: <20200217100509.GE4679@Air-de-Roger> References: <890c404c585d7790514527f0c021056a7be6e748.1581721799.git.anchalag@amazon.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <890c404c585d7790514527f0c021056a7be6e748.1581721799.git.anchalag@amazon.com> X-ClientProxiedBy: AMSPEX02CAS02.citrite.net (10.69.22.113) To AMSPEX02CL01.citrite.net (10.69.22.125) Subject: Re: [Xen-devel] [RFC PATCH v3 06/12] xen-blkfront: add callbacks for PM suspend and hibernation 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: eduval@amazon.com, len.brown@intel.com, peterz@infradead.org, benh@kernel.crashing.org, x86@kernel.org, linux-mm@kvack.org, pavel@ucw.cz, hpa@zytor.com, tglx@linutronix.de, sstabellini@kernel.org, fllinden@amaozn.com, kamatam@amazon.com, mingo@redhat.com, xen-devel@lists.xenproject.org, sblbir@amazon.com, axboe@kernel.dk, konrad.wilk@oracle.com, bp@alien8.de, boris.ostrovsky@oracle.com, jgross@suse.com, netdev@vger.kernel.org, linux-pm@vger.kernel.org, rjw@rjwysocki.net, linux-kernel@vger.kernel.org, vkuznets@redhat.com, davem@davemloft.net, dwmw@amazon.co.uk Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" T24gRnJpLCBGZWIgMTQsIDIwMjAgYXQgMTE6MjU6MzRQTSArMDAwMCwgQW5jaGFsIEFnYXJ3YWwg d3JvdGU6Cj4gRnJvbTogTXVuZWhpc2EgS2FtYXRhIDxrYW1hdGFtQGFtYXpvbi5jb20KPiAKPiBB ZGQgZnJlZXplLCB0aGF3IGFuZCByZXN0b3JlIGNhbGxiYWNrcyBmb3IgUE0gc3VzcGVuZCBhbmQg aGliZXJuYXRpb24KPiBzdXBwb3J0LiBBbGwgZnJvbnRlbmQgZHJpdmVycyB0aGF0IG5lZWRzIHRv IHVzZSBQTV9ISUJFUk5BVElPTi9QTV9TVVNQRU5ECj4gZXZlbnRzLCBuZWVkIHRvIGltcGxlbWVu dCB0aGVzZSB4ZW5idXNfZHJpdmVyIGNhbGxiYWNrcy4KPiBUaGUgZnJlZXplIGhhbmRsZXIgc3Rv cHMgYSBibG9jay1sYXllciBxdWV1ZSBhbmQgZGlzY29ubmVjdCB0aGUKPiBmcm9udGVuZCBmcm9t IHRoZSBiYWNrZW5kIHdoaWxlIGZyZWVpbmcgcmluZ19pbmZvIGFuZCBhc3NvY2lhdGVkIHJlc291 cmNlcy4KPiBUaGUgcmVzdG9yZSBoYW5kbGVyIHJlLWFsbG9jYXRlcyByaW5nX2luZm8gYW5kIHJl LWNvbm5lY3QgdG8gdGhlCj4gYmFja2VuZCwgc28gdGhlIHJlc3Qgb2YgdGhlIGtlcm5lbCBjYW4g Y29udGludWUgdG8gdXNlIHRoZSBibG9jayBkZXZpY2UKPiB0cmFuc3BhcmVudGx5LiBBbHNvLCB0 aGUgaGFuZGxlcnMgYXJlIHVzZWQgZm9yIGJvdGggUE0gc3VzcGVuZCBhbmQKPiBoaWJlcm5hdGlv biBzbyB0aGF0IHdlIGNhbiBrZWVwIHRoZSBleGlzdGluZyBzdXNwZW5kL3Jlc3VtZSBjYWxsYmFj a3MgZm9yCj4gWGVuIHN1c3BlbmQgd2l0aG91dCBtb2RpZmljYXRpb24uIEJlZm9yZSBkaXNjb25u ZWN0aW5nIGZyb20gYmFja2VuZCwKPiB3ZSBuZWVkIHRvIHByZXZlbnQgYW55IG5ldyBJTyBmcm9t IGJlaW5nIHF1ZXVlZCBhbmQgd2FpdCBmb3IgZXhpc3RpbmcKPiBJTyB0byBjb21wbGV0ZS4KClRo aXMgaXMgZGlmZmVyZW50IGZyb20gWGVuICh4ZW5zdG9yZSkgaW5pdGlhdGVkIHN1c3BlbnNpb24s IGFzIGluIHRoYXQKY2FzZSBMaW51eCBkb2Vzbid0IGZsdXNoIHRoZSByaW5ncyBvciBkaXNjb25u ZWN0cyBmcm9tIHRoZSBiYWNrZW5kLgoKVGhpcyBpcyBkb25lIHNvIHRoYXQgaW4gY2FzZSBzdXNw ZW5zaW9ucyBmYWlscyB0aGUgcmVjb3ZlcnkgZG9lc24ndApuZWVkIHRvIHJlY29ubmVjdCB0aGUg UFYgZGV2aWNlcywgYW5kIGluIG9yZGVyIHRvIHNwZWVkIHVwIHN1c3BlbnNpb24KdGltZSAoaWU6 IHdhaXRpbmcgZm9yIGFsbCBxdWV1ZXMgdG8gYmUgZmx1c2hlZCBjYW4gdGFrZSB0aW1lIGFzIExp bnV4CnN1cHBvcnRzIG11bHRpcXVldWUsIG11bHRpcGFnZSByaW5ncyBhbmQgaW5kaXJlY3QgZGVz Y3JpcHRvcnMpLCBhbmQKdGhlIGJhY2tlbmQgY291bGQgYmUgY29udGVuZGVkIGlmIHRoZXJlJ3Mg YSBsb3Qgb2YgSU8gcHJlc3N1cmUgZnJvbQpndWVzdHMuCgpMaW51eCBhbHJlYWR5IGtlZXBzIGEg c2hhZG93IG9mIHRoZSByaW5nIGNvbnRlbnRzLCBzbyBpbi1mbGlnaHQKcmVxdWVzdHMgY2FuIGJl IHJlLWlzc3VlZCBhZnRlciB0aGUgZnJvbnRlbmQgaGFzIHJlY29ubmVjdGVkIGR1cmluZwpyZXN1 bWUuCgo+IEZyZWV6ZS91bmZyZWV6ZSBvZiB0aGUgcXVldWVzIHdpbGwgZ3VhcmFudGVlIHRoYXQg dGhlcmUKPiBhcmUgbm8gcmVxdWVzdHMgaW4gdXNlIG9uIHRoZSBzaGFyZWQgcmluZy4KPiAKPiBO b3RlOkZvciBvbGRlciBiYWNrZW5kcyxpZiBhIGJhY2tlbmQgZG9lc24ndCBoYXZlIGNvbW1pdCcx MmVhNzI5NjQ1YWNlJwo+IHhlbi9ibGtiYWNrOiB1bm1hcCBhbGwgcGVyc2lzdGVudCBncmFudHMg d2hlbiBmcm9udGVuZCBnZXRzIGRpc2Nvbm5lY3RlZCwKPiB0aGUgZnJvbnRlbmQgbWF5IHNlZSBt YXNzaXZlIGFtb3VudCBvZiBncmFudCB0YWJsZSB3YXJuaW5nIHdoZW4gZnJlZWluZwo+IHJlc291 cmNlcy4KPiBbICAgMzYuODUyNjU5XSBkZWZlcnJpbmcgZy5lLiAweGY5IChwZm4gMHhmZmZmZmZm ZmZmZmZmZmZmKQo+IFsgICAzNi44NTUwODldIHhlbjpncmFudF90YWJsZTogV0FSTklORzplLmcu IDB4MTEyIHN0aWxsIGluIHVzZSEKPiAKPiBJbiB0aGlzIGNhc2UsIHBlcnNpc3RlbnQgZ3JhbnRz IHdvdWxkIG5lZWQgdG8gYmUgZGlzYWJsZWQuCj4gCj4gW0FuY2hhbCBDaGFuZ2Vsb2c6IFJlbW92 ZWQgdGltZW91dC9yZXF1ZXN0IGR1cmluZyBibGtmcm9udCBmcmVlemUuCj4gRml4ZWQgbWFqb3Ig cGFydCBvZiB0aGUgY29kZSB0byB3b3JrIHdpdGggYmxrLW1xXQo+IFNpZ25lZC1vZmYtYnk6IEFu Y2hhbCBBZ2Fyd2FsIDxhbmNoYWxhZ0BhbWF6b24uY29tPgo+IFNpZ25lZC1vZmYtYnk6IE11bmVo aXNhIEthbWF0YSA8a2FtYXRhbUBhbWF6b24uY29tPgo+IC0tLQo+ICBkcml2ZXJzL2Jsb2NrL3hl bi1ibGtmcm9udC5jIHwgMTE5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCj4g IDEgZmlsZSBjaGFuZ2VkLCAxMTIgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYyBiL2RyaXZlcnMvYmxvY2sv eGVuLWJsa2Zyb250LmMKPiBpbmRleCA0NzgxMjAyMzM3NTAuLmQ3MTVlZDNjYjY5YSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtmcm9udC5jCj4gKysrIGIvZHJpdmVycy9ibG9j ay94ZW4tYmxrZnJvbnQuYwo+IEBAIC00Nyw2ICs0Nyw4IEBACj4gICNpbmNsdWRlIDxsaW51eC9i aXRtYXAuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L3dv cmtxdWV1ZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgo+ICsjaW5jbHVkZSA8 bGludXgvZGVsYXkuaD4KPiAgCj4gICNpbmNsdWRlIDx4ZW4veGVuLmg+Cj4gICNpbmNsdWRlIDx4 ZW4veGVuYnVzLmg+Cj4gQEAgLTc5LDYgKzgxLDggQEAgZW51bSBibGtpZl9zdGF0ZSB7Cj4gIAlC TEtJRl9TVEFURV9ESVNDT05ORUNURUQsCj4gIAlCTEtJRl9TVEFURV9DT05ORUNURUQsCj4gIAlC TEtJRl9TVEFURV9TVVNQRU5ERUQsCj4gKwlCTEtJRl9TVEFURV9GUkVFWklORywKPiArCUJMS0lG X1NUQVRFX0ZST1pFTgo+ICB9Owo+ICAKPiAgc3RydWN0IGdyYW50IHsKPiBAQCAtMjIwLDYgKzIy NCw3IEBAIHN0cnVjdCBibGtmcm9udF9pbmZvCj4gIAlzdHJ1Y3QgbGlzdF9oZWFkIHJlcXVlc3Rz Owo+ICAJc3RydWN0IGJpb19saXN0IGJpb19saXN0Owo+ICAJc3RydWN0IGxpc3RfaGVhZCBpbmZv X2xpc3Q7Cj4gKwlzdHJ1Y3QgY29tcGxldGlvbiB3YWl0X2JhY2tlbmRfZGlzY29ubmVjdGVkOwo+ ICB9Owo+ICAKPiAgc3RhdGljIHVuc2lnbmVkIGludCBucl9taW5vcnM7Cj4gQEAgLTI2MSw2ICsy NjYsNyBAQCBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKG1pbm9yX2xvY2spOwo+ICBzdGF0aWMgaW50 IGJsa2Zyb250X3NldHVwX2luZGlyZWN0KHN0cnVjdCBibGtmcm9udF9yaW5nX2luZm8gKnJpbmZv KTsKPiAgc3RhdGljIHZvaWQgYmxrZnJvbnRfZ2F0aGVyX2JhY2tlbmRfZmVhdHVyZXMoc3RydWN0 IGJsa2Zyb250X2luZm8gKmluZm8pOwo+ICBzdGF0aWMgaW50IG5lZ290aWF0ZV9tcShzdHJ1Y3Qg YmxrZnJvbnRfaW5mbyAqaW5mbyk7Cj4gK3N0YXRpYyB2b2lkIF9fYmxraWZfZnJlZShzdHJ1Y3Qg YmxrZnJvbnRfaW5mbyAqaW5mbyk7Cj4gIAo+ICBzdGF0aWMgaW50IGdldF9pZF9mcm9tX2ZyZWVs aXN0KHN0cnVjdCBibGtmcm9udF9yaW5nX2luZm8gKnJpbmZvKQo+ICB7Cj4gQEAgLTk5NSw2ICsx MDAxLDcgQEAgc3RhdGljIGludCB4bHZiZF9pbml0X2Jsa19xdWV1ZShzdHJ1Y3QgZ2VuZGlzayAq Z2QsIHUxNiBzZWN0b3Jfc2l6ZSwKPiAgCWluZm8tPnNlY3Rvcl9zaXplID0gc2VjdG9yX3NpemU7 Cj4gIAlpbmZvLT5waHlzaWNhbF9zZWN0b3Jfc2l6ZSA9IHBoeXNpY2FsX3NlY3Rvcl9zaXplOwo+ ICAJYmxraWZfc2V0X3F1ZXVlX2xpbWl0cyhpbmZvKTsKPiArCWluaXRfY29tcGxldGlvbigmaW5m by0+d2FpdF9iYWNrZW5kX2Rpc2Nvbm5lY3RlZCk7Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiBA QCAtMTIxOCw2ICsxMjI1LDggQEAgc3RhdGljIHZvaWQgeGx2YmRfcmVsZWFzZV9nZW5kaXNrKHN0 cnVjdCBibGtmcm9udF9pbmZvICppbmZvKQo+ICAvKiBBbHJlYWR5IGhvbGQgcmluZm8tPnJpbmdf bG9jay4gKi8KPiAgc3RhdGljIGlubGluZSB2b2lkIGtpY2tfcGVuZGluZ19yZXF1ZXN0X3F1ZXVl c19sb2NrZWQoc3RydWN0IGJsa2Zyb250X3JpbmdfaW5mbyAqcmluZm8pCj4gIHsKPiArCWlmICh1 bmxpa2VseShyaW5mby0+ZGV2X2luZm8tPmNvbm5lY3RlZCA9PSBCTEtJRl9TVEFURV9GUkVFWklO RykpCj4gKwkJcmV0dXJuOwo+ICAJaWYgKCFSSU5HX0ZVTEwoJnJpbmZvLT5yaW5nKSkKPiAgCQli bGtfbXFfc3RhcnRfc3RvcHBlZF9od19xdWV1ZXMocmluZm8tPmRldl9pbmZvLT5ycSwgdHJ1ZSk7 Cj4gIH0KPiBAQCAtMTM0MSw4ICsxMzUwLDYgQEAgc3RhdGljIHZvaWQgYmxraWZfZnJlZV9yaW5n KHN0cnVjdCBibGtmcm9udF9yaW5nX2luZm8gKnJpbmZvKQo+ICAKPiAgc3RhdGljIHZvaWQgYmxr aWZfZnJlZShzdHJ1Y3QgYmxrZnJvbnRfaW5mbyAqaW5mbywgaW50IHN1c3BlbmQpCj4gIHsKPiAt CXVuc2lnbmVkIGludCBpOwo+IC0KPiAgCS8qIFByZXZlbnQgbmV3IHJlcXVlc3RzIGJlaW5nIGlz c3VlZCB1bnRpbCB3ZSBmaXggdGhpbmdzIHVwLiAqLwo+ICAJaW5mby0+Y29ubmVjdGVkID0gc3Vz cGVuZCA/Cj4gIAkJQkxLSUZfU1RBVEVfU1VTUEVOREVEIDogQkxLSUZfU1RBVEVfRElTQ09OTkVD VEVEOwo+IEBAIC0xMzUwLDYgKzEzNTcsMTMgQEAgc3RhdGljIHZvaWQgYmxraWZfZnJlZShzdHJ1 Y3QgYmxrZnJvbnRfaW5mbyAqaW5mbywgaW50IHN1c3BlbmQpCj4gIAlpZiAoaW5mby0+cnEpCj4g IAkJYmxrX21xX3N0b3BfaHdfcXVldWVzKGluZm8tPnJxKTsKPiAgCj4gKwlfX2Jsa2lmX2ZyZWUo aW5mbyk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIF9fYmxraWZfZnJlZShzdHJ1Y3QgYmxrZnJv bnRfaW5mbyAqaW5mbykKPiArewo+ICsJdW5zaWduZWQgaW50IGk7Cj4gKwo+ICAJZm9yIChpID0g MDsgaSA8IGluZm8tPm5yX3JpbmdzOyBpKyspCj4gIAkJYmxraWZfZnJlZV9yaW5nKCZpbmZvLT5y aW5mb1tpXSk7Cj4gIAo+IEBAIC0xNTUzLDggKzE1NjcsMTAgQEAgc3RhdGljIGlycXJldHVybl90 IGJsa2lmX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCj4gIAlzdHJ1Y3QgYmxrZnJv bnRfcmluZ19pbmZvICpyaW5mbyA9IChzdHJ1Y3QgYmxrZnJvbnRfcmluZ19pbmZvICopZGV2X2lk Owo+ICAJc3RydWN0IGJsa2Zyb250X2luZm8gKmluZm8gPSByaW5mby0+ZGV2X2luZm87Cj4gIAo+ IC0JaWYgKHVubGlrZWx5KGluZm8tPmNvbm5lY3RlZCAhPSBCTEtJRl9TVEFURV9DT05ORUNURUQp KQo+IC0JCXJldHVybiBJUlFfSEFORExFRDsKPiArCWlmICh1bmxpa2VseShpbmZvLT5jb25uZWN0 ZWQgIT0gQkxLSUZfU1RBVEVfQ09OTkVDVEVEKSkgewo+ICsJCWlmIChpbmZvLT5jb25uZWN0ZWQg IT0gQkxLSUZfU1RBVEVfRlJFRVpJTkcpCj4gKwkJCXJldHVybiBJUlFfSEFORExFRDsKPiArCX0K PiAgCj4gIAlzcGluX2xvY2tfaXJxc2F2ZSgmcmluZm8tPnJpbmdfbG9jaywgZmxhZ3MpOwo+ICAg YWdhaW46Cj4gQEAgLTIwMjAsNiArMjAzNiw3IEBAIHN0YXRpYyBpbnQgYmxraWZfcmVjb3Zlcihz dHJ1Y3QgYmxrZnJvbnRfaW5mbyAqaW5mbykKPiAgCXN0cnVjdCBiaW8gKmJpbzsKPiAgCXVuc2ln bmVkIGludCBzZWdzOwo+ICAKPiArCWJvb2wgZnJvemVuID0gaW5mby0+Y29ubmVjdGVkID09IEJM S0lGX1NUQVRFX0ZST1pFTjsKPiAgCWJsa2Zyb250X2dhdGhlcl9iYWNrZW5kX2ZlYXR1cmVzKGlu Zm8pOwo+ICAJLyogUmVzZXQgbGltaXRzIGNoYW5nZWQgYnkgYmxrX21xX3VwZGF0ZV9ucl9od19x dWV1ZXMoKS4gKi8KPiAgCWJsa2lmX3NldF9xdWV1ZV9saW1pdHMoaW5mbyk7Cj4gQEAgLTIwNDYs NiArMjA2Myw5IEBAIHN0YXRpYyBpbnQgYmxraWZfcmVjb3ZlcihzdHJ1Y3QgYmxrZnJvbnRfaW5m byAqaW5mbykKPiAgCQlraWNrX3BlbmRpbmdfcmVxdWVzdF9xdWV1ZXMocmluZm8pOwo+ICAJfQo+ ICAKPiArCWlmIChmcm96ZW4pCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICAJbGlzdF9mb3JfZWFjaF9l bnRyeV9zYWZlKHJlcSwgbiwgJmluZm8tPnJlcXVlc3RzLCBxdWV1ZWxpc3QpIHsKPiAgCQkvKiBS ZXF1ZXVlIHBlbmRpbmcgcmVxdWVzdHMgKGZsdXNoIG9yIGRpc2NhcmQpICovCj4gIAkJbGlzdF9k ZWxfaW5pdCgmcmVxLT5xdWV1ZWxpc3QpOwo+IEBAIC0yMzU5LDYgKzIzNzksNyBAQCBzdGF0aWMg dm9pZCBibGtmcm9udF9jb25uZWN0KHN0cnVjdCBibGtmcm9udF9pbmZvICppbmZvKQo+ICAKPiAg CQlyZXR1cm47Cj4gIAljYXNlIEJMS0lGX1NUQVRFX1NVU1BFTkRFRDoKPiArCWNhc2UgQkxLSUZf U1RBVEVfRlJPWkVOOgo+ICAJCS8qCj4gIAkJICogSWYgd2UgYXJlIHJlY292ZXJpbmcgZnJvbSBz dXNwZW5zaW9uLCB3ZSBuZWVkIHRvIHdhaXQKPiAgCQkgKiBmb3IgdGhlIGJhY2tlbmQgdG8gYW5u b3VuY2UgaXQncyBmZWF0dXJlcyBiZWZvcmUKPiBAQCAtMjQ3NiwxMiArMjQ5NywzNyBAQCBzdGF0 aWMgdm9pZCBibGtiYWNrX2NoYW5nZWQoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKPiAgCQli cmVhazsKPiAgCj4gIAljYXNlIFhlbmJ1c1N0YXRlQ2xvc2VkOgo+IC0JCWlmIChkZXYtPnN0YXRl ID09IFhlbmJ1c1N0YXRlQ2xvc2VkKQo+ICsJCWlmIChkZXYtPnN0YXRlID09IFhlbmJ1c1N0YXRl Q2xvc2VkKSB7Cj4gKwkJCWlmIChpbmZvLT5jb25uZWN0ZWQgPT0gQkxLSUZfU1RBVEVfRlJFRVpJ TkcpIHsKPiArCQkJCV9fYmxraWZfZnJlZShpbmZvKTsKPiArCQkJCWluZm8tPmNvbm5lY3RlZCA9 IEJMS0lGX1NUQVRFX0ZST1pFTjsKPiArCQkJCWNvbXBsZXRlKCZpbmZvLT53YWl0X2JhY2tlbmRf ZGlzY29ubmVjdGVkKTsKPiArCQkJCWJyZWFrOwo+ICsJCQl9Cj4gKwo+ICAJCQlicmVhazsKPiAr CQl9Cj4gKwo+ICsJCS8qCj4gKwkJICogV2UgbWF5IHNvbWVob3cgcmVjZWl2ZSBiYWNrZW5kJ3Mg Q2xvc2VkIGFnYWluIHdoaWxlIHRoYXdpbmcKPiArCQkgKiBvciByZXN0b3JpbmcgYW5kIGl0IGNh dXNlcyB0aGF3aW5nIG9yIHJlc3RvcmluZyB0byBmYWlsLgo+ICsJCSAqIElnbm9yZSBzdWNoIHVu ZXhwZWN0ZWQgc3RhdGUgYW55d2F5Lgo+ICsJCSAqLwo+ICsJCWlmIChpbmZvLT5jb25uZWN0ZWQg PT0gQkxLSUZfU1RBVEVfRlJPWkVOICYmCj4gKwkJCQlkZXYtPnN0YXRlID09IFhlbmJ1c1N0YXRl SW5pdGlhbGlzZWQpIHsKPiArCQkJZGV2X2RiZygmZGV2LT5kZXYsCj4gKwkJCQkJImlnbm9yZSB0 aGUgYmFja2VuZCdzIENsb3NlZCBzdGF0ZTogJXMiLAo+ICsJCQkJCWRldi0+bm9kZW5hbWUpOwo+ ICsJCQlicmVhazsKPiArCQl9Cj4gIAkJLyogZmFsbCB0aHJvdWdoICovCj4gIAljYXNlIFhlbmJ1 c1N0YXRlQ2xvc2luZzoKPiAtCQlpZiAoaW5mbykKPiAtCQkJYmxrZnJvbnRfY2xvc2luZyhpbmZv KTsKPiArCQlpZiAoaW5mbykgewo+ICsJCQlpZiAoaW5mby0+Y29ubmVjdGVkID09IEJMS0lGX1NU QVRFX0ZSRUVaSU5HKQo+ICsJCQkJeGVuYnVzX2Zyb250ZW5kX2Nsb3NlZChkZXYpOwo+ICsJCQll bHNlCj4gKwkJCQlibGtmcm9udF9jbG9zaW5nKGluZm8pOwo+ICsJCX0KPiAgCQlicmVhazsKPiAg CX0KPiAgfQo+IEBAIC0yNjI1LDYgKzI2NzEsNjIgQEAgc3RhdGljIHZvaWQgYmxraWZfcmVsZWFz ZShzdHJ1Y3QgZ2VuZGlzayAqZGlzaywgZm1vZGVfdCBtb2RlKQo+ICAJbXV0ZXhfdW5sb2NrKCZi bGtmcm9udF9tdXRleCk7Cj4gIH0KPiAgCj4gK3N0YXRpYyBpbnQgYmxrZnJvbnRfZnJlZXplKHN0 cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYpCj4gK3sKPiArCXVuc2lnbmVkIGludCBpOwo+ICsJc3Ry dWN0IGJsa2Zyb250X2luZm8gKmluZm8gPSBkZXZfZ2V0X2RydmRhdGEoJmRldi0+ZGV2KTsKPiAr CXN0cnVjdCBibGtmcm9udF9yaW5nX2luZm8gKnJpbmZvOwo+ICsJLyogVGhpcyB3b3VsZCBiZSBy ZWFzb25hYmxlIHRpbWVvdXQgYXMgdXNlZCBpbiB4ZW5idXNfZGV2X3NodXRkb3duKCkgKi8KPiAr CXVuc2lnbmVkIGludCB0aW1lb3V0ID0gNSAqIEhaOwo+ICsJaW50IGVyciA9IDA7Cj4gKwo+ICsJ aW5mby0+Y29ubmVjdGVkID0gQkxLSUZfU1RBVEVfRlJFRVpJTkc7Cj4gKwo+ICsJYmxrX21xX2Zy ZWV6ZV9xdWV1ZShpbmZvLT5ycSk7Cj4gKwlibGtfbXFfcXVpZXNjZV9xdWV1ZShpbmZvLT5ycSk7 Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IGluZm8tPm5yX3JpbmdzOyBpKyspIHsKPiArCQlyaW5m byA9ICZpbmZvLT5yaW5mb1tpXTsKPiArCj4gKwkJZ250dGFiX2NhbmNlbF9mcmVlX2NhbGxiYWNr KCZyaW5mby0+Y2FsbGJhY2spOwo+ICsJCWZsdXNoX3dvcmsoJnJpbmZvLT53b3JrKTsKPiArCX0K PiArCj4gKwkvKiBLaWNrIHRoZSBiYWNrZW5kIHRvIGRpc2Nvbm5lY3QgKi8KPiArCXhlbmJ1c19z d2l0Y2hfc3RhdGUoZGV2LCBYZW5idXNTdGF0ZUNsb3NpbmcpOwoKQXJlIHlvdSBzdXJlIHRoaXMg aXMgc2FmZT8KCkkgZG9uJ3QgdGhpbmsgeW91IHdhaXQgZm9yIGFsbCByZXF1ZXN0cyBwZW5kaW5n IG9uIHRoZSByaW5nIHRvIGJlCmZpbmlzaGVkIGJ5IHRoZSBiYWNrZW5kLCBhbmQgaGVuY2UgeW91 IG1pZ2h0IGxvb3NlIHJlcXVlc3RzIGFzIHRoZQpvbmVzIG9uIHRoZSByaW5nIHdvdWxkIG5vdCBi ZSByZS1pc3N1ZWQgYnkgYmxrZnJvbnRfcmVzdG9yZSBBRkFJQ1QuCgpUaGFua3MsIFJvZ2VyLgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0 cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==