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=-11.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 44AE3C433E7 for ; Mon, 12 Oct 2020 15:37:36 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 CD5D82087D for ; Mon, 12 Oct 2020 15:37:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="MtQ+XV8u"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=nvidia.com header.i=@nvidia.com header.b="FBkDCHw2" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CD5D82087D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nvidia.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=u9JDKHtWz4ZlMQYj7W9elLkNjpPbM16KvVI65j6I878=; b=MtQ+XV8u9Ifz9b0NjHjyRN4oi ba9kOr5byrt3oYxqpj6XlCo7UP2HwFLNXljYtt3GpjjcBR0nB8eurozbB2+HXRu1L8fGk4qJedxjH QvJ2GUyltIjS0zS/2y5wMLrYUecj/4d03xkmIytrZVMcRm29PWBPk9pkpaONkOljDFZLM32pO09FG NaEIr+6cW5YJE16YEF0wE2/6xRLrq4sO4rVA0yrtJqocWs/PAx59sAjA3JsvsE/AEHA9x+HO55Ds4 GoG2WL7uVZPgSPMaNdgLUdF6b0oCHzh+LmmjAhMJufMdASugnLZii9/GIHnpDkWPG7QjKucZ1PYOB OC95pmfqQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kRzs0-0001C7-7P; Mon, 12 Oct 2020 15:36:16 +0000 Received: from hqnvemgate26.nvidia.com ([216.228.121.65]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kRzrw-0001Ac-7G for linux-arm-kernel@lists.infradead.org; Mon, 12 Oct 2020 15:36:14 +0000 Received: from hqmail.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate26.nvidia.com (using TLS: TLSv1.2, AES256-SHA) id ; Mon, 12 Oct 2020 08:35:56 -0700 Received: from [10.25.77.115] (172.20.13.39) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Mon, 12 Oct 2020 15:35:58 +0000 Subject: Re: [PATCH v7 2/2] PCI: dwc: Fix MSI page leakage in suspend/resume To: Robin Murphy , Jisheng Zhang , Kishon Vijay Abraham I , Lorenzo Pieralisi , Rob Herring , Bjorn Helgaas , Jingoo Han , Gustavo Pimentel References: <20201009155311.22d3caa5@xhacker.debian> <20201009155505.5a580ef5@xhacker.debian> <38a00dde-598f-b6de-ecf3-5d012bd7594a@arm.com> From: Vidya Sagar Message-ID: <1a1c41f1-4085-6b24-adea-d1e0867e7d9d@nvidia.com> Date: Mon, 12 Oct 2020 21:05:53 +0530 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.2.1 MIME-Version: 1.0 In-Reply-To: <38a00dde-598f-b6de-ecf3-5d012bd7594a@arm.com> Content-Language: en-US X-Originating-IP: [172.20.13.39] X-ClientProxiedBy: HQMAIL107.nvidia.com (172.20.187.13) To HQMAIL107.nvidia.com (172.20.187.13) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1602516956; bh=iMpY4EcqsltfDucfSgNi/HRriIso15sLE1BSSwyiAe4=; h=Subject:To:CC:References:From:Message-ID:Date:User-Agent: MIME-Version:In-Reply-To:Content-Type:Content-Language: Content-Transfer-Encoding:X-Originating-IP:X-ClientProxiedBy; b=FBkDCHw2cXDvEjEFqo6jSf20McjZNBzqDWrpIwOoz29LA9n1utvEQPudD7NkLgntM sG6pDoAbhgNgMcMIDQSVuRgbzg60ZZOvyls7rxgbmlVdB4SUCdNFSEbd4QJDTJ2e2n N2pcTBjZxcv/MOb5rbtpHWezZfmPPt6Op6oTZ3Sy7jWawztXZoN2R5NsCDZ+qkPnSM GR+sGMa5G6UBWCymEKXoZdDYa1dBfiDAGl6RAFdDn9+TFpPxv8EczpalhV+FtXNBFy 1byNv8AYZnTgn2iNnEhCeXpnAMdmWzQQb01I4Q5tFHZAzQcySE18ovp/3XYciLJf+2 N4rY9Va+1Mffg== X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201012_113612_398372_37E10525 X-CRM114-Status: GOOD ( 29.18 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-pci@vger.kernel.org, linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgpPbiAxMC8xMi8yMDIwIDU6MDcgUE0sIFJvYmluIE11cnBoeSB3cm90ZToKPiBFeHRlcm5hbCBl bWFpbDogVXNlIGNhdXRpb24gb3BlbmluZyBsaW5rcyBvciBhdHRhY2htZW50cwo+IAo+IAo+IE9u IDIwMjAtMTAtMDkgMDg6NTUsIEppc2hlbmcgWmhhbmcgd3JvdGU6Cj4+IEN1cnJlbnRseSwgZHdf cGNpZV9tc2lfaW5pdCgpIGFsbG9jYXRlcyBhbmQgbWFwcyBwYWdlIGZvciBtc2ksIHRoZW4KPj4g cHJvZ3JhbSB0aGUgUENJRV9NU0lfQUREUl9MTyBhbmQgUENJRV9NU0lfQUREUl9ISS4gVGhlIFJv b3QgQ29tcGxleAo+PiBtYXkgbG9zZSBwb3dlciBkdXJpbmcgc3VzcGVuZC10by1SQU0sIHNvIHdo ZW4gd2UgcmVzdW1lLCB3ZSB3YW50IHRvCj4+IHJlZG8gdGhlIGxhdHRlciBidXQgbm90IHRoZSBm b3JtZXIuIElmIGRlc2lnbndhcmUgYmFzZWQgZHJpdmVyIChmb3IKPj4gZXhhbXBsZSwgcGNpZS10 ZWdyYTE5NC5jKSBjYWxscyBkd19wY2llX21zaV9pbml0KCkgaW4gcmVzdW1lIHBhdGgsIHRoZQo+ PiBtc2kgcGFnZSB3aWxsIGJlIGxlYWtlZC4KPj4KPj4gQXMgcG9pbnRlZCBvdXQgYnkgUm9iIGFu ZCBBcmQsIHRoZXJlJ3Mgbm8gbmVlZCB0byBhbGxvY2F0ZSBhIHBhZ2UgZm9yCj4+IHRoZSBNU0kg YWRkcmVzcywgd2UgY291bGQgdXNlIGFuIGFkZHJlc3MgaW4gdGhlIGRyaXZlciBkYXRhLgo+Pgo+ PiBUbyBhdm9pZCBtYXAgdGhlIE1TSSBtc2cgYWdhaW4gZHVyaW5nIHJlc3VtZSwgd2UgbW92ZSB0 aGUgbWFwIE1TSSBtc2cKPj4gZnJvbSBkd19wY2llX21zaV9pbml0KCkgdG8gZHdfcGNpZV9ob3N0 X2luaXQoKS4KPiAKPiBZb3Ugc2hvdWxkIG1vdmUgdGhlIHVubWFwIHRoZXJlIGFzIHdlbGwuIEFz IHNvb24gYXMgeW91IGtub3cgd2hhdCB0aGUKPiByZWxldmFudCBhZGRyZXNzIHdvdWxkIGJlIGlm IHlvdSAqd2VyZSogdG8gZG8gRE1BIHRvIHRoaXMgbG9jYXRpb24sIHRoZW4KPiB0aGUgZXhlcmNp c2UgaXMgY29tcGxldGUuIExlYXZpbmcgaXQgbWFwcGVkIGZvciB0aGUgbGlmZXRpbWUgb2YgdGhl Cj4gZGV2aWNlIGluIG9yZGVyIHRvIGRvIG5vdC1ETUEgdG8gaXQgc2VlbXMgcXVlc3Rpb25hYmxl IChhbmQgcmVwcmVzZW50cwo+IHRlY2huaWNhbGx5IGluY29ycmVjdCBBUEkgdXNhZ2Ugd2l0aG91 dCBhdCBsZWFzdCBhIHN5bmNfZm9yX2NwdSBjYWxsCj4gYmVmb3JlIGFueSBvdGhlciBhY2Nlc3Mg dG8gdGhlIGRhdGEpLgo+IAo+IEFub3RoZXIgcG9pbnQgb2Ygbm90ZSBpcyB0aGF0IHVzaW5nIHN0 cmVhbWluZyBETUEgbWFwcGluZ3MgYXQgYWxsIGlzIGEKPiBiaXQgZnJhZ2lsZSAocmVnYXJkbGVz cyBvZiB0aGlzIGNoYW5nZSkuIElmIHRoZSBob3N0IGNvbnRyb2xsZXIgaXRzZWxmCj4gaGFzIGEg bGltaXRlZCBETUEgbWFzayByZWxhdGl2ZSB0byBwaHlzaWNhbCBtZW1vcnkgKHdoaWNoIGludGVn cmF0b3JzCj4gc3RpbGwgc2VlbSB0byBrZWVwIGRvaW5nLi4uKSB0aGVuIHlvdSBjb3VsZCBlbmQg dXAgcHVuY2hpbmcgeW91ciBNU0kKPiBob2xlIHJpZ2h0IGluIHRoZSBtaWRkbGUgb2YgdGhlIFNX SU9UTEIgYm91bmNlIGJ1ZmZlciwgd2hlcmUgaXQncyB0aGVuCj4gYWxtb3N0ICpndWFyYW50ZWVk KiB0byBpbnRlcmZlcmUgd2l0aCByZWFsIERNQSA6KApBZ3JlZSB3aXRoIFJvYmluLiBTaW5jZSB0 aGUgTVNJIHBhZ2UgaXMgZ29pbmcgdG8gYmUgbG9ja2VkIHRpbGwgCnNodXRkb3duL3JlYm9vdCwg d291bGRuJ3QgaXQgbWFrZSBzZW5zZSB0byB1c2UgZG1hX2FsbG9jX2NvaGVyZW50KCkgQVBJPwpB bHNvLCBzaG91bGRuJ3Qgd2UgY2FsbCBkbWFfc2V0X21hc2soKSB0byBsaW1pdCB0aGUgYWRkcmVz cyB0byBvbmx5IAozMi1iaXRzIHNvIGFzIHRvIGVuYWJsZSBNU0kgZm9yIGV2ZW4gdGhvc2UgbGVn YWN5IFBDSWUgZGV2aWNlcyB3aXRoIG9ubHkgCjMyLWJpdCBNU0kgY2FwYWJpbGl0eT8KCi0gVmlk eWEgU2FnYXIKCj4gCj4gSWYgbm8gRFdDIHVzZXJzIGhhdmUgdGhhdCBwcm9ibGVtIGFuZCB0aGUg Y3VycmVudCBjb2RlIGlzIHdvcmtpbmcgd2VsbAo+IGVub3VnaCwgdGhlbiBJIHNlZSBsaXR0bGUg cmVhc29uIG5vdCB0byBtYWtlIHRoaXMgcGFydHVjdWxhciBjaGFuZ2UgdG8KPiB0aWR5IHVwIHRo ZSBpbXBsZW1lbnRhdGlvbiwganVzdCBiZWFyIGluIG1pbmQgdGhhdCB0aGVyZSdzIGFsd2F5cyB0 aGUKPiBwb3NzaWJpbGl0eSBvZiBoYXZpbmcgdG8gY29tZSBiYWNrIGFuZCBjaGFuZ2UgaXQgeWV0 IGFnYWluIGluIGZ1dHVyZSB0bwo+IG1ha2UgaXQgbW9yZSByb2J1c3QuIEkgaGFkIGl0IGluIG1p bmQgdGhhdCB0aGlzIHRyaWNrIHdhcyBkb25lIHdpdGggYQo+IGNvaGVyZW50IERNQSBhbGxvY2F0 aW9uLCB3aGljaCB3b3VsZCBiZSBzYWZlIGZyb20gYWRkcmVzc2luZyBwcm9ibGVtcwo+IGJ1dCB3 b3VsZCBuZWVkIHRvIGJlIGtlcHQgYXJvdW5kIGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIGRldmlj ZSwgYnV0Cj4gbWF5YmUgdGhhdCB3YXMgYSBkaWZmZXJlbnQgZHJpdmVyIDovCj4gCj4gUm9iaW4u Cj4gCj4+IFN1Z2dlc3RlZC1ieTogUm9iIEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZz4KPj4gU2ln bmVkLW9mZi1ieTogSmlzaGVuZyBaaGFuZyA8SmlzaGVuZy5aaGFuZ0BzeW5hcHRpY3MuY29tPgo+ PiBSZXZpZXdlZC1ieTogUm9iIEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZz4KPj4gLS0tCj4+IMKg IGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1kcmE3eHguY8KgwqDCoMKgwqDCoCB8IDE4 ICsrKysrKysrKy0KPj4gwqAgLi4uL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUt aG9zdC5jIHwgMzMgKysrKysrKysrKy0tLS0tLS0tLQo+PiDCoCBkcml2ZXJzL3BjaS9jb250cm9s bGVyL2R3Yy9wY2llLWRlc2lnbndhcmUuaMKgIHzCoCAyICstCj4+IMKgIDMgZmlsZXMgY2hhbmdl ZCwgMzYgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktZHJhN3h4LmMgCj4+IGIvZHJpdmVycy9wY2kv Y29udHJvbGxlci9kd2MvcGNpLWRyYTd4eC5jCj4+IGluZGV4IDhmMGI2ZDY0NGU0Yi4uNmQwMTJk MmIxZTkwIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktZHJh N3h4LmMKPj4gKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWRyYTd4eC5jCj4+ IEBAIC00NjYsNyArNDY2LDkgQEAgc3RhdGljIHN0cnVjdCBpcnFfY2hpcCAKPj4gZHJhN3h4X3Bj aV9tc2lfYm90dG9tX2lycV9jaGlwID0gewo+PiDCoCBzdGF0aWMgaW50IGRyYTd4eF9wY2llX21z aV9ob3N0X2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4+IMKgIHsKPj4gwqDCoMKgwqDCoCBz dHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKPj4gK8KgwqDCoMKg IHN0cnVjdCBkZXZpY2UgKmRldiA9IHBjaS0+ZGV2Owo+PiDCoMKgwqDCoMKgIHUzMiBjdHJsLCBu dW1fY3RybHM7Cj4+ICvCoMKgwqDCoCBpbnQgcmV0Owo+Pgo+PiDCoMKgwqDCoMKgIHBwLT5tc2lf aXJxX2NoaXAgPSAmZHJhN3h4X3BjaV9tc2lfYm90dG9tX2lycV9jaGlwOwo+Pgo+PiBAQCAtNDgy LDcgKzQ4NCwyMSBAQCBzdGF0aWMgaW50IGRyYTd4eF9wY2llX21zaV9ob3N0X2luaXQoc3RydWN0 IAo+PiBwY2llX3BvcnQgKnBwKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfjApOwo+PiDCoMKgwqDCoMKgIH0KPj4K Pj4gLcKgwqDCoMKgIHJldHVybiBkd19wY2llX2FsbG9jYXRlX2RvbWFpbnMocHApOwo+PiArwqDC oMKgwqAgcmV0ID0gZHdfcGNpZV9hbGxvY2F0ZV9kb21haW5zKHBwKTsKPj4gK8KgwqDCoMKgIGlm IChyZXQpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJldDsKPj4gKwo+PiAr wqDCoMKgwqAgcHAtPm1zaV9kYXRhID0gZG1hX21hcF9zaW5nbGVfYXR0cnMoZGV2LCAmcHAtPm1z aV9tc2csCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6ZW9mKHBwLT5tc2lfbXNnKSwKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBETUFfRlJPTV9ERVZJQ0UsCj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgRE1BX0FUVFJfU0tJUF9DUFVfU1lOQyk7Cj4+ICvCoMKgwqDCoCByZXQgPSBkbWFf bWFwcGluZ19lcnJvcihkZXYsIHBwLT5tc2lfZGF0YSk7Cj4+ICvCoMKgwqDCoCBpZiAocmV0KSB7 Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGV2X2VycihkZXYsICJGYWlsZWQgdG8gbWFw IE1TSSBkYXRhXG4iKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwcC0+bXNpX2RhdGEg PSAwOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGR3X3BjaWVfZnJlZV9tc2kocHApOwo+ PiArwqDCoMKgwqAgfQo+PiArwqDCoMKgwqAgcmV0dXJuIHJldDsKPj4gwqAgfQo+Pgo+PiDCoCBz dGF0aWMgY29uc3Qgc3RydWN0IGR3X3BjaWVfaG9zdF9vcHMgZHJhN3h4X3BjaWVfaG9zdF9vcHMg PSB7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2ln bndhcmUtaG9zdC5jIAo+PiBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdu d2FyZS1ob3N0LmMKPj4gaW5kZXggZDNlOWVhMTFjZTllLi5kMDJjN2U3NDczOGQgMTAwNjQ0Cj4+ IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS1ob3N0LmMK Pj4gKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLWhvc3Qu Ywo+PiBAQCAtMjY2LDMwICsyNjYsMjMgQEAgdm9pZCBkd19wY2llX2ZyZWVfbXNpKHN0cnVjdCBw Y2llX3BvcnQgKnBwKQo+PiDCoMKgwqDCoMKgIGlycV9kb21haW5fcmVtb3ZlKHBwLT5tc2lfZG9t YWluKTsKPj4gwqDCoMKgwqDCoCBpcnFfZG9tYWluX3JlbW92ZShwcC0+aXJxX2RvbWFpbik7Cj4+ Cj4+IC3CoMKgwqDCoCBpZiAocHAtPm1zaV9wYWdlKQo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIF9fZnJlZV9wYWdlKHBwLT5tc2lfcGFnZSk7Cj4+ICvCoMKgwqDCoCBpZiAocHAtPm1zaV9k YXRhKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGR3X3BjaWUgKnBjaSA9 IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3Ry dWN0IGRldmljZSAqZGV2ID0gcGNpLT5kZXY7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBkbWFfdW5tYXBfc2luZ2xlX2F0dHJzKGRldiwgcHAtPm1zaV9kYXRhLCAKPj4gc2l6ZW9m KHBwLT5tc2lfbXNnKSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgRE1BX0ZST01fREVWSUNFLCAKPj4gRE1B X0FUVFJfU0tJUF9DUFVfU1lOQyk7Cj4+ICvCoMKgwqDCoCB9Cj4+IMKgIH0KPj4KPj4gwqAgdm9p ZCBkd19wY2llX21zaV9pbml0KHN0cnVjdCBwY2llX3BvcnQgKnBwKQo+PiDCoCB7Cj4+IMKgwqDC oMKgwqAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4+IC3C oMKgwqDCoCBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRldjsKPj4gLcKgwqDCoMKgIHU2NCBt c2lfdGFyZ2V0Owo+PiArwqDCoMKgwqAgdTY0IG1zaV90YXJnZXQgPSAodTY0KXBwLT5tc2lfZGF0 YTsKPj4KPj4gwqDCoMKgwqDCoCBpZiAoIUlTX0VOQUJMRUQoQ09ORklHX1BDSV9NU0kpKQo+PiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm47Cj4+Cj4+IC3CoMKgwqDCoCBwcC0+bXNp X3BhZ2UgPSBhbGxvY19wYWdlKEdGUF9LRVJORUwpOwo+PiAtwqDCoMKgwqAgcHAtPm1zaV9kYXRh ID0gZG1hX21hcF9wYWdlKGRldiwgcHAtPm1zaV9wYWdlLCAwLCBQQUdFX1NJWkUsCj4+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIERNQV9GUk9NX0RFVklDRSk7Cj4+IC3CoMKgwqDCoCBpZiAoZG1hX21hcHBpbmdfZXJyb3Io ZGV2LCBwcC0+bXNpX2RhdGEpKSB7Cj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGV2X2Vy cihkZXYsICJGYWlsZWQgdG8gbWFwIE1TSSBkYXRhXG4iKTsKPj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBfX2ZyZWVfcGFnZShwcC0+bXNpX3BhZ2UpOwo+PiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHBwLT5tc2lfcGFnZSA9IE5VTEw7Cj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg cmV0dXJuOwo+PiAtwqDCoMKgwqAgfQo+PiAtwqDCoMKgwqAgbXNpX3RhcmdldCA9ICh1NjQpcHAt Pm1zaV9kYXRhOwo+PiAtCj4+IMKgwqDCoMKgwqAgLyogUHJvZ3JhbSB0aGUgbXNpX2RhdGEgKi8K Pj4gwqDCoMKgwqDCoCBkd19wY2llX3dyaXRlbF9kYmkocGNpLCBQQ0lFX01TSV9BRERSX0xPLCAK Pj4gbG93ZXJfMzJfYml0cyhtc2lfdGFyZ2V0KSk7Cj4+IMKgwqDCoMKgwqAgZHdfcGNpZV93cml0 ZWxfZGJpKHBjaSwgUENJRV9NU0lfQUREUl9ISSwgCj4+IHVwcGVyXzMyX2JpdHMobXNpX3Rhcmdl dCkpOwo+PiBAQCAtMzk0LDYgKzM4NywxNiBAQCBpbnQgZHdfcGNpZV9ob3N0X2luaXQoc3RydWN0 IHBjaWVfcG9ydCAqcHApCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo+PiBpcnFf c2V0X2NoYWluZWRfaGFuZGxlcl9hbmRfZGF0YShwcC0+bXNpX2lycSwKPj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo+PiBkd19jaGFp bmVkX21zaV9pc3IsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBwcCk7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgcHAtPm1zaV9kYXRhID0gZG1hX21hcF9zaW5nbGVfYXR0cnMocGNpLT5k ZXYsIAo+PiAmcHAtPm1zaV9tc2csCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHNpemVvZihwcC0+bXNpX21zZyksCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIERNQV9GUk9NX0RFVklDRSwKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo+PiBETUFfQVRUUl9TS0lQ X0NQVV9TWU5DKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg aWYgKGRtYV9tYXBwaW5nX2Vycm9yKHBjaS0+ZGV2LCBwcC0+bXNpX2RhdGEpKSB7Cj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkZXZf ZXJyKHBjaS0+ZGV2LCAiRmFpbGVkIHRvIG1hcCBNU0kgCj4+IGRhdGFcbiIpOwo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcHAtPm1z aV9kYXRhID0gMDsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGdvdG8gZXJyX2ZyZWVfbXNpOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0g ZWxzZSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQg PSBwcC0+b3BzLT5tc2lfaG9zdF9pbml0KHBwKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGlmIChyZXQgPCAwKQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9w Y2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLmggCj4+IGIvZHJpdmVycy9wY2kvY29u dHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLmgKPj4gaW5kZXggOTdjNzA2M2I5ZTg5Li45ZDJm NTExZjEzZmEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUt ZGVzaWdud2FyZS5oCj4+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVz aWdud2FyZS5oCj4+IEBAIC0xOTAsOCArMTkwLDggQEAgc3RydWN0IHBjaWVfcG9ydCB7Cj4+IMKg wqDCoMKgwqAgaW50wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtc2lf aXJxOwo+PiDCoMKgwqDCoMKgIHN0cnVjdCBpcnFfZG9tYWluwqDCoMKgwqDCoMKgICppcnFfZG9t YWluOwo+PiDCoMKgwqDCoMKgIHN0cnVjdCBpcnFfZG9tYWluwqDCoMKgwqDCoMKgICptc2lfZG9t YWluOwo+PiArwqDCoMKgwqAgdTE2wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBtc2lfbXNnOwo+PiDCoMKgwqDCoMKgIGRtYV9hZGRyX3TCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBtc2lfZGF0YTsKPj4gLcKgwqDCoMKgIHN0cnVjdCBwYWdlwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICptc2lfcGFnZTsKPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgaXJxX2NoaXDCoMKgwqDC oMKgwqDCoMKgICptc2lfaXJxX2NoaXA7Cj4+IMKgwqDCoMKgwqAgdTMywqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBudW1fdmVjdG9yczsKPj4gwqDCoMKgwqDCoCB1MzLC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlycV9tYXNrW01BWF9NU0lf Q1RSTFNdOwo+PgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtYXJtLWtlcm5lbAo=